Mon. Jan 17th, 2022
Spread the love


The key to feeling fancy while staying warm this winter? Velvet. At once elegant, comfy and cold-weather-friendly, velvet is the perfect fabric for looking glamorous all season long. And with the holiday party invites rolling in, it’s the perfect time to add some luxurious velvet items to your shopping cart.

To get you started, we talked to professional stylists about the velvet pieces you need in your closet right now. Whether you’re looking to class up a sweater with some soft velvet pants or go all-out in a velvet jumpsuit, shop their picks below to glam up your winter wardrobe.

Free People
Free People Shayla Velvet Minidress

“I love the versatility of this minidress,” says stylist and fashion influencer Travia Earl, who notes that you can wear it both as a festive dress and “unbuttoned as a layering piece.” Its soft velvet fabric comes in mood-lifting yellow or terracotta hues and features ruching around the center seam.

Closet London Plus Tie Waist Velvet Midi Dress

Asos
Closet London Plus Tie-Waist Velvet Mini Dress

“This is a gorgeous shade of emerald,” says stylist Liz Rundbaken. And with its high neck, nipped waist and short sleeves, the dress is flirty while still feeling modest enough for an office holiday party.

Hill House Ellie Nap Dress

Hill House Home
Hill House Ellie Nap Dress

Hill House’s nap dresses went viral over the past year for good reason: They’re extra forgiving, and comfy enough to, well, nap in. For the colder months, they’ve released the popular Ellie style in deep emerald green and rich burgundy velvets.

Wild Fable Long-Sleeve Ruched Velvet Bodycon Dress ($30; target.com)

Wild Fable Long-Sleeve Ruched Velvet Bodycon Dress

Target
Wild Fable Long-Sleeve Ruched Velvet Bodycon Dress

Earl calls this dress “trendy and fashion-forward” and deems the floral-print pattern perfect “to spice up your wardrobe.” It also comes all black, red, pink or orange, and reviewers praise its curve-friendly fit.

A.L.C. Katherine Cutout Velvet Turtleneck Maxi Dress

Nordstrom
A.L.C. Katherine Cutout Velvet Turtleneck Maxi Dress

There are just so many special details about this dress: the navy color, the high neck, the asymmetric hem, the cutout at the waist,” says Rundbaken. “All this adds up to a super-sexy winter dress.”

Bardot Milania Twist-Back Dress ($119; lordandtaylor.com)

Bardot Milania Twist-Back Dress

Lord & Taylor
Bardot Milania Twist-Back Dress

For a similar vibe without the price tag, check out this navy long-sleeved dress by Bardot. Long sleeves and modest scoop neck are winter-appropriate, while a high slit and open back keep the dress from feeling stuffy.

Lulus Jacinda Velvet Wrap Maxi Dress

Lulus
Lulus Jacinda Velvet Wrap Maxi Dress

If you prefer your velvet a little less form-fitting, check out this popular maxi wrap dress from Lulus. Deep blue or purple midweight velvet, an adjustable waist tie and a deep-V neckline make for a dress that’s as comfortable as it is romantic.

French Connection Yule Velvet Tie-Waist Minidress ($118; nordstrom.com)

French Connection Yule Velvet Tie-Waist Minidress

Nordstrom
French Connection Yule Velvet Tie-Waist Minidress

Everyone needs a little black dress, says stylist Tyler Okuns, who loves this cute and classic option from French Connection. With its puff sleeves, sweetheart neckline and stretchy smocked back, it’s a great piece for fall and winter nights out.

Gap Recycled High-Rise Velvet Wide-Leg Pants

GAP
Gap Recycled High-Rise Velvet Wide-Leg Pants

It’s “all about the high-rise wide pant this season,” says Earl, who calls these Gap pants “the perfect office staple for the winter.” Rundbaken agrees, noting that “these loose, high-waisted pants are super flattering and equally comfy.” She also likes the fact that they’re made from 80% recycled polyester. The pants come in four colors (black, navy, tan and eggplant) and regular, petite and tall sizing.

Ganni Paisley-Debossed Velvet Flared Trousers

GANNI
Ganni Paisley-Debossed Velvet Flared Trousers

Rundbaken loves “the subtle print of these pants,” which she says manages to nod both the ‘60s and the ‘90s “yet still looks completely modern.” While not exactly a budget item, Rundbaken notes that these make for a surprisingly versatile closet addition because they’re easier to dress up or down. For starters, she suggests pairing them with “a simple cami or turtleneck sweater” and then layering a blazer on top.

BP Stretch Velvet Flare Pants

Nordstrom
BP Stretch Velvet Flare Pants

With their high waist, subtle flair and crushed velvet look, Okuns says that these BP pants will become one of “the most versatile pieces” in your cold-weather wardrobe. And while undoubtedly glamorous, their soft, stretchy fabric makes them perfectly suited to cozy nights in as well.

Spanx Velvet Leggings

Spanx
Spanx Velvet Leggings

While winter and leggings don’t usually go together, Rundbaken calls this warm velvet pair “such a great staple for all kinds of cool weather.” And given that these are Spanx, the leggings also have shapewear properties for a smooth fit.

Free People Slim Pull-On Velvet Flare Pants

Free People
Free People Slim Pull-On Velvet Flare Pants

Brighten up winter doldrums with these Free People flares, which come in 10 vivid shades ranging from hot pink to lime green. Some colors offer shorter inseam options, and reviewers call them stylish, comfortable and “oh so flattering.”

Treasure & Bond Velvet Pants ($69; nordstrom.com)

Treasure & Bond Velvet Pants

Nordstrom
Treasure & Bond Velvet Pants

With their loose, slightly tapered silhouette and waist tie, these ankle-length Treasure & Bond trousers are like an elegant version of your favorite sweatpants.

Be Proud by BP Velvet Blazer ($64, originally $80; nordstrom.com) & Wide-Leg Stretch Velvet Pants ($48, originally $60; nordstrom.com)

Be Proud by BP Velvet Blazer & Wide-Leg Stretch Velvet Pants

Nordstrom
Be Proud by BP Velvet Blazer & Wide-Leg Stretch Velvet Pants

Both Earl and Rundbaken love this duo from Nordstrom’s in-house brand BP. “I love the sheen and blush color of this suit,” says Rundbaken, who also praises the wide-leg pants for still managing to look tailored. “If you ever wanted to wear PJs to a party,” she says, “this would fill the bill.” Earl, meanwhile, loves that the pants in particular are “perfect for so many body types.”

Frame Single-Button Blazer ($628; frame-store.com) & Mini Boot Trouser ($368; frame-store.com)

Frame Single-Button Blazer & Mini Boot Trouser

Frame
Frame Single-Button Blazer & Mini Boot Trouser

For a more fitted look, Rundbaken recommends this matching set from Frame, which, while undoubtedly a splurge, is also undoubtedly elegant. “With its lean lines, sharp shoulders and glossy velvet,” Rundbaken deems the set “a callback to Tom Ford-era Gucci.” She also likes that it comes in “four luscious jewel tones” in addition to classic black, so it’ll “suit many moods and occasions.”

J. Crew Willa Blazer in Stretch Velvet

J. Crew
J. Crew Willa Blazer in Stretch Velvet

This single-button J. Crew blazer has a vibe a lot like the Frame blazer above, but is decidedly more wallet-friendly! Pair it with any of the velvet pants listed above for a glamorous winter outfit.

Wild Fable Women’s High-Rise Velvet Flare Pants ($20; target.com) & Cinched Front Velvet Tiny Tank Top ($15; target.com)

Wild Fable Women’s High-Rise Velvet Flare Pants & Cinched Front Velvet Tiny Tank Top

Target
Wild Fable Women’s High-Rise Velvet Flare Pants & Cinched Front Velvet Tiny Tank Top

This Target duo also got nods from both stylists. Rundbaken calls the set “super fun” and especially loves the pants’ flared silhouette and glossy ribbed finish. Earl notes that the outfit “is perfect for your holiday party with friends.” Both items come in jewel-toned purple, blue or classic black and are offered in both regular and plus sizing.

Fraiche by J. Velvet Tie Waist Jumpsuit

Nordstrom
Fraiche by J. Velvet Tie-Waist Jumpsuit

“Jumpsuits are the new pants suits!” Earl says, calling this lux-looking velvet jumpsuit “chic yet sophisticated.” In addition to this pretty, holiday-perfect berry color, it also comes in light gray and deep navy blue.

Fraiche by J. Velvet Ruffle Tie-Waist Romper

Nordstrom
Fraiche by J. Velvet Ruffle Tie-Waist Romper

