\n\n\n',Xt=e=>{const t=e?"gray":"white";return``};var ei=o(3128),ti=o.n(ei),ii=o(8075),ri=o.n(ii),ni=o(8462),si=o.n(ni),oi=o(653),ai=o.n(oi),ci=o(7950),li=o.n(ci);const di=e=>"boolean"==typeof e,ui=e=>si()(e),hi=e=>"[object String]"===Object.prototype.toString.call(e),gi=e=>{var t;return li()(t=["top","bottom"]).call(t,e)};const pi=()=>Math.round((new Date).getTime()/1e3);var fi=e=>{const t=new a("user_engagement"),i="utsid-send";let n,o=0,c=!1,l=!1,d={clientHints:{},isScrollable:0,totalClicks:0,sessionLength:0,ippMissclicks:0,visible:0,caught:0,lastevent:0,isFullscreen:0,isTabFocused:0,eventImps:0,retryCounts:0,isScrolled:0,isMouseMoved:0,pagePercentageSeen:0,belowTheFoldSeen:0,touchEnd:0,touchMove:0,clicksByType:{idle:0,input:0,video:0,button:0,link:0,img:0},browsingTopics:[],ufp:ie()},u=L(),g=pi();function p(){var i,r;0===d.isFullscreen&&(d.isFullscreen=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement?1:0),d.isTabFocused=document.hidden||document.mozHidden||document.webkitHidden?0:1,d.sessionStartTime=g,d.sessionId=u,d.sessionLength=pi()-g,d.timeZoneOffset=(new Date).getTimezoneOffset(),d.zones=[],e&&(d.zones=e.getZoneIds()),d.pUrl=encodeURIComponent(I()),d.pReferrer=encodeURIComponent((()=>{const e=document.referrer;return e?O(e):""})()),d.pTitle=encodeURI(U()),d.pDescription=encodeURIComponent(F("description",t)),d.pKeywords=encodeURIComponent(F("keywords",t)),d.pHasIframes=(()=>{const e=document.getElementsByTagName("iframe");return e.length?e.length:0})(),d.pWidth=Math.ceil(window.scrollWidth||document.body.scrollWidth),d.pHeight=Math.ceil(window.scrollHeight||document.body.scrollHeight),d.vWidth=Math.ceil(window.innerWidth||document.body.clientWidth),d.vHeight=Math.ceil(window.innerHeight||document.body.clientHeight),d.inIframe=R(),sessionStorage.getItem("template")&&(d.ippTemplate=sessionStorage.getItem("template")),d.visible=(i=d.vWidth,r=d.vHeight,R()&&(i<10||r<10)?0:1),d.caught=(()=>{let e=0;if(R())try{window.top.location.href}catch(t){e=1}return e})(),d.isScrollable=((e,t)=>{if(e>t){const i=.05;return e-t>Math.ceil(t*i)?1:0}return 0})(d.pHeight,d.vHeight)}function f(){t.debug("Touch move detected."),d.touchMove++,l=!0}function m(){1!==d.isMouseMoved&&(t.debug("Mouse move tracked"),d.isMouseMoved=1,l=!0)}function v(){t.debug("Touch end detected."),d.touchEnd++,l=!0,b()}function b(){if(t.debug("checkScrolling()"),d.pHeight<=d.vHeight)return d.pagePercentageSeen=100,void(d.belowTheFoldSeen=100);var e=Math.ceil(window.scrollTop||document.body.scrollTop),i=Math.ceil((e+d.vHeight)/d.pHeight*100);i>100&&(i=100),i!=d.pagePercentageSeen&&(t.debug("Scroll event detected."),d.isScrolled=1,l=!0),i>d.pagePercentageSeen&&(t.debug("Page percentage seen updated."),d.pagePercentageSeen=i,l=!0);var r=Math.ceil(e/(d.pHeight-d.vHeight)*100);r>100&&(r=100),r>d.belowTheFoldSeen&&(t.debug("Bellow the fold percentage seen updated."),d.belowTheFoldSeen=r,l=!0)}function y(){d.ippMissclicks++,l=!0}function w(e){t.debug("Click tracked"),d.totalClicks++;var i=e.target,r=null;do{null!==r&&""!==r||(r=k(i)),i=i.parentElement}while(i&&"body"!==i.nodeName.toLowerCase()&&"document"!==i.nodeName.toLowerCase());null===r&&(r="idle"),d.clicksByType[r]++,l=!0}function k(e){var t=null,i=["a","video","button","input","textarea","img","select"];return-1!==h()(i).call(i,e.nodeName.toLowerCase())&&("a"===(t=e.nodeName.toLowerCase())?t="link":"textarea"!==t&&"select"!==t||(t="input")),t}function A(){t.debug("Impression tracked"),d.eventImps++}function T(){t.debug("Retry tracked!"),d.retryCounts++}function x(){var e="//usrpubtrk.com/ut/hb.php?cb="+Math.random();return e+="&v=1",t.debug("Target Url: "+e.toString()),e}function S(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!c){if(c=!0,p(),e&&(d.lastevent=1),t.isDebugEnabled&&t.debug("send payload:",JSON.parse(Fe()(d))),"navigator"in window&&"sendBeacon"in window.navigator&&void 0!==navigator.sendBeacon&&void 0!==Blob){d.sentTimestamp=r()();var i=new Blob([Fe()(d)],{type:"text/plain; charset=UTF-8"});navigator.sendBeacon(x(),i)}else{var n="XMLHttpRequest"in window?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");n.open("POST",x(),!0),n.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{d.sentTimestamp=r()(),n.send(Fe()(d))}catch(e){}}d.lastevent=0,c=!1}}function C(){t.debug("visibility state is",document.visibilityState),"hidden"===document.visibilityState&&l?(clearInterval(n),S(),l=!1):"visible"===document.visibilityState&&(n=he()(N,6e4))}function P(){var e=new CustomEvent(i,{detail:{issued:"UT",data:{utsid:u}}});document.dispatchEvent(e)}function N(){if(d.sessionLength=pi()-g,d.sessionLength>=7200)return t.debug("Session limit reached! Send last payload and tear down"),S(),clearInterval(n),t.debug("detaching behavior listeners"),document.removeEventListener("click",w,!1),document.removeEventListener("mousemove",m,!1),document.removeEventListener("scroll",b,!1),document.removeEventListener("in-page-missclick",y,!1),document.removeEventListener("impression-event",A,!1),document.removeEventListener("impression-retry-event",T,!1),document.removeEventListener("touchend",v,!1),document.removeEventListener("touchmove",f,!1),document.removeEventListener("touchcancel",b,!1),document.removeEventListener("visibilitychange",C),void window.removeEventListener("beforeunload",S);0!==o&&1!==o&&5!==o&&10!==o&&o%30!=0||S(),o++}!async function e(){if("complete"===document.readyState||"interactive"===document.readyState)return d.clientHints=await E(t,true),d.browsingTopics=await async function(){let e=[];if("browsingTopics"in document&&document.featurePolicy.allowsFeature("browsing-topics"))try{e=await document.browsingTopics(),t.debug("document.browsingTopics() return value:",e)}catch(e){t.debug("Error calling document.browsingTopics(): ",e)}return e}(),"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?(document.addEventListener("touchend",v,!1),document.addEventListener("touchmove",f,!1),document.addEventListener("touchcancel",b,!1)):(document.addEventListener("mousemove",m,!1),document.addEventListener("scroll",b,!1)),document.addEventListener("click",w,!1),document.addEventListener("impression-event",A,!1),document.addEventListener("impression-retry-event",T,!1),document.addEventListener("in-page-missclick",y,!1),p(),b(),0===o&&N(),n=he()(N,6e4),window[i]=u,P(),s()(P,2e4),document.addEventListener("visibilitychange",C),void window.addEventListener("beforeunload",(()=>{S(!0)}));s()(e,100)}()},mi=o(3038),vi=o.n(mi);const bi="sandboxedDetector";var yi=class{#i;#ue;#he;#ge=!1;#pe=!1;#fe=!1;constructor(e,t,i){this.#i=e,this.#ue=t,this.#he=i}isSandboxed(){return this.#pe}load(){var e;if(this.#ge)return void this.#i.debug("already checked");if(this.#ge=!0,this.#i.debug("load sandbox detector"),!R())return void this.#i.debug("not in iframe. exit");this.#i.debug("iframe detected");const i=this.#he.getState();if(i&&i.expiresAt>r()())return this.#i.debug("previous state present. Expires at:",new Date(i.expiresAt)),i.isSandboxed?(this.#i.debug("sandboxed recently! show overlay"),void(this.#pe=!0)):void this.#i.debug("not sandboxed recently. dont check further");this.#i.debug("attach detector listener to events");const n={zoneId:bi,callback:t()(e=this.#me).call(e,this)};J||this.#ue.subscribe("mousedown",n,!0),this.#ue.subscribe("click",n,!0)}#me(e){if(!e.isTrusted)return void this.#i.debug(`${e.type} on ${e.target.tagName}. Detector skipped: event is not trusted`,e);if(this.#ue.isShowingPop)return void this.#i.debug("detector skipped: pop being currently shown");this.#ue.isShowingPop=!0,this.#i.debug("detector taking action. prevent other pops from showing");let t=null;try{t=window.open("about:blank","_blank")}catch(e){this.#i.error("detector error",e)}t&&t.close(),null===t&&(this.#i.debug("sandbox detected"),this.#pe=!0),this.#he.setState({expiresAt:r()()+36e5,isSandboxed:this.#pe}),J||this.#ue.unsubscribe("mousedown",bi,!0),this.#ue.unsubscribe("click",bi,!0),s()((()=>{this.#ue.isShowingPop=!1}),300)}showSandboxWarningOverlay(){this.#fe||(this.#fe=!0,this.#i.debug("show sandbox warning overlay"),this.#ve())}#be(){const e=document.createElement("div");e.id="sbxwo",vi()(e.style,{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.8)",color:"#fff",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",padding:"20px",boxSizing:"border-box",textAlign:"center"});const t=document.createElement("div");t.innerHTML="\n
Ad Functionality Blocked
\n
\n It looks like your page is running in a sandbox that blocks certain functionality.\n This setting is preventing our ads from working properly.\n Please disable the sandbox restrictions or adjust your settings.\n
\n To continue playing please remove Sandbox from iframe tab or add "allow-popups" to Sandbox\n
\n ',e.appendChild(t),document.body.appendChild(e)}};const wi="x4G9Tq2Kw6R7v1Dy3P0B5N8Lc9M2zF",ki="ZpQw9XkLmN8c3vR3",Ai="adblock-settings",Ti=(()=>{let e=document.currentScript;return e||(e=document.getElementById("aclib")),e||(e=document.getElementById("adcash-lib")),e})();let xi=null;var Si=class{#ye;#we={pop:!1,autoTag:!1,inPagePush:!1,interstitial:!1,videoSlider:!1};#ke;#v;#Ae=new(ri());#Te=new(ri());#i;#xe=!1;#Se=!1;#Ce={mousedown:[],click:[],touchstart:[]};#Ee={mousedown:[],scroll:[],click:[],touchstart:[]};#m="adexchangeclear.com";#k="65.0";#o=null;#Ie="aclib";#Re;#Oe=!1;isShowingPop=!1;#S;#Le=!1;#Pe={};#Ne;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(xi)return xi;xi=this;let t="aclib";if(e.classes&&(this.#Pe=e.classes,t="aclib_adbl"),this.#i=new a(t),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("win mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("win mousedown: calling observer"),t.callback(e)}))}),!1),window.addEventListener("click",(e=>{var t;this.#i.debug("win click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("win click with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("click",(e=>{var t;this.#i.debug("win click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("win click: calling observer"),t.callback(e)}))}),!1),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("doc mousedown: calling observer"),t.callback(e)}))})),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("doc mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("scroll",(e=>{var t;x()(t=this.#Ee.scroll).call(t,(t=>{t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("doc click: calling observer"),t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("doc click with capture: calling observer"),t.callback(e)}))}),!0),this.getClientHints(),this.#Re=L(),this.#S=ie(),this.#Ne=new yi(new a("sd"),xi,new ze("sndbxchckiborjforqp2")),this.#i.debug("init adcash lib. listeners attached. ready to publish"),this.#i.debug("is mobile device:",J),window[wi]&&(this.#o=JSON.parse(Fe()(window[wi])),this.#ye=this.#o.cdnDomain,delete window[wi]),window[ki]&&(this.#o=JSON.parse(function(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"xR9tB2pL6q7MwVe";const r=atob(e);return A()(t=[...r]).call(t,((e,t)=>String.fromCharCode(e.charCodeAt(0)^i.charCodeAt(t%i.length)))).join("")}(window[ki])),this.#ye=this.#o.cdnDomain,delete window[ki]),this.#o||(this.#ye=new(m())(Ti.src).host,Ti.hasAttribute(Ai)&&(this.#o=JSON.parse(Ti.getAttribute(Ai)),Ti.removeAttribute(Ai))),this.#o&&this.#i.debug("adblock settings:",this.#o),Ti.getAttribute("data-preview"))return this.#i.debug("preview mode"),void(this.#Le=!0);this.#Ue(),this.#$e(),this.#Fe(),this.#Ne.load()}isSandboxed(){return this.#Ne.isSandboxed()}showSandboxWarningOverlay(){this.#Ne.showSandboxWarningOverlay()}async getClientHints(e){if(void 0===this.#ke){this.#ke=await E(this.#i,!0);let e="";for(const t in this.#ke)e+=`&${t}=${this.#ke[t]}`;this.#v=e}return e?this.#ke:this.#v}getCdnDomain(){return this.#ye}getSesionRandomString(){return this.#Re}enableAdbMode(){this.#i.debug("enable adb mode"),this.#Oe=!0}isAdbMode(){return this.#Oe}subscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);i?this.#Ce[e].push(t):this.#Ee[e].push(t)}unsubscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);if(i)for(let i=0;i{const t=document.createElement("link");t.rel="dns-prefetch",t.href=`//${e}`,document.head.appendChild(t)}))}s()(t()(e=this.#Ue).call(e,this),100)}getZoneIds(){return w()(this.#Ae)}runPop(e){const{zoneId:t,delay:i,targetElementsCssSelector:r,triggerOnTargetElementsClick:n,targetCountries:s,triggerOnTargetCountries:o,sub1:a,sub2:c,publisherUrl:l,storeUrl:d,c1:u,c2:h,c3:g,pubHash:p,pubClickId:f,pubValue:m,fallbackOn:v,isAutoTag:b,collectiveZoneId:y,aggressivity:w,recordPageView:k,linkedZoneId:A,abTest:T,tagVersionSuffix:x}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r){if(!hi(r))throw new Error("targetElementsCssSelector is not a string");if(!(e=>{try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0})(r))throw new Error("targetElementsCssSelector is not a valid css selector");if(!di(n))throw new Error("triggerOnTargetElementsClick is not a boolean")}if(void 0!==s){if(!(e=>{if(!ai()(e))return!1;if(0===e.length)return!1;for(let t=0;t{window.PopUnder&&(this.#Ae.add(S.zoneId),new PopUnder(S),clearInterval(e))}),100)}else{this.#i.debug("loading suv5 script on page"),this.#xe=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/suv5.js`,e.onload=()=>{this.#we.pop=!0,this.#xe=!1,b?this.#Ae.add(y):this.#Ae.add(S.zoneId),new PopUnder(S)},e.onerror=()=>{this.#we.pop=!1,this.#xe=!1,this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runInPagePush(e){if(this.#we.inPagePush)return void this.#i.error("in-page push zone already loaded on page");this.#we.inPagePush=!0;const{zoneId:t,delay:i,maxAds:r,renderPosDesktop:n,renderPosMobile:s,offsetTop:o,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p}=e;let{refreshRate:f}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==f&&(!ui(f)||f<0))throw new Error("refreshRate is not an integer or is less than zero");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r&&(!ui(r)||r<1))throw new Error("maxAds is not an integer or is less than one");if(void 0!==n&&!gi(n))throw new Error("renderPosDesktop is not valid");if(void 0!==s&&!gi(s))throw new Error("renderPosMobile is not valid");if(void 0!==o&&(!ui(o)||o<0))throw new Error("offsetTop is not an integer or is less than zero");this.#i.debug("loading in-page push on page"),c?this.#Ae.add(l):this.#Ae.add(t),void 0!==f&&f>0&&f<10&&(f<5?f*=60:f=30),this.#i.debug("ipp rr set to",f);const m={zoneId:t,refreshRate:f??60,delay:i??0,maxAds:r??1,renderPosDesktop:n??"top",renderPosMobile:s??"top",offsetTop:o??0,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p,adserverDomain:this.#m,adblockSettings:this.#o,adcashGlobalName:this.#Ie,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.InPagePush)return m.isLoadedAsPartOfLibrary=!0,void new this.#Pe.InPagePush(m);if(window.InPagePush)new window.InPagePush(m);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${window.location.protocol}//${this.#ye}/script/inpagepush.js`,e.setAttribute("nipp","1"),e.onload=()=>{new window.InPagePush(m)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runBanner(e){const{zoneId:t,width:i,height:r,renderIn:n,sub1:s,currentScript:o}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&!ui(i))throw new Error("Banner width is not an integer");if(void 0!==r&&!ui(r))throw new Error("Banner height is not an integer");let a;this.#i.debug("loading banner on page",t),n||(document.currentScript&&document.currentScript.parentElement&&(a=document.currentScript.parentElement),o&&(a=o.parentElement));const c={zoneId:t,width:i,height:r,renderIn:n,currentElement:a,sub1:s,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,adblockSettings:this.#o};if(this.#Pe.Banner)new this.#Pe.Banner(c);else if(this.#we.banner||this.#Se){if(window.Banner)return this.#Ae.add(c.zoneId),void new Banner(c);const e=he()((()=>{window.Banner&&(this.#Ae.add(c.zoneId),new Banner(c),clearInterval(e))}),100)}else{this.#Se=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/banner.js`,e.onload=()=>{this.#we.banner=!0,this.#Se=!1,this.#Ae.add(c.zoneId),new Banner(c)},e.onerror=()=>{this.#we.banner=!1,this.#Se=!1,this.#i.error(`failed loading ${e.src}`)},e.setAttribute("data-adel","ban"),e.setAttribute("a-lib","1"),document.head.appendChild(e)}}runInterstitial(e){if(this.#we.interstitial)return void this.#i.error("interstitial zone already loaded on page");this.#we.interstitial=!0;const{zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");this.#i.debug("loading interstitial on page");const d={zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l,adcashGlobalName:this.#Ie,adserverDomain:this.#m,adblockSettings:this.#o,uniqueFingerprint:this.#S,isLoadedAsPartOfLibrary:!1};if(this.#Ae.add(t),this.#Pe.Interstitial)return d.isLoadedAsPartOfLibrary=!0,void new this.#Pe.Interstitial(d);if(window.Interstitial)new Interstitial(d);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/interstitial.js`,e.setAttribute("a-lib","1"),e.onload=()=>{new Interstitial(d)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}async#ze(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.#i.debug("fetch collective zone config");let i=`${window.location.protocol}//${this.#m}/ad/czcf.php`;if(this.isAdbMode()){const e=`/${ee("abcdefgh0123456789")}`;i=`${window.location.protocol}//${this.#o.adserverDomain}${e}`}i+=`?cz=${e}`,i+=`&atv=${this.#k}`;const r=await this.getClientHints();let n;r&&(i+=r),this.isAdbMode()&&(i+="&sadbl=2",i+="&fmt=atg",i=te(i)),this.#i.debug("collective zone config url: ",i);try{n=await fetch(i)}catch(i){return this.#i.error(i),this.#o&&t?(this.#i.debug("collective zone config fetch failed: try alt domain and path"),this.enableAdbMode(),this.#ze(e,!1)):null}return 200!==n.status?null:(n=await n.json(),se(n))}async runAutoTag(e){if(this.#we.autoTag)return void this.#i.error("autotag zone already loaded on page");this.#we.autoTag=!0;const t=e.zoneId;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const i=await this.#ze(t);if(!i)return void this.#i.error(`failed to fetch collective zone config! czid: ${t}`);if(this.#i.debug("collective zone config:",i),!i.rotationList){this.#i.debug("running in NORMAL MODE (no rotation)");const r=i.indexedFormats;let n=!0;for(const s in r){switch(s){case"suv4":case"pop":this.runPop({zoneId:r[s].zoneId.toString(),targetElementsCssSelector:r[s]["element-list"],triggerOnTargetElementsClick:"allow"===r[s]["element-action"],targetCountries:r[s]["country-list"],triggerOnTargetCountries:"allow"===r[s]["country-action"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"interstitial":this.runInterstitial({zoneId:r[s].zoneId.toString(),isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"ippg":this.runInPagePush({zoneId:r[s].zoneId.toString(),refreshRate:r[s].rr,delay:r[s].d,maxAds:r[s].mads,renderPosDesktop:r[s]["render-pos-desktop"],renderPosMobile:r[s]["render-pos-mobile"],offsetTop:r[s]["offset-top"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;default:this.#i.error(`ad format type not recognised from collective zone config. adformat.type: ${s}; czid: ${t}`)}n=!1}return}this.#i.debug("running in ROTATION MODE (rotation present)");const r={adcashGlobalName:this.#Ie,collectiveZoneConfig:i,adserverDomain:this.#m,adblockSettings:this.#o,clientHintsQueryStr:this.#v,tagVersionSuffix:e.tagVersionSuffix,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.AutoTagRotation)return this.#Ae.add(t),r.isLoadedAsPartOfLibrary=!0,void new this.#Pe.AutoTagRotation(r);this.#i.debug("loading autotag rotation script on page");const n=document.createElement("script");n.type="text/javascript",n.src=`${location.protocol}//${this.#ye}/script/atagv2.js`,n.onload=()=>{this.#Ae.add(t),new De(r)},n.onerror=()=>{this.#i.error(`failed loading ${n.src}`)},document.head.appendChild(n)}runVideoSlider(e){if(this.#we.videoSlider)return void this.#i.error("videoslider zone already loaded on page");this.#we.videoSlider=!0;const{zoneId:t,sub1:i,vastXml:r,useAlternative:n,linkedZoneId:s}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const o={zoneId:t,sub1:i,adserverDomain:this.#m,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,isPreviewMode:this.#Le,useAlternative:n,vastXml:r,linkedZoneId:s,adblockSettings:this.#o};if(this.#Pe.VideoSlider)return o.isLoadedAsPartOfLibrary=!0,void new this.#Pe.VideoSlider(o);if(window.VideoSlider)new VideoSlider(o);else{const e=document.createElement("script");e.type="text/javascript",Math.round(Math.random())?(e.src=`${window.location.protocol}//${this.#ye}/script/videoSliderAlt.js`,o.tagVersionSuffix="-b",this.#i.debug("VideoSlider A/B test: using alternative video slider")):(e.src=`${window.location.protocol}//${this.#ye}/script/videoSlider.js`,o.tagVersionSuffix="-a",this.#i.debug("VideoSlider A/B test: using video slider")),e.onload=()=>{this.#Ae.add(t),new VideoSlider(o)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}};const Ci=new a("aclib_adblock_index");window.Adcash?Ci.debug("lib already on page. exit"):(Ci.debug("load lib on page"),function(){var e;const t={aclib:new Si(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Adcash:Si,AtcshAltNm:Si};x()(e=it()(t)).call(e,(e=>{ti()(window,e,{value:t[e]})}))}({classes:{AutoTagRotation:De,PopUnder:class{#s;#y=null;#t={};#L=!1;#De=!1;#Be=!1;#Me=!1;#P;#b=!1;#R=!0;#i;#k="65.0";#N=null;#Ve=12;#T=!1;constructor(e){var i,n;this.#i=new a(`suv5_${e.zoneId}`),this.#s=window[e.adcashGlobalName],e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k),this.#i.debug("init pop with config:",e),this.#t=e,this.elementTargeting=new je(this.#t.targetElementsCssSelector,this.#t.triggerOnTargetElementsClick,this.#t.zoneId),!J||this.elementTargeting.isPresent()||this.#t.linkedZoneId||(this.#R=!1),this.#i.debug("useCapture:",this.#R),this.overlays=new He(this.elementTargeting,t()(i=this.#U).call(i,this),t()(n=this.#He).call(n,this),this.#i,this.#t.zoneId,this.#R),this.#z(),this.localStorage=new ze(`suv5_${e.zoneId}_state`);const o=this.localStorage.getState();o&&o.adbExpiresAt>r()()&&this.#s.enableAdbMode();const c=r()();if(o&&o.renderAfterTimestamp>c){var l;const e=o.renderAfterTimestamp-c;this.#i.debug(`previous state present. bid after ${e/1e3} sec`),s()(t()(l=this.#je).call(l,this),e)}else this.#je()}async#C(){const e=await this.#s.getClientHints(!1);let t=`${window.location.protocol}//${this.#t.adserverDomain}/script/suurl5.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:e}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;t=`${window.location.protocol}//${e}${i}`}if(t+=`?r=${this.#t.zoneId}`,this.#b&&(t+="&rbd=1"),this.#t.targetCountries){const e=this.#t.targetCountries.join(",");this.#t.triggerOnTargetCountries?t+="&allowed_countries="+encodeURIComponent(e):t+="&excluded_countries="+encodeURIComponent(e)}return t=t+e+"&cbur="+Math.random()+"&cbiframe="+R()+"&cbWidth="+P()+"&cbHeight="+N()+"&cbtitle="+encodeURIComponent(U())+"&cbpage="+encodeURIComponent(I())+"&cbref="+encodeURIComponent($())+"&cbdescription="+encodeURIComponent(F("description"))+"&cbkeywords="+encodeURIComponent(F("keywords"))+"&cbcdn="+encodeURIComponent(this.#s.getCdnDomain())+"&ufp="+encodeURIComponent(this.#t.uniqueFingerprint)+"&ts="+r()()+"&srs="+this.#s.getSesionRandomString()+"&atv="+this.#k,this.#t.sub1&&(t+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#t.sub2&&(t+=`&sub2=${encodeURIComponent(this.#t.sub2)}`),this.#t.publisherUrl&&(t+=`&pu=${encodeURIComponent(this.#t.publisherUrl)}`),this.#t.storeUrl&&(t+=`&storeurl=${encodeURIComponent(this.#t.storeUrl)}`),this.#t.c1&&(t+=`&c1=${encodeURIComponent(this.#t.c1)}`),this.#t.c2&&(t+=`&c2=${encodeURIComponent(this.#t.c2)}`),this.#t.c3&&(t+=`&c3=${encodeURIComponent(this.#t.c3)}`),this.#t.pubHash&&(t+=`&pub_hash=${encodeURIComponent(this.#t.pubHash)}`),this.#t.pubClickId&&(t+=`&pub_clickid=${encodeURIComponent(this.#t.pubClickId)}`),this.#t.pubValue&&(t+=`&pub_value=${encodeURIComponent(this.#t.pubValue)}`),this.#t.fallbackOn&&(t+=`&fallbackon=${encodeURIComponent(this.#t.fallbackOn)}`),this.#t.adblockSettings&&(t+="&abtg=1"),this.#t.isAutoTag&&(t+="&atag=1"),this.#t.aggressivity&&(t+=`&aggr=${this.#t.aggressivity}`),this.#t.collectiveZoneId&&(t+=`&czid=${this.#t.collectiveZoneId}`),this.#t.recordPageView&&(t+="&ppv=1"),this.#t.linkedZoneId&&(t+=`&pblcz=${this.#t.linkedZoneId}`),this.#t.abTest&&(t+=`&ab_test=${this.#t.abTest}`),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(t+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(t+="&sbx=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(t+="&sadbl=2",t+="&fmt=suv5",this.#i.debug(`bid url: ${t}`),te(t)):(this.#i.debug(`bid url: ${t}`),t)}#F(e){try{let t=this.#N?this.#N(""):window.open("");return t.document.open(),t.document.writeln('
17 OCT 2024 - Welcome Back to TorrentFunk! Get your pirate hat back out. Streaming is dying and torrents are the new trend. Account Registration works again and so do Torrent Uploads. We invite you all to start uploading torrents again!
Unlocking the Power of Asynchronous Task Processing with Python Celery
What you'll learn
Module 1: You will learn how to set up a working environment for Django Celery by building Docker containers for Django, Redis, and Celery workers.
Module 2: You will learn to create and register tasks within a Django application, start and manage Celery.
Module 3: You will learn to identify common exceptions and errors in Celery tasks and implement error control.
Module 4: You will learn to schedule tasks at specific times or intervals, customize periodic tasks, and utilize crontab schedules.
By the end of the course, you will have a solid understanding of Django Celery and be equipped to leverage its power.
Requirements
Prior knowledge of Django concepts is advantageous.
Prior knowledge of basic Python programming lexicon and concepts is adcentageous
If You Need More Stuff, kindly Visit and Support Us -->> https://CourseWikia.com
Get More Tutorials and Support Us -->> https://FreeCourseWeb.com
We upload these learning materials for the people from all over the world, who have the talent and motivation to sharpen their skills/ knowledge but do not have the financial support to afford the materials. If you like this content and if you are truly in a position that you can actually buy the materials, then Please, we repeat, Please, Support Authors. They Deserve it! Because always remember, without "Them", you and we won't be here having this conversation. Think about it! Peace...
VISITOR COMMENTS (0 )
FILE LIST
Filename
Size
~Get Your Files Here !/1. Source Code/1. Introduction.mp4
5.1 MB
~Get Your Files Here !/1. Source Code/2. Code Examples.html
138 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/command.md
167 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/db.sqlite3
128 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/asgi.py
391 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/celery.py
260 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/settings.py
2.8 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/urls.py
763 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/wsgi.py
391 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/dcelery/__init__.py
0 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/Dockerfile
451 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/entrypoint.sh
81 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/manage.py
663 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/dcelery/requirements.txt
335 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/docker-compose.yml
699 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live-1.7/gitignore
43 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/celerybeat-schedule
16 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/celeryconfig.py
75 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/celerytask.py
516 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/Dockerfile
447 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/newapp/tasks.py
374 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/newapp/__init__.py
0 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/celeryworker/requirements.txt
62 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/command.md
816 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/app.log
0 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/celerybeat-schedule
20 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/db.sqlite3
188 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/asgi.py
391 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery.py
2.3 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_config.py
1.3 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex10_Error_Tracking_and_Monitoring_with_Sentry.py
367 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex11_task_scheduling-1.py
513 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex12_task_schedule_customization-1.py
736 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex13_task_schedule_crontab-1.py
1.8 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex1_try_except.py
1.1 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex2_custom_task_class.py
1.5 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex3_auto_retry.py
839 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex4_error_handling_groups.py
845 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex5_error_handling_chain.py
542 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex6_dead_letter_queue.py
958 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex7_task_timeouts_revoking.py
1.1 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex8_linking_result_callbacks.py
664 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/celery_tasks/ex9_task_signals_graceful_shutdown_and_cleanup.py
569 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/settings.py
3 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/urls.py
118 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/wsgi.py
391 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/dcelery/__init__.py
71 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/Dockerfile
451 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/entrypoint.sh
81 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/manage.py
663 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/admin.py
63 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/apps.py
144 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/management/commands/test_command.py
286 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/migrations/__init__.py
0 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/models.py
57 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/tasks.py
482 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/tests.py
60 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/views.py
38 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/newapp/__init__.py
0 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/dcelery/requirements.txt
510 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/docker-compose.yml
1.3 KB
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/gitignore
56 B
~Get Your Files Here !/1. Source Code/django-celery-mastery-live/vscode/settings.json
518 B
~Get Your Files Here !/2. Setup Guides/1. [Windows] Installing Python.mp4
50.9 MB
~Get Your Files Here !/2. Setup Guides/2. [Windows] Visual Studio Code Induction.mp4
41.5 MB
~Get Your Files Here !/2. Setup Guides/3. [Windows] Creating Virtual Environments.mp4
61.3 MB
~Get Your Files Here !/2. Setup Guides/4. [macOS] Visual Studio Code Induction.mp4
52.8 MB
~Get Your Files Here !/2. Setup Guides/5. [macOS] Installing Python.mp4
40.4 MB
~Get Your Files Here !/2. Setup Guides/6. [macOS] Creating Virtual Environments.mp4
25.4 MB
~Get Your Files Here !/2. Setup Guides/7. Docker Installation.html
2.1 KB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/1. Introducing Django Celery.mp4
44.5 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/2. Introducing Task Producers.mp4
10 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/3. Building a Django Docker Container.mp4
215.9 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/4. Building a Redis Docker Container.mp4
6.5 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/5. Introducing Task consumers (Workers).mp4
23.6 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/6. Building a Celery Worker Docker Container.mp4
12.2 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/7. Introducing Results Backend.mp4
72.2 MB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/command.md
167 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/db.sqlite3
128 KB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/asgi.py
391 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/celery.py
260 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/settings.py
2.8 KB
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/urls.py
763 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/wsgi.py
391 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/dcelery/__init__.py
0 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/Dockerfile
451 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/entrypoint.sh
81 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/manage.py
663 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/dcelery/requirements.txt
335 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/docker-compose.yml
699 B
~Get Your Files Here !/3. Preparing a Django Celery Working Environment/django-celery-mastery-live-1.7/gitignore
43 B
~Get Your Files Here !/4. Defining and Executing Celery Tasks/1. Creating and Registering Celery Tasks in Django.mp4
101 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/10. The Primitives - Task Chaining.mp4
32 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/11. Task Rate limits.mp4
43 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/12. Configuring Task Prioritization (RabbitMQ).mp4
213.8 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/13. Passing arguments and returning results from Celery tasks.mp4
82.4 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/14. Executing tasks synchronously and asynchronously.mp4
55.1 MB
~Get Your Files Here !/4. Defining and Executing Celery Tasks/15. Monitoring Celery Workers and Tasks with Flower.mp4