!function(){"use strict";const e="vast",t="googima",i="freewheel",s="paused",a="playing",r="fullscreen",n="volume",o="mute",l="resize",d="viewable",h="clickthrough",c="external",p=c,u="[ERRORCODE]",m="[GDPRCONSENT]",g="[REGULATIONS]",y="time",f=5e3,v="adBreakIgnored",P="__jwpseg__",A="instream",k="article",w={[[A]]:1,[["banner"]]:2,[[k]]:3,[["feed"]]:4,[["floating"]]:5,[["interstitial"]]:5,[["slider"]]:5},b="adError",I="adLoadedXML",E="adItem",_="mediaLoaded",T="adPlayComplete",C="adRequestedContentResume",x="-1",S="vmap",R="click",j="play",O="error",M="complete",B="adImpression",V="adError",L="adPodError",H="adStarted",F="adComplete",D="adClick",N="adSkipped",q="adMeta",U="adPlay",Q="adPause",$=[B,V,L],X=[H,F,B,D,N,V,U,Q,q],W=(e,t)=>({begin:e._offSet,text:t,cueType:"ads",adId:e.adBreakId});class z{constructor(e,t,i,s){this.client=s,this.player=e,this.pluginConfig=t,this.div=i,this.utils=this.player.utils,this.playerConfig=this.player.getConfig(),this.playlistItemManager=null,this.playerKey=this.playerConfig.key,this.casting=!1,this.player.pauseAd=this.pauseAd.bind(this),this.player.skipAd=this.skipAd.bind(this),this.player.skipAdBreak=this.skipAdBreak.bind(this),this.destroyAdsManager=this.destroyAdsManager.bind(this),this.handleDependencyError=this.handleDependencyError.bind(this),this.sendCues=this.sendCues.bind(this)}lateInitAfterReady(){this.onReady();const e=this.player.getPlaylistItem();e&&this.onPlaylistItemCallback({item:e,index:this.player.getPlaylistIndex()})}onReady(){throw new Error("Not implemented.")}onPlaylistItemCallback(){throw new Error("Not implemented.")}destroyAdsManager(){this.playlistItemManager&&(this.playlistItemManager.destroy(),this.playlistItemManager=null)}handleDependencyError(e,t){this.destroyAdsManager(),this.player.off(null,null,this),this.client===i&&(this.player.playAd=this.utils.noop),this.player.trigger(b,{id:x,client:this.client,message:e,code:900,adErrorCode:t,tag:""})}pauseAd(e,t=null){this.playlistItemManager&&(e?this.playlistItemManager.pause(t||{}):this.playlistItemManager.resume(t||{}))}skipAd(){var e;null!=this&&null!=(e=this.playlistItemManager)&&e.skipAd&&this.playlistItemManager.skipAd()}skipAdBreak(){var e;null!=this&&null!=(e=this.playlistItemManager)&&e.skipAdBreak&&this.playlistItemManager.skipAdBreak()}sendCues(e,t){const i=e.getMidRolls(),s=[];e.preRoll&&s.push(W(e.preRoll,t)),i.length&&i.forEach((e=>{"nonlinear"!==e._type&&s.push(W(e,t))})),e.postRoll&&s.push(W(e.postRoll,t)),this.player.addCues(s)}resetCues(){const e=this.player.getCues().filter((e=>"ads"!==e.cueType));this.player.setCues(e)}}const J=(e,t,i)=>{const s=document.createElement("param");s.setAttribute("name",t),s.setAttribute("value",i),e.appendChild(s)};class G{constructor(e,t,i){this.debugTrackFn=e,this.div=null,this.elem=null,this.environment=t,this.utils=i}addCompanion(e,t){if(this.div=e,this.elem=document.getElementById(this.div.id),!this.elem)return!1;for(let e=0;e{(new Image).src=e})),"function"==typeof this.debugTrackFn&&this.debugTrackFn({type:"companion",data:{trackers:e}}))}placeCompanion(e){if(this.removeCompanion(),"html"===e.type){const t=document.createElement("div");t.innerHTML=e.source;const i=t.getElementsByTagName("script"),s=this.utils.scriptloader;return s&&i.length&&Array.from(i).forEach((e=>{new s(e.src).load(),e.parentElement.removeChild(e)})),this.elem.appendChild(t),void this.sendPings(e.trackers)}if("iframe"===e.type){const t=document.createElement("iframe");return t.height=this.div.height,t.width=this.div.width,t.src=e.source,t.scrolling="no",t.style.border="none",t.marginWidth=0,t.marginHeight=0,this.sendPings(e.trackers),this.elem.innerHTML="",void this.elem.appendChild(t)}if("application/x-shockwave-flash"===e.type){const t=document.createElement("object");return t.setAttribute("type","application/x-shockwave-flash"),t.setAttribute("data",e.source),t.setAttribute("width","100%"),t.setAttribute("height","100%"),t.setAttribute("tabindex",0),J(t,"allowfullscreen","true"),J(t,"allowscriptaccess","always"),J(t,"seamlesstabbing","true"),J(t,"wmode","opaque"),this.elem.appendChild(t),void this.sendPings(e.trackers)}const t=new Image;t.src=e.source,e.clickthrough&&(t.onclick=()=>{this.utils.openLink(e.clickthrough,"_blank",{rel:"noreferrer"})}),this.elem.innerHTML="",this.elem.appendChild(t),this.sendPings(e.trackers)}fitsDiv(e){return e.width===this.div.width&&e.height===this.div.height}}const Y=document.createElement("img"),K=document.createElement("img");Y.src=K.src='data:image/svg+xml;charset=UTF-8,',Y.className="jw-vast-nonlinear-open-button",K.className="jw-vast-nonlinear-close-button";class Z{constructor(e,t,i,s,a){this.player=e,this.environment=e.getEnvironment(),this.div=s,this.staticURL=t,this.clickURL=i,this.loadTimer=-1,this.animationTimer=-1,this.banner=null,Object.assign(this,e.Events),this.banner=document.createElement("img"),this.banner.className="jw-banner",this.banner.id=`${this.player.id}_vast_static`,this.div.appendChild(Y),this.div.appendChild(this.banner),this.div.appendChild(K),this.loadTimer=setTimeout(this.imageLoadError.bind(this),a),this.banner.onerror=this.imageLoadError.bind(this),this.banner.onload=this.onLoaded.bind(this),this.banner.src=this.staticURL}onLoaded(){if(clearTimeout(this.loadTimer),0===this.banner.naturalWidth)return void this.imageLoadError();this.removeBannerEventListeners();const e=this.player.utils;e.addClass(this.div,"jw-vast-nonlinear-active"),e.style(K,{bottom:this.banner.height-8,left:this.banner.width},!0),new e.UI(this.banner).on("click",this.sendClick.bind(this)),K.onclick=K.ontouchstart=this.collapse.bind(this),Y.onclick=Y.ontouchstart=this.expand.bind(this),this.trigger(j)}imageLoadError(){clearTimeout(this.loadTimer),this.trigger(O),this.removeBanner()}sendClick(){this.trigger(R)}collapse(e){e.preventDefault(),this.player.utils.addClass(this.div,"jw-vast-nonlinear-collapsed"),this.animationTimer=setTimeout((()=>{this.remove(this.banner),this.remove(K),this.animationTimer=-1}),250)}expand(e){-1===this.animationTimer&&(e.preventDefault(),this.player.utils.removeClass(this.div,"jw-vast-nonlinear-collapsed"),this.div.appendChild(this.banner),this.div.appendChild(K))}remove(e){this.div.contains(e)&&this.div.removeChild(e)}removeBannerEventListeners(){this.banner.onload=this.banner.onerror=null}removeBanner(){this.removeBannerEventListeners(),this.remove(this.banner)}removeListeners(){clearTimeout(this.loadTimer),clearTimeout(this.animationTimer),K.onclick=K.ontouchstart=Y.onclick=Y.ontouchstart=null,this.off(),this.removeBannerEventListeners()}stop(){this.player.utils.removeClass(this.div,"jw-vast-nonlinear-active jw-vast-nonlinear-collapsed"),this.removeBanner(),this.remove(K),this.remove(Y)}}class ee{constructor(e,t){this.player=e,this.div=t,this.startTime=0,this.minDur=0,this.environment=e.getEnvironment(),Object.assign(this,e.Events),this.type="static",e.on("time",this.dispatchTime,this)}playAd(e,t,i,s,a){this.minDur=this.player.utils.seconds(i),this.adTag=s,this.static&&(this.static.removeListeners(),this.static.stop()),this.player.utils.addClass(this.div,"jw-vast-nonlinear"),this.static=new Z(this.player,e,t,this.div,a),this.static.on(j,this.startAd,this),this.static.on(R,this.clickHandler,this),this.static.on(O,this.errorHandler,this)}dispatchTime(e){this.trigger(y,e)}startAd(){this.startTime=this.player.getPosition(),this.minDur>0&&(0===this.startTime?this.on(y,this.startTimingAd,this):this.on(y,this.timeAd,this)),this.sendEvent(j)}startTimingAd(e){this.startTime=e.position,this.off(y,this.startTimingAd,this),this.on(y,this.timeAd,this)}timeAd(e){e.position-this.startTime>this.minDur&&(this.off(y,this.timeAd,this),this.stop())}clickHandler(){this.sendEvent(R)}errorHandler(){this.sendEvent(O)}sendEvent(e,t){(t=t||{}).tag=t.tag||this.adTag,this.trigger(e,t)}removeEvents(){this.off()}getState(){return a}stop(){this.startTime&&this.static&&(this.startTime=0,this.minDur=0,this.off(y,this.startTimingAd,this),this.off(y,this.timeAd,this),this.static.removeListeners(),this.static.stop(),this.sendEvent(M))}pause(){}destroy(){this.off(),this.player.off("time",this.dispatchTime,this),this.static&&(this.static.removeListeners(),this.static.stop())}}const te=function(e,t,i,s){if(0!==s.indexOf(e))return!1;const a=parseFloat(s.slice(e.length));return!(ai)&&a},ie=te.bind(null,"800000",10,90),se=te.bind(null,"900000",10,90),ae=te.bind(null,"JWIAB",1,999),re=/^[^:/?#]+:?\/\/[^/?#]+/,ne=function(e,t){if(!e)return;if(!t)return e;let i,s="",a="";Object.keys(t).forEach((e=>{const i=t[e];s=`${s}${a}${e}=${i}`,a="&"}));const r=(e=>{if(e)return new URL(e,window.location)})(e),n=r.pathname;return r.searchParams.has("cust_params")?r.searchParams.set("cust_params",`${s}&${r.searchParams.getAll("cust_params")}`):r.searchParams.set("cust_params",s),i=r.toString(),0===e.indexOf("./")?i=`.${i.substring(i.indexOf(n))}`:0===e.indexOf("../")?i=`..${i.substring(i.indexOf(n))}`:0!==e.indexOf(`${r.protocol}`)||e.includes("://")?0===e.indexOf("//")?i=i.replace(r.protocol,""):0!==e.indexOf("//")&&0===e.indexOf("/")?i=i.substring(i.indexOf(n)):0!==e.indexOf("/")&&0===e.indexOf(r.pathname.substring(1))&&(i=i.substring(i.indexOf(n)+1)):i=i.replace("://",":"),i},oe=e=>e?new URL(e).hostname:"",le=(e,t=document.location.search)=>{if(e)return new URLSearchParams(t).getAll(e)},de=/^(https?:\/\/).*.(?:ampproject.org|bing-amp.com)\/(?:.\/)*(.*)\/amp.*$/,he=function(){if(!((e,t)=>{if(e)return new URLSearchParams(e).has(t)})(document.location.search,"isAMP"))return;const e=le("consentValue").join(),t=le("consentGdpr").join();return e||t?{gdprApplies:t,consentData:e}:void 0},ce=Date.now||function(){return(new Date).getTime()},pe=e=>{const t=(e=>{let t=window;for(;t;){try{if(t.frames[e])break}catch(e){}t=t===window.top?null:t.parent}return t})(`${e}Locator`);return null!==t&&function(i,s,a,r){const n=ce(),o=t=>{let i=t?t.data:{};if("string"==typeof i)try{i=JSON.parse(i)}catch(e){i={}}const s=`${e}Return`;i[s]&&i[s].callId===n&&(removeEventListener("message",o),a(i[s].returnValue,i[s].success))};window.addEventListener("message",o,!1);const l={[[`${e}Call`]]:{command:i,callId:n,parameter:r,[[void 0!==r?"version":"parameter"]]:s}};t.postMessage(JSON.stringify(l),"*")}};let ue=null,me={gdprApplies:!0,consentData:""};const ge=function(e=1e3){return null===ue&&(ue=new Promise((e=>{const t=window.__tcfapi||pe("__tcfapi");if(t)return t("getTCData",2,((t,i)=>{e(!1!==i?{gdprApplies:t.gdprApplies,consentData:t.tcString,addtlConsent:t.addtlConsent}:null)}));const i=window.__cmp||pe("__cmp");if(i)return i("getConsentData",null,((t,i)=>{e(!1!==i?{gdprApplies:t.gdprApplies||t.isUserInEu,consentData:t.consentData}:null)}));const s=he();return e(s||{gdprApplies:!1,consentData:""})})).then((e=>(e&&(me=e),me)))),Promise.race([ue,new Promise((t=>{setTimeout(t,e,me)}))])},ye=function(e){const t=e.advertising;if(null!=t&&t.placement){const e=t.placement.toLowerCase();if(w[e])return w[e]}return w[null!=t&&t.outstream?k:A]},fe=function(){const e=(t=document.referrer)&&null!==t.match(re)?function(e){const t=e.match(de);return t&&t.length>1?`${t[1]}${t[2]}`:e}(document.referrer):"";var t;if(window.top!==window.self){try{return{url:window.top.location.href,domain:window.top.document.domain,referrer:e}}catch(e){}return{url:e,domain:oe(e),referrer:""}}return{url:document.location.href,domain:document.domain,referrer:e}},ve=function(e,t){const i=e.getPlugin("inference"),s=t.jwpseg_client_side,a=t.jwpseg||[];let r;if(!s||!s.length||!i)return a;try{r=i.predict(s,t)}catch(e){return t.jwpseg||[]}return[...Object.keys(r).filter((e=>r[e])),...a.filter((e=>-1===s.indexOf(e)))]},Pe=(e,t=!1)=>{const i=t?0===e.getPosition()&&"idle"===e.getState():0===e.getPosition();return e.isBeforePlay()||i?"pre":e.isBeforeComplete()||e.getPosition()===e.getDuration()?"post":"mid"},Ae=(t,i=null,s={})=>{const a={client:e};if(null===t)return a;const{bidding:r,config:n,item:o,player:l}=t;t.isDestroyed()||(a.placement=ye(l.getConfig()));const d=s.schedule;if(d)return Object.assign(a,{item:o,tag:d.getVMAP(),adbreaks:d.getAllAds().map((e=>{const t={type:e._type,offset:e._offSet};if(e._vmap?t.vmap=e._vmap:t.adbreak=Object.assign({},e._adbreak),r){const i=r.getBid(e.adPlayId);i&&Object.assign(t,i.getEventObject())}return t}))});if(n.preloadAds&&(a.preloadAds=s.preload||(null==i?void 0:i._preload)||!1),s.jwpseg&&(a.jwpseg=s.jwpseg),i){const{adBreakId:e,adPlayId:n}=t.getAdIds(i,s);if(Object.assign(a,{adBreakId:e,adPlayId:n,offset:i._offSet}),r){const e=r.getBid(n);e&&Object.assign(a,e.getEventObject())}}const h=i&&(s.tag||i._currentTag);if(h&&(Object.assign(a,{id:i._id,tag:h,adposition:i._position,sequence:i._adPodIndex+1,witem:i._waterfallIndex+1,wcount:i._adQueue?i._adQueue.length:1,adsystem:i.adsystem||""}),i.adServingId&&(a.adServingId=i.adServingId),void 0!==i.skipoffset&&(a.skipoffset=i.skipoffset),i.wrappedTags&&Object.assign(a,{wrapperAdSystem:i.wrapper||"",wrappedTags:i.wrappedTags.slice(1),wrapperAdIds:i.adIds}),i._adbreak&&(a.adschedule=i._adbreak,a.adschedule.offset=i._offSet)),null!=i&&i.companions&&s.companions)return a.companions=s.companions,a;if(null!=i&&i.response){const{params:e}=t;Object.assign(a,{adtitle:i.adTitle||"",description:i.description||"",adId:i.adId||"",adVerifications:i.adVerifications||null,advertiser:i.advertiser||"",advertiserId:i.advertiserId||"",creativeId:i.creativeId||"",creativeAdId:i.creativeAdId||"",dealId:i.dealId||"",request:i.request,response:i.response,conditionalAd:i.conditionalAd,conditionalAdOptOut:e.conditionaladoptout,vastversion:i.vastversion,clickThroughUrl:i.clickthrough,duration:s.duration,linear:s.linear}),"boolean"==typeof i.mediaFileCompliance&&(a.mediaFileCompliance=i.mediaFileCompliance,i.nonComplianceReasons&&(a.nonComplianceReasons=i.nonComplianceReasons)),i.selectedMedia&&(a.mediafile={file:i.selectedMedia.file}),s.metadata&&(a.adMessage=e.dynamicMessage||"",i.companions&&(a.companions=i.companions),i.sequence&&(a.podMessage=e.podMessage||""),void 0!==i.skipoffset&&Object.assign(a,{skipmessage:e.skipmessage,skiptext:e.skiptext}))}else a.item=o;return a},ke=(e,t,i,s)=>{const a=Ae(e,i,s),r=t.adErrorCode||60900;return Object.assign(a,{message:t.message,code:t.code>=100&&t.code<=1008?t.code:900,adErrorCode:r}),10402===r||50004===r||50400===r?a.timeout=i?i.creativeTimeout:s.creativeTimeout:11007!==r&&10301!==r&&60006!==r||(a.timeout=i?i.requestTimeout:s.requestTimeout),void 0!==t.id&&(a.id=t.id),void 0!==t.sourceError&&(a.sourceError=t.sourceError),void 0!==t.tag&&(a.tag=t.tag),void 0!==t.vmap&&(a.vmap=t.vmap),a},we=function(e,t=null,i={}){const s={client:e.client},{bidding:a,item:r,player:n}=e;if(e.isDestroyed()||Object.assign(s,{placement:ye(n.getConfig()),viewable:n.getViewable()}),i.jwpseg&&(s.jwpseg=i.jwpseg),t){const{adBreakId:r,adPlayId:n}=e.getAdIds(t,i);if(Object.assign(s,{adBreakId:r,adPlayId:n,offset:t._offSet}),a){const e=a.getBid(n);e&&Object.assign(s,e.getEventObject())}}return s.item=r,s},be=function(e,t,i,s){return{client:s,message:e,adErrorCode:t,id:x,placement:ye(i),tag:""}};var Ie=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};const Ee=/^((https?:)?\/\/)?(secure)?pubads\.g\.doubleclick\.net\/gampad\/ads\?[\S]*$/,_e=function(e,t,i){return e.replace(t,i)},Te=function(e,t){const i=Math.pow(10,t);return Math.round(e*i)/i},Ce=function(s,a,r,n,o,l={}){var d,h,c,p,u,m,g;if(!s)return s;const y=function(e,t){const i=e.getConfig(),s=e.getPlaylistItem()===t,a={playerHeight:e.getHeight()||i.height||"",playerWidth:e.getWidth()||i.width||"",itemDuration:s&&Te(e.getDuration(),3)||"",integerDuration:s&&Te(t.duration,0)||"",item:t,jwpseg:ve(e,t),placement:ye(i),userAgent:navigator.userAgent},r=i.advertising?i.advertising.ampMacros:{};return Object.assign(a,r)}(a,r),f=fe();let v=null;null!=r&&r.jwpseg&&(v=function(e){const t=[],i=[],s=[],a=[];for(let r of e){"string"!=typeof r&&(r=String(r));const e=ie(r);if(e){t.push(e);continue}const n=se(r);if(n){i.push(n);continue}const o=ae(r);o?s.push(o):"JWBRSAFE"===r&&a.push(1)}return t.length||i.length||s.length||a.length?{hb_jwvb:t,hb_jwcr:i,hb_jwiab:s,hb_jwbs:a}:null}(r.jwpseg));const A={viewability:(null==(d=v)||null==(h=d.hb_jwvb)?void 0:h.map((e=>encodeURIComponent(e))).join(","))||"",completion:(null==(c=v)||null==(p=c.hb_jwcr)?void 0:p.map((e=>encodeURIComponent(e))).join(","))||"",brandSafety:1===(null==(u=v)?void 0:u.hb_jwbs[0])?encodeURIComponent("Yes"):encodeURIComponent("No"),contextual:(null==(m=v)||null==(g=m.hb_jwiab)?void 0:g.map((e=>encodeURIComponent(e))).join(","))||""};-1!==s.indexOf(P)&&(l.jwpseg=y.jwpseg),s=_e(s,"__random-number__",Math.random()*Math.pow(10,18)),s=_e(s,"__timestamp__",(new Date).getTime()),s=_e(s,"__page-url__",encodeURIComponent(y.pageUrl||f.url)),s=_e(s,"__referrer__",encodeURIComponent(y.referrer||f.referrer)),s=_e(s,"__player-height__",y.playerHeight),s=_e(s,"__player-width__",y.playerWidth),s=_e(s,"__item-duration__",y.itemDuration),s=_e(s,"__integer-duration__",y.integerDuration),s=_e(s,P,y.jwpseg),s=_e(s,"__domain__",encodeURIComponent(y.domain||f.domain)),s=_e(s,"__placement__",y.placement),s=_e(s,"__device-ua__",encodeURIComponent(y.userAgent)),s=_e(s,"__jw-viewability__",A.viewability),s=_e(s,"__jw-completion__",A.completion),s=_e(s,"__jw-brand-safety__",A.brandSafety),s=_e(s,"__jw-contextual__",A.contextual),s=o.companion?_e(s,"__companion-div__",o.companion.id):_e(s,"__companion-div__","");const k=Object.keys(y).filter((e=>-1!==e.indexOf("item"))),w=k.map((e=>{const t=e.match(/item([\w]+?)(List)?$/);let i;return t&&(i=t[1].toLowerCase()),i}));let b=null;const I=/__item-([\w-]+?)(-list)?__/g,E=s;for(;null!==(b=I.exec(E));){const e=b[0],t=b[1],i=k[w.indexOf(t)];let a="";if(Ie(r,t)&&"string"==typeof r[t]||i){a=i?y[i]:r[t];const e=!1===o.truncateMacros?4096:1e3;a.length>e&&(a=a.substring(0,e));const s=b[2]?",":null;a=a.split(s).map(encodeURIComponent)}s=_e(s,e,a)}if(n===i)return s;if(n===e){const e=a.getConfig().autostart?1:0,t=a.getMute()?1:0;s=function(e,t,i){return Ee.test(e)&&(e=`${e}&vpa=${t}&vpmute=${i}`),e}(s,e,t)}if(n===t&&r.title&&-1===s.indexOf("vid_t=")){const e=r.title.substring(0,100).replace(/[^\x00-\x7F]/g,"");s+=`${function(e){return-1!==e.indexOf("?")?"&":"?"}(s)}vid_t=${encodeURIComponent(e)}`}return-1!==s.indexOf("__gdpr__")||-1!==s.indexOf("__gdpr_consent__")||-1!==s.indexOf("__addtl_consent__")?ge().then((({gdprApplies:e,consentData:t,addtlConsent:i})=>(s=_e(s,"__gdpr__",e?1:0),s=_e(s,"__addtl_consent__",i||""),_e(s,"__gdpr_consent__",t||"")))).catch((()=>s)):Promise.resolve(s)},{forEach:xe,map:Se}=Array.prototype,Re=function(){},je=function(e,t,i){let s=[];return e&&(s=e.getElementsByTagName(t),i&&s&&0===s.length&&(s=e.getElementsByTagName(`${i}:${t}`))),s},Oe=function(e,t){return e?e.getAttribute(t):null},Me=function(e,t,i){e.push({message:t,code:1002,adErrorCode:70001,id:i})},Be=function(){const e=new Error("No AdBreaks in VMAP");throw e.adErrorCode=60005,e},Ve=function(e){if(e){const t=e.textContent||e.text;if(t)return t.trim()}return""},Le=function(e,t,i,s){let a=[];return e||t?(a=t.getElementsByTagNameNS?t.getElementsByTagNameNS(e,i):t.getElementsByTagName(`${s}:${i}`),a):a},He=function(e,t){if(e){const i=e.getElementsByTagName(t);if(i)return i[0]}return null};let Fe=function(e){(e.indexOf(g)>=0||e.indexOf(m)>=0)&&(ge().catch(Re),Fe=Re)};const De=function(e,t,i){e[t]||(e[t]=[]),i&&(e[t].push(i),Fe(i))},Ne=function(e,t){let i=Oe(t,"event");if("progress"===i){i=`${i}_${Oe(t,"offset")}`}const s=Ve(t);De(e,i,s)},qe=function(e,t){if(!e)return null;const i=e.getElementsByTagName("Ad");if(!i.length)return null;const s={_offSet:t};if(1===i.length)s._adQueue=[i[0].textContent.trim()];else{s._pod=[];for(let e=0;e{const s=o[e];switch(s._pod&&s._pod.length<=1&&delete s._pod,e){case"start":s._offSet="pre",t.setPreRoll(s);break;case"100%":case"end":s._offSet="post",t.setPostRoll(s);break;default:if(/^#/.test(e))break;/^\d\d?(?:\.\d+)?%$/.test(e)?s._offSet=e:s._offSet=i.seconds(e),t.addMidRoll(s)}})),t.preRoll||t.midRolls.length||t.postRoll||Be(),t.sort(null,!0),s}(e,t,i);if(je(e,"Playlist",S).length)return function(e,t,i){const s=je(e,"Playlist",S)[0],a=s.getElementsByTagName("Preroll")[0],r=s.getElementsByTagName("Postroll")[0],n=qe(a,"pre"),o=qe(r,"post");n&&t.setPreRoll(n),o&&t.setPostRoll(o);const l=s.getElementsByTagName("Midroll");for(let e=0;e{De(i,t.toLowerCase(),Ve(e))}))},$e=function(e,t,i){const s=je(He(e,"Creatives"),"Creative"),a={},r={trackers:a};r.adServingId=Ve(He(e,"AdServingId")),r.adsystem=Ve(He(e,"AdSystem"));const n=je(e,"Category");return r.categories=Se.call(n,(e=>Ve(e))),xe.call(s,(e=>{const s=He(e,"Linear"),n=He(e,"NonLinear"),o=je(He(e,"TrackingEvents"),"Tracking");if(t>=4){const t=je(e,"UniversalAdId");r.universalAdId=Se.call(t,(e=>({universalAdIdRegistry:Oe(e,"idRegistry")||"unknown",universalAdIdValue:Ve(e)||Oe(e,"idValue")||"unknown"})))}r.creativeId=Oe(e,"id"),r.creativeAdId=Oe(e,"adId"),s&&(r.linear=!0),(s||n)&&xe.call(o,(e=>{Ne(a,e)}));const l=Ve(He(e,"AdParameters"));if(l&&(r.adParams=l),s){const e=He(s,"VideoClicks"),t=Ve(He(e,"ClickThrough")),n=je(e,"ClickTracking"),o=Oe(s,"skipoffset"),l=Ve(He(s,"Duration"));xe.call(n,(e=>{De(a,"click",Ve(e))})),l&&(r.duration=i.seconds(l)),t&&(r.clickthrough=t),void 0!==o&&(r.skipoffset=o),function(e,t){const i=je(He(e,"MediaFiles"),"MediaFile"),s=t.media?t.media:[];t.media=s.concat(Se.call(i,(e=>({type:Oe(e,"type"),file:Ve(e),adType:Oe(e,"apiFramework")||"",width:parseInt(Oe(e,"width"),10)||0,height:parseInt(Oe(e,"height"),10)||0,bitrate:parseInt(Oe(e,"bitrate"),10)||null,maxBitrate:parseInt(Oe(e,"maxBitrate"),10)||null}))).filter((e=>e.file)))}(s,r),function(e,t){const i=je(e,"Icon");t.icons=Array.prototype.reduce.call(i,((e,t)=>{let i,s;if(i=He(t,"StaticResource"))s=Oe(i,"creativeType");else if(i=He(t,"IFrameResource"))s="iframe";else{if(!(i=He(t,"HTMLResource")))return e;s="html"}const a=Ve(i),r={};r.iconClick=Ve(He(t,"IconClickTracking"))||null,r.iconView=Ve(He(t,"IconViewTracking"))||null;const n=Oe(t,"xPosition").toLowerCase(),o=Oe(t,"yPosition").toLowerCase(),l={};return"left"===n||"right"===n?l[n]=0:l.left=parseInt(n,10)||0,"top"===o||"bottom"===o?l[o]=0:l.top=parseInt(o,10)||0,l.width=parseInt(Oe(t,"width"),10)||0,l.height=parseInt(Oe(t,"height"),10)||0,e.push({program:Oe(t,"program"),style:l,apiFramework:Oe(t,"apiFramework"),offset:Oe(t,"offset")||"00:00:00",duration:Oe(t,"duration")||null,clickThrough:Ve(He(t,"IconClickThrough")),trackers:r,resource:{resourceType:s,resourceSource:a}}),e}),t.icons||[])}(s,r)}else if(n){const t=Ve(He(n,"NonLinearClickThrough")),i=je(n,"NonLinearClickTracking");xe.call(i,(e=>{De(a,"click",Ve(e))})),t&&(r.clickthrough=t),function(e,t){const i=[],s=He(e,"StaticResource");s&&!t.media&&(i.push({type:Oe(s,"creativeType"),file:Ve(s),adType:Oe(He(e,"NonLinear"),"apiFramework")||"static",minDuration:Oe(He(e,"NonLinear"),"minSuggestedDuration")||"00:00:00"}),t.media=i)}(e,r)}else!function(e,t){const i=je(He(e,"CompanionAds"),"Companion"),s=t.companions?t.companions:[];xe.call(i,(e=>{const t=He(e,"StaticResource"),i=He(e,"IFrameResource"),a=He(e,"HTMLResource"),r={};let n,o;if(t)n=Oe(t,"creativeType"),o=Ve(t);else if(i)n="iframe",o=Ve(i);else{if(!a)return;n="html",o=Ve(a)}const l=je(He(e,"TrackingEvents"),"Tracking");xe.call(l,(e=>{const t=Oe(e,"event");De(r,t,Ve(e))}));const d=Ve(He(e,"CompanionClickThrough"));s.push({width:parseInt(Oe(e,"width"),10),height:parseInt(Oe(e,"height"),10),type:n,source:o,trackers:r,clickthrough:d})})),t.companions=s}(e,r)})),r};class Xe{constructor(e,t){this.utils=t,this._error=null,this._version=null,e&&this.parse(e)}error(){return this._error}version(){return this._version}parse(e,t){let i;"VAST"===e.nodeName?i=e:(i=He(e,"VAST"),i||(i=He(e,"VideoAdServingTemplate"))),i||this.throwError(101,"Invalid VAST response");const s="VideoAdServingTemplate"===i.tagName?1:parseFloat(Oe(i,"version")||0);this._version=s;const a=je(i,"Ad"),r=Se.call(a,(i=>{const a=this.parseAd(s,i);return a.vastversion=s,a.response=e,a.request=t||null,a}));return r.length||function(e){const t=je(e,"Error");xe.call(t,(e=>{const t=Ve(e).replace(u,303);(new Image).src=t}))}(i),r.extensionNodes=this.parseExtensions(e),r}parseAd(e,t,i){i=i||{};const s=He(t,"InLine"),a=He(t,"Wrapper"),r=s||a;let n;const o=He(r,"Advertiser"),l=He(r,"AdVerifications");return l&&(i.adVerifications=function(e){const t=je(e,"Verification"),i=[];return xe.call(t,(e=>{const t=Oe(e,"vendor"),s=He(e,"JavaScriptResource"),a=He(e,"ExecutableResource"),r=Ve(He(e,"VerificationParameters")),n=je(He(e,"TrackingEvents"),"Tracking"),o={},l={vendor:t,verificationParameters:r,trackers:o};s&&(l.javaScriptResource={url:Ve(s),apiFramework:Oe(s,"apiFramework"),browserOptional:Oe(s,"browserOptional")}),a&&(l.executableResource={url:Ve(a),apiFramework:Oe(a,"apiFramework"),type:Oe(a,"type")}),xe.call(n,(e=>{Ne(o,e)})),i.push(l)})),i}(l)),i.sequence=Oe(t,"sequence"),i.adId=Oe(t,"id"),i.adTitle=Ve(He(r,"AdTitle")),i.advertiser=Ve(o),i.advertiserId=Oe(o,"id"),i.description=Ve(He(r,"Description")),i.dealId=Ve(He(r,"DealId")),(!e||e>4.2||e<2)&&this.throwError(102,"Vast version not supported"),e>=4&&(i.conditionalAd=Boolean(Oe(t,"conditionalAd"))),r?(n=$e(r,e,this.utils),Qe(r,"Impression",n.trackers),Qe(r,"Error",n.trackers),Qe(r,"NotViewable",n.trackers),Qe(r,"Viewable",n.trackers),function(e){const t={};e.media&&e.media.forEach((e=>{const i=e.type,s="application/x-mpegURL"===i||"vnd.apple.mpegURL"===i;"vpaid"===e.adType.toLowerCase()||s||(t[i]=t[i]||0,t[i]++)})),e.mediaFileCompliance=!0,Object.keys(t).forEach((i=>{const s=t[i];s<3&&(e.mediaFileCompliance=!1,e.nonComplianceReasons=e.nonComplianceReasons||[],e.nonComplianceReasons.push(`${i} has only ${s} qualities`))}))}(n),a&&(n.wrappedURI=Ve(He(a,"VASTAdTagURI"))||Ve(He(a,"VASTAdTagURL")),n.followAdditionalWrappers=JSON.parse(Oe(a,"followAdditionalWrappers")),n.allowMultipleAds=JSON.parse(Oe(a,"allowMultipleAds")),n.fallbackOnNoAd=JSON.parse(Oe(a,"fallbackOnNoAd"))),n=function(e,t){const i=Object.assign({},e);return Object.keys(t).forEach((e=>{const s=t[e];Array.isArray(i[e])?i[e]=i[e].concat(s):"object"==typeof i[e]&&null!==i[e]?i[e]=Object.assign(i[e],s):i[e]=s})),i}(i,n)):this.throwError(303,"No ads",10303),n}parseExtensions(e){const t={},i=He(e,"Extensions");if(!i||!i.childNodes||!i.childNodes.length)return null;for(let e=0;e{const i=e[t];s=s||{},s[t]="_adQueue"===t||"_pod"===t?i.slice():i})),s?(s.requestTimeout=t,s.creativeTimeout=i,s._errors=[],s._waterfallIndex=0,s._adPodIndex=0,s):void 0},Je=function(e,t){return"%"===e.toString().slice(-1)?t*parseFloat(e.slice(0,-1))/100:parseFloat(e)};class Ge{constructor(e,t){this.adRules=e,this.utils=t,this.preRoll=null,this.vmap=null,this.postRoll=null,this.midRolls=[],this.playedMidRolls=[],this.duration=0,this._vmapPromise=null,this._vmapXHR=null}load(e,i,s,a){if(this._vmapPromise)return this._vmapPromise;null!==this._vmapXHR&&(We(this._vmapXHR),this._vmapXHR=null);const r=Ce(this.getVMAP(),e,i,s,a);return s===t?(this._vmapPromise=r.then((e=>{this.setPreRoll({_adQueue:[e]})})),this._vmapPromise):(this._vmapPromise=r.then((t=>new Promise(((i,s)=>{this._vmapXHR=e.utils.ajax({url:t,withCredentials:a.withCredentials,retryWithoutCredentials:!0,requireValidXML:!0,timeout:this.requestTimeout},i,((e,t,i,a)=>s(a)))})).then((i=>{this._vmapXHR=null,e.trigger(I,{client:s,tag:t,xml:i.responseXML});return Ue(i.responseXML,this,e.utils).map((e=>Object.assign(e,{vmap:t})))})).catch((i=>{this._vmapXHR=null;const s={id:x,vmap:t};if(i.message)Object.assign(s,{message:`VMAP Schema Error: ${i.message}`,code:1002,adErrorCode:i.adErrorCode||11002});else{const t={1:{code:1007,message:"Timeout"},602:{code:1e3,message:"Invalid XML"},default:{code:1008,message:e.getConfig().localization.errors[i.key]}},a=t[i.code]||t.default;e.utils.log(a.message),Object.assign(s,{message:"Error Loading VMAP Schedule",code:a.code,adErrorCode:a.code+1e4})}throw s})))),this._vmapPromise)}canWaterfall(e){return e._adQueue&&e._waterfallIndex+1t)return null;this.sort(i);let s=this.midRolls.length;for(;s--;){const a=this.midRolls[s],r=Je(this.midRolls[s]._offSet,i);if(e>=r)return null;if(t>=r){const e=ze(a,this.requestTimeout,this.creativeTimeout);if(!this.adRules.timeBetweenAdsAllowsAdPlayback(e))return null;if(!this.adRules.timeBetweenAds){if(this.playedMidRolls.indexOf(s)>=0)return null;this.playedMidRolls.push(s)}return s}}return null}peek(e,t,i){if(this.midRolls.length>this.playedMidRolls.length){this.sort(i);let s=0;for(;this.midRolls[s];){const a=this.midRolls[s],r=Je(a._offSet,i);if(r>=e&&-1===this.playedMidRolls.indexOf(s)){const i=ce()+1e3*(r-e);return r<=t&&this.adRules.timeBetweenAdsAllowsAdPlayback(null,i)?s:null}s+=1}}const s=ce()+1e3*(i-e);return this.postRoll&&t>=i&&this.adRules.timeBetweenAdsAllowsAdPlayback(null,s)?-1:null}getNextMidrollIndex(e,t,i){if(this.adRules.timeBetweenAds||this.adRules.startOnSeek)return this.getLastMidRollIndexBetweenTime(e,t,i);if(this.midRolls.length>this.playedMidRolls.length){const e=this.getClosestIndex(t,i);if(e>=0&&this.playedMidRolls.indexOf(e)<0)return this.playedMidRolls.push(e),e}return null}getMidRolls(){return this.midRolls.map((e=>ze(e,this.requestTimeout,this.creativeTimeout)))}reset(){null!==this._vmapXHR&&(We(this._vmapXHR),this._vmapXHR=null),this.playedMidRolls=[],this.duration=0}setPreRoll(e){e&&this.resetBreakId(e),this.preRoll=e}addMidRoll(e){this.resetBreakId(e),this.midRolls.push(e),this.duration=0}setPostRoll(e){e&&this.resetBreakId(e),this.postRoll=e}sort(e,t){(!e||e<1)&&(e=1),(this.duration!==e||t)&&(this.duration=e,this.midRolls.forEach((t=>{t._offsetSeconds=Je(t._offSet,e)})),this.midRolls.sort(((e,t)=>e._offsetSeconds-t._offsetSeconds)),function(e,t){for(let i=0;i=Je(this.midRolls[i]._offSet,t))return i;return-1}clearAds(){this.preRoll=null,this.midRolls.length=0,this.postRoll=null}resetBreakId(e){e.adBreakId=this.utils.genId(12)}resetAllBreakIds(){this.getAllAds().forEach((e=>{this.resetBreakId(e)}))}destroy(){this.reset(),this.adRules.destroy()}}const Ye=function(e){return Array.isArray(e)?e.slice(0):[e]},Ke=function(e,t){return 0===e?1/0:e||t},Ze=function(e,t,i){const s=t.schedule||t.adschedule;if(!s)return;const a={};Object.keys(s).forEach((e=>{const t=s[e];t.ad&&(Object.assign(t,t.ad),delete t.ad);const r=function(e,t,i=!0){if("start"===e||"0%"===e||i&&!e&&0!==e)return"pre";if("end"===e||"100%"===e)return"post";if("string"==typeof e&&("pre"===e||"post"===e||e.indexOf("%")>=0))return e;const s=t.seconds(e);return"number"==typeof s&&!isNaN(s)&&s}(t.offset,i),n=Ke(t.requestTimeout,f),o=Ke(t.creativeTimeout,5e3);let l=a[r];if(l){if("nonlinear"===t.type)return;"nonlinear"===l._type&&(l=null)}const d=a[r]=l||{_offSet:r,_type:t.type,_breakId:e,adBreakId:i.genId(12),requestTimeout:n,creativeTimeout:o};!1===r&&i.log("Error: ad offset format not supported",r);const h=t.skipoffset;if(void 0!==h&&void 0===d.skipoffset&&(d.skipoffset=h),"string"==typeof t.adm)d.adm=t.adm;else if(t.pod){const e=d._pod||[];d._pod=e.concat(t.pod)}else if(t.tag){const e=ne(t.tag,t.custParams);d._adQueue&&(d._pod=[d._adQueue[0]],delete d._adQueue),d._pod?d._pod.push(Ye(e)[0]):d._adQueue=Ye(e)}else"string"==typeof t.vastxml?d._adXML=t.vastxml:i.log("Error: no ad tag provided")})),Object.keys(a).forEach((i=>{const s=a[i];switch(s.skipoffset=void 0!==s.skipoffset?s.skipoffset:t.skipoffset,i){case"pre":e.setPreRoll(s);break;case"post":e.setPostRoll(s);break;default:e.addMidRoll(s)}}))};class et{constructor(e){this.utils=e}getSchedule(e,t){const i=new Ge(t,this.utils);if(i.requestTimeout=Ke(e.requestTimeout,f),i.creativeTimeout=Ke(e.creativeTimeout,5e3),e.tag)i.setPreRoll({_offSet:"pre",_adQueue:Ye(e.tag),_waterfallIndex:0});else if("string"==typeof e.vastxml)i.setPreRoll({_offSet:"pre",_adXML:e.vastxml});else{if("string"==typeof e.schedule)return i.setVMAP(e.schedule),i;if("string"==typeof e.adschedule)return i.setVMAP(e.adschedule),i;Ze(i,e,this.utils)}return i.sort(),i}getOptParams(e,t){const i={cuetext:t.cuetext,dynamicMessage:t.admessage,loadingAd:t.loadingAd,podMessage:t.podmessage,skipoffset:e.skipoffset,skipmessage:t.skipmessage,skiptext:t.skiptext,omidAccessMode:e.omidAccessMode||"full",omidSupport:e.omidSupport||"auto",allowedOmidVendors:e.allowedOmidVendors||[],vpaidcontrols:e.vpaidcontrols||!1,conditionaladoptout:e.conditionaladoptout||!1,requestFilter:e.requestFilter,trackingFilter:e.trackingFilter,withCredentials:void 0===e.withCredentials||e.withCredentials,extensions:"[object Object]"===Object.prototype.toString.call(e.extensions)?e.extensions:{}},s=e.companiondiv;return s&&(i.companion={id:s.id,height:s.height,width:s.width}),i}getAdRules(e){const t=e.rules||{},i=parseInt(t.frequency,10);return{startOn:t.startOn||1,frequency:isNaN(i)?1:i,timeBetweenAds:t.timeBetweenAds||0,startOnSeek:t.startOnSeek||null,deferAds:t.deferAds||null}}}class tt{constructor(e,t){this.player=e,this.options=t,this.client=t.client,this.ignoreStartOnSeek=!1,this.reset(),t.timeBetweenAds&&e.on({adBreakStart:this.handleAdBreakStart,adSkipped:this.handleAdSkipped,adComplete:this.handleAdComplete,adBreakEnd:this.handleAdBreakEnd,destroyPlugin:this.destroy},this)}get timeBetweenAds(){return this.options.timeBetweenAds}get startOnSeek(){return this.ignoreStartOnSeek?null:this.options.startOnSeek}shouldDeferAds(){return this.options.deferAds&&!this.player.getConfig().activeTab}clearStartOnSeek(){this.ignoreStartOnSeek=!0}sendAdBreakIgnored(e,t){e&&this.player.trigger(v,function(e,t){let i={};return e&&(i={id:e._breakId,tag:e._adQueue&&e._adQueue.length>0?e._adQueue[0]:e._adXML,offset:e._offSet}),Object.assign(i,{timeSinceLastAd:t,type:v})}(e,t,this.client))}rulesAllowAdPlayback(e){const t=this.options,i=0===t.frequency&&1===e,s=e>=t.startOn&&(e-t.startOn)%t.frequency==0;return i||s}handleAdBreakStart(){this.adSkipped=!1,this.adComplete=!1}handleAdComplete(){this.adComplete=!0}handleAdSkipped(){this.adSkipped=!0}handleAdBreakEnd(){!this.adSkipped&&this.adComplete&&(this.recentCompletedAdTime=ce(),this.player.trigger("previousAdCompleteTime",{time:this.recentCompletedAdTime}))}timeBetweenAdsAllowsAdPlayback(e,t=ce()){if(this.options.timeBetweenAds){const i=(t-this.recentCompletedAdTime)/1e3;if(i{e&&"discovery"===e.mode&&(this.relatedNextUp=e)}))}}onCast(e){this.casting=Boolean(e.active)}init(e,t){if(this.config.clearAdsOnComplete&&this.player.videoHasCompleted&&this.schedule.clearAds(),e=e||null,this.schedule.isVMAP()&&(t.requestTimeout=this.schedule.requestTimeout,t.creativeTimeout=this.schedule.creativeTimeout,this.vmapPromise=this.schedule.load(this.player,this.item,this.client,t)),this.bidsPromise=this.vmapPromise||Promise.resolve(),this.bidsPromise=null!==e?this.bidsPromise.then((()=>{if(this.isDestroyed())return;if(this.bidding)return this.createBidsPromise(e,t);const i=function(e,t,i){const s=we(e,t,i);return Object.assign(s,{message:"Ad Error: bidding plugin unavailable",code:900,adErrorCode:60008}),s}(this,null,t);this.player.trigger(b,i)})).catch(it):this.bidsPromise.catch(it),this.config.preloadAds)if(1===t.playlistItemEventCount){const e=this.player.getConfig().autostart;!1===e||"viewable"===e&&0===this.player.getViewable()?this.loadPreroll(t).catch((e=>this.isDestroyed()?null:this.enqueueAdEvent(b,e,{preload:!0}))):this.player.once("autostartNotAllowed",(()=>{this.loadPreroll(t).catch((e=>this.isDestroyed()?null:this.enqueueAdEvent(b,e,{preload:!0})))}))}else t.preloadPreroll&&this.loadPreroll(t).catch((e=>this.isDestroyed()?null:this.enqueueAdEvent(b,e,{preload:!0})));return this.bidsPromise}createBidsPromise(t,i){const s=this.player;let a=parseInt(t.bidOnBreaks,10);return a=a>0?a:1/0,this.bids=this.schedule.getAllAds().slice(0,a).map((a=>{const{adPlayId:r}=this.getAdIds(a),n=s.getConfig(),{skipoffset:o}=this.config,l=null!=o&&o>=0,d=ve(s,this.item),h={id:r,offset:t.offset,jwpseg:d,placement:ye(n),tag:a._adQueue?a._adQueue[0]:a._currentTag,adClient:this.client};this.client===e&&(h.skipoffset=l?o:-1);const c=this.bidding.createNewBid(h,{getURLParts:fe});this.player.trigger("adBidRequest",we(this,a,Object.assign({jwpseg:d},i))),c.init();const p=c.start().then((({result:t})=>{if(this.isDestroyed())return;let s=Promise.resolve();var r;t&&!t.error&&(a.jwpseg=d,t.adm?(a._adXML=t.adm,null!=a&&null!=(r=a._adQueue)&&r.length&&a._adQueue.unshift(t.adm)):t.tag&&(s=Ce(t.tag,this.player,this.item,this.client,{},a).then((t=>{this.client===e?(a._adQueue=a._adQueue||[],a._adQueue.unshift(t)):a._adQueue=[t]}))));return this.player.trigger("adBidResponse",we(this,a,i)),s}));return this.bidsPromises.push(p),c})),Promise.all(this.bidsPromises)}checkPreroll(e){if(this.bidTimeoutStarted||(this.bidTimeoutStarted=!0,this.bids.forEach((e=>e.timeout()))),this.casting||this.preRollPlayed||this.adRules.shouldDeferAds())return;this.preRollPlayed=!0;const t=(null==e?void 0:e.startTime)||this.player.getPosition();this.lastTimeEvent=t||this.lastTimeEvent;const i=this.schedule.getPreRoll(t);if(!i&&!this.vmapPromise)return;(null!==this.vmapPromise||i&&"nonlinear"!==i._type)&&this.startBlocking(),this.bidsPromise.then((()=>{if(this.isDestroyed())return;const e=this.schedule.getPreRoll(t);e&&"nonlinear"!==e._type&&this.triggerAdBreakEvents(e,"pre")})),t?"none"===this.adRules.startOnSeek&&(this.prerollPromise=null):this.adRules.clearStartOnSeek();const s=null!=e&&e.playReason?e.playReason:c;this.playPreroll({adBlock:this.adBlockErrorDetected,startTime:t,reason:s})}checkMidrolls(e){if(this.casting||0===e.duration||this.adRules.shouldDeferAds())return;const t=this.schedule.getNextMidrollIndex(this.lastTimeEvent,e.position,e.duration);if(this.lastTimeEvent=e.position,null!==t){if(this.isAdLoading)return;const e=this.schedule.getMidRollAtIndex(t);"nonlinear"!==e._type&&(this.startBlocking(),this.triggerAdBreakEvents(e,"mid")),this.playMidrollAtIndex(t,{adBlock:this.adBlockErrorDetected})}else if(!this.preRollPlayed&&this.schedule.getClosestIndex(e.position,e.duration)<0)this.checkPreroll(e);else if(this.config.preloadAds){const t=e.position+5,i=this.schedule.peek(e.position,t,e.duration);if(null!==i&&i>=0)this.loadMidrollAtIndex(i,{adBlock:this.adBlockErrorDetected,preload:!0}).catch(it);else if(-1===i){const t=ce()+1e3*(e.duration-e.position);this.loadPostroll({adBlock:this.adBlockErrorDetected,preload:!0,startTime:t}).catch(it)}else if(null===this.next&&null===this.nextPlaylistItemPromise&&t>e.duration){const e=this.player.getPlaylistIndex()+1,t=this.player.getPlaylistItem(e);if(this.nextPlaylistRelated=Boolean(this.relatedNextUp),t||this.relatedNextUp){const t=this.relatedNextUp?-1:e;this.nextPlaylistItemPromise=Promise.resolve(this.player.getPlaylistItemPromise(t)).then((()=>{this.isDestroyed()||(this.trigger("preloadNext",{item:this.player.getPlaylistItem(e)||this.relatedNextUp,index:t}),this.relatedNextUp=null,this.nextPlaylistItemPromise=null)})).catch(it)}}}}checkPostrolls(e){if(this.casting||this.adRules.shouldDeferAds()||this.isDestroyed())return;const t=this.schedule.getPostRoll();t&&("nonlinear"!==t._type&&(this.startBlocking(),this.triggerAdBreakEvents(t,"post")),this.playPostroll(e))}getAdIds(e,{tagIndex:t,podIndex:i}={}){let s=e.adRequestIds&&void 0!==t?e.adRequestIds[t]:null;if(!s){const t=`p${i||e._adPodIndex||0}w${e._waterfallIndex||0}`;"p0w0"===t?s=e.adBreakId:(e.adPlayIds=e.adPlayIds||{},s=e.adPlayIds[t]=e.adPlayIds[t]||this.player.utils.genId(12))}return{adBreakId:e.adBreakId,adPlayId:s}}loadPreroll(e={}){return this.prerollPromise||(this.prerollPromise=this.bidsPromise.then((()=>{if(this.isDestroyed())return;const t=this.schedule.getPreRoll(e.startTime);return t?(t._position="pre",t._preload=!0,this.loadAd(t,e)):void 0}))),this.prerollPromise}loadMidrollAtIndex(e,t){return this.midrollPromise[e]||(this.midrollPromise[e]=this.bidsPromise.then((()=>{if(this.isDestroyed())return;const i=this.schedule.getMidRollAtIndex(e);return i?(i._position="mid",i._preload=!0,this.loadAd(i,t)):void 0}))),this.midrollPromise[e]}loadPostroll(e={}){return this.postrollPromise||(this.postrollPromise=this.bidsPromise.then((()=>{if(this.isDestroyed())return;const t=this.schedule.getPostRoll(e.startTime);return t?(t._position="post",t._preload=!0,this.loadAd(t,e)):void 0}))),this.postrollPromise}playPreroll(e){this.prerollPromise?this.playPreloadedPromise(this.prerollPromise,e):this.bidsPromise.then((()=>{if(this.isDestroyed())return;const t=this.schedule.getPreRoll(e.startTime);t?(t._position="pre",this.startAdBreak(t,e)):this.stopBlocking()}))}playMidrollAtIndex(e){this.midrollPromise[e]?this.playPreloadedPromise(this.midrollPromise[e]):this.bidsPromise.then((()=>{const t=this.schedule.getMidRollAtIndex(e);t&&(t._position="mid",this.startAdBreak(t))}))}playPostroll(e){this.postrollPromise?this.playPreloadedPromise(this.postrollPromise):this.bidsPromise.then((()=>{const t=this.schedule.getPostRoll();t&&(t._position="post",this.startAdBreak(t,e))}))}isDestroyed(){return null===this.player}destroy(){this.destroyBids(),this.player.off(null,null,this),this.player=null}destroyBids(){this.bids.forEach((e=>e.stop())),this.bidsPromises=[],this.bids=[]}enqueueAdEvent(e,t,i){this._events.push({type:e,event:t}),i.preload||this.dequeueAdEvents()}async waitForAdPlay(e){this.isAdLoading=!0;let t=!1;try{await e,t=!0}catch(e){}return this.isAdLoading=!1,t}dequeueAdEvents(){}triggerAdBreakEvents(){}startBlocking(){}stopBlocking(){}loadAd(){}playPreloadedPromise(){}startAdBreak(){}}class at{constructor(e,t,i,s,a,r,n){Object.assign(this,e.Events),this.player=e,this.startingSize=e.getWidth()*e.getHeight();const o=r.allowedOmidVendors;try{const l=[];s.forEach((e=>{const{javaScriptResource:i,vendor:s,verificationParameters:a,trackers:d}=e;o.length&&o.indexOf(s)<0?n("verificationNotExecuted",d.verificationNotExecuted,{"[REASON]":1}):i?i.url?l.push(new t.VerificationScriptResource(i.url,s,a,r.omidAccessMode)):n("verificationNotExecuted",d.verificationNotExecuted,{"[REASON]":3}):n("verificationNotExecuted",d.verificationNotExecuted,{"[REASON]":2})}));const d=new t.Partner("JWPlayer",e.version),h=new t.Context(d,l,location.href);h.setVideoElement(i),h.underEvaluation=!0,h.setServiceWindow(window);const c=this.adSession=new t.AdSession(h);if(!c.isSupported())return;this.adEvents=new t.AdEvents(c),this.mediaEvents=new t.MediaEvents(c),a&&c.setCreativeType("video"),c.start()}catch(e){return console.warn(e),null}}resetResizeTimeout(){clearTimeout(this.resizeTimer),this.isFullscreen||(this.resizeTimer=setTimeout((()=>{if(this.mediaEvents){const e=this.player.getWidth(),t=this.player.getHeight();e*t>this.startingSize?this.mediaEvents.playerStateChange("expanded"):e*t{var t,i;ct||(ct=null!=(t=window)&&null!=(i=t.OmidSessionClient)&&i.default?Promise.resolve():nt(e,lt));return ht||(ht=nt(e,dt)),Promise.all([ht,ct])};var ut=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};const mt=[];class gt{constructor({adServingId:e,adVerifications:t,linear:i},s,a,r,n,o){const l=s||{};this.adServingId=e,this.map=l,this.omidDeferredEvents=[],o&&t&&"disabled"!==n.omidSupport&&(o.on(_,(()=>{o.off(null,null,this),this.trackOmidEvent(_)}),this),pt(r.utils).then((()=>{const e=window.OmidSessionClient.default,s=o.getMediaElement();this.omidTracker=new at(r,e,s,t,i,n,this.trackPingsByUrl.bind(this)),this.omidDeferredEvents.forEach((e=>{const{type:t,args:i}=e;this.trackOmidEvent(t,...i)})),this.omidDeferredEvents=[]}))),this.debugTrackFn=a,this.trackerPlayerUtils=function(e){return{getPosition:()=>e.getPosition(),getFile:()=>e.getPlaylistItem().file,getPlacement:()=>ye(e.getConfig()),getUserAgent:()=>navigator.userAgent}}(r),this.trackingFilter=n.trackingFilter,this.lastQuartile=0,this.progressEvents=[],this.breakStarted=!1,this.started=!1,this.firedError=!1,this.hasComp=!1,this.buffering=!1,Object.keys(l).forEach((e=>{if(ut(l,e)&&0===e.indexOf("progress")){const t=`${e.split("_")[1]}`,i={key:e,offset:t,tracked:!1,percentage:!1};/^\d+%$/.test(t)?(i.percentage=!0,i.offset=parseFloat(t)):i.offset=r.utils.seconds(t),this.progressEvents.push(i)}})),this.setFactories()}getUrls(e){return ut(this.map,e)?this.map[e]:[]}addUrl(e,t){ut(this.map,e)||(this.map[e]=[]),this.map[e].push(t)}trackPingsByUrl(e,t,i={}){const{trackingFilter:s}=this,a=[],r=[],n=[];if(t.length){i=this.replaceMacros(i),t.forEach((e=>{if(!e)return;if(Object.keys(i).forEach((t=>{e=e.replace(t,i[t])})),s&&!1===s(e))return void r.push(e);const t=new Image;t.src=e,a.push(e),n.push(t)})),Array.prototype.push.apply(mt,n);let e=mt.length;for(;e--&&(mt[e].width||mt[e].complete);)mt.length=e}"function"==typeof this.debugTrackFn&&this.debugTrackFn({type:"ping",data:{pingType:e,urls:a,filteredUrls:r,images:n}})}trackPings(e,t){const i=this.getUrls(e);this.trackPingsByUrl(e,i,t)}trackOmidEvent(e,...t){this.omidTracker?this.omidTracker.trackEvent(e,...t):this.omidDeferredEvents.push({type:e,args:t})}replaceMacros(e){const{gdprApplies:t,consentData:i}=me;return e["[ADSERVINGID]"]=encodeURIComponent(this.adServingId||""),e["[ASSETURI]"]=encodeURIComponent(this.trackerPlayerUtils.getFile()),e["[CACHEBUSTING]"]=Math.random().toString().slice(2,10),e["[CONTENTPLAYHEAD]"]=encodeURIComponent(function(e){const t=`0${Math.floor(e/3600)}`.slice(-2),i=`0${Math.floor((e-3600*t)/60)}`.slice(-2);return`${t}:${i}:${`0${Math.floor(e-3600*t-60*i)}`.slice(-2)}.${(e%1).toFixed(3).toString().slice(2,5)}`}(this.trackerPlayerUtils.getPosition())),e["[DEVICEUA]"]=encodeURIComponent(this.trackerPlayerUtils.getUserAgent()),e[m]=i,e["[PAGEURL]"]=encodeURIComponent(fe().url),e["[PLACEMENTTYPE]"]=this.trackerPlayerUtils.getPlacement(),e[g]=t?"gdpr":"",e["[TIMESTAMP]"]=encodeURIComponent(function(){const e=new Date,t=e.getTime(),i=e.getTimezoneOffset()/60,s=6e4*e.getTimezoneOffset();return new Date(t-s).toISOString().slice(0,-1)+(i>0?"-":"+")+`0${i}`.slice(-2)}()),e}start(){this.started=!0,this.trackPings("start")}breakStart(){this.breakStarted=!0,this.trackPings("breakStart")}time(e,t){if(t<=1)return;const i=(4*e+.05)/t|0;for(;i>this.lastQuartile&&this.lastQuartile<3;)this.lastQuartile++,1===this.lastQuartile?(this.trackPings("firstQuartile"),this.trackOmidEvent("firstQuartile")):2===this.lastQuartile?(this.trackPings("midpoint"),this.trackOmidEvent("midpoint")):3===this.lastQuartile&&(this.trackPings("thirdQuartile"),this.trackOmidEvent("thirdQuartile"));this.trackProgress(e,t)}trackProgress(e,t){for(let i=this.progressEvents.length;i--;){const s=this.progressEvents[i];if(!s.tracked){let i=s.offset;s.percentage&&(i=t*i/100),e>=i&&(s.tracked=!0,this.trackPings(s.key))}}}error(e=900){this.firedError=!0;const t={};t[u]=e,this.trackPings("error",t)}factory(e){return(...t)=>{this.trackPings(e),"fullscreen"!==e&&this.trackOmidEvent(e,...t)}}setFactories(){this.creativeView=this.factory("creativeView"),this.click=this.factory("click"),this.skip=this.factory("skip"),this.complete=this.factory("complete"),this.pause=this.factory("pause"),this.resume=this.factory("resume"),this.mute=this.factory("mute"),this.unmute=this.factory("unmute"),this.fullscreen=this.factory("fullscreen"),this.expand=this.factory("expand"),this.collapse=this.factory("collapse"),this.acceptInvitation=this.factory("acceptInvitation"),this.close=this.factory("close"),this.rewind=this.factory("rewind"),this.impression=this.factory("impression"),this.viewable=this.factory("viewable"),this.notViewable=this.factory("notviewable"),this.breakEnd=this.factory("breakEnd")}}const yt=(e,t)=>{const i=[];return t.forEach((t=>{var s,a;e.companions&&(t.companions=(t.companions?t.companions:[]).concat(e.companions)),e.trackers&&(t.trackers=(s=t.trackers,a=e.trackers,s=s||{},Object.keys(a).forEach((e=>{const t=a[e];s[e]?s[e]=s[e].concat(t):s[e]=t})),s)),e.sequence&&(t.sequence=e.sequence),e._currentTag&&(t._currentTag=e._currentTag),e.adVerifications&&(t.adVerifications=(t.adVerifications?t.adVerifications:[]).concat(e.adVerifications)),e.adId&&(t.adIds=(t.adIds||[]).concat(e.adId)),i.push(t)})),i};class ft{constructor(e,t,i,s,a,r){this._scheduledAd=e,this.player=t,this.options=i,this.item=i.item,this.params=i.params||{},this.wrapperOptions=s||{},"boolean"!=typeof this.wrapperOptions.followAdditionalAds&&(this.wrapperOptions.followAdditionalAds=!0),"boolean"!=typeof this.wrapperOptions.allowMultipleAds&&(this.wrapperOptions.allowMultipleAds=!0),this.debugTrackFn=a,Object.assign(this,t.Events),this._history=[],this.loadedAds=[],this.parser=null,this.promise=null,this.xmlhttp=null,this.wrappedTags=null,this.options.isPodItemLoader||(e.adPlayIds={}),this.extensionHandlers=Object.assign({},window.jwVastExtensionHandlers,this.params.extensions),this.mock=r||!1}load(e){if(null===this.promise){this._history.push(e);const{requestFilter:t}=this.options;this.promise=new Promise(((i,s)=>{this.xmlhttp=this.player.utils.ajax({url:e,withCredentials:this.params.withCredentials,retryWithoutCredentials:!0,requireValidXML:!0,timeout:this._scheduledAd.requestTimeout,requestFilter:t},i,((e,t,i,a)=>s(a)))})).catch((t=>{if(null!==this.player)throw this.ajaxError(t,e)})).then((t=>{if(null!==this.player){const i=t.responseXML||t.responseText;return this.trigger(I,{tag:e,xml:i}),this.parseVast(i,e)}}))}return this.promise}destroy(){var e;(e=this.xmlhttp)&&(e.onload=null,e.onreadystatechange=null,e.onerror=null,e.abort&&e.abort()),this.off(),this.player=null,this.xmlhttp=null}scheduledAd(){return this._scheduledAd}allAds(){return this.loadedAds}podMultipleVastLoaders(e){const t=e.map((e=>e.then((e=>{const t=e.adPod();if(t.length)return t;const i=e.adBuffet();return i.length?[i[0]]:Promise.reject({vloader:this,message:"No compatible ad"})})).catch((e=>({error:e})))));return Promise.all(t).then((e=>{let t=0;const i=e.reduce(((e,i,s)=>{if(i.error)return i.error.tagIndex=s,this.trigger(L,i.error),e;if(i.length&&0!==s){const e=`p${t}w${this._scheduledAd._waterfallIndex}`;this._scheduledAd.adPlayIds[e]=this._scheduledAd.adRequestIds[s]}return i.forEach((i=>{i.sequence=++t,e.push(i)})),e}),[]);return i.length?(this.loadedAds=i,this):null}))}adPod(){const e=[];return this.loadedAds.forEach((t=>{t.sequence&&e.push(t)})),e.sort(((e,t)=>e.sequence-t.sequence)),e}adBuffet(){const e=[];return this.loadedAds.forEach((t=>{t.sequence||e.push(t)})),e}parseVast(e,t){return this.parseXMLString(e,t).then((e=>this.checkForWrappers(e,t))).then((e=>this.checkExtensionHandlers(e)))}parseXMLString(e,t){return null===this.parser&&(this.parser=new Xe(null,this.player.utils)),new Promise((t=>{const i=(s=e,("object"==typeof Node?s instanceof Node:s&&"object"==typeof s&&"number"==typeof s.nodeType&&"string"==typeof s.nodeName)?e:this.player.utils.parseXML(e));var s;if(null===i){throw{message:"Invalid XML",code:100}}return t(this.parser.parse(i,this.xmlhttp))})).catch((e=>{if(null!==this.player){const i=e.code||900,s=e.adErrorCode||1e4+i;throw this.sendErrorEvent(e.message,i,s,t)}}))}checkForWrappers(t,i){if(null===this.player)return null;if(0===t.length)throw this.sendErrorEvent("No ads",303,10303,i);const s=t.filter((e=>!e.sequence)).map((e=>(e._currentTag=i,e)));this.wrapperOptions.allowMultipleAds?this.loadedAds=t:this.loadedAds=s,this.options.wrapper=this.options.wrapper||[],this.options.wrapperAdIds=this.options.wrapperAdIds||[];const{adsystem:a,dealId:r,adId:n}=this.options;a&&this.options.wrapper.push(a),n&&this.options.wrapperAdIds.push(n),r&&(this.options.wrapperDealId=r),this.options.adsystem=this.loadedAds[0].adsystem,this.options.dealId=this.loadedAds[0].dealId;const o=[];return t.forEach(((t,a)=>{if(t._currentTag||(t._currentTag=i),t.wrappedURI){if(!1===this.wrapperOptions.followAdditionalWrappers)return;this.options.wrappedTags=this.options.wrappedTags||[this._scheduledAd._currentTag],this.options.wrappedTags.push(t.wrappedURI);const i=new ft(this._scheduledAd,this.player,this.options,{fallbackOnNoAd:t.fallbackOnNoAd,allowMultipleAds:t.allowMultipleAds,followAdditionalWrappers:t.followAdditionalWrappers},this.debugTrackFn);i.on(I,(e=>{this.trigger(I,e)}),this);const r=Ce(t.wrappedURI,this.player,this.item,e,this.params,t).then((e=>i.load(e))).then((e=>{i.off(I,null,this);const s=yt(t,e.allAds()),a=this.loadedAds.indexOf(t);Array.prototype.splice.apply(this.loadedAds,[a,1].concat(s))})).catch((e=>{i.off(I,null,this);const r=this.sendAdpodErrorEvent(e,t,a),n=t.fallbackOnNoAd&&t.sequence&&s.length,o=this.loadedAds.indexOf(t);if(n)return t.loadError=r,void e.vloader.destroy();if(this.loadedAds.splice(o,1),e.vloader.destroy(),r.type!==L)throw r;this.trigger(L,r)}));o.push(r)}else this.options.wrapper.length&&(t.wrapper=this.options.wrapper,t.wrappedTags=this.options.wrappedTags,t.wrapperAdIds=this.options.wrapperAdIds,t.dealId=this.options.wrapperDealId)})),Promise.all(o)}checkExtensionHandlers(){if(null===this.player)return null;const e=this.loadedAds.filter((e=>!e.sequence));return this.loadedAds.extensionNodes&&(this.loadedAds=this.handleExtensionCallback(this.loadedAds)),this.loadedAds.forEach(((t,i)=>{if(t.loadError)if(e.length){const s=this.loadedAds[i+1],a=s&&!s.sequence?s:e[0];this.loadedAds[i]=Object.assign({},a,{sequence:t.sequence})}else this.trigger(L,t.loadError)})),this.validateAdResponses()}validateAdResponses(){const e=this.loadedAds.slice(0),t=e.length;e.forEach((t=>{t.media&&t.media.length||e.length--}));const i=0===t,s=e.length!==t;if((i||s)&&!this.mock)throw this.sendErrorEvent("Ad Tag Empty",101,10101,this._history[this._history.length-1]);return this}handleExtensionCallback(e){for(const s in this.extensionHandlers){var t,i;if(null!=(t=e)&&null!=(i=t.extensionNodes)&&i[s]){e=e.extensionNodes[s].reduce(((e,t)=>{try{e=this.extensionHandlers[s](e,t)}catch(e){console.debug("Error with handling extension callback function: ",e)}return e}),e)}}return e}ajaxError(e,t){var i,s;if(this.player.getAdBlock())return this.sendErrorEvent("Ad playback blocked by an ad blocker",900,60003,t);const a=e.code;if(601===a||602===a)return this.sendErrorEvent("Invalid XML",100,10100,t);const r=null==this||null==(i=this.options)||null==(s=i.wrappedTags)?void 0:s.length,n=r?301:900,o=r?10301:60006;return this.sendErrorEvent(e.message||"Error loading file",n,o,t)}firstUrl(){var e;return null!=this&&null!=(e=this._history)&&e.length?this._history[0]:""}sendAdpodErrorEvent(e,t,i){const{message:s,code:a,adErrorCode:r,url:n}=e;if(1===this.loadedAds.length)return this.sendErrorEvent(s,a,r,n,i);const o={message:s,code:a,adErrorCode:r,podIndex:i,vloader:this,tag:this.firstUrl()||n,type:L};return this.trackError(o,t),this.wrappedTags=n,o}sendErrorEvent(e,t,i,s,a){const r={message:e,code:t,adErrorCode:i,podIndex:a,vloader:this,tag:this.firstUrl()||s,adsystem:this.options.adsystem||""};return this.options.wrappedTags&&(r.wrapperAdSystem=this.options.wrapper||"",r.wrappedTags=this.options.wrappedTags,r.wrapperAdIds=this.options.wrapperAdIds),this.trackError(r),r}trackError(e,t){const i=e.vloader.allAds();if(null!=i&&i.length){const s=t||i[0];if(s){const t=s.trackers;if(null!=t&&t.error){new gt(s,t,this.debugTrackFn,this.player,this.options).error(e.code)}}}}}class vt{constructor(e,t,i,s,a){this.player=e,this.state=e.state,this.vpaidURL=i,this.adTag=s,this.adParams=a.adParams,this.vpaidControls=a.vpaidControls,this.remainingTimeInterval=null,this.type="vpaid",this.instream=t||e.createInstream(),this.vpaidState={linear:!1,expanded:!1,remainingTime:-1},this.paused=!1,Object.assign(this,e.Events),this.setMuteCallback=()=>{this.handleMute?this.setMute():this.handleMute=!0},this._forceUnpause=()=>{this.vpaidAd&&!this.paused&&this._mediaEl&&!this._mediaEl.ended&&(this.player.setMute(!0),this.vpaidAd.resumeAd())},this.playerContainer=this.player.getContainer(),a.adOptOut?setTimeout((()=>{this.sendEvent("error",{message:"Conditional ad rejected",code:408})}),0):this.iframe=((e,t,i,s)=>{const a=document.createElement("iframe");return a.onload=s,a.setAttribute("allow","autoplay"),a.srcdoc=`\n \n \n