Fraiche by J. also makes a velvet tie-waist romper that’s super similar in style to the jumpsuit above. Pair it with black tights and heels for a fun and flirty New Year’s Eve look.

Lulus Party Diva Purple Crushed Velvet Jumpsuit

Lulus
Lulus Party Diva Purple Crushed Velvet Jumpsuit

For a similar vibe at a lower price, check out this short-sleeve jumpsuit from Lulus in eye-catching purple crushed velvet.

Boden Halterneck Velvet Jumpsuit

Boden
Boden Halterneck Velvet Jumpsuit

Boden’s party-ready jumpsuit is another great option for celebrating the holidays in comfort and style. The soft fabric, which comes in either black or deep plum, features just the right amount of stretch and the jumpsuit comes in petite, regular and tall sizing.

(function(){
  function addScript({ async, defer, name, src, ucStates, id, data }) {
    try {
      if (src && typeof src === 'string') {
        if (ucStates && ucStates.length) {
          WM.UserConsent.addScript({ src, async, defer }, ucStates);
        } else {
          const script = document.createElement('script');
          script.src = src;
          script.dataset.uid = name;
          script.async = async;
          script.defer = defer;
          script.onload = () => {window.dispatchEvent(new CustomEvent(name+'.loaded'));};
          if (id) {
            script.id = id;
          }
          if (data && typeof data === 'object') {
            Object.keys(data).forEach(key => script.dataset[key] = data[key]);
          }
          document.head.appendChild(script);
        }
      }
    } catch(e) {
      console.error('ExternalScripts: error adding script "' + name + '"', e);
    }
  };
//snippet: user-consent
    window.WM=window.WM||{},function(e,o){"use strict";var n;"function"!=typeof e.CustomEvent&amp;&amp;((n=function(e,n){var t;return n=n||{bubbles:!1,cancelable:!1,detail:void 0},(t=o.createEvent("CustomEvent")).initCustomEvent(e,n.bubbles,n.cancelable,n.detail),t}).prototype=e.Event.prototype,e.CustomEvent=n,"function"!==e.Event&amp;&amp;(e.Event=n))}(window,document),window.WM.UserConsent=window.WM.UserConsent||function(y,C){"use strict";var f,k="",v={},I=!1,m=[],b=0,h=null,E=null,S="",T={},A="",D="",O="",x=!1,P=!1,w=!1,n=!1,L="",t="3.1.15",M=null,G=!1,R=!1,U=!1,_=null,W="",B={addtlConsentCookie:"OTAdditionalConsentString",brand:"",categories:{req:"required",ven:"vendor",p1:"data-store",p2:"ads-contextual",p3:"ads-person-prof",p4:"ads-person",p5:"content-person-prof",p6:"content-person",p7:"measure-ads",p8:"measure-content",p9:"measure-market",p10:"product-develop",sp1:"product-security",sp2:"deliver-content",f1:"combine-data",f2:"link-devices",f3:"id-devices",sf1:"geolocate",sf2:"scan-devices"},ccCookie:"countryCode",compatCategories:{"ads-general":["ads-contextual","ads-person","measure-ads"],"ads-vendor":["vendor","ads-contextual","ads-person","measure-ads"],"behavior-general":["content-person"],"behavior-vendor":["vendor","content-person"],functional:["vendor","data-store","content-person-prof","content-person"],performance:["measure-content","measure-market","product-develop"],"perf-general":["measure-content","measure-market","product-develop"],"perf-vendor":["vendor","measure-content","measure-market","product-develop"],"person-general":["ads-person-prof","content-person-prof"],"person-vendor":["vendor","ads-person-prof","content-person-prof"],"social-vendor":["vendor"],"storage-general":["data-store"],"storage-vendor":["vendor","data-store"],targeting:["vendor","ads-contextual","ads-person-prof","ads-person","measure-ads"]},confirmCookie:"OptanonAlertBoxClosed",consentChangeAction:null,consentChangeActionDelay:1e3,consentCookie:"OptanonConsent",consentDefaults:{required:!0,vendor:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentExpireIn:1,consentLinkTitle:"",controlCookie:"OptanonControl",cookieSameSite:"Lax",cookieSecure:!1,enableDebug:!1,enableGPC:!0,enableTransitionCheck:!0,enableWebViewCheck:!0,gdprApplies:!1,gdprIabCookie:"eupubconsent-v2",gdprIabIsGlobal:!1,gdprIabMaxPurposes:10,gdprIabMaxSpecialFeats:2,gdprIabPolicy:2,geoUsedByOneTrust:!0,languageFromBrowser:!0,privacyCenterLinkTitle:"",psmAppId:"",psmEnv:"prod",regionChangeAction:null,regions:[{id:"ccpa",compatCodes:{adv:["ven"],bbv:["ven"],fc:["ven"],pfv:["ven"],pzv:["ven"],sav:["ven"],smv:["ven"],tc:["ven"]},compatTransition:{cond:!1,new:"ven",old:"pzv"},consentExpireIn:3,consentGpcDefaults:{vendor:!1},consentImpliedDefaults:{required:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentLinkTitle:"Do Not Sell My Personal Information",geoMatch:["US","PR","VI","UM",""]},{id:"gdpr",compatCodes:{ad:["p2","p4","p7"],adv:["p2","p4","p7"],bb:["p6"],bbv:["p6"],fc:["p1","p5","p6"],pf:["p8","p9","p10"],pfv:["p8","p9","p10"],pz:["p3","p5"],pzv:["p3","p5"],sa:["p1"],sav:["p1"],tc:["p2","p3","p4","p7"]},consentDefaults:{required:!0,vendor:!0,"data-store":!1,"ads-contextual":!1,"ads-person-prof":!1,"ads-person":!1,"content-person-prof":!1,"content-person":!1,"measure-ads":!1,"measure-content":!1,"measure-market":!1,"product-develop":!1,"product-security":!0,"deliver-content":!0,"combine-data":!1,"link-devices":!1,"id-devices":!1,geolocate:!1,"scan-devices":!1},consentImpliedDefaults:{required:!0,vendor:!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0},consentLinkTitle:"Manage Cookies+",gdprApplies:!0,geoMatch:["GB","DE","FR","IT","ES","PL","RO","NL","BE","GR","CZ","PT","SE","HU","AT","BG","DK","FI","SK","IE","HR","LT","SI","LV","EE","CY","LU","MT","NO","IS","LI"]},{id:"global",geoMatch:["*"]}],reloadOnConsentChange:!0,reloadOnConsentReduction:!1,scCookie:"stateCode",setPageClass:!0,useIAB:!0,uspApiCookieName:"usprivacy",uspApiExplicitNotice:!0,uspApiIsLspa:!1};function N(e){var n=Array.prototype.slice.call(arguments);n[0]="[WMUC]"+(0===A.length?"":" ("+A+")")+":",("error"===e?console.error:console.log).apply(console,n)}function d(e){return!!Number(e)}function p(e){return parseInt(e,2)||0}function l(e){return 100*p(e)}function g(e){for(var n="A".charCodeAt(),t=e.match(/.{6}/g),o="",r=0;r&lt;t.length;r++)o+=String.fromCharCode(p(t[r])+n);return o}function z(e){for(var n=e.split(&quot;&quot;),t={},o=0;o&lt;n.length;o++)d(n[o])&amp;&amp;(t[o+1]=!0);return t}function V(e){var n,t,o,r,s,i,a=[];if(&quot;string&quot;!=typeof e)return N(&quot;error&quot;,&quot;Invalid TC string specified&quot;),a;for(o=e.split(&quot;.&quot;),r=0;r&lt;o.length;r++){for(n=function(e){if(&quot;function&quot;==typeof y.atob)try{return atob(e.replace(/_/g,&quot;/&quot;).replace(/-/g,&quot;+&quot;))}catch(e){N(&quot;error&quot;,&quot;Failed to decode TC string&quot;)}return&quot;&quot;}(o[r]),s=0,i=&quot;&quot;;s&lt;n.length;s++)t=n.charCodeAt(s).toString(2),i+=&quot;00000000&quot;.slice(0,8-t.length)+t;a.push(i)}return 2!==p(a[0].slice(0,6))?(N(&quot;error&quot;,&quot;Unsupported TC string version&quot;),[]):a}function F(e){for(var t=0,i=function(n,e,t,o){function r(){if(o.pubRestrictionEntry&amp;&amp;o.rangeEntry)for(var e in o.rangeEntry)Object.prototype.hasOwnProperty.call(o.rangeEntry,e)&amp;&amp;(o.pubRestrictionEntry[e]=(o.pubRestrictionEntry[e]||[]).concat(o.rangeEntry[e]));o.numPubRestrictions&amp;&amp;(o.numPubRestrictions--,n.push({key:&quot;purposeId&quot;,size:6},{key:&quot;restrictionType&quot;,size:2},{key:&quot;numEntries&quot;,size:12}))}function s(){o.numEntries?(o.numEntries--,n.push({key:&quot;isRange&quot;,size:1,decoder:d},{key:&quot;startVendorId&quot;,size:16})):r()}function i(){return!o.purposeId||[{purpose:o.purposeId,isAllowed:0!==o.restrictionType,isConsentRequired:1===o.restrictionType,isLegitimateInterestRequired:2===o.restrictionType}]}if(&quot;isRangeEncoding&quot;===e.key)n.push(t?{key:&quot;numEntries&quot;,size:12}:{key:&quot;bitField&quot;,size:o.maxVendorId,decoder:z});else if(&quot;numEntries&quot;===e.key)o.rangeEntry={},s();else if(&quot;isRange&quot;===e.key)t&amp;&amp;n.push({key:&quot;endVendorId&quot;,size:16});else if(&quot;startVendorId&quot;===e.key)o.isRange||(o.rangeEntry[t]=i(),s());else if(&quot;endVendorId&quot;===e.key){for(var a=o.startVendorId;a&lt;=o.endVendorId;a+=1)o.rangeEntry[a]=i();s()}else&quot;numCustomPurposes&quot;===e.key?n.push({key:&quot;customPurposeConsents&quot;,size:o.numCustomPurposes,decoder:z},{key:&quot;customPurposeLegitimateInterests&quot;,size:o.numCustomPurposes,decoder:z}):&quot;numPubRestrictions&quot;===e.key&amp;&amp;(o.pubRestrictionEntry={},r())},a=function(e){return e.pubRestrictionEntry||e.rangeEntry||e.bitField||e},c=function(e,n){n=n.slice(t,t+e.size);return t+=e.size,(e.decoder||p)(n)},n=function(e,n){for(var t,o,r={},s=0;s&lt;e.queue.length;s++)o=function(e,n){var t,o,r,s={};if(!e.queue)return c(e,n);for(t=0;t&lt;e.queue.length;t+=1)o=e.queue[t],r=c(o,n),s[o.key]=r,i(e.queue,o,r,s);return a(s)}(t=e.queue[s],n),r[t.key]=o,i(e.queue,t,o,r);return a(r)},o=V(e),r=function(e){for(var n=[{key:&quot;purposeConsents&quot;,size:24,decoder:z},{key:&quot;purposeLegitimateInterests&quot;,size:24,decoder:z}],t=[{key:&quot;version&quot;,size:6},{key:&quot;created&quot;,size:36,decoder:l},{key:&quot;lastUpdated&quot;,size:36,decoder:l},{key:&quot;cmpId&quot;,size:12},{key:&quot;cmpVersion&quot;,size:12},{key:&quot;consentScreen&quot;,size:6},{key:&quot;consentLanguage&quot;,size:12,decoder:g},{key:&quot;vendorListVersion&quot;,size:12},{key:&quot;policyVersion&quot;,size:6},{key:&quot;isServiceSpecified&quot;,size:1,decoder:d},{key:&quot;useNonStandardStacks&quot;,size:1,decoder:d},{key:&quot;specialFeatureOptins&quot;,size:12,decoder:z}].concat(n).concat({key:&quot;purposeOneTreatment&quot;,size:1,decoder:d},{key:&quot;publisherCountryCode&quot;,size:12,decoder:g}),o=[].concat([{size:3}]).concat(n).concat({key:&quot;numCustomPurposes&quot;,size:6}),r=[{key:&quot;core&quot;,queue:t}],s=1;s&lt;e.length;s++)3===p(e[s].slice(0,3))&amp;&amp;r.push({key:&quot;publisherTC&quot;,queue:o});return r}(o),s={},u=0;u&lt;r.length;u++)s[r[u].key]=n(r[u],o[u]),t=0;return s}function q(e){e=new RegExp(&quot;(^|;) *&quot;+e+&quot; *= *([^;]+)&quot;),e=C.cookie.match(e);return e?e.pop():null}function o(e,n,t){e&amp;&amp;(C.cookie=e+&quot;=&quot;+(&quot;string&quot;==typeof n?n:&quot;&quot;)+&quot;; Domain=&quot;+((t=t||{}).domain||v.cookieDomain)+&quot;; Path=&quot;+(t.path||&quot;/&quot;)+(t.maxage?&quot;; Max-Age=&quot;+t.maxage:t.expires?&quot;; Expires=&quot;+t.expires:&quot;&quot;)+(t.secure?&quot;; Secure&quot;:&quot;&quot;)+(t.samesite?&quot;; SameSite=&quot;+t.samesite:&quot;&quot;))}function j(e){for(var n=0,t={},n=0;n&lt;f.length;n++)t[f[n]]=e[f[n]];return t}function J(e,n){var t=0;if(n)for(e=e||{},t=0;t&lt;f.length;t++)&quot;boolean&quot;==typeof n[f[t]]&amp;&amp;(e[f[t]]=n[f[t]]);return e}function H(){var e,n,t,o,r,s,i,a,c,u,d,p,l=[],g=[],C=q(v.consentCookie),f=!1,m=!1,b=!1;if(C&amp;&amp;-1!==C.indexOf(&quot;&amp;groups=&quot;)||!0===v.useExternalConsent||(I=!1,E=null),!0===v.useExternalConsent&amp;&amp;(C=&quot;groups=&quot;+encodeURIComponent(y.OTExternalConsent.groups)),(R=!1)===I?(d=j(v.consentDefaults),(m=!0)===v.enableGPC&amp;&amp;v.consentGpcDefaults&amp;&amp;navigator.globalPrivacyControl&amp;&amp;(d=J(d,v.consentGpcDefaults),R=!0)):!0!==v.useExternalConsent&amp;&amp;v.gdprApplies&amp;&amp;v.useIAB&amp;&amp;v.gdprIabCookie&amp;&amp;(d=function(e,n){var t,o,r,s,i,a=null;if(&quot;string&quot;==typeof e&amp;&amp;0!==e.length)if(!0===v.useExternalConsent&amp;&amp;y.OTExternalConsent.tcString?(L=y.OTExternalConsent.tcString,s=r=&quot;external consent&quot;,k=y.OTExternalConsent.addtlConsent||&quot;&quot;):(L=q(e),r=&quot;&quot;&quot;+e+'&quot; cookie',s=&quot;&quot;&quot;+n+'&quot; cookie',null===(k=&quot;string&quot;==typeof n&amp;&amp;0!==n.length?q(n):&quot;&quot;)&amp;&amp;(k=&quot;&quot;)),L)if((i=F(L))&amp;&amp;i.core&amp;&amp;i.core.policyVersion===v.gdprIabPolicy&amp;&amp;i.core.purposeConsents){for(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Processed TC string from &quot;+r+&quot;: &quot;,i),a=j(v.consentImpliedDefaults),i.core.purposeLegitimateInterests=i.core.purposeLegitimateInterests||{},i.core.specialFeatureOptins=i.core.specialFeatureOptins||{},t=1;t&lt;=v.gdprIabMaxPurposes;t++)a[o=v.categories[&quot;p&quot;+t.toString(10)]]=&quot;boolean&quot;==typeof i.core.purposeConsents[t]?i.core.purposeConsents[t]:&quot;boolean&quot;==typeof i.core.purposeLegitimateInterests[t]?i.core.purposeLegitimateInterests[t]:&quot;boolean&quot;==typeof v.consentImpliedDefaults[o]&amp;&amp;v.consentImpliedDefaults[o];for(t=1;t&lt;=v.gdprIabMaxSpecialFeats;t++)a[o=v.categories[&quot;sf&quot;+t.toString(10)]]=&quot;boolean&quot;==typeof i.core.specialFeatureOptins[t]?i.core.specialFeatureOptins[t]:&quot;boolean&quot;==typeof v.consentImpliedDefaults[o]&amp;&amp;v.consentImpliedDefaults[o];0!==k.length&amp;&amp;-1===k.search(/^d+~[d.]*$/)&amp;&amp;(N(&quot;error&quot;,&quot;Error: Invalid AC string in &quot;+s+&quot;.&quot;),k=&quot;&quot;)}else N(&quot;error&quot;,&quot;Error: Invalid TC string in &quot;+r+&quot;.&quot;),k=L=&quot;&quot;;else k=L=&quot;&quot;;return a}(v.gdprIabCookie,v.addtlConsentCookie))?m=!0:d=J(j(v.consentDefaults),v.consentImpliedDefaults),C)for(s=C.split(&quot;&amp;&quot;),r=0;r&lt;s.length;r++)if(u=s[r])if(u=(p=u.split(&quot;=&quot;))[0],p=p[1],!1===m&amp;&amp;&quot;groups&quot;===u&amp;&amp;p){for(a=decodeURIComponent(p).split(&quot;,&quot;),c=0;c&lt;a.length;c++)o=(i=a[c].split(&quot;:&quot;))[0].toLowerCase(),i=&quot;1&quot;===i[1],o&amp;&amp;(v.categories[o]?(d[v.categories[o]]=i,&quot;req&quot;!==o&amp;&amp;(f=!0)):(v.compatTransition&amp;&amp;v.compatTransition.old===o&amp;&amp;v.compatTransition.cond===i&amp;&amp;(b=!0),v.compatCodes[o]&amp;&amp;(l.push(o),g.push(i))));if(!1===f&amp;&amp;0&lt;l.length)for(G=!0,c=0;c&lt;l.length;c++)for(t=v.compatCodes[l[c]],n=0;n&lt;t.length;n++)(e=v.categories[t[n]])&amp;&amp;(d[e]=g[c]);else!0===b&amp;&amp;d[v.categories[v.compatTransition.new]]!==v.compatTransition.cond&amp;&amp;(d[v.categories[v.compatTransition.new]]=v.compatTransition.cond)}else&quot;version&quot;===u&amp;&amp;p?S=p:&quot;isIABGlobal&quot;===u&amp;&amp;(x=&quot;true&quot;===p);return d}function e(){return j(h)}function r(){return P}function Y(){return!1===P}function s(){return&quot;ccpa&quot;===v.regId}function u(){return null!==h}function i(e,n){var t,o,r,s,i=!0,a=&quot;iab-&quot;+v.regId,c=&quot;not ready&quot;;if(u()&amp;&amp;e)for(e=Array.isArray(e)?e:[e],s=0;s&lt;e.length&amp;&amp;!0===i;s++)if((c=e[s])&amp;&amp;&quot;required&quot;!==c)if(&quot;iab&quot;===c||c===a){if(v.useIAB&amp;&amp;(!n||!n.ignoreIAB))break}else if(&quot;boolean&quot;==typeof h[c]&amp;&amp;!1===h[c])i=!1;else if(v.compatCategories[c])for(r=v.compatCategories[c],t=0;t&lt;r.length;t++)if(o=r[t],&quot;boolean&quot;==typeof h[o]&amp;&amp;!1===h[o]){i=!1;break}return v.debug&amp;&amp;((n=n||{}).name=n.name||n.id||&quot;unnamed&quot;,m.push({ts:new Date,act:n.cact||&quot;CHK&quot;,desc:n.name,res:i,note:!i&amp;&amp;c||&quot;&quot;}),N(&quot;debug&quot;,!0===i?&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] ALLOWS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script added&quot;:&quot;&quot;):&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] REJECTS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script NOT added&quot;:&quot;&quot;))),i}function Z(){var e=s()?!0===U?(h.vendor?y.WM.CDP.ccpaShareData():y.WM.CDP.ccpaDoNotShare(),y.WM.CDP.getUSPString()):&quot;1&quot;+(v.uspApiExplicitNotice?&quot;Y&quot;:&quot;N&quot;)+(h.vendor?&quot;N&quot;:&quot;Y&quot;)+(v.uspApiIsLspa?&quot;Y&quot;:&quot;N&quot;):&quot;1---&quot;;return Y()&amp;&amp;e!==W&amp;&amp;(W=e,!1===U&amp;&amp;null===_&amp;&amp;o(v.uspApiCookieName,e,{domain:v.cookieDomain,path:&quot;/&quot;,samesite:v.cookieSameSite,secure:v.cookieSecure}),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;USP string updated: &quot;,e)),W}function K(){y.location.reload()}function $(e){var n;return!y.frames[e]&amp;&amp;(C.body?((n=C.createElement(&quot;iframe&quot;)).style.cssText=&quot;display:none&quot;,n.name=e,C.body.appendChild(n)):setTimeout($.bind(y,e),5),!0)}function Q(e){for(var n=null,t=y;t;t=t.parent){try{if(t.frames&amp;&amp;t.frames[e]){n=t;break}}catch(e){}if(t===y.top)break}return n}function X(e){y.addEventListener?y.addEventListener(&quot;message&quot;,e,!1):y.attachEvent(&quot;onmessage&quot;,e)}function ee(e){var n;T=e||{ccpaTCS:W,consentInteractions:b,consentTime:E,consentVersion:S,countryCode:D,region:v.regId,stateCode:O,userConsentVersion:t},Y()&amp;&amp;o(v.controlCookie,&quot;ccc=&quot;+T.countryCode+&quot;&amp;csc=&quot;+T.stateCode+&quot;&amp;cic=&quot;+T.consentInteractions+&quot;&amp;otvers=&quot;+T.consentVersion+&quot;&amp;pctm=&quot;+(T.consentTime&amp;&amp;encodeURIComponent(T.consentTime.toISOString())||&quot;0&quot;)+&quot;&amp;reg=&quot;+T.region+&quot;&amp;ustcs=&quot;+encodeURIComponent(T.ccpaTCS)+&quot;&amp;vers=&quot;+T.userConsentVersion,{domain:v.cookieDomain,expires:(e=v.consentExpireIn,(n=n?new Date(n):new Date).setUTCFullYear(n.getUTCFullYear()+e),n.toUTCString()),path:&quot;/&quot;,samesite:v.cookieSameSite,secure:v.cookieSecure})}function ne(){var e=null,n=q(v.confirmCookie);return&quot;string&quot;==typeof n&amp;&amp;0!==n.length&amp;&amp;(e=new Date(n),!1===y.isNaN(e.valueOf()))?e:null}function a(){var e,n,t=ne(),o=!1,r=0&lt;y.WM.UserConsent_wrapproc?new Date(y.WM.UserConsent_wrapproc):null,s=I,i=E,a=!1;for(y.WM.UserConsent_wrapproc=0,t&amp;&amp;(null===E||E&lt;t)&amp;&amp;(I=!0,E=t),n=H(),e=0;eE.getTime()+v.consentChangeActionDelay+1e3)&amp;&amp;(E=r),r=h,h=n,Z(),ee(),!0===o){if(!0===v.debug)try{m.push({ts:new Date,act:"CHG",desc:JSON.stringify(n),res:v.reloadOnConsentChange||v.reloadOnConsentReduction&amp;&amp;a,note:"function"==typeof v.consentChangeAction?"change function":""})}catch(e){N("error","Failed to track consent change: ",e)}if("function"==typeof v.consentChangeAction&amp;&amp;v.consentChangeAction(j(h),v.regId,S,r),C.dispatchEvent(new CustomEvent("userConsentChanged",{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:E,old:r,new:j(h),usp:W,tcf:L,acf:k}})),!0===v.reloadOnConsentChange||!0===a&amp;&amp;!0===v.reloadOnConsentReduction)setTimeout(K,100);else if(Y())try{y.sessionStorage.setItem("_ucWMCons",JSON.stringify({consentState:h,consentTime:E,consentVersion:S,iabIsGlobal:x})),y.postMessage("_ucWMConsReset","*")}catch(e){N("error","Failed to update session storage and notify children of consent change: ",e)}}}else E=i,(!T.region||!T.consentVersion&amp;&amp;S||!T.userConsentVersion||T.userConsentVersion&lt;&quot;3.1.1&quot;)&amp;&amp;ee()}function c(e){var n,t,o,r,s,i,a,c,u,d,p=C.getElementsByTagName(&quot;head&quot;)[0],l=C.createElement(&quot;script&quot;),g=null;if(null===h){if(null!==(s=Q(&quot;_usrConWM&quot;))){A=y.name||&quot;child&quot;;try{r=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMConf&quot;))}catch(e){r=null,N(&quot;error&quot;,&quot;Failed to parse parent frame consent settings.&quot;)}if(&quot;object&quot;==typeof r&amp;&amp;null!==r){e.countryCode=r.countryCode,e.cookieDomain=r.cookieDomain,e.cookieSameSite=r.cookieSameSite,e.cookieSecure=r.cookieSecure,e.domId=r.domId,e.languageFromBrowser=!!r.langFromBrowser,e.enableDebug=!!r.enableDebug,e.enableGPC=!!r.enableGPC,e.regId=r.regId,e.stateCode=r.stateCode,e.src=r.src;try{i=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMCons&quot;))}catch(e){i=null,N(&quot;error&quot;,&quot;Failed to parse parent frame consent state.&quot;)}&quot;object&quot;==typeof i&amp;&amp;null!==i&amp;&amp;(h=i.consentState,E=i.consentTime,S=i.consentVersion,e.gdprIabIsGlobal=!!i.iabIsGlobal,P=!0),!1===r.parentReload&amp;&amp;X(function(e){var n;if(&quot;_ucWMConsReset&quot;===e.data){try{n=y.sessionStorage.getItem(&quot;_ucWMCons&quot;)}catch(e){n=null}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;(e=function(e,n){var t=0;if(e&amp;&amp;n)for(t=0;t&lt;f.length;t++)if(!0===e[f[t]]&amp;&amp;!0!==n[f[t]])return!0;return!1}(h,n.consentState),h=n.consentState,E=n.consentTime,S=n.consentVersion,Z(),(!0===v.reloadOnConsentChange||!0===e&amp;&amp;!0===v.reloadOnConsentReduction)&amp;&amp;setTimeout(K,100))}})}}if(!(e&amp;&amp;e.src&amp;&amp;e.domId&amp;&amp;e.cookieDomain))throw new Error(&quot;Invalid config passed to user-consent!&quot;);if(v.cookieDomain=e.cookieDomain,v.cookieSameSite=e.cookieSameSite||B.cookieSameSite,v.cookieSecure=(&quot;boolean&quot;==typeof e.cookieSecure?e:B).cookieSecure,v.debug=!(!console||!e.enableDebug&amp;&amp;-1===y.location.search.search(/[?&amp;]wmuc_debug=[1t]/)),v.enableGPC=(&quot;boolean&quot;==typeof e.enableGPC?e:B).enableGPC,&quot;object&quot;==typeof y.GetExternalConsent&amp;&amp;null!==y.GetExternalConsent&amp;&amp;&quot;function&quot;==typeof y.GetExternalConsent.oneTrustCookie){try{t=JSON.parse(y.GetExternalConsent.oneTrustCookie())}catch(e){t=null}&quot;object&quot;==typeof t&amp;&amp;null!==t&amp;&amp;t.consentedDate&amp;&amp;(t.tcString||t.groups)&amp;&amp;(y.OTExternalConsent=t),&quot;function&quot;==typeof y.GetExternalConsent.countryCode&amp;&amp;y.GetExternalConsent.countryCode()&amp;&amp;(y.ExternalConsentGeo={countryCode:y.GetExternalConsent.countryCode(),stateCode:y.GetExternalConsent.stateCode()||&quot;&quot;})}for((&quot;boolean&quot;==typeof e.enableWebViewCheck?e:B).enableWebViewCheck&amp;&amp;&quot;object&quot;==typeof y.OTExternalConsent&amp;&amp;null!==y.OTExternalConsent&amp;&amp;y.OTExternalConsent.consentedDate?(v.useExternalConsent=!0,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Reading consent from external consent data: &quot;,y.OTExternalConsent)):v.useExternalConsent=!1,v.geoUsedByOneTrust=(&quot;boolean&quot;==typeof e.geoUsedByOneTrust?e:B).geoUsedByOneTrust,!0===Y()&amp;&amp;!0===v.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_cc=[A-Za-z]{2}/)?N(&quot;debug&quot;,&quot;Set debug CC to: &quot;,D=y.location.search.match(/[?&amp;]wmuc_cc=([A-Za-z]{2})/)[1].toUpperCase()):D=v.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.countryCode&amp;&amp;2===y.ExternalConsentGeo.countryCode.length?y.ExternalConsentGeo.countryCode.toUpperCase():&quot;string&quot;==typeof e.countryCode&amp;&amp;2===e.countryCode.length?e.countryCode.toUpperCase():(i=q(e.ccCookie||&quot;countryCode&quot;))&amp;&amp;2===i.length?i.toUpperCase():(N(&quot;error&quot;,&quot;User-Consent unable to determine country, missing or invalid cookies!&quot;),&quot;US&quot;),v.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_sc=[A-Za-z]{2}/)?N(&quot;debug&quot;,&quot;Set debug SC to: &quot;,O=y.location.search.match(/[?&amp;]wmuc_sc=([A-Za-z]{2})/)[1].toUpperCase()):v.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.stateCode&amp;&amp;2===y.ExternalConsentGeo.stateCode.length?O=y.ExternalConsentGeo.stateCode.toUpperCase():&quot;string&quot;==typeof e.stateCode&amp;&amp;2===e.stateCode.length?O=e.stateCode.toUpperCase():(i=q(e.scCookie||&quot;stateCode&quot;))&amp;&amp;2===i.length?O=i.toUpperCase():v.debug&amp;&amp;N(&quot;debug&quot;,&quot;User-Consent unable to determine state, leaving unset.&quot;),!0===Y()&amp;&amp;!0===v.geoUsedByOneTrust&amp;&amp;!1===w&amp;&amp;(y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:D,stateCode:O},i=function(e){!1===w?(w=!0,y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:D,stateCode:O},y.OneTrustStub&amp;&amp;&quot;function&quot;==typeof y.OneTrustStub.setGeoLocation&amp;&amp;y.OneTrustStub.setGeoLocation(D,O),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Set OneTrust geo-location.&quot;)):&quot;function&quot;==typeof y.OptanonWrapper&amp;&amp;y.OptanonWrapper()},y.addEventListener?y.addEventListener(&quot;consent.onetrust&quot;,i,!1):y.attachEvent(&quot;consent.onetrust&quot;,i)),v.categories=e.categories||B.categories,v.regions=e.regions||B.regions,v.consentChangeAction=e.consentChangeAction||B.consentChangeAction,v.consentChangeActionDelay=e.consentChangeActionDelay||B.consentChangeActionDelay,v.controlCookie=e.controlCookie||B.controlCookie,v.brand=e.brand||B.brand||&quot;&quot;,v.psmAppId=e.psmAppId||B.psmAppId||&quot;&quot;,v.psmEnv=e.psmEnv||B.psmEnv||&quot;prod&quot;,v.languageFromBrowser=(&quot;boolean&quot;==typeof e.languageFromBrowser?e:B).languageFromBrowser,v.regionChangeAction=e.regionChangeAction||B.regionChangeAction,v.reloadOnConsentChange=(&quot;boolean&quot;==typeof e.reloadOnConsentChange?e:B).reloadOnConsentChange,v.reloadOnConsentReduction=(&quot;boolean&quot;==typeof e.reloadOnConsentReduction?e:B).reloadOnConsentReduction,n=Object.keys(v.categories),f=[],o=0;o&lt;n.length;o++)f.push(v.categories[n[o]]);for(o=0;o&lt;v.regions.length;o++)if(!0===Y()&amp;&amp;function(e){for(var n=0;n&lt;e.length;n++)if(D===e[n].toUpperCase()||&quot;*&quot;===e[n])return 1}(v.regions[o].geoMatch)||!0===P&amp;&amp;v.regions[o].id===e.regId){g=v.regions[o];break}if(!g){if(P)throw new Error(&quot;No matching user-consent region, parent and iframe configs do not match!&quot;);throw new Error(&quot;No matching user-consent region!&quot;)}if(v.regId=g.id,v.compatTransition=(e.enableTransitionCheck||B.enableTransitionCheck)&amp;&amp;g.compatTransition?g.compatTransition:null,v.compatCategories=g.compatCategories||e.compatCategories||B.compatCategories||{},v.compatCodes=g.compatCodes||e.compatCodes||B.compatCodes||{},v.consentExpireIn=g.consentExpireIn||e.consentExpireIn||B.consentExpireIn||1,v.consentLinkAction=g.consentLinkAction||e.consentLinkAction||null,v.consentLinkTitle=g.consentLinkTitle||e.consentLinkTitle||B.consentLinkTitle,v.confirmCookie=g.confirmCookie||e.confirmCookie||B.confirmCookie,v.consentCookie=g.consentCookie||e.consentCookie||B.consentCookie,v.addtlConsentCookie=g.addtlConsentCookie||e.addtlConsentCookie||B.addtlConsentCookie,v.consentDefaults=g.consentDefaults||e.consentDefaults||B.consentDefaults,v.consentGpcDefaults=g.consentGpcDefaults||e.consentGpcDefaults||B.consentGpcDefaults||null,v.consentImpliedDefaults=g.consentImpliedDefaults||B.consentImpliedDefaults||v.consentDefaults,v.domId=g.domId||e.domId,v.gdprIabCookie=g.gdprIabCookie||e.gdprIabCookie||B.gdprIabCookie,v.gdprIabMaxPurposes=g.gdprIabMaxPurposes||e.gdprIabMaxPurposes||B.gdprIabMaxPurposes,v.gdprIabMaxSpecialFeats=g.gdprIabMaxSpecialFeats||e.gdprIabMaxSpecialFeats||B.gdprIabMaxSpecialFeats,v.gdprIabPolicy=g.gdprIabPolicy||e.gdprIabPolicy||B.gdprIabPolicy,v.privacyCenterLinkAction=g.privacyCenterLinkAction||e.privacyCenterLinkAction||null,v.privacyCenterLinkTitle=g.privacyCenterLinkTitle||e.privacyCenterLinkTitle||B.privacyCenterLinkTitle,v.src=g.src||e.src,v.useIAB=(&quot;boolean&quot;==typeof e.useIAB?e:B).useIAB,v.uspApiExplicitNotice=e.uspApiExplicitNotice||B.uspApiExplicitNotice,v.uspApiIsLspa=e.uspApiIsLspa||B.uspApiIsLspa,v.uspApiCookieName=e.uspApiCookieName||B.uspApiCookieName,v.gdprApplies=(&quot;boolean&quot;==typeof g.gdprApplies?g:&quot;boolean&quot;==typeof e.gdprApplies?e:B).gdprApplies,x=e.gdprIabIsGlobal||B.gdprIabIsGlobal||!1,(!0===e.setPageClass||&quot;boolean&quot;!=typeof e.setPageClass&amp;&amp;!0===B.setPageClass)&amp;&amp;C.documentElement&amp;&amp;(C.documentElement.className=(C.documentElement.className&amp;&amp;&quot; &quot;!==C.documentElement.className?C.documentElement.className+&quot; userconsent-cntry-&quot;:&quot;userconsent-cntry-&quot;)+D.toLowerCase()+&quot; userconsent-reg-&quot;+v.regId.toLowerCase()),v.debug&amp;&amp;(N(&quot;debug&quot;,&quot;GeoIP Country Code: &quot;+D+&quot;, using consent region: &quot;+v.regId),N(&quot;debug&quot;,&quot;IAB &quot;+(v.useIAB?&quot;enabled&quot;:&quot;disabled&quot;))),!0===Y()){if(v.psmAppId&amp;&amp;y.WM.CDP&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.initPsm&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.isPrivacyEnabled&amp;&amp;!v.useExternalConsent){try{y.WM.CDP.initPsm(v.psmAppId,v.brand,v.psmEnv,v.cookieDomain,D),U=y.WM.CDP.isPrivacyEnabled(),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM found and initialized.  Privacy is &quot;+(U?&quot;enabled.&quot;:&quot;disabled.&quot;))}catch(e){U=!1,N(&quot;error&quot;,&quot;PSM found but failed to initialize: &quot;,e)}U&amp;&amp;(&quot;string&quot;!=typeof(u=y.WM.CDP.getUSPString())||0===u.length?U=!1:W=u,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM privacy enabled &quot;+(U?&quot;so using.&quot;:&quot;but not working so ignoring it.&quot;)))}else v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM not found.&quot;);if(T=function(){var n,e,t,o,r={consentInteractions:b,consentTime:null,consentVersion:&quot;&quot;,countryCode:&quot;&quot;,region:&quot;&quot;,stateCode:&quot;&quot;,userConsentVersion:&quot;&quot;},s=q(v.controlCookie);if(&quot;string&quot;==typeof s&amp;&amp;0!==s.length)for(t=s.split(&quot;&amp;&quot;),e=0;e&lt;t.length;e++)if(&quot;string&quot;==typeof(o=t[e].split(&quot;=&quot;))[0]&amp;&amp;0!==o[0].length&amp;&amp;&quot;string&quot;==typeof o[1])switch(o[0]){case&quot;ccc&quot;:r.countryCode=o[1].toLowerCase();break;case&quot;csc&quot;:r.stateCode=o[1].toLowerCase();break;case&quot;cic&quot;:r.consentInteractions=parseInt(o[1],10),(isNaN(r.consentInteractions)||r.consentInteractions<b>E)?(E=T.consentTime,v.debug&amp;&amp;N("debug",'Consent time read from "'+v.controlCookie+'": ',E)):null!==E&amp;&amp;v.debug&amp;&amp;N("debug",'Consent time read from "'+v.confirmCookie+'": ',E);if(null!==E?(I=!0,h=H(),!0===I?(l.async=!0,null!==T.consentTime&amp;&amp;T.consentTime&lt;E&amp;&amp;(T.region=&quot;&quot;),v.debug&amp;&amp;(N(&quot;debug&quot;,'Consent state read from &quot;'+(v.useExternalConsent?&quot;external consent&quot;:v.consentCookie)+'&quot; ('+S+&quot;): &quot;,h),G&amp;&amp;N(&quot;debug&quot;,&quot;Consent state using compatibility config.&quot;))):(E=null,T.region=&quot;&quot;,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state expired or removed, reset from defaults: &quot;,h))):(h=j(v.consentDefaults),!0===v.enableGPC&amp;&amp;v.consentGpcDefaults&amp;&amp;navigator.globalPrivacyControl?(h=J(h,v.consentGpcDefaults),R=!0,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state from defaults (GPC set): &quot;,h)):v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state from defaults: &quot;,h)),v.debug)try{m.push({ts:new Date,act:&quot;SET&quot;,desc:JSON.stringify(h),res:null!==E,note:v.regId})}catch(e){N(&quot;error&quot;,&quot;Failed to track setting initial consent: &quot;,e)}}if(y.WM.UserConsent_initted)N(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent initialized!&quot;);else{if(y.WM.UserConsent_initted=!0,v.useIAB&amp;&amp;(d=function(o,r){var s,n,i=&quot;string&quot;==typeof r.data,e=o+&quot;Call&quot;;try{n=i?JSON.parse(r.data):r.data}catch(e){n={}}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;n[e]&amp;&amp;(s=n[e],y[o](s.command,s.version,function(e,n){var t={};t[o+&quot;Return&quot;]={returnValue:e,success:n,callId:s.callId};try{r.source.postMessage(i?JSON.stringify(t):t,&quot;*&quot;)}catch(e){N(&quot;error&quot;,&quot;Failed to post reply: &quot;,e)}},s.parameter))},U||(null===(_=Q(&quot;__uspapiLocator&quot;))?($(&quot;__uspapiLocator&quot;),y.__uspapi=function(e,n,t){if(&quot;function&quot;==typeof t){if(n=0===n?1:n,&quot;getUSPData&quot;===e&amp;&amp;1===n)return t({version:1,uspString:y.WM.UserConsent.getUspAPIstring()},!0),!0;if(&quot;ping&quot;===e)return t({version:1,uspapiLoaded:!0},!0),!0;t(null,!1)}return!1},y.__uspapi.msgHandler=d.bind(y,&quot;__uspapi&quot;),X(y.__uspapi.msgHandler),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB for CCPA ready.&quot;)):v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB for CCPA ready (via frame).&quot;)),(x||v.gdprApplies)&amp;&amp;(c=G?&quot;1.1&quot;:&quot;2.0&quot;,null===(M=Q((a=G?&quot;__cmp&quot;:&quot;__tcfapi&quot;)+&quot;Locator&quot;))&amp;&amp;&quot;function&quot;!=typeof y[a]?($(a+&quot;Locator&quot;),y[a]=function(){var e=arguments,n=0;return y[a].a=y[a].a||[],0&lt;e.length&amp;&amp;(n=0===(n=1&lt;e.length&amp;&amp;parseInt(e[1],10)||0)?2:n,&quot;ping&quot;===e[0]?e[2]({apiVersion:c,gdprApplies:v.gdprApplies,gdprAppliesGlobally:x,cmpLoaded:!1,cmpStatus:&quot;stub&quot;,displayStatus:v.gdprApplies?&quot;hidden&quot;:&quot;disabled&quot;},!0):&quot;setGdprApplies&quot;===e[0]&amp;&amp;3&lt;e.length&amp;&amp;&quot;boolean&quot;==typeof e[3]?v.gdprApplies=e[3]:y[a].a.push([].slice.apply(e))),y[a].a},y[a].msgHandler=d.bind(y,a),X(y[a].msgHandler),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready.&quot;),y[a](&quot;getTCData&quot;,0,y.OptanonWrapper)):M&amp;&amp;v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready (via frame).&quot;))),Z(),!0===Y()){if(v.useExternalConsent?ee():T.region&amp;&amp;T.region!==v.regId&amp;&amp;(u=T.region,d=v.regId,v.debug&amp;&amp;N(&quot;debug&quot;,'User-Consent detected region change from &quot;'+u+'&quot; to &quot;'+d+'&quot;.'),&quot;function&quot;==typeof v.regionChangeAction&amp;&amp;v.regionChangeAction(u,d,v.consentLinkAction)),null===s&amp;&amp;$(&quot;_usrConWM&quot;))try{y.sessionStorage.setItem(&quot;_ucWMConf&quot;,JSON.stringify({cookieDomain:v.cookieDomain,cookieSameSite:v.cookieSameSite,cookieSecure:v.cookieSecure,countryCode:D,domId:v.domId,enableDebug:v.debug,langFromBrowser:v.languageFromBrowser,parentReload:v.reloadOnConsentChange,regId:v.regId,src:v.src,stateCode:O})),y.sessionStorage.setItem(&quot;_ucWMCons&quot;,JSON.stringify({consentState:h,consentTime:E,consentVersion:S,iabIsGlobal:x}))}catch(e){N(&quot;error&quot;,&quot;Failed to set UserConsent frame data!&quot;)}!(l.charset=&quot;utf-8&quot;)===v.languageFromBrowser&amp;&amp;(l.dataset.documentLanguage=&quot;true&quot;),l.dataset.domainScript=v.domId,l.src=v.src,p.appendChild(l)}v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Dispatching UserConsentReady event.&quot;),C.dispatchEvent(new CustomEvent(&quot;userConsentReady&quot;,{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:new Date,consentConfirmed:I}}))}}}return!0===y.WM.UserConsent_loaded?N(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent loaded!&quot;):(y.WM.UserConsent_loaded=!0,y.WM.UserConsent_wrapproc=0,y.OptanonWrapper=function(){var e;n||(n=!0,v.geoUsedByOneTrust&amp;&amp;y.Optanon&amp;&amp;&quot;function&quot;==typeof y.Optanon.getGeolocationData&amp;&amp;(e=y.Optanon.getGeolocationData())&amp;&amp;e.country!==D&amp;&amp;&quot;function&quot;==typeof y.Optanon.setGeoLocation&amp;&amp;(y.Optanon.setGeoLocation(D,O),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Reset OneTrust geo-location to match site.&quot;)),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Dispatching OptanonLoaded event.&quot;),C.dispatchEvent(new CustomEvent(&quot;optanonLoaded&quot;,{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:new Date,consentConfirmed:I}})),!0===v.useExternalConsent&amp;&amp;!0!==y.Optanon.IsAlertBoxClosed()&amp;&amp;y.Optanon.Close()),null!==h&amp;&amp;0===y.WM.UserConsent_wrapproc&amp;&amp;(y.WM.UserConsent_wrapproc=(new Date).getTime(),setTimeout(a,(&quot;number&quot;==typeof v.consentChangeActionDelay?v:B).consentChangeActionDelay))},&quot;object&quot;==typeof y.WM.UserConsentConfig&amp;&amp;null!==y.WM.UserConsentConfig&amp;&amp;c(y.WM.UserConsentConfig)),{addScript:function(e,n,t){var o,r,s,t=t||C.head;if(e&amp;&amp;(e.src||e.text)){if(!0===i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;})){for(o=C.createElement(&quot;script&quot;),s=Object.keys(e),r=0;r&lt;s.length;r++)o[s[r]]=e[s[r]];return t.appendChild(o),!0}}else N(&quot;error&quot;,&quot;Invalid or missing options to addScript.&quot;);return!1},addScriptElement:function(e,n,t){if(t=t||C.head,e){if(i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;}))return t.appendChild(e),!0}else N(&quot;error&quot;,&quot;Invalid or missing options to addScriptElement.&quot;);return!1},forceReconsent:function(){Y()&amp;&amp;(C.cookie=v.consentCookie+&quot;=; Domain=&quot;+v.cookieDomain+&quot;; Path=/; Expires=Thu, 01 Jan 2000 00:00:01 GMT;&quot;,C.cookie=v.confirmCookie+&quot;=; Domain=&quot;+v.cookieDomain+&quot;; Path=/; Expires=Thu, 01 Jan 2000 00:00:01 GMT;&quot;,ee({ccpaTCS:&quot;&quot;,consentInteractions:b,consentTime:null,consentVersion:S,countryCode:D,region:v.regId,stateCode:O,userConsentVersion:t}),setTimeout(K,100))},getCmpString:function(e,n){var t,o,r;if(&quot;function&quot;==typeof e)if(n=n||this.getRegion(),!1===v.useIAB&amp;&amp;(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString called with IAB disabled&quot;),e(n,0,&quot;&quot;,&quot;&quot;,new Error(&quot;IAB disabled&quot;))),v.gdprApplies||x&amp;&amp;&quot;ccpa&quot;!==n){if(!1===G){if(&quot;string&quot;==typeof L&amp;&amp;0!==L.length)return v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString returning GDPR v2 CMP string&quot;),void e(n,2,L,k,null);t=window.__tcfapi,o=&quot;getTCData&quot;,r=2}else t=window.__cmp,o=&quot;getConsentData&quot;,r=1;t(o,r,function(e,n,t,o,r){r?(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString returning GDPR v&quot;+t+&quot; CMP string&quot;),e(n,t,1===t?o.consentData:o.tcString,1 {
if (
  window.CNN.Zion.apiKey &amp;&amp;
  window.CNN.Zion.environmentType &amp;&amp;
  window.CNN.Zion.sourceId &amp;&amp;
  window.ZION_SDK
) {
  const accessKey = window.CNN.Zion.apiKey;
  const environment = window.ZION_SDK.EnvironmentType[window.CNN.Zion.environmentType];
  const enableLogging = environment !== window.ZION_SDK.EnvironmentType.Prod;

  new window.ZION_SDK.ZionAnalytics(window.ZION_SDK.ClientType.Web, environment, {
    accessKey,
    bridgeEnabled: true,
    bufferSize: 20,
    enabled: true,
    enableLogging,
    trackAdvertising: false,
    trackBluetooth: false,
    trackDeeplink: false,
    trackLifecycle: false,
    trackLocation: false,
    trackNotifications: false,
    trackPurchases: false,
    trackScreens: false,
    trackUxMetrics: true,
    uxMetricsPercentage: 100,
    telemetryEndpoint: window.env.ZION_TELEMETRY_ENDPOINT
  });

  if (window.zion_analytics) {
    window.zion_analytics.track(new window.ZION_SDK.Pageview({
      canonicalUrl: window.CNN.contentModel.canonicalUrl,
      traits: {
        event_source: window.CNN.contentModel.techStack || 'stellar',
        page_variant: window.CNN.contentModel.templateType || '',
        raw_url: window.location.href,
        cms_id: CNN.contentModel.cmsId || '',
        page_type: CNN.contentModel.pageType || '',
        edition: CNN.contentModel.edition,
        section: CNN.contentModel.section || '',
        subsection: CNN.contentModel.subsection || '',
        experience_type: window.location.href.includes('plus') ? 'cnn_plus' : 'cnn_core'
      },
      sourceId: window.CNN.contentModel.sourceId || ''
    }));
  }
} else {
  throw new Error('zion: missing either "apiKey", "environmentType" or "sourceId"');
}

});
})()

    }

