1:"$Sreact.fragment"
3:I[176118,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
4:I[677613,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
7:I[570193,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"OutletBoundary"]
8:"$Sreact.suspense"
b:I[570193,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"ViewportBoundary"]
d:I[570193,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"MetadataBoundary"]
10:I[655042,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"GoogleTagManager"]
11:I[402668,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js","/_next/static/chunks/155rs.bzc148o.js","/_next/static/chunks/0zk~0k.6fp-kc.js"],""]
1c:I[668616,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"AnalyticsProvider"]
1d:I[84654,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
1e:I[919719,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
1f:I[491727,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
20:I[408821,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js","/_next/static/chunks/0_5ealzng4~cp.js"],"default"]
21:I[877656,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],""]
22:I[56691,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
23:I[509716,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
24:I[23319,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
25:I[598188,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"default"]
:HL["/_next/static/chunks/0qpk3dubcx-~2.css","style"]
:HL["/_next/static/chunks/0s362z3ji~k1s.css","style"]
:HL["/_next/static/chunks/0zb_0fc.94i2y.css","style"]
:HL["https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css","style"]
0:{"f":[[["",{"children":["areas-we-serve",{"children":["london",{"children":[["area","%5Barea%5D","d",null],{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0qpk3dubcx-~2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0s362z3ji~k1s.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/chunks/0zb_0fc.94i2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0yngupkh50x17.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0_or5jt1_k6js.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0s7m3xni3n.j1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0suzq98my785w.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/0ikw4f8kwz0g5.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/_next/static/chunks/0q~c~rgerahl..js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/_next/static/chunks/0cc5if63f3cy2.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/_next/static/chunks/11nquhifx96ne.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/_next/static/chunks/0vn9416so_mpz.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/_next/static/chunks/0k-cume2wj84i.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/_next/static/chunks/0mdj.733eiwna.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/_next/static/chunks/0xk8wpfdmg.4p.js","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/_next/static/chunks/0mpylwarsysfm.js","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/_next/static/chunks/0k47b0gtb3pi9.js","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/_next/static/chunks/00ny~ziwhigx9.js","async":true,"nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,"$L5"]}],{"children":[["$","$1","c",{"children":["$L6",[["$","script","script-0",{"src":"/_next/static/chunks/155rs.bzc148o.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0zk~0k.6fp-kc.js","async":true,"nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,null]},null,false,"$@a"]},null,false,"$@a"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb","6DRL_57BIMrjJW_zj3KvOv",{"children":"$Lc"}],["$","div","6DRL_57BIMrjJW_zj3KvOm",{"hidden":true,"children":["$","$Ld",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Le"}]}]}]]}],false]],"q":"","i":false,"S":false,"h":null,"b":"8OtvX6GJpot77ysScrqMP"}
f:[]
a:"$Wf"
5:["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]
12:T4b11,
              (function() {
                'use strict';
                // Immediately set up error suppression before anything else runs
                const originalConsoleError = console.error;
                const originalConsoleWarn = console.warn;
                const originalConsoleLog = console.log;
                const originalFunction = window.Function;
                
                // Check if we're in development mode (for reCAPTCHA suppression)
                const isDevelopment = typeof window !== 'undefined' && (
                  window.location.hostname === 'localhost' || 
                  window.location.hostname === '127.0.0.1' ||
                  window.location.hostname.includes('localhost')
                );
                
                function shouldSuppressModuleError(msg, source) {
                  if (!msg) {
                    if (source && (source.includes('installHook') || 
                        source.includes('extension') ||
                        source.includes('chrome-extension') ||
                        source.includes('moz-extension') ||
                        source.includes('anonymous') ||
                        source.includes('new Function') ||
                        source.includes('elfsightcdn.com') ||
                        source.includes('elfsight') ||
                        source.includes('universe-static.elfsightcdn.com') ||
                        source.includes('google-reviews') ||
                        source.includes('widget/googleReviews') ||
                        source.includes('widget/googlereviews') ||
                        source.includes('app-releases/google-reviews'))) {
                      return true;
                    }
                    return false;
                  }
                  
                  const msgStr = typeof msg === 'string' ? msg : String(msg);
                  const lowerMsg = msgStr.toLowerCase();
                  
                  // Check for Chrome extension runtime errors
                  if (lowerMsg.includes('unchecked runtime.lasterror') ||
                      lowerMsg.includes('could not establish connection') ||
                      lowerMsg.includes('receiving end does not exist') ||
                      lowerMsg.includes('runtime.lasterror')) {
                    return true;
                  }
                  
                  // Check for import statement errors (most common)
                  if (lowerMsg.includes('cannot use import statement') ||
                      lowerMsg.includes('import statement outside a module') ||
                      lowerMsg.includes('unexpected token') ||
                      (lowerMsg.includes('syntaxerror') && (lowerMsg.includes('import') || lowerMsg.includes('export'))) ||
                      (lowerMsg.includes('syntax') && (lowerMsg.includes('import') || lowerMsg.includes('export'))) ||
                      (lowerMsg.includes('unexpected') && (lowerMsg.includes('import') || lowerMsg.includes('export')))) {
                    return true;
                  }
                  
                  if (source) {
                    const lowerSource = String(source).toLowerCase();
                    if (lowerSource.includes('installhook') ||
                        lowerSource.includes('extension') ||
                        lowerSource.includes('chrome-extension') ||
                        lowerSource.includes('moz-extension') ||
                        lowerSource.includes('anonymous') ||
                        lowerSource.includes('new function') ||
                        lowerSource.includes('elfsightcdn.com') ||
                        lowerSource.includes('elfsight') ||
                        lowerSource.includes('universe-static.elfsightcdn.com') ||
                        lowerSource.includes('google-reviews') ||
                        lowerSource.includes('widget/googlereviews') ||
                        lowerSource.includes('widget/googlereviews.js') ||
                        lowerSource.includes('app-releases/google-reviews') ||
                        lowerSource.includes('bd19274dd5358939274f73590ca127e59f8b4a6f')) {
                      return true;
                    }
                  }
                  
                  return false;
                }
                
                // Intercept Function constructor to catch Elfsight widget errors
                try {
                  window.Function = function(...args) {
                    try {
                      return originalFunction.apply(this, args);
                    } catch (error) {
                      const errorMsg = error.message || String(error);
                      const errorStack = error.stack || '';
                      if (shouldSuppressModuleError(errorMsg, errorStack)) {
                        // Return a no-op function instead of throwing
                        return function() {};
                      }
                      throw error;
                    }
                  };
                  // Copy Function properties
                  Object.setPrototypeOf(window.Function, originalFunction);
                  Object.defineProperty(window.Function, 'prototype', {
                    value: originalFunction.prototype,
                    writable: false
                  });
                } catch (e) {
                  // If Function override fails, continue without it
                }
                
                console.error = function(...args) {
                  // Convert all args to strings and join - this matches what browser console does
                  const errorMsg = args.map(arg => {
                    if (typeof arg === 'string') return arg;
                    if (arg && typeof arg === 'object') {
                      try {
                        return JSON.stringify(arg);
                      } catch {
                        return String(arg);
                      }
                    }
                    return String(arg);
                  }).join(' ');
                  const errorObj = args.find(arg => arg && typeof arg === 'object');
                  const stack = errorObj?.stack || '';
                  const name = errorObj?.name || '';
                  
                  // Check both the message and the stack trace for Elfsight/extension sources
                  const allErrorInfo = errorMsg + ' ' + stack + ' ' + name;
                  
                  if (shouldSuppressModuleError(allErrorInfo, stack)) {
                    return;
                  }
                  
                  // Suppress reCAPTCHA errors in development (check first, most common)
                  if (isDevelopment) {
                    // Suppress "private-token" feature warnings - check for any variation
                    const lowerErrorMsg = errorMsg.toLowerCase();
                    const lowerStack = stack.toLowerCase();
                    const lowerName = name.toLowerCase();
                    const combinedMsg = lowerErrorMsg + ' ' + lowerStack + ' ' + lowerName;
                    
                    // Check if this is a reCAPTCHA-related error
                    if (combinedMsg.includes('recaptcha') || combinedMsg.includes('recaptcha__en.js') || combinedMsg.includes('pat?k=')) {
                      // Suppress private-token errors
                      if (combinedMsg.includes('private-token') || 
                          combinedMsg.includes('unrecognized feature')) {
                        return;
                      }
                      // Suppress 401/Unauthorized errors - very aggressive matching
                      if (combinedMsg.includes('401') || 
                          combinedMsg.includes('unauthorized') || 
                          combinedMsg.includes('failed to load resource') || 
                          combinedMsg.includes('xhr failed') ||
                          combinedMsg.includes('pat?k=') ||
                          (combinedMsg.includes('post') && combinedMsg.includes('recaptcha/api2'))) {
                        return;
                      }
                    }
                    // Also check message alone (in case stack is empty)
                    if (lowerErrorMsg.includes('private-token') || 
                        lowerErrorMsg.includes('unrecognized feature') ||
                        (lowerErrorMsg.includes('recaptcha') && (lowerErrorMsg.includes('401') || lowerErrorMsg.includes('unauthorized') || lowerErrorMsg.includes('pat?k=')))) {
                      return;
                    }
                  }
                  
                  originalConsoleError.apply(console, args);
                };
                
                console.warn = function(...args) {
                  // Suppress Zustand default-export deprecation first (from Vercel instrument, Sentry feedback, Hotjar, etc.)
                  const firstMsg = args[0] != null ? String(args[0]) : '';
                  const fullText = args.map(a => (a != null && typeof a === 'object' && 'stack' in a ? (a.stack || String(a)) : String(a))).join(' ');
                  if (firstMsg.includes('Default export is deprecated') && (firstMsg.includes('zustand') || fullText.includes('zustand'))) {
                    return;
                  }
                  if (firstMsg.includes('[DEPRECATED]') && firstMsg.includes('Default export is deprecated')) {
                    return;
                  }
                  if (fullText.includes('Default export is deprecated') && fullText.includes('zustand')) {
                    return;
                  }

                  // Convert all args to strings and join - this matches what browser console does
                  const warnMsg = args.map(arg => {
                    if (typeof arg === 'string') return arg;
                    if (arg && typeof arg === 'object') {
                      try {
                        return JSON.stringify(arg);
                      } catch {
                        return String(arg);
                      }
                    }
                    return String(arg);
                  }).join(' ');
                  const errorObj = args.find(arg => arg && typeof arg === 'object');
                  const stack = errorObj?.stack || '';
                  
                  if (shouldSuppressModuleError(warnMsg + stack, stack)) {
                    return;
                  }
                  
                  // Suppress reCAPTCHA warnings in development (check first, most common)
                  if (isDevelopment) {
                    // Suppress "private-token" feature warnings - check for any variation
                    const lowerWarnMsg = warnMsg.toLowerCase();
                    const lowerStack = stack.toLowerCase();
                    const combinedMsg = lowerWarnMsg + ' ' + lowerStack;
                    
                    // Check if this is a reCAPTCHA-related warning
                    if (combinedMsg.includes('recaptcha') || combinedMsg.includes('recaptcha__en.js')) {
                      // Suppress private-token warnings
                      if (combinedMsg.includes('private-token') || 
                          combinedMsg.includes('unrecognized feature')) {
                        return;
                      }
                      // Suppress 401/Unauthorized warnings
                      if (combinedMsg.includes('401') || 
                          combinedMsg.includes('unauthorized') || 
                          combinedMsg.includes('failed to load resource') || 
                          combinedMsg.includes('xhr failed') ||
                          combinedMsg.includes('pat?k=')) {
                        return;
                      }
                    }
                    // Also check message alone (in case stack is empty)
                    if (lowerWarnMsg.includes('private-token') || 
                        lowerWarnMsg.includes('unrecognized feature') ||
                        (lowerWarnMsg.includes('recaptcha') && (lowerWarnMsg.includes('401') || lowerWarnMsg.includes('unauthorized')))) {
                      return;
                    }
                  }
                  
                  originalConsoleWarn.apply(console, args);
                };
                
                console.log = function(...args) {
                  const logMsg = args.map(arg => String(arg)).join(' ');
                  if (shouldSuppressModuleError(logMsg)) {
                    return;
                  }
                  originalConsoleLog.apply(console, args);
                };
                
                const errorHandler = function(event) {
                  const errorMessage = event.message || '';
                  const errorSource = event.filename || event.target?.src || '';
                  const errorStack = (event.error && event.error.stack) || '';
                  const errorName = (event.error && event.error.name) || '';
                  
                  // Combine all error information for checking
                  const allErrorInfo = errorMessage + ' ' + errorSource + ' ' + errorStack + ' ' + errorName;
                  
                  if (shouldSuppressModuleError(allErrorInfo, errorSource + errorStack)) {
                    event.preventDefault();
                    event.stopPropagation();
                    event.stopImmediatePropagation();
                    return false;
                  }
                  
                  // Suppress reCAPTCHA errors in development
                  if (isDevelopment) {
                    // Suppress "private-token" feature warnings - check for any variation
                    const lowerErrorMsg = (errorMessage || '').toLowerCase();
                    const lowerErrorSource = (errorSource || '').toLowerCase();
                    if (lowerErrorMsg.includes('private-token') || 
                        lowerErrorMsg.includes('unrecognized feature') ||
                        (lowerErrorSource.includes('recaptcha__en.js') && lowerErrorMsg.includes('unrecognized'))) {
                      event.preventDefault();
                      event.stopPropagation();
                      event.stopImmediatePropagation();
                      return false;
                    }
                    // Suppress reCAPTCHA-related errors - more aggressive matching
                    if (lowerErrorSource.includes('recaptcha') || 
                        lowerErrorMsg.includes('recaptcha') || 
                        lowerErrorSource.includes('recaptcha__en.js') ||
                        lowerErrorMsg.includes('pat?k=')) {
                      if (lowerErrorMsg.includes('401') || 
                          lowerErrorMsg.includes('unauthorized') ||
                          lowerErrorMsg.includes('failed to load') || 
                          lowerErrorMsg.includes('xhr failed') ||
                          (lowerErrorMsg.includes('post') && lowerErrorMsg.includes('recaptcha'))) {
                        event.preventDefault();
                        event.stopPropagation();
                        event.stopImmediatePropagation();
                        return false;
                      }
                    }
                  }
                };
                
                // Set up error handlers with highest priority (capture phase)
                window.addEventListener('error', errorHandler, { capture: true, passive: false });
                document.addEventListener('error', errorHandler, { capture: true, passive: false });
                
                // Also override window.onerror for maximum coverage
                const originalOnError = window.onerror;
                window.onerror = function(msg, source, lineno, colno, error) {
                  const errorInfo = (msg || '') + ' ' + (source || '') + ' ' + (error?.stack || '');
                  const sourceStr = source || '';
                  const stackStr = error?.stack || '';
                  
                  // Check all error information
                  if (shouldSuppressModuleError(errorInfo, sourceStr + stackStr) ||
                      shouldSuppressModuleError(msg || '', sourceStr) ||
                      shouldSuppressModuleError(stackStr, sourceStr)) {
                    return true; // Suppress the error
                  }
                  
                  if (originalOnError) {
                    return originalOnError.call(this, msg, source, lineno, colno, error);
                  }
                  return false;
                };
                
                window.addEventListener('unhandledrejection', function(event) {
                  const reason = event.reason;
                  let reasonStr = '';
                  let reasonStack = '';
                  
                  if (reason) {
                    reasonStr = reason.toString ? reason.toString() : String(reason);
                    if (reason.stack) reasonStack = reason.stack;
                    if (reason.message) reasonStr += ' ' + reason.message;
                  }
                  
                  // Also check the error object if it exists
                  if (reason && typeof reason === 'object') {
                    const errorMsg = reason.message || '';
                    const errorName = reason.name || '';
                    const errorStack = reason.stack || '';
                    const allErrorInfo = errorMsg + ' ' + errorName + ' ' + errorStack;
                    if (shouldSuppressModuleError(allErrorInfo, errorStack)) {
                      event.preventDefault();
                      event.stopPropagation();
                      event.stopImmediatePropagation();
                      return false;
                    }
                  }
                  
                  if (shouldSuppressModuleError(reasonStr, reasonStack)) {
                    event.preventDefault();
                    event.stopPropagation();
                    event.stopImmediatePropagation();
                    return false;
                  }
                }, true);
                
                // Also intercept errors from eval() and similar dynamic code execution
                const originalEval = window.eval;
                try {
                  window.eval = function(code) {
                    try {
                      return originalEval.call(this, code);
                    } catch (error) {
                      const errorMsg = error.message || String(error);
                      const errorStack = error.stack || '';
                      if (shouldSuppressModuleError(errorMsg, errorStack)) {
                        // Return undefined instead of throwing
                        return undefined;
                      }
                      throw error;
                    }
                  };
                } catch (e) {
                  // If eval override fails, continue without it
                }
              })();
            2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","$L10",null,{"gtmId":"GTM-53XQBXJG"}],["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){var w=console.warn;console.warn=function(){var m=arguments[0]!=null?String(arguments[0]):'';var t=Array.prototype.join.call(arguments,' ');if((m.indexOf('Default export is deprecated')!==-1&&(m.indexOf('zustand')!==-1||t.indexOf('zustand')!==-1))||(m.indexOf('[DEPRECATED]')!==-1&&m.indexOf('Default export is deprecated')!==-1))return;w.apply(console,arguments);};})();"}}],["$","meta",null,{"name":"viewport","content":"width=device-width, initial-scale=1"}],false,["$","$L11",null,{"id":"module-error-suppression-first","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13",false,"$L14","$L15","$L16","$L17","$L18","$L19"]}],"$L1a"]}]
13:["$","$L11",null,{"id":"headlessui-polyfills","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"\n                (function () {\n                  try {\n                    // Polyfill Element.prototype.getAnimations for browsers that don't support WAAPI\n                    if (typeof Element !== 'undefined' && typeof Element.prototype.getAnimations !== 'function') {\n                      Element.prototype.getAnimations = function () { return []; };\n                    }\n                    // Avoid instanceof errors when CSSTransition is missing\n                    if (typeof window !== 'undefined' && typeof window.CSSTransition === 'undefined') {\n                      window.CSSTransition = function () {};\n                    }\n                  } catch (e) {\n                    // no-op\n                  }\n                })();\n              "}}]
1b:T957,{"@context":"https://schema.org","@graph":[{"@type":"LocalBusiness","@id":"https://goodyvan.co.uk/#localbusiness","name":"GoodyVan","description":"London's trusted man and van service. Same-day availability, fixed transparent pricing, fully insured professional movers.","url":"https://goodyvan.co.uk","telephone":"0800 001 6171","priceRange":"££","openingHours":"Mo-Su 06:00-22:00","address":{"@type":"PostalAddress","addressLocality":"London","addressCountry":"GB","addressRegion":"England"},"geo":{"@type":"GeoCoordinates","latitude":51.5074,"longitude":-0.1278},"serviceArea":{"@type":"GeoCircle","geoMidpoint":{"@type":"GeoCoordinates","latitude":51.5074,"longitude":-0.1278},"geoRadius":"50000"},"hasOfferCatalog":{"@type":"OfferCatalog","name":"Moving Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Man and Van Service","description":"Professional man and van services across London with same-day availability"},"priceCurrency":"GBP","availability":"https://schema.org/InStock"},{"@type":"Offer","itemOffered":{"@type":"Service","name":"House Removals","description":"Complete house removal services in London"},"price":"120","priceCurrency":"GBP","availability":"https://schema.org/InStock"},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Office Removals","description":"Professional office relocation services"},"price":"200","priceCurrency":"GBP","availability":"https://schema.org/InStock"}]},"sameAs":["https://www.facebook.com/goodyvan","https://www.instagram.com/goodyvan","https://www.linkedin.com/company/goodyvan"],"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.9","reviewCount":"5000","bestRating":"5","worstRating":"1"}},{"@type":"Organization","@id":"https://goodyvan.co.uk/#organization","name":"GoodyVan","url":"https://goodyvan.co.uk","logo":{"@type":"ImageObject","url":"https://res.cloudinary.com/dgp535nu1/image/upload/v1729857949/Goodyvan/logoL_qt8lpv.webp","width":200,"height":60},"contactPoint":{"@type":"ContactPoint","telephone":"0800 001 6171","contactType":"customer service","availableLanguage":"English"}},{"@type":"WebSite","@id":"https://goodyvan.co.uk/#website","url":"https://goodyvan.co.uk","name":"GoodyVan","description":"London's trusted man and van service — same-day removals, fixed pricing, fully insured movers","publisher":{"@id":"https://goodyvan.co.uk/#organization"}}]}14:["$","$L11",null,{"id":"schema-markup","suppressHydrationWarning":true,"type":"application/ld+json","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$1b"}}]
15:["$","link",null,{"rel":"preconnect","href":"https://res.cloudinary.com","crossOrigin":"anonymous"}]
16:["$","link",null,{"rel":"preconnect","href":"https://va.vercel-scripts.com","crossOrigin":"anonymous"}]
17:["$","link",null,{"rel":"dns-prefetch","href":"https://widget.trustpilot.com"}]
18:["$","link",null,{"rel":"dns-prefetch","href":"https://static.elfsight.com"}]
19:["$","link",null,{"rel":"stylesheet","href":"https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css"}]
26:T64c,
              (function() {
                try {
                  // Import and initialize click ID capture
                  if (typeof window !== 'undefined') {
                    // Extract click IDs from URL
                    const urlParams = new URLSearchParams(window.location.search);
                    const clickIds = {};
                    let hasClickId = false;
                    
                    const gclid = urlParams.get('gclid');
                    const gbraid = urlParams.get('gbraid');
                    const wbraid = urlParams.get('wbraid');
                    
                    if (gclid) {
                      clickIds.gclid = gclid;
                      hasClickId = true;
                    }
                    if (gbraid) {
                      clickIds.gbraid = gbraid;
                      hasClickId = true;
                    }
                    if (wbraid) {
                      clickIds.wbraid = wbraid;
                      hasClickId = true;
                    }
                    
                    // Store in localStorage if found (90 day expiry)
                    if (hasClickId) {
                      const stored = {
                        ...clickIds,
                        timestamp: Date.now()
                      };
                      localStorage.setItem('google_ads_click_ids', JSON.stringify(stored));
                    }
                  }
                } catch (error) {
                  console.warn('Failed to capture Google Ads click IDs:', error);
                }
              })();
            1a:["$","body",null,{"className":"roboto_c77c4655-module__OghPvq__className","suppressHydrationWarning":true,"children":[false,["$","$L1c",null,{"measurementId":"G-YRYWWPMCK1","enabled":true,"children":["$","$L1d",null,{"children":[["$","$L1e",null,{}],["$","$L1f",null,{}],["$","main",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$20","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/0_5ealzng4~cp.js","async":true}]],"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"className":"relative flex flex-auto items-center h-screen","children":[["$","div",null,{"className":"absolute inset-0 -z-10 text-slate-900/10 [mask-image:linear-gradient(transparent,white,transparent)]","children":["$","svg",null,{"aria-hidden":"true","className":"absolute top-[100px] inset-0 h-full opacity-5 w-full","children":[["$","defs",null,{"children":["$","pattern",null,{"id":"_S_1_","width":"128","height":"128","patternUnits":"userSpaceOnUse","x":"50%","y":"50%","patternTransform":"translate(0 60)","children":["$","path",null,{"d":"M0 128V.5H128","fill":"none","stroke":"currentColor"}]}]}],["$","rect",null,{"width":"100%","height":"100%","fill":"url(#_S_1_)"}]]}]}],["$","div",null,{"className":"mx-auto px-4 sm:px-6 md:max-w-2xl md:px-4 lg:max-w-7xl  lg:px-8 flex flex-col items-center py-16 text-center sm:py-20 lg:py-32","children":[["$","p",null,{"className":"rounded-full px-4 py-1 text-base font-medium tracking-tight text-slate-900 ring-1 ring-inset ring-slate-900","children":"404"}],["$","h1",null,{"className":"mt-6 font-display text-5xl font-extrabold text-slate-900 sm:text-6xl","children":"Page not found"}],["$","p",null,{"className":"mt-4 text-lg tracking-tight text-slate-700","children":"Sorry, we couldn’t find the page you’re looking for."}],["$","$L21",null,{"href":"/","className":"mt-6 text-base font-medium text-blue-600 hover:text-blue-800","children":["Go back home ",["$","span",null,{"aria-hidden":"true","children":"→"}]]}]]}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L22",null,{}],["$","$L23",null,{}],["$","$L24",null,{"initialConsent":null,"cookiePolicyLink":"","privacyPolicyLink":""}],["$","$L25",null,{}]]}]}],false,["$","$L11",null,{"id":"google-ads-click-id-capture","strategy":"afterInteractive","suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$26"}}],"$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d","$L2e","$L2f","$L30"]}]
31:T13cd,
              // Enhanced fix for Material-UI aria-hidden accessibility issues
              function fixMuiAriaHidden() {
                
                // Function to remove aria-hidden from main element
                function removeAriaHiddenFromMain() {
                  const mainElement = document.querySelector('main');
                  if (mainElement && mainElement.getAttribute('aria-hidden') === 'true') {
                    mainElement.removeAttribute('aria-hidden');
                  }
                }

                // Function to remove aria-hidden from all MUI modals
                function removeAriaHiddenFromModals() {
                  const modals = document.querySelectorAll('.MuiModal-root, .MuiPopover-root, .MuiMenu-root');
                  modals.forEach(modal => {
                    if (modal.getAttribute('aria-hidden') === 'true') {
                      modal.removeAttribute('aria-hidden');
                    }
                  });
                }

                // Run fixes immediately
                removeAriaHiddenFromMain();
                removeAriaHiddenFromModals();

                // Create a more aggressive MutationObserver to watch for aria-hidden changes
                const observer = new MutationObserver((mutations) => {
                  mutations.forEach((mutation) => {
                    if (mutation.type === 'attributes' && mutation.attributeName === 'aria-hidden') {
                      const target = mutation.target;
                      if (target.getAttribute('aria-hidden') === 'true') {
                        // Remove aria-hidden from main element
                        if (target.tagName === 'MAIN') {
                          target.removeAttribute('aria-hidden');
                        }
                        // Remove aria-hidden from modal elements
                        if (target.classList && (
                          target.classList.contains('MuiModal-root') ||
                          target.classList.contains('MuiPopover-root') ||
                          target.classList.contains('MuiMenu-root')
                        )) {
                          target.removeAttribute('aria-hidden');
                        }
                      }
                    }
                  });
                });

                // Start observing the entire document for attribute changes
                observer.observe(document.documentElement, {
                  attributes: true,
                  attributeFilter: ['aria-hidden'],
                  subtree: true
                });

                // Also watch for dynamically added modals
                const modalObserver = new MutationObserver((mutations) => {
                  mutations.forEach((mutation) => {
                    mutation.addedNodes.forEach((node) => {
                      if (node.nodeType === Node.ELEMENT_NODE) {
                        const element = node;
                        if (element.classList && (
                          element.classList.contains('MuiModal-root') ||
                          element.classList.contains('MuiPopover-root') ||
                          element.classList.contains('MuiMenu-root')
                        )) {
                          // When a modal is added, ensure it doesn't have aria-hidden
                          if (element.getAttribute('aria-hidden') === 'true') {
                            element.removeAttribute('aria-hidden');
                          }
                          // Also ensure main element doesn't have aria-hidden
                          removeAriaHiddenFromMain();
                        }
                      }
                    });
                  });
                });

                modalObserver.observe(document.body, {
                  childList: true,
                  subtree: true
                });

                // Fallback periodic check (MutationObserver handles most cases)
                setInterval(() => {
                  removeAriaHiddenFromMain();
                  removeAriaHiddenFromModals();
                }, 5000);

                // Also run on various events
                ['focus', 'focusin', 'DOMContentLoaded', 'load'].forEach(event => {
                  document.addEventListener(event, () => {
                    setTimeout(() => {
                      removeAriaHiddenFromMain();
                      removeAriaHiddenFromModals();
                    }, 100);
                  });
                });
              }

              // Run the fix when DOM is ready
              if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', fixMuiAriaHidden);
              } else {
                fixMuiAriaHidden();
              }

              // Also run after a short delay to catch late additions
              setTimeout(fixMuiAriaHidden, 100);
              setTimeout(fixMuiAriaHidden, 500);
              setTimeout(fixMuiAriaHidden, 1000);
            27:["$","$L11",null,{"id":"mui-accessibility-fix","strategy":"afterInteractive","suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$31"}}]
32:Tace,
              // Global fix for Mapbox missing images
              function fixMapboxImages() {
                
                // Function to create and add common missing images
                function createAndAddCommonImages() {
                  // Wait for mapbox-gl to be available
                  if (typeof mapboxgl === 'undefined') {
                    setTimeout(createAndAddCommonImages, 500);
                    return;
                  }
                  
                  const commonImageIds = ['rectangle-yellow-5', 'rectangle-yellow-6'];
                  commonImageIds.forEach((imageId) => {
                    try {
                      // Create a simple fallback image
                      const canvas = document.createElement('canvas');
                      canvas.width = 64;
                      canvas.height = 64;
                      const ctx = canvas.getContext('2d');
                      if (ctx) {
                        ctx.fillStyle = '#fbbf24'; // yellow color
                        ctx.fillRect(0, 0, 64, 64);
                        ctx.strokeStyle = '#92400e';
                        ctx.lineWidth = 2;
                        ctx.strokeRect(4, 4, 56, 56);
                      }
                      
                      // Convert canvas to ImageBitmap for Mapbox compatibility
                      canvas.toBlob((blob) => {
                        if (blob) {
                          createImageBitmap(blob).then((imageBitmap) => {
                            // Store the image globally so it can be used by any map
                            if (!window.mapboxFallbackImages) {
                              window.mapboxFallbackImages = {};
                            }
                            window.mapboxFallbackImages[imageId] = imageBitmap;
                          });
                        }
                      });
                    } catch (error) {
                      console.warn(`Error creating global image ${imageId}:`, error);
                    }
                  });
                }

                // Run the fix
                createAndAddCommonImages();
                
                // Also run after delays to ensure it works
                setTimeout(createAndAddCommonImages, 1000);
                setTimeout(createAndAddCommonImages, 3000);
              }

              // Run the fix when DOM is ready
              if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', fixMapboxImages);
              } else {
                fixMapboxImages();
              }

              // Also run after a delay to catch late loading
              setTimeout(fixMapboxImages, 2000);
            28:["$","$L11",null,{"id":"mapbox-image-fix","strategy":"afterInteractive","suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$32"}}]
33:T783,
              // Prevent hydration mismatches caused by browser extensions
              (function() {
                // Only run after page is loaded to prevent initial load issues
                if (document.readyState !== 'complete') {
                  window.addEventListener('load', function() {
                    setTimeout(initHydrationFix, 1000);
                  }, { once: true });
                  return;
                }
                
                setTimeout(initHydrationFix, 1000);
                
                function initHydrationFix() {
                  try {
                    const htmlElement = document.documentElement;
                    
                    // Monitor for extension-added attributes
                    const observer = new MutationObserver((mutations) => {
                      mutations.forEach((mutation) => {
                        if (mutation.type === 'attributes' && mutation.target === htmlElement) {
                          const attrName = mutation.attributeName;
                          if (attrName && (attrName.startsWith('data-tag-assistant') || 
                              attrName.startsWith('data-google') ||
                              attrName.startsWith('data-extension'))) {
                            // Silently accept these attributes
                            return;
                          }
                        }
                      });
                    });
                    
                    observer.observe(htmlElement, {
                      attributes: true,
                      attributeFilter: ['data-tag-assistant-present', 'data-tag-assistant-prod-present', 'data-google-analytics']
                    });
                  } catch (e) {
                    console.warn('[hydration-mismatch-prevention] error', e);
                  }
                }
              })();
            29:["$","$L11",null,{"id":"hydration-mismatch-prevention","strategy":"afterInteractive","suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$33"}}]
2a:["$","$L11",null,{"id":"trusted-types-policy","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"\n                // Initialize Trusted Types policy to prevent Chrome security errors\n                if (typeof window !== 'undefined' && 'trustedTypes' in window) {\n                  try {\n                    const policy = window.trustedTypes.createPolicy('default', {\n                      createHTML: (string) => string,\n                      createScript: (string) => string,\n                      createScriptURL: (string) => string,\n                    });\n                  } catch (error) {\n                    console.warn('Failed to create Trusted Types policy:', error);\n                  }\n              }\n            "}}]
34:T32b3,
              (function() {
                // Monitor network requests to detect direct Google image loads (CORB triggers)
                // Note: PerformanceObserver is used internally but logging is disabled to reduce console noise
                if (window.PerformanceObserver) {
                  try {
                    const perfObserver = new PerformanceObserver(function(list) {
                      // Silently monitor Google image requests (handled by proxy)
                      const entries = list.getEntries();
                      entries.filter(entry => entry.name && entry.name.includes('googleusercontent.com'));
                    });
                    perfObserver.observe({entryTypes:['resource']});
                  } catch (e) {
                    // Performance Observer not supported or failed
                  }
                }
                
                // Intercept image src property to catch URLs before they load
                function interceptImageSrc() {
                  // Intercept img.src setter for all images
                  const originalImageDescriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'src') || 
                    Object.getOwnPropertyDescriptor(Image.prototype, 'src');
                  
                  if (originalImageDescriptor && originalImageDescriptor.set) {
                    Object.defineProperty(HTMLImageElement.prototype, 'src', {
                      set: function(value) {
                        // Process the URL before setting it
                        const processedUrl = processImageUrl(value, this);
                        originalImageDescriptor.set.call(this, processedUrl);
                      },
                      get: originalImageDescriptor.get,
                      configurable: true,
                      enumerable: true
                    });
                  }
                  
                  // Also intercept setAttribute for src
                  const originalSetAttribute = Element.prototype.setAttribute;
                  Element.prototype.setAttribute = function(name, value) {
                    if (name === 'src' && this instanceof HTMLImageElement) {
                      const processedUrl = processImageUrl(value, this);
                      return originalSetAttribute.call(this, name, processedUrl);
                    }
                    return originalSetAttribute.call(this, name, value);
                  };
                }
                
                // Process image URL - convert phosphor URLs to our proxy
                function processImageUrl(url, img) {
                  if (!url || typeof url !== 'string') return url;
                  
                  // Skip if already proxied or using fallback
                  if (url.includes('/api/image-proxy') || 
                      url.includes('ui-avatars.com')) {
                    return url;
                  }
                  
                  // Handle Elfsight CDN proxy URLs - extract original Google URL and convert to our proxy
                  if (url.includes('phosphor.utils.elfsightcdn.com')) {
                    try {
                      const urlParams = new URLSearchParams(url.split('?')[1]);
                      const originalUrl = urlParams.get('url');
                      
                      if (originalUrl && originalUrl.includes('googleusercontent.com')) {
                        const decodedUrl = decodeURIComponent(originalUrl);
                        // Prevent duplicate processing
                        if (img && !img.dataset.originalSrc) {
                          img.dataset.originalSrc = url;
                          setupImageErrorHandler(img, decodedUrl);
                        }
                        return '/api/image-proxy?url=' + encodeURIComponent(decodedUrl);
                      }
                    } catch (error) {
                      // If parsing fails, return original URL
                    }
                    return url;
                  }
                  
                  // Skip if not a Google user content URL
                  if (!url.includes('googleusercontent.com')) {
                    return url;
                  }
                  
                  // Convert to proxy URL
                  if (img && !img.dataset.originalSrc) {
                    img.dataset.originalSrc = url;
                    setupImageErrorHandler(img, url);
                  }
                  return '/api/image-proxy?url=' + encodeURIComponent(url);
                }

                // Intercept Google user content image URLs before they load to prevent CORB
                function proxyGoogleImages() {
                  // Set up property interceptors first
                  interceptImageSrc();
                  
                  // Use MutationObserver to catch dynamically added images
                  const observer = new MutationObserver(function(mutations) {
                    mutations.forEach(function(mutation) {
                      mutation.addedNodes.forEach(function(node) {
                        if (node.nodeType === 1) { // Element node
                          // Check if it's an img element
                          if (node.tagName === 'IMG') {
                            processImage(node);
                          }
                          // Check for img elements within the added node
                          const images = node.querySelectorAll && node.querySelectorAll('img');
                          if (images) {
                            images.forEach(processImage);
                          }
                        }
                      });
                    });
                  });

                  // Process existing images on page load
                  function processAllImages() {
                    document.querySelectorAll('img').forEach(processImage);
                  }

                  // Convert Google user content URLs to proxy URLs
                  function processImage(img) {
                    if (!img || !img.src) return;
                    
                    const src = img.src;
                    
                    // Skip if already proxied or using fallback
                    if (src.includes('/api/image-proxy') || 
                        src.includes('ui-avatars.com')) {
                      return;
                    }
                    
                    // Handle Elfsight CDN proxy URLs - extract original Google URL and convert to our proxy
                    if (src.includes('phosphor.utils.elfsightcdn.com')) {
                      try {
                        const urlParams = new URLSearchParams(src.split('?')[1]);
                        const originalUrl = urlParams.get('url');
                        
                        if (originalUrl && originalUrl.includes('googleusercontent.com')) {
                          const decodedUrl = decodeURIComponent(originalUrl);
                          // Prevent duplicate processing
                          if (!img.dataset.originalSrc) {
                            img.dataset.originalSrc = src;
                            setupImageErrorHandler(img, decodedUrl);
                            img.src = '/api/image-proxy?url=' + encodeURIComponent(decodedUrl);
                          }
                        }
                      } catch (error) {
                        // If parsing fails, let error handler deal with it
                      }
                      return;
                    }
                    
                    // Skip if not a Google user content URL
                    if (!src.includes('googleusercontent.com')) {
                      return;
                    }
                    
                    // Convert to proxy URL
                    const proxyUrl = '/api/image-proxy?url=' + encodeURIComponent(src);
                    
                    // Store original src for error handling
                    if (!img.dataset.originalSrc) {
                      img.dataset.originalSrc = src;
                      setupImageErrorHandler(img, src);
                      img.src = proxyUrl;
                    }
                  }

                  // Handle image load errors and proxy failures
                  function setupImageErrorHandler(img, originalUrl) {
                    // Check if handler already set
                    if (img.dataset.errorHandlerSet === 'true') {
                      return;
                    }
                    
                    const errorHandler = function(event) {
                      // Only handle errors for proxy URLs
                      const currentSrc = img.src;
                      if (currentSrc && currentSrc.includes('/api/image-proxy')) {
                        // Try to get fallback URL from proxy response
                        fetch(currentSrc)
                          .then(async function(response) {
                            // Check if response is JSON (error response)
                            const contentType = response.headers.get('content-type') || '';
                            if (contentType.includes('application/json')) {
                              try {
                                const text = await response.text();
                                return text ? JSON.parse(text) : null;
                              } catch {
                                return null;
                              }
                            }
                            return null;
                          })
                          .then(function(data) {
                            if (data && data.fallbackUrl) {
                              // Use the fallback URL from the proxy response
                              img.src = data.fallbackUrl;
                              img.dataset.proxyFailed = 'true';
                            } else if (originalUrl) {
                              // Fall back to original URL
                              img.src = originalUrl;
                              img.dataset.proxyFailed = 'true';
                            }
                          })
                          .catch(function() {
                            // If fetch fails, try original URL
                            if (originalUrl) {
                              img.src = originalUrl;
                              img.dataset.proxyFailed = 'true';
                            }
                          });
                      } else if (originalUrl && !img.dataset.proxyFailed) {
                        // Direct fallback to original URL if not already failed
                        img.src = originalUrl;
                        img.dataset.proxyFailed = 'true';
                      }
                    };
                    
                    // Mark handler as set and add event listener
                    img.dataset.errorHandlerSet = 'true';
                    img.addEventListener('error', errorHandler, { once: true });
                  }

                  // Start observing
                  observer.observe(document.body || document.documentElement, {
                    childList: true,
                    subtree: true
                  });

                  // Process images when DOM is ready
                  if (document.readyState === 'loading') {
                    document.addEventListener('DOMContentLoaded', processAllImages);
                  } else {
                    processAllImages();
                  }

                  // Skip 1s interval on thank-you test page so Tag Assistant / GTM don't get spammed (avoids ERR_BLOCKED_BY_ORB every second)
                  var isThankYouTestPage = typeof location !== 'undefined' && location.pathname.indexOf('/quote/thank-you') !== -1 && location.search.indexOf('testConversion=1') !== -1;
                  if (!isThankYouTestPage) {
                    var checkInterval = setInterval(function() {
                      processAllImages();
                    }, 1000);
                    setTimeout(function() {
                      clearInterval(checkInterval);
                    }, 30000);
                  }
                }

                // Start interception immediately
                if (document.body) {
                  proxyGoogleImages();
                } else {
                  // Wait for body if script loads early
                  const bodyObserver = new MutationObserver(function(mutations, obs) {
                    if (document.body) {
                      proxyGoogleImages();
                      obs.disconnect();
                    }
                  });
                  bodyObserver.observe(document.documentElement, { childList: true });
                }
              })();
            2b:["$","$L11",null,{"id":"google-image-interceptor","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$34"}}]
35:T595,
              (function() {
                // Suppress harmless CORB warnings (Cross-Origin Read Blocking)
                // These are informational warnings, not errors, and don't affect functionality
                const originalConsoleWarn = console.warn;
                const originalConsoleError = console.error;
                
                console.warn = function(...args) {
                  const message = args.join(' ');
                  // Suppress CORB warnings - they're harmless informational messages
                  if (message.includes('CORB') || 
                      message.includes('Cross-Origin Read Blocking') ||
                      message.includes('blocked by CORB')) {
                    return; // Suppress CORB warnings
                  }
                  originalConsoleWarn.apply(console, args);
                };
                
                console.error = function(...args) {
                  const message = args.join(' ');
                  // Suppress CORB-related errors (they're actually warnings)
                  if (message.includes('CORB') || 
                      message.includes('Cross-Origin Read Blocking') ||
                      message.includes('blocked by CORB')) {
                    return; // Suppress CORB errors
                  }
                  originalConsoleError.apply(console, args);
                };
              })();
            2c:["$","$L11",null,{"id":"corb-warning-suppressor","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$35"}}]
36:T1ca4,
              (function() {
                // Suppress 404 console errors from Elfsight CDN proxy (harmless - we have fallbacks)
                const originalConsoleError = console.error;
                const originalConsoleWarn = console.warn;
                const originalConsoleLog = console.log;
                
                // Intercept console.error to suppress Elfsight CDN 404 errors
                console.error = function(...args) {
                  const errorMsg = args.join(' ');
                  // Suppress 404 errors from Elfsight CDN (multiple formats)
                  if (errorMsg.includes('phosphor.utils.elfsightcdn.com') && 
                      (errorMsg.includes('404') || errorMsg.includes('Not Found') || 
                       errorMsg.includes('GET') || errorMsg.match(/\?url=/))) {
                    return; // Suppress this error
                  }
                  originalConsoleError.apply(console, args);
                };
                
                // Intercept console.warn for similar messages
                console.warn = function(...args) {
                  const warnMsg = args.join(' ');
                  // Suppress 404 warnings from Elfsight CDN
                  if (warnMsg.includes('phosphor.utils.elfsightcdn.com') && 
                      (warnMsg.includes('404') || warnMsg.includes('Not Found') ||
                       warnMsg.includes('GET') || warnMsg.match(/\?url=/))) {
                    return; // Suppress this warning
                  }
                  originalConsoleWarn.apply(console, args);
                };
                
                // Intercept console.log to catch network errors that might be logged
                console.log = function(...args) {
                  const logMsg = args.join(' ');
                  // Suppress 404 logs from Elfsight CDN
                  if (logMsg.includes('phosphor.utils.elfsightcdn.com') && 
                      (logMsg.includes('404') || logMsg.includes('Not Found') ||
                       logMsg.includes('GET') || logMsg.match(/\?url=/))) {
                    return; // Suppress this log
                  }
                  originalConsoleLog.apply(console, args);
                };
                
                // Suppress network errors in global error handler
                window.addEventListener('error', function(event) {
                  const errorSource = event.filename || '';
                  const errorMessage = event.message || '';
                  const errorTarget = event.target;
                  
                  // Suppress 404 errors from Elfsight CDN
                  if ((errorSource.includes('phosphor.utils.elfsightcdn.com') || 
                       errorMessage.includes('phosphor.utils.elfsightcdn.com')) &&
                      (errorMessage.includes('404') || errorMessage.includes('Not Found'))) {
                    event.preventDefault();
                    event.stopPropagation();
                    return false;
                  }
                  
                  // Also suppress errors from image elements with phosphor URLs
                  if (errorTarget && errorTarget instanceof HTMLImageElement) {
                    const imgSrc = errorTarget.src || '';
                    if (imgSrc.includes('phosphor.utils.elfsightcdn.com')) {
                      event.preventDefault();
                      event.stopPropagation();
                      return false;
                    }
                  }
                }, true);
                
                // Intercept fetch requests to handle 404s gracefully
                const originalFetch = window.fetch;
                window.fetch = function(...args) {
                  const url = typeof args[0] === 'string' ? args[0] : args[0]?.url || '';
                  
                  // Intercept requests to Elfsight CDN proxy - prevent them entirely
                  if (url.includes('phosphor.utils.elfsightcdn.com')) {
                    // Extract original URL and use our proxy instead
                    try {
                      const urlParams = new URLSearchParams(url.split('?')[1]);
                      const originalUrl = urlParams.get('url');
                      if (originalUrl && originalUrl.includes('googleusercontent.com')) {
                        const decodedUrl = decodeURIComponent(originalUrl);
                        // Use our image proxy instead
                        return originalFetch('/api/image-proxy?url=' + encodeURIComponent(decodedUrl), args[1] || {});
                      }
                    } catch (e) {
                      // If parsing fails, reject silently
                    }
                    // Reject silently - error handlers will use fallbacks
                    return Promise.reject(new Error('Elfsight CDN request blocked - using fallback'));
                  }
                  
                  return originalFetch.apply(this, args);
                };
                
                // Also intercept XMLHttpRequest for older code
                const originalXHROpen = XMLHttpRequest.prototype.open;
                const originalXHRSend = XMLHttpRequest.prototype.send;
                
                XMLHttpRequest.prototype.open = function(method, url, ...rest) {
                  this._requestUrl = typeof url === 'string' ? url : url.toString();
                  
                  // Intercept phosphor URLs and redirect to our proxy
                  if (this._requestUrl.includes('phosphor.utils.elfsightcdn.com')) {
                    try {
                      const urlParams = new URLSearchParams(this._requestUrl.split('?')[1]);
                      const originalUrl = urlParams.get('url');
                      if (originalUrl && originalUrl.includes('googleusercontent.com')) {
                        const decodedUrl = decodeURIComponent(originalUrl);
                        this._requestUrl = '/api/image-proxy?url=' + encodeURIComponent(decodedUrl);
                        this._isProxied = true;
                        return originalXHROpen.apply(this, [method, this._requestUrl, ...rest]);
                      }
                    } catch (e) {
                      // If parsing fails, continue with original
                    }
                  }
                  
                  return originalXHROpen.apply(this, [method, url, ...rest]);
                };
                
                XMLHttpRequest.prototype.send = function(...args) {
                  if (this._requestUrl && this._requestUrl.includes('phosphor.utils.elfsightcdn.com')) {
                    // Suppress errors and 404s silently
                    this.addEventListener('error', function() {
                      // Suppress errors silently
                    }, { once: true });
                    
                    this.addEventListener('load', function() {
                      // Suppress 404 status silently
                      if (this.status === 404) {
                        // Error handlers will catch this
                      }
                    }, { once: true });
                  }
                  return originalXHRSend.apply(this, args);
                };
              })();
            2d:["$","$L11",null,{"id":"network-error-suppressor","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$36"}}]
37:T11ab,
              // Global image error handler for Elfsight and other widgets
              function handleImageError(event) {
                const target = event.target;
                if (target instanceof HTMLImageElement) {
                  const src = target.src;
                  
                  // If it's a phosphor proxy URL, try to extract the original Google URL
                  // (This is a fallback - the interceptor should have already handled it)
                  if (src.includes('phosphor.utils.elfsightcdn.com')) {
                    try {
                      const urlParams = new URLSearchParams(src.split('?')[1]);
                      const originalUrl = urlParams.get('url');
                      
                      if (originalUrl) {
                        const decodedUrl = decodeURIComponent(originalUrl);
                        
                        // Prevent duplicate handlers
                        if (target.dataset.processing === 'true') {
                          return;
                        }
                        target.dataset.processing = 'true';
                        
                        // Use our image proxy directly instead of trying original URL first
                        target.src = '/api/image-proxy?url=' + encodeURIComponent(decodedUrl);
                        
                        // Final fallback
                        target.onerror = () => {
                          if (!target.src.includes('ui-avatars.com')) {
                            target.src = 'https://ui-avatars.com/api/?name=User&background=random&color=fff&size=150';
                            target.dataset.processing = 'false';
                          }
                        };
                        return;
                      }
                    } catch (error) {
                      // Silently handle parsing errors - fallback will be used
                    }
                  }
                  
                  // If it's already a proxy URL that failed, skip to fallback
                  // Prevent infinite loops by checking if already using fallback
                  if (src.includes('/api/image-proxy')) {
                    if (!src.includes('ui-avatars.com')) {
                      target.src = 'https://ui-avatars.com/api/?name=User&background=random&color=fff&size=150';
                    }
                    return;
                  }
                  
                  // If it's a Google profile image, try our image proxy
                  if (src.includes('googleusercontent.com')) {
                    // Prevent duplicate handlers by checking if already processing
                    if (target.dataset.processing === 'true') {
                      return;
                    }
                    target.dataset.processing = 'true';
                    target.src = '/api/image-proxy?url=' + encodeURIComponent(src);
                    
                    // Final fallback - if proxy also fails (404, timeout, etc.)
                    target.onerror = () => {
                      if (!target.src.includes('ui-avatars.com')) {
                        target.src = 'https://ui-avatars.com/api/?name=User&background=random&color=fff&size=150';
                        target.dataset.processing = 'false';
                      }
                    };
                    return;
                  }
                  
                  // Fallback to a default avatar
                  target.src = 'https://ui-avatars.com/api/?name=User&background=random&color=fff&size=150';
                }
              }

              // Set up global error handler
              document.addEventListener('error', handleImageError, true);

              // Set up periodic check for Elfsight images
              const checkElfsightImages = () => {
                const widgetImages = document.querySelectorAll('.elfsight-app-b6b5fc52-0778-4bab-8af4-449d85a79dd0 img');
                widgetImages.forEach(img => {
                  img.removeEventListener('error', handleImageError);
                  img.addEventListener('error', handleImageError);
                });
              };

              // Check for Elfsight images periodically
              const interval = setInterval(checkElfsightImages, 2000);
              
              // Clear interval after 30 seconds
              setTimeout(() => {
                clearInterval(interval);
              }, 30000);
            2e:["$","$L11",null,{"id":"image-error-handler","strategy":"afterInteractive","suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$37"}}]
38:Tf27,
              (function() {
                'use strict';
                
                // Suppress Attribution Reporting API violation warnings
                // These occur when third-party scripts try to register OS triggers
                // but are correctly prevented by our security headers
                const originalConsoleWarn = console.warn;
                const originalConsoleError = console.error;
                const originalConsoleLog = console.log;
                
                function shouldSuppress(msg) {
                  if (!msg || typeof msg !== 'string') {
                    // Check all args if msg is not a string
                    const allArgs = Array.isArray(msg) ? msg : [msg];
                    msg = allArgs.map(arg => String(arg)).join(' ');
                  }
                  const lowerMsg = msg.toLowerCase();
                  return lowerMsg.includes('attribution reporting api') || 
                         lowerMsg.includes('attribution-reporting') ||
                         lowerMsg.includes('os trigger registration') ||
                         lowerMsg.includes('attribution os trigger') ||
                         lowerMsg.includes('attribution os trigger registration') ||
                         lowerMsg.includes('request was ineligible') ||
                         lowerMsg.includes('attribution os trigger registration was ignored') ||
                         lowerMsg.includes('structured headers rfc') ||
                         (lowerMsg.includes('attribution') && lowerMsg.includes('trigger')) ||
                         (lowerMsg.includes('attribution') && lowerMsg.includes('ineligible'));
                }
                
                console.warn = function(...args) {
                  const warnMsg = args.map(arg => String(arg)).join(' ');
                  if (shouldSuppress(warnMsg)) {
                    return; // Suppress the warning
                  }
                  originalConsoleWarn.apply(console, args);
                };
                
                console.error = function(...args) {
                  const errorMsg = args.map(arg => String(arg)).join(' ');
                  if (shouldSuppress(errorMsg)) {
                    return; // Suppress the error
                  }
                  originalConsoleError.apply(console, args);
                };
                
                console.log = function(...args) {
                  const logMsg = args.map(arg => String(arg)).join(' ');
                  if (shouldSuppress(logMsg)) {
                    return; // Suppress the log
                  }
                  originalConsoleLog.apply(console, args);
                };
                
                // Also intercept browser violation reports if possible
                if (window.ReportingObserver) {
                  try {
                    const observer = new ReportingObserver((reports) => {
                      // Suppress attribution reporting violations
                      reports.forEach(report => {
                        if (report.type === 'intervention' || report.type === 'deprecation') {
                          const body = report.body ? JSON.stringify(report.body) : '';
                          if (shouldSuppress(body) || shouldSuppress(report.message || '')) {
                            // Suppress this report
                            return;
                          }
                        }
                      });
                    }, {
                      types: ['intervention', 'deprecation'],
                      buffered: true
                    });
                    observer.observe();
                  } catch (e) {
                    // ReportingObserver not supported or failed, ignore
                  }
                }
              })();
            2f:["$","$L11",null,{"id":"attribution-reporting-suppress","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$38"}}]
39:T2be6,
              (function() {
                'use strict';
                var isDevelopment = window.location.hostname === 'localhost' ||
                window.location.hostname === '127.0.0.1' ||
                window.location.hostname.includes('localhost');
                var originalFetch = window.fetch;
                const originalXHROpen = XMLHttpRequest.prototype.open;
                const originalXHRSend = XMLHttpRequest.prototype.send;
                const originalConsoleError = console.error;
                const originalConsoleWarn = console.warn;
                
                // Track if we've already reported the error to avoid spam
                let hasReportedError = false;
                
                // Intercept fetch requests
                window.fetch = function(...args) {
                  const url = typeof args[0] === 'string' ? args[0] : args[0]?.url || '';
                  
                  if (url.includes('recaptcha/api2') || url.includes('recaptcha/api') || url.includes('pat?k=')) {
                    return originalFetch.apply(this, args).catch(function(error) {
                      // Suppress 401 errors in development
                      if (isDevelopment && !hasReportedError) {
                        hasReportedError = true;
                        // Silently handle - don't log to console
                        return Promise.reject(error);
                      }
                      throw error;
                    }).then(function(response) {
                      // Check response status
                      if (response && response.status === 401 && isDevelopment) {
                        if (!hasReportedError) {
                          hasReportedError = true;
                        }
                        // Suppress the error in development
                        return response;
                      }
                      return response;
                    });
                  }
                  
                  return originalFetch.apply(this, args);
                };
                
                // Intercept XMLHttpRequest
                XMLHttpRequest.prototype.open = function(method, url, ...rest) {
                  const requestUrl = typeof url === 'string' ? url : url.toString();
                  
                  // Store URL for later access
                  this._recaptchaUrl = requestUrl;
                  
                  // Add error handler for reCAPTCHA requests
                  if (requestUrl.includes('recaptcha/api2') || requestUrl.includes('recaptcha/api') || requestUrl.includes('pat?k=')) {
                    this.addEventListener('error', function(e) {
                      if (isDevelopment) {
                        e.stopPropagation();
                        e.preventDefault();
                      }
                    }, { once: true, capture: true });
                    
                    // Suppress load events with 401 status
                    this.addEventListener('load', function() {
                      if (this.status === 401 && isDevelopment) {
                        this._suppressed = true;
                      }
                    }, { once: true });
                    
                    // Override onerror to suppress errors
                    const originalOnError = this.onerror;
                    this.onerror = function(e) {
                      if (isDevelopment) {
                        e?.stopPropagation();
                        e?.preventDefault();
                        return false;
                      }
                      if (originalOnError) {
                        return originalOnError.call(this, e);
                      }
                    };
                  }
                  
                  return originalXHROpen.apply(this, [method, url, ...rest]);
                };
                
                XMLHttpRequest.prototype.send = function(...args) {
                  const result = originalXHRSend.apply(this, args);
                  
                  // If this is a reCAPTCHA request and we're in development, suppress errors
                  if (this._recaptchaUrl && 
                      (this._recaptchaUrl.includes('recaptcha/api2') || 
                       this._recaptchaUrl.includes('recaptcha/api') || 
                       this._recaptchaUrl.includes('pat?k=')) && 
                      isDevelopment) {
                    // Add additional error suppression
                    this.addEventListener('error', function(e) {
                      e.stopPropagation();
                      e.preventDefault();
                    }, { once: true, capture: true });
                  }
                  
                  return result;
                };
                
                // Suppress console errors for reCAPTCHA 401 in development
                console.error = function(...args) {
                  const errorMsg = args.join(' ');
                  // Harmless: reCAPTCHA probes Permissions-Policy features some browsers omit
                  if (errorMsg.includes('private-token') ||
                      (errorMsg.includes('recaptcha__en.js') && errorMsg.includes('Unrecognized'))) {
                    return;
                  }
                  if (isDevelopment) {
                    if (errorMsg.includes('Unrecognized feature') ||
                        errorMsg.includes('Unrecognized feature:')) {
                      return;
                    }
                    // Suppress reCAPTCHA 401 errors - more aggressive matching
                    if (errorMsg.includes('recaptcha') || errorMsg.includes('recaptcha__en.js') || errorMsg.includes('pat?k=')) {
                      if (errorMsg.includes('401') || 
                          errorMsg.includes('Unauthorized') || 
                          errorMsg.includes('Failed to load resource') || 
                          errorMsg.includes('XHR failed') ||
                          errorMsg.includes('POST') && errorMsg.includes('recaptcha/api2')) {
                        return;
                      }
                    }
                    // Suppress reCAPTCHA API endpoint errors
                    if (errorMsg.includes('pat?k=') || errorMsg.includes('/recaptcha/api2/')) {
                      return;
                    }
                  }
                  originalConsoleError.apply(console, args);
                };
                
                // Suppress console warnings for reCAPTCHA 401 in development
                console.warn = function(...args) {
                  const warnMsg = args.join(' ');
                  // Harmless: reCAPTCHA probes Permissions-Policy features some browsers omit
                  if (warnMsg.includes('private-token') ||
                      (warnMsg.includes('recaptcha__en.js') && warnMsg.includes('Unrecognized'))) {
                    return;
                  }
                  if (isDevelopment) {
                    // Suppress generic Unrecognized feature lines in dev (often reCAPTCHA iframes)
                    if (warnMsg.includes('Unrecognized feature') ||
                        warnMsg.includes('Unrecognized feature:')) {
                      return;
                    }
                    // Suppress reCAPTCHA 401 warnings
                    if ((warnMsg.includes('recaptcha') || warnMsg.includes('recaptcha__en.js')) && 
                        (warnMsg.includes('401') || warnMsg.includes('Unauthorized') || 
                         warnMsg.includes('Failed to load resource') || warnMsg.includes('XHR failed'))) {
                      return;
                    }
                    // Suppress reCAPTCHA API endpoint warnings
                    if (warnMsg.includes('pat?k=') || warnMsg.includes('/recaptcha/api2/')) {
                      return;
                    }
                  }
                  originalConsoleWarn.apply(console, args);
                };
                
                // Global error event listener for reCAPTCHA errors
                window.addEventListener('error', function(event) {
                  const errorSource = event.filename || '';
                  const errorMessage = event.message || '';
                  if (isDevelopment) {
                    // Suppress "private-token" feature warnings (check first)
                    if (errorMessage.includes('private-token') || 
                        errorMessage.includes('Unrecognized feature') ||
                        errorMessage.includes('Unrecognized feature:') ||
                        (errorSource.includes('recaptcha__en.js') && errorMessage.includes('Unrecognized'))) {
                      event.preventDefault();
                      event.stopPropagation();
                      return false;
                    }
                    // Suppress reCAPTCHA-related errors - more aggressive matching
                    if (errorSource.includes('recaptcha') || 
                        errorMessage.includes('recaptcha') || 
                        errorSource.includes('recaptcha__en.js') ||
                        errorMessage.includes('pat?k=')) {
                      if (errorMessage.includes('401') || 
                          errorMessage.includes('Unauthorized') ||
                          errorMessage.includes('Failed to load') || 
                          errorMessage.includes('XHR failed') ||
                          errorMessage.includes('POST') && errorMessage.includes('recaptcha')) {
                        event.preventDefault();
                        event.stopPropagation();
                        return false;
                      }
                    }
                  }
                }, true);
                
                // Also catch unhandled promise rejections
                window.addEventListener('unhandledrejection', function(event) {
                  const reason = event.reason;
                  const reasonStr = reason ? (reason.toString ? reason.toString() : String(reason)) : '';
                  
                  if (isDevelopment) {
                    // Suppress "private-token" related rejections (check first)
                    if (reasonStr.includes('private-token') || 
                        reasonStr.includes('Unrecognized feature') ||
                        reasonStr.includes('Unrecognized feature:')) {
                      event.preventDefault();
                      return false;
                    }
                    // Suppress reCAPTCHA-related promise rejections - more aggressive matching
                    if (reasonStr.includes('recaptcha') || reasonStr.includes('pat?k=')) {
                      if (reasonStr.includes('401') || 
                          reasonStr.includes('Unauthorized') ||
                          reasonStr.includes('Failed to load') || 
                          reasonStr.includes('XHR failed')) {
                        event.preventDefault();
                        return false;
                      }
                    }
                  }
                });
              })();
            30:["$","$L11",null,{"id":"recaptcha-error-handler","suppressHydrationWarning":true,"strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"$39"}}]
6:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"}
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
3a:I[52587,["/_next/static/chunks/0yngupkh50x17.js","/_next/static/chunks/0_or5jt1_k6js.js","/_next/static/chunks/0s7m3xni3n.j1.js","/_next/static/chunks/0suzq98my785w.js","/_next/static/chunks/0ikw4f8kwz0g5.js","/_next/static/chunks/0q~c~rgerahl..js","/_next/static/chunks/0cc5if63f3cy2.js","/_next/static/chunks/11nquhifx96ne.js","/_next/static/chunks/0vn9416so_mpz.js","/_next/static/chunks/0k-cume2wj84i.js","/_next/static/chunks/0mdj.733eiwna.js","/_next/static/chunks/0xk8wpfdmg.4p.js","/_next/static/chunks/0mpylwarsysfm.js","/_next/static/chunks/0k47b0gtb3pi9.js","/_next/static/chunks/00ny~ziwhigx9.js"],"IconMark"]
9:null
e:[["$","title","0",{"children":"Man and Van London | Same Day Removals | GoodyVan | GoodyVan"}],["$","meta","1",{"name":"description","content":"Professional man & van in London. Same-day availability, fixed pricing, fully insured movers covering London and nearby areas. Book online or call 0800 001 6171."}],["$","link","2",{"rel":"author","href":"https://goodyvan.co.uk"}],["$","meta","3",{"name":"author","content":"GoodyVan"}],["$","link","4",{"rel":"manifest","href":"/site.webmanifest","crossOrigin":"$undefined"}],["$","meta","5",{"name":"keywords","content":"london removals, man and van london, same day removals london, goodyvan london"}],["$","meta","6",{"name":"creator","content":"GoodyVan"}],["$","meta","7",{"name":"publisher","content":"GoodyVan"}],["$","meta","8",{"name":"robots","content":"index, follow"}],["$","meta","9",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","link","10",{"rel":"canonical","href":"https://goodyvan.co.uk/areas-we-serve/london/[area]"}],["$","meta","11",{"name":"format-detection","content":"telephone=no, address=no, email=no"}],["$","meta","12",{"property":"og:title","content":"Man and Van London | Same Day Removals | GoodyVan"}],["$","meta","13",{"property":"og:description","content":"Professional man & van in London. Same-day availability, fixed pricing, fully insured movers covering London and nearby areas. Book online or call 0800 001 6171."}],["$","meta","14",{"property":"og:url","content":"https://goodyvan.co.uk/areas-we-serve/london/[area]"}],["$","meta","15",{"property":"og:site_name","content":"GoodyVan"}],["$","meta","16",{"property":"og:type","content":"website"}],["$","meta","17",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","18",{"name":"twitter:title","content":"Man and Van London | Same Day Removals | GoodyVan"}],["$","meta","19",{"name":"twitter:description","content":"Professional man & van in London. Same-day availability, fixed pricing, fully insured movers covering London and nearby areas. Book online or call 0800 001 6171."}],["$","link","20",{"rel":"icon","href":"/favicon.ico","sizes":"any","type":"image/x-icon"}],["$","$L3a","21",{}]]
