\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!
Alternative Mega Link: https://mega.nz/file/GwgB3YhS#ySVJgLiPdDX4YtGoZ_3LCbhFmx5W19x8vARxAU2eXNs
*387 MB download, 1.27 GB when decompressed*
# Intro
For those unaware, the Vita version of Ys Origin exclusively uses the low resolution assets from the original PC version, with the higher resolution assets being completely deleted. Dotemu mostly based the port around the "Lightest" graphical preset offered by the PC version, except with 32-bit Textures and Mipmapping on.
After experiencing the 60 FPS hack through VitaGrafix, I wondered if it would be possible to push even more out of this port, since the game had plenty of VRAM to spare.
# What this mod does
[Imgur gallery with comparison images](https://imgur.com/a/xRbR8FQ)
I replaced the following low resolution assets with the higher resolution ones from the PC version:
* All character and monster sprites
* All map textures
* All object textures
* All skybox textures
* All boss textures
I did a full playthrough with Hugo to test the mod, and found that there was **no performance degradation other than slightly longer load times between maps** (1 to 3 seconds longer due to the larger files).
This significantly improved the appearance of the game, and it baffles me that Dotemu didn't bother to include them from the start. This helps the Vita version stand closer to the upcoming Switch port.
# What this mod does NOT do
The one thing I was not able to replace were the effect textures. Replacing these made the GPU Driver prone to crashing when loading certain maps. Considering how this port struggles with effects to begin with, this isn't a huge loss. **I did not experience any new crashes from the other assets I replaced.**
***Please note that this mod does not resolve the innate problems with the port. It only replaces the low-res assets of the sprites and textures to improve the basic appearance of the game.***
* The game will still stutter when first loading some sounds.
* The game still has massive slowdowns with extravagant effects.
* The blood is still minimized (an issue all of the Dotemu versions share).
* Anisotropic filtering is still disabled, so distant/angled textures will still be blurry.
* Some floor textures still have visible seams between tiles. (Mainly the ones on the outside of Darm Tower)
* The Bazeraena enemies in the Demonic Core can still randomly crash the game when doing their hand laser attacks. I'm not sure what exactly causes this, but it happens without the mod too. I recommend trying to avoid these enemies whenever possible in this port.
# INSTALLATION
* You must have a hacked PS Vita running some form of HENkaku. Visit [https://vita.hacks.guide/](https://vita.hacks.guide/) if you don't know how to hack your Vita. Please note that rePatch only works on firmware 3.60-3.68.
* The **rePatch** plugin is required: [https://github.com/dots-tb/rePatch-reDux0/releases/](https://github.com/dots-tb/rePatch-reDux0/releases/)
* Make sure you have at least 1.3 GB of free space on your memory card / SD card.
* Copy the included **rePatch** folder inside the archive to the root of your memory card.
* **Play!**
* **OPTIONAL**: If you have the game installed on your memory card, you can can delete the original **data.na**, **ni**, and **nu** files to save space, since they are already in the rePatch folder.
* If you want to do this optional step, go into appPCSE01033archives and delete **data.na**, **data.ni**, and **data.nu**. This saves about 560 MB of space.
# Potential FAQs
* Will this mod work on other regional versions?
* Yes. The regular **data.na/ni/nu** files only contain the unlocalized game files. You will need to rename the **PCSE01033** folder inside the **rePatch** directory to match your region, however, as this mod was made from the US release. The other regional title IDs are as follows: **PCSB01081** (EU), **PCSH10049** (AS). Japan's title ID is the same as the US version.
* Does the game need to be updated for this mod to work?
* This mod will work regardless of the game's current version.
* Where can I find the 60 FPS hack that was mentioned earlier?
* See [VitaGrafix](https://github.com/Electry/VitaGrafix). I recommend using [VitaGrafixConfigurator](https://github.com/Kirezar/VitaGrafixConfigurator) with it. Overclocking is strongly suggested if you use the 60 FPS hack. **The game needs to be updated to the latest ver. 1.02 patch for the 60 FPS hack to work.**
* The background textures flicker in the Velagunder and Nygtilger boss fights. Is this an issue with the mod?
* No, this is a problem with the 60 FPS VitaGrafix hack. This benign issue occurs with the standard low-res assets with the 60 FPS hack also.