//script: fave
addScript({ async: false, defer: true, name: ‘fave’, src: ‘https://registry.api.cnn.io/bundles/fave/latest-4.x/js’ });

//snippet: airship
!function(n,r,e,t,c){var i,o=”Promise”in n,u={then:function(){return u},catch:function(n){ return n(new Error(“Airship SDK Error: Unsupported browser”)),u}},s=o?new Promise((function(n,r){i=function(e,t){e?r(e):n(t)}})):u ;s._async_setup=function(n){if(o)try{i(null,n(c))}catch(n){i(n)}},n[t]=s;var a=r.createElement(“script”);a.src=e,a.async=!0,a.id=”_uasdk”, a.rel=t,r.head.appendChild(a)}(window,document, window.env.AIRSHIP_SRC, ‘UA’, { vapidPublicKey: window.env.AIRSHIP_VAPID_PUBLIC_KEY, websitePushId: window.env.AIRSHIP_WEB_SITE_PUSH_ID, appKey: window.env.AIRSHIP_APP_KEY, token: window.env.AIRSHIP_TOKEN, workerUrl:window.env.AIRSHIP_WORKER }); (function(){const c = { auto: true, position: ‘top’, appearDelay: 5000, stylesheet: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/css/vendor/airship.css’, askAgainDelay: 2592000, disappearDelay: 1000, type: ‘alert’, logo: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/images/cnn_underscored_stacked_256.png’, i18n: { en: { title: ‘Subscribe to CNN Underscored notifications’, message: ‘Never miss out on a product worth buying or a sale worth shopping by subscribing to our push notifications.’, bubble: ‘Unlock permission to allow notifications’, button: ‘Allow’, accept: ‘Yes, Subscribe me!’, deny: ‘No thanks’}}}; window.UA.then((sdk) => { sdk.plugins.load(‘html-prompt’, ‘https://aswpsdkus.com/notify/v1/ua-html-prompt.min.js’, c).then((plugin) => plugin.prompt(c)); sdk.addEventListener(‘channel’, ev => { sdk.channel.tags.add(‘underscored’); }, { once: true }); }); })();

//snippet: krux-id
if (window.WM.UserConsent.inUserConsentState([‘vendor’,’data-store’,’ads-person-prof’,’ads-person’,’measure-ads’,’measure-content’,’measure-market’])) {
const MODULE_NAME=”Krux Module”,MODULE_VERSION=”v4.1.4″,config={DOM_CONTROLTAG:window.env.KRUX_DOM_CONTROLTAG,INTL_CONTROLTAG:window.env.KRUX_INTL_CONTROLTAG,SEND_VALUES_TO_ZION:window.env.KRUX_SEND_VALUES_TO_ZION};let zionBus,setControlTag,sendValuesToZion,hostname,messageSent=!1,subscribersSet=!1;const readCookie=e=>{let n=!1,t=null;var o;return void 0!==window.localStorage&&(n=!0),”https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined”!=typeof document&&document.cookie&&document.cookie.match(RegExp(${o}=.*?;))?document.cookie.match(RegExp(${o}=.*?;))[0].replace(RegExp(${o}=|;,”g”),””):null)),t},setHostAndPathNames=()=>{const e=”https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined”!=typeof document?document.location.href:””,hostname=e.hostname},countryCode=readCookie(“countryCode”)||(readCookie(“CG”)?readCookie(“CG”).substr(0,2):””),getURLParam=e=>{if(“https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined”==typeof document)return””;const n=e.replace(/[[]/,”[“).replace(/[]]/,”]”),t=new RegExp([?&amp;]${n}=([^&amp;#]*));if(document&&document.location&&document.location.search){const e=t.exec(document.location.search);return e?e[1]:””}return””},isIntl=()=>{let e=!1;return setHostAndPathNames(),e=”true”===getURLParam(“isIntl”)||(hostname.search(/^.(edition|edition-m|arabic|cnnespanol|cnne-test)./)>=0||””!==countryCode&&null!==countryCode&&(“US”!==countryCode&&”CA”!==countryCode)),e},piiRE=/(([^()[].,;:[email protected]”]+(.[^()[].,;:[email protected]”]+))|(“.+”))@(([^()[].,;:[email protected]”]+.)+[^()[].,;:[email protected]”]{2,})/i,piiIsPresentInQueryString=()=>{if(document.location.search){const e=document.location.search.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.search).search(piiRE)+1}catch(t){n=e}return 1===e||1===n}return!1},piiIsPresentInHash=()=>{if(document.location.hash){const e=document.location.hash.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.hash).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiIsPresentInReferrer=()=>{if(document.referrer){const e=document.referrer.search(piiRE)+1;let n;try{n=decodeURIComponent(document.referrer).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiFilter={qs:piiIsPresentInQueryString,hash:piiIsPresentInHash,ref:piiIsPresentInReferrer},retrieve=e=>{const n=kx${e},t=(()=>{try{return window.localStorage}catch(e){return null}})();if(t)return t[n]||””;if(navigator.cookieEnabled){const e=document.cookie.match(${n}=([^;]*));return e&&unescape(e[1])||””}return””},init=e=>{const n=new Promise((n=>{window.Krux||((window.Krux=function(){window.Krux.q.push([arguments])}).q=[]),window.krux_getFWKeyValues=(e,n)=>{window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[];const t=e||”_fwu:386123:”,o=n||35,r={};for(let e=0;e<window.Krux.segments.length;e++)e{let e=”&kxid=”;return window.Krux.user&&(e+=window.Krux.user),e+=&amp;kxseg=${window.kvs.join(",")},e},window.krux_getFWSegments=()=>(window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],kxseg=${window.Krux.segments.join(",kxseg=")}),window.krux_getUser=()=>(window.Krux.user=retrieve(“user”),window.Krux.user),window.krux_getKuid=()=>(window.Krux.kuid=retrieve(“kuid”),window.Krux.kuid),setControlTag=e=>{const n=document,t=n.createElement(“script”),o=n.getElementsByTagName(“head”)[0];t.type=”text/javascript”,t.async=!0,t.src=`https://cdn.krxd.net/controltag?confid=${e}`,piiFilter.hash()||piiFilter.qs()||piiFilter.ref()||o.appendChild(t)},sendValuesToZion=()=>{window.Krux.user=retrieve(“user”),window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],window.Krux.kuid=retrieve(“kuid”);const n=window.Krux.user,t=window.Krux.segments.filter((function(e,n){return n{if(e){const n=e.CONTROLTAGS?e.CONTROLTAGS:{DOM:e.DOM_CONTROLTAG,INTL:e.INTL_CONTROLTAG},t=isIntl()?n.INTL:n.DOM;setControlTag(t),e.SEND_VALUES_TO_ZION&&!subscribersSet&&(subscribersSet=!0,window.ZION_SDK?(zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()):window.addEventListener(“zion.loaded”,(()=>{zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()})))}n()})()}));return n.id=”Krux Module v4.1.4″,n};init(config);

    }

//snippet: hyphensocial
(function () {
window.addEventListener(“load”, (event) => {
if (document.location.href.includes(“facebook-paid”)) {
function getURLParameter(e, t) {
return (RegExp(t + “=(.+?)(&|$)”).exec(e) || [, null])[1];
}
function parse_query_string(e) {
for (var t = e.split(“&”), n = {}, a = 0; a -1 || e.indexOf(“FBAV”) > -1;
}
function os_system() {
var e = navigator.userAgent || navigator.vendor || window.opera;
return /windows phone/i.test(e)
? “Windows Phone”
: /android/i.test(e)
? “Android”
: /iPad|iPhone|iPod/.test(e) && !window.MSStream
? “iOS”
: “unknown”;
}
function affSwap() {
(window.aff_params = {}),
(window.base_tag = null),
(window.tag_count = 0);
let e = document
.querySelector(‘[data-editable=”content”]’)
.querySelectorAll(‘a:not([swapped=”true”])’);
if (e.length >= 5) {
for (const t of e) {
let e = [
getURLParameter(t.href.replace(“-20”, “”), “tag”),
getURLParameter(t.href.replace(“|”, “&”), “subId1”),
getURLParameter(t.href.replace(“|”, “&”), “u1”),
getURLParameter(t.href.replace(“|”, “&”), “afftrack”),
].join(“”);
(e in aff_params) & (“” != e)
? ((window.aff_params[e] += 1),
window.aff_params[e] > window.tag_count &&
((tag_count = window.aff_params[e]), (window.base_tag = e)))
: (aff_params[e] = 1);
}
for (const t of e) {
(t.onclick = function () {
fbq(“trackSingleCustom”, “404409197807416”, “affClick”, {
href: t.href,
});
}),
t.setAttribute(“swapped”, !0);
let e = params().utm_term;
if (e && “https://www.cnn.com/2021/12/03/cnn-underscored/velvet-clothing-for-women-ideas/undefined” !== e) {
let n = t.href.replace(base_tag, e);
t.setAttribute(“href”, n);
}
if (
t.href.includes(“amazon”) &
browser() &
(“Android” == os_system())
) {
t.setAttribute(“target”, “_blank”);
let e =
“intent://#Intent;scheme=com.amazon.mobile.shopping.web://amazon.com/o/ASIN/” +
i
.getAttribute(“href”)
.match(“(?:[/dp/]|$)([A-Z0-9]{10})”)[0]
.replace(“/”, “”) +
“/” +
i.getAttribute(“href”).split(“?”)[1].split(“tag=”)[1] +
“/ref=nosim//;end”;
t.setAttribute(“href”, e);
}
}
}
}
!(function (e, t, n, a, r, o, i) {
e.fbq ||
((r = e.fbq =
function () {
r.callMethod
? r.callMethod.apply(r, arguments)
: r.queue.push(arguments);
}),
e._fbq || (e._fbq = r),
(r.push = r),
(r.loaded = !0),
(r.version = “2.0”),
(r.queue = []),
((o = t.createElement(n)).async = !0),
(o.src = “https://connect.facebook.net/en_US/fbevents.js”),
(i = t.getElementsByTagName(n)[0]).parentNode.insertBefore(o, i));
})(window, document, “script”),
fbq(“init”, “404409197807416”),
fbq(“track”, “PageView”),
affSwap(),
setInterval(affSwap, 5e3);
}
});
})();

}())

Leave a Reply