Files
2026-06-13 18:33:22 +09:00

12 lines
77 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1721:(e,t,n)=>{"use strict";n.d(t,{BlockCheck:()=>l});var r=n(12115),a=n(42059);function o(){let e=(0,a.WG)();if(!e)return null;let t=Array.isArray(e.matches)&&e.matches.length>0?e.matches[0]:null;return{blocked:!!e.blocked,blockId:t?.id??null}}async function i(e=!1){if(!e){let e=o();if(e)return e;if(function(){try{let e=Number(localStorage.getItem("ntk_blk_ok")||"0");return Number.isFinite(e)&&Date.now()-e<9e5}catch{return!1}}())return{blocked:!1,blockId:null}}try{return await (0,a.Ni)(e||null===(0,a.WG)()),o()??{blocked:!1,blockId:null}}catch{return{blocked:!1,blockId:null}}}function l(){return(0,r.useEffect)(()=>{let e=!1,t=null,n=async(t=!1)=>{if(e)return;let{blocked:n,blockId:r}=await i(t);if(!e&&n){try{document.cookie="ntk_blk=1; Path=/; Max-Age=86400; SameSite=Lax; Secure"}catch{}try{let e=r?'<p style="color:#666;font-size:12px;margin-top:18px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace">차단번호: <strong style="color:#fbbf24">#s-'+r.replace(/[&<>"']/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[e])+"</strong></p>":"";document.body.innerHTML='<div style="margin:0;background:#0a0a0a;color:#fff;display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,sans-serif"><div style="text-align:center;padding:40px;max-width:420px"><div style="font-size:64px;margin-bottom:20px">\uD83D\uDEAB</div><h1 style="font-size:22px;margin:0 0 12px;font-weight:800">접근이 차단되었습니다</h1><p style="color:#999;line-height:1.7;font-size:14px">해당 IP 또는 기기는 운영 정책에 따라<br>이용이 제한되었습니다.</p><p style="color:#bbb;font-size:13px;margin-top:14px">문의: <a href="mailto:ntk01@proton.me" style="color:#60a5fa;font-weight:700">ntk01@proton.me</a></p>'+e+"</div></div>",window.stop?.()}catch{}}};n(),t=setInterval(()=>n(!0),9e5);let r=()=>{"visible"===document.visibilityState&&n(!1)};return document.addEventListener("visibilitychange",r),()=>{e=!0,t&&clearInterval(t),document.removeEventListener("visibilitychange",r)}},[]),null}},12534:(e,t,n)=>{"use strict";n.d(t,{BuildIdGuard:()=>i});var r=n(12115);let a="ntk:server-build-id";async function o(){try{let e=localStorage.getItem(a);if(e){let t=JSON.parse(e);if("string"==typeof t.id&&t.id&&"number"==typeof t.exp&&t.exp>Date.now())return t.id}}catch{}try{let e=await fetch("/api/build-id",{credentials:"omit"});if(!e.ok)return null;let t=await e.json(),n="string"==typeof t?.buildId&&t.buildId?t.buildId:null;if(n)try{localStorage.setItem(a,JSON.stringify({id:n,exp:Date.now()+6e4}))}catch{}return n}catch{return null}}function i(){return(0,r.useEffect)(()=>{if(window.__nt_buildIdGuardInstalled)return;window.__nt_buildIdGuardInstalled=!0;let e=function(){let e=function(){try{let e=document.querySelectorAll("script[src],link[href]");for(let t of Array.from(e)){let e=(t instanceof HTMLScriptElement?t.src:t.href).match(/\/(b\d{10,})\/_next\//);if(e)return e[1]}}catch{}return null}();if(e)return e;try{let e=document.querySelector("script#__NEXT_DATA__");if(e?.textContent){let t=JSON.parse(e.textContent);if("string"==typeof t?.buildId)return t.buildId}}catch{}try{let e=document.querySelectorAll("script[data-payload], script");for(let t of Array.from(e)){let e=(t.textContent||"").match(/"b":"(b\d{10,})"/);if(e)return e[1]}}catch{}return null}();if(!e)return;window.__nt_clientBuildId=e;let t=!1,n=async()=>{let n=await o();if(n&&(window.__nt_serverBuildId=n,n!==e)){let r;t=!0,function(e,t){let n=new URL(window.location.href),r=n.searchParams.get("__br")===t&&n.searchParams.has("__brt");try{let n=`ntk:build-refresh:${e}:${t}`,r=Number(sessionStorage.getItem(n)||"0")+1;return sessionStorage.setItem(n,String(r)),r<=2}catch{return!r}}(e,n)&&window.location.replace(((r=new URL(window.location.href)).searchParams.set("dpl",n),r.searchParams.get("__br")===n?r.searchParams.set("__brt",String(Date.now())):(r.searchParams.set("__br",n),r.searchParams.delete("__brt")),r.href))}},r=e=>{if(!t||e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let n=e.target,r=n?.closest?.("a");if(!r||r.target&&"_self"!==r.target)return;let a=r.getAttribute("href");if(!(!a||a.startsWith("#"))&&(!/^[a-z]+:/i.test(a)||/^https?:\/\//i.test(a)))try{let t=new URL(r.href,window.location.href);if(t.origin!==window.location.origin)return;e.preventDefault(),e.stopPropagation(),window.location.href=t.href}catch{}};document.addEventListener("click",r,!0),n();let a=window.setInterval(n,6e5);return()=>{document.removeEventListener("click",r,!0),window.clearInterval(a)}},[]),null}},12856:(e,t,n)=>{"use strict";n.d(t,{DevToolsBlocker:()=>d});var r=n(95155),a=n(73321),o=n(12115);let i="ntk_dev_warn",l=new Set(["i","j","c","k","e","m","p"]),s=new Set(["u","s"]);function d(){let e=(0,a.usePathname)(),[t,n]=(0,o.useState)(0),[d,c]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),p=(0,o.useRef)(0),h=(0,o.useRef)(!1),f=(0,o.useRef)(!1);return((0,o.useEffect)(()=>{try{localStorage.removeItem(i),localStorage.setItem("ntk_dev_warn_reset_v2","1")}catch{}function t(e,t){if(h.current)return;if(t){try{t.preventDefault()}catch{}try{t.stopPropagation()}catch{}try{t.stopImmediatePropagation()}catch{}}let r=p.current+1;p.current=r;try{localStorage.setItem(i,String(r))}catch{}if(n(r),r<5){if(c(!0),/^(key:|auto:formatters|auto:debugger)/.test(e))try{window.location.replace("https://www.google.com/")}catch{}return}h.current=!0,m(!0),c(!1);if(!f.current){f.current=!0;try{fetch("/api/dev-block",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({reason:e,debug:!1,etag:void 0,clientHints:function(){let e={};try{e.screen=`${screen.width}x${screen.height}x${screen.colorDepth}`}catch{}try{e.viewport=`${window.innerWidth}x${window.innerHeight}`}catch{}try{e.outer=`${window.outerWidth}x${window.outerHeight}`}catch{}try{e.dpr=window.devicePixelRatio}catch{}try{e.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}try{e.tzOffset=Reflect.construct(Date,[]).getTimezoneOffset()}catch{}try{e.languages=(navigator.languages||[]).slice(0,8)}catch{}try{e.language=navigator.language}catch{}try{e.platform=navigator.platform}catch{}try{e.hardwareConcurrency=navigator.hardwareConcurrency}catch{}try{e.deviceMemory=navigator.deviceMemory}catch{}try{e.maxTouchPoints=navigator.maxTouchPoints}catch{}try{e.cookieEnabled=navigator.cookieEnabled}catch{}try{e.doNotTrack=navigator.doNotTrack}catch{}try{e.connection=navigator.connection?.effectiveType}catch{}try{e.referrer=document.referrer}catch{}try{e.locationHref=location.href}catch{}try{e.warnCount=p.current}catch{}return e}()})}).catch(()=>{})}catch{}}}p.current=0,n(0);let r=!1;window.__ntkDevtoolsTripped&&(h.current=!0,m(!0));let a=function(){if("u"<typeof navigator)return!1;let e=navigator.userAgent||"";if(/iPhone|iPod|iPad|Android.*Mobile|Mobile.*Android|Opera Mini|IEMobile/i.test(e)||/Android/i.test(e)&&/Mobile/i.test(e))return!0;try{let t=window.matchMedia?.("(pointer: coarse)").matches,n=(navigator.maxTouchPoints||0)>1;if(t&&n&&/Android|iPhone|iPad|iPod|Mobile/i.test(e))return!0}catch{}return!1}(),o=!1;if(!a)try{let e=window,t={header:()=>(o=!0,null),hasBody:()=>!1};Array.isArray(e.devtoolsFormatters)?e.devtoolsFormatters.push(t):e.devtoolsFormatters=[t]}catch{}let d=a?0:window.setInterval(()=>{if(!r&&!h.current&&!document.hidden)try{if(o=!1,console.log({}),console.clear(),o)return void(!r&&!h.current&&(r=!0,t("auto:formatters")))}catch{}},2500),u=e=>{if(h.current)return;let n=function(e){if(!e.key||"string"!=typeof e.key)return null;if("F12"===e.key||"F12"===e.code)return"key:F12";let t=e.key.toLowerCase(),n=e.ctrlKey||e.metaKey;return n&&e.shiftKey&&l.has(t)?`key:Ctrl+Shift+${t.toUpperCase()}`:e.metaKey&&e.altKey&&l.has(t)?`key:Meta+Alt+${t.toUpperCase()}`:n&&s.has(t)?`key:Ctrl+${t.toUpperCase()}`:null}(e);n&&t(n,e)},b=t=>{let n=t.target;n&&(n instanceof HTMLElement&&(n.isContentEditable||"INPUT"===n.tagName||"TEXTAREA"===n.tagName||"SELECT"===n.tagName)||("/board"===e||e.startsWith("/board/")||"/anonymous-board"===e||e.startsWith("/anonymous-board/")||"/bl-board"===e||e.startsWith("/bl-board/")||"/rom-board"===e||e.startsWith("/rom-board/")||"/manhwa-board"===e||e.startsWith("/manhwa-board/")||"/anime-board"===e||e.startsWith("/anime-board/")||"/humor-board"===e||e.startsWith("/humor-board/")||"/eunkkol-board"===e||e.startsWith("/eunkkol-board/")||"/eunkkol-man-board"===e||e.startsWith("/eunkkol-man-board/")||"/game-board"===e||e.startsWith("/game-board/")||"/novel-board"===e||e.startsWith("/novel-board/")||"/trans-board"===e||e.startsWith("/trans-board/")||"/request-board"===e||e.startsWith("/request-board/")||"/notice"===e||e.startsWith("/notice/")||"/suggest"===e||e.startsWith("/suggest/"))&&n.closest("img")||t.preventDefault())},g=t=>{let n=t.target;!n||!(("/board"===e||e.startsWith("/board/")||"/anonymous-board"===e||e.startsWith("/anonymous-board/")||"/bl-board"===e||e.startsWith("/bl-board/")||"/rom-board"===e||e.startsWith("/rom-board/")||"/manhwa-board"===e||e.startsWith("/manhwa-board/")||"/anime-board"===e||e.startsWith("/anime-board/")||"/humor-board"===e||e.startsWith("/humor-board/")||"/eunkkol-board"===e||e.startsWith("/eunkkol-board/")||"/eunkkol-man-board"===e||e.startsWith("/eunkkol-man-board/")||"/game-board"===e||e.startsWith("/game-board/")||"/novel-board"===e||e.startsWith("/novel-board/")||"/trans-board"===e||e.startsWith("/trans-board/")||"/request-board"===e||e.startsWith("/request-board/")||"/notice"===e||e.startsWith("/notice/")||"/suggest"===e||e.startsWith("/suggest/"))&&("IMG"===n.tagName||n.closest("img")))&&("IMG"===n.tagName||"A"===n.tagName||n.closest("img,a"))&&t.preventDefault()};try{let e=()=>{},t=window.console;["debug","trace","dir","dirxml","group","groupCollapsed","groupEnd","table","count","countReset","assert"].forEach(n=>{try{t[n]=e}catch{}})}catch{}return document.addEventListener("keydown",u,{capture:!0}),document.addEventListener("contextmenu",b,{capture:!0}),document.addEventListener("dragstart",g,{capture:!0}),()=>{document.removeEventListener("keydown",u,{capture:!0}),document.removeEventListener("contextmenu",b,{capture:!0}),document.removeEventListener("dragstart",g,{capture:!0}),d&&window.clearInterval(d)}},[e]),u)?(0,r.jsx)("div",{role:"dialog","aria-modal":"true",style:{position:"fixed",inset:0,zIndex:999999,background:"#000",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"-apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Pretendard', sans-serif"},children:(0,r.jsxs)("div",{style:{textAlign:"center",padding:40,maxWidth:480},children:[(0,r.jsx)("div",{style:{fontSize:64,marginBottom:20},children:"\uD83D\uDEAB"}),(0,r.jsx)("h1",{style:{fontSize:24,margin:"0 0 14px",fontWeight:800},children:"개발자 도구가 차단되었습니다"}),(0,r.jsxs)("p",{style:{color:"#999",lineHeight:1.7,fontSize:14,margin:"0 0 24px"},children:["개발자 도구 사용 시도가 감지되어",(0,r.jsx)("br",{}),"일반 계정의 현재 페이지 이용이 차단되었습니다."]}),(0,r.jsxs)("p",{style:{color:"#666",fontSize:12},children:["이의가 있으면 ",(0,r.jsx)("a",{href:"mailto:ntk01@proton.me",style:{color:"#93c5fd",fontWeight:700},children:"ntk01@proton.me"})," 로 연락 주세요."]})]})}):d?(0,r.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:()=>c(!1),onKeyDown:e=>{"Escape"===e.key&&c(!1)},tabIndex:-1,style:{position:"fixed",inset:0,zIndex:999998,background:"rgba(0,0,0,0.72)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,fontFamily:"-apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Pretendard', sans-serif",animation:"ntk-fade-in .15s ease-out"},children:[(0,r.jsx)("style",{children:`
@keyframes ntk-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes ntk-pop-in { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
`}),(0,r.jsxs)("div",{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:"document",tabIndex:-1,style:{background:"linear-gradient(180deg, #1f1f23, #141417)",color:"#fff",border:"1px solid rgba(255,255,255,0.1)",borderRadius:16,padding:"28px 28px 22px",maxWidth:380,width:"100%",boxShadow:"0 20px 60px rgba(0,0,0,0.5)",animation:"ntk-pop-in .18s ease-out"},children:[(0,r.jsx)("div",{style:{fontSize:44,textAlign:"center",marginBottom:12},children:"⚠️"}),(0,r.jsx)("h2",{style:{fontSize:18,margin:"0 0 10px",textAlign:"center",fontWeight:800,letterSpacing:"-0.01em"},children:"개발자 도구 사용이 제한됩니다"}),(0,r.jsxs)("p",{style:{color:"#bbb",fontSize:13.5,lineHeight:1.65,margin:"0 0 16px",textAlign:"center"},children:["본 사이트는 개발자 도구 사용을 허용하지 않습니다.",(0,r.jsx)("br",{}),"반복 시도는 관리자 로그에 기록되며",(0,r.jsx)("br",{}),"접속 제한 검토 대상이 됩니다."]}),(0,r.jsxs)("div",{style:{background:"rgba(251,191,36,0.08)",border:"1px solid rgba(251,191,36,0.25)",borderRadius:8,padding:"10px 12px",fontSize:12.5,color:"#fbbf24",marginBottom:18,textAlign:"center",fontWeight:700,fontVariantNumeric:"tabular-nums"},children:["경고 ",t," / ",5]}),(0,r.jsx)("button",{type:"button",onClick:()=>c(!1),style:{display:"block",width:"100%",padding:"11px 16px",background:"linear-gradient(180deg, #ef4444, #dc2626)",color:"#fff",border:0,borderRadius:10,fontSize:14,fontWeight:800,cursor:"pointer",boxShadow:"0 4px 14px rgba(239,68,68,0.4)"},children:"확인"})]})]}):null}},25233:(e,t,n)=>{"use strict";n.d(t,{UnlockGate:()=>o});var r=n(95155),a=n(12115);function o(){let[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(null),[i,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{"1"===new URLSearchParams(window.location.search).get("need_unlock")&&t(!0)},[]);let s=(0,a.useCallback)(async()=>{l(!0),o(null);try{let e=function(e){if("u"<typeof document)return null;let t=document.cookie.match(RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]):null}("ntk_fp"),t=await fetch("/api/unlock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fp:e})}),n=await t.json().catch(()=>null);if(n?.ok){let e=new URL(window.location.href);e.searchParams.delete("need_unlock"),window.location.replace(e.toString())}else o(n?.error||"인증에 실패했습니다. 새로고침 후 다시 시도해주세요.")}catch{o("네트워크 오류가 발생했습니다.")}finally{l(!1)}},[]);return e?(0,r.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,width:"100vw",height:"100vh",zIndex:0x7ffffffe,background:"rgba(0,0,0,0.94)",display:"flex",alignItems:"center",justifyContent:"center",padding:24,boxSizing:"border-box",backdropFilter:"blur(8px)"},children:(0,r.jsxs)("div",{style:{maxWidth:420,width:"100%",background:"#1f2937",color:"#f9fafb",padding:"32px 28px",borderRadius:14,textAlign:"center",boxShadow:"0 20px 60px rgba(0,0,0,0.5)",border:"1px solid #374151",boxSizing:"border-box"},children:[(0,r.jsx)("div",{style:{fontSize:40,marginBottom:16},children:"\uD83D\uDD10"}),(0,r.jsx)("h2",{style:{margin:"0 0 8px",fontSize:20,fontWeight:700},children:"접속 확인"}),(0,r.jsxs)("p",{style:{margin:"0 0 24px",fontSize:14,color:"#9ca3af",lineHeight:1.6},children:["원활한 서비스 이용을 위해 본인 확인이 필요합니다.",(0,r.jsx)("br",{}),"아래 버튼을 눌러주세요."]}),n&&(0,r.jsx)("p",{style:{margin:"0 0 16px",fontSize:13,color:"#f87171"},children:n}),(0,r.jsx)("button",{type:"button",onClick:s,disabled:i,style:{width:"100%",padding:"14px 0",fontSize:16,fontWeight:600,borderRadius:8,border:"none",cursor:i?"not-allowed":"pointer",background:i?"#4b5563":"#dc2626",color:"#fff",opacity:i?.7:1,transition:"background 0.2s"},children:i?"확인 중...":"사람입니다"})]})}):null}},26333:(e,t,n)=>{"use strict";n.d(t,{AdGuardFetchTrace:()=>a});var r=n(12115);function a(){return(0,r.useEffect)(()=>{},[]),null}n(50451)},28356:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return a}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let a="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40364:(e,t,n)=>{Promise.resolve().then(n.bind(n,41526)),Promise.resolve().then(n.bind(n,96429)),Promise.resolve().then(n.bind(n,26333)),Promise.resolve().then(n.bind(n,93734)),Promise.resolve().then(n.bind(n,1721)),Promise.resolve().then(n.bind(n,55546)),Promise.resolve().then(n.bind(n,12534)),Promise.resolve().then(n.bind(n,51783)),Promise.resolve().then(n.bind(n,12856)),Promise.resolve().then(n.bind(n,86521)),Promise.resolve().then(n.bind(n,42059)),Promise.resolve().then(n.bind(n,70440)),Promise.resolve().then(n.bind(n,70113)),Promise.resolve().then(n.bind(n,25233)),Promise.resolve().then(n.bind(n,83205)),Promise.resolve().then(n.t.bind(n,42593,23)),Promise.resolve().then(n.t.bind(n,97013,23)),Promise.resolve().then(n.t.bind(n,75532,23)),Promise.resolve().then(n.t.bind(n,66872,23))},41526:(e,t,n)=>{"use strict";n.d(t,{AdAckBeacon:()=>w});var r=n(73321),a=n(12115),o=n(73133),i=n(41603),l=n(74337),s=n(47760),d=n(68950),c=n(50451),u=n(85431);let m=[1e3,2500,5e3,1e4,15e3],p=new Set(["import-throw","load-marker-throw","load-marker-failed","not-loaded"]),h=/^\/(?:(?:webtoon|manhwa|novel)\/[^/?#]+\/[^/?#]+|manga\/[^/?#]+\/reader)$/,f=/^\/manhwa\/[^/?#]+\/[^/?#]+$/;function b(e){try{let t=e.split(".")[0]||"",n=atob(t.replace(/-/g,"+").replace(/_/g,"/")+"===".slice((t.length+3)%4)),r=JSON.parse(n);return"number"!=typeof r.exp||r.exp<=Date.now()+1e4}catch{return!0}}function g(e){try{let t=window.__ntk_ad_ack_inflight;return"string"==typeof t&&(t===e||t.startsWith(`${e}
`))}catch{return!1}}function y(e){try{let t,n=window;if(n.__ntk_ad_ack_scope===e.pathname)return!1;let r=(0,i.Vb)(i.x2).length;if(0===r&&!h.test(e.pathname)&&!e.force||0===r&&e.force&&!h.test(e.pathname)||n.__ntk_ad_ack_report_sent===e.pathname)return!1;n.__ntk_ad_ack_report_sent=e.pathname,e.immediate&&function(e,t){try{window.dispatchEvent(new CustomEvent("ntk-ad-ack-failed",{detail:{scope:e,phase:t}}))}catch{}}(e.pathname,e.phase);let a=e.pipeline,l=n.__ntk_ad_guard_load_last??null,s=a.wasmLoading||a.wasmMissing||a.wasmMissingCount>0||(t=l?.kind,"string"==typeof t&&p.has(t)),d=s?"ad_guard_wasm_blocked":"ad_ack_client_abort",u=n.__ntk_ad_ack_challenge_pending,m=!1;try{m=/(?:^|;\s*)ntk_blk=/.test(document.cookie||"")}catch{}return(0,c.u)("AdAckBeacon","ack-abort/report",{phase:e.phase,immediate:e.immediate,attempts:a.attempts,fired:a.fired,rowReady:a.rowReady,reason:d}),(0,o.m)(d,{evidence:{phase:e.phase,immediate:e.immediate,attempts:a.attempts,fired:a.fired,rowReady:a.rowReady,wasmLoading:a.wasmLoading,wasmMissing:s,wasmMissingCount:a.wasmMissingCount,wasmLoadLast:l,rearmTick:e.rearmTick,hadInitialChallenge:e.initialChallenge?.scope===e.pathname,fpWaitMs:5e3,challengePending:u?{seq:u.seq,path:u.path,rearmTick:u.rearmTick,ageMs:Math.max(0,Date.now()-u.startedAt)}:null,challengeLast:e.extra?.challengeLast??n.__ntk_ad_ack_challenge_last??null,ibOk:1===n.__ntk_ib_ok,ibLoaded:1===n.__ntk_ib_loaded,inflight:n.__ntk_ad_ack_inflight===e.pathname,ackScope:"string"==typeof n.__ntk_ad_ack_scope?n.__ntk_ad_ack_scope:null,last:n.__ntk_ad_ack_last??null,aiTampered:1===n.__ntk_ai_tampered,blkStamp:m,reportMs:3e4*!e.immediate,...e.extra??{}}}),!0}catch{return!1}}function w({challenge:e}){let t=(0,r.usePathname)()||"/",n=(0,a.useRef)(0),o=(0,a.useRef)({pathname:t,used:!1}),p=(0,a.useRef)({attempts:0,fired:!1,rowReady:!1,wasmLoading:!1,wasmMissing:!1,wasmMissingCount:0});o.current.pathname!==t&&(o.current={pathname:t,used:!1},p.current={attempts:0,fired:!1,rowReady:!1,wasmLoading:!1,wasmMissing:!1,wasmMissingCount:0});let[v,k]=(0,a.useState)(e?.scope!==t||b(e.token)?null:e),[_,x]=(0,a.useState)(0);return(0,a.useEffect)(()=>{(0,l.ze)(t)},[t]),(0,a.useEffect)(()=>{let e=e=>{let n=e.detail;if(n?.scope&&n.scope!==t)return void(0,c.u)("AdAckBeacon","event/ntk-ack-rearm/ignore-scope",{pathname:t,detail:n});(0,c.u)("AdAckBeacon","event/ntk-ack-rearm",{pathname:t,detail:n});try{localStorage.removeItem("ntk:ad-trust-until")}catch{}(0,l.s3)(),o.current.used=!1,k(null),x(e=>e+1)};return window.addEventListener("ntk-ack-rearm",e),()=>window.removeEventListener("ntk-ack-rearm",e)},[t]),(0,a.useEffect)(()=>{if((0,c.u)("AdAckBeacon","challengeEffect/enter",{pathname:t,initialScope:e?.scope,scopeMatch:e?.scope===t,stale:!e||b(e.token),rearmTick:_}),0===_&&e?.scope===t&&!b(e.token)){k(e),(0,c.u)("AdAckBeacon","challengeEffect/use-initial");return}(0,c.u)("AdAckBeacon","challengeEffect/fetch-fresh");let r=!1,a=new AbortController,o=++n.current,i=performance.now(),l=Date.now(),s=window;s.__ntk_ad_ack_challenge_pending={seq:o,path:t,startedAt:l,startedPerf:i,rearmTick:_};let u=m.map(e=>window.setTimeout(()=>{r||s.__ntk_ad_ack_challenge_pending?.seq!==o||(0,c.u)("AdAckBeacon","challengeFetch/pending",{seq:o,pathname:t,markMs:e,elapsedMs:Math.round(performance.now()-i),visibility:document.visibilityState,online:navigator.onLine,ackInflight:s.__ntk_ad_ack_inflight??null})},e));return(0,c.u)("AdAckBeacon","challengeFetch/start",{seq:o,pathname:t,rearmTick:_,visibility:document.visibilityState,online:navigator.onLine}),k(null),(async()=>{let n={seq:o,pathname:t,startedAt:l};try{let l=await (0,d.pI)(5e3);if(n={...n,fpReady:l},!l){(0,c.u)("AdAckBeacon","challengeFetch/fingerprint-timeout",{seq:o,pathname:t}),y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"fingerprint-timeout",immediate:!0,force:!0,extra:{challengeLast:n}});return}let s=await fetch("/api/ad/challenge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t}),credentials:"include",cache:"no-store",signal:a.signal}),u=Math.round(performance.now()-i);if((0,c.u)("AdAckBeacon","challengeFetch/response",{seq:o,status:s.status,ok:s.ok,elapsedMs:u,contentType:s.headers.get("content-type"),cacheControl:s.headers.get("cache-control")}),!s.ok){let r=await s.text().catch(e=>`text_error:${e instanceof Error?e.message:String(e)}`);n={...n,status:s.status,ok:!1,elapsedMs:u,body:r.slice(0,240)},(0,c.u)("AdAckBeacon","challengeFetch/non-ok-body",{seq:o,status:s.status,body:r.slice(0,240)}),y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"challenge-http-error",immediate:!0,force:!0,extra:{challengeLast:n,status:s.status}});return}let m=await s.json().catch(e=>((0,c.u)("AdAckBeacon","challengeFetch/json-error",{seq:o,elapsedMs:Math.round(performance.now()-i),msg:e instanceof Error?e.message:String(e)}),null)),h=m?.challenge;n={...n,status:s.status,ok:!0,elapsedMs:Math.round(performance.now()-i),challengeScope:h?.scope??null,tokenLen:h?.token?.length??0,slotCount:h?.slotCount??null,minSeen:h?.minSeen??null,impressionUrls:h?.impressionUrls?.length??0,hasBatch:!!h?.observationBatchUrl,canaryReady:h?.canaryReady??null},(0,c.u)("AdAckBeacon","challengeFetch/body",n),!r&&h?.scope===t&&h.token?k(h):y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"challenge-empty",immediate:!0,force:!0,extra:{challengeLast:n}})}catch(o){let r=a.signal.aborted;n={...n,ok:!1,aborted:r,elapsedMs:Math.round(performance.now()-i),errorName:o instanceof Error?o.name:null,error:o instanceof Error?o.message:String(o)},(0,c.u)("AdAckBeacon",r?"challengeFetch/abort":"challengeFetch/error",n),r||y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"challenge-fetch-error",immediate:!0,force:!0,extra:{challengeLast:n}})}finally{for(let e of u)window.clearTimeout(e);s.__ntk_ad_ack_challenge_last=n,s.__ntk_ad_ack_challenge_pending?.seq===o&&(s.__ntk_ad_ack_challenge_pending=void 0)}})(),()=>{for(let e of(r=!0,u))window.clearTimeout(e);a.abort(),s.__ntk_ad_ack_challenge_pending?.seq===o&&(s.__ntk_ad_ack_challenge_pending=void 0)}},[e,t,_]),(0,a.useEffect)(()=>{if(!v||v.scope!==t)return;let n=!1,r=!1,a=!1,d=!1,m=0,b=[],w=null,x=()=>{if(!n&&!d){if(a)return void(0,c.u)("AdAckBeacon","retry/wait-wasm-load",{attempts:m});if(m>=6&&!g(t)){(0,c.u)("AdAckBeacon","retry/give-up",{attempts:m}),y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"ack-retry-give-up",immediate:!0});return}w||(w=setTimeout(()=>{if(w=null,!n&&!d){if(a){(0,c.u)("AdAckBeacon","retry/wait-wasm-load",{attempts:m}),x();return}if(g(t)){(0,c.u)("AdAckBeacon","retry/wait-inflight",{attempts:m}),x();return}if(m>=6){(0,c.u)("AdAckBeacon","retry/give-up",{attempts:m}),y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"ack-retry-give-up",immediate:!0});return}r=!1,(0,c.u)("AdAckBeacon","retry/fire-again",{attempts:m}),I()}},800))}},j=(n,a)=>{let o=p.current.wasmMissingCount+1;(r=!1,p.current={...p.current,fired:!1,rowReady:!0,wasmLoading:!1,wasmMissing:!0,wasmMissingCount:o},(0,c.u)("AdAckBeacon","fire/wasm-load-failed",{attempts:m,wasmMissingCount:o,phase:n,msg:a}),o>=6)?y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:n,immediate:!0,...a?{extra:{error:a}}:{}}):x()},A=!1,S=null,E=e=>{for(let t of e){let e=Number(t.getAttribute("data-br-n")||"0");if(!Number.isFinite(e)||e<=0)return!1;if(e<2)continue;let n=Array.from(t.children).filter(e=>e instanceof HTMLElement&&"BUTTON"===e.tagName&&(e.hasAttribute("data-bs")||e.hasAttribute("data-bp")));if(n.length<2)return!1;let r=(0,i.J8)(n[0]);if(0===n[0].getClientRects().length)return!1;let a=!1;for(let e=1;e<n.length;e++){let t=(0,i.J8)(n[e]);if(Math.abs(t.left-r.left)>=1||Math.abs(t.top-r.top)>=1){a=!0;break}}if(!a)return!1}return!0},C=()=>{let e=(0,i.Vb)(i.x2);if(0===e.length){let e=0,t=()=>{if(!n&&!A){if(e+=250,(0,i.Vb)(i.x2).length>0){(0,c.u)("AdAckBeacon","row-gate/late-mount-detected",{polledMs:e}),C(),A&&requestAnimationFrame(I);return}if(e>=5e3){(0,c.u)("AdAckBeacon","row-gate/no-rows-timeout",{polledMs:e}),A=!0,requestAnimationFrame(I);return}setTimeout(t,250)}};setTimeout(t,250);return}let t=E(e);if(t){A=!0,(0,c.u)("AdAckBeacon","row-gate/ready-layout-complete",{rowCount:e.length});return}(0,c.u)("AdAckBeacon","row-gate/wait",{rowCount:e.length,layoutComplete:t});let r=null,a=()=>{if(n||A)return;let e=(0,i.Vb)(i.x2);if(0!==e.length){if(E(e)){A=!0,(0,c.u)("AdAckBeacon","row-gate/ready-after-poll"),null!==r&&(cancelAnimationFrame(r),r=null),I();return}r=requestAnimationFrame(a)}};r=requestAnimationFrame(a),S=setTimeout(()=>{A||(A=!0,(0,c.u)("AdAckBeacon","row-gate/timeout-allow"),null!==r&&(cancelAnimationFrame(r),r=null),I())},5e3)},I=()=>{if(n||r||a||d)return void(0,c.u)("AdAckBeacon","fire/skip",{cancelled:n,fired:r,wasmLoading:a,acked:d,attempts:m});try{if(window.__ntk_ad_ack_scope===t){d=!0,(0,c.u)("AdAckBeacon","fire/skip-already-acked-scope",{pathname:t});return}}catch{}if(!A)return void(0,c.u)("AdAckBeacon","fire/wait-row-gate",{attempts:m});a=!0,p.current={...p.current,fired:!1,rowReady:!0,wasmLoading:!0},(0,c.u)("AdAckBeacon","fire/load-wasm",{pathname:t,scope:v.scope,attempts:m});let o=JSON.stringify(v);(0,u.T)().then(async i=>{if(n||d){a=!1,p.current={...p.current,wasmLoading:!1};return}if(!i){a=!1,p.current={...p.current,wasmLoading:!1},j("wasm-load-missing");return}if(m>=6){a=!1,p.current={...p.current,wasmLoading:!1},y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"ack-retry-give-up",immediate:!0});return}if(f.test(t)){let r=await (0,s.D)(t).catch(()=>null);if(n||d){a=!1,p.current={...p.current,wasmLoading:!1};return}if(!r)return(a=!1,m+=1,p.current={...p.current,attempts:m,fired:!1,rowReady:!0,wasmLoading:!1},(0,c.u)("AdAckBeacon","fire/browser-key-missing",{pathname:t,attempts:m}),m>=6)?void y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"browser-key-missing",immediate:!0}):void x()}a=!1,p.current={...p.current,wasmLoading:!1},r=!0,m+=1,p.current={...p.current,attempts:m,fired:!0,rowReady:!0,wasmLoading:!1},(0,c.u)("AdAckBeacon","fire",{pathname:t,scope:v.scope,attempts:m});try{i.__i4(o,t),(0,c.u)("AdAckBeacon","fire/pipeline-invoked",{attempts:m})}catch(e){(0,c.u)("AdAckBeacon","fire/throw",{msg:String(e)})}x()}).catch(e=>{a=!1,j("wasm-load-error",e instanceof Error?e.message:String(e))})};C();let L=new WeakSet,N=()=>{if(!n&&!r&&!a){for(let e of(0,i.Vb)(`${i.u4} img`))if(!L.has(e))if(L.add(e),e.complete&&e.naturalWidth>0)requestAnimationFrame(()=>requestAnimationFrame(I));else{let t=()=>{n||requestAnimationFrame(I)};e.addEventListener("load",t,{once:!0}),b.push(()=>e.removeEventListener("load",t))}}};requestAnimationFrame(()=>{n||(N(),requestAnimationFrame(()=>{N(),I()}))});let P=[];requestAnimationFrame(()=>{for(let e of(0,i.Vb)(i.x2)){let t=new MutationObserver(()=>{n||r||a||(N(),requestAnimationFrame(I))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-br-n"]}),P.push(t)}});let T=null,M=null,B=e=>{let r=e.detail;if((0,c.u)("AdAckBeacon","event/ntk-ad-ack-ready",{detail:r,currentPath:t}),r?.scope===t||(()=>{try{return window.__ntk_ad_ack_scope===t}catch{return!1}})()){for(let e of(d=!0,w&&(clearTimeout(w),w=null),S&&(clearTimeout(S),S=null),P))e.disconnect();for(let e of(P.length=0,b))e();b.length=0,(()=>{if(n)return;let e=(0,i.Vb)(i.x2);if(0===e.length)return;T=new MutationObserver(()=>{n||M||(M=setTimeout(()=>{M=null,n||((0,c.u)("AdAckBeacon","post-ack/mutation-detected",{pathname:t}),window.dispatchEvent(new CustomEvent("ntk-ack-rearm",{detail:{scope:t}})))},2e3))});let r={childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class","src","data-bs","data-bp","data-br-n"]};for(let t of e)T.observe(t,r);(0,c.u)("AdAckBeacon","post-ack/guard-installed",{rowCount:e.length})})()}else r?.scope&&r.scope!==t&&h.test(t)&&((0,l.s3)(r.scope),g(t)||((0,c.u)("AdAckBeacon","event/ntk-ad-ack-ready/stale-scope-rearm",{staleScope:r.scope,pathname:t}),window.dispatchEvent(new CustomEvent("ntk-ack-rearm",{detail:{reason:"stale-ack-scope",scope:t}}))))};window.addEventListener("ntk-ad-ack-ready",B);let R=window.setTimeout(()=>{(0,c.u)("AdAckBeacon","fallback-10s/enter",{cancelled:n,acked:d,fired:r,used:o.current.used}),n||d||(r?o.current.used||(o.current.used=!0,fetch("/api/ad/challenge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t}),credentials:"include",cache:"no-store"}).then(async e=>e.ok?await e.json().catch(()=>null):null).then(e=>{let r=e?.challenge;n||d||r?.scope!==t||!r.token||k(r)}).catch(()=>{})):I())},5e3);return()=>{for(let e of(n=!0,window.clearTimeout(R),w&&(clearTimeout(w),w=null),S&&(clearTimeout(S),S=null),window.removeEventListener("ntk-ad-ack-ready",B),P))e.disconnect();for(let e of b)e();T?.disconnect(),T=null,M&&(clearTimeout(M),M=null)}},[v,t]),(0,a.useEffect)(()=>{let n=!1,r=e=>{let r=e.detail;r?.scope===t&&(n=!0)};window.addEventListener("ntk-ad-ack-ready",r);let a=window.setTimeout(()=>{let r=window;n||r.__ntk_ad_ack_scope===t||(g(t)?(0,c.u)("AdAckBeacon","ack-watchdog/wait-inflight",{pathname:t}):0!==(0,i.Vb)(i.x2).length&&y({pathname:t,pipeline:p.current,rearmTick:_,initialChallenge:e,phase:"ack-watchdog-timeout",immediate:!1}))},3e4);return()=>{window.removeEventListener("ntk-ad-ack-ready",r),window.clearTimeout(a)}},[t,_,e]),null}},42593:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={default:function(){return w},handleClientScriptLoad:function(){return b},initScriptLoader:function(){return g}};for(var a in r)Object.defineProperty(t,a,{enumerable:!0,get:r[a]});let o=n(73623),i=n(66388),l=n(95155),s=o._(n(47650)),d=i._(n(12115)),c=n(75368),u=n(3584),m=n(28356),p=new Map,h=new Set,f=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:a=null,dangerouslySetInnerHTML:o,children:i="",strategy:l="afterInteractive",onError:d,stylesheets:c}=e,m=n||t;if(m&&h.has(m))return;if(p.has(t)){h.add(m),p.get(t).then(r,d);return}let f=()=>{a&&a(),h.add(m)},b=document.createElement("script"),g=new Promise((e,t)=>{b.addEventListener("load",function(t){e(),r&&r.call(this,t),f()}),b.addEventListener("error",function(e){t(e)})}).catch(function(e){d&&d(e)});o?(b.innerHTML=o.__html||"",f()):i?(b.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",f()):t&&(b.src=t,p.set(t,g)),(0,u.setAttributesFromProps)(b,e),"worker"===l&&b.setAttribute("type","text/partytown"),b.setAttribute("data-nscript",l),c&&(e=>{if(s.default.preinit)return e.forEach(e=>{s.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(c),document.body.appendChild(b)};function b(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,m.requestIdleCallback)(()=>f(e))}):f(e)}function g(e){e.forEach(b),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");h.add(t)})}function y(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:a=null,strategy:o="afterInteractive",onError:i,stylesheets:u,...p}=e,{updateScripts:b,scripts:g,getIsSsr:y,appDir:w,nonce:v}=(0,d.useContext)(c.HeadManagerContext);v=p.nonce||v;let k=(0,d.useRef)(!1);(0,d.useEffect)(()=>{let e=t||n;k.current||(a&&e&&h.has(e)&&a(),k.current=!0)},[a,t,n]);let _=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{if(!_.current){if("afterInteractive"===o)f(e);else"lazyOnload"===o&&("complete"===document.readyState?(0,m.requestIdleCallback)(()=>f(e)):window.addEventListener("load",()=>{(0,m.requestIdleCallback)(()=>f(e))}));_.current=!0}},[e,o]),("beforeInteractive"===o||"worker"===o)&&(b?(g[o]=(g[o]||[]).concat([{id:t,src:n,onLoad:r,onReady:a,onError:i,...p,nonce:v}]),b(g)):y&&y()?h.add(t||n):y&&!y()&&f({...e,nonce:v})),w){if(u&&u.forEach(e=>{s.default.preinit(e,{as:"style"})}),"beforeInteractive"===o)if(!n)return p.dangerouslySetInnerHTML&&(p.children=p.dangerouslySetInnerHTML.__html,delete p.dangerouslySetInnerHTML),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...p,id:t}])})`}});else return s.default.preload(n,p.integrity?{as:"script",integrity:p.integrity,nonce:v,crossOrigin:p.crossOrigin}:{as:"script",nonce:v,crossOrigin:p.crossOrigin}),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([n,{...p,id:t}])})`}});"afterInteractive"===o&&n&&s.default.preload(n,p.integrity?{as:"script",integrity:p.integrity,nonce:v,crossOrigin:p.crossOrigin}:{as:"script",nonce:v,crossOrigin:p.crossOrigin})}return null}Object.defineProperty(y,"__nextScript",{value:!0});let w=y;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},47760:(e,t,n)=>{"use strict";n.d(t,{D:()=>g,X:()=>y});let r="keys",a="manhwa-v1",o=/^[A-Za-z0-9_-]{43}$/,i=null,l=null;function s(e){return/^\/manhwa\/[^/?#]+\/[^/?#]+$/.test(e)}function d(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function c(e){return d(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e))))}function u(){return"u"<typeof indexedDB?Promise.resolve(null):new Promise(e=>{let t=indexedDB.open("ntk-browser-request-key",1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(r)||e.createObjectStore(r)},t.onerror=()=>e(null),t.onsuccess=()=>e(t.result)})}async function m(){let e=await u();return e?new Promise(t=>{let n=e.transaction(r,"readonly").objectStore(r).get(a);n.onerror=()=>t(null),n.onsuccess=()=>{let e=n.result;!e||!o.test(e.keyId)||!(e.privateKey instanceof CryptoKey)||"number"!=typeof e.expiresAt||e.expiresAt<=Date.now()+3e5?t(null):t(e)}}).finally(()=>e.close()):null}async function p(e){let t=await u();t&&await new Promise(n=>{let o=t.transaction(r,"readwrite");o.oncomplete=()=>n(),o.onerror=()=>n(),o.objectStore(r).put(e,a)}).finally(()=>t.close())}async function h(e){let t=await fetch("/api/client-key/register",{method:"POST",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:JSON.stringify({publicKey:e})}).catch(()=>null);if(!t?.ok)return null;let n=await t.json().catch(()=>null);return n?.ok&&n.keyId&&o.test(n.keyId)?{keyId:n.keyId,expiresAt:"number"==typeof n.expiresAt?n.expiresAt:Date.now()+36e5}:null}async function f(){if(!("u">typeof crypto&&crypto.subtle&&"function"==typeof crypto.getRandomValues))return null;let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey),n=await h(t);if(!n)return null;let r={keyId:n.keyId,publicJwk:t,privateKey:e.privateKey,expiresAt:n.expiresAt};return i=r,await p(r).catch(()=>{}),r}async function b(){if(i&&i.expiresAt>Date.now()+3e5)return i;let e=await m().catch(()=>null);return e?(i=e,e):f()}async function g(e){if(e&&!s(e))return null;l||(l=b().finally(()=>{l=null}));let t=await l,n=t?.keyId??null;if(n)try{window.__ntk_request_key_id=n}catch{}return n}async function y(e){var t;let n;if(!s(e.scope))return null;l||(l=b().finally(()=>{l=null}));let r=await l;if(!r)return null;let a=String(Date.now()),o=(n=new Uint8Array(24),crypto.getRandomValues(n),d(n)),i=await c(e.bodyText),u=["ntk-brsig-v1",(t={method:e.method||"POST",path:e.path,scope:e.scope,keyId:r.keyId,timestamp:a,nonce:o,bodyHash:i}).method.toUpperCase(),t.path,t.scope,t.keyId,t.timestamp,t.nonce,t.bodyHash].join("\n"),m=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},r.privateKey,new TextEncoder().encode(u));try{window.__ntk_request_key_id=r.keyId}catch{}return{keyId:r.keyId,headers:{"x-ntk-key-id":r.keyId,"x-ntk-ts":a,"x-ntk-nonce":o,"x-ntk-sig":d(new Uint8Array(m))}}}},50451:(e,t,n)=>{"use strict";n.d(t,{u:()=>r});function r(e,t,n){}},51783:(e,t,n)=>{"use strict";n.d(t,{ClientIdentityBeacon:()=>o});var r=n(12115),a=n(68950);function o(){return(0,r.useEffect)(()=>{(0,a.qv)()},[]),null}},55546:(e,t,n)=>{"use strict";n.d(t,{BlockListModal:()=>o});var r=n(95155),a=n(12115);function o(){let[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),[i,l]=(0,a.useState)([]),[s,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(null),[,m]=(0,a.useTransition)(),[p,h]=(0,a.useState)(""),[f,b]=(0,a.useState)(""),[g,y]=(0,a.useState)(null),[w,v]=(0,a.useState)(!1),k=(0,a.useCallback)(async()=>{o(!0),d(null);try{let e=await fetch("/api/me/blocks",{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok||!t?.ok)return void d(t?.error||`로딩 실패 (${e.status})`);l(t.blocks||[])}catch(e){d(e instanceof Error?e.message:"오류")}finally{o(!1)}},[]);(0,a.useEffect)(()=>{let e=()=>{t(!0),k()};return window.addEventListener("open-block-list",e),()=>window.removeEventListener("open-block-list",e)},[k]),(0,a.useEffect)(()=>{if(!e)return;let n=e=>{"Escape"===e.key&&t(!1)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e]);let _=async e=>{e.preventDefault(),y(null);let t=p.trim();if(!t)return void y("닉네임을 입력하세요");v(!0);try{let e=await fetch("/api/me/blocks",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({targetNickname:t,reason:f.trim()})}),n=await e.json().catch(()=>null);if(!e.ok||!n?.ok)return void y(n?.error||`차단 실패 (${e.status})`);h(""),b(""),await k()}catch(e){y(e instanceof Error?e.message:"오류")}finally{v(!1)}};return e?(0,r.jsx)("div",{className:"bl-overlay",onClick:()=>t(!1),children:(0,r.jsxs)("div",{className:"bl-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("header",{className:"bl-modal-head",children:[(0,r.jsx)("h2",{children:"\uD83D\uDEAB 내 차단 리스트"}),(0,r.jsx)("button",{type:"button",className:"bl-modal-close",onClick:()=>t(!1),"aria-label":"닫기",children:"✕"})]}),(0,r.jsxs)("form",{className:"bl-modal-search",onSubmit:_,children:[(0,r.jsxs)("div",{className:"bl-modal-search-row",children:[(0,r.jsx)("input",{type:"text",placeholder:"닉네임으로 차단",value:p,onChange:e=>h(e.target.value),maxLength:30,disabled:w,autoComplete:"off"}),(0,r.jsx)("input",{type:"text",placeholder:"사유 (선택, 본인만 보임)",value:f,onChange:e=>b(e.target.value),maxLength:200,disabled:w,autoComplete:"off"}),(0,r.jsx)("button",{type:"submit",disabled:w,children:w?"차단 중...":"차단"})]}),g&&(0,r.jsxs)("div",{className:"bl-modal-search-err",children:["⚠ ",g]})]}),(0,r.jsxs)("div",{className:"bl-modal-body",children:[n&&(0,r.jsx)("div",{className:"bl-modal-info",children:"불러오는 중..."}),s&&(0,r.jsxs)("div",{className:"bl-modal-err",children:["⚠ ",s]}),!n&&!s&&0===i.length&&(0,r.jsxs)("div",{className:"bl-modal-empty",children:[(0,r.jsx)("div",{className:"bl-modal-empty-icon",children:"\uD83C\uDF19"}),(0,r.jsx)("div",{children:"차단한 사용자가 없습니다"}),(0,r.jsx)("p",{children:"게시판에서 닉네임을 클릭하거나 위에서 닉네임으로 차단할 수 있습니다."})]}),!n&&!s&&i.length>0&&(0,r.jsx)("ul",{className:"bl-modal-list",children:i.map(e=>(0,r.jsxs)("li",{className:"bl-modal-row",children:[(0,r.jsx)("div",{className:"bl-modal-avatar",children:e.avatarUrl?(0,r.jsx)("img",{src:e.avatarUrl,alt:""}):(0,r.jsx)("span",{children:"\uD83D\uDC64"})}),(0,r.jsxs)("div",{className:"bl-modal-meta",children:[(0,r.jsx)("strong",{children:e.nickname}),(0,r.jsx)("time",{className:"bl-modal-time",children:new Date(e.createdAt).toLocaleDateString("ko-KR")}),e.reason&&(0,r.jsxs)("span",{className:"bl-modal-reason",title:e.reason,children:["\uD83D\uDCAC ",e.reason]})]}),(0,r.jsx)("button",{type:"button",className:"bl-modal-unblock",onClick:()=>{var t,n;return t=e.id,n=e.nickname,void(c||confirm(`${n} 님의 차단을 해제할까요?`)&&(u(t),m(async()=>{try{let e=await fetch(`/api/me/blocks?userId=${encodeURIComponent(t)}`,{method:"DELETE"}),n=await e.json().catch(()=>null);if(!e.ok||!n?.ok)return void alert(n?.error||`해제 실패 (${e.status})`);l(e=>e.filter(e=>e.id!==t))}catch(e){alert(e instanceof Error?e.message:"오류")}finally{u(null)}})))},disabled:c===e.id,children:c===e.id?"해제 중...":"해제"})]},e.id))})]}),!n&&!s&&i.length>0&&(0,r.jsx)("footer",{className:"bl-modal-foot",children:(0,r.jsxs)("span",{children:["총 ",i.length,"명 차단 중"]})})]})}):null}},66872:()=>{},70113:(e,t,n)=>{"use strict";n.d(t,{PointsHistoryModal:()=>l});var r=n(95155),a=n(12115);let o={post:{label:"글 작성",emoji:"\uD83D\uDCDD",tone:"earn"},comment:{label:"댓글 작성",emoji:"\uD83D\uDCAC",tone:"earn"},post_delete:{label:"글 삭제",emoji:"\uD83D\uDDD1",tone:"spend"},comment_delete:{label:"댓글 삭제",emoji:"\uD83D\uDDD1",tone:"spend"},admin_grant:{label:"관리자 지급",emoji:"\uD83C\uDF81",tone:"admin"},admin_reward:{label:"관리자 보상",emoji:"\uD83C\uDF81",tone:"admin"},referral_visit:{label:"추천 방문",emoji:"\uD83C\uDFAF",tone:"ref"},withdraw:{label:"출금",emoji:"\uD83D\uDCB8",tone:"spend"},withdraw_hold:{label:"출금 보류",emoji:"⏸",tone:"spend"},withdraw_refund:{label:"출금 환불",emoji:"↩",tone:"earn"},post_download:{label:"파일 다운로드",emoji:"⬇",tone:"spend"},novel_payout:{label:"소설 다운로드 적립",emoji:"\uD83D\uDCE5",tone:"earn"},novel_download:{label:"소설 다운로드",emoji:"\uD83D\uDCDA",tone:"spend"},work_comment:{label:"웹툰 댓글",emoji:"\uD83D\uDCAC",tone:"earn"},manhwa_comment:{label:"만화 댓글",emoji:"\uD83D\uDCAC",tone:"earn"},novel_comment:{label:"소설 댓글",emoji:"\uD83D\uDCAC",tone:"earn"},post_vote_recv:{label:"글 추천받음",emoji:"\uD83D\uDC4D",tone:"earn"},comment_vote_recv:{label:"댓글 추천받음",emoji:"\uD83D\uDC4D",tone:"earn"},post_vote_revoke:{label:"글 추천 취소",emoji:"↩",tone:"spend"},comment_vote_revoke:{label:"댓글 추천 취소",emoji:"↩",tone:"spend"},vote_milestone:{label:"누적 추천 보너스",emoji:"\uD83C\uDFC5",tone:"earn"},vote_milestone_baseline:{label:"추천 누적",emoji:"•",tone:"admin"},report_penalty:{label:"신고 패널티",emoji:"⚠",tone:"spend"},warn_penalty:{label:"경고 차감",emoji:"⚠",tone:"spend"},warn_refund:{label:"경고 취소 환불",emoji:"↩",tone:"earn"},ladder_bet:{label:"사다리 베팅",emoji:"\uD83C\uDFB2",tone:"spend"},ladder_win:{label:"사다리 당첨",emoji:"\uD83C\uDFB0",tone:"earn"},ladder_refund:{label:"사다리 환불",emoji:"↩",tone:"earn"},crash_bet:{label:"크래시 베팅",emoji:"\uD83D\uDE80",tone:"spend"},crash_win:{label:"크래시 당첨",emoji:"\uD83D\uDCB0",tone:"earn"},crash_refund:{label:"크래시 환불",emoji:"↩",tone:"earn"},baccarat_bet:{label:"바카라 베팅",emoji:"\uD83C\uDCCF",tone:"spend"},baccarat_win:{label:"바카라 당첨",emoji:"\uD83C\uDCCF",tone:"earn"},baccarat_cancel:{label:"바카라 베팅 취소",emoji:"↩",tone:"earn"},mining_start:{label:"광산 채굴 시작",emoji:"⛏",tone:"spend"},mining_claim:{label:"광산 채굴 수령",emoji:"\uD83D\uDC8E",tone:"earn"},lottery_buy:{label:"로또 구매",emoji:"\uD83C\uDF9F",tone:"spend"},lottery_prize:{label:"로또 당첨",emoji:"\uD83C\uDFC6",tone:"earn"},novel_episode_publish:{label:"소설 회차 발행",emoji:"\uD83D\uDCD6",tone:"earn"},novel_favorite_milestone:{label:"소설 즐겨찾기 보너스",emoji:"⭐",tone:"earn"},novel_comment_milestone:{label:"소설 댓글 보너스",emoji:"\uD83D\uDCAC",tone:"earn"},pin_cost:{label:"상위글 등록",emoji:"\uD83D\uDCCC",tone:"spend"},poll_vote:{label:"투표 참여",emoji:"\uD83D\uDDF3",tone:"earn"},rpg_stage_clear:{label:"RPG 스테이지 클리어",emoji:"\uD83D\uDDE1",tone:"earn"},rpg_mission_bonus:{label:"RPG 미션 보너스",emoji:"\uD83C\uDFAF",tone:"earn"},rpg_card_sell_system:{label:"RPG 카드 판매",emoji:"\uD83D\uDCB1",tone:"earn"},rpg_shop_buy:{label:"RPG 상점 구매",emoji:"\uD83D\uDED2",tone:"spend"},rpg_pack_open:{label:"RPG 팩 개봉",emoji:"\uD83C\uDFB4",tone:"spend"},rpg_market_sell:{label:"RPG 마켓 판매",emoji:"\uD83D\uDCB1",tone:"earn"},rpg_market_buy:{label:"RPG 마켓 구매",emoji:"\uD83D\uDED2",tone:"spend"},rpg_market_list_fee:{label:"RPG 마켓 등록 수수료",emoji:"\uD83D\uDCCB",tone:"spend"},rpg_challenge_buy:{label:"RPG 도전 구매",emoji:"⚔",tone:"spend"},rpg_protection_buy:{label:"RPG 보호권 구매",emoji:"\uD83D\uDEE1",tone:"spend"},rpg_potion_use:{label:"RPG 포션 사용",emoji:"\uD83E\uDDEA",tone:"spend"},rpg_attendance_restore:{label:"RPG 출석 복구",emoji:"\uD83D\uDD04",tone:"spend"},rpg_attendance_daily:{label:"RPG 출석 보상",emoji:"\uD83D\uDCC5",tone:"earn"},rpg_season_reward:{label:"RPG 시즌 보상",emoji:"\uD83C\uDFC6",tone:"earn"},shop_buy:{label:"아이템샵 구매",emoji:"\uD83D\uDECD",tone:"spend"}},i=[{value:"",label:"전체"},{value:"post",label:"글"},{value:"comment",label:"댓글"},{value:"referral_visit",label:"추천"},{value:"admin_grant",label:"관리자"}];function l(){let[e,t]=(0,a.useState)(!1),[n,l]=(0,a.useState)([]),[s,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(null),[m,p]=(0,a.useState)(!0),[h,f]=(0,a.useState)(!1),[b,g]=(0,a.useState)(null),[y,w]=(0,a.useState)(""),v=(0,a.useRef)(null),k=(0,a.useRef)(null),_=(0,a.useCallback)(async e=>{k.current?.abort();let t=new AbortController;k.current=t,f(!0),g(null);try{let n=new URLSearchParams;e.cursor&&n.set("cursor",e.cursor),e.kind&&n.set("kind",e.kind);let r=await fetch(`/api/me/points?${n.toString()}`,{signal:t.signal,cache:"no-store"}),a=await r.json().catch(()=>null);if(!r.ok||!a?.ok)return void g(a?.error||`로드 실패 (${r.status})`);l(t=>e.reset?a.items:[...t,...a.items]),u(a.nextCursor),p(!!a.nextCursor),e.reset&&a.summary&&d(a.summary)}catch(e){if("AbortError"===e.name)return;g(e instanceof Error?e.message:"로드 실패")}finally{f(!1)}},[]),x=(0,a.useCallback)(()=>{!h&&m&&c&&_({cursor:c,kind:y,reset:!1})},[c,y,m,h,_]);return((0,a.useEffect)(()=>{let e=()=>t(!0);return window.addEventListener("open-points-modal",e),()=>window.removeEventListener("open-points-modal",e)},[]),(0,a.useEffect)(()=>e?(l([]),u(null),p(!0),d(null),w(""),_({cursor:null,kind:"",reset:!0}),document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}):void k.current?.abort(),[e]),(0,a.useEffect)(()=>{if(!e)return;let n=e=>{"Escape"===e.key&&t(!1)};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[e]),(0,a.useEffect)(()=>{if(!e)return;let t=v.current;if(!t)return;let n=new IntersectionObserver(e=>{e[0].isIntersecting&&x()},{rootMargin:"240px"});return n.observe(t),()=>n.disconnect()},[e,x]),e)?(0,r.jsxs)("div",{className:"pthx-overlay",role:"dialog","aria-modal":"true","aria-label":"포인트 내역",children:[(0,r.jsx)("div",{className:"pthx-backdrop",onClick:()=>t(!1)}),(0,r.jsxs)("div",{className:"pthx-panel",children:[(0,r.jsxs)("header",{className:"pthx-head",children:[(0,r.jsxs)("div",{className:"pthx-title",children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"⭐"}),(0,r.jsx)("strong",{children:"포인트 내역"})]}),(0,r.jsx)("button",{type:"button",className:"pthx-close",onClick:()=>t(!1),"aria-label":"닫기",children:"✕"})]}),(0,r.jsxs)("section",{className:"pthx-summary",children:[(0,r.jsxs)("div",{className:"pthx-sum-card pthx-sum-card--bal",children:[(0,r.jsx)("div",{className:"k",children:"현재 보유"}),(0,r.jsx)("div",{className:"v",children:s?s.balance.toLocaleString("ko-KR"):"—"})]}),(0,r.jsxs)("div",{className:"pthx-sum-card pthx-sum-card--earn",children:[(0,r.jsx)("div",{className:"k",children:"누적 적립"}),(0,r.jsxs)("div",{className:"v",children:["+",s?s.earned.toLocaleString("ko-KR"):"—"]})]}),(0,r.jsxs)("div",{className:"pthx-sum-card pthx-sum-card--spend",children:[(0,r.jsx)("div",{className:"k",children:"누적 차감"}),(0,r.jsx)("div",{className:"v",children:s?s.spent.toLocaleString("ko-KR"):"—"})]})]}),(0,r.jsxs)("button",{type:"button",className:"pthx-rule",onClick:()=>{window.dispatchEvent(new Event("open-points-guide"))},children:[(0,r.jsxs)("span",{className:"pthx-rule-tags",children:[(0,r.jsx)("span",{className:"pthx-rule-tag",children:"글 +10P"}),(0,r.jsx)("span",{className:"pthx-rule-tag",children:"댓글 +2P"}),(0,r.jsxs)("span",{className:"pthx-rule-tag",children:["공유 다운로드 ",s?.payoutPct??30,"%"]}),(0,r.jsx)("span",{className:"pthx-rule-tag",children:"추천방문 +1P"})]}),(0,r.jsx)("span",{className:"pthx-rule-more",children:"자세히 "})]}),(0,r.jsx)("nav",{className:"pthx-filters","aria-label":"유형 필터",children:i.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{var t;(t=e.value)!==y&&(w(t),l([]),u(null),p(!0),_({cursor:null,kind:t,reset:!0}))},className:`pthx-filter${y===e.value?" is-active":""}`,children:e.label},e.value||"all"))}),(0,r.jsxs)("div",{className:"pthx-body",children:[0===n.length&&!h&&(0,r.jsxs)("div",{className:"pthx-empty",children:[(0,r.jsx)("div",{className:"pthx-empty-icon","aria-hidden":!0,children:"\uD83D\uDCED"}),(0,r.jsx)("div",{children:y?"해당 유형의 내역이 없습니다.":"아직 포인트 내역이 없습니다."})]}),(0,r.jsx)("ul",{className:"pthx-list",children:n.map(e=>{var t,n;let a=o[n=e.kind]??{label:n.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()),emoji:"•",tone:"admin"},i=e.delta>=0;return(0,r.jsxs)("li",{className:`pthx-item pthx-item--${a.tone}`,children:[(0,r.jsx)("div",{className:"pthx-item-icon","aria-hidden":!0,children:a.emoji}),(0,r.jsxs)("div",{className:"pthx-item-main",children:[(0,r.jsx)("div",{className:"pthx-item-label",children:a.label}),e.note&&(0,r.jsx)("div",{className:"pthx-item-note",children:e.note})]}),(0,r.jsxs)("div",{className:"pthx-item-side",children:[(0,r.jsx)("div",{className:`pthx-item-delta ${i?"is-pos":"is-neg"}`,children:((t=e.delta)>=0?"+":"")+t.toLocaleString("ko-KR")}),(0,r.jsx)("time",{className:"pthx-item-time",children:new Date(e.createdAt).toLocaleString("ko-KR",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})})]})]},e.id)})}),b&&(0,r.jsxs)("div",{className:"pthx-err",children:["⚠ ",b]}),h&&(0,r.jsx)("div",{className:"pthx-loading",children:"불러오는 중..."}),!h&&!m&&n.length>0&&(0,r.jsx)("div",{className:"pthx-end",children:"— 마지막 내역 —"}),(0,r.jsx)("div",{ref:v,className:"pthx-sentinel","aria-hidden":!0})]})]})]}):null}},70440:(e,t,n)=>{"use strict";n.d(t,{InitBlockGuard:()=>l});var r=n(12115),a=n(50451),o=n(85431);let i=!1;function l(){return(0,r.useEffect)(()=>{i=!1;let e=()=>{i=!0},t=()=>{i=!1};window.addEventListener("beforeunload",e,{once:!0}),window.addEventListener("pagehide",e,{once:!0}),window.addEventListener("pageshow",t),(0,a.u)("InitBlockGuard","useEffect/mount",{CHECK_DELAY_MS:8e3});let n=!1,r=()=>{n=!0,(0,a.u)("InitBlockGuard","ack-complete-noted")};window.addEventListener("ntk-ad-ack-ready",r);let l=!1,s=()=>{l||(l=!0,(0,a.u)("InitBlockGuard","detect-once/fire"),(0,o.T)().then(e=>{if(e)try{e.__i6()}catch{}}))},d=window.setTimeout(()=>{(s(),n)?(0,a.u)("InitBlockGuard","8s-timer/skip-ack-done"):(0,a.u)("InitBlockGuard","8s-timer/skip-client-soft-pipeline")},8e3),c=()=>{if("visible"===document.visibilityState){if(s(),n)return void(0,a.u)("InitBlockGuard","onVis/skip-ack-done");(0,a.u)("InitBlockGuard","onVis/skip-client-soft-pipeline")}},u=e=>{let t=e.detail;(0,a.u)("InitBlockGuard","event/ntk-ad-allow-needed",t);let n=t?.reason||"ad_ack_required";(0,a.u)("InitBlockGuard","event/ntk-ad-allow-needed/observe-only",{reason:n})},m=e=>{let t=e.detail;if((0,a.u)("InitBlockGuard","event/ntk-ad-allow-hidden",t),i||document.getElementById("ntk_blk_overlay"))return;let n=t?.sourceReason||"safari_block";(0,a.u)("InitBlockGuard","event/ntk-ad-allow-hidden/observe-only",{reason:n})};return document.addEventListener("visibilitychange",c),window.addEventListener("ntk-ad-allow-needed",u),window.addEventListener("ntk-ad-allow-hidden",m),()=>{window.clearTimeout(d),window.removeEventListener("beforeunload",e),window.removeEventListener("pagehide",e),window.removeEventListener("pageshow",t),window.removeEventListener("ntk-ad-ack-ready",r),document.removeEventListener("visibilitychange",c),window.removeEventListener("ntk-ad-allow-needed",u),window.removeEventListener("ntk-ad-allow-hidden",m)}},[]),null}},73321:(e,t,n)=>{"use strict";var r=n(74645);n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},75532:e=>{e.exports={style:{fontFamily:"'Noto Sans KR', 'Noto Sans KR Fallback'",fontStyle:"normal"},className:"__className_4d4980",variable:"__variable_4d4980"}},83205:(e,t,n)=>{"use strict";n.d(t,{VisitBeacon:()=>o});var r=n(73321),a=n(12115);function o(){let e=(0,r.useSearchParams)();return(0,a.useEffect)(()=>{let t=e?.get("ref");if(!t||!/^\d{1,20}$/.test(t))return;let n=new AbortController;return fetch("/api/referral",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ref:t}),credentials:"same-origin",cache:"no-store",signal:n.signal,keepalive:!0}).catch(()=>{}),()=>n.abort()},[e]),null}},85431:(e,t,n)=>{"use strict";n.d(t,{T:()=>d});var r=n(50451);let a=null,o=0,i="b1781140285221-wasm-1781140285224";function l(e,t){try{window.__ntk_ad_guard_load_last={kind:e,at:Date.now(),...t}}catch{}}async function s(e,t){try{let n=await fetch("/api/ad/canary",{method:"POST",credentials:"include",cache:"no-store",keepalive:!0,headers:{"Content-Type":"application/json"},body:JSON.stringify({adGuardLoaded:!0})});return l(n.ok?"loaded":"load-marker-failed",{url:e,wasmUrl:t,markerStatus:n.status,failureCount:o}),n.ok}catch(n){return l("load-marker-throw",{url:e,wasmUrl:t,msg:n instanceof Error?n.message:String(n),failureCount:o}),!1}}function d(){return a||((0,r.u)("ad-guard-loader","import/start",{v:i}),a=(async()=>{let e=o>0?`&retry=${o}`:"";try{let t=encodeURIComponent(i),n=`/wasm/ad-guard/ad_guard.js?v=${t}${e}`,d=`/wasm/ad-guard/ad_guard_bg.wasm?v=${t}${e}`,c=performance.now(),u=await import(n);(0,r.u)("ad-guard-loader","import/done",{ms:Math.round(performance.now()-c),hasDefault:"function"==typeof u.default,hasLoaded:"function"==typeof u.__i5});let m=performance.now(),p=await u.default({module_or_path:d});(0,r.u)("ad-guard-loader","wasm-init/done",{ms:Math.round(performance.now()-m),initRes:null==p?"nullish":typeof p});let h=!!u.__i5();if((0,r.u)("ad-guard-loader","adGuardLoaded",{loaded:h}),!h)return l("not-loaded",{url:n,wasmUrl:d,failureCount:o}),o+=1,a=null,null;if(!await s(n,d))return o+=1,a=null,null;return o=0,u}catch(t){let e=t instanceof Error?t.message:String(t);return l("import-throw",{msg:e,failureCount:o}),(0,r.u)("ad-guard-loader","import/throw",{msg:e}),o+=1,a=null,null}})())}},86521:(e,t,n)=>{"use strict";n.d(t,{GlobalScrollNav:()=>l});var r=n(95155),a=n(12115),o=n(73321);function i(e){return!!("/"===e||/^\/(manhwa|webtoon|novel)\/[^/]+\/[^/]+\/?$/.test(e))}function l(){let e=(0,o.usePathname)()||"/",[t,n]=(0,a.useState)(!1),l=(0,a.useRef)(null);if((0,a.useEffect)(()=>{if(i(e))return void n(!1);let t=()=>{l.current&&(clearTimeout(l.current),l.current=null)},r=()=>{window.scrollY>400?(n(!0),t(),l.current=setTimeout(()=>n(!1),3e3)):(n(!1),t())};return r(),window.addEventListener("scroll",r,{passive:!0}),()=>{window.removeEventListener("scroll",r),t()}},[e]),i(e))return null;let s=/^\/(manhwa|webtoon|novel|anime)\/[^/]+\/?$/.test(e);return(0,r.jsxs)("div",{className:`vw-bot-mini vw-bot-mini--global ${t?"":"vw-hidden"}`,"aria-hidden":!t,children:[s&&(0,r.jsx)("button",{type:"button",className:"vw-mini-icon",onClick:()=>{let e=document.getElementById("comments-anchor");if(e){let t=e.getBoundingClientRect().top+window.scrollY-60;window.scrollTo({top:t,behavior:"smooth"})}else window.scrollTo({top:document.documentElement.scrollHeight,behavior:"smooth"})},"aria-label":"댓글로 이동",title:"댓글",children:(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}),(0,r.jsx)("button",{type:"button",className:"vw-mini-icon",onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),"aria-label":"최상단으로",title:"최상단",children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),(0,r.jsx)("polyline",{points:"5 12 12 5 19 12"})]})}),(0,r.jsx)("button",{type:"button",className:"vw-mini-icon",onClick:()=>window.scrollTo({top:document.documentElement.scrollHeight,behavior:"smooth"}),"aria-label":"최하단으로",title:"최하단",children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,r.jsx)("polyline",{points:"19 12 12 19 5 12"})]})})]})}},93734:(e,t,n)=>{"use strict";n.d(t,{AdminBrowserDisguise:()=>i});var r=n(12115),a=n(73321);let o="Dashboard";function i(){let e=(0,a.usePathname)();return(0,r.useEffect)(()=>{let e=!1;return queueMicrotask(()=>{requestAnimationFrame(()=>{e||document.title===o||(document.title=o)})}),()=>{e=!0}},[e]),null}},96429:(e,t,n)=>{"use strict";n.d(t,{AdBlockGuard:()=>f});var r=n(12115),a=n(73133),o=n(41603);let i="ntk_ad_allow_overlay",l="ntk_blk_overlay",s="position:fixed !important;inset:0 !important;z-index:2147483647 !important;background:#0a0a0a !important;color:#fff !important;display:flex !important;align-items:center !important;justify-content:center !important;overflow:auto !important;font-family:-apple-system,BlinkMacSystemFont,sans-serif !important;pointer-events:auto !important;visibility:visible !important;opacity:1 !important;",d=new Set(["script_noop","consecutive_low","attr_removed","csp_block","data_bs_hide","slot_hide_any","slot_click_blocked","userscript_spoof"]);function c(e){let t=document.body;if(t){for(let n of Array.from(t.children))if(n instanceof HTMLElement&&n!==e){n.style.setProperty("display","none","important"),n.style.setProperty("pointer-events","none","important"),n.style.setProperty("user-select","none","important"),n.setAttribute("aria-hidden","true");try{n.inert=!0}catch{}}document.documentElement.style.setProperty("overflow","hidden","important"),t.style.setProperty("overflow","hidden","important"),t.style.setProperty("background","#0a0a0a","important")}}function u(){return'<div style="text-align:center;padding:40px 20px;max-width:480px;width:100%"><div style="font-size:64px;margin-bottom:20px">\uD83D\uDEAB</div><h1 style="font-size:22px;margin:0 0 12px;font-weight:800">광고 차단 프로그램이 감지되었습니다</h1><p style="color:#ddd;line-height:1.7;font-size:14px;margin:0 0 14px">사이트 이용을 계속하려면 광고 차단을 해제하고<br>새로고침해 주세요.</p><p style="color:#bbb;line-height:1.7;font-size:13px;margin:0">소명\xb7문의: <a href="mailto:ntk01@proton.me" style="color:#60a5fa;font-weight:700;text-decoration:none">ntk01@proton.me</a></p></div>'}function m(e,t){let n=RegExp(`${t}\\((-?\\d*\\.?\\d+)(%)?\\)`,"g"),r=1,a=!1;for(let t=n.exec(e);t;t=n.exec(e)){let e=Number(t[1]);Number.isFinite(e)&&(a=!0,r*=t[2]?e/100:e)}return a?r:1}function p(e){let t=(e.getPropertyValue("filter")||"").replace(/\s+/g,"").toLowerCase(),n=parseFloat(e.opacity||"1");return{opacity:Number.isFinite(n)?n:1,filterOpacity:m(t,"opacity"),brightness:m(t,"brightness"),contrast:m(t,"contrast")}}function h(e){return e.opacity<.5||e.filterOpacity<.5||e.brightness<=.1||e.contrast<=.05}function f(){return(0,r.useEffect)(()=>{let e=!1,t=null,n=null,r="",m="",f=!1,b=new Set,g={},y=()=>{f=!0};window.addEventListener("beforeunload",y,{once:!0}),window.addEventListener("pagehide",y,{once:!0});let w="let timers={};let nextId=1;onmessage=function(e){var d=e.data;if(d.cmd==='setTimeout'){var id=nextId++;timers[id]=setTimeout(function(){delete timers[id];postMessage({id:d.id,kind:'timeout'});},d.ms);postMessage({id:d.id,workerHandle:id});}else if(d.cmd==='setInterval'){var id2=nextId++;timers[id2]=setInterval(function(){postMessage({id:d.id,kind:'interval'});},d.ms);postMessage({id:d.id,workerHandle:id2});}else if(d.cmd==='clear'){if(timers[d.workerHandle]){clearTimeout(timers[d.workerHandle]);clearInterval(timers[d.workerHandle]);delete timers[d.workerHandle];}}else if(d.cmd==='probe'){postMessage({id:d.id,kind:'probe'});}};",v=null,k=!1;try{let e=new Blob([w],{type:"application/javascript"});v=new Worker(URL.createObjectURL(e))}catch{k=!0}if(!v)try{v=new Worker(`data:application/javascript,${encodeURIComponent(w)}`),k=!1}catch{}let _=k&&!v,x=new Map,j=1;v&&(v.onmessage=e=>{let t=e.data;if("timeout"===t.kind||"interval"===t.kind||"probe"===t.kind){if("number"!=typeof t.id)return;let e=x.get(t.id);if(e){"interval"!==t.kind&&x.delete(t.id);try{e()}catch{}}}});let A=(e,t)=>{if(!v)return window.setTimeout(e,t);let n=j++;return x.set(n,e),v.postMessage({cmd:"setTimeout",id:n,ms:t}),n},S=(e,t)=>{if(!v)return window.setInterval(e,t);let n=j++;return x.set(n,e),v.postMessage({cmd:"setInterval",id:n,ms:t}),n},E=e=>{v?x.delete(e):window.clearInterval(e)},C=p=>{let h,y,w,v,k,_,x,j,A;if(e)return;if(d.has(p)){try{let e=V();b.has(p)||(b.add(p),(0,a.m)(p,{baseline:T||H(),visible:e,evidence:{...Q(p),modalShown:!1,detectionOnly:!0,clientSoftSignal:!0}}))}catch{}ee=0,et=0,en=0;return}e=!0;try{let e=V();(0,a.m)(p,{baseline:T||H(),visible:e,evidence:Q(p)})}catch{}(h=document.createElement("div")).style.cssText="all: revert; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important; background: rgba(0,0,0,0.94) !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 24px !important; box-sizing: border-box !important; pointer-events: auto !important; opacity: 1 !important; visibility: visible !important; backdrop-filter: blur(8px) !important;",y=h.attachShadow({mode:"closed"}),(w=document.createElement("div")).style.cssText="all: revert; max-width: 480px; width: 100%; background: #1f2937 !important; color: #f9fafb !important; padding: 32px 28px; border-radius: 14px; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,0.5); border: 1px solid #ef4444; box-sizing: border-box; opacity: 1 !important; visibility: visible !important; display: block !important;",y.appendChild(w),(v=document.createElement("div")).textContent="\uD83D\uDEAB",v.style.cssText="font-size: 48px; margin-bottom: 12px;",w.appendChild(v),(k=document.createElement("h2")).textContent="광고 차단 프로그램이 감지되었습니다",k.style.cssText="margin: 0 0 12px; font-size: 20px; font-weight: 800; color: #f9fafb;",w.appendChild(k),(_=document.createElement("p")).style.cssText="margin: 0 0 16px; font-size: 14px; line-height: 1.7; color: #e5e7eb;",_.innerHTML='본 사이트는 <strong style="color:#fde047">광고 수익으로 운영</strong>됩니다.<br/>광고 차단 확장 프로그램(uBlock Origin, AdGuard, AdBlock 등)을 <strong>해제</strong>한 뒤 새로고침해주세요.',w.appendChild(_),(x=document.createElement("ol")).style.cssText="text-align: left; margin: 0 0 18px; padding-left: 22px; font-size: 13px; color: #cbd5e1; line-height: 1.7;",x.innerHTML="<li>브라우저 우측 상단의 광고차단 확장 아이콘 클릭</li><li>이 사이트를 <strong>허용 목록(whitelist)</strong>에 추가</li><li>페이지 새로고침 (F5)</li>",w.appendChild(x),(j=document.createElement("div")).style.cssText="display: flex; gap: 8px; justify-content: center; flex-wrap: wrap;",w.appendChild(j),(A=document.createElement("button")).type="button",A.textContent="\uD83D\uDD04 새로고침",A.style.cssText="background: #fbbf24 !important; color: #111827 !important; padding: 10px 20px; border: 0; border-radius: 8px; font-size: 14px; font-weight: 800; cursor: pointer; opacity: 1 !important;",A.addEventListener("click",()=>{window.location.reload()}),j.appendChild(A),t={host:h,root:y},r=document.documentElement.style.overflow,m=document.body.style.overflow,document.documentElement.style.setProperty("overflow","hidden","important"),document.body.style.setProperty("overflow","hidden","important"),document.body.appendChild(t.host);try{window.__ntk_adblock_modal_active=1}catch{}c(t.host);let E=!1,C=null,I=!1,L=e=>{if(f||E)return;E=!0;let n=(e=>{let n=t?.host,r="",a="",i="",l="",s="",d="",c=0,u=0;try{if(n){let e=window.getComputedStyle(n),t=(0,o.J8)(n);r=e.display,a=e.visibility,i=e.opacity,l=e.position,s=e.pointerEvents,d=e.zIndex,c=Math.round(100*t.width)/100,u=Math.round(100*t.height)/100}}catch{}return{reason:"safari_block",modalShown:!0,modal:{sourceReason:p,action:e,connected:n?.isConnected??!1,display:r,visibility:a,opacity:i,position:l,pointerEvents:s,zIndex:d,width:c,height:u},slots:{baseline:T||H(),visible:V()}}})(e);try{t?.host.parentNode?.removeChild(t.host)}catch{}t=null,((e,t)=>{if(f||C)return;let n=document.createElement("div");n.id=i,n.style.cssText=s,n.innerHTML=u(),C=n;let r=()=>{if(f||I)return;let n=C;if(n){if((e=>{try{if(!e.isConnected)return!0;let t=window.getComputedStyle(e),n=(0,o.J8)(e),r=parseInt(t.zIndex||"0",10);return"none"===t.display||"hidden"===t.visibility||.5>parseFloat(t.opacity||"1")||"fixed"!==t.position||"none"===t.pointerEvents||!Number.isFinite(r)||r<2147e6||n.width<1||n.height<1}catch{return!0}})(n)){I=!0;try{n.parentNode?.removeChild(n)}catch{}C=null;var r=`fallback_${e}`;if(!f){try{window.dispatchEvent(new CustomEvent("ntk-ad-allow-hidden",{detail:{sourceReason:p,action:r,evidence:t}}))}catch{}(0,a.m)("safari_block",{baseline:T||H(),visible:V(),evidence:t}),window.setTimeout(()=>{if(f)return;let e=document.getElementById(l);e||((e=document.createElement("div")).innerHTML=u());let t=()=>(function(e){try{document.title="광고 차단 안내",e.id=l,e.style.cssText=s,e.innerHTML||(e.innerHTML=u());let t=document.body;if(!t){e.isConnected||document.documentElement.appendChild(e);return}e.isConnected&&t.lastElementChild===e||t.appendChild(e),c(e);try{window.stop()}catch{}}catch{}})(e);t();try{g.hardBlockObserver?.disconnect()}catch{}g.hardBlockObserver=new MutationObserver(t);try{g.hardBlockObserver.observe(document.body||document.documentElement,{childList:!0})}catch{}g.hardBlock&&window.clearInterval(g.hardBlock),g.hardBlock=window.setInterval(t,500)},0)}return}n.style.cssText=s,n.innerHTML||(n.innerHTML=u()),n.isConnected&&document.body.lastElementChild===n||document.body.appendChild(n),c(n)}};document.body.appendChild(n),r();try{g.fallbackWarningObserver?.disconnect()}catch{}g.fallbackWarningObserver=new MutationObserver(r);try{g.fallbackWarningObserver.observe(document.body||document.documentElement,{childList:!0})}catch{}g.fallbackWarning&&window.clearInterval(g.fallbackWarning),g.fallbackWarning=window.setInterval(r,500)})(e,n)},N=0,P=!1,M=()=>{if(f||P||!t||"visible"!==document.visibilityState)return;let e=Date.now();if(!(e-N<250)){N=e,P=!0;try{if(!document.body.contains(t.host))return void L("removed");{let e=window.getComputedStyle(t.host),n=(0,o.J8)(t.host),r=parseInt(e.zIndex||"0",10);if("none"===e.display||"hidden"===e.visibility||.5>parseFloat(e.opacity||"1")||"fixed"!==e.position||"none"===e.pointerEvents||!Number.isFinite(r)||r<2147e6||n.width<1||n.height<1)return void L("hidden");document.body.lastElementChild!==t.host&&document.body.appendChild(t.host)}c(t.host)}finally{P=!1}}};(n=new MutationObserver(M)).observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class","hidden"]}),g.reapply=S(M,1e3)},I=0,L=0,N=()=>{try{window.setTimeout(()=>{I+=1},0)}catch{}try{let e=window.setInterval(()=>{L+=1,window.clearInterval(e)},1)}catch{}},P=()=>{if(e)return;let t=H(),n=V(),r=Math.max(0,Math.floor(.15*t));0===t||n>r||C("csp_block")};if(_)window.setTimeout(P,4500);else if(v){let e=!1,t=j++;x.set(t,()=>{e=!0});try{v.postMessage({cmd:"probe",id:t})}catch{}v.onerror=()=>{e=!1},g.cspProbe=window.setTimeout(()=>{x.delete(t),e||P()},5e3)}N(),A(()=>{(0===I||0===L)&&(N(),A(()=>{if((0===I||0===L)&&!e){let e=H(),t=V(),n=Math.max(0,Math.floor(.15*e));0===e||t>n||C("script_noop")}},2e3))},1500);let T=0,M=0,B=window.location.href,R=document.documentElement.getAttribute("data-ab"),O=document.documentElement.getAttribute("data-rb"),W=0,F=()=>{let e=0;for(let t of(0,o.Vb)(o.u4)){let n=parseInt(t.getAttribute("data-br-n")||"0",10);Number.isFinite(n)&&n>0&&(e+=n)}return e};W=F();let $=window,z="number"==typeof $.__bSeen&&Number.isFinite($.__bSeen)&&$.__bSeen>0?$.__bSeen:0;z>W&&(W=z);try{$.__bSeen=W}catch{}let H=()=>{let e=0,t=0;if(R){let t=window[R];"number"==typeof t&&Number.isFinite(t)&&t>0&&(e=t)}if(O){let e=window[O];"number"==typeof e&&Number.isFinite(e)&&e>0&&(t=e)}let n=0;for(let e of(0,o.Vb)(o.u4)){let t=parseInt(e.getAttribute("data-br-n")||"0",10);Number.isFinite(t)&&t>0&&(n+=t)}return Math.max(e,t,n,W)};(R||O)&&new MutationObserver(t=>{if(!e){for(let e of t)if("attributes"===e.type&&("data-ab"===e.attributeName||"data-rb"===e.attributeName)&&"HTML"===e.target.nodeName){let e=document.documentElement.hasAttribute("data-ab"),t=document.documentElement.hasAttribute("data-rb");if(R&&!e||O&&!t)return void C("attr_removed")}}}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-ab","data-rb"]});let D=(e,t)=>{let n=e,r={opacity:1,filterOpacity:1,brightness:1,contrast:1};for(;n;){let e=window.getComputedStyle(n);if("none"===e.display||"visible"!==e.visibility)return!1;if("static"!==e.position&&"auto"!==e.zIndex){let t=Number(e.zIndex);if(Number.isFinite(t)&&t<0)return!1}let a=p(e);if(r.opacity*=a.opacity,r.filterOpacity*=a.filterOpacity,r.brightness*=a.brightness,r.contrast*=a.contrast,h(r)||function(e){let t=(e.getPropertyValue("clip-path")||e.getPropertyValue("-webkit-clip-path")||"").replace(/\s+/g,"").toLowerCase();if(t.startsWith("inset(100%")||t.startsWith("inset(50%")||t.startsWith("circle(0")||"polygon(000,000,000)"===t||"polygon(0%0%,0%0%,0%0%)"===t)return!0;let n=(e.getPropertyValue("clip")||"").toLowerCase();if(n&&"auto"!==n){let e=n.match(/-?\d*\.?\d+/g)?.map(Number)??[];if(e.length>=4){let[t,n,r,a]=e;if(n-a<=1||r-t<=1)return!0}}if(h(p(e)))return!0;let r=(e.getPropertyValue("mask-image")||e.getPropertyValue("-webkit-mask-image")||"").replace(/\s+/g,"").toLowerCase();return!!(r&&"none"!==r&&(r.includes("transparent")||r.includes("rgba(0,0,0,0)")||r.includes("#0000")))||"hidden"===e.getPropertyValue("content-visibility")}(e))return!1;let i=Array.from(n.getClientRects());if(0===i.length||!i.some(e=>e.width>=1&&e.height>=1))return!1;let l=(0,o.J8)(n);if(n.offsetWidth>=2&&l.width/n.offsetWidth<.5||n.offsetHeight>=2&&l.height/n.offsetHeight<.5||0===n.offsetWidth&&0===n.offsetHeight)return!1;if(n===t||!t&&"1"===n.getAttribute("data-br"))break;n=n.parentElement}let a=(0,o.J8)(e);if(a.width>=2&&a.height>=2){let n=e.parentElement;for(;n;){let e=window.getComputedStyle(n),r=`${e.overflowX} ${e.overflowY}`;if(/\b(?:hidden|clip|scroll|auto)\b/.test(r)){let e=(0,o.J8)(n);if(Math.max(0,Math.min(a.right,e.right)-Math.max(a.left,e.left))*Math.max(0,Math.min(a.bottom,e.bottom)-Math.max(a.top,e.top))/(a.width*a.height)<.5)return!1}if(n===t||"1"===n.getAttribute("data-br"))break;n=n.parentElement}}return!0},q=e=>{let t=e;for(;t;){if("none"===window.getComputedStyle(t).pointerEvents)return!0;if("1"===t.getAttribute("data-br"))break;t=t.parentElement}return!1},G=e=>{let t=(0,o.J8)(e);return t.width<8||t.height<6},U=()=>{let e=[];for(let t of(0,o.Vb)(o.u4)){let n=parseInt(t.getAttribute("data-br-n")||"0",10),r=Array.from(t.children).filter(e=>e instanceof HTMLElement&&"BUTTON"===e.tagName);e.push(...Number.isFinite(n)&&n>0?r.slice(0,n):r)}return e},K=(e,t)=>!!D(e,t)&&(!e.complete||0!==e.naturalWidth),V=()=>{let e=0;for(let t of U()){if(!D(t)||G(t)||q(t))continue;let n=t.querySelector("img");if(n||t.hasAttribute("data-bs")){if(!n||!K(n,t))continue}else if(!t.textContent?.trim()&&!t.querySelector("svg"))continue;e+=1}return e},J=e=>{let t=Array.from(e.getClientRects());return 0===e.offsetWidth&&0===e.offsetHeight&&t.some(e=>e.width>=1&&e.height>=1)},X=()=>{let e=0;for(let t of U())J(t)&&(e+=1);return e},Y=()=>{let e=0;for(let t of U())q(t)&&(e+=1);return e},Z=()=>{let e=0,t=0;for(let n of U()){let r=n.querySelector("img");if(r||n.hasAttribute("data-bs"))e+=1,!(!D(n)||G(n)||q(n))&&r&&K(r,n)&&(t+=1)}return{total:e,visible:t}},Q=e=>{let t=Z();return{reason:e,modalShown:!0,timers:{workerBlockedByCsp:k,timerWorkerPresent:null!==v,mainSTSeen:I,mainSISeen:L},counters:{consecutiveLow:ee,consecutiveAdLow:et,zeroBaselineTicks:en,lowRatio:.15},attr:{dataAbInitiallyPresent:!!R,dataRbInitiallyPresent:!!O,dataAbPresent:document.documentElement.hasAttribute("data-ab"),dataRbPresent:document.documentElement.hasAttribute("data-rb"),removedAttr:"attr_removed"===e?"data-ab/data-rb":""},slots:{baseline:T||H(),visible:V(),adImageTotal:t.total,adImageVisible:t.visible,userscriptSpoofed:X(),interactionBlocked:Y()}}},ee=0,et=0,en=0,er=()=>{if(e)return;if("u">typeof document&&"visible"!==document.visibilityState){ee=0,et=0;return}if(document.getElementById("ntk-hide-ad-style")||(0,o.BA)()||(0,o.Vb)('[data-br] img[data-ntk-blocked="1"]').length>0)return void C("userscript_spoof");if(window.location.href!==B){if(B=window.location.href,T=0,M=0,ee=0,et=0,en=0,R)try{window[R]=0}catch{}if(O)try{window[O]=0}catch{}try{window.__bSeen=0}catch{}W=F()}if(0===T){let e=H();if(e>0)T=e,M=performance.now(),en=0;else if(W>0&&(en+=1)>=14)return void C("attr_removed");return}if(performance.now()-M<1e3)return;let t=V(),n=Z(),r=Math.max(0,Math.floor(.15*T)),a=Math.max(0,Math.floor(.15*n.total));(t<=r?(ee+=1)>=14&&C("consecutive_low"):ee=0,n.total>0&&n.visible<=a?(et+=1)>=14&&C("data_bs_hide"):et=0,X()>=1)?C("userscript_spoof"):(()=>{let e=0;for(let t of U()){if(!D(t)||G(t)){e+=1;continue}let n=t.querySelector("img");n&&!D(n,t)&&(e+=1)}return e})()>=1?C("slot_hide_any"):Y()>=1&&C("slot_click_blocked")};g.firstT=A(()=>{er(),g.iv=S(er,700)},4e3);let ea=null,eo=new MutationObserver(()=>{e||0===T||null===ea&&(ea=window.setTimeout(()=>{ea=null,er()},50))});try{eo.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class","hidden","src"]})}catch{}if(new URLSearchParams(window.location.search).has("adblock-debug")){let t=document.createElement("div");t.style.cssText="position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:2147483646;background:#000;color:#0f0;font:14px/1.5 monospace;padding:16px 20px;border-radius:8px;min-width:340px;pointer-events:none;white-space:pre;border:2px solid #0f0;box-shadow:0 4px 20px rgba(0,0,0,0.5);",document.body.appendChild(t),g.debug=S(()=>{let n=M?performance.now()-M:0,r=M>0&&n>=1e3;t.textContent=`[adblock-debug]
triggered: ${e}
visible: ${V()}
ad imgs: ${Z().visible}/${Z().total}
baseline: ${T}
since: ${n}ms
stable: ${r}
url: ${window.location.pathname}`},200)}return()=>{var a;g.firstT&&(a=g.firstT,v?x.delete(a):window.clearTimeout(a)),g.iv&&E(g.iv),g.reapply&&E(g.reapply),g.debug&&E(g.debug),g.cspProbe&&window.clearTimeout(g.cspProbe),g.fallbackWarning&&window.clearInterval(g.fallbackWarning);try{g.fallbackWarningObserver?.disconnect()}catch{}g.hardBlock&&window.clearInterval(g.hardBlock);try{g.hardBlockObserver?.disconnect()}catch{}null!==ea&&window.clearTimeout(ea);try{eo.disconnect()}catch{}n&&n.disconnect(),window.removeEventListener("beforeunload",y),window.removeEventListener("pagehide",y);let o=t?.host;o?.parentElement?.removeChild(o);let l=document.getElementById(i);l?.parentElement?.removeChild(l);try{delete window.__ntk_adblock_modal_active}catch{}if(v)try{v.terminate()}catch{}e&&(document.documentElement.style.overflow=r,document.body.style.overflow=m)}},[]),null}},97013:e=>{e.exports={style:{fontFamily:"'Jua', 'Jua Fallback'",fontWeight:400,fontStyle:"normal"},className:"__className_48065f",variable:"__variable_48065f"}}},e=>{e.O(0,[98106,64459,47513,98500,42059,37018,28441,93794,77358],()=>e(e.s=40364)),_N_E=e.O()}]);