PageSourceSearch

https://www.esquire.com/_assets/fre/scopes/hdm/_next/static/chunks/24321.9bf2423aa1c4d7c3.js

js esquire.com collected 2026-09-24 07:26:23 UTC 50,258 bytes, 226 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[24321],{2698:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var o=r(1873),i=r(53520),a=r(44410),n=r(51540),s=r(2759),l=r(92899),c=r(9954);let d=["ImgComp","imageWrapperRef"],u=function(e){let{sponsor:t="",sxProps:r={},themeOptions:u={},layoutType:m=""}=e,{badgeProps:p,imageProps:f,restProps:g}=(0,l.j)(e),{ImgComp:h,imageWrapperRef:b}=f,y=(0,i.A)(f,d),{isSimplifiedPSV:v}=g;return y.image?(0,c.Y)(n._,(0,o.A)({sx:r?.ProductImageContainer,"data-theme-key":"embedded-product-image-container"},u?.ProductImageContainer,{ref:b}),(0,c.Y)(n.V,(0,o.A)({"data-optimizely":"product-image-container",sx:r?.ImageContainer,"data-theme-key":"product-image-container"},u?.ImageContainer,{isSimplifiedPSV:v,layoutType:m}),p.slug?(0,c.Y)(a.A,(0,o.A)({},p,{sx:r?.ProductBadge})):null,t?(0,c.Y)(s.A,{sponsorName:t}):null,(0,c.Y)(h,(0,o.A)({srcSet:!0},y,{"data-fp-product-image":!0,dataFpTag:"data-fp-product-image"})))):null}},2759:(e,t,r)=>{r.d(t,{A:()=>u});var o=r(1873),i=r(53520),a=r(38536),n=r(28270);let s=(0,a.A)("div",{target:"e8motb10"})((0,n.Ay)("product-sponsor",{display:"block",width:"auto",height:"auto",bottom:0,position:"absolute",zIndex:1,textAlign:"center",color:"#494949",backgroundColor:"#E8EBECCC",fontSize:"12px",padding:"4px 12px"}),"");var l=r(52134),c=r(9954);let d=["sponsorName"],u=function(e){let{sponsorName:t=""}=e,r=(0,i.A)(e,d),a=(0,l.Z)();return t?(0,c.Y)(s,(0,o.A)({class:"product-sponsor","data-theme-key":a?void 0:"product-sponsor"},r),`Sponsored by ${t}`):null}},13753:(e,t,r)=>{r.d(t,{R:()=>l});var o=r(93682),i=r(53520);let a=["variant"];function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){(0,o.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let l=e=>{let{itemTitle:t}=e,r=t||{},{variant:o}=r,n=(0,i.A)(r,a);return{ProductWrapper:s({},e?.item),ProductImageWrapper:{display:"block",textDecoration:"none","@media (any-hover: hover)":{transition:"color 0.3s ease-in-out","&:hover":{color:"link-hover-item-title-primary"}}},ProductImage:{ProductBadge:{zIndex:1},ImageContainer:{"& > img":{zIndex:0,position:"absolute",top:0,width:"100%",minWidth:"100%",height:"var(--height, auto)",maxHeight:"100%",objectFit:"var(--object-fit, cover)"},"&:before":{content:'""',color:"transparent",display:"block",width:"100%",height:0,pb:"var(--aspect-ratio, 100%)"}}},ProductInfoDetails:s({display:"block"},e?.itemContent),ProductLabel:{display:"inline-block",backgroundColor:"product-custom-tag.bg",color:"product-custom-tag.color"},ProductTitle:s({fontWeight:"bold",mt:"0.83em",mb:"0.9375rem"},n),ProductTitleWrapper:s({},e?.TitleWrapper),ProductButtons:{ProductButtonsContainer:{alignItems:"center"}}}}},14462:(e,t,r)=>{r.d(t,{B9:()=>d,DG:()=>u,IZ:()=>l,VP:()=>c});var o=r(93682),i=r(15990),a=r(54105);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){(0,o.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let l={gridArea:"header"},c=(e,t)=>({bps:[{options:t,value:s({display:"grid",gridRowGap:{_:"m"},gridColumnGap:{_:"m",xlg:0}},e?{gridTemplateAreas:{_:`
2					"header header header"
3					"content content ad"
4				`,xlg:`
5					"lgut header header header rgut"
6					"lgut content content ad rgut"
7				`},gridTemplateRows:"repeat(2, auto)",gridTemplateColumns:{_:"auto auto auto",xlg:"1fr repeat(3, minmax(auto, {maxContentWidthAd})) 1fr"}}:{gridTemplateAreas:{_:`
8				"header"
9				"content"
10				`,xlg:`
11				"lgut header rgut"
12				"lgut content rgut"
13				`},gridTemplateRows:"repeat(2, auto)",gridTemplateColumns:{_:"minmax(auto, {maxContentWidth}
13)",xlg:"1fr minmax(auto, {maxContentWidth}) 1fr"}})}]}),d=(e,{isMobileStickyAds:t=!1,additionalOffsetTop:r=0}={})=>({adText:{display:{"xxs:smd":"flex"},"&, &:after, &:before":{display:{[e]:"none"}}},container:{width:"100%",display:{"xxs:smd":"block"},left:{[e]:"unset"}},wrapper:{textAlign:"center",display:{"xxs:smd":"flex"},width:{_:"calc(100% + (0.938rem * 2))",md:"calc(100% + (2.5rem * 2))",smd:"unset"},mt:1.25,mb:1.25,margin:{[e]:0},marginLeft:{_:"-0.938rem",md:"-2.5rem",smd:0},position:{[e]:"sticky","<xs":t?"relative":"static"},transition:"top var(--rr-ad-transition-duration, 0s) ease-in",top:{[e]:`calc(var(--sticky-leaderboard-height, 0px) + var(--sticky-header-height) + ${r?`${r}px`:"var(--sticky-navs-height)"})`},alignSelf:{[e]:"flex-start"},gridArea:{[e]:"ad"},"&:after":{content:'""',display:"flex",m:{_:"0 {mobileOuterGutter}",md:"{s} {tabletOuterGutter} 0",xxlg:"{s} 0 0"},visibility:{[e]:"hidden"}}}}),u=()=>({adText:{"&:after":{mr:0},"&:before":{ml:0}},container:{m:(0,a.aP)("xlg")},wrapper:{m:{_:"{m} 0",smd:"{m} auto"},maxWidth:{lg:"{maxContentWidth}"},"#gpt-ad-leaderboard-bottom":s({},i.Q)}})},15990:(e,t,r)=>{r.d(t,{Q:()=>o});let o={position:{_:"sticky",md:"relative"},m:{"md>":"0 calc(50% - 50vw)"}}},23093:(e,t,r)=>{r.d(t,{M:()=>s});var o=r(38815),i=r(72806),a=r(20339),n=r(82511);function s(e){let{price:t,listprice:r,customListPrice:s,customPrice:l,showPrice:c,currency:d}=e,u=(0,a.Bd)("content.product.cta-discount")||(0,n.J)(i.A,"product.cta-discount"),m=c&&(0,o.T2)(r,t,l,s,d),p=(0,o.cT)(s||r,l||t);return{discount:m?u?.replace?.("{discount}",p):null,isShowDiscount:m}}},24321:(e,t,r)=>{r.r(t),r.d(t,{default:()=>e_});var o=r(71055),i=r(14687),a=r(62191),n=r(90580),s=r(14462),l=r(1873),c=r(93682),d=r(80166),u=r(42757),m=r(45025),p=r(18952),f=r(33588),g=r(2698),h=r(32354),b=r(78610),y=r(6913),v=r(13753),w=r(44091),k=r(38536),x=r(28270),A=r(66726);let P=(0,k.A)("section",{target:"e1q24c6y12"})((0,x.Ay)("product-recommendations-section",{padding:{_:"0 {*sizes.primitive-15} {*sizes.primitive-20}",md:"0 {*sizes.primitive-40} {*sizes.primitive-30}"},bps:[{options:"xlg",value:{display:"grid",gridColumnGap:0,gridTemplateAreas:`
14						"lgut header rgut"
15						"lgut content rgut"
16					`,gridTemplateColumns:"1fr minmax(auto, 75rem) 1fr"}}],'[data-theme-key="carousel-item"]':{display:"flex",flexDirection:"column",justifyContent:"space-between",border:"border-xxs-grey",borderRight:"0 solid transparent","&:last-of-type":{borderRight:"border-xxs-grey"}}}),""),_=(0,k.A)("div",{target:"e1q24c6y11"})((0,x.Ay)("product-recommendations-grid",{contain:"layout",display:"grid",gridArea:"content",gridGap:0,gridTemplateColumns:{_:"repeat(2, 1fr)",smd:"repeat(4, 1fr)"},borderLeft:{_:"0 solid transparent"},borderTop:{_:"0 solid transparent"},marginTop:{sm:"{*sizes.primitive-15}"},borderY:{md:"border-xxs-grey"},borderX:{md:"border-xxs-grey"}}),""),O=(0,k.A)("div",{target:"e1q24c6y10"})((0,x.Ay)("product-recommendations-card",{clear:"none",position:"relative",wordBreak:"break-word",padding:"{*sizes.primitive-15}",display:"flex",flexDirection:"column",justifyContent:"flex-start",'[data-theme-key="product-image-container"]':{'&:has([data-theme-key="product-badge"])':{overflow:"visible"},img:{objectFit:"contain"}},"&:nth-child(3), &:nth-child(4)":{borderTop:{"<md":"border-xxs-grey"}},"&:not(:last-child)":{borderRight:{md:"border-xxs-grey"}},"&:nth-child(2)":{borderRight:{"<md":"0 solid transparent"}},"[data-theme-key='separator-multi-retailer']":{marginTop:{_:"{*sizes.primitive-15}","<sm":"{*sizes.primitive-13}"},marginBottom:{_:"{*sizes.primitive-4}"}},"[data-theme-key='embedded-product-buttons-container']":{marginTop:{"xxs>":"0","md>":"{*sizes.primitive-4}","lg>":"{*sizes.primitive-4}"},marginBottom:{"xxs>":"0"},maxWidth:{"<lg":"calc(100vw - {*sizes.primitive-64})"}},"[data-theme-key='embedded-product-button-v2'],[data-theme-key='embedded-product-multi-retailer-button']":{marginBottom:"0.1rem"}}),""),S=(0,k.A)(O,{target:"e1q24c6y9"})((0,x.Ay)("product-recommendations-card-carousel",{height:"100%"}),""),T=(0,k.A)("div",{target:"e1q24c6y8"})((0,x.Ay)("product-recommendations-image-wrapper",{maxWidth:"100%",display:"block"}),""),C=(0,k.A)(A.A,{target:"e1q24c6y7"})((0,x.Ay)("product-recommendations-title-link",{display:"block",textDecoration:"none"}),""),j=(0,k.A)("div",{target:"e1q24c6y6"})((0,x.Ay)("product-recommendations-button-block",{marginBottom:"{*sizes.primitive-10}",display:"flex",flexDirection:"column",alignItems:"center",marginTop:"{*sizes.primitive-0}",'[data-theme-key="embedded-product-buttons-container"]':{marginTop:"0"}}),""),I=(0,k.A)("div",{target:"e1q24c6y5"})((0,x.Ay)("product-recommendations-carousel-wrapper",{display:"flex",flexDirection:"column",alignItems:"center"}),""),B=(0,k.A)("div",{target:"e1q24c6y4"})((0,x.Ay)("product-recommendations-carousel-footer",{width:"100%",display:"flex",flex:1,alignItems:"center",justifyContent:"space-between",minWidth:0,gap:"{*sizes.primitive-8}"}),""),E=(0,k.A)("span",{target:"e1q24c6y3"})((0,x.Ay)("product-recommendations-carousel-status",{flexShrink:0}),""),W=(0,k.A)("div",{target:"e1q24c6y2"})((0,x.Ay)("product-recommendations-carousel-footer-nav",{display:"flex",alignItems:"center",minWidth:0,gap:"{*sizes.primitive-4}"}),""),D=(0,k.A)("div",{target:"e1q24c6y1"})((0,x.Ay)("product-recommendations-carousel-dots",{display:"flex",flex:1,justifyContent:"center",alignItems:"center",gap:"{*sizes.primitive-12}",minWidth:0}),""),M={disabledColor:"brandColorSenary",primary:"brandColorSenary"},R={flexShrink:0,width:"{*sizes.primitive-32}",height:"{*sizes.primitive-32}",padding:0,background:"transparent",border:"none",borderRadius:"50%",boxShadow:"none","&:hover":{backgroundColor:"transparent"},"&:disabled":{opacity:0,border:"none",backgroundColor:"none"}},L=(0,k.A)("button",{target:"e1q24c6y0"})((0,x.Ay)("product-recommendations-carousel-dot",{flexShrink:0,width:"{*sizes.primitive-15}",height:"{*sizes.primitive-15}",borderRadius:"50%",border:"none",padding:0,cursor:"pointer"}),"");var Y=r(28707),F=r(9954);function N(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
16t%2?N(Object(r),!0).forEach(function(t){(0,c.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let{center:$}=u.aS,{large:H}=u.gS,{RUNTIME_PUBLIC_IMAGE_HOSTNAME:q}=d.Ay,V=q?new URL(q).origin:"";function U({product:e,mediaType:t,articleId:r=null,productPosition:i=null,layout:a="grid"}){let n=m.OC.feed,s=(0,w.G0)(e),{setEventData:c,setViewButtons:d,setViewImage:u}=(0,p.cE)(),k=(0,o.useMemo)(()=>{if(!e?.image)return{default:{hostname:V,crop:"1x1",extend_ratio:1}};let{crops:t,metadata:{extend_ratio:r=1}={}}=e.image;return{default:{hostname:V,crop:"1x1",extend_ratio:r,crops:t}}},[e]),x=(0,o.useMemo)(()=>(0,v.R)({}),[]),A=(0,o.useMemo)(()=>(0,y.e)(n),[]),P=(0,o.useMemo)(()=>{if(!e||!s)return e?s:void 0;let t=s.custom_name||s.product?.name;return t===s.custom_name?s:z(z({},s),{},{custom_name:t})},[e,s]),{propsProductAnchor:_,propsProductImage:I,propsProductTitle:B,propsProductDiscount:E,propsProductButtons:W}=(0,p.VY)({align:$,galleryId:"",imageProps:k,layoutType:n,mediaId:"",onClick:void 0,product:P,productWrapperProps:{},size:H,slideNumber:"",sxProps:x,themeOptions:A});if(!e)return null;let D=t??_?.mediaType,M={articleId:r,primaryUx:Y.nB,productPosition:i,recommendationUnitId:Y.Xq},R=z(z(z({},_),M),{},{type:"psv",mediaType:D,target:"_blank",rel:"nofollow noopener noreferrer","aria-label":B?.title??""}),L=z(z(z({},W),M),{},{disableViewableProductTracking:!0,mediaType:D,setEventData:c,setViewButtons:d});return(0,F.Y)("carousel"===a?S:O,null,(0,F.Y)(C,R,(0,F.Y)(T,null,(0,F.Y)(g.default,(0,l.A)({},I,{setViewImage:u}))),(0,F.Y)(h.A,B)),(0,F.Y)(j,null,(0,F.Y)(f.A,(0,l.A)({customDataThemeKey:"embedded-product-discount"},E)),(0,F.Y)(b.A,(0,l.A)({},L,{isProductCardRefreshEnabled:!0}))))}var G=r(53225),J=r(78860),X=r(22730),K=r(83222),Z=r(800),Q=r(20339),ee=r(47382),et=r(86385),er=r(7144),eo=r(174),ei=r(94442),ea=r(81225),en=r(50915);function es(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?es(Object(r),!0).forEach(function(t){(0,c.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):es(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let ec=new ee.default("PRODUCT-RECOMMENDATIONS"),ed="u">typeof document;function eu(e){let t=e?.content_products??e?.data?.content_products??[];return Array.isArray(t)?t:[]}function em(e,t){return{ids:e,useAlto:!!t}}function ep(e){if(!ed)return null;let t=document.cookie.split("; ").find(t=>t.startsWith(`${e}=`));if(!t)return null;let r=t.slice(e.length+1);try{return decodeURIComponent(r)}catch{return r}}function ef(e){return ed?new URLSearchParams(window.location.search).get(e):null}let eg=["google","bing","yahoo","duckduckgo","ecosia","aol","qwant","baidu","yandex"],eh=[...eg,"flipboard"];function eb(e){if(!e)return e;let t=String(e).trim().toLowerCase(),r=eh.find(e=>t.includes(e));if(r)return r;if(!t.includes("."))return t;let o=t.replace(/^https?:\/\//,"");(o=o.split("/")[0].split("?")[0].split("#")[0]).startsWith("www.")&&(o=o.slice(4));let i=o.split(".").filter(Boolean);return 0===i.length?t:i[0]}let ey=new Set(eg);function ev(e){let t=e?.custom_name||e?.product?.name,r=e?.retailer?.affiliate,o=r&&"object"==typeof r&&r.afflink_redirect?r.afflink_redirect:"";return!!((e?.retailer?.affiliate_url||e?.retailer?.url||o)&&e?.image?.aws_url&&e?.image?.crops&&t)}var ew=r(24679);function ek(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function ex(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
16t%2?ek(Object(r),!0).forEach(function(t){(0,c.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ek(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let eA=new ee.default("ARTICLE-PRODUCT-RECOMMENDATIONS"),eP=function(){let e,t,r,i,a=(e=(0,J.z)((0,G._P)(Y.I9)),r=((t=(0,et.A)(Y.jG))?[`${Y.jG}:${t}`]:[]).includes(Y.pd),e||r),n=(i=(0,Z.BV)(Y.MY,null),(0,o.useMemo)(()=>{if(null==i)return null;if("object"==typeof i)return i;if("string"==typeof i)try{return i?JSON.parse(i):null}catch(e){eA.warn("Failed to parse listicle product recommendations Scribe config")}return null},[i])),s=(0,Z.BV)("displayType"),l=(0,Z.BV)("data.content.0.metadata.defaults.user_experience"),c=(0,Z.BV)("data.content.0.content_type.title"),d=(0,Z.BV)("data.content.0.section"),u=(0,Z.BV)("data.content.0.subsection"),m=(0,Z.BV)("data.content.0.id"),p=(0,Z.BV)("data.content.0.display_id",m),f=(0,o.useMemo)(()=>(0,ew.Fd)(n?.eligibleContentTypeNames),[n]),g=(0,ew.NN)(s,l),h=(0,ew.FC)(c,f),b=(0,o.useMemo)(()=>(0,ew.ux)(d,u),[d,u]),y=(0,Q.Bd)("content.productRecommendationsHeading"),v=(0,o.useMemo)(()=>{let e=n?.productBlockHeading?String(n.productBlockHeading).trim():"";return e||y||Y.Sv},[n,y]),w=Number(n?.productCount)>0?Number(n.productCount):4,k=!!(a&&g&&h&&n?.recommendationsUrl),{productIds:x,loading:A}=function({enabled:e,section:t,contentId:r,scribeConfig:i}){let{0:a,1:n}=(0,o.useState)(null),{0:s,1:l}=(0,o.useState)(!1);return(0,o.useEffect)(()=>{if(!e||!i?.recommendationsUrl||!i?.campaignArn){n(null),l(!1);return}let r=Number(i.productCount)>0?Number(i.productCount):Y.Ug,o=i.mockProductIds,a=Array.isArray(o)?o.map(e=>String(e).trim()).filter(Boolean).slice(0,r):[];if(a.length){l(!1),n(a);return}let s=new AbortController,{signal:c}=s,d=!0;return l(!0),n(null),(async()=>{let e=await function(e,{recommendationsUrl:t,campaignArn:r,signal:o,extraHeaders:i}={}){let a;if(!t||!r)return ec.error("Missing campaign ARN or recommendation URL (Scribe / site variation config)"),Promise.resolve({status:0,ok:!1,error:"Missing AWS Personalize runtime config"});let n=(a=ep("mosb"))?a.startsWith("mosb:")?a.slice(0,35):a:null,s=el(el({"x-campaign-arn":r},n?{"x-mosb-cookie":n}:{}),{},{"x-context-source":function(){let e=ef("utm_source");if(e)return eb(e);let t=ep("gpt_utm");if(t)try{let e=JSON.parse(t);if(e.utm_source)return eb(e.utm_source)}catch{}let r=ep("gpt_refdomain");return r?eb(r):"(direct)"}(),"x-context-medium":function(){let e=ef("utm_medium");if(e)return e;let t=ep("gpt_utm");if(t)try{let e=JSON.parse(t);if(e.utm_medium)return e.utm_medium}catch{}let r=ep("gpt_refdomain");if(r){let e=eb(r);if(ey.has(e))return"organic"}return"(none)"}(),"x-context-device":ed?window.mobile?"mobile":window.tablet?"tablet":"desktop":"desktop","x-context-section":e},i&&"object"==typeof i?i:{}),l="u">typeof AbortController?new AbortController:null,c=()=>l?.abort();if(o&&l){if(o.aborted)return Promise.resolve({status:0,ok:!1,error:"aborted"});o.addEventListener("abort",c)}return(0,ei.hd)(t,el({headers:s,timeout:Y.vY},l?{controller:l}:{})).finally(()=>{o&&o.removeEventListener("abort",c)}).then(async e=>{let t;try{t=await e.json()}catch(t){return ec.error("AWS Lambda response: not JSON",{httpStatus:e.status,message:t.message}),{status:e.status,ok:!1,error:"Invalid JSON body"}}return{status:e.status,ok:e.ok,data:t}}).catch(e=>e?.name==="AbortError"||e?.message==="The user aborted a request."?o?.aborted?{status:0,ok:!1,error:"aborted"}:(ec.error("AWS Lambda fetch aborted (timeout or signal)",{ms:Y.vY}),{status:0,ok:!1,error:"timeout"}):(ec.error("AWS Lambda fetch error",{message:e.message}),{status:0,ok:!1,error:e.message}))}(t||"",{recommendationsUrl:i.recommendationsUrl,campaignArn:i.campaignArn,signal:c});if(d&&!c.aborted)if(e.ok&&e.data){var r;let t=(r=e.data,[...new Set((r?.itemList??[]).map(e=>e?.metadata?.content_product_id).filter(Boolean))]);if(!d||c.aborted)return;n(t)}else{if("aborted"===e.error||!d||c.aborted)return;eA.error(`Listicle recommendations AWS unavailable: ${e.error??e.status??"unknown"}`),n(null)}})().finally(()=>{d&&!c.aborted&&l(!1)}),()=>{d=!1,s.abort()}},[e,t,r,i]),{productIds:a,loading:s}}({enabled:k,section:b,contentId:m,scribeConfig:n}),{products:P,loading:_}=function(e,t){let{0:r,1:i}=(0,o.useState)(null),{0:a,1:n}=(0,o.useState)(!1),s=(0,J.z)((0,G._P)("commerce.use-alto-offer-selection"));return(0,o.useEffect)(()=>
16{if(!e?.length||!t||t<1){i(null),n(!1);return}let r=new AbortController,{signal:o}=r,a=!0;return n(!0),(async()=>{let r=await function(e,t,r,o=!1){let i=Number(t);if(!Number.isFinite(i)||i<1||r?.aborted)return Promise.resolve([]);let a=[...new Set(e)],n=a.slice(0,i),s=a.slice(i);return(function(e,t,r=!1){if(t?.aborted)return Promise.resolve([]);let o=[en.L,em(e,r)];return t&&o.push({fetchOptions:{signal:t}}),(0,ea.G)(o).then(e=>eu(e)).catch(e=>(t?.aborted||e?.name==="AbortError"||ec.warn(`Voltron batch fetch failed, falling back to single-item backfill: ${e.message}`),[]))})(n,r,o).then(e=>{if(r?.aborted)return[];let t=e.filter(ev);if(t.length>=i)return t.slice(0,i);let a=0===e.length?[...n,...s]:s;return r?.aborted?[]:function e(t,r,o,i,a=!1){if(!r||!t.length||i?.aborted)return Promise.resolve(o);let[n,...s]=t;return(function(e,t,r=!1){if(t?.aborted)return Promise.resolve(null);let o=[en.L,em([e],r)];return t&&o.push({fetchOptions:{signal:t}}),(0,ea.G)(o).then(e=>eu(e)[0]??null).catch(e=>(t?.aborted||e?.name,null))})(n,i,a).then(t=>i?.aborted?o:t&&ev(t)?e(s,r-1,[...o,t],i,a):e(s,r,o,i,a))}(a,i-t.length,t,r,o)})}(e,t,o,s);a&&!o.aborted&&i(r)})().catch(()=>{a&&!o.aborted&&i(null)}).finally(()=>{a&&!o.aborted&&n(!1)}),()=>{a=!1,r.abort()}},[e,t,s]),{products:r,loading:a}}(x,k?w:null),O=(0,o.useMemo)(()=>(P??[]).filter(ev).slice(0,w),[P,w]),S=(0,X.Ay)(["<xs"]);return{heading:v,fetchEnabled:k,hasFullProductSet:O.length>=w&&w>0&&!A&&!_,hasRenderableProducts:O.length>0&&w>0&&!A&&!_,validProducts:O,isMobile:S,trackingArticleId:p,idsLoading:A,productsLoading:_}};function e_(){let{heading:e,fetchEnabled:t,hasRenderableProducts:r,validProducts:l,isMobile:c,trackingArticleId:d}=eP(),{carouselIndex:u,setCarouselIndex:m,carouselStatusText:p,carouselController:f,lastSlideIndex:g,isOnFirstSlide:h,isOnLastSlide:b}=function(e){let t=(0,o.useMemo)(()=>e.map(e=>e.id).join(","),[e]),{0:r,1:i}=(0,o.useState)(()=>({index:0,method:null,productIdsKey:t})),a=(0,o.useCallback)(e=>{i(r=>ex(ex({},"function"==typeof e?e(r):e),{},{productIdsKey:t}))},[t]);(0,o.useEffect)(()=>{i({index:0,method:null,productIdsKey:t})},[t]),(0,o.useEffect)(()=>{if(r.productIdsKey!==t||!["click","swipe"].includes(r.method))return;let o=e[r.index];if(!o?.id)return;let i=r.index+1;(0,eo.A)("product_carousel",r.method,{primaryUx:Y.nB,primaryUX:"product_image_carousel",rovProdId:o.id,pos:i,recommendationUnitId:Y.Xq})},[r.index,r.method,r.productIdsKey,t,e]);let n=(0,o.useMemo)(()=>({key:Y.jP,macros:{current:r.index+1,total:e.length}}),[r.index,e.length]),s=(0,Q.Bd)(n),l=(0,o.useMemo)(()=>{var t,o;return s?String(s):(t=r.index+1,o=e.length,Y.Rh.replaceAll("{current}",String(t)).replaceAll("{total}",String(o)))},[s,r.index,e.length]),c=(0,o.useMemo)(()=>({currentIndex:r,setCurrentIndex:a}),[r,a]),d=e.length>0?e.length-1:0,u=r.index<=0,m=r.index>=d;return{carouselIndex:r,setCarouselIndex:a,carouselStatusText:l,carouselController:c,lastSlideIndex:d,isOnFirstSlide:u,isOnLastSlide:m}}(l),y=function({enabled:e,articleId:t}={}){let[,r]=(0,er.A)(Y.Lv),{inView:i,observer:a,ref:n}=(0,K.A)({rootMargin:"0px 0px",threshold:.5}),s=(0,o.useRef)(null),l=(0,o.useRef)(!1),c=(0,o.useRef)(t),d=(0,o.useMemo)(()=>(function({articleId:e,recommendationUnitId:t=Y.Xq}={}){return[Y.Ln,function(e){if(null!=e&&""!==e)return String(e)}(e)||"unknown-article",t].join(":")})({articleId:t}),[t]),u=(0,o.useMemo)(()=>(function({recommendationUnitId:e=Y.Xq}={}){return Object.fromEntries(Object.entries({recommendationUnitId:e,primaryUx:Y.nB}).filter(([,e])=>null!=e&&""!==e))})(),[]),m=(0,o.useCallback)(()=>{null!==s.current&&(clearTimeout(s.current),s.current=null)},[]);return(0,o.useEffect)(()=>{c.current!==t&&(c.current=t,l.current=!1,m())},[t,m]),(0,o.useEffect)(()=>{!e||!t||l.current||function(e){if(!e)return!1;try{return"1"===window.sessionStorage.getItem(e)}catch(e){return!1}}(d)||!i?m():null===s.current&&(s.current=setTimeout(()=>{s.current=null,l.current=!0;if(d)try{window.sessionStorage.setItem(d,"1")}catch(e){}(0,eo.A)("viewableProductImpression","Viewable Product Card",u),r(void 0,u),n.current&&a.current.unobserve(n.current),a.current.reset()},1e3))},[t,m,e,u,i,n,a,d,r]),(0,o.useEffect)(()=>m,[m]),n}({enabled:t&&r,articleId:d}),v=(0,o.useMemo)(()=>l.map((e,t)=>(0,F.Y)(U,{key:e.id,layout:"carousel",product:e,mediaType:Y.Jx,articleId:d,productPosition:t+1})),[d,l]),w=(0,o.useMemo)(()=>(0,F.Y)(B,null,(0,F.Y)(E,null,p),(0,F.Y)(W,null,(0,F.Y)(a.A,{type:"button","aria-label":"Previous product",icon:"caret-left-regular",iconAlt:"Previous",iconLabel:"Previous product",isDisabled:h,tapSizeMinimum:40,iconProps:M,sxProps:R,onClick:()=>m(({index:e})=>({index:Math.max(0,e-1),method:"click"}))}),(0,F.Y)(D,null,l.map((e,t)=>(0,F.Y)(L,{key:e.id,type:"button","aria-label":`Go to product ${t+1} of ${l.length}`,"aria-current":t===u.index?"true":void 0,onClick:()=>m({index:t,method:"click"})}))),(0,F.Y)(a.A,{type:"button","aria-label":"Next product",icon:"caret-right-regular",iconAlt:"Next",iconLabel:"Next product",isDisabled:b,tapSizeMinimum:40,iconProps:M,sxProps:R,onClick:()=>m(({index:e})=>({index:Math.min(g,e+1),method:"click"}))}))),[p,l,u.index,h,b,g,m]);return t&&e&&r?(0,F.Y)(P,{"aria-label":e,ref:y},(0,F.Y)(n.A,{heading:e,sxProps:{BlockHeader:s.IZ,BlockHeading:{variant:"block-heading-4-across"}}}),c?(0,F.Y)(I,null,(0,F.Y)(i.Ay,{"aria-label":e,controller:f,hed:null,itemsPerPage:1,withPeekthrough:!0,peekWidthPercentage:20,withNav:!1},v),w):(0,F.Y)(_,null,l.map((e,t)=>(0,F.Y)(U,{key:e.id,product:e,mediaType:Y.Jx,articleId:d,productPosition:t+1})))):null}},28760:(e,t,r)=>{r.d(t,{CL:()=>l,Tw:()=>n,a3:()=>u,q2:()=>p,qM:()=>s,t3:()=>m,vL:()=>c});var o=r(38536),i=r(28270),a=r(22440);let n=(0,o.A)("div",{target:"eqz7u0o6"})((0,i.Ay)("block-header",{position:"relative",gridArea:"header",contain:"layout"}),""),s=(0,o.A)("h2",{target:"eqz7u0o5"})((0,i.Ay)("block-heading",{margin:0,"a,span":{overflow:"hidden"},a:{color:"link-block-header",textDecoration:"none",transition:"color 0.3s ease-in-out",elevation:"base","&:hover":{color:"link-hover-block-header"}},span:{"&:before":{elevation:"sunken"}},"&:not(:has(a)) span:hover":{color:"inherit"}}),""),l=(0,o.A)("p",{target:"eqz7u0o4"})((0,i.Ay)("block-subheading"),""),c=(0,o.A)(a.Ay,{target:"eqz7u0o3"})((0,i.Ay)("block-subheading-link",{cursor:"pointer",textDecoration:"none","&:hover":{color:"link-hover-block-header"}}),""),d=e=>"alignment"!==e&&"theme"!==e,u=(0,o.A)("div",{shouldForwardProp:d,target:"eqz7u0o2"})(({alignment:e})=>(0,i.Ay)("block-header-body-text",{mb:"1.25rem",textAlign:e,variant:"body-xs"}),""),m=(0,o.A)("div",{shouldForwardProp:d,target:"eqz7u0o1"})(({alignment:e})=>(0,i.Ay)("block-header-cta-button-wrapper",{display:"flex",justifyContent:"center"===e?e:"right"===e?"flex-end":"flex-start"}),""),p=(0,o.A)(a.Ay,{target:"eqz7u0o0"})((0,i.Ay)("block-header-cta-button",{display:"flex",justifyContent:"center",alignItems:"center",m:0,p:"xs",textDecoration:"none",width:"fit-content",variant:"button-primary"}),"")},32354:(e,t,r)=>{r.d(t,{A:()=>A});var o=r(1873),i=r(53520),a=r(38536),n=r(28270),s=r(9954);let l=(0,a.A)("h6",{target:"e1bddzxd0"})((0,n.Ay)("embedded-product-title",{fontWeight:"normal",m:0,"& em":{fontFamily:"inherit",fontStyle:"italic"}}),"");function c(e){return(0,s.Y)(l,(0,o.A)({as:e?.headerLevel?`h${e.headerLevel}`:null},e))}var d=r(47241),u=r(7144),m=r(49444),p=r(33911),f=r(50804),g=r(87301),h=r(86385),b=r(7855),y=r(47523),v=r(52134),w=r(94710);function k(e){return(0,s.Y)(w.Hh,(0,o.A)({as:e?.headerLevel?`h${e.headerLevel}`:null},e))}let x=["blockAffiliates","sxProps","themeOptions","title","useWrapper","onClick","data-theme-key"],A=function(e){let{blockAffiliates:t=!1,sxProps:r={},themeOptions:a={},title:n="",useWrapper:l=!1,onClick:w,"data-theme-key":A}=e,P=(0,i.A)(e,x),[,_]=(0,u.A)("affiliate_item_click"),[,O]=(0,u.A)(g.pt),{isDisplayGrid:S,isControl:T}=(0,f.ho)(),{isAboveTheFoldFeatureOn:C}=(0,p.a)(),j=!!(0,h.A)(b.HX),I=!!(0,h.A)(y.Hb),{trackRYAffiliate
16Click:B}=(0,m.r3)(t),E=e=>{w&&w(e),_(),(S||T||C||j||I)&&O(),B(e)},W=(0,v.Z)(k,c),D=W===k?{}:{"data-theme-key":A};return n?l?(0,s.Y)(W,(0,o.A)({},P,D,{onClick:E}),(0,s.Y)(d.A,{sxProps:r?.TitleWrapper,themeOptions:a?.titleWrapper},(0,s.Y)("span",{dangerouslySetInnerHTML:{__html:n}}))):(0,s.Y)(W,(0,o.A)({},P,D,{dangerouslySetInnerHTML:{__html:n},onClick:E})):null}},33588:(e,t,r)=>{r.d(t,{A:()=>c});var o=r(1873),i=r(53520),a=r(57598),n=r(23093),s=r(9954);let l=["isEmbeddedGallery","sxProps","themeOptions","customDataThemeKey"],c=function(e){let{isEmbeddedGallery:t=!1,sxProps:r={},themeOptions:c={},customDataThemeKey:d}=e,u=(0,i.A)(e,l),{discount:m,isShowDiscount:p}=(0,n.M)(u);return p?(0,s.Y)(a.M,(0,o.A)({},c,{sx:r},d&&{"data-theme-key":d},{"data-fp-product-discount-info":!0}),m):t?(0,s.Y)(a.M,null):null}},44410:(e,t,r)=>{r.d(t,{A:()=>g});var o=r(1873),i=r(53520),a=r(38536),n=r(28270);let s=(0,a.A)("div",{target:"emvwxws0"})((0,n.Ay)("product-badge",{display:"block",width:"auto",height:"auto",maxWidth:"calc(100% / 3)",top:.5,left:.5,position:"absolute",img:{verticalAlign:"top"},zIndex:e=>e.isMultipleImages?1:"unset"}),"");var l=r(64781),c=r(61546),d=r(75846),u=r(52134),m=r(94710),p=r(9954);let f=["slug","name"],g=function(e){let{slug:t="",name:r=""}=e,a=(0,i.A)(e,f),n=(0,u.Z)(m.sE,s),g=(0,u.Z)();return t?(0,p.Y)(n,(0,o.A)({class:"product-badge","data-theme-key":g?void 0:"product-badge"},a,{"data-vars-ga-product-badge-id":t,"data-vars-ga-product-badge-name":r,"data-fp-product-badge":!0}),(0,p.Y)(l.default,(0,o.A)({type:g?c.PV.Embeddable:c.PV.Stylized,relativeUrl:`static/images/badges/${t}.svg`,title:r,alt:r,height:d.fr.HEIGHT,width:d.fr.WIDTH},a))):null}},50915:(e,t,r)=>{r.d(t,{L:()=>a});var o=r(20608),i=r(91408);let a=(0,o.J1)`
17	query GetProducts($ids: [UUID]!, $useAlto: Boolean = false) {
18		content_products(IDs: $ids) {
19			...${i.Ie.name}
20		}
21	}
22	${i.Ie.fragment}
23`},51540:(e,t,r)=>{r.d(t,{V:()=>s,_:()=>n});var o=r(38536),i=r(28270),a=r(60511);let n=(0,o.A)("div",{target:"e467n7m1"})((0,i.Ay)("embedded-product-image-container",{maxWidth:"100%",display:"flex",flexDirection:"column",img:{maxHeight:{_:"100vw",md:a.KK},maxWidth:"100%",width:"100%",height:"100%",display:"block",marginBottom:0,objectFit:"contain",objectPosition:"50% 50%"}}),""),s=(0,o.A)("div",{target:"e467n7m0"})((0,i.Ay)("embedded-product-image-image-container",{width:e=>e.isSimplifiedPSV&&"summary-view"===e.layoutType?{_:"8.75rem","xxs:xs":"6.25rem"}:"100%",display:"inline-flex",flexDirection:"column",justifyContent:"center",alignItems:"center",position:"relative",isolation:"isolate",height:e=>e.isSimplifiedPSV&&"summary-view"===e.layoutType?{_:"8.75rem","xxs:xs":"6.25rem"}:"auto",'& > .product-badge, & > [data-theme-key="product-badge"]':{zIndex:3},'& > [data-theme-key="carousel-container"]':{position:"relative",zIndex:1}}),"")},59716:(e,t,r)=>{r.d(t,{i:()=>l});var o=r(53225),i=r(68014),a=r.n(i),n=r(15630);let s=a()(()=>r.e(30455).then(r.bind(r,30455)),{id:"305b0c0",loadableGenerated:{webpack:()=>[30455]}});function l({image:e}={},t=null){return(0,o._P)("fre.enable-fastly-image")&&(0,n.Xt)(e)?s:t}},72806:(e,t,r)=>{r.d(t,{A:()=>l});let o="Every item on this page was chosen by an {brandName} editor. We may earn commission on some of the items you choose to buy. {link}",i="Every item on this page was chosen by a {brandName} editor. We may earn commission on some of the items you choose to buy. {link}",a="Our car experts choose every product we feature. We may earn money from the links on this page. {link}",n="We may earn a commission for purchases made through our links.",s="We pick every product that we think you'll love the most. We may earn money from the links on this page. {link}",l={"affiliate-disclosure":"We may earn commission from links on this page, but we only recommend products we back. {link}","affiliate-disclosure-footer":"We may earn commission from links on this page, but we only recommend products we back.","affiliate-disclosure--oprahdaily":"Our editors handpick the products that we feature. We may earn commission from the links on this page. {link}","affiliate-disclosure--altaonline":"Every item on this page was chosen by {brandName} team. The site may earn a commission on some products {link}","affiliate-disclosure-footer--altaonline":"Alta Journal participates in an affiliate marketing program with Bookshop.org in order to supp
23ort independent booksellers. Alta Journal does not receive any commissions on books purchased from our site. All commissions are distributed to our bookstore partners.","affiliate-disclosure--autoweek":a,"affiliate-disclosure--bestproducts":"If you buy something from the links on this page, we may earn a commission. {link}","affiliate-disclosure-footer--bestproducts":n,"affiliate-disclosure--bicycling":"Gear-obsessed editors choose every product we review. We may earn commission if you buy from a link. {link}","affiliate-disclosure--caranddriver":a,"affiliate-disclosure-footer--caranddriver":n,"affiliate-disclosure--cosmopolitan":"We may earn commission from links on this page, but we only recommend products we love. Promise. {link}","affiliate-disclosure--countryliving":"Country Living editors select each product featured. If you buy from a link, we may earn a commission. {link}","affiliate-disclosure--delish":"Delish editors handpick every product we feature. We may earn commission from the links on this page. {link}","affiliate-disclosure--elle":o,"affiliate-disclosure--elledecor":o,"affiliate-disclosure--esquire":"Every product was carefully curated by an Esquire editor. We may earn a commission from these links. Here’s {link} and why you should trust us.","affiliate-disclosure--gearpatrol":"Every product is carefully selected by our editors. If you buy from a link, we may earn a commission. {link}","affiliate-disclosure--goodhousekeeping":"We've been independently researching and testing products for over 120 years. If you buy through our links, we may earn a commission. Learn more about our {link}","affiliate-disclosure-footer--goodhousekeeping":"{brandName} participates in various affiliate marketing programs, which means we may get paid commissions on editorially chosen products purchased through our links to retailer sites.","affiliate-disclosure--harpersbazaar":"Every product on this page was chosen by a Harper's BAZAAR editor. We may earn commission on some of the items you choose to buy. {link}","affiliate-disclosure--housebeautiful":"Every item on this page was hand-picked by a House Beautiful editor. We may earn commission on some of the items you choose to buy. {link}","affiliate-disclosure--menshealth":"Our product picks are editor-tested, expert-approved. We may earn a commission through links on our site. {link}","affiliate-disclosure--popularmechanics":"Gear-obsessed editors choose every product we review. We may earn commission if you buy from a link. {link}","affiliate-disclosure--prevention":"We may earn commission from links on this page, but we only recommend products we back. {link}","affiliate-disclosure--redbookmag":s,"affiliate-disclosure--resin":s,"affiliate-disclosure--roadandtrack":a,"affiliate-disclosure--runnersworld":"We earn a commission for products purchased through some links in this article. {link}","affiliate-disclosure--sanantonioexpressnews":"Editors handpick every product that we feature. We may earn money from the links on this page. {link}","affiliate-disclosure--seventeen":"Seventeen picks products that we think you'll love the most. We may earn commission from the links on this page. {link}","affiliate-disclosure--thepioneerwoman":"Every item on this page was chosen by an editor from The Pioneer Woman. We may earn commission on some of the items you choose to buy. {link}","affiliate-disclosure--townandcountrymag":i,"affiliate-disclosure--veranda":i,"affiliate-disclosure--womansday":i,"affiliate-disclosure--womenshealthmag":"Women's Health may earn commission from the links on this page, but we only feature products we believe in. {link}",author:{by:"By {authorName}",formerJobTitle:"Former {jobTitle}",seeMore:"See More"},feed:{seeMore:"See More",theLatest:"The Latest"},image:{"fallback-alt":"This is an image","no-longer-available":"Image no longer available"},jumpTo:"Jump to:",jumpToWithoutColon:"Jump to",jumpToProduct:"Jump to Products",viewProducts:"View Products",gallery:{arrowLeft:"Arrow Left",arrowRight:"Arrow Right",nextGallery:"Next Gallery",nextSlide:"Next Slide",openGallery:"Open Gallery",previous:"Previous",prevSlide:"Previous Slide",slideNum:"Slide",slideOf:"of",slides:"Slides",useArrowsToNav:"Use Arrow Keys to Navigate",useSwipeSlidesToNav:"Swipe Slides to Navigate",seeAllPhotos:"See All {count} Photos",seeOnePhoto:"See 1 Photo",viewGallery:"View Gallery",showMore:"Show More"},product:{for:"for",credit:"Credit",cta:"SHOP NOW","cta-multi-retailer":"{price} at {retailer}","hide-price-cta":"Check Price","hide-price-cta-multi-retailer":"Shop","cta-discount":"Now {discount}% Off","hide-retailer-cta":"{price} Shop Now",coupon:{"coupon-code-copied":"Coupon Code Copied!","ta
23p-to-copy":"Tap to Copy -- Expires {date}",copied:"Copied"},price:{fromRetailer:"{price} at {retailer}",check:"Check Price",discount:"% off","original-price":"Original Price {listPrice}","sale-price":"Sale Price {price} {discount} percent off",label:"Price","sale-label":"Sale Price","list-label":"List Price"},pros:"Pros",cons:"Cons"},"product-explorer":{search:{label:"Search"},sort:{label:"Sort by","last_updated_at:desc":"Newest","price:asc":"Price Low to High","price:desc":"Price High to Low"},options:[{label:"any price",value:"reset",isChecked:!1},{label:"$1-10",value:"pricebracket:1:0-10",isChecked:!1},{label:"$10-25",value:"pricebracket:1:10-25",isChecked:!1},{label:"$25-50",value:"pricebracket:1:25-50",isChecked:!1},{label:"$50-100",value:"pricebracket:1:50-100",isChecked:!1},{label:"$100-250",value:"pricebracket:1:100-250",isChecked:!1},{label:"$250 & UP",value:["pricebracket:1:250-500","pricebracket:1:500-1000","pricebracket:1:1000"],isChecked:!1}]},aboveTheFold:{jumpToReview:"Jump to Review",topPicks:"Top Picks",showMore:"Show More",showLess:"Show Less"},productSummaryView:{readMore:"Read more",readMoreTitle:"Read more about",showLess:"Show less",showMore:"Show more"},recipe:{"calories-per-serving":"Cal/Serv",yields:"Yields","prep-time":"Prep Time","active-time":"Active Time","process-time":"Cook Time","total-time":"Total Time",instructions:"Directions",ingredients:"Ingredients",stepTitle:"Step"},saved:{authenticationModalDek:"Create an account and you'll be able to save and revisit your recipes, leave reviews, and more. Its free!",authenticationModalTitle:"Wanna save this recipe?",authenticationTitle:"Please sign in to see your saved recipes.",defaultMessage:"30 characters maximum",errorCTA:"Try again",errorTitle:"Oops! Something went wrong.",existingFolderNameError:"This folder name already exists. Try another.",folder:"Folder",foldersLimitDek:"You've reached the limit on the number of folders that can be created. You'll need to delete a folder to create a new one.",foldersLimitHed:"Folder Limit Reached",tooltipText:"View in ",removeModal:{dek:"{title} will be removed from {headline}.",cancelButtonText:"Cancel",removeButtonText:"Remove"}},day:"day",days:"days",hour:"hr",hours:"hrs",min:"min",mins:"mins",listen:"listen",read:"read",nowWatching:"Now Watching",relatedVideos:"Related Videos",watchNext:"Watch Next",watchNextInBody:"More From {brandName}",watchNextInBodyButton:"Watch Full Video","video-watch":{transcript:"Transcript",viewFullTranscript:"Show full transcript",hideFullTranscript:"Hide transcript"},showingCurrentOfTotal:"Showing {current} of {total}",loadMore:"Load More",readFullBio:"Read full bio",readMore:"Read More",readLess:"Read Less",embedAccessibilityText:"This content is imported from {embedName}. You may be able to find the same content in another format, or you may be able to find more information, at their web site.","search-label":"search",sponsorBrandName:"{sponsorBrandName} Logo",spotimDisclaimer:"This commenting section is created and maintained by a third party, and imported onto this page. You may be able to find more information on their web site.",goToChat:"go to chat",syndicatedLinkText:"From: ",translatedAndEditedByText:"Translated and Edited by ",scrollToRecipe:"Jump to recipe","why-trust-us":"Why Trust Us?","why-trust-us--goodhousekeeping":"review process.","why-trust-us--bicycling":"How we test gear.","why-trust-us--esquire":"how we test products","ai-policy-footer":"With our commitment to publishing engaging, quality content, we may use AI tools to help source ideas, edit and transform our content, and assist in creating dynamic new experiences. All uses of AI are subject to human oversight.",rating:"Rating",ratingPlural:"Ratings",firstRate:"Be the First to Rate",firstReviewer:"Be the first to review!",noReviews:"No Reviews",enhancedBylines:{reviewedBy:"Reviewed by",medicallyReviewedBy:"Medically reviewed by",testedBy:"Tested by",instructedBy:"Instructed by",expertConsulted:"Expert consulted:",factCheckedBy:"Fact-checked by",recipeBy:"Recipe by",photographyBy:"Photography by",illustrationBy:"Illustration by",instrumentedTestingBy:"Instrumented testing by","range/mpgTestingBy":"Range/MPG testing by",trackTestingBy:"Track testing by",videoBy:"Video by"},search:{noResults:"No results for keyword",oneResult:"{resultsCount} result for keyword",multiResults:"{resultsCount} results for keyword",seeMore:"See More"},share:{share:"Share Article",facebook:"Facebook",email:"Email",print:"Print",copy:"Copy Link",linkCopied:"Link Copied!",pinterest:"Pinterest",reddit:"Reddit",x:"X"},shareAriaLabel:{share:"Open share options",facebook:"Share on Facebook",email:"Share via email",print:"Download PDF or print",copy:"Copy Link",linkCopied:"Link Copied",pinterest:"Share on Pinterest",reddit:"Share on Reddit",x:"Share on X"},showLess:"Show Less",showMore:"Show More",embedScriptLoadingText:"The {embedName} script is loading...",productButton:{separatorMultiRetailer:"Also Consider"},keySpecs:{seeAllSpecifications:"See All Specifications"},memberShipFallback:{buttonText:"Join Us",dek:"Want unlimited digital access?",hed:"This Content is for Members Only",signInCopy:"Sign in"},auth:{register:"Register",signup:"Sign Up",login:"log in",registerOrLogin:"{register} or {login} to view your account",authorizeToSeeDetails:"My Account is available to signed-in users. Sign up or sign in to continue."},myAccountTitle:"My Account",myAccountTitleSEO:"My Account | {brandName}",videoUnavailable:{headline:"This video is currently unavailable",title:"Title:",available:"Available:",lastUpdated:"Last Updated:"}}},90580:(e,t,r)=>{r.d(t,{A:()=>y});var o=r(93682),i=r(22440),a=r(53225),n=r(800),s=r(68014),l=r.n(s),c=r(28760),d=r(47241),u=r(9954),m=r(71055);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
23t%2?p(Object(r),!0).forEach(function(t){(0,o.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let g=l()(()=>r.e(40410).then(r.bind(r,40410)),{id:"0ad0550",loadableGenerated:{webpack:()=>[40410]}}),h={TitleDesignElementBefore:{__themeKey:"block-header-design-element-before"},TitleDesignElementAfter:{__themeKey:"block-header-design-element-after"}};function b({className:e="",heading:t="",subheading:r="",headingUrl:o="",text:s="",textAlignment:l=null,button:p=null,renderContent:y,sxProps:v={BlockHeading:{},BlockSubheading:{},TitleWrapper:{TitleDesignElementBefore:{},TitleDesignElementAfter:{}}}}){let w=(0,a._P)("custom-feeds.block-head-image"),k=(0,a._P)("fre.use-h1-for-block-headings-on-homepage"),x=(0,n.BV)("layoutContextProps.isHomePage"),A=l?{textAlign:l}:{};return(0,u.Y)(c.Tw,{className:e,sx:v.BlockHeader,"data-theme-key":"block-header"},w?(0,u.Y)(g,{placement:"before",sxProps:v.BlockHeaderImage}):null,t?(0,u.Y)(c.qM,{as:!0===k&&x?"h1":"h2",sx:f(f({},v.BlockHeading),A),priority:"high","data-theme-key":"block-heading"},(0,u.Y)(d.A,{sxProps:v.TitleWrapper,themeOptions:h},o?(0,u.Y)(i.Ay,{href:o},t):(0,u.Y)("span",null,t))):null,r?(0,u.Y)(c.CL,{sx:f(f({},v.BlockSubheading),A),"data-theme-key":"block-subheading"},o&&!t?(0,u.Y)(c.vL,{href:o},r):(0,u.Y)(m.Fragment,null,r)):null,w?(0,u.Y)(g,{placement:"after",sxProps:v.BlockHeaderImage}):null,s?(0,u.Y)(c.a3,{alignment:l,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:s}}):null,p?(0,u.Y)(c.t3,{alignment:l},(0,u.Y)(c.q2,{href:p.href},p.text)):null,y?y():null)}let y=function({className:e="",heading:t="",subheading:r="",headingUrl:o="",text:i="",textAlignment:a=null,button:n=null,renderContent:s=null,sxProps:l={BlockHeading:{},BlockSubheading:{},TitleWrapper:{TitleDesignElementBefore:{},TitleDesignElementAfter:{}}}}){return t||r||i||n?(0,u.Y)(b,{className:e,heading:t,subheading:r,headingUrl:o,text:i,textAlignment:a,button:n,sxProps:l,renderContent:s}):null}},91408:(e,t,r)=>{r.d(t,{Ie:()=>p});var o=r(20608),i=r(85073);let a=new i.F("ProductDetailFragment",(0,o.J1)`
24		fragment ProductDetailFragment on ProductDetail {
25			id
26			__typename
27			brand
28			category
29			description
30			features
31			images
32			name
33		}
34	`),n=new i.F("RetailerFragment",(0,o.J1)`
35		fragment RetailerFragment on Retailer {
36			affiliate
37			affiliate_url
38			availability
39			display_name
40			full_url
41			id
42			is_active
43			listprice
44			listprice_currency
45			price
46			price_currency
47			retailer_name
48			reviews_number
49			sem3_id
50			siterating
51			sku
52			url
53			parent_sku
54			metadata
55			is_custom
56		}
57	`),s=new i.F("SwappedRetailerFragment",(0,o.J1)`
58		fragment SwappedRetailerFragment on Retailer {
59			affiliate
60			affiliate_url
61			availability
62			display_name
63			full_url
64			id
65			is_active
66			listprice
67			listprice_currency
68			price
69			price_currency
70			retailer_name
71			reviews_number
72			sem3_id
73			siterating
74			sku
75			url
76			parent_sku
77			metadata
78			is_custom
79		}
80	`),l=new i.F("EmbeddedProductProductImageFragment",(0,o.J1)`
81		fragment EmbeddedProductProductImageFragment on ProductImage {
82			id
83			aws_url
84			filename
85			height
86			is_custom
87			# TODO: Moved from duplicated fragment. I recommend combining 'image_metadata: metadata' and 'metadata' below in a separate ticket, since this affects many components.
88			image_metadata: metadata {
89				extend_ratio
90				photo_credit
91				seo_meta_description
92				seo_meta_title
93			}
94			metadata {
95				photo_credit
96				seo_meta_description
97				source {
98					title
99				}
100				custom_tag
101				selected_crop
102				position
103				show
104			}
105			crops
106			photo_credit
107			width
108		}
109	`),c=new i.F("EmbeddedProductProductVideoFragment",(0,o.J1)`
110		fragment EmbeddedProductProductVideoFragment on ProductVideo {
111			id
112			video {
113				id
114				title
115				description
116				source_video_url
117				duration
118				metadata {
119					videoEmbedId: video_embed_id
120				}
121				nearest_aspect_ratio
122			}
123			preview_url
124			metadata {
125				position
126				show
127			}
128			created_at
129		}
130	`),d=new i.F("BadgeFragment",(0,o.J1)`
131		fragment BadgeFragment on Badge {
132			name
133			slug
134			status
135			is_automatic
136		}
137	`),u=new i.F("EmbeddedProductOfferFragment",(0,o.J1)`
138		fragment EmbeddedProductOfferFragment on Offer {
139			affiliate
140			affiliate_url
141			availability
142			display_name
143			full_url
144			id
145			is_active
146			listprice
147			listprice_currency
148			price
149			price_currency
150			retailer_name
151			reviews_number
152			sem3_id
153			siterating
154			sku
155			url
156			parent_sku
157			metadata
158			is_custom
159			customer_rating
160			reviews_count
161		}
162	`),m=new i.F("CouponFragment",(0,o.J1)`
163		fragment CouponFragment on Coupon {
164			code
165			headline
166			dateEnd: date_end
167		}
168	`),p=new i.F("EmbeddedProductContentProductFragment",(0,o.J1)`
169		fragment EmbeddedProductContentProductFragment on ContentProduct {
170			id
171			__typename
172			call_to_action
173			created_at
174			custom_brand
175			custom_currency
176			custom_description
177			custom_name
178			custom_price
179			custom_retailer
180			last_updated_at
181			retailer_name
182			selected_crop
183			show_price
184			statements
185			resource_type
186			product_metadata: metadata
187			badge {
188				...${d.name}
189			}
190			product {
191				retailers {
192					...${n.name}
193				}
194				...${a.name}
195			}
196			image {
197				...${l.name}
198			}
199			custom_images {
200				...${l.name}
201			}
202			videos {
203				...${c.name}
204			}
205			retailer {
206				...${n.name}
207			}
208			swapped_retailer {
209				...${s.name}
210			}
211			coupon {
212				...${m.name}
213			}
214			offers @include(if: $useAlto) {
215			...${u.name}
216			}
217		}
218		${d.fragment}
219		${a.fragment}
220		${l.fragment}
221		${c.fragment}
222		${n.fragment}
223		${s.fragment}
224		${m.fragment}
225		${u.fragment}
226	`)},92899:(e,t,r)=>{r.d(t,{j:()=>O});var o=r(93682),i=r(39288),a=r(54791),n=r(15630),s=r(59716),l=r(78860),c=r(53225),d=r(7144),u=r(33911),m=r(50804),p=r(87301),f=r(86385),g=r(7855),h=r(47523),b=r(49444),y=r(83222),v=r(71055),w=r(45025),k=r(3666);function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
226t%2?x(Object(r),!0).forEach(function(t){(0,o.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let{PUBLISHED:P,UNPUBLISHED:_}=i.hT;function O(e){let{image:t,badge:r={},affiliateBlockingData:o,crop:i,title:x,priority:O="auto",layoutType:S="",setViewImage:T=()=>{},disableAffiliateClickTracking:C=!1}=e,j=(0,k.A)(o),{inView:I,ref:B}=(0,y.A)({rootMargin:"0px 0px",threshold:.5});(0,v.useEffect)(()=>(I&&T(!0),()=>T(!1)),[I]);let E=(0,s.i)({image:t},a.default),W=(0,l.z)((0,c._P)("fre.commerce.simplified-psv")),D=W&&S===w.OC.productSummaryView,[,M]=(0,d.A)("product_click_total"),[,R]=(0,d.A)("affiliate_item_click"),[,L]=(0,d.A)(p.pt),{isDisplayGrid:Y,isControl:F}=(0,m.ho)(),{isAboveTheFoldFeatureOn:N}=(0,u.a)(),z=!!(0,f.A)(g.HX),$=!!(0,f.A)(h.Hb),{trackRYAffiliateClick:H}=(0,b.r3)(j),{is_automatic:q=!1,name:V="",slug:U="",status:G=_}=r||{},J=t?A(A({},t),{},{metadata:A(A({},t.metadata),{},{crops:t.crops}),hips_url:(0,n.se)(t.aws_url),height:t.height||"100%",width:t.width||"100%"}):null;return{badgeProps:{slug:G!==P||q?null:U,name:V},imageProps:A({ImgComp:E,imageWrapperRef:B,image:J,config:{640:{resize:"640:*",crop:i},980:{resize:"980:*",crop:i}},title:x,priority:"high"===O},C?{}:{onClick:e=>{D||(M(),R(),(Y||F||N||z||$)&&L(),H(e))}}),restProps:{isSimplifiedPSV:W}}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.