@freereportjs/core 0.10.0 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/freereport.esm.js +62 -62
- package/dist/cdn/freereport.min.js +58 -58
- package/dist/index.d.ts +15 -4
- package/dist/index.js +138 -59
- package/package.json +1 -1
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
var $e=.35277777777777775,zi=25.4/96,wn="'Malgun Gothic', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif",Er=(e,t=e.size*(96/72))=>`${e.italic?"italic ":""}${e.bold?"bold ":""}${t}px ${xn(e.family)}, ${wn}`,xn=e=>/^[\w-]+$/.test(e)?e:`'${e.replace(/'/g,"")}'`,bs=e=>e>=4352&&e<=4447||e>=11904&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510,Rr={width(e,t){let n=0;for(let r of e){let o=r.codePointAt(0);bs(o)?n+=.92:r===" "?n+=.28:/[il.,:;'|!]/.test(r)?n+=.25:/[mwMW@]/.test(r)?n+=.82:/[A-Z]/.test(r)?n+=.64:n+=.53}return n*t.size*$e*(t.bold?1.04:1)}};function Tr(){let e=null;try{e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null}catch{e=null}if(!e)return Rr;let t=e,n=new Map,r=100;return{width(o,s){let a=`${s.family}|${s.bold?1:0}|${s.italic?1:0}`,l=n.get(a);if(l||(l=new Map,n.set(a,l)),o.length>64)return t.font=Er(s,r),t.measureText(o).width/r*s.size*$e;let i=l.get(o);return i===void 0&&(t.font=Er(s,r),i=t.measureText(o).width/r,l.size>2e4&&l.clear(),l.set(o,i)),i*s.size*$e}}}var Pr=null;function $t(){return Pr??(Pr=Tr())}function kn(){Pr=null}var ys=/^[)\]}.,:;!?%、。,.)」』】〕〉》’”]/;function $n(e,t,n,r,o=0){let s=[],a=l=>r.width(l,n)+o*[...l].length;for(let l of e.split(/\r?\n/)){if(l===""){s.push("");continue}if(a(l)<=t){s.push(l);continue}let i=l.match(/[A-Za-z0-9À-ɏ_@#&*+=/\\'"`~^$€₩.,:;!?%()[\]{}<>|-]+|\s+|./gu)??[],p="";for(let d of i){let b=p+d;if(a(b.trimEnd())<=t||p===""){if(p===""&&a(d)>t&&!/^\s+$/.test(d)){let c="";for(let f of d)c&&a(c+f)>t&&(s.push(c),c=""),c+=f;p=c}else p=b;continue}if(/^\s+$/.test(d)){s.push(p.trimEnd()),p="";continue}if(ys.test(d)&&p.length>1){let c=[...p],f=c.pop();s.push(c.join("").trimEnd()),p=f+d;continue}s.push(p.trimEnd()),p=d}s.push(p.trimEnd())}return s}var vn="https://cdn.jsdelivr.net/gh/fonts-archive",Ar=new Map,Cr=e=>e.toLowerCase().replace(/[\s'"_-]/g,"");function Mn(e,t){Ar.set(Cr(e),t)}function mt(e){return Ar.get(Cr(e))}Mn("Nanum Gothic",{css:"https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap",normal:`${vn}/NanumGothic/NanumGothic.ttf`,bold:`${vn}/NanumGothic/NanumGothicBold.ttf`});Mn("Nanum Myeongjo",{css:"https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700&display=swap",normal:`${vn}/NanumMyeongjo/NanumMyeongjo.ttf`});function Sn(e){let t=new Set(["Nanum Gothic"]);e.font?.family&&t.add(e.font.family);for(let r of Object.values(e.styles??{}))r.fontFamily&&t.add(r.fontFamily);let n=[e.bands.title,e.bands.pageHeader,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.pageFooter,e.bands.noData,...(e.bands.groups??[]).flatMap(r=>[r.header,r.footer])];for(let r of n)for(let o of r?.elements??[])o.style?.fontFamily&&t.add(o.style.fontFamily);return[...t]}var jr=new Set;function vt(e,t=document){for(let n of e){let r=mt(n)?.css;if(!r||t===document&&jr.has(r)||t.querySelector(`link[data-fr-font="${CSS.escape(r)}"]`))continue;let o=t.createElement("link");o.rel="stylesheet",o.href=r,o.dataset.frFont=r,t.head.appendChild(o),t===document&&jr.add(r)}}async function nt(e,t=4e3){if(typeof document>"u"||!document.fonts)return;let n=Sn(e);vt(n);let r="\uAC00\uB098\uB2E4ABC123",o=n.flatMap(l=>[`400 12px '${l}'`,`700 12px '${l}'`].map(i=>document.fonts.load(i,r).catch(()=>[]))),s=n.map(l=>document.fonts.check(`12px '${l}'`,r)).join();await Promise.race([Promise.all(o),new Promise(l=>setTimeout(l,t))]);let a=n.map(l=>document.fonts.check(`12px '${l}'`,r)).join();s!==a&&kn()}function En(e){let t=new Set;for(let o of e)for(let s of o.items)s.kind==="text"&&t.add(s.font.family);let n={},r=mt("Nanum Gothic");n.default={normal:r.normal,bold:r.bold};for(let o of t){let s=mt(o);s?.normal&&(n[o]={normal:s.normal,bold:s.bold})}return n}var ws=["","\uC77C","\uC774","\uC0BC","\uC0AC","\uC624","\uC721","\uCE60","\uD314","\uAD6C"],xs=["","\uC2ED","\uBC31","\uCC9C"],Lr=["","\uB9CC","\uC5B5","\uC870","\uACBD"];function Rn(e){if(!Number.isFinite(e))return"";let t=Math.floor(Math.abs(e));if(t===0)return"\uC601";let n=[];for(let r=0;t>0&&r<Lr.length;r++){let o=t%1e4;if(t=Math.floor(t/1e4),!o)continue;let s="",a=String(o).padStart(4,"0");for(let l=0;l<4;l++){let i=Number(a[l]);i&&(s+=ws[i]+xs[3-l])}n.unshift(s+Lr[r])}return(e<0?"\uB9C8\uC774\uB108\uC2A4 ":"")+n.join("")}function St(e){return Number.isFinite(e)?`\uC77C\uAE08 ${Rn(e).replace(/(^|[만억조경 ])([십백천])/g,"$1\uC77C$2")}\uC6D0\uC815`:""}var Fr=["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],ks=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],$s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],vs=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rt=(e,t=2)=>String(e).padStart(t,"0"),Xt=new Map,Tn=e=>{let t=Xt.get(e);return t===void 0&&(t=Ms(e),Xt.size>500&&Xt.clear(),Xt.set(e,t)),t},Ms=e=>/(yy|M{1,4}|d{1,4}|H{1,2}|h{1,2}|m{2}|s{2})/.test(e.replace(/"[^"]*"|\[[^\]]*\]/g,""))&&!/[#0]/.test(e.replace(/"[^"]*"/g,"").replace(/(yy+|M+|d+|H+|h+|m+|s+)/g,""));function Ss(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()){let t=/^(\d{4})[-./](\d{1,2})[-./](\d{1,2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(e.trim());if(t)return new Date(+t[1],+t[2]-1,+t[3],+(t[4]??0),+(t[5]??0),+(t[6]??0));let n=new Date(e);return Number.isNaN(n.getTime())?null:n}return null}function Mt(e,t,n="ko"){let r=n.startsWith("ko");return t.replace(/"([^"]*)"|yyyy|yy|MMMM|MMM|MM|M|dddd|ddd|dd|d|HH|H|hh|h|mm|m|ss|s|a|tt/g,(o,s)=>{if(s!==void 0)return s;let a=e.getHours();switch(o){case"yyyy":return String(e.getFullYear());case"yy":return rt(e.getFullYear()%100);case"MMMM":return r?`${e.getMonth()+1}\uC6D4`:new Date(2e3,e.getMonth(),1).toLocaleString("en",{month:"long"});case"MMM":return r?`${e.getMonth()+1}\uC6D4`:vs[e.getMonth()];case"MM":return rt(e.getMonth()+1);case"M":return String(e.getMonth()+1);case"dddd":return r?`${Fr[e.getDay()]}\uC694\uC77C`:$s[e.getDay()];case"ddd":return r?Fr[e.getDay()]:ks[e.getDay()];case"dd":return rt(e.getDate());case"d":return String(e.getDate());case"HH":return rt(a);case"H":return String(a);case"hh":return rt(a%12||12);case"h":return String(a%12||12);case"mm":return rt(e.getMinutes());case"m":return String(e.getMinutes());case"ss":return rt(e.getSeconds());case"s":return String(e.getSeconds());case"a":case"tt":return r?a<12?"\uC624\uC804":"\uC624\uD6C4":a<12?"AM":"PM"}return o})}function Es(e){let t=[],n="",r=!1;for(let o of e)o==='"'&&(r=!r),o===";"&&!r?(t.push(n),n=""):n+=o;return t.push(n),t}function Dr(e,t){let n=Es(t),r=n[0],o=e;e<0&&n[1]!==void 0?(r=n[1],o=-e):e===0&&n[2]!==void 0&&(r=n[2]);let s=/[#0][#0,]*(?:\.[#0]+)?|\.[#0]+/.exec(r.replace(/"[^"]*"/g,C=>"\0".repeat(C.length)));if(!s)return r.replace(/"/g,"");let a=s[0],l=r.slice(0,s.index).replace(/"/g,""),i=r.slice(s.index+a.length);(i.includes("%")||l.includes("%"))&&(o*=100);let d=0,b=a;for(;b.endsWith(",");)d++,b=b.slice(0,-1);o/=1e3**d;let[c,f=""]=b.split("."),u=(f.match(/0/g)??[]).length,y=f.length,R=Math.min(y,20),M=Math.abs(o)<1e15?+`${Math.round(+`${Math.abs(o)}e${R}`)}e-${R}`:Math.abs(o),$=(Number.isFinite(M)?M:Math.abs(o)).toFixed(R);y>u&&($=$.replace(new RegExp(`0{1,${y-u}}$`),"").replace(/\.$/,""));let[v,T]=$.split("."),x=(c.match(/0/g)??[]).length;return v==="0"&&x===0&&(v=""),v=v.padStart(x,"0"),c.includes(",")&&(v=v.replace(/\B(?=(\d{3})+(?!\d))/g,",")),i=i.replace(/"/g,""),`${o<0&&n[1]===void 0&&Math.abs(o)>=.5*10**-y?"-":""}${l}${v}${T?`.${T}`:""}${i}`}function ve(e,t,n="ko"){if(e==null)return"";let r=t?.trim();if(r){if(r==="korean")return St(Number(e));if(r==="koreanNumber")return Rn(Number(e));if(r==="bizNo")return String(e).replace(/\D/g,"").replace(/^(\d{3})(\d{2})(\d{5})$/,"$1-$2-$3");if(r==="upper")return String(e).toUpperCase();if(r==="lower")return String(e).toLowerCase();if(Tn(r)){let s=Ss(e);if(s)return Mt(s,r,n)}let o=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e.replace(/,/g,"")):NaN;if(Number.isFinite(o))return Dr(o,r)}return e instanceof Date?Mt(e,"yyyy-MM-dd",n):typeof e=="number"?Number.isInteger(e)?String(e):String(Math.round(e*1e10)/1e10):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?e.map(o=>ve(o,t,n)).join(", "):typeof e=="object"?"":String(e)}var Vt="0.10.0",Ir="2026-10-19";var Rs={kty:"EC",crv:"P-256",x:"MiJXJR8TZJ_-0VKk0wIQ-5mzRsyQ6ruGsbcRRdw9jrw",y:"MTdklYSzCM2pganffz7PPMfxSclQkBLqU_9se_VDznM"},Pn="https://freereport.app/pricing/",Br="https://freereport.app/api/usage",Ts="https://freereport.app/api/domain-status",Nr=e=>{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4));return Uint8Array.from(t,n=>n.charCodeAt(0))};function An(e){let t=e.toLowerCase().replace(/^\[|\]$/g,"");return!t||t==="localhost"||t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.endsWith(".localhost")||t.endsWith(".test")||t.endsWith(".local")||/^(10\.\d+|192\.168|172\.(1[6-9]|2\d|3[01]))\.\d+\.\d+$/.test(t)}function Ps(e,t){let n=e.toLowerCase().replace(/\.$/,"");return t.some(r=>{let o=r.toLowerCase().replace(/\.$/,""),s=o.startsWith("*."),a=s?o.slice(2):o;return a?n===a||n===`www.${a}`?!0:s&&n.endsWith(`.${a}`):!1})}var js=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;async function zr(e,t,n={}){let r=typeof e=="string"?e.trim().split("."):[];if(r.length!==3||r[0]!=="FR1")return{ok:!1,reason:"format"};let o;try{if(o=JSON.parse(new TextDecoder().decode(Nr(r[1]))),!Array.isArray(o.domains)||typeof o.expires!="string")return{ok:!1,reason:"format"}}catch{return{ok:!1,reason:"format"}}let s=typeof crypto<"u"?crypto.subtle:void 0;if(!s)return{ok:!1,reason:"unsupported",info:o};try{let a=await s.importKey("jwk",n.publicKey??Rs,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),l=new TextEncoder().encode(`${r[0]}.${r[1]}`);if(!await s.verify({name:"ECDSA",hash:"SHA-256"},a,Nr(r[2]),l))return{ok:!1,reason:"signature",info:o}}catch{return{ok:!1,reason:"signature",info:o}}return js(n.now??new Date)>o.expires?{ok:!1,reason:"expired",info:o}:Ps(t,o.domains)?o.updates&&(n.released??Ir)>o.updates?{ok:!1,reason:"updates",info:o}:{ok:!0,info:o}:{ok:!1,reason:"domain",info:o}}var jn,Hr=new Map,Et=null;function As(e){jn=e}var Or={missing:`FreeReport is free for personal use. Company use needs a domain license (\u20A9500,000 per domain per year, or \u20A9900,000 perpetual): ${Pn}
|
|
2
|
-
FreeReport\uB294 \uAC1C\uC778\uC5D0\uAC8C \uBB34\uB8CC\uC785\uB2C8\uB2E4. \uD68C\uC0AC\uC5D0\uC11C \uC4F0\uB824\uBA74 \uB3C4\uBA54\uC778 \uB77C\uC774\uC120\uC2A4(\uB3C4\uBA54\uC778\uB2F9 \uC5F0 50\uB9CC \uC6D0, \uC601\uAD6C 90\uB9CC \uC6D0)\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4: ${
|
|
3
|
-
${
|
|
4
|
-
`:a==="t"?" ":a}else s+=e[n];n++}if(e[n]!==r)throw new SyntaxError("Unclosed string");n++,t.push({t:"str",v:s});continue}if(/[A-Za-z_$\u0080-]/.test(r)){let s=/^[A-Za-z_$\u0080-][\w$\u0080-]*/.exec(e.slice(n));t.push({t:"id",v:s[0]}),n+=s[0].length;continue}let o=
|
|
5
|
-
`),
|
|
6
|
-
`).map(
|
|
7
|
-
`),
|
|
8
|
-
`).map(
|
|
1
|
+
var $e=.35277777777777775,_i=25.4/96,kn="'Malgun Gothic', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif",Tr=(e,t=e.size*(96/72))=>`${e.italic?"italic ":""}${e.bold?"bold ":""}${t}px ${$n(e.family)}, ${kn}`,$n=e=>/^[\w-]+$/.test(e)?e:`'${e.replace(/'/g,"")}'`,ks=e=>e>=4352&&e<=4447||e>=11904&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510,Pr={width(e,t){let n=0;for(let r of e){let o=r.codePointAt(0);ks(o)?n+=.92:r===" "?n+=.28:/[il.,:;'|!]/.test(r)?n+=.25:/[mwMW@]/.test(r)?n+=.82:/[A-Z]/.test(r)?n+=.64:n+=.53}return n*t.size*$e*(t.bold?1.04:1)}};function jr(){let e=null;try{e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null}catch{e=null}if(!e)return Pr;let t=e,n=new Map,r=100;return{width(o,s){let a=`${s.family}|${s.bold?1:0}|${s.italic?1:0}`,c=n.get(a);if(c||(c=new Map,n.set(a,c)),o.length>64)return t.font=Tr(s,r),t.measureText(o).width/r*s.size*$e;let i=c.get(o);return i===void 0&&(t.font=Tr(s,r),i=t.measureText(o).width/r,c.size>2e4&&c.clear(),c.set(o,i)),i*s.size*$e}}}var Ar=null;function St(){return Ar??(Ar=jr())}function vn(){Ar=null}var $s=/^[)\]}.,:;!?%、。,.)」』】〕〉》’”]/;function Mn(e,t,n,r,o=0){let s=[],a=c=>r.width(c,n)+o*[...c].length;for(let c of e.split(/\r?\n/)){if(c===""){s.push("");continue}if(a(c)<=t){s.push(c);continue}let i=c.match(/[A-Za-z0-9À-ɏ_@#&*+=/\\'"`~^$€₩.,:;!?%()[\]{}<>|-]+|\s+|./gu)??[],f="";for(let p of i){let b=f+p;if(a(b.trimEnd())<=t||f===""){if(f===""&&a(p)>t&&!/^\s+$/.test(p)){let l="";for(let u of p)l&&a(l+u)>t&&(s.push(l),l=""),l+=u;f=l}else f=b;continue}if(/^\s+$/.test(p)){s.push(f.trimEnd()),f="";continue}if($s.test(p)&&f.length>1){let l=[...f],u=l.pop();s.push(l.join("").trimEnd()),f=u+p;continue}s.push(f.trimEnd()),f=p}s.push(f.trimEnd())}return s}var Sn="https://cdn.jsdelivr.net/gh/fonts-archive",Lr=new Map,Dr=e=>e.toLowerCase().replace(/[\s'"_-]/g,"");function En(e,t){Lr.set(Dr(e),t)}function ht(e){return Lr.get(Dr(e))}En("Nanum Gothic",{css:"https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap",normal:`${Sn}/NanumGothic/NanumGothic.ttf`,bold:`${Sn}/NanumGothic/NanumGothicBold.ttf`});En("Nanum Myeongjo",{css:"https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700&display=swap",normal:`${Sn}/NanumMyeongjo/NanumMyeongjo.ttf`});function Rn(e){let t=new Set(["Nanum Gothic"]);e.font?.family&&t.add(e.font.family);for(let r of Object.values(e.styles??{}))r.fontFamily&&t.add(r.fontFamily);let n=[e.bands.title,e.bands.pageHeader,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.pageFooter,e.bands.noData,...(e.bands.groups??[]).flatMap(r=>[r.header,r.footer])];for(let r of n)for(let o of r?.elements??[])o.style?.fontFamily&&t.add(o.style.fontFamily);return[...t]}var Cr=new Set;function Et(e,t=document){for(let n of e){let r=ht(n)?.css;if(!r||t===document&&Cr.has(r)||t.querySelector(`link[data-fr-font="${CSS.escape(r)}"]`))continue;let o=t.createElement("link");o.rel="stylesheet",o.href=r,o.dataset.frFont=r,t.head.appendChild(o),t===document&&Cr.add(r)}}async function rt(e,t=4e3){if(typeof document>"u"||!document.fonts)return;let n=Rn(e);Et(n);let r="\uAC00\uB098\uB2E4ABC123",o=n.flatMap(c=>[`400 12px '${c}'`,`700 12px '${c}'`].map(i=>document.fonts.load(i,r).catch(()=>[]))),s=n.map(c=>document.fonts.check(`12px '${c}'`,r)).join();await Promise.race([Promise.all(o),new Promise(c=>setTimeout(c,t))]);let a=n.map(c=>document.fonts.check(`12px '${c}'`,r)).join();s!==a&&vn()}function Tn(e){let t=new Set;for(let o of e)for(let s of o.items)s.kind==="text"&&t.add(s.font.family);let n={},r=ht("Nanum Gothic");n.default={normal:r.normal,bold:r.bold};for(let o of t){let s=ht(o);s?.normal&&(n[o]={normal:s.normal,bold:s.bold})}return n}var vs=["","\uC77C","\uC774","\uC0BC","\uC0AC","\uC624","\uC721","\uCE60","\uD314","\uAD6C"],Ms=["","\uC2ED","\uBC31","\uCC9C"],Fr=["","\uB9CC","\uC5B5","\uC870","\uACBD"];function Pn(e){if(!Number.isFinite(e))return"";let t=Math.floor(Math.abs(e));if(t===0)return"\uC601";let n=[];for(let r=0;t>0&&r<Fr.length;r++){let o=t%1e4;if(t=Math.floor(t/1e4),!o)continue;let s="",a=String(o).padStart(4,"0");for(let c=0;c<4;c++){let i=Number(a[c]);i&&(s+=vs[i]+Ms[3-c])}n.unshift(s+Fr[r])}return(e<0?"\uB9C8\uC774\uB108\uC2A4 ":"")+n.join("")}function Tt(e){return Number.isFinite(e)?`\uC77C\uAE08 ${Pn(e).replace(/(^|[만억조경 ])([십백천])/g,"$1\uC77C$2")}\uC6D0\uC815`:""}var Ir=["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],Ss=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Es=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Rs=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ot=(e,t=2)=>String(e).padStart(t,"0"),Yt=new Map,jn=e=>{let t=Yt.get(e);return t===void 0&&(t=Ts(e),Yt.size>500&&Yt.clear(),Yt.set(e,t)),t},Ts=e=>/(yy|M{1,4}|d{1,4}|H{1,2}|h{1,2}|m{2}|s{2})/.test(e.replace(/"[^"]*"|\[[^\]]*\]/g,""))&&!/[#0]/.test(e.replace(/"[^"]*"/g,"").replace(/(yy+|M+|d+|H+|h+|m+|s+)/g,""));function Ps(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()){let t=/^(\d{4})[-./](\d{1,2})[-./](\d{1,2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(e.trim());if(t)return new Date(+t[1],+t[2]-1,+t[3],+(t[4]??0),+(t[5]??0),+(t[6]??0));let n=new Date(e);return Number.isNaN(n.getTime())?null:n}return null}function Rt(e,t,n="ko"){let r=n.startsWith("ko");return t.replace(/"([^"]*)"|yyyy|yy|MMMM|MMM|MM|M|dddd|ddd|dd|d|HH|H|hh|h|mm|m|ss|s|a|tt/g,(o,s)=>{if(s!==void 0)return s;let a=e.getHours();switch(o){case"yyyy":return String(e.getFullYear());case"yy":return ot(e.getFullYear()%100);case"MMMM":return r?`${e.getMonth()+1}\uC6D4`:new Date(2e3,e.getMonth(),1).toLocaleString("en",{month:"long"});case"MMM":return r?`${e.getMonth()+1}\uC6D4`:Rs[e.getMonth()];case"MM":return ot(e.getMonth()+1);case"M":return String(e.getMonth()+1);case"dddd":return r?`${Ir[e.getDay()]}\uC694\uC77C`:Es[e.getDay()];case"ddd":return r?Ir[e.getDay()]:Ss[e.getDay()];case"dd":return ot(e.getDate());case"d":return String(e.getDate());case"HH":return ot(a);case"H":return String(a);case"hh":return ot(a%12||12);case"h":return String(a%12||12);case"mm":return ot(e.getMinutes());case"m":return String(e.getMinutes());case"ss":return ot(e.getSeconds());case"s":return String(e.getSeconds());case"a":case"tt":return r?a<12?"\uC624\uC804":"\uC624\uD6C4":a<12?"AM":"PM"}return o})}function js(e){let t=[],n="",r=!1;for(let o of e)o==='"'&&(r=!r),o===";"&&!r?(t.push(n),n=""):n+=o;return t.push(n),t}function Br(e,t){let n=js(t),r=n[0],o=e;e<0&&n[1]!==void 0?(r=n[1],o=-e):e===0&&n[2]!==void 0&&(r=n[2]);let s=/[#0][#0,]*(?:\.[#0]+)?|\.[#0]+/.exec(r.replace(/"[^"]*"/g,T=>"\0".repeat(T.length)));if(!s)return r.replace(/"/g,"");let a=s[0],c=r.slice(0,s.index).replace(/"/g,""),i=r.slice(s.index+a.length);(i.includes("%")||c.includes("%"))&&(o*=100);let p=0,b=a;for(;b.endsWith(",");)p++,b=b.slice(0,-1);o/=1e3**p;let[l,u=""]=b.split("."),d=(u.match(/0/g)??[]).length,h=u.length,$=Math.min(h,20),x=Math.abs(o)<1e15?+`${Math.round(+`${Math.abs(o)}e${$}`)}e-${$}`:Math.abs(o),v=(Number.isFinite(x)?x:Math.abs(o)).toFixed($);h>d&&(v=v.replace(new RegExp(`0{1,${h-d}}$`),"").replace(/\.$/,""));let[M,j]=v.split("."),y=(l.match(/0/g)??[]).length;return M==="0"&&y===0&&(M=""),M=M.padStart(y,"0"),l.includes(",")&&(M=M.replace(/\B(?=(\d{3})+(?!\d))/g,",")),i=i.replace(/"/g,""),`${o<0&&n[1]===void 0&&Math.abs(o)>=.5*10**-h?"-":""}${c}${M}${j?`.${j}`:""}${i}`}function ve(e,t,n="ko"){if(e==null)return"";let r=t?.trim();if(r){if(r==="korean")return Tt(Number(e));if(r==="koreanNumber")return Pn(Number(e));if(r==="bizNo")return String(e).replace(/\D/g,"").replace(/^(\d{3})(\d{2})(\d{5})$/,"$1-$2-$3");if(r==="upper")return String(e).toUpperCase();if(r==="lower")return String(e).toLowerCase();if(jn(r)){let s=Ps(e);if(s)return Rt(s,r,n)}let o=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e.replace(/,/g,"")):NaN;if(Number.isFinite(o))return Br(o,r)}return e instanceof Date?Rt(e,"yyyy-MM-dd",n):typeof e=="number"?Number.isInteger(e)?String(e):String(Math.round(e*1e10)/1e10):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?e.map(o=>ve(o,t,n)).join(", "):typeof e=="object"?"":String(e)}var Jt="0.10.2",Nr="2026-10-19";var As={kty:"EC",crv:"P-256",x:"MiJXJR8TZJ_-0VKk0wIQ-5mzRsyQ6ruGsbcRRdw9jrw",y:"MTdklYSzCM2pganffz7PPMfxSclQkBLqU_9se_VDznM"},An="https://freereport.app/pricing/",Hr="https://freereport.app/api/usage",Cs="https://freereport.app/api/domain-status",Or=e=>{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4));return Uint8Array.from(t,n=>n.charCodeAt(0))};function Ln(e){let t=e.toLowerCase().replace(/^\[|\]$/g,"");return!t||t==="localhost"||t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.endsWith(".localhost")||t.endsWith(".test")||t.endsWith(".local")||/^(10\.\d+|192\.168|172\.(1[6-9]|2\d|3[01]))\.\d+\.\d+$/.test(t)}function Ls(e,t){let n=e.toLowerCase().replace(/\.$/,"");return t.some(r=>{let o=r.toLowerCase().replace(/\.$/,""),s=o.startsWith("*."),a=s?o.slice(2):o;return a?n===a||n===`www.${a}`?!0:s&&n.endsWith(`.${a}`):!1})}var Ds=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;async function Gr(e,t,n={}){let r=typeof e=="string"?e.trim().split("."):[];if(r.length!==3||r[0]!=="FR1")return{ok:!1,reason:"format"};let o;try{if(o=JSON.parse(new TextDecoder().decode(Or(r[1]))),!Array.isArray(o.domains)||typeof o.expires!="string")return{ok:!1,reason:"format"}}catch{return{ok:!1,reason:"format"}}let s=typeof crypto<"u"?crypto.subtle:void 0;if(!s)return{ok:!1,reason:"unsupported",info:o};try{let a=await s.importKey("jwk",n.publicKey??As,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),c=new TextEncoder().encode(`${r[0]}.${r[1]}`);if(!await s.verify({name:"ECDSA",hash:"SHA-256"},a,Or(r[2]),c))return{ok:!1,reason:"signature",info:o}}catch{return{ok:!1,reason:"signature",info:o}}return Ds(n.now??new Date)>o.expires?{ok:!1,reason:"expired",info:o}:Ls(t,o.domains)?o.updates&&(n.released??Nr)>o.updates?{ok:!1,reason:"updates",info:o}:{ok:!0,info:o}:{ok:!1,reason:"domain",info:o}}var Cn,qr=new Map,Pt=null;function Fs(e){Cn=e}var zr={missing:`FreeReport is free for personal use. Company use needs a domain license (\u20A9500,000 per domain per year, or \u20A9900,000 perpetual): ${An}
|
|
2
|
+
FreeReport\uB294 \uAC1C\uC778\uC5D0\uAC8C \uBB34\uB8CC\uC785\uB2C8\uB2E4. \uD68C\uC0AC\uC5D0\uC11C \uC4F0\uB824\uBA74 \uB3C4\uBA54\uC778 \uB77C\uC774\uC120\uC2A4(\uB3C4\uBA54\uC778\uB2F9 \uC5F0 50\uB9CC \uC6D0, \uC601\uAD6C 90\uB9CC \uC6D0)\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4: ${An}`,format:"FreeReport: the license key is not in the right format. / \uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",signature:"FreeReport: the license key could not be verified. / \uB77C\uC774\uC120\uC2A4 \uD0A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",expired:"FreeReport: the license key has expired. / \uB77C\uC774\uC120\uC2A4 \uAE30\uAC04\uC774 \uB05D\uB0AC\uC2B5\uB2C8\uB2E4.",domain:"FreeReport: the license key is for a different domain. / \uB2E4\uB978 \uB3C4\uBA54\uC778\uC6A9 \uB77C\uC774\uC120\uC2A4 \uD0A4\uC785\uB2C8\uB2E4.",updates:"FreeReport: this version was released after the update period of your perpetual license. / \uC601\uAD6C \uB77C\uC774\uC120\uC2A4\uC758 \uC5C5\uB370\uC774\uD2B8 \uAE30\uAC04 \uB4A4\uC5D0 \uB098\uC628 \uBC84\uC804\uC785\uB2C8\uB2E4."};function Ur(e,t=typeof location<"u"?location.hostname:""){try{if(Ln(t)||typeof navigator>"u")return;let n=new Date().toISOString().slice(0,10),r=`${t}|${n}|${e.licensed?1:0}`,o=typeof localStorage<"u"?localStorage:null;if(o?.getItem("freereport:usage")===r)return;o?.setItem("freereport:usage",r);let s=JSON.stringify({version:e.version,licensed:e.licensed,company:e.company,url:`${location.origin}${location.pathname}`});typeof navigator.sendBeacon=="function"?navigator.sendBeacon(Hr,s):typeof fetch=="function"&&fetch(Hr,{method:"POST",body:s,mode:"no-cors",keepalive:!0}).catch(()=>{})}catch{}}function Dn(e=Cn,t=typeof location<"u"?location.hostname:""){if(Ln(t))return Promise.resolve(!0);let n=e??Cn,r=`${n??""}@${t}`,o=qr.get(r);return o||(n?o=Gr(n,t).then(s=>{if(Ur({version:Jt,licensed:s.ok,company:s.ok?s.info.company:void 0},t),s.ok||s.reason==="unsupported")return s.ok||s.reason==="unsupported";let a=s.info?` (${s.info.domains.join(", ")}, ${s.info.expires})`:"";return console.warn(`${zr[s.reason]}${a}
|
|
3
|
+
${An}`),!1},()=>!1):(console.info(zr.missing),Ur({version:Jt,licensed:!1},t),o=Promise.resolve(!1)),qr.set(r,o),o)}function Is(e=typeof location<"u"?location.hostname:""){if(Ln(e)||typeof fetch!="function")return Promise.resolve(!1);if(Pt)return Pt;let t=new Date().toISOString().slice(0,10),n=null;try{n=typeof localStorage<"u"?localStorage:null;let r=JSON.parse(n?.getItem("freereport:badge")??"null");if(r&&r.host===e&&r.day===t)return Pt=Promise.resolve(r.show)}catch{}return Pt=fetch(Cs,{mode:"cors",credentials:"omit"}).then(r=>r.ok?r.json():{badge:!1}).then(r=>{let o=r.badge===!0;try{n?.setItem("freereport:badge",JSON.stringify({host:e,day:t,show:o}))}catch{}return o},()=>!1),Pt}async function Wr(e,t=typeof location<"u"?location.hostname:""){return await Dn(e,t)?!1:Is(t)}var Bs=["===","!==","==","!=","<=",">=","&&","||","??","<",">","+","-","*","/","%","!","?",":","(",")",",",".","[","]"];function Ns(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(/\s/.test(r)){n++;continue}if(/[0-9]/.test(r)||r==="."&&/[0-9]/.test(e[n+1]??"")){let s=/^(\d*\.?\d+(?:[eE][+-]?\d+)?)/.exec(e.slice(n));t.push({t:"num",v:Number(s[1])}),n+=s[1].length;continue}if(r==='"'||r==="'"){let s="";for(n++;n<e.length&&e[n]!==r;){if(e[n]==="\\"&&n+1<e.length){let a=e[++n];s+=a==="n"?`
|
|
4
|
+
`:a==="t"?" ":a}else s+=e[n];n++}if(e[n]!==r)throw new SyntaxError("Unclosed string");n++,t.push({t:"str",v:s});continue}if(/[A-Za-z_$\u0080-]/.test(r)){let s=/^[A-Za-z_$\u0080-][\w$\u0080-]*/.exec(e.slice(n));t.push({t:"id",v:s[0]}),n+=s[0].length;continue}let o=Bs.find(s=>e.startsWith(s,n));if(!o)throw new SyntaxError(`Unexpected "${r}"`);t.push({t:"op",v:o}),n+=o.length}return t.push({t:"end"}),t}var be=e=>{if(typeof e=="number")return e;if(typeof e=="string"){let t=Number(e.replace(/,/g,""));return Number.isFinite(t)?t:NaN}return typeof e=="boolean"?e?1:0:e instanceof Date?e.getTime():e==null?0:Number(e)},Pe=e=>{if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number")return new Date(e);if(typeof e=="string"&&e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e),n=t?new Date(+t[1],+t[2]-1,+t[3]):new Date(e);return Number.isNaN(n.getTime())?null:n}return null},Hs=new Set(["__proto__","prototype","constructor"]);function Kr(e,t){if(e==null)return;let n=String(t);if(!Hs.has(n)){if(typeof e=="string")return n==="length"?e.length:void 0;if(typeof e=="object")return Array.isArray(e)&&n==="length"?e.length:Object.prototype.hasOwnProperty.call(e,n)?e[n]:void 0}}function _r(e,t){return t==="report"||t==="all"?e.allRows:t==="group"?e.groupRows??e.allRows:t==="page"?e.pageRows??e.rows:e.rows}function Os(e,t,n){return n?t.map((r,o)=>n({...e,row:r,vars:{...e.vars,rowNum:o+1}})):t}var Xr={sum:e=>e.reduce((t,n)=>t+(Number.isFinite(be(n))?be(n):0),0),avg:e=>{let t=e.map(be).filter(Number.isFinite);return t.length?t.reduce((n,r)=>n+r,0)/t.length:0},min:e=>{let t=e.filter(n=>n!=null&&n!=="").map(be).filter(Number.isFinite);return t.length?t.reduce((n,r)=>r<n?r:n):null},max:e=>{let t=e.filter(n=>n!=null&&n!=="").map(be).filter(Number.isFinite);return t.length?t.reduce((n,r)=>r>n?r:n):null},count:e=>e.filter(t=>t!=null&&t!==""&&t!==!1).length,distinct:e=>new Set(e.map(t=>t instanceof Date?t.getTime():t)).size,first:e=>e[0],last:e=>e[e.length-1]},Vr=e=>String(e).padStart(2,"0"),Fn={format:(e,t)=>ve(e,typeof t=="string"?t:void 0),korean:e=>Tt(be(e)),koreanAmount:e=>Tt(be(e)),round:(e,t)=>{let n=10**(Number(t)||0);return Math.round(be(e)*n)/n},floor:(e,t)=>{let n=10**(Number(t)||0);return Math.floor(be(e)*n)/n},ceil:(e,t)=>{let n=10**(Number(t)||0);return Math.ceil(be(e)*n)/n},abs:e=>Math.abs(be(e)),number:e=>be(e),string:e=>e==null?"":String(e),upper:e=>String(e??"").toUpperCase(),lower:e=>String(e??"").toLowerCase(),trim:e=>String(e??"").trim(),len:e=>Array.isArray(e)?e.length:String(e??"").length,left:(e,t)=>String(e??"").slice(0,Number(t)),right:(e,t)=>{let n=String(e??"");return n.slice(Math.max(0,n.length-Number(t)))},substr:(e,t,n)=>String(e??"").substr(Number(t),n===void 0?void 0:Number(n)),replace:(e,t,n)=>String(e??"").split(String(t)).join(String(n??"")),concat:(...e)=>e.map(t=>t==null?"":String(t)).join(""),join:(e,t)=>Array.isArray(e)?e.join(t===void 0?", ":String(t)):"",padStart:(e,t,n)=>String(e??"").padStart(Math.min(1e3,Number(t)||0),n===void 0?" ":String(n)),iif:(e,t,n)=>e?t:n,coalesce:(...e)=>e.find(t=>t!=null&&t!==""),isEmpty:e=>e==null||e===""||Array.isArray(e)&&!e.length,date:e=>Pe(e),today:()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate())},now:()=>new Date,year:e=>Pe(e)?.getFullYear()??null,month:e=>Pe(e)?Pe(e).getMonth()+1:null,day:e=>Pe(e)?.getDate()??null,addDays:(e,t)=>{let n=Pe(e);return n?new Date(n.getFullYear(),n.getMonth(),n.getDate()+Number(t)):null},dateDiff:(e,t)=>{let n=Pe(e),r=Pe(t);return n&&r?Math.round((r.getTime()-n.getTime())/864e5):null},ymd:e=>{let t=Pe(e);return t?`${t.getFullYear()}-${Vr(t.getMonth()+1)}-${Vr(t.getDate())}`:""},bizNo:e=>String(e??"").replace(/\D/g,"").replace(/^(\d{3})(\d{2})(\d{5})$/,"$1-$2-$3"),phone:e=>{let t=String(e??"").replace(/\D/g,"");return t.startsWith("02")?t.replace(/^(02)(\d{3,4})(\d{4})$/,"$1-$2-$3"):t.replace(/^(\d{3})(\d{3,4})(\d{4})$/,"$1-$2-$3")},groupSum:(e,t,n)=>{if(!Array.isArray(e))return[];let r=String(t),o=String(n),s=new Map;for(let a of e)s.set(a?.[r],(s.get(a?.[r])??0)+(Number.isFinite(be(a?.[o]))?be(a?.[o]):0));return[...s].map(([a,c])=>({[r]:a,[o]:c}))},groupCount:(e,t)=>{if(!Array.isArray(e))return[];let n=String(t),r=new Map;for(let o of e)r.set(o?.[n],(r.get(o?.[n])??0)+1);return[...r].map(([o,s])=>({[n]:o,count:s}))},min2:(e,t)=>Math.min(be(e),be(t)),max2:(e,t)=>Math.max(be(e),be(t))},jt=0;function Jr(){jt++}var At=class At{constructor(t){this.toks=t;this.i=0}peek(){return this.toks[this.i]}next(){return this.toks[this.i++]}isOp(t){let n=this.peek();return n.t==="op"&&n.v===t}expect(t){if(!this.isOp(t))throw new SyntaxError(`Expected "${t}"`);this.i++}parse(){let t=this.ternary();if(this.peek().t!=="end")throw new SyntaxError("Unexpected input after expression");return t}ternary(){let t=this.binary(0);if(!this.isOp("?"))return t;this.i++;let n=this.ternary();this.expect(":");let r=this.ternary();return o=>t(o)?n(o):r(o)}binary(t){if(t>=At.LEVELS.length)return this.unary();let n=this.binary(t+1);for(;;){let r=this.peek();if(r.t!=="op"||!At.LEVELS[t].includes(r.v))return n;this.i++;let o=this.binary(t+1),s=n;n=zs(r.v,s,o)}}unary(){if(this.isOp("!")){this.i++;let t=this.unary();return n=>!t(n)}if(this.isOp("-")){this.i++;let t=this.unary();return n=>-be(t(n))}if(this.isOp("+")){this.i++;let t=this.unary();return n=>be(t(n))}return this.postfix()}postfix(){let t=this.primary();for(;;)if(this.isOp(".")){this.i++;let n=this.next();if(n.t!=="id")throw new SyntaxError('Expected a name after "."');let r=t;t=o=>Kr(r(o),n.v)}else if(this.isOp("[")){this.i++;let n=this.ternary();this.expect("]");let r=t;t=o=>Kr(r(o),n(o))}else return t}args(){let t=[];if(this.expect("("),!this.isOp(")"))do t.push(this.ternary());while(this.isOp(",")&&this.next());return this.expect(")"),t}primary(){let t=this.next();if(t.t==="num"||t.t==="str"){let r=t.v;return()=>r}if(t.t==="op"&&t.v==="("){let r=this.ternary();return this.expect(")"),r}if(t.t!=="id")throw new SyntaxError("Unexpected end of expression");let n=t.v;if(n==="true")return()=>!0;if(n==="false")return()=>!1;if(n==="null"||n==="undefined")return()=>null;if(this.isOp("(")){let r=this.args();if(Object.prototype.hasOwnProperty.call(Xr,n)){let s=Xr[n],[a,c]=r,i=new WeakMap;return f=>{let p=_r(f,c?.(f)),b=i.get(p);if(b&&b.gen===jt&&b.len===p.length)return b.value;let l=s(Os(f,p,a));return i.set(p,{gen:jt,len:p.length,value:l}),l}}if(n==="runningSum"){let[s,a]=r,c=new WeakMap;return i=>{let f=_r(i,a?.(i)??"report"),p=c.get(f);if(!p||p.gen!==jt||p.len!==f.length){let b=new Map,l=0;f.forEach((u,d)=>{let h=be(s?s({...i,row:u,vars:{...i.vars,rowNum:d+1}}):0);l+=Number.isFinite(h)?h:0,b.set(u,l)}),p={gen:jt,len:f.length,sums:b,total:l},c.set(f,p)}return i.row&&p.sums.has(i.row)?p.sums.get(i.row):p.total}}let o=Object.prototype.hasOwnProperty.call(Fn,n)?Fn[n]:void 0;if(!o)throw new SyntaxError(`Unknown function ${n}()`);return s=>o(...r.map(a=>a(s)))}return r=>qs(r,n)}};At.LEVELS=[["??"],["||"],["&&"],["==","!=","===","!=="],["<","<=",">",">="],["+","-"],["*","/","%"]];var In=At;function qs(e,t){if(t==="row")return e.row;if(t==="rows")return e.rows;if(t==="allRows")return e.allRows;if(t==="params")return e.params;if(t==="data")return e.data;if(Object.prototype.hasOwnProperty.call(e.vars,t))return e.vars[t];if(e.row&&Object.prototype.hasOwnProperty.call(e.row,t))return e.row[t];if(Object.prototype.hasOwnProperty.call(e.data,t))return e.data[t]}function zs(e,t,n){switch(e){case"??":return r=>t(r)??n(r);case"||":return r=>t(r)||n(r);case"&&":return r=>t(r)&&n(r);case"==":case"===":return r=>Yr(t(r),n(r));case"!=":case"!==":return r=>!Yr(t(r),n(r));case"<":return r=>Zt(t(r),n(r))<0;case"<=":return r=>Zt(t(r),n(r))<=0;case">":return r=>Zt(t(r),n(r))>0;case">=":return r=>Zt(t(r),n(r))>=0;case"+":return r=>{let o=t(r),s=n(r);return typeof o=="string"||typeof s=="string"?`${o??""}${s??""}`:be(o)+be(s)};case"-":return r=>be(t(r))-be(n(r));case"*":return r=>be(t(r))*be(n(r));case"/":return r=>{let o=be(n(r));return o===0?0:be(t(r))/o};case"%":return r=>be(t(r))%be(n(r))}throw new SyntaxError(e)}function Yr(e,t){return e instanceof Date||t instanceof Date?Pe(e)?.getTime()===Pe(t)?.getTime():typeof e=="number"||typeof t=="number"?e!=null&&t!=null&&be(e)===be(t):(e??null)===(t??null)}function Zt(e,t){return e instanceof Date||t instanceof Date?(Pe(e)?.getTime()??0)-(Pe(t)?.getTime()??0):typeof e=="string"&&typeof t=="string"?e<t?-1:e>t?1:0:be(e)-be(t)}var Qt=new Map;function Ne(e){let t=Qt.get(e);return t||(t=new In(Ns(e)).parse(),Qt.size>5e3&&Qt.clear(),Qt.set(e,t)),t}function Me(e,t){try{return Ne(e)(t)}catch(n){return`#ERR ${n.message}`}}function Bn(e){try{return Ne(e),null}catch(t){return t.message}}function Ge(e,t,n){if(!e.includes("{"))return e.replace(/}}/g,"}");let r="",o=0;for(;o<e.length;){let s=e[o];if(s==="{"&&e[o+1]==="{"){r+="{",o+=2;continue}if(s==="}"&&e[o+1]==="}"){r+="}",o+=2;continue}if(s!=="{"){r+=s,o++;continue}let a=Us(e,o+1);if(a<0){r+=e.slice(o);break}let{expr:c,format:i}=Gs(e.slice(o+1,a)),f=Me(c,t);r+=ve(f,i,n),o=a+1}return r}function Us(e,t){let n=null,r=0;for(let o=t;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s===n&&(n=null);continue}if(s==='"'||s==="'")n=s;else if(s==="{")r++;else if(s==="}"){if(r===0)return o;r--}}return-1}function Gs(e){let t=null,n=0,r=0;for(let o=0;o<e.length;o++){let s=e[o];if(t){s==="\\"?o++:s===t&&(t=null);continue}if(s==='"'||s==="'")t=s;else if(s==="("||s==="[")n++;else if(s===")"||s==="]")n--;else if(s==="?"&&n===0&&e[o+1]!=="?"&&e[o-1]!=="?")r++;else if(s===":"&&n===0){if(r>0){r--;continue}return{expr:e.slice(0,o).trim(),format:e.slice(o+1)}}}return{expr:e.trim()}}var Zr=(e,t,n)=>!e||e==="all"||e==="first"&&t===0||e==="last"&&t===n-1||e==="odd"&&t%2===0||e==="even"&&t%2===1,to="Nanum Gothic";function Nn(e,t,n,r,o){let s={family:to,size:r,bold:o.bold,italic:!1},a=e.split(`
|
|
5
|
+
`),c=r*$e*1.2,i=a.map(u=>o.measure.width(u,s)),f=Math.max(...i,1),p=a.length*c,b=t-f/2,l=n-p/2;return{kind:"text",x:b,y:l,w:f,h:p,font:s,color:o.color,align:"center",valign:"middle",text:e,lines:a.map((u,d)=>({text:u,x:t-i[d]/2,y:l+d*c+c*.78,width:i[d]})),rotate:o.angle,opacity:o.opacity,source:{band:"watermark"}}}function Ws(e,t,n,r,o){let s=e.text?Ge(e.text,n,o):"",a=e.opacity??.12,c=e.angle??-35,i=e.color??"#808080",f=[];if(e.repeat){let l=Math.max(5,Number(e.gap)||45),u=e.fontSize??14,d=e.imageWidth??30,h=0;for(let $=l/2;$<t.height+l/2;$+=l*.7,h++)for(let x=(h%2?l/2:0)+l/4;x<t.width+l/2;x+=l)e.image&&f.push({kind:"image",x:x-d/2,y:$-d/2,w:d,h:d,src:e.image,fit:"contain",opacity:a,rotate:c,source:{band:"watermark"}}),s&&f.push(Nn(s,x,$+(e.image?d/2+u*$e:0),u,{color:i,opacity:a,angle:c,bold:!!e.bold,measure:r}));return f}let p=t.width/2,b=t.height/2;if(e.image){let l=e.imageWidth??80;f.push({kind:"image",x:p-l/2,y:b-l/2,w:l,h:l,src:e.image,fit:"contain",opacity:a,rotate:c,source:{band:"watermark"}})}if(s){let l=e.fontSize??60,u=Math.hypot(t.width,t.height)*.75,d={family:to,size:l,bold:e.bold??!0,italic:!1},h=Math.max(...s.split(`
|
|
6
|
+
`).map($=>r.width($,d)));h>u&&(l*=u/h),f.push(Nn(s,p,b,l,{color:i,opacity:a,angle:c,bold:e.bold??!0,measure:r}))}return f}function Ks(e,t,n){let r=.5523*n;return["M",e+n,t,"C",e+n,t+r,e+r,t+n,e,t+n,"C",e-r,t+n,e-n,t+r,e-n,t,"C",e-n,t-r,e-r,t-n,e,t-n,"C",e+r,t-n,e+n,t-r,e+n,t,"Z"]}function Qr(e,t,n,r){let o=n-r,s=.5523*o;return[...Ks(e,t,n),"M",e+o,t,"C",e+o,t-s,e+s,t-o,e,t-o,"C",e-s,t-o,e-o,t-s,e-o,t,"C",e-o,t+s,e-s,t+o,e,t+o,"C",e+s,t+o,e+o,t+s,e+o,t,"Z"]}function _s(e,t,n,r,o){return["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z","M",e+o,t+o,"L",e+o,t+r-o,"L",e+n-o,t+r-o,"L",e+n-o,t+o,"Z"]}var Xs=(e,t,n)=>{let r=[],o=0;for(let s of e){if(typeof s=="string"){r.push(s),o=0;continue}r.push(s+(o++%2===0?t:n))}return r};function Vs(e,t,n,r,o){let s=e.w??32,a=e.h??(e.shape==="rect"?20:s),c=e.x??t.width-t.margins[1]-s-4,i=e.y??t.height-t.margins[2]-a-12,f=e.depth??.3,p=e.color??"#e8e8e8",b=e.opacity??.9,l="#ffffff",u="#9a9a9a",d=[],h=[],$=c+s/2,x=i+a/2,v=e.shape??"circle";if(v==="circle"){let T=Math.min(s,a)/2;d.push(Qr($,x,T,Math.max(.6,T*.06))),d.push(Qr($,x,T*.68,Math.max(.35,T*.03)))}else v==="rect"&&d.push(_s(c,i,s,a,Math.max(.6,Math.min(s,a)*.05)));let M=e.text?Ge(e.text,n,o):"",j=e.centerText?Ge(e.centerText,n,o):"";if(v==="circle"&&M){let T=Math.min(s,a)/2,I=e.fontSize??Math.max(5,T*.62),V=T*.84,oe=[...M],z=Math.min(Math.PI*1.7,oe.length*(I*$e*1.05/V));oe.forEach((ae,ke)=>{let U=-Math.PI/2-z/2+z*(ke+.5)/oe.length;h.push({text:ae,cx:$+V*Math.cos(U),cy:x+V*Math.sin(U),size:I,angle:U*180/Math.PI+90})}),j&&h.push({text:j,cx:$,cy:x,size:e.fontSize?e.fontSize*1.3:Math.max(6,T*.75)})}else if(M||j){let T=[M,j].filter(Boolean).join(`
|
|
7
|
+
`),I=e.fontSize??Math.max(6,Math.min(a*.45,s*.8/Math.max(1,Math.max(...T.split(`
|
|
8
|
+
`).map(V=>[...V].length)))/$e));h.push({text:T,cx:$,cy:x,size:I})}let y=[],A=(T,I,V,oe)=>{for(let z of d)y.push({kind:"path",d:Xs(z,T,I),fill:V,opacity:oe,source:{band:"watermark"}});for(let z of h)y.push(Nn(z.text,z.cx+T,z.cy+I,z.size,{color:V,opacity:oe,angle:z.angle??0,bold:!0,measure:r}))};return e.image&&y.push({kind:"image",x:v==="none"?c:c+s*.2,y:v==="none"?i:i+a*.2,w:v==="none"?s:s*.6,h:v==="none"?a:a*.6,src:e.image,fit:"contain",emboss:!0,opacity:b,source:{band:"watermark"}}),A(-f,-f,l,b),A(f,f,u,b*.55),A(0,0,p,b),y}function no(e,t,n,r,o){let s=t.watermark===void 0?[]:(Array.isArray(t.watermark)?t.watermark:[t.watermark]).map(c=>typeof c=="string"?{text:c}:c),a=t.emboss===void 0?[]:Array.isArray(t.emboss)?t.emboss:[t.emboss];!s.length&&!a.length||e.forEach((c,i)=>{let f=r(c,i),p=[],b=[];for(let l of s)!Zr(l.pages,i,e.length)||!l.text&&!l.image||(l.layer==="front"?b:p).push(...Ws(l,c,f,o,t.locale));for(let l of a)Zr(l.pages,i,e.length)&&b.push(...Vs(l,{...c,margins:n.margins},f,o,t.locale));c.items=[...p,...c.items,...b]})}var eo=new Map;function Ct(e){let t=eo.get(e);return t||(t=(async()=>{if(typeof document>"u"||typeof Image>"u")return e;let n=new Image;n.crossOrigin="anonymous",n.src=e,await n.decode();let o=Math.min(1,600/Math.max(n.naturalWidth,n.naturalHeight)),s=Math.max(1,Math.round(n.naturalWidth*o)),a=Math.max(1,Math.round(n.naturalHeight*o)),c=document.createElement("canvas");c.width=s,c.height=a;let i=c.getContext("2d");if(!i)return e;i.drawImage(n,0,0,s,a);let{data:f}=i.getImageData(0,0,s,a),p=new Float32Array(s*a);for(let u=0;u<s*a;u++){let d=(f[u*4]*.299+f[u*4+1]*.587+f[u*4+2]*.114)/255;p[u]=(1-d)*(f[u*4+3]/255)}let b=i.createImageData(s,a),l=Math.max(1,Math.round(Math.max(s,a)/200));for(let u=0;u<a;u++)for(let d=0;d<s;d++){let h=u*s+d,$=p[Math.max(0,u-l)*s+Math.max(0,d-l)],v=(p[Math.min(a-1,u+l)*s+Math.min(s-1,d+l)]-$)*2.2,M=p[h]>.15,j=Math.max(0,Math.min(255,232+v*110)),y=Math.min(1,Math.abs(v)*1.6+(M?.35:0));b.data[h*4]=b.data[h*4+1]=b.data[h*4+2]=j,b.data[h*4+3]=Math.round(y*255)}return i.putImageData(b,0,0),c.toDataURL("image/png")})().catch(()=>e),eo.set(e,t),t)}var Re=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),re=e=>(Math.round(e*1e3)/1e3).toString();function Hn(e,t){return e==="dashed"?` stroke-dasharray="${re(t*3)} ${re(t*2)}"`:e==="dotted"?` stroke-dasharray="0 ${re(t*2)}" stroke-linecap="round"`:""}function en(e,t,n,r,o,s){if(o.style==="double"){let a=o.width/3,c=o.width/2-a/2,[i,f]=s?[0,c]:[c,0];return`<line x1="${re(e-i)}" y1="${re(t-f)}" x2="${re(n-i)}" y2="${re(r-f)}" stroke="${Re(o.color)}" stroke-width="${re(a)}"/><line x1="${re(e+i)}" y1="${re(t+f)}" x2="${re(n+i)}" y2="${re(r+f)}" stroke="${Re(o.color)}" stroke-width="${re(a)}"/>`}return`<line x1="${re(e)}" y1="${re(t)}" x2="${re(n)}" y2="${re(r)}" stroke="${Re(o.color)}" stroke-width="${re(o.width)}"${Hn(o.style,o.width)}/>`}function Ys(e,t,n,r,o){let s="";return o.top&&(s+=en(e,t,e+n,t,o.top,!0)),o.bottom&&(s+=en(e,t+r,e+n,t+r,o.bottom,!0)),o.left&&(s+=en(e,t,e,t+r,o.left,!1)),o.right&&(s+=en(e+n,t,e+n,t+r,o.right,!1)),s}function Js(e){return e.map(t=>typeof t=="number"?re(t):t).join(" ")}var gt=e=>e!==void 0&&e<1?` opacity="${re(e)}"`:"",ro=e=>{let t=e.source;return t?.elementId?` data-fr-id="${Re(t.elementId)}" data-fr-kind="${e.kind}"${t.row!==void 0?` data-fr-row="${t.row}"`:""}`:""};function Zs(e,t){let n=e.font.size*$e,r=`${$n(e.font.family)}, ${kn}`.replace(/"/g,"'"),o=`font-family="${Re(r)}" font-size="${re(n)}"${e.font.bold?' font-weight="bold"':""}${e.font.italic?' font-style="italic"':""} fill="${Re(e.color)}"`+(e.letterSpacing?` letter-spacing="${re(e.letterSpacing)}"`:""),s="";for(let p of e.lines)p.text&&(s+=`<text x="${re(p.x)}" y="${re(p.y)}" xml:space="preserve">${Re(p.text)}</text>`,e.underline&&(s+=`<line x1="${re(p.x)}" y1="${re(p.y+n*.12)}" x2="${re(p.x+p.width)}" y2="${re(p.y+n*.12)}" stroke="${Re(e.color)}" stroke-width="${re(n*.06)}"/>`),e.strike&&(s+=`<line x1="${re(p.x)}" y1="${re(p.y-n*.3)}" x2="${re(p.x+p.width)}" y2="${re(p.y-n*.3)}" stroke="${Re(e.color)}" stroke-width="${re(n*.06)}"/>`));let a=e.source?.band!=="watermark"&&e.lines.some(p=>p.x<e.x-.05||p.x+p.width>e.x+e.w+.05||p.y-n*.8<e.y-.05||p.y+n*.2>e.y+e.h+.05),c=e.rotate?` transform="rotate(${re(e.rotate)} ${re(e.x+e.w/2)} ${re(e.y+e.h/2)})"`:"",i=ro(e)+(e.overflow&&e.source?.band!=="watermark"?' data-fr-overflow="1"':"");if(!a)return{defs:"",body:`<g ${o}${i}${c}${gt(e.opacity)}>${s}</g>`};let f=t();return{defs:`<clipPath id="${f}"><rect x="${re(e.x)}" y="${re(e.y)}" width="${re(e.w)}" height="${re(e.h)}"/></clipPath>`,body:`<g ${o}${i} clip-path="url(#${f})"${c}${gt(e.opacity)}>${s}</g>`}}function Qs(e,t){switch(e.kind){case"box":{let n="",r=gt(e.opacity);if(e.radius||e.stroke){let o=e.stroke?.width??0;n+=`<rect x="${re(e.x)}" y="${re(e.y)}" width="${re(e.w)}" height="${re(e.h)}"${e.radius?` rx="${re(e.radius)}"`:""} fill="${e.fill?Re(e.fill):"none"}"`+(o?` stroke="${Re(e.stroke.color)}" stroke-width="${re(o)}"${Hn(e.stroke.dash,o)}`:"")+`${r}/>`}else e.fill&&(n+=`<rect x="${re(e.x)}" y="${re(e.y)}" width="${re(e.w)}" height="${re(e.h)}" fill="${Re(e.fill)}"${r}/>`);return e.border&&(n+=Ys(e.x,e.y,e.w,e.h,e.border)),{defs:"",body:n}}case"line":return{defs:"",body:`<line x1="${re(e.x1)}" y1="${re(e.y1)}" x2="${re(e.x2)}" y2="${re(e.y2)}" stroke="${Re(e.color)}" stroke-width="${re(e.width)}"${Hn(e.dash,e.width)}${gt(e.opacity)}/>`};case"path":return{defs:"",body:`<path d="${Js(e.d)}" fill="${e.fill?Re(e.fill):"none"}"${e.stroke?` stroke="${Re(e.stroke)}" stroke-width="${re(e.strokeWidth??.2)}" stroke-linejoin="round"`:""}${gt(e.opacity)}/>`};case"image":{let n=e.fit==="fill"?"none":e.fit==="cover"?"xMidYMid slice":"xMidYMid meet",r=e.rotate?` transform="rotate(${re(e.rotate)} ${re(e.x+e.w/2)} ${re(e.y+e.h/2)})"`:"",o="",s="";if(e.fit==="cover"){let a=t();o=`<clipPath id="${a}"><rect x="${re(e.x)}" y="${re(e.y)}" width="${re(e.w)}" height="${re(e.h)}"/></clipPath>`,s=` clip-path="url(#${a})"`}return{defs:o,body:`<image x="${re(e.x)}" y="${re(e.y)}" width="${re(e.w)}" height="${re(e.h)}" preserveAspectRatio="${n}" href="${Re(e.src)}"${e.emboss?' data-emboss="1"':""}${s}${r}${gt(e.opacity)}/>`}}case"text":return Zs(e,t)}}var ea=0;function Ke(e,t={}){let n=`fr${(ea++).toString(36)}-`,r=0,o=()=>`${n}${r++}`,s="",a="";for(let i of e.items){let f=Qs(i,o);s+=f.defs;let p=i.kind==="text"?"":ro(i);a+=!p||!f.body?f.body:f.body.indexOf("<",1)<0?f.body.replace(/^<(\w+)/,(b,l)=>`<${l}${p}`):`<g${p}>${f.body}</g>`}return`<svg xmlns="http://www.w3.org/2000/svg" ${t.scale?`width="${re(e.width*t.scale)}" height="${re(e.height*t.scale)}"`:`width="${re(e.width)}mm" height="${re(e.height)}mm"`} viewBox="0 0 ${re(e.width)} ${re(e.height)}"${t.className?` class="${t.className}"`:""} text-rendering="geometricPrecision">${s?`<defs>${s}</defs>`:""}<rect width="100%" height="100%" fill="#fff"/>${a}</svg>`}function bt(e){e.querySelectorAll("image[data-emboss]").forEach(t=>{let n=t.getAttribute("href");n&&(t.removeAttribute("data-emboss"),t.setAttribute("visibility","hidden"),Ct(n).then(r=>{t.setAttribute("href",r),t.removeAttribute("visibility")}))})}function ta(e,t,n={}){e.innerHTML=Ke(t,{...n,className:"fr-page-svg"}),bt(e)}var na=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function oo(e){let t=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),n=e.length*8,r=new Uint8Array(e.length+9+63>>6<<6);r.set(e),r[e.length]=128;let o=new DataView(r.buffer);o.setUint32(r.length-8,Math.floor(n/4294967296)),o.setUint32(r.length-4,n>>>0);let s=new Uint32Array(64);for(let a=0;a<r.length;a+=64){for(let h=0;h<16;h++)s[h]=o.getUint32(a+h*4);for(let h=16;h<64;h++){let $=s[h-15],x=s[h-2],v=($>>>7|$<<25)^($>>>18|$<<14)^$>>>3,M=(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10;s[h]=s[h-16]+v+s[h-7]+M>>>0}let[c,i,f,p,b,l,u,d]=t;for(let h=0;h<64;h++){let $=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7),x=b&l^~b&u,v=d+$+x+na[h]+s[h]>>>0,M=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),j=c&i^c&f^i&f,y=M+j>>>0;d=u,u=l,l=b,b=p+v>>>0,p=f,f=i,i=c,c=v+y>>>0}t[0]+=c,t[1]+=i,t[2]+=f,t[3]+=p,t[4]+=b,t[5]+=l,t[6]+=u,t[7]+=d}return[...t].map(a=>a.toString(16).padStart(8,"0")).join("")}function so(e){return e.map(t=>t.items.filter(n=>n.kind==="text"&&n.source?.band!=="watermark"&&!n.source?.fingerprint).map(n=>n.kind==="text"?n.text.replace(/\s+/g," ").trim():"").filter(Boolean).join(`
|
|
9
9
|
`)).join(`
|
|
10
10
|
\f
|
|
11
|
-
`)}function jt(e){return no(new TextEncoder().encode(ro(e)))}var Qs="212222 222122 222221 121223 121322 131222 122213 122312 132212 221213 221312 231212 112232 122132 122231 113222 123122 123221 223211 221132 221231 213212 223112 312131 311222 321122 321221 312212 322112 322211 212123 212321 232121 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 213131 311123 311321 331121 312113 312311 332111 314111 221411 431111 111224 111422 121124 121421 141122 141221 112214 112412 122114 122411 142112 142211 241211 221114 413111 241112 134111 111242 121142 121241 114212 124112 124211 411212 421112 421211 212141 214121 412121 111143 111341 131141 114113 114311 411113 411311 113141 114131 311141 411131 211412 211214 211232 2331112".split(" "),ea=103,oo=104,ta=105,na=106,ra=99,oa=100,sa=101;function Hn(e,t){let n=0;for(;t+n<e.length&&e.charCodeAt(t+n)>=48&&e.charCodeAt(t+n)<=57;)n++;return n}function so(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n<32)return"A";if(n>=96)return"B"}return"B"}function Un(e){for(let l=0;l<e.length;l++)if(e.charCodeAt(l)>127)throw new Error(`Code128: unsupported character at ${l}`);let t=[],n=null,r=l=>{n!==l&&(n===null?t.push(l==="A"?ea:l==="B"?oo:ta):t.push(l==="A"?sa:l==="B"?oa:ra),n=l)},o=0;for(;o<e.length;){let l=Hn(e,o);if(l>=4){l%2&&((n===null||n==="C")&&r(so(e,o)),t.push(e.charCodeAt(o++)-32)),r("C");let p=o+(l-l%2);for(;o<p;o+=2)t.push(+e.substr(o,2));continue}let i=e.charCodeAt(o);n===null||n==="C"?r(so(e,o)):i<32&&n==="B"?r("A"):i>=96&&n==="A"&&r("B"),t.push(n==="A"&&i<32?i+64:i-32),o++}n===null&&t.push(oo);let s=t[0];for(let l=1;l<t.length;l++)s+=t[l]*l;t.push(s%103,na);let a=[];for(let l of t)for(let i of Qs[l])a.push(+i);return a}var ao=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],aa=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLL","LGLGGL","LGGLGL"],io=e=>e.replace(/./g,t=>t==="0"?"1":"0");function ia(e){if(!/^\d{12}$/.test(e))throw new Error("EAN-13: expected 12 digits");let t=0;for(let n=0;n<12;n++)t+=+e[n]*(n%2?3:1);return(10-t%10)%10}function Gn(e){if(!/^\d{12,13}$/.test(e))throw new Error("EAN-13: expected 12 or 13 digits");let t=ia(e.slice(0,12));if(e.length===13&&+e[12]!==t)throw new Error("EAN-13: invalid check digit");let n=e.slice(0,12)+t,r="101",o=aa[+n[0]];for(let l=1;l<=6;l++){let i=ao[+n[l]];r+=o[l-1]==="L"?i:io(i).split("").reverse().join("")}r+="01010";for(let l=7;l<=12;l++)r+=io(ao[+n[l]]);r+="101";let s=[],a=1;for(let l=1;l<=r.length;l++)r[l]===r[l-1]?a++:(s.push(a),a=1);return s}var la={L:1,M:0,Q:3,H:2},po={L:[0,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],M:[0,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],Q:[0,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],H:[0,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]},mo={L:[0,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],M:[0,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],Q:[0,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],H:[0,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]},Qt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";function ca(e){if(e===1)return[];let t=Math.floor(e/7)+2,n=e*4+17,r=Math.floor((e*8+t*3+5)/(t*4-4))*2,o=[6];for(let s=n-7;o.length<t;s-=r)o.splice(1,0,s);return o}function ho(e){let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function lo(e,t){return Math.floor(ho(e)/8)-po[t][e]*mo[t][e]}var tn=new Uint8Array(512),On=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)tn[t]=e,On[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)tn[t]=tn[t-255]})();var qn=(e,t)=>e&&t?tn[On[e]+On[t]]:0;function ua(e){let t=new Array(e).fill(0);t[e-1]=1;let n=1;for(let r=0;r<e;r++){for(let o=0;o<e;o++)t[o]=qn(t[o],n),o+1<e&&(t[o]^=t[o+1]);n=qn(n,2)}return t}function fa(e,t){let n=new Array(t.length).fill(0);for(let r of e){let o=r^n.shift();n.push(0);for(let s=0;s<t.length;s++)n[s]^=qn(t[s],o)}return n}var nn=class{constructor(){this.bits=[]}put(t,n){for(let r=n-1;r>=0;r--)this.bits.push(t>>>r&1)}};function da(e){let t=new nn;if(/^\d*$/.test(e)){for(let r=0;r<e.length;r+=3){let o=e.substr(r,3);t.put(+o,o.length*3+1)}return{mode:1,count:e.length,data:t,ccBits:[10,12,14]}}if([...e].every(r=>Qt.includes(r))){for(let r=0;r<e.length;r+=2)r+1<e.length?t.put(Qt.indexOf(e[r])*45+Qt.indexOf(e[r+1]),11):t.put(Qt.indexOf(e[r]),6);return{mode:2,count:e.length,data:t,ccBits:[9,11,13]}}let n=new TextEncoder().encode(e);for(let r of n)t.put(r,8);return{mode:4,count:n.length,data:t,ccBits:[8,16,16]}}var co=(e,t)=>e.ccBits[t<=9?0:t<=26?1:2];function pa(e,t,n){let r=mo[n][t],o=po[n][t],s=Math.floor(ho(t)/8),a=r-s%r,l=Math.floor(s/r),i=ua(o),p=[];for(let c=0,f=0;c<r;c++){let u=l-o+(c<a?0:1),y=e.slice(f,f+u);f+=u,p.push({data:y,ec:fa(y,i)})}let d=[],b=l-o+1;for(let c=0;c<b;c++)for(let f of p)c<f.data.length&&d.push(f.data[c]);for(let c=0;c<o;c++)for(let f of p)d.push(f.ec[c]);return d}function ma(e,t,n){switch(e){case 0:return(t+n)%2===0;case 1:return n%2===0;case 2:return t%3===0;case 3:return(t+n)%3===0;case 4:return(Math.floor(t/3)+Math.floor(n/2))%2===0;case 5:return t*n%2+t*n%3===0;case 6:return(t*n%2+t*n%3)%2===0;default:return((t+n)%2+t*n%3)%2===0}}function ha(e){let t=e.length,n=0,r=[1,0,1,1,1,0,1,0,0,0,0],o=[0,0,0,0,1,0,1,1,1,0,1];for(let l=0;l<2;l++){let i=(p,d)=>l?e[d][p]:e[p][d];for(let p=0;p<t;p++){let d=1;for(let c=1;c<=t;c++)c<t&&i(p,c)===i(p,c-1)?d++:(d>=5&&(n+=d-2),d=1);let b=c=>c>=0&&c<t&&i(p,c)?1:0;for(let c=-4;c+11<=t+4;c++){let f=!0,u=!0;for(let y=0;y<11&&(f||u);y++){let R=b(c+y);R!==r[y]&&(f=!1),R!==o[y]&&(u=!1)}f&&(n+=40),u&&(n+=40)}}}for(let l=0;l<t-1;l++)for(let i=0;i<t-1;i++){let p=e[l][i];p===e[l][i+1]&&p===e[l+1][i]&&p===e[l+1][i+1]&&(n+=3)}let s=0;for(let l of e)for(let i of l)i&&s++;let a=t*t;return n+=(Math.ceil(Math.abs(s*20-a*10)/a)-1)*10,n}function ga(e,t){let n=la[e]<<3|t,r=n;for(let o=0;o<10;o++)r=r<<1^(r>>>9)*1335;return(n<<10|r)^21522}function ba(e){let t=e;for(let n=0;n<12;n++)t=t<<1^(t>>>11)*7973;return e<<12|t}function Wn(e,t="M"){let n=da(e),r=1;for(;r<=40;r++){let v=co(n,r);if(n.count<1<<v&&4+v+n.data.bits.length<=lo(r,t)*8)break}if(r>40)throw new Error("QR: data too long");let o=lo(r,t)*8,s=new nn;s.put(n.mode,4),s.put(n.count,co(n,r)),s.bits.push(...n.data.bits),s.put(0,Math.min(4,o-s.bits.length)),s.put(0,(8-s.bits.length%8)%8);for(let v=236;s.bits.length<o;v^=253)s.put(v,8);let a=[];for(let v=0;v<s.bits.length;v+=8){let T=0;for(let x=0;x<8;x++)T=T<<1|s.bits[v+x];a.push(T)}let l=pa(a,r,t),i=r*4+17,p=Array.from({length:i},()=>new Array(i).fill(!1)),d=Array.from({length:i},()=>new Array(i).fill(!1)),b=(v,T,x)=>{p[T][v]=x,d[T][v]=!0};for(let v=0;v<i;v++)b(6,v,v%2===0),b(v,6,v%2===0);for(let[v,T]of[[3,3],[i-4,3],[3,i-4]])for(let x=-4;x<=4;x++)for(let j=-4;j<=4;j++){let C=v+j,D=T+x;if(C<0||D<0||C>=i||D>=i)continue;let Q=Math.max(Math.abs(j),Math.abs(x));b(C,D,Q!==2&&Q!==4)}let c=ca(r);for(let v=0;v<c.length;v++)for(let T=0;T<c.length;T++)if(!(v===0&&T===0||v===0&&T===c.length-1||v===c.length-1&&T===0))for(let x=-2;x<=2;x++)for(let j=-2;j<=2;j++)b(c[v]+j,c[T]+x,Math.max(Math.abs(j),Math.abs(x))!==1);let f=v=>{let T=ga(t,v),x=j=>(T>>>j&1)===1;for(let j=0;j<=5;j++)b(8,j,x(j));b(8,7,x(6)),b(8,8,x(7)),b(7,8,x(8));for(let j=9;j<15;j++)b(14-j,8,x(j));for(let j=0;j<8;j++)b(i-1-j,8,x(j));for(let j=8;j<15;j++)b(8,i-15+j,x(j));b(8,i-8,!0)};if(f(0),r>=7){let v=ba(r);for(let T=0;T<18;T++){let x=(v>>>T&1)===1,j=i-11+T%3,C=Math.floor(T/3);b(j,C,x),b(C,j,x)}}let u=0,y=l.length*8;for(let v=i-1;v>=1;v-=2){v===6&&(v=5);let T=(v+1&2)===0;for(let x=0;x<i;x++){let j=T?i-1-x:x;for(let C=0;C<2;C++){let D=v-C;d[j][D]||u>=y||(p[j][D]=(l[u>>>3]>>>7-(u&7)&1)===1,u++)}}}let R=v=>{for(let T=0;T<i;T++)for(let x=0;x<i;x++)!d[T][x]&&ma(v,x,T)&&(p[T][x]=!p[T][x])},M=0,$=1/0;for(let v=0;v<8;v++){R(v),f(v);let T=ha(p);T<$&&($=T,M=v),R(v)}return R(M),f(M),p}var ya=["qn0tbouluqjgt9sukvl30qhol1ga10l0oa0gln0qrotduljgqpstcvb30lhob1gbn0lroqtubjglpsqsvbholoubroltubpslsvbtuuntqbgt5suivkj0q9ot4ukhgq8s910kgoq8e90gkgc908krgqdst6v9j0kpoqcu9hgkosqcf9gokoe9rgktsqev9poksu9osksf9tskuv9su9sfkb0q5ot2uk9gq4st2f8h0k8oq4e8ggk8c8g88g48r0kdoq6u8pgkcsq6f8ookce8oc8o68tokeu8sskef8se8uuk5gq2st1f890k4oq2e88gk4cq27888k46884k438dgk6sq3f8cok6e8cck678c68c3k7f8e7850k2oq1e84gk2cq17848k26844k2384286o86c86682gq0nk16k13821pbgslsuavij0p9oskuihgp8sskf510igo50girgpdssmv5j0ipopcu5hgios5go5gc5rgitspev5poisu5os5oe5tsiuv5su5uvrb0tlouqur9gtksuqfmh0r8otkemggr8ctk7mg8r86ib0p5osiumr0i9gp4ssifmpgrcstmfdh04ggi8cp47dggmocdg84r0idop6udr04pgicsp6fdpgmssrefdoo4ocdoc4toieudto4ssiefdssmufdse4uuduu4ufdufr5gtisupfm90r4otiem8gr4cti7m88r46m84m82i5gp2sshfmdgi4op2ecp048gr6ep27cog488i46co8mc6i434824dgi6sp3fctg4coi6ecsomeei67csc4c64c34esi7fcus4eecue4e7cu7cvfm50r2othem4gr2cth7m48r26m44r23m42m41450i2op1ecd044gi2cp17ccgm6cr37cc8444i23cc4m63cc246oi3eceo46ci37cecm77ce6463ce3cfecf7m2gr1ctgnm28r16m24r13m22m2142gi1cp0nc6g428i16c68m36i13c64422c6242143cc7cc76c73r0mr0jm11i0m414c34c32c31hb0olosauh9goks2h0h8ooke2ggh8c2g82g42r0hdoomu2pghcsomf2oohce2oc2o62toheu2sshef2se2uu2ufplgsqsudfj90pkosqej8gpkcsq7j88pk6j84pk3h5goiss9fjdgh4ooie6p028gpmeoi76ogjcch466o82846o42dgh6sojf6tg2copnf6sojeeh676sc2c66s62esh7f6us2ee6ue2e72ff6vfrl0tqouterkgtqcut7rk8tq6rk4tq3rk2j50piospend0j4gtresp7ncgrmctr7nc8j44pi3nc4rm3j41250h2oohe6d024gh2coh7et06cgj6cpj7esgnecrn7h23es86c4j63es424126oh3e6eo26ch37euo6ecj77eucnf72636e327e6fe277eve6f7rigtpcusnri8tp6ri4tp3ri2ri1j2gphcsonn6gj28tpnn68rj6ph3n64j22n62j21n6122gh1cogn66g228h16eeg668j36h13ee8n76222ee466222166123ch1n67c236efc676233ef667323nefnrh8tomrh4tojrh2rh1j18pgmn38j14pgjn34rhjn32j11n31218h0m638214h0je78634j1je74n3j211e72631e7163me7me7jtobrghpgbj0ij0h20k61ke3k20h61hglg190gko18ggkcoa7188gk6184gk31dggmsobf1cogme1ccgm71c61c31esgnf1ee1e71ffhl0oqosdehkgoqchk8oq6hk4oq3hk2150gioo9e3d014goreo973cghmcor73c8144gi33c4hm314116ogje3eo16cgj73echn73e616317e3fe1773f7pqgstcuenpq8st6pq4st3pq2pq1higopcjmghi8op6jm8pr6op3jm4hi2jm2hi1jm112gghc36g128opn7eg368hj6gh37e8jn61227e436212136113cghn37c1367fc3761337f637313n37n7fntt8uumtt4uujtt2tt1pp8ssmrr8ttmssjrr4ttjrr2pp1rr1hh8oomjj8hh4oojnn8jj4ppjnn4rrjhh1nn2jj1nn1118ggm338114ggj778334hhjff8774jjj111ff4nnj331ff211m33m11j77m33jffm77jffjtskuubtsitshpokssbrpktsrrpipohrphhgkoobjhkhginjkjhihghnjijhhnjh10kggb31khgr73k31i10hf7k73i31hf7i73hf7h31rf7rts9roqropjgqnhqnhp30q71qf3qf3p0l00kggac0k80k40k20mo0mc0m60m30ne0n7gqggq8od6gq4od3gq2gq10igg9c1mggrcg961m8gr61m4gr31m20i11m10jcg9n1ncgrn1n60j31n30jn1nnot8ot4ot2ot1gp8hr8otmocjhr4otjhr2gp1hr10h81j80h4g8j3n81j40h23n41j20h13n21j10hm1jm0hj3nm1jj3njsuksuisuhoskptksurptioshpthgokocbhpkosrjrkhpigohjrihphjrh0gkg8b1hkgor3jk1hi0gh7nk3ji1hh7ni3jh0gr1hr3jr7nruvauv9suatuqsu9tuposapsqos9rtqpsprtpgoahoqgo9jpqhopnrq","ulgvast90ukovaet8gukcva7t88uk6t84uk3t82tdgumsvbfqp0tcoumeqogtccum7qo8tc6qo4tc3qo2qtgtesunflp0qsoteelogqscte7lo8qs6lo4qs3lo2ltgqustffbp0lsoqueboglscqu7bo8ls6bo4ls3btglusqvfbsoluebsclu7bs6buslvfbuebu7t50uiov9et4guicv97t48ui6t44ui3t42t41qd0t6oujeqcgt6cuj7qc8t66qc4t63qc2qc1kt0qeot7eksgqect77ks8qe6ks4qe3ks2ks19t0kuoqfe9sgkucqf79s8ku69s4ku39s29uokve9uckv79u69u39ve9v7t2guhcv8nt28uh6t24uh3t22t21q6gt3cuhnq68t36q64t33q62q61kegq7ct3nke8q76ke4q73ke2ke18ugkfcq7n8u8kf68u4kf38u28u18vckfn8v68v38vnt18ugmt14ugjt12t11q38t1mq34t1jq32q31k78q3mk74q3jk72k718f8k7m8f4k7j8f28f18fm8fjt0kugbt0it0hq1kt0rq1iq1hk3kq1rk3ik3h87kk3r87i87ht0at09q0qq0pk1qk1psl0uaov5eskguacv57sk8ua6sk4ua3sk2sk1pd0smoubepcgsmcub7pc8sm6pc4sm3pc2pc1it0peosneisgpecsn7is8pe6is4pe3is2is15t0iuopfe5sgiucpf75s8iu65s4iu35s25uoive5uciv75u65u35ve5v7uqgvdcdfouq8vd6d7suq4vd3d3uuq2uq1sigu9cv4ntmgsi8vdntm8ur6u93tm4si2tm2si1tm1p6gsjcu9nregp68sj6re8tn6sj3re4p62re2p61re1iegp7csjnmugie8p76mu8rf6p73mu4ie2mu2ie1mu14ugifcp7ndug4u8if6du8mv6if3du44u2du24u14vcifndvc4v6dv64v3dv34vnup8vcmcnsup4vcjcjuup2chvup1sh8u8mtj8sh4u8jtj4upjtj2sh1tj1p38shmr78p34shjr74tjjr72p31r71i78p3mmf8i74p3jmf4r7jmf2i71mf14f8i7mcv84f4i7jcv4mfjcv24f1cv14fmcvm4fjcvjuokvcbcbuuoic9vuohsgku8bthkuorthisghthhp1ksgrr3kp1ir3ip1hr3hi3kp1rm7kr3rm7ii3hm7h47ki3rcfk47icfi47hcfh47rcfruoac5vuo9sgatgqsg9tgpp0qr1qp0pr1pi1qm3qi1pm3p43qc7q43pc7puo5sg5tgdp0dr0ti0tm1tsagu5cv2nsa8u56sa4u53sa2sa1omgsbcu5nom8sb6om4sb3om2om1hegoncsbnhe8on6he4on3he2he12ughfconn2u8hf62u4hf32u22u12vchfn2v62v32vnud8v6m6nsud4v6j6juud26hvud1s98u4msr8s94u4jsr4udjsr2s91sr1oj8s9mpn8oj4s9jpn4srjpn2oj1pn1h78ojmjf8h74ojjjf4pnjjf2h71jf12f8h7m6v82f4h7j6v4jfj6v22f16v12fm6vm2fj6vjvekenonbuveiejsn9vvehehuegvuckv6b6buutkvereru69vutiuchepvuths8ku4bspks8itrkutrs8htrisphtrhohks8rpjkohirnkpjiohhrnipjhrnhh3kohrj7kh3infkj7ih3hnfij7hnfh27kh3r6fk27ievk6fi27hevi6fhevh27r6frveaebsn5vve9e9ue8vuca65vusquc9edvusps8asoqs89tpqsoptppogqphqogprjqphprjph1qj3qh1pn7qj3pn7p23q67q23pefq67pefpve5e5ue4vuc5usds85sodtotogdpgtrhth0tj1tn3t21t63te7te2vs58u2ms54u2js52s51ob8s5mob4s5job2ob1gn8obmgn4objgn2gn11f8gnm1f4gnj1f21f11fm1fju6kv3b3buu6i39vu6hs4ku2bsdks4isdis4hsdho9ks4rorko9iorio9horhgjko9rhnkgjihnigjhhnh17kgjr3fk17i3fi17h3fh17r3frv7a7bsjlvv7979u78vu6a35vuequ697dvueps4ascqs49stqscpstpo8qopqo8pprqoppprpghqhjqghpjnqhjpjnp13q37q13p7fq37p7fpfbonluf9snkvf8uf8fv7575uvfdfdu74vfcvu65ueduuts45scdsstttto8dootpptrrtggthhtjjtnnt11t33t77tf5snivf4uf4f72vf6vf2uf2ff1fs2ks2is2ho5ks2ro5io5hgbko5rgbigbh0nkgbr0ni0nh0nru3a1lvu39s2as6qs29s6po4qodqo4podpg9qgrqg9pgrp0jq1nq0jp1npv3l3lu3kvu35u7ds25s6dseto4doctottg8tgpthrt0ht1jt3nt7lsjqv7ku7kf3iv7mvflonqufksnqffkefk77iufmu7iffmffisnpffiefi77hffjffhefh7fgno2qo2pg5qg5p0bq0bps3do2do6tg4tgdt09t0rt1qv3qu3qf7qsjtf7qe7q73pf7rffqontefqcnt7fq6fq37pefre7p7fr7fpcnsnfp6fp37onfpnfomfoj1tf3te3t77tcjun7t67t33sn7tn7sm7sj","lfgqnsaf0l7oqjua7gl3sqhva3ol1ua1svb8bfglnsvb4b7oljuvb2b3slhvvb1b1uun8vbmbnsun4vbjbjuun2bhvun1tf8unmtf4unjtf2tf1qv8tfmqv4tfjqv2qv1lv8qvmlv4qvjlv29f0knoqbu97gkjsq9v93okhu91skgv90uv9k9nokruv9i9jskpvv9h9hu9gvujkv9r9ruuji9pvujht7kujrt7it7hqfkt7rqfiqfhkvkqfrkvikvh8ngkbsq5v8jok9u8hsk8v8gu8gfv8q8rskdvv8p8pu8ovuhq8tvuhpt3qt3pq7qq7pkfqkfp8bok5u89sk4v88u88fv8d8du8cvugtt1tq3t85sk2v84u84f86v82u82f5f0inopbu57gijsp9v53oihu51sigv50uv5k5noiruv5i5jsipvv5h5hu5gvubkv5r5ruubi5pvubhsnkubrsnisnhpfksnrpfipfhivkpfriviivhmngrbstlvd70mjor9ud3gmhsr8vd1omgud0smgfd0e4ngibsp5vdng4joi9udjompui8vdhs4gudgu4gfdgfv4q4rsidvvdqv4pdrs4puvdpdpu4ovdovu9q4tvurqu9pdtvurpsjqtnqsjptnpp7qrfqp7prfpifqifpcn0mbor5ucjgm9sr4vchom8ucgsm8fcgecg74boi5ucro49si4vcpsmcvcou48fcofv4d4duvctctu4cvcsvu8tuptshttjtp3tr7ti7tcbgm5sr2vc9om4uc8sm4fc8ec8745si2vcds44uccu44fccf46vcevc5om2uc4sm2fc4ec4742uc6u42fc6fc2sm1fc2ec2741fc3fc1ec172nghbsolv2joh9u2hsh8v2gu2gfv2q2rshdvv2p2pu2ovu5q2tvu5psbqsbponqonphfqhfp6n0jboplu6jgj9spkv6hoj8u6gsj8f6ge6g72boh5u6ro29sh4v6psjcv6ou28f6ofv2d2duv6t6tu2cv6svu4tudts9tsrtojtpnth7tnbgrlstqvej0n9orkuehgn8srkfegon8eegcn87eg66bgj5spiverg69oj4ueponcuj4feos68eeoe687eo725sh2v6ds24uets6cu24fesu6cfesf26v6eveuveb0n5oriue9gn4srife8on4ee8cn47e86e8365oj2uedo64sj2fecsn6fece647ec722u66u22feeu66feefe5gn2srhfe4on2ee4cn27e46e4362sj1fe6s62ee6e627e6721f63fe7fe2on1ee2cn17e26e2361ee3e617e37e1cn0ne16e1360ne1ne0me0j1boglu19sgkv18u18f1du1cvu2ts5tobtgnt3bghlsoqv39ohku38shkf38e38715sgiv3ds14u3cu14f3cf16v3ev7b0jlopqu79gjkspqf78ojke78cjk778678335ohiu7do34shif7cs34e7ce3477c712u36u12f7eu36f7efnlgrqsttff90nkorqef8gnkcrq7f88nk6f84nk3f8275gjisppffdg74ojiefconmeji7fcc746fc6743fc332shhf76s32efes76e327fee767fe711f33f77fffff50niorpef4gnicrp7f48ni6f44ni3f42f4172ojhef6o72cjh7f6cnj7f66723f6331e73e317f7e737f77f2gnhcronf28nh6f24nh3f22f2171cjgnf3c716f36713f3330n71nf3nf18ngmf14ngjf12f1170mf1m70jf1jf0kngbf0if0h70bf0r0lsgav0ku0kf0mv1logqu1ksgqf1ke1k70iu1mu0if1mf3lghqsotf3kohqe3kchq73k63k31isgpf3ms1ie3me1i73m70hf1jf3nf7l0jqopte7kgjqcpt77k8jq67k4jq37k27k13iohpe7mo3ichp77mcjr77m63i37m31he3je1h77ne3j77n7nqgrtctunnq8rt6nq4rt3nq2nq17igjpcpsnfmg7i8jp6fm8nr6jp3fm47i2fm27i1fm13hchon7jc3h6fnc7j63h3fn67j3fn31gn3hn7jnfnnnp8rsmnp4rsjnp2np17h8jomfj87h4jojfj4npjfj27h1fj13gm7hm3gjfjm7hjfjjnokrsbnoinoh7gkjobfhk7gifhi7ghfhh3gb7grfhrnoano97gafgq7g9fgp0au0af0qsgdf0qe0q709f0rf1qogte1qcgt71q61q30pe1re0p71r73qghtcoun3q8ht63q4ht33q23q11pcgsn3rchtn3r61p33r30on1pn3rnjt8pumjt4pujjt2jt13p8hsm7r8jtmhsj7r43p27r23p17r11om3pm1oj7rm3pj7rjruktvbruiruhjskpubntkjsintijshnth3okhsb7pk3oifrk7pi3ohfri7phfrh1ob3or7prfrrruaru9jsansqjs9nsp3oa7oq3o9fpq7opfppru5js5nsd3o57odfot0de0d70tcgen0t60t30cn0tn1t8gum1t4guj1t21t10sm1tm0sj1tjhukovbhuihuh1skgub3tkhur3ti1sh3th0sb1sr3trpvapv9huajuqhu9jup1sa3sq1s97tq3sp7tppv5hu5jud1s53sd7st0em0ej0ukgfb0ui0uh0eb0urgvagv90ua1uq0u91upovl"],en=null;function wa(){return en||(en=ya.map(e=>{let t=new Array(929);for(let n=0;n<929;n++)t[n]=65536|parseInt(e.substr(n*3,3),32)<<1;return t}),en)}var xa=130728,ka=260649;function $a(e,t){if(!(t>=0&&t<=8)||t%1)throw new Error("PDF417: ecc level must be 0..8");let n=2<<t,r=new Array(n+1).fill(0);r[0]=1;let o=1;for(let l=1;l<=n;l++){o=o*3%929;for(let i=l;i>=0;i--)r[i]=((i>0?r[i-1]:0)+929-r[i]*o%929)%929}let s=new Array(n).fill(0);for(let l of e){let i=(l+s[n-1])%929;for(let p=n-1;p>=1;p--)s[p]=(s[p-1]+929-i*r[p]%929)%929;s[0]=(929-i*r[0]%929)%929}let a=[];for(let l=n-1;l>=0;l--)a.push((929-s[l])%929);return a}var uo="0123456789&\r ,:#-.$/+%*=^",At=`;<>@[\\]_\`~!\r ,:
|
|
12
|
-
-.$/"|*()?{}'`,Nn=e=>e===9||e===10||e===13||e>=32&&e<=126;function va(e){let t=[],n=i=>i>=65&&i<=90,r=i=>i>=97&&i<=122,o=i=>uo.includes(i),s=i=>!o(i)&&At.includes(i),a=0;for(let i=0;i<e.length;){let p=e[i],d=e.charCodeAt(i);if(a===0)n(d)||d===32?(t.push(d===32?26:d-65),i++):r(d)?(t.push(27),a=1):o(p)?(t.push(28),a=2):(t.push(29,At.indexOf(p)),i++);else if(a===1)r(d)||d===32?(t.push(d===32?26:d-97),i++):n(d)?(t.push(27,d-65),i++):o(p)?(t.push(28),a=2):(t.push(29,At.indexOf(p)),i++);else if(a===2)o(p)||d===32?(t.push(d===32?26:uo.indexOf(p)),i++):n(d)?(t.push(28),a=0):r(d)?(t.push(27),a=1):i+1<e.length&&s(e[i+1])?(t.push(25),a=3):(t.push(29,At.indexOf(p)),i++);else{let b=At.indexOf(p);b>=0?(t.push(b),i++):(t.push(29),a=0)}}t.length%2&&t.push(29);let l=[];for(let i=0;i<t.length;i+=2)l.push(t[i]*30+t[i+1]);return l}function Ma(e){let t=[];for(let n=0;n<e.length;n+=44){let r=("1"+e.substr(n,44)).split("").map(Number),o=[];for(;r.length;){let s=[],a=0;for(let l of r){a=a*10+l;let i=Math.floor(a/900);a-=i*900,(s.length||i)&&s.push(i)}o.unshift(a),r=s}t.push(...o)}return t}function Sa(e){let t=[e.length%6===0?924:901],n=0;for(;n+6<=e.length;n+=6){let r=0;for(let s=0;s<6;s++)r=r*256+e[n+s];let o=[];for(let s=0;s<5;s++)o.unshift(r%900),r=Math.floor(r/900);t.push(...o)}for(;n<e.length;n++)t.push(e[n]);return t}function Ea(e){let t=[];/[^\x00-\x7f]/.test(e)&&t.push(927,26);let n=new TextEncoder,r="text",o=0;for(;o<e.length;){let s=Hn(e,o);if(s>=13){t.push(902,...Ma(e.substr(o,s))),r="num",o+=s;continue}let a=o;if(Nn(e.charCodeAt(o))){for(;a<e.length&&Nn(e.charCodeAt(a))&&Hn(e,a)<13;)a++;r!=="text"&&t.push(900),t.push(...va(e.slice(o,a))),r="text"}else{for(;a<e.length&&!Nn(e.charCodeAt(a));)a++;t.push(...Sa(n.encode(e.slice(o,a)))),r="byte"}o=a}return t}var Ra=e=>e<=40?2:e<=160?3:e<=320?4:5;function Kn(e,t={}){let n=Ea(e),r=t.ecc??Ra(n.length+1);if(!(r>=0&&r<=8)||r%1)throw new Error("PDF417: ecc level must be 0..8");let o=2<<r,s=1+n.length+o,a=M=>{let $=Math.max(3,Math.ceil(s/M));return $<=90&&$*M<=928?$:0},l=0;if(t.columns!==void 0){if(!(t.columns>=1&&t.columns<=30)||t.columns%1)throw new Error("PDF417: columns must be 1..30");if(!a(t.columns))throw new Error("PDF417: data does not fit with the requested columns");l=t.columns}else{let M=1/0;for(let $=1;$<=30;$++){let v=a($);if(!v)continue;let T=Math.abs(Math.log((17*($+4)+1)/(v*3)/3));T<M&&(M=T,l=$)}if(!l)throw new Error("PDF417: data too long")}let i=a(l),p=[0,...n];for(;p.length<i*l-o;)p.push(900);p[0]=p.length;let d=p.concat($a(p,r)),b=wa(),c=(M,$,v)=>{for(let T=v-1;T>=0;T--)M.push(($>>>T&1)===1)},f=Math.floor((i-1)/3),u=r*3+(i-1)%3,y=l-1,R=[];for(let M=0;M<i;M++){let $=M%3,v=30*Math.floor(M/3),T=v+($===0?f:$===1?u:y),x=v+($===0?y:$===1?f:u),j=b[$],C=[];c(C,xa,17),c(C,j[T],17);for(let D=0;D<l;D++)c(C,j[d[M*l+D]],17);c(C,j[x],17),c(C,ka,18),R.push(C)}return{rows:i,cols:l,matrix:R}}var Ct=new Uint8Array(512),zn=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)Ct[t]=e,zn[e]=t,e<<=1,e&256&&(e^=301);for(let t=255;t<512;t++)Ct[t]=Ct[t-255]})();var fo=(e,t)=>e&&t?Ct[zn[e]+zn[t]]:0;function Ta(e,t){let n=[1];for(let s=1;s<=t;s++){let a=new Array(n.length+1).fill(0),l=Ct[s];for(let i=0;i<n.length;i++)a[i]^=n[i],a[i+1]^=fo(n[i],l);n=a}let r=n.slice(1),o=new Array(t).fill(0);for(let s of e){let a=s^o.shift();o.push(0);for(let l=0;l<t;l++)o[l]^=fo(r[l],a)}return o}var Pa=[[10,3,5,1],[12,5,7,1],[14,8,10,1],[16,12,12,1],[18,18,14,1],[20,22,18,1],[22,30,20,1],[24,36,24,1],[26,44,28,1],[32,62,36,1],[36,86,42,1],[40,114,48,1],[44,144,56,1],[48,174,68,1],[52,204,84,2],[64,280,112,2],[72,368,144,4],[80,456,192,4],[88,576,224,4],[96,696,272,4],[104,816,336,6],[120,1050,408,6],[132,1304,496,8],[144,1558,620,10]],ja=e=>e<32?1:e<64?2:e<120?4:6;function Aa(e){let t=new TextEncoder().encode(e),n=[],r=a=>a<t.length&&t[a]>=128,o=a=>a<t.length&&t[a]>=48&&t[a]<=57;t.some(a=>a>=128)&&n.push(241,27);let s=0;for(;s<t.length;)if(r(s)){let a=s;for(;;){for(;r(a);)a++;let p=a;for(;p<t.length&&!r(p)&&p-a<4;)p++;if(p>a&&p-a<4&&r(p))a=p;else break}let l=a-s;n.push(231);let i=l<=249?[l]:[Math.floor(l/250)+249,l%250];for(let p of[...i,...t.subarray(s,a)]){let d=n.length+1,b=p+149*d%255+1;n.push(b<=255?b:b-256)}s=a}else o(s)&&o(s+1)?(n.push(130+(t[s]-48)*10+(t[s+1]-48)),s+=2):(n.push(t[s]+1),s++);return n}function Ca(e,t){let n=new Int32Array(e*t),r=(p,d,b,c)=>{p<0&&(p+=e,d+=4-(e+4)%8),d<0&&(d+=t,p+=4-(t+4)%8),n[p*t+d]=10*b+c},o=(p,d,b)=>{r(p-2,d-2,b,1),r(p-2,d-1,b,2),r(p-1,d-2,b,3),r(p-1,d-1,b,4),r(p-1,d,b,5),r(p,d-2,b,6),r(p,d-1,b,7),r(p,d,b,8)},s=(p,d)=>d.forEach(([b,c],f)=>r(b,c,p,f+1)),a=1,l=4,i=0;do{l===e&&i===0&&s(a++,[[e-1,0],[e-1,1],[e-1,2],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e-2&&i===0&&t%4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-4],[0,t-3],[0,t-2],[0,t-1],[1,t-1]]),l===e-2&&i===0&&t%8===4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e+4&&i===2&&!(t%8)&&s(a++,[[e-1,0],[e-1,t-1],[0,t-3],[0,t-2],[0,t-1],[1,t-3],[1,t-2],[1,t-1]]);do l<e&&i>=0&&!n[l*t+i]&&o(l,i,a++),l-=2,i+=2;while(l>=0&&i<t);l+=1,i+=3;do l>=0&&i<t&&!n[l*t+i]&&o(l,i,a++),l+=2,i-=2;while(l<e&&i>=0);l+=3,i+=1}while(l<e||i<t);return n[e*t-1]||(n[e*t-1]=n[e*t-t-2]=1),n}function La(e){let t=Aa(e),n=Pa.find(p=>p[1]>=t.length);if(!n)throw new Error("DataMatrix: data too long");let[r,o,s,a]=n;for(t.length<o&&t.push(129);t.length<o;){let p=129+149*(t.length+1)%253+1;t.push(p<=254?p:p-254)}let l=s/a,i=t.slice();for(let p=0;p<a;p++){let d=[];for(let c=p;c<o;c+=a)d.push(t[c]);let b=Ta(d,l);for(let c=0;c<l;c++)i[o+c*a+p]=b[c]}return{size:r,data:t,codewords:i}}function _n(e){let{size:t,codewords:n}=La(e),r=ja(t),o=(t-2*r)/r,s=o*r,a=Ca(s,s),l=Array.from({length:t},()=>new Array(t).fill(!1)),i=o+2;for(let p=0;p<r;p++)for(let d=0;d<r;d++){let b=p*i,c=d*i;for(let f=0;f<i;f++)l[b+i-1][c+f]=!0,l[b+f][c]=!0,f%2===0&&(l[b][c+f]=!0),f%2===1&&(l[b+f][c+i-1]=!0)}for(let p=0;p<s;p++)for(let d=0;d<s;d++){let b=a[p*s+d],c=b===1||b>=10&&(n[Math.floor(b/10)-1]>>8-b%10&1)===1;l[p+2*Math.floor(p/o)+1][d+2*Math.floor(d/o)+1]=c}return l}var ot={A3:[297,420],A4:[210,297],A5:[148,210],B4:[257,364],B5:[182,257],Letter:[215.9,279.4],Legal:[215.9,355.6]};function _e(e={}){let[t,n]=Array.isArray(e.size)?e.size:ot[e.size??"A4"]??ot.A4;(e.orientation==="landscape"?t<n:e.orientation==="portrait"&&t>n)&&([t,n]=[n,t]);let r=e.margins??15,o=typeof r=="number"?[r,r,r,r]:[r[0],r[1],r[2],r[3]];return{width:t,height:n,margins:o}}function Xe(e){let t=_e(e.page);return t.width-t.margins[1]-t.margins[3]}var Xn={width:.2,style:"solid",color:"#000000"};function go(e){if(!e)return;if(e===!0)return{...Xn};if(typeof e=="string"){if(e==="none"||e==="0")return;let n={...Xn};for(let r of e.trim().split(/\s+/))/^[\d.]+(mm)?$/.test(r)?n.width=parseFloat(r):/^(solid|dashed|dotted|double)$/.test(r)?n.style=r:n.color=r;return n.width>0?n:void 0}let t={...Xn,...e};return t.width>0?t:void 0}function Lt(e){if(!e)return{};if(e===!0||typeof e=="string"||"width"in e||"style"in e||"color"in e){let r=go(e);return r?{top:r,right:r,bottom:r,left:r}:{}}let t=e,n={};for(let r of["top","right","bottom","left"]){let o=go(t[r]);o&&(n[r]=o)}return n}var Fa=(e,t)=>e===void 0?t:typeof e=="number"?[e,e,e,e]:e,Da="Nanum Gothic",bo=new WeakMap;function Fe(e,t){let n=t.styleName?e.styles?.[t.styleName]:void 0,r=bo.get(t);if(r&&r.style===t.style&&r.named===n&&r.font===e.font)return r.result;let o=Ia(e,t,n);return bo.set(t,{style:t.style,named:n,font:e.font,result:o}),o}function Ia(e,t,n){let r={...n,...t.style};return{fontFamily:r.fontFamily??e.font?.family??Da,fontSize:r.fontSize??e.font?.size??9,bold:r.bold??!1,italic:r.italic??!1,underline:r.underline??!1,strike:r.strike??!1,color:r.color??e.font?.color??"#000000",background:r.background,align:r.align??"left",valign:r.valign??"middle",padding:Fa(r.padding,[.5,1,.5,1]),border:Lt(r.border),lineHeight:r.lineHeight??1.25,wrap:r.wrap??!0,shrinkToFit:r.shrinkToFit??!1,letterSpacing:r.letterSpacing??0}}var Ba={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#008000",blue:"#0000ff",gray:"#808080",grey:"#808080",silver:"#c0c0c0",navy:"#000080",yellow:"#ffff00",orange:"#ffa500",purple:"#800080",maroon:"#800000",teal:"#008080"};function rn(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;let n=Ba[t]??t,r=/^#([0-9a-f]{3,8})$/.exec(n);if(r){let o=r[1];return(o.length===3||o.length===4)&&(o=[...o].map(s=>s+s).join("")),o.length!==6&&o.length!==8?null:[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),o.length===8?parseInt(o.slice(6,8),16)/255:1]}if(r=/^rgba?\(([^)]+)\)$/.exec(t),r){let o=r[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return o.length<3?null:[o[0],o[1],o[2],o[3]??1]}return null}var bt=["#2F5BEA","#F2A900","#16A34A","#DC2626","#7C3AED","#0891B2","#DB2777","#65A30D","#EA580C","#475569"],Na=(e,t)=>{let n=e/Math.max(1,t),r=10**Math.floor(Math.log10(n||1)),o=n/r;return(o<=1?1:o<=2?2:o<=2.5?2.5:o<=5?5:10)*r};function yo(e,t,n,r,o,s=0){let a=[],l=(i,p,d,b)=>{let c=Math.max(1,Math.ceil(Math.abs(d-p)/(Math.PI/2))),f=(d-p)/c,u=4/3*Math.tan(f/4),y=p;b?a.push("M",e+i*Math.cos(y),t+i*Math.sin(y)):a.push("L",e+i*Math.cos(y),t+i*Math.sin(y));for(let R=0;R<c;R++){let M=y+f;a.push("C",e+i*(Math.cos(y)-u*Math.sin(y)),t+i*(Math.sin(y)+u*Math.cos(y)),e+i*(Math.cos(M)+u*Math.sin(M)),t+i*(Math.sin(M)-u*Math.cos(M)),e+i*Math.cos(M),t+i*Math.sin(M)),y=M}};return l(n,r,o,!0),s>0?l(s,o,r,!1):a.push("L",e,t),a.push("Z"),a}var Vn=(e,t,n,r)=>["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z"];function wo(e,t,n,r){let o=Fe(r.def,e),s=e.source?Me(e.source,t):t.rows,a=Array.isArray(s)?s:[],l=e.series?.length?e.series:[],i=a.map((X,Y)=>ve(Me(e.category,{...t,row:X,vars:{...t.vars,rowNum:Y+1}})??"")),p=l.map(X=>a.map((Y,se)=>{let fe=Number(Me(X.expr,{...t,row:Y,vars:{...t.vars,rowNum:se+1}}));return Number.isFinite(fe)?fe:0})),d=X=>l[X]?.color??bt[X%bt.length],b=Math.min(o.fontSize,8),c={family:o.fontFamily,size:b,bold:!1,italic:!1},f={...o,padding:[0,0,0,0],letterSpacing:0,border:{}},u=b*$e*1.3,y=[],R=(X,Y,se,fe,de,ie=!1,P="#444444")=>y.push({...st(Y,se,fe,u,[X],{...c,bold:ie},{...f,align:de,valign:"middle",color:P},r.measure),source:{band:r.kind,elementId:e.id}}),{x:M,y:$,w:v,h:T}=n;if(e.title&&(R(e.title,M,$,v,"center",!0,o.color),$+=u*1.3,T-=u*1.3),e.legend??(l.length>1||e.chartType==="pie"||e.chartType==="doughnut")){let X=e.chartType==="pie"||e.chartType==="doughnut"?i:l.map((O,F)=>O.label??`Series ${F+1}`),Y=b*$e,se=M,fe=$+T-u,de=[];X.forEach((O,F)=>{let L=r.measure.width(O,c)+Y+3;se+L>M+v&&se>M&&(se=M,fe-=u),de.push({text:O,color:e.chartType==="pie"||e.chartType==="doughnut"?bt[F%bt.length]:d(F),x:se,y:fe}),se+=L+2});let ie=$+T-Math.min(...de.map(O=>O.y),$+T),P=new Map;for(let O of de)P.set(O.y,[...P.get(O.y)??[],O]);for(let O of P.values()){let F=O[O.length-1],L=F.x+r.measure.width(F.text,c)+Y+1-O[0].x,J=(v-L)/2;for(let I of O)y.push({kind:"path",d:Vn(I.x+J,I.y+(u-Y)/2,Y,Y),fill:I.color}),R(I.text,I.x+J+Y+1,I.y,r.measure.width(I.text,c)+1,"left")}T-=ie+1}if(!a.length||!l.length||T<5)return y;if(e.chartType==="pie"||e.chartType==="doughnut"){let X=p[0].map(P=>Math.max(0,P)),Y=X.reduce((P,O)=>P+O,0)||1,se=Math.min(v,T)/2-1,fe=M+v/2,de=$+T/2,ie=-Math.PI/2;return X.forEach((P,O)=>{let F=ie+P/Y*Math.PI*2;if(P>0&&y.push({kind:"path",d:yo(fe,de,se,ie,F,e.chartType==="doughnut"?se*.55:0),fill:bt[O%bt.length],stroke:"#ffffff",strokeWidth:.3}),e.showValues!==!1&&P/Y>=.04){let L=(ie+F)/2,J=e.chartType==="doughnut"?se*.78:se*.62,I=e.format?ve(P,e.format):`${Math.round(P/Y*100)}%`;R(I,fe+J*Math.cos(L)-10,de+J*Math.sin(L)-u/2,20,"center",!0,"#ffffff")}ie=F}),y}let j=e.chartType==="hbar",C=!!e.stacked&&(e.chartType==="bar"||e.chartType==="hbar"||e.chartType==="area"),D=i.map((X,Y)=>p.reduce((se,fe)=>se+Math.max(0,fe[Y]),0)),Q=i.map((X,Y)=>p.reduce((se,fe)=>se+Math.min(0,fe[Y]),0)),Z=Math.max(...C?D:p.flat()),z=C?Math.min(0,...Q):Math.min(0,...p.flat());Z===z&&(Z=z+1);let oe=Na(Z-z,5);Z=Math.ceil(Z/oe)*oe,z=Math.floor(z/oe)*oe;let xe=[];for(let X=z;X<=Z+oe/1e6;X+=oe)xe.push(Math.round(X*1e9)/1e9);let W=X=>ve(X,e.format??(Math.abs(Z)>=1e3?"#,##0":void 0)),ce=Math.max(...xe.map(X=>r.measure.width(W(X),c)))+1.5,me=j?Math.min(v*.3,Math.max(...i.map(X=>r.measure.width(X,c)))+1.5):0,K=j?{x:M+me,y:$,w:v-me-2,h:T-u}:{x:M+ce,y:$+u/2,w:v-ce-1,h:T-u-u/2},ue="#999999",V="#e3e3e3",N=X=>j?K.x+(X-z)/(Z-z)*K.w:K.y+K.h-(X-z)/(Z-z)*K.h;for(let X of xe){let Y=N(X);j?(y.push({kind:"line",x1:Y,y1:K.y,x2:Y,y2:K.y+K.h,width:.15,color:X===0?ue:V}),R(W(X),Y-10,K.y+K.h+.3,20,"center")):(y.push({kind:"line",x1:K.x,y1:Y,x2:K.x+K.w,y2:Y,width:.15,color:X===0?ue:V}),R(W(X),M,Y-u/2,ce-1,"right"))}let H=i.length,_=(j?K.h:K.w)/H,le=Math.max(1,Math.ceil(H*r.measure.width("0000",c)/(j?K.h*3:K.w)));if(i.forEach((X,Y)=>{Y%le||(j?R(X,M,K.y+Y*_+_/2-u/2,me-1,"right"):R(X,K.x+Y*_,K.y+K.h+.3,_*le,le>1?"left":"center"))}),e.chartType==="bar"||e.chartType==="hbar"){let X=_*.7,Y=C?X:X/l.length,se=N(0);return i.forEach((fe,de)=>{let ie=0,P=0;l.forEach((O,F)=>{let L=p[F][de],J=0,I=L;C&&(L>=0?(J=ie,I=ie+L,ie=I):(J=P,I=P+L,P=I));let U=C?N(J):se,S=N(I),te=(j?K.y:K.x)+de*_+(_-X)/2+(C?0:F*Y),ne=j?Vn(Math.min(U,S),te,Math.abs(S-U),Y*.92):Vn(te,Math.min(U,S),Y*.92,Math.abs(S-U));y.push({kind:"path",d:ne,fill:d(F),source:{band:r.kind,elementId:e.id,value:L}}),e.showValues&&L!==0&&(j?R(W(L),S+.5,te+Y*.46-u/2,ce+4,"left"):R(W(L),te-5,Math.min(U,S)-u,Y+10,"center"))})}),y}let he=i.map((X,Y)=>K.x+Y*_+_/2),be=i.map(()=>0);return l.forEach((X,Y)=>{let se=p[Y].map((de,ie)=>N(C?be[ie]+=de:de)),fe=[];if(he.forEach((de,ie)=>fe.push(ie?"L":"M",de,se[ie])),e.chartType==="area"){let de=C&&Y>0?p.slice(0,Y).reduce((P,O)=>P.map((F,L)=>F+O[L]),i.map(()=>0)).map(N):he.map(()=>N(Math.max(z,0))),ie=[...fe];for(let P=he.length-1;P>=0;P--)ie.push("L",he[P],de[P]);ie.push("Z"),y.push({kind:"path",d:ie,fill:d(Y),opacity:.25})}y.push({kind:"path",d:fe,stroke:d(Y),strokeWidth:.5,source:{band:r.kind,elementId:e.id}}),he.forEach((de,ie)=>{H<=40&&y.push({kind:"path",d:yo(de,se[ie],.7,0,Math.PI*2).slice(0,-4).concat(["Z"]),fill:d(Y)}),e.showValues&&R(W(p[Y][ie]),de-8,se[ie]-u-.3,16,"center")})}),y}var xo="0.15 solid #9aa3b2",ko="#eef1f6";function Ve(e,t,n){return{...e,...t?.bold!==void 0?{bold:t.bold}:{},...t?.color?{color:t.color}:{},...t?.fontSize?{fontSize:t.fontSize}:{},background:t?.background??e.background,border:t?.border!==void 0?Lt(t.border):e.border,align:n,valign:"middle",wrap:!1}}function Ae(e,t,n,r,o,s,a,l,i,p){let d=a.border.top||a.border.right||a.border.bottom||a.border.left;if((a.background||d)&&e.push({kind:"box",x:t,y:n,w:r,h:o,fill:a.background,border:a.border,source:{band:l.kind}}),!s)return;let b={family:a.fontFamily,size:a.fontSize,bold:a.bold,italic:a.italic},c=st(t,n,r,o,[s],b,a,l.measure);c.source={band:l.kind,value:i,format:p},e.push(c)}function on(e){try{return Be(e)}catch(t){let n=`#ERR ${t.message}`;return()=>n}}var Yn=e=>Array.isArray(e)?e:[];function Ha(e){let t=e.columns.reduce((o,s)=>o+(s.width??0),0),n=e.columns.filter(o=>!o.width).length,r=Math.max(0,e.w-t);return e.columns.map(o=>o.width??(n?r/n:0))}function $o(e,t){let n=Yn(Me(e.source,t)),r=e.rowHeight??6,o=e.showHeader===!1?0:r,s=e.columns.some(a=>a.sum)?r:0;return Math.max(e.h,o+n.length*r+s)}function vo(e,t,n,r,o){let s=Yn(Me(e.source,t)),a=Fe(o.def,e),l={...a,border:a.border.top||a.border.left?a.border:Lt(xo),padding:[.3,1,.3,1]},i=Ve(l,{bold:!0,background:ko,...e.headerStyle},"center"),p=Ha(e),d=e.rowHeight??6,b=[],c=r;if(e.showHeader!==!1){let y=n;e.columns.forEach((R,M)=>{Ae(b,y,c,p[M],d,R.header,i,o),y+=p[M]}),c+=d}let f=e.columns.map(y=>on(y.expr)),u=e.columns.map(()=>0);if(s.forEach((y,R)=>{let M=n,$={...t,row:y,vars:{...t.vars,rowNum:R+1}};e.columns.forEach((v,T)=>{let x;try{x=f[T]($)}catch(C){x=`#ERR ${C.message}`}v.sum&&typeof x=="number"&&(u[T]+=x);let j=Ve(l,e.altBackground&&R%2?{background:e.altBackground}:void 0,v.align??(typeof x=="number"?"right":"left"));Ae(b,M,c,p[T],d,ve(x,v.format,o.locale),j,o,x,v.format),M+=p[T]}),c+=d}),e.columns.some(y=>y.sum)){let y=n,R=Ve(l,{bold:!0,background:"#f7f8fb"},"right");e.columns.forEach((M,$)=>{let v=M.sum?ve(u[$],M.format,o.locale):$===0?e.footerLabel??"\uD569\uACC4":"";Ae(b,y,c,p[$],d,v,{...R,align:M.sum?"right":"center"},o,M.sum?u[$]:void 0,M.format),y+=p[$]})}return b}function Mo(e,t){let n=e.source?Yn(Me(e.source,t)):t.rows,r=on(e.rowKey),o=on(e.columnKey),s=on(e.value),a=e.aggregate??"sum",l=new Map,i=[],p=[],d=new Set,b=new Set;n.forEach((u,y)=>{let R={...t,row:u,vars:{...t.vars,rowNum:y+1}},M=ve(r(R)),$=ve(o(R)),v=Number(s(R));d.has(M)||(d.add(M),i.push(M)),b.has($)||(b.add($),p.push($));for(let T of[`${M}\0${$}`,`${M}\0*`,`*\0${$}`,"*\0*"]){let x=l.get(T);x||l.set(T,x=[]),x.push(Number.isFinite(v)?v:0)}});let c=new Intl.Collator("ko",{numeric:!0});i.sort(c.compare),p.sort(c.compare);let f=u=>{if(!u?.length)return null;switch(a){case"count":return u.length;case"avg":return u.reduce((y,R)=>y+R,0)/u.length;case"min":return u.reduce((y,R)=>R<y?R:y);case"max":return u.reduce((y,R)=>R>y?R:y);default:return u.reduce((y,R)=>y+R,0)}};return{rowKeys:i,colKeys:p,cell:(u,y)=>f(l.get(`${u}\0${y}`)),rowTotal:u=>f(l.get(`${u}\0*`)),colTotal:u=>f(l.get(`*\0${u}`)),total:f(l.get("*\0*"))}}function So(e,t){let n=Mo(e,t),r=e.cellHeight??6;return Math.max(e.h,(n.rowKeys.length+1+(e.totals!==!1?1:0))*r)}function Eo(e,t,n,r,o){let s=Mo(e,t),a=e.totals!==!1,l=e.cellHeight??6,i=Fe(o.def,e),p={...i,border:i.border.top||i.border.left?i.border:Lt(xo),padding:[.3,1,.3,1]},d=Ve(p,{bold:!0,background:ko,...e.headerStyle},"center"),b=Ve(p,{bold:!0,background:"#f7f8fb"},"right"),c=Math.min(e.rowHeaderWidth??25,e.w*.4),f=s.colKeys.length+(a?1:0),u=f?(e.w-c)/f:0,y=p.fontSize,R=Math.max(1,...s.colKeys.map(x=>o.measure.width(x,{family:p.fontFamily,size:y,bold:!0,italic:!1})));R>u-2&&(y=Math.max(5,y*((u-2)/R)));let M=x=>({...x,fontSize:Math.min(x.fontSize,y)}),$=[],v=e.totals!==!1?o.locale.startsWith("ko")?"\uD569\uACC4":"Total":"";Ae($,n,r,c,l,e.corner??"",d,o),s.colKeys.forEach((x,j)=>Ae($,n+c+j*u,r,u,l,x,M(d),o)),a&&Ae($,n+c+s.colKeys.length*u,r,u,l,v,M(d),o);let T=e.format??"#,##0";if(s.rowKeys.forEach((x,j)=>{let C=r+(j+1)*l;if(Ae($,n,C,c,l,x,Ve(p,{bold:!0,background:"#f7f8fb"},"left"),o),s.colKeys.forEach((D,Q)=>{let Z=s.cell(x,D);Ae($,n+c+Q*u,C,u,l,Z===null?"":ve(Z,T,o.locale),M(Ve(p,void 0,"right")),o,Z??void 0,T)}),a){let D=s.rowTotal(x);Ae($,n+c+s.colKeys.length*u,C,u,l,D===null?"":ve(D,T,o.locale),M(b),o,D??void 0,T)}}),a){let x=r+(s.rowKeys.length+1)*l;Ae($,n,x,c,l,v,Ve(p,{bold:!0,background:"#f7f8fb"},"center"),o),s.colKeys.forEach((j,C)=>{let D=s.colTotal(j);Ae($,n+c+C*u,x,u,l,D===null?"":ve(D,T,o.locale),M(b),o,D??void 0,T)}),Ae($,n+c+s.colKeys.length*u,x,u,l,s.total===null?"":ve(s.total,T,o.locale),M(b),o,s.total??void 0,T)}return $}var Oa=.8,qa=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function za(e,t=e.fontSize){return{family:e.fontFamily,size:t,bold:e.bold,italic:e.italic}}function Ua(e,t,n,r){let o=Fe(n.def,e);if(e.type==="table"||e.type==="crosstab")return n.blank||e.canGrow===!1?{el:e,style:o,needed:e.h}:{el:e,style:o,needed:e.type==="table"?$o(e,t):So(e,t)};if(e.type!=="text"&&e.type!=="field")return{el:e,style:o,needed:e.h};let s="",a;if(!n.blank){if(e.type==="text")s=Ue(e.text??"",t,n.locale);else if(a=Me(e.expr,t),s=a==null||a===""?e.nullText??"":ve(a,e.format,n.locale),e.suppressRepeated&&n.previous){let M=n.previous.get(e);n.previous.set(e,s),M===s&&(s="")}}let[l,i,p,d]=o.padding,b=Math.max(1,e.w-d-i),c=za(o);if(o.shrinkToFit&&s){let M=o.fontSize;for(;M>4&&n.measure.width(s,{...c,size:M})+o.letterSpacing*s.length>b;)M-=.25;c={...c,size:M}}let f=o.wrap&&!o.shrinkToFit?$n(s,b,c,n.measure,o.letterSpacing):s.split(/\r?\n/),u=c.size*$e*o.lineHeight,R=e.canGrow??r?Math.max(e.h,f.length*u+l+p):e.h;return{el:e,style:o,text:s,value:a,font:c,lines:f,needed:R}}function Ga(e,t,n,r,o,s,a){let l=o.border.top||o.border.right||o.border.bottom||o.border.left;return!o.background&&!l?null:{kind:"box",x:e,y:t,w:n,h:r,fill:o.background,border:o.border,source:{band:s.kind,elementId:a,row:s.rowIndex}}}function st(e,t,n,r,o,s,a,l){let[i,p,d,b]=a.padding,c=s.size*$e*a.lineHeight,f=o.length*c,u=r-i-d,y=t+i;a.valign==="middle"?y+=(u-f)/2:a.valign==="bottom"&&(y+=u-f);let R=o.map(($,v)=>{let T=l.width($,s)+a.letterSpacing*[...$].length,x=e+b;return a.align==="center"?x=e+b+(n-b-p-T)/2:a.align==="right"&&(x=e+n-p-T),{text:$,x,y:y+v*c+(c-s.size*$e)/2+s.size*$e*Oa,width:T}}),M=f>u+.05||R.some($=>$.width>n-b-p+.05);return{kind:"text",x:e,y:t,w:n,h:r,lines:R,font:s,color:a.color,align:a.align,valign:a.valign,underline:a.underline||void 0,strike:a.strike||void 0,letterSpacing:a.letterSpacing||void 0,overflow:M||void 0,text:o.join(`
|
|
13
|
-
`)}}function Wa(e,t,n,r,o){let s=e.reduce((p,d)=>p+d,0),a=r/s,l=[],i=t;return e.forEach((p,d)=>{d%2===0&&l.push("M",i,n,"L",i+p*a,n,"L",i+p*a,n+o,"L",i,n+o,"Z"),i+=p*a}),l}function Ka(e,t,n,r,o,s,a){let l=String(Me(e.expr,s)??"");if(!l||l.startsWith("#ERR")||a.blank)return[];let i=e.color??"#000000",p={band:a.kind,elementId:e.id,row:a.rowIndex,value:l};try{if(e.format==="qr"||e.format==="datamatrix"||e.format==="pdf417"){let R,M,$,v,T;if(e.format==="pdf417"){R=Kn(l).matrix;let C=R[0].length+4,D=R.length*3+4,Q=Math.min(r/C,o/D);M=Q,$=Q*3,v=t+(r-C*Q)/2+2*Q,T=n+(o-D*Q)/2+2*Q}else{R=e.format==="qr"?Wn(l,e.ecc??"M"):_n(l);let C=e.format==="qr"?4:1,D=R.length+C*2,Q=Math.min(r,o);M=$=Q/D,v=t+(r-Q)/2+C*M,T=n+(o-Q)/2+C*$}let x=M,j=[];return R.forEach((C,D)=>{for(let Q=0;Q<C.length;Q++){if(!C[Q])continue;let Z=Q;for(;Z+1<C.length&&C[Z+1];)Z++;j.push("M",v+Q*x,T+D*$,"L",v+(Z+1)*x,T+D*$,"L",v+(Z+1)*x,T+(D+1)*$,"L",v+Q*x,T+(D+1)*$,"Z"),Q=Z}}),[{kind:"path",d:j,fill:i,source:p}]}let d=e.format==="ean13"?Gn(l):Un(l),b=e.showText!==!1,c=Fe(a.def,e),f=Math.min(c.fontSize,9),u=b?f*$e*1.3:0,y=[{kind:"path",d:Wa(d,t,n,r,Math.max(1,o-u)),fill:i,source:p}];if(b){let R={family:c.fontFamily,size:f,bold:!1,italic:!1};y.push(st(t,n+o-u,r,u,[l],R,{...c,align:"center",valign:"middle",padding:[0,0,0,0],letterSpacing:0},a.measure))}return y}catch{return[st(t,n,r,o,["(barcode?)"],{family:"sans-serif",size:7,bold:!1,italic:!1},{...Fe(a.def,e),color:"#cc0000"},a.measure)]}}function _a(e){let t=!1;for(let a of e)if(a.needed>a.el.h+.01){t=!0;break}if(!t)return null;let n=new Map,r=a=>Math.min(a.el.y,a.el.y+a.el.h),o=a=>Math.max(a.el.y,a.el.y+a.el.h),s=[...e].sort((a,l)=>r(a)-r(l));for(let a of s){if(a.el.shift===!1)continue;let l=0;for(let i of s){if(r(i)>=r(a))break;o(i)>r(a)+.01||(l=Math.max(l,(n.get(i)??0)+Math.max(0,i.needed-i.el.h)))}l>0&&n.set(a,l)}return n}function Ro(e,t,n,r,o,s,a,l){if(!t.id)return;let i=t.type==="line";e.push({id:t.id,band:n.kind,row:n.rowIndex,x:r+(i?Math.min(t.x,t.x+t.w):t.x),y:o+(i?Math.min(s,s+a):s),w:i?Math.abs(t.w):t.w,h:i?Math.abs(a):a,...l?{hidden:l}:{}})}function Ye(e,t,n,r,o,s=0){let a=e.canGrow??(n.kind==="detail"||n.kind==="groupHeader"||n.kind==="groupFooter"||n.kind==="summary"||n.kind==="title"),l=[],i=n.anchors&&!n.blank?[]:void 0;for(let f of e.elements){if(f.visible&&!n.blank&&!qa(Me(f.visible,t))){i&&Ro(i,f,n,r,o,f.y,f.h,!0);continue}l.push(Ua(f,t,n,a))}let p=_a(l),d=Math.max(e.height,s);for(let f of l)d=Math.max(d,f.el.y+(p?.get(f)??0)+f.needed);let b=[],c=n.background??e.background;c&&b.push({kind:"box",x:r,y:o,w:n.width,h:d,fill:c,source:{band:n.kind,row:n.rowIndex}});for(let f of l){let u=f.el,y=p?u.y+(p.get(f)??0):u.y,R=u.y+u.h>=e.height-.01,M=f.needed;(u.stretch??R)&&u.type!=="line"&&u.type!=="table"&&u.type!=="crosstab"&&(M=Math.max(M,d-y));let $=r+u.x,v=o+y;switch(i&&Ro(i,u,n,r,o,y,u.type==="line"?u.h===0?0:u.y+u.h>=e.height-.01?Math.max(u.h,d-y):u.h:M),u.type){case"text":case"field":{let T=Ga($,v,u.w,M,f.style,n,u.id);if(T&&b.push(T),f.text){let x=st($,v,u.w,M,f.lines,f.font,f.style,n.measure);x.source={band:n.kind,elementId:u.id,row:n.rowIndex,value:u.type==="field"?f.value:void 0,format:u.type==="field"?u.format:void 0},/docHash/.test(u.type==="text"?u.text:u.expr)&&(x.source.fingerprint=!0),b.push(x)}break}case"line":{let T=u.h===0?0:u.y+u.h>=e.height-.01?Math.max(u.h,d-y):u.h;b.push({kind:"line",x1:$,y1:v,x2:$+u.w,y2:v+T,width:u.width??.2,color:u.color??"#000000",dash:u.dash,source:{band:n.kind,elementId:u.id}});break}case"rect":{let T=u.width??.2;b.push({kind:"box",x:$,y:v,w:u.w,h:M,fill:u.fill,radius:u.radius,stroke:T>0?{width:T,color:u.color??"#000000"}:void 0,source:{band:n.kind,elementId:u.id}});break}case"image":{let T=u.expr?String(Me(u.expr,t)??""):u.src??"";T&&!T.startsWith("#ERR")&&!n.blank&&b.push({kind:"image",x:$,y:v,w:u.w,h:M,src:T,fit:u.fit??"contain",source:{band:n.kind,elementId:u.id}});break}case"barcode":b.push(...Ka(u,$,v,u.w,M,t,n));break;case"chart":n.blank||b.push(...wo(u,t,{x:$,y:v,w:u.w,h:M},n));break;case"table":n.blank||b.push(...vo(u,t,$,v,n));break;case"crosstab":n.blank||b.push(...Eo(u,t,$,v,n));break}}return i?{height:d,items:b,anchors:i}:{height:d,items:b}}var Jn=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function To(e){return e instanceof Date?e.getTime():typeof e=="number"?e:typeof e=="boolean"?e?1:0:e==null?"":String(e)}var Xa=new Intl.Collator("ko",{numeric:!0});function jo(e,t){let n=To(e),r=To(t);return typeof n=="number"&&typeof r=="number"?n-r:n===r?0:Xa.compare(String(n),String(r))}function Va(e,t){if(!t)return e;for(let n of e)if(n.kind==="line")n.y1+=t,n.y2+=t;else if(n.kind==="path"){let r=0;for(let o=0;o<n.d.length;o++){let s=n.d[o];if(typeof s=="string"){r=0;continue}r++%2===1&&(n.d[o]=s+t)}}else if(n.y+=t,n.kind==="text")for(let r of n.lines)r.y+=t;return e}var Po=new WeakMap;function Ya(e){let t=Po.get(e);return t===void 0&&(t=/\bpages?\b|pageRows|pageIndex/.test(JSON.stringify(e.elements)),Po.set(e,t)),t}function Ne(e,t){if(Array.isArray(t))return{rows:t,root:{rows:t}};let n=t??{},r=n[e.dataSource??"rows"];return{rows:Array.isArray(r)?r:[],root:n}}function at(e,t={}){let n={};for(let[r,o]of Object.entries(e.params??{}))n[r]=o.default;return{...n,...t}}function Ao(e,t,n,r){if(n>=t.length)return null;let o=t[n],s=Be(o.by),a=[],l=null;e.forEach(i=>{let p=s({...r,row:i});(!l||jo(l.key,p)!==0)&&(l={def:o,level:n,key:p,rows:[],children:null},a.push(l)),l.rows.push(i)});for(let i of a)i.children=Ao(i.rows,t,n+1,r);return a}function yt(e,t={},n={}){let r=typeof performance<"u"?performance.now():Date.now(),o=Zn(e,t,n,void 0,void 0),s=/\bpages\b/.test(JSON.stringify([e.bands.title,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.groups])),a=s&&o.pages.length>1?Zn(e,t,n,o.pages.length,void 0):o;if(e.fingerprint){let l=jt(a.pages);a=Zn(e,t,n,s?a.pages.length:void 0,l),a.fingerprint=l}return a.ms=Math.round(((typeof performance<"u"?performance.now():Date.now())-r)*10)/10,a}function Zn(e,t,n,r,o){Vr();let s=n.measure??$t(),a=n.locale??"ko",l=n.maxPages??1e4,i=_e(e.page),[p,,d,b]=i.margins,c=Xe(e),f=at(e,n.params),{rows:u,root:y}=Ne(e,t),R=new Date,M=o?{docHash:o,docHashShort:o.slice(0,12)}:{docHash:"",docHashShort:""},$={rows:u,allRows:u,params:f,data:y,vars:{now:R,...M}},v=u;if(e.filter){let F=Be(e.filter);v=v.filter(L=>Jn(F({...$,row:L})))}let T=e.bands.groups??[],x=[...T.filter(F=>F.sort).map(F=>({fn:Be(F.by),dir:F.sort==="desc"?-1:1})),...(e.sort??[]).map(F=>({fn:Be(F.replace(/^[-+]/,"")),dir:F.startsWith("-")?-1:1}))];if(x.length){let F=v.map((L,J)=>({row:L,i:J,keys:x.map(I=>I.fn({...$,row:L}))}));F.sort((L,J)=>{for(let I=0;I<x.length;I++){let U=jo(L.keys[I],J.keys[I])*x[I].dir;if(U)return U}return L.i-J.i}),v=F.map(L=>L.row)}let j={...$,rows:v,allRows:v},C=[],D=e.bands;D.title&&C.push({kind:"title",band:D.title,scopeRows:v,groups:[]});let Q=0,Z=(F,L,J)=>{if(!F){let I=Math.max(1,Math.floor(D.detail?.columns??1));if(D.detail&&I>1){for(let U=0;U<J.length;U+=I){let S=J.slice(U,U+I);C.push({kind:"detail",band:D.detail,row:S[0],rowIndex:Q,localIndex:U,chunk:S,scopeRows:J,groupRows:L.length?J:void 0,groups:L}),Q+=S.length}return}J.forEach((U,S)=>{D.detail&&C.push({kind:"detail",band:D.detail,row:U,rowIndex:Q,localIndex:S,scopeRows:J,groupRows:L.length?J:void 0,groups:L}),Q++});return}for(let I of F){let U=[...L,I];I.def.header&&C.push({kind:"groupHeader",band:I.def.header,row:I.rows[0],scopeRows:I.rows,groupRows:I.rows,groups:U,group:I}),Z(I.children,U,I.rows),I.def.footer&&C.push({kind:"groupFooter",band:I.def.footer,row:I.rows[I.rows.length-1],scopeRows:I.rows,groupRows:I.rows,groups:U,group:I})}};!v.length&&D.noData?C.push({kind:"noData",band:D.noData,scopeRows:v,groups:[]}):Z(Ao(v,T,0,j),[],v),D.summary&&C.push({kind:"summary",band:D.summary,row:v[v.length-1],scopeRows:v,groups:[]});let z=[],oe=[],xe=[],W,ce=0,me=0,K=!1,ue=!1,V=new Map,N=D.pageFooter?.height??0,H=null,_=(F,L)=>({...j,row:F.row,rows:F.kind==="groupHeader"||F.kind==="groupFooter"||F.kind==="detail"?F.scopeRows:v,groupRows:F.groupRows,pageRows:oe[z.length-1],vars:{now:R,...M,page:L,pages:r??L,rowNum:F.localIndex!==void 0?F.localIndex+1:void 0,rowIndex:F.rowIndex!==void 0?F.rowIndex+1:void 0,groupKey:F.group?.key??F.groups[F.groups.length-1]?.key,groupLevel:F.group?.level}}),le=(F,L={})=>({def:e,measure:s,locale:a,kind:F,width:c,previous:V,anchors:n.anchors,...L}),he=()=>{if(z.length>=l)throw new Error(`Report stopped at ${l} pages (maxPages)`);W={number:z.length+1,total:0,width:i.width,height:i.height,items:[]},z.push(W),oe.push([]),xe.push(H),ce=p,D.pageHeader&&!(e.pageHeaderSkipFirst&&z.length===1)&&(ce+=D.pageHeader.height),me=i.height-d-N,K=!1,ue=!1,V.clear()},be=(F,L,J,I={},U)=>{let S=U?{height:U.height,items:Va(U.items,ce),anchors:U.anchors?.map(te=>({...te,y:te.y+ce}))}:Ye(F,J,le(L,I),b,ce);for(let te of S.items)W.items.push(te);return S.anchors&&(W.anchors??(W.anchors=[])).push(...S.anchors),ce+=S.height,ue=!0,S.height},X=(F,L,J,I={})=>Ye(F,J,le(L,{...I,previous:void 0,anchors:!1}),0,0).height,Y=(F,L,J)=>{let I=F.band,U=Math.max(1,Math.floor(I.columns??1)),S=I.columnGap??0,te=(c-S*(U-1))/U,ne=F.chunk.map((h,w)=>Ye(I,{...L,row:h,vars:{...L.vars,rowNum:(F.localIndex??0)+w+1,rowIndex:(F.rowIndex??0)+w+1}},le(F.kind,{...J,rowIndex:(F.rowIndex??0)+w,previous:void 0,width:te}),b+w*(te+S),0));return{height:Math.max(...ne.map(h=>h.height)),items:ne.flatMap(h=>h.items),anchors:n.anchors?ne.flatMap(h=>h.anchors??[]):void 0}},se=F=>F.kind==="detail"||F.kind==="groupHeader"||F.kind==="groupFooter",fe=F=>{!D.columnHeader||K||!se(F)||(K=!0,be(D.columnHeader,"columnHeader",_(F,W.number)))},de=F=>{for(let L of F.groups){if(L===F.group&&F.kind==="groupHeader")break;L.def.repeatHeader&&L.def.header&&be(L.def.header,"groupHeader",{..._(F,W.number),rows:L.rows,groupRows:L.rows,row:L.rows[0]})}},ie=F=>{if(!e.fillEmptyRows||!D.detail)return;let L=D.detail.height;if(L>.5)for(;ce+L<=F+.01&&!(be(D.detail,"detail",{...j,rows:v},{blank:!0})<=0););};he();let P=new Set;for(let F=0;F<C.length;F++){let L=C[F],J=_(L,W.number);if(L.band.visible&&!Jn(Me(L.band.visible,J)))continue;L.kind==="groupHeader"&&L.group?.def.resetPageNumber&&(H&&ue?(ie(me),H=L.group,he()):(H=L.group,xe[z.length-1]=H));let I=L.band.pageBreakBefore&&ue||L.kind==="groupHeader"&&L.group?.def.newPage&&ue&&!L.group.def.resetPageNumber&&P.has(L.group.level);L.kind==="groupHeader"&&L.group&&P.add(L.group.level),I&&(ie(me),he());let U={rowIndex:L.rowIndex};L.kind==="detail"&&D.detail?.altBackground&&(L.localIndex??0)%2===1&&(U.background=D.detail.altBackground);let S=!Ya(L.band)&&!L.band.elements.some(w=>w.type==="field"&&w.suppressRepeated),te=L.chunk?Y(L,J,U):Ye(L.band,J,le(L.kind,{...U,previous:void 0}),b,0),ne=te.height;if(!K&&D.columnHeader&&se(L)&&(ne+=D.columnHeader.height),L.kind==="groupHeader"){let w=L.group?.def.keepWithRows??1;for(let m=F+1,g=0;m<C.length&&g<w&&!(C[m].kind!=="detail"&&C[m].kind!=="groupHeader");m++)ne+=X(C[m].band,C[m].kind,_(C[m],W.number)),C[m].kind==="detail"&&g++}ce+ne>me+.01&&ue?(ie(me),he(),fe(L),de(L)):fe(L);let h=_(L,W.number);if(be(L.band,L.kind,h,U,S||L.chunk?te:void 0),L.chunk?oe[z.length-1].push(...L.chunk):L.kind==="detail"&&L.row&&oe[z.length-1].push(L.row),e.fillEmptyRows&&L.kind==="detail"&&C[F+1]?.kind!=="detail"){let m=C.slice(F+1).filter(g=>g.kind==="groupFooter"||g.kind==="summary").reduce((g,k)=>g+X(k.band,k.kind,_(k,W.number)),0);C.slice(F+1).some(g=>g.kind==="detail")||ie(me-m)}L.band.pageBreakAfter&&F<C.length-1&&he()}!C.length&&e.fillEmptyRows&&ie(me);let O=new Map;xe.forEach((F,L)=>O.set(F,[...O.get(F)??[],L]));for(let F of O.values())F.forEach((L,J)=>{z[L].number=J+1,z[L].total=F.length});return z.forEach((F,L)=>{let J=xe[L],I={...j,row:oe[L][0],rows:oe[L],pageRows:oe[L],groupRows:J?.rows,vars:{now:R,...M,page:F.number,pages:F.total,pageIndex:L+1,pageCount:z.length,groupKey:J?.key,lastPage:L===z.length-1,firstPage:L===0}},U=[],S=(te,ne,h)=>{if(!te||te.visible&&!Jn(Me(te.visible,I)))return;let w=Ye(te,I,le(ne,{previous:void 0}),b,h,0);U.push(...w.items),w.anchors&&(F.anchors??(F.anchors=[])).push(...w.anchors)};e.pageHeaderSkipFirst&&L===0||S(D.pageHeader,"pageHeader",p),S(D.pageFooter,"pageFooter",i.height-d-N),F.items.push(...U)}),eo(z,{watermark:e.watermark,emboss:e.emboss},i,(F,L)=>({...j,rows:oe[L],pageRows:oe[L],vars:{now:R,...M,page:F.number,pages:F.total,pageIndex:L+1,pageCount:z.length}}),s),{pages:z,width:i.width,height:i.height,rowCount:v.length,ms:0}}var Ja=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function Za(e){let t=4294967295;for(let n=0;n<e.length;n++)t=Ja[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Co=new TextEncoder;function sn(e){let t=e.map(d=>{let b=Co.encode(d.name),c=typeof d.data=="string"?Co.encode(d.data):d.data;return{name:b,data:c,crc:Za(c),offset:0}}),n=t.reduce((d,b)=>d+30+b.name.length+b.data.length,0),r=t.reduce((d,b)=>d+46+b.name.length,0),o=new Uint8Array(n+r+22),s=new DataView(o.buffer),a=0,l=0,i=33;for(let d of t)d.offset=a,s.setUint32(a,67324752,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,2048,!0),s.setUint16(a+8,0,!0),s.setUint16(a+10,l,!0),s.setUint16(a+12,i,!0),s.setUint32(a+14,d.crc,!0),s.setUint32(a+18,d.data.length,!0),s.setUint32(a+22,d.data.length,!0),s.setUint16(a+26,d.name.length,!0),s.setUint16(a+28,0,!0),o.set(d.name,a+30),o.set(d.data,a+30+d.name.length),a+=30+d.name.length+d.data.length;let p=a;for(let d of t)s.setUint32(a,33639248,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,20,!0),s.setUint16(a+8,2048,!0),s.setUint16(a+10,0,!0),s.setUint16(a+12,l,!0),s.setUint16(a+14,i,!0),s.setUint32(a+16,d.crc,!0),s.setUint32(a+20,d.data.length,!0),s.setUint32(a+24,d.data.length,!0),s.setUint16(a+28,d.name.length,!0),s.setUint16(a+30,0,!0),s.setUint16(a+32,0,!0),s.setUint16(a+34,0,!0),s.setUint16(a+36,0,!0),s.setUint32(a+38,0,!0),s.setUint32(a+42,d.offset,!0),o.set(d.name,a+46),a+=46+d.name.length;return s.setUint32(a,101010256,!0),s.setUint16(a+8,t.length,!0),s.setUint16(a+10,t.length,!0),s.setUint32(a+12,a-p,!0),s.setUint32(a+16,p,!0),o}function Ft(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}var Qa=Date.UTC(1899,11,30),ei=e=>(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())-Qa)/864e5,ti=/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,It=e=>e.replace(ti,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Dt=e=>{if(!e)return"";let t=e.replace("#","");return/^[0-9a-f]{6}$/i.test(t)?`FF${t.toUpperCase()}`:/^[0-9a-f]{3}$/i.test(t)?`FF${[...t].map(n=>n+n).join("").toUpperCase()}`:/^[0-9a-f]{8}$/i.test(t)?t.toUpperCase():""},ni={Letter:1,Legal:5,A3:8,A4:9,A5:11,B4:12,B5:13},it=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
14
|
-
`,Qn="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Lo="http://schemas.openxmlformats.org/officeDocument/2006/relationships",er=class{constructor(){this.fonts=['<font><sz val="10"/><name val="\uB9D1\uC740 \uACE0\uB515"/><family val="3"/></font>'];this.fills=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>'];this.borders=["<border><left/><right/><top/><bottom/><diagonal/></border>"];this.numFmts=[];this.xfs=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'];this.idx=new Map;this.fmtIds=new Map}intern(t,n){let r=`${t.length===0,""}${n}`,o=t.indexOf(r);return o>=0?o:(t.push(n),t.length-1)}id(t){if(!t)return 0;let n=JSON.stringify(t),r=this.idx.get(n);if(r!==void 0)return r;let o=t.font??{},s=this.intern(this.fonts,`<font>${o.bold?"<b/>":""}${o.italic?"<i/>":""}${o.strike?"<strike/>":""}${o.underline?"<u/>":""}<sz val="${o.size??10}"/>${Dt(o.color)?`<color rgb="${Dt(o.color)}"/>`:""}<name val="${It(o.name??"\uB9D1\uC740 \uACE0\uB515")}"/><family val="3"/></font>`),a=t.fill&&Dt(t.fill)?this.intern(this.fills,`<fill><patternFill patternType="solid"><fgColor rgb="${Dt(t.fill)}"/><bgColor indexed="64"/></patternFill></fill>`):0,l=(u,y)=>y?`<${u} style="${y.style}"><color rgb="${Dt(y.color)||"FF000000"}"/></${u}>`:`<${u}/>`,i=t.border??{},p=t.border?this.intern(this.borders,`<border>${l("left",i.left)}${l("right",i.right)}${l("top",i.top)}${l("bottom",i.bottom)}<diagonal/></border>`):0,d=0;t.fmt&&t.fmt!=="General"&&(d={0:1,"0.00":2,"#,##0":3,"#,##0.00":4,"0%":9,"0.00%":10,"yyyy-mm-dd":14}[t.fmt]??this.fmtIds.get(t.fmt)??0,d||(d=164+this.numFmts.length,this.numFmts.push(`<numFmt numFmtId="${d}" formatCode="${It(t.fmt)}"/>`),this.fmtIds.set(t.fmt,d)));let b=t.align||t.valign||t.wrap?`<alignment${t.align?` horizontal="${t.align}"`:""}${t.valign?` vertical="${t.valign}"`:""}${t.wrap?' wrapText="1"':""}/>`:"",c=`numFmtId="${d}" fontId="${s}" fillId="${a}" borderId="${p}" xfId="0"`+(d?' applyNumberFormat="1"':"")+(s?' applyFont="1"':"")+(a?' applyFill="1"':"")+(p?' applyBorder="1"':"")+(b?' applyAlignment="1"':"");this.xfs.push(b?`<xf ${c}>${b}</xf>`:`<xf ${c}/>`);let f=this.xfs.length-1;return this.idx.set(n,f),f}xml(){return it+`<styleSheet xmlns="${Qn}">`+(this.numFmts.length?`<numFmts count="${this.numFmts.length}">${this.numFmts.join("")}</numFmts>`:"")+`<fonts count="${this.fonts.length}">${this.fonts.join("")}</fonts><fills count="${this.fills.length}">${this.fills.join("")}</fills><borders count="${this.borders.length}">${this.borders.join("")}</borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="${this.xfs.length}">${this.xfs.join("")}</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>`}};function ri(e){let t=new Set;return e.map((n,r)=>{let o=(n.name??`Sheet${r+1}`).replace(/[[\]:*?/\\]/g," ").slice(0,31).trim()||`Sheet${r+1}`,s=o;for(let a=2;t.has(s.toLowerCase());a++)s=`${o.slice(0,27)} (${a})`;return t.add(s.toLowerCase()),s})}function an(e,t={}){let n=new er,r=ri(e),o=e.map(a=>{let l=[],i=0;for(let T=0;T<a.rows.length;T++)i=Math.max(i,a.rows[T]?.length??0);a.widths&&(i=Math.max(i,a.widths.length));let p=Math.max(a.rows.length,a.heights?.length??0);for(let T=0;T<p;T++){let x=a.rows[T]??[],j=a.heights?.[T],C="";for(let D=0;D<x.length;D++){let Q=x[D];if(!Q)continue;let Z=`${Ft(D)}${T+1}`,z=Q.v,oe=Q.s;z instanceof Date&&(Number.isNaN(z.getTime())?z=null:(z=ei(z),oe={...oe,fmt:oe?.fmt??"yyyy-mm-dd"}));let xe=n.id(oe),W=xe?` s="${xe}"`:"";z==null||z===""?C+=`<c r="${Z}"${W}/>`:typeof z=="number"?C+=Number.isFinite(z)?`<c r="${Z}"${W}><v>${z}</v></c>`:`<c r="${Z}"${W}/>`:typeof z=="boolean"?C+=`<c r="${Z}"${W} t="b"><v>${z?1:0}</v></c>`:C+=`<c r="${Z}"${W} t="inlineStr"><is><t xml:space="preserve">${It(String(z))}</t></is></c>`}(C||j)&&l.push(`<row r="${T+1}"${j?` ht="${Math.round(j*100)/100}" customHeight="1"`:""}>${C}</row>`)}let d=`A1:${Ft(Math.max(0,i-1))}${Math.max(1,p)}`,b=`<sheetViews><sheetView workbookViewId="0"${a.showGrid===!1?' showGridLines="0"':""}>${a.freezeRows?`<pane ySplit="${a.freezeRows}" topLeftCell="A${a.freezeRows+1}" activePane="bottomLeft" state="frozen"/>`:""}</sheetView></sheetViews>`,c=a.widths?.length?`<cols>${a.widths.map((T,x)=>`<col min="${x+1}" max="${x+1}" width="${Math.round(T*100)/100}" customWidth="1"/>`).join("")}</cols>`:"",f=a.merges?.length?`<mergeCells count="${a.merges.length}">${a.merges.map(([T,x,j,C])=>`<mergeCell ref="${Ft(x)}${T+1}:${Ft(C)}${j+1}"/>`).join("")}</mergeCells>`:"",u=a.autoFilter&&i?`<autoFilter ref="A${a.freezeRows||1}:${Ft(i-1)}${Math.max(1,p)}"/>`:"",y=a.page,R=y?.margins?`<pageMargins left="${(y.margins[3]/25.4).toFixed(3)}" right="${(y.margins[1]/25.4).toFixed(3)}" top="${(y.margins[0]/25.4).toFixed(3)}" bottom="${(y.margins[2]/25.4).toFixed(3)}" header="0" footer="0"/>`:"",M=y?`<pageSetup paperSize="${ni[y.paper??"A4"]??9}" orientation="${y.landscape?"landscape":"portrait"}"${y.fitWidth?` fitToWidth="1" fitToHeight="${y.fitHeight??0}"`:""}/>`:"",$=a.breaks?.length?`<rowBreaks count="${a.breaks.length}" manualBreakCount="${a.breaks.length}">${a.breaks.map(T=>`<brk id="${T}" max="16383" man="1"/>`).join("")}</rowBreaks>`:"",v=y?.fitWidth?'<sheetPr><pageSetUpPr fitToPage="1"/></sheetPr>':"";return it+`<worksheet xmlns="${Qn}" xmlns:r="${Lo}">${v}<dimension ref="${d}"/>${b}<sheetFormatPr defaultRowHeight="15"/>${c}<sheetData>${l.join("")}</sheetData>${u}${f}${R}${M}${$}</worksheet>`}),s=[{name:"[Content_Types].xml",data:it+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'+e.map((a,l)=>`<Override PartName="/xl/worksheets/sheet${l+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")+'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/></Types>'},{name:"_rels/.rels",data:it+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>'},{name:"docProps/core.xml",data:it+`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>${It(t.creator??"FreeReport")}</dc:creator><dcterms:created xsi:type="dcterms:W3CDTF">${new Date().toISOString().slice(0,19)}Z</dcterms:created></cp:coreProperties>`},{name:"xl/workbook.xml",data:it+`<workbook xmlns="${Qn}" xmlns:r="${Lo}"><sheets>${r.map((a,l)=>`<sheet name="${It(a)}" sheetId="${l+1}" r:id="rId${l+1}"/>`).join("")}</sheets></workbook>`},{name:"xl/_rels/workbook.xml.rels",data:it+`<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${e.map((a,l)=>`<Relationship Id="rId${l+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${l+1}.xml"/>`).join("")}<Relationship Id="rId${e.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`},...o.map((a,l)=>({name:`xl/worksheets/sheet${l+1}.xml`,data:a}))];return s.push({name:"xl/styles.xml",data:n.xml()}),sn(s)}var Do=1.9,oi=72/25.4,Je=e=>{if(e)return e.style==="double"?{style:"double",color:e.color}:e.style==="dashed"?{style:"dashed",color:e.color}:e.style==="dotted"?{style:"dotted",color:e.color}:{style:e.width>=.6?"thick":e.width>=.35?"medium":e.width<.12?"hair":"thin",color:e.color}};function Io(e){if(!(!e||e==="korean"||e==="koreanNumber"||e==="bizNo"||e==="upper"||e==="lower"))return Tn(e)?e.replace(/dddd/g,"aaaa").replace(/ddd/g,"aaa").replace(/\ba\b|tt/g,"AM/PM").replace(/H/g,"h"):e.replace(/([^"\\#0,.%;()₩$€\-\s])/gu,(t,n,r,o)=>/"/.test(o.slice(0,r).replace(/[^"]/g,"").length%2?'"':"")?t:`"${t}"`).replace(/""/g,"")}function Fo(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var He=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function Bt(e,t,n={}){let r=_e(t.page),o=c=>c.source?.band!=="watermark",s=[];for(let c of e.pages)for(let f of c.items)o(f)&&(f.kind==="text"||f.kind==="box"?s.push(f.x,f.x+f.w):f.kind==="line"&&Math.abs(f.x1-f.x2)<.01&&s.push(f.x1));let a=Fo(s.length?s:[r.margins[3],r.width-r.margins[1]],1.2),l=a.slice(1).map((c,f)=>Math.max(.5,(c-a[f])/Do)),i=c=>({name:c,rows:[],widths:l,heights:[],merges:[],breaks:[],showGrid:!1,page:{paper:typeof t.page?.size=="string"?t.page.size:"A4",landscape:t.page?.orientation==="landscape",margins:r.margins,fitWidth:!0,fitHeight:n.onePerPage?1:e.pages.length}}),p=[],d=i(n.sheetName??t.name??"Report");p.push(d);let b=0;return e.pages.forEach((c,f)=>{n.onePerPage&&f>0&&(d=i(`${f+1}`),p.push(d),b=0);let u=c.items.filter(o),y=[];for(let x of u)x.kind==="text"||x.kind==="box"?y.push(x.y,x.y+x.h):x.kind==="line"&&Math.abs(x.y1-x.y2)<.01&&y.push(x.y1);if(!y.length)return;let R=Fo(y,.8);f>0&&!n.onePerPage&&d.breaks.push(b),R.slice(1).forEach((x,j)=>{d.heights[b+j]=Math.max(2,(x-R[j])*oi)});let M=(x,j)=>{var D,Q;let C=(D=d.rows)[Q=b+x]??(D[Q]=[]);return C[j]??(C[j]={v:null,s:{}})},$=(x,j,C,D)=>{let Q=He(a,x),Z=Math.max(Q+1,He(a,x+C)),z=He(R,j),oe=Math.max(z+1,He(R,j+D));return{r1:z,c1:Q,r2:oe-1,c2:Z-1}},v=(x,j)=>{for(let C=x.c1;C<=x.c2;C++){if(j.top){let D=M(x.r1,C).s;D.border={...D.border,top:Je(j.top)}}if(j.bottom){let D=M(x.r2,C).s;D.border={...D.border,bottom:Je(j.bottom)}}}for(let C=x.r1;C<=x.r2;C++){if(j.left){let D=M(C,x.c1).s;D.border={...D.border,left:Je(j.left)}}if(j.right){let D=M(C,x.c2).s;D.border={...D.border,right:Je(j.right)}}}},T=new Set;for(let x of u)if(x.kind==="box"){let j=$(x.x,x.y,x.w,x.h);if(x.fill)for(let C=j.r1;C<=j.r2;C++)for(let D=j.c1;D<=j.c2;D++)M(C,D).s.fill=x.fill;if(x.border&&v(j,x.border),x.stroke&&x.stroke.width>0){let C={width:x.stroke.width,style:x.stroke.dash??"solid",color:x.stroke.color};v(j,{top:C,right:C,bottom:C,left:C})}}else if(x.kind==="line"){let j={width:x.width,style:x.dash??"solid",color:x.color};if(Math.abs(x.y1-x.y2)<.01){let C=He(R,x.y1),D=He(a,Math.min(x.x1,x.x2)),Q=He(a,Math.max(x.x1,x.x2));for(let Z=D;Z<Q;Z++)if(C<R.length-1){let z=M(C,Z).s;z.border={...z.border,top:Je(j)}}else{let z=M(C-1,Z).s;z.border={...z.border,bottom:Je(j)}}}else if(Math.abs(x.x1-x.x2)<.01){let C=He(a,x.x1),D=He(R,Math.min(x.y1,x.y2)),Q=He(R,Math.max(x.y1,x.y2));for(let Z=D;Z<Q;Z++)if(C<a.length-1){let z=M(Z,C).s;z.border={...z.border,left:Je(j)}}else{let z=M(Z,C-1).s;z.border={...z.border,right:Je(j)}}}}else if(x.kind==="text"){let j=$(x.x,x.y,x.w,x.h),C=`${j.r1}:${j.c1}`,D=M(j.r1,j.c1),Q=x.source?.value,Z=Io(x.source?.format),z=typeof Q=="number"&&Number.isFinite(Q)&&x.source?.format!=="korean"&&x.source?.format!=="koreanNumber";T.has(C)&&D.v!==null?D.v=`${D.v}
|
|
15
|
-
${
|
|
16
|
-
`)}var De=e=>Math.round(e*7200/25.4),si=25.4/72,Bo=e=>e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),or=e=>{let t=rn(e);return t&&t[3]>0?"#"+t.slice(0,3).map(n=>Math.round(n).toString(16).padStart(2,"0")).join("").toUpperCase():null},nr='xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:hp="http://www.hancom.co.kr/hwpml/2011/paragraph" xmlns:hp10="http://www.hancom.co.kr/hwpml/2016/paragraph" xmlns:hs="http://www.hancom.co.kr/hwpml/2011/section" xmlns:hc="http://www.hancom.co.kr/hwpml/2011/core" xmlns:hh="http://www.hancom.co.kr/hwpml/2011/head" xmlns:hhs="http://www.hancom.co.kr/hwpml/2011/history" xmlns:hm="http://www.hancom.co.kr/hwpml/2011/master-page" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:ooxmlchart="http://www.hancom.co.kr/hwpml/2016/ooxmlchart" xmlns:hwpunitchar="http://www.hancom.co.kr/hwpml/2016/HwpUnitChar" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"',lt='<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>',No=["\uB9D1\uC740 \uACE0\uB515","\uB098\uB214\uACE0\uB515"],ai=e=>/nanum\s*gothic|나눔고딕/i.test(e)?1:0,sr=["HANGUL","LATIN","HANJA","JAPANESE","OTHER","SYMBOL","USER"],ii=["0.1","0.12","0.15","0.2","0.25","0.3","0.4","0.5","0.6","0.7","1.0","1.5","2.0","3.0","4.0","5.0"],Ht=class{constructor(t){this.first=t;this.list=[];this.ids=new Map}id(t){let n=JSON.stringify(t),r=this.ids.get(n);return r===void 0&&(r=this.first+this.list.length,this.ids.set(n,r),this.list.push(t)),r}};function ln(e,t){if(!t||t.width<=0)return`<hh:${e} type="NONE" width="0.1 mm" color="#000000"/>`;let n=t.style==="dashed"?"DASH":t.style==="dotted"?"DOT":t.style==="double"?"DOUBLE_SLIM":"SOLID",r=ii.reduce((o,s)=>Math.abs(+s-t.width)<Math.abs(+o-t.width)?s:o);return`<hh:${e} type="${n}" width="${r} mm" color="${or(t.color)??"#000000"}"/>`}function rr(e,t){let n=t.fill?`<hc:fillBrush><hc:winBrush faceColor="${t.fill}" hatchColor="#000000" alpha="0"/></hc:fillBrush>`:"";return`<hh:borderFill id="${e}" threeD="0" shadow="0" centerLine="NONE" breakCellSeparateLine="0"><hh:slash type="NONE" Crooked="0" isCounter="0"/><hh:backSlash type="NONE" Crooked="0" isCounter="0"/>`+ln("leftBorder",t.left)+ln("rightBorder",t.right)+ln("topBorder",t.top)+ln("bottomBorder",t.bottom)+`<hh:diagonal type="SOLID" width="0.1 mm" color="#000000"/>${n}</hh:borderFill>`}function li(e,t){let n=r=>sr.map(o=>`${o.toLowerCase()}="${r}"`).join(" ");return`<hh:charPr id="${e}" height="${t.size}" textColor="${t.color}" shadeColor="none" useFontSpace="0" useKerning="0" symMark="NONE" borderFillIDRef="2"><hh:fontRef ${n(t.font)}/><hh:ratio ${n(100)}/><hh:spacing ${n(t.spacing)}/><hh:relSz ${n(100)}/><hh:offset ${n(0)}/>`+(t.italic?"<hh:italic/>":"")+(t.bold?"<hh:bold/>":"")+`<hh:underline type="${t.underline?"BOTTOM":"NONE"}" shape="SOLID" color="${t.color}"/><hh:strikeout shape="${t.strike?"SOLID":"NONE"}" color="${t.color}"/><hh:outline type="NONE"/><hh:shadow type="NONE" color="#B2B2B2" offsetX="10" offsetY="10"/></hh:charPr>`}function ci(e,t){return`<hh:paraPr id="${e}" tabPrIDRef="0" condense="0" fontLineHeight="0" snapToGrid="0" suppressLineNumbers="0" checked="0"><hh:align horizontal="${t.align}" vertical="BASELINE"/><hh:heading type="NONE" idRef="0" level="0"/><hh:breakSetting breakLatinWord="KEEP_WORD" breakNonLatinWord="BREAK_WORD" widowOrphan="0" keepWithNext="0" keepLines="0" pageBreakBefore="0" lineWrap="SQUEEZE"/><hh:autoSpacing eAsianEng="0" eAsianNum="0"/><hh:margin><hc:intent value="0" unit="HWPUNIT"/><hc:left value="0" unit="HWPUNIT"/><hc:right value="0" unit="HWPUNIT"/><hc:prev value="0" unit="HWPUNIT"/><hc:next value="0" unit="HWPUNIT"/></hh:margin><hh:lineSpacing type="PERCENT" value="${t.spacing}" unit="HWPUNIT"/><hh:border borderFillIDRef="2" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/></hh:paraPr>`}function Ho(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var Ze=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function ui(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(e.length>24&&e[0]===137&&e[1]===80)return[t.getUint32(16),t.getUint32(20)];if(e.length>4&&e[0]===255&&e[1]===216)for(let n=2;n+9<e.length;){if(e[n]!==255)return null;let r=e[n+1],o=t.getUint16(n+2);if(r>=192&&r<=207&&r!==196&&r!==200&&r!==204)return[t.getUint16(n+7),t.getUint16(n+5)];n+=2+o}return null}function fi(e){let t=/^data:image\/(png|jpe?g);base64,(.*)$/is.exec(e.trim());if(!t||typeof atob!="function")return null;try{let n=atob(t[2].replace(/\s+/g,"")),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return{bytes:r,ext:t[1].toLowerCase()==="png"?"png":"jpg"}}catch{return null}}function ar(e,t){let n=_e(t.page),r=e.width||n.width,o=e.height||n.height,s=new Ht(0),a=new Ht(0),l=new Ht(3),i={top:void 0,right:void 0,bottom:void 0,left:void 0,fill:null};s.id({font:0,size:1e3,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});let p=s.id({font:0,size:100,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});a.id({align:"LEFT",spacing:160});let d=a.id({align:"LEFT",spacing:100}),b=l.id(i),c=[],f=new Map,u=1e3,y=0,R=[],M=()=>`<hp:p id="${y++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${p}"/></hp:p>`,$=V=>V.flatMap(N=>{let H=N.font.size*si,_=N.lines.length>1?(N.lines[N.lines.length-1].y-N.lines[0].y)/(N.lines.length-1):H*1.25,le=s.id({font:ai(N.font.family),size:Math.max(100,Math.round(N.font.size*100)),color:or(N.color)??"#000000",bold:N.font.bold,italic:N.font.italic,underline:!!N.underline,strike:!!N.strike,spacing:Math.max(-50,Math.min(50,Math.round((N.letterSpacing??0)/H*100)))}),he=a.id({align:{left:"LEFT",center:"CENTER",right:"RIGHT",justify:"JUSTIFY"}[N.align]??"LEFT",spacing:Math.max(80,Math.min(300,Math.round(_/H*100)))});return N.lines.filter((X,Y)=>Y===0||X.y<=N.y+N.h+.5).map(X=>`<hp:p id="${y++}" paraPrIDRef="${he}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${le}"><hp:t>${Bo(X.text.replace(/\t/g," "))}</hp:t></hp:run></hp:p>`)}),v=(V,N)=>{let H=f.get(V.src);if(!H){let P=fi(V.src),O=P&&ui(P.bytes);if(!P||!O||!O[0]||!O[1])return"";H={id:`image${c.length+1}`,px:O},c.push({name:`${H.id}.${P.ext}`,bytes:P.bytes}),f.set(V.src,H)}let{x:_,y:le,w:he,h:be}=V;if(V.fit==="contain"){let P=Math.min(he/H.px[0],be/H.px[1]),O=H.px[0]*P,F=H.px[1]*P;_+=(he-O)/2,le+=(be-F)/2,he=O,be=F}let X=De(he),Y=De(be),se=H.px[0]*75,fe=H.px[1]*75,de=u++,ie=(P,O)=>`e1="${P}" e2="0" e3="0" e4="0" e5="${O}" e6="0"`;return`<hp:pic id="${de}" zOrder="${N}" numberingType="PICTURE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" href="" groupLevel="0" instid="${de}" reverse="0"><hp:offset x="0" y="0"/><hp:orgSz width="${X}" height="${Y}"/><hp:curSz width="${X}" height="${Y}"/><hp:flip horizontal="0" vertical="0"/><hp:rotationInfo angle="0" centerX="${X>>1}" centerY="${Y>>1}" rotateimage="1"/><hp:renderingInfo><hc:transMatrix ${ie(1,1)}/><hc:scaMatrix ${ie(1,1)}/><hc:rotMatrix ${ie(1,1)}/></hp:renderingInfo><hp:imgRect><hc:pt0 x="0" y="0"/><hc:pt1 x="${X}" y="0"/><hc:pt2 x="${X}" y="${Y}"/><hc:pt3 x="0" y="${Y}"/></hp:imgRect><hp:imgClip left="0" right="${se}" top="0" bottom="${fe}"/><hp:inMargin left="0" right="0" top="0" bottom="0"/><hp:imgDim dimwidth="${se}" dimheight="${fe}"/><hc:img binaryItemIDRef="${H.id}" bright="0" contrast="0" effect="REAL_PIC" alpha="0"/><hp:sz width="${X}" widthRelTo="ABSOLUTE" height="${Y}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${De(le)}" horzOffset="${De(_)}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/></hp:pic>`},T=V=>{let N=[],H=[];for(let S of V)S.kind==="text"||S.kind==="box"&&(S.fill||S.border||S.stroke)?(N.push(S.x,S.x+S.w),H.push(S.y,S.y+S.h)):S.kind==="line"&&Math.abs(S.y1-S.y2)<.01?(H.push(S.y1),N.push(S.x1,S.x2)):S.kind==="line"&&Math.abs(S.x1-S.x2)<.01&&(N.push(S.x1),H.push(S.y1,S.y2));let _=Ho(N,1.2),le=Ho(H,.8);if(_.length<2||le.length<2)return"";let he=V.filter(S=>S.kind==="text"&&!S.rotate&&S.text.trim()!==""),be=[];for(let S=0;S<200;S++){let te=le.length-1,ne=_.length-1,h=Array.from({length:te},()=>Array(ne).fill(null));be=[];for(let g of he){let k=Math.min(Ze(_,g.x),ne-1),E=Math.min(Ze(le,g.y),te-1),A=Math.max(k+1,Ze(_,g.x+g.w)),B=Math.max(E+1,Ze(le,g.y+g.h)),re=h[E][k];if(re){re.texts.push(g);continue}let q=!0;for(let pe=E;pe<B&&q;pe++)for(let ke=k;ke<A;ke++)if(h[pe][ke]){q=!1;break}let ae=q?{r:E,c:k,rs:B-E,cs:A-k,texts:[g]}:{r:E,c:k,rs:1,cs:1,texts:[g]};for(let pe=ae.r;pe<ae.r+ae.rs;pe++)for(let ke=ae.c;ke<ae.c+ae.cs;ke++)h[pe][ke]=ae;be.push(ae)}for(let g=0;g<te;g++)for(let k=0;k<ne;k++)if(!h[g][k]){let E={r:g,c:k,rs:1,cs:1,texts:[]};h[g][k]=E,be.push(E)}let w=le.slice(1,-1).findIndex((g,k)=>!be.some(E=>E.r===k+1)),m=_.slice(1,-1).findIndex((g,k)=>!be.some(E=>E.c===k+1));if(w<0&&m<0)break;w>=0&&(le=le.filter((g,k)=>k!==w+1)),m>=0&&(_=_.filter((g,k)=>k!==m+1))}let X=le.length-1,Y=_.length-1,se=Array.from({length:X+1},()=>Array(Y).fill(void 0)),fe=Array.from({length:X},()=>Array(Y+1).fill(void 0)),de=Array.from({length:X},()=>Array(Y).fill(null)),ie=(S,te,ne)=>{let h=Ze(ne,S);return[h,Math.max(h,Ze(ne,te))]};for(let S of V)if(S.kind==="box"){let[te,ne]=ie(S.x,S.x+S.w,_),[h,w]=ie(S.y,S.y+S.h,le);if(ne===te||w===h)continue;let m=or(S.fill);if(m&&(S.opacity??1)>.05)for(let E=h;E<w;E++)for(let A=te;A<ne;A++)de[E][A]=m;let g=S.stroke&&S.stroke.width>0?{width:S.stroke.width,style:S.stroke.dash??"solid",color:S.stroke.color}:void 0,k={top:S.border?.top??g,bottom:S.border?.bottom??g,left:S.border?.left??g,right:S.border?.right??g};for(let E=te;E<ne;E++)k.top&&(se[h][E]=k.top),k.bottom&&(se[w][E]=k.bottom);for(let E=h;E<w;E++)k.left&&(fe[E][te]=k.left),k.right&&(fe[E][ne]=k.right)}else if(S.kind==="line"){let te={width:S.width,style:S.dash??"solid",color:S.color};if(Math.abs(S.y1-S.y2)<.01){let ne=Ze(le,S.y1),[h,w]=ie(Math.min(S.x1,S.x2),Math.max(S.x1,S.x2),_);for(let m=h;m<w;m++)se[ne][m]=te}else if(Math.abs(S.x1-S.x2)<.01){let ne=Ze(_,S.x1),[h,w]=ie(Math.min(S.y1,S.y2),Math.max(S.y1,S.y2),le);for(let m=h;m<w;m++)fe[m][ne]=te}}let P=_.map(De),O=le.map(De),F=S=>S.find(te=>te!==void 0),L={top:"TOP",middle:"CENTER",bottom:"BOTTOM"},J=Array.from({length:X},()=>[]);for(let S of be.sort((te,ne)=>te.r-ne.r||te.c-ne.c)){let te=l.id({top:F(se[S.r].slice(S.c,S.c+S.cs)),bottom:F(se[S.r+S.rs].slice(S.c,S.c+S.cs)),left:F(fe.slice(S.r,S.r+S.rs).map(E=>E[S.c])),right:F(fe.slice(S.r,S.r+S.rs).map(E=>E[S.c+S.cs])),fill:de[S.r][S.c]}),ne=P[S.c+S.cs]-P[S.c],h=O[S.r+S.rs]-O[S.r],w=0,m=0,g=S.texts[0];if(g?.lines.length){let E=_[S.c],A=_[S.c+S.cs],B=Math.min(...g.lines.map(ke=>ke.x)),re=Math.max(...g.lines.map(ke=>ke.x+ke.width)),q=ke=>Math.max(0,Math.min(5,ke)),ae=q(B-E),pe=q(A-re);g.align==="right"?(m=pe,w=Math.min(ae,.5)):g.align==="center"?w=m=Math.min(ae,pe,1):(w=ae,m=Math.min(pe,.5))}let k=S.texts.length?$(S.texts).join(""):M();S.texts.length&&R.push(S.texts.map(E=>E.text).join(" ")),J[S.r].push(`<hp:tc name="" header="0" hasMargin="1" protect="0" editable="0" dirty="0" borderFillIDRef="${te}"><hp:subList id="" textDirection="HORIZONTAL" lineWrap="BREAK" vertAlign="${g?L[g.valign]??"TOP":"CENTER"}" linkListIDRef="0" linkListNextIDRef="0" textWidth="0" textHeight="0" hasTextRef="0" hasNumRef="0">${k}</hp:subList><hp:cellAddr colAddr="${S.c}" rowAddr="${S.r}"/><hp:cellSpan colSpan="${S.cs}" rowSpan="${S.rs}"/><hp:cellSz width="${ne}" height="${h}"/><hp:cellMargin left="${De(w)}" right="${De(m)}" top="0" bottom="0"/></hp:tc>`)}let I=P[Y]-P[0],U=O[X]-O[0];return`<hp:tbl id="${u++}" zOrder="0" numberingType="TABLE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" pageBreak="NONE" repeatHeader="0" rowCnt="${X}" colCnt="${Y}" cellSpacing="0" borderFillIDRef="${b}" noAdjust="1"><hp:sz width="${I}" widthRelTo="ABSOLUTE" height="${U}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${O[0]}" horzOffset="${P[0]}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/><hp:inMargin left="0" right="0" top="0" bottom="0"/>`+J.map(S=>`<hp:tr>${S.join("")}</hp:tr>`).join("")+"</hp:tbl>"},[x,j,C,D]=n.margins.map(De),Q=`<hp:secPr id="" textDirection="HORIZONTAL" spaceColumns="1134" tabStop="8000" tabStopVal="4000" tabStopUnit="HWPUNIT" outlineShapeIDRef="1" memoShapeIDRef="0" textVerticalWidthHead="0" masterPageCnt="0"><hp:grid lineGrid="0" charGrid="0" wonggojiFormat="0"/><hp:startNum pageStartsOn="BOTH" page="0" pic="0" tbl="0" equation="0"/><hp:visibility hideFirstHeader="0" hideFirstFooter="0" hideFirstMasterPage="0" border="SHOW_ALL" fill="SHOW_ALL" hideFirstPageNum="0" hideFirstEmptyLine="0" showLineNumber="0"/><hp:lineNumberShape restartType="0" countBy="0" distance="0" startNumber="0"/><hp:pagePr landscape="${r>o?"NARROWLY":"WIDELY"}" width="${De(Math.min(r,o))}" height="${De(Math.max(r,o))}" gutterType="LEFT_ONLY"><hp:margin header="0" footer="0" gutter="0" left="${D}" right="${j}" top="${x}" bottom="${C}"/></hp:pagePr><hp:footNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="-1" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="283" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="EACH_COLUMN" beneathText="0"/></hp:footNotePr><hp:endNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="14692344" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="0" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="END_OF_DOCUMENT" beneathText="0"/></hp:endNotePr>`+["BOTH","EVEN","ODD"].map(V=>`<hp:pageBorderFill type="${V}" borderFillIDRef="1" textBorder="PAPER" headerInside="0" footerInside="0" fillArea="PAPER"><hp:offset left="1417" right="1417" top="1417" bottom="1417"/></hp:pageBorderFill>`).join("")+'</hp:secPr><hp:ctrl><hp:colPr id="" type="NEWSPAPER" layout="LEFT" colCount="1" sameSz="1" sameGap="0"/></hp:ctrl>',z=(e.pages.length?e.pages:[{items:[]}]).map((V,N)=>{let H=V.items.filter(le=>le.source?.band!=="watermark"),_=T(H)+H.filter(le=>le.kind==="image"&&!le.emboss).map((le,he)=>v(le,he+1)).join("");return`<hp:p id="${y++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="${N>0?1:0}" columnBreak="0" merged="0"><hp:run charPrIDRef="${p}">${N===0?Q:""}${_}<hp:t/></hp:run></hp:p>`}).join(""),oe=`${lt}<hs:sec ${nr}>${z}</hs:sec>`,xe=sr.map(V=>`<hh:fontface lang="${V}" fontCnt="${No.length}">`+No.map((N,H)=>`<hh:font id="${H}" face="${N}" type="TTF" isEmbedded="0"><hh:typeInfo familyType="FCAT_GOTHIC" weight="6" proportion="4" contrast="0" strokeVariation="1" armStyle="1" letterform="1" midline="1" xHeight="1"/></hh:font>`).join("")+"</hh:fontface>").join(""),W=rr(1,i)+rr(2,i).replace("</hh:borderFill>",'<hc:fillBrush><hc:winBrush faceColor="none" hatchColor="#FF000000" alpha="0"/></hc:fillBrush></hh:borderFill>'),ce=`${lt}<hh:head ${nr} version="1.4" secCnt="1"><hh:beginNum page="1" footnote="1" endnote="1" pic="1" tbl="1" equation="1"/><hh:refList><hh:fontfaces itemCnt="${sr.length}">${xe}</hh:fontfaces><hh:borderFills itemCnt="${l.list.length+2}">${W}${l.list.map((V,N)=>rr(N+3,V)).join("")}</hh:borderFills><hh:charProperties itemCnt="${s.list.length}">${s.list.map((V,N)=>li(N,V)).join("")}</hh:charProperties><hh:tabProperties itemCnt="1"><hh:tabPr id="0" autoTabLeft="0" autoTabRight="0"/></hh:tabProperties><hh:numberings itemCnt="1"><hh:numbering id="1" start="0">`+["^1.","^2.","^3)","^4)","(^5)","(^6)","^7"].map((V,N)=>`<hh:paraHead start="1" level="${N+1}" align="LEFT" useInstWidth="1" autoIndent="1" widthAdjust="0" textOffsetType="PERCENT" textOffset="50" numFormat="${N===6?"CIRCLED_DIGIT":N%2?"HANGUL_SYLLABLE":"DIGIT"}" charPrIDRef="4294967295" checkable="${N===6?1:0}">${V}</hh:paraHead>`).join("")+`</hh:numbering></hh:numberings><hh:paraProperties itemCnt="${a.list.length}">${a.list.map((V,N)=>ci(N,V)).join("")}</hh:paraProperties><hh:styles itemCnt="1"><hh:style id="0" type="PARA" name="\uBC14\uD0D5\uAE00" engName="Normal" paraPrIDRef="0" charPrIDRef="0" nextStyleIDRef="0" langID="1042" lockForm="0"/></hh:styles></hh:refList><hh:compatibleDocument targetProgram="HWP201X"><hh:layoutCompatibility/></hh:compatibleDocument><hh:docOption><hh:linkinfo path="" pageInherit="0" footnoteInherit="0"/></hh:docOption><hh:trackchageConfig flags="56"/></hh:head>`,me=new Date().toISOString().replace(/\.\d+Z$/,"Z"),K=Bo(t.name??""),ue=`${lt}<opf:package ${nr} version="" unique-identifier="" id=""><opf:metadata><opf:title>${K}</opf:title><opf:language>ko</opf:language><opf:meta name="creator" content="text">FreeReport</opf:meta><opf:meta name="CreatedDate" content="text">${me}</opf:meta><opf:meta name="ModifiedDate" content="text">${me}</opf:meta></opf:metadata><opf:manifest><opf:item id="header" href="Contents/header.xml" media-type="application/xml"/>`+c.map(V=>`<opf:item id="${V.name.replace(/\..*$/,"")}" href="BinData/${V.name}" media-type="image/${V.name.endsWith("png")?"png":"jpg"}" isEmbeded="1"/>`).join("")+'<opf:item id="section0" href="Contents/section0.xml" media-type="application/xml"/><opf:item id="settings" href="settings.xml" media-type="application/xml"/></opf:manifest><opf:spine><opf:itemref idref="header" linear="yes"/><opf:itemref idref="section0" linear="yes"/></opf:spine></opf:package>';return sn([{name:"mimetype",data:"application/hwp+zip"},{name:"version.xml",data:`${lt}<hv:HCFVersion xmlns:hv="http://www.hancom.co.kr/hwpml/2011/version" tagetApplication="WORDPROCESSOR" major="5" minor="0" micro="5" buildNumber="0" os="1" xmlVersion="1.4" application="FreeReport" appVersion="1.0"/>`},{name:"Contents/header.xml",data:ce},{name:"Contents/section0.xml",data:oe},{name:"Preview/PrvText.txt",data:R.join(`\r
|
|
17
|
-
`).slice(0,1024)},{name:"settings.xml",data:`${
|
|
11
|
+
`)}function Lt(e){return oo(new TextEncoder().encode(so(e)))}var ra="212222 222122 222221 121223 121322 131222 122213 122312 132212 221213 221312 231212 112232 122132 122231 113222 123122 123221 223211 221132 221231 213212 223112 312131 311222 321122 321221 312212 322112 322211 212123 212321 232121 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 213131 311123 311321 331121 312113 312311 332111 314111 221411 431111 111224 111422 121124 121421 141122 141221 112214 112412 122114 122411 142112 142211 241211 221114 413111 241112 134111 111242 121142 121241 114212 124112 124211 411212 421112 421211 212141 214121 412121 111143 111341 131141 114113 114311 411113 411311 113141 114131 311141 411131 211412 211214 211232 2331112".split(" "),oa=103,ao=104,sa=105,aa=106,ia=99,la=100,ca=101;function qn(e,t){let n=0;for(;t+n<e.length&&e.charCodeAt(t+n)>=48&&e.charCodeAt(t+n)<=57;)n++;return n}function io(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n<32)return"A";if(n>=96)return"B"}return"B"}function Wn(e){for(let c=0;c<e.length;c++)if(e.charCodeAt(c)>127)throw new Error(`Code128: unsupported character at ${c}`);let t=[],n=null,r=c=>{n!==c&&(n===null?t.push(c==="A"?oa:c==="B"?ao:sa):t.push(c==="A"?ca:c==="B"?la:ia),n=c)},o=0;for(;o<e.length;){let c=qn(e,o);if(c>=4){c%2&&((n===null||n==="C")&&r(io(e,o)),t.push(e.charCodeAt(o++)-32)),r("C");let f=o+(c-c%2);for(;o<f;o+=2)t.push(+e.substr(o,2));continue}let i=e.charCodeAt(o);n===null||n==="C"?r(io(e,o)):i<32&&n==="B"?r("A"):i>=96&&n==="A"&&r("B"),t.push(n==="A"&&i<32?i+64:i-32),o++}n===null&&t.push(ao);let s=t[0];for(let c=1;c<t.length;c++)s+=t[c]*c;t.push(s%103,aa);let a=[];for(let c of t)for(let i of ra[c])a.push(+i);return a}var lo=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],ua=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLL","LGLGGL","LGGLGL"],co=e=>e.replace(/./g,t=>t==="0"?"1":"0");function fa(e){if(!/^\d{12}$/.test(e))throw new Error("EAN-13: expected 12 digits");let t=0;for(let n=0;n<12;n++)t+=+e[n]*(n%2?3:1);return(10-t%10)%10}function Kn(e){if(!/^\d{12,13}$/.test(e))throw new Error("EAN-13: expected 12 or 13 digits");let t=fa(e.slice(0,12));if(e.length===13&&+e[12]!==t)throw new Error("EAN-13: invalid check digit");let n=e.slice(0,12)+t,r="101",o=ua[+n[0]];for(let c=1;c<=6;c++){let i=lo[+n[c]];r+=o[c-1]==="L"?i:co(i).split("").reverse().join("")}r+="01010";for(let c=7;c<=12;c++)r+=co(lo[+n[c]]);r+="101";let s=[],a=1;for(let c=1;c<=r.length;c++)r[c]===r[c-1]?a++:(s.push(a),a=1);return s}var da={L:1,M:0,Q:3,H:2},ho={L:[0,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],M:[0,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],Q:[0,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],H:[0,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]},go={L:[0,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],M:[0,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],Q:[0,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],H:[0,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]},tn="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";function pa(e){if(e===1)return[];let t=Math.floor(e/7)+2,n=e*4+17,r=Math.floor((e*8+t*3+5)/(t*4-4))*2,o=[6];for(let s=n-7;o.length<t;s-=r)o.splice(1,0,s);return o}function bo(e){let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function uo(e,t){return Math.floor(bo(e)/8)-ho[t][e]*go[t][e]}var rn=new Uint8Array(512),zn=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)rn[t]=e,zn[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)rn[t]=rn[t-255]})();var Un=(e,t)=>e&&t?rn[zn[e]+zn[t]]:0;function ma(e){let t=new Array(e).fill(0);t[e-1]=1;let n=1;for(let r=0;r<e;r++){for(let o=0;o<e;o++)t[o]=Un(t[o],n),o+1<e&&(t[o]^=t[o+1]);n=Un(n,2)}return t}function ha(e,t){let n=new Array(t.length).fill(0);for(let r of e){let o=r^n.shift();n.push(0);for(let s=0;s<t.length;s++)n[s]^=Un(t[s],o)}return n}var on=class{constructor(){this.bits=[]}put(t,n){for(let r=n-1;r>=0;r--)this.bits.push(t>>>r&1)}};function ga(e){let t=new on;if(/^\d*$/.test(e)){for(let r=0;r<e.length;r+=3){let o=e.substr(r,3);t.put(+o,o.length*3+1)}return{mode:1,count:e.length,data:t,ccBits:[10,12,14]}}if([...e].every(r=>tn.includes(r))){for(let r=0;r<e.length;r+=2)r+1<e.length?t.put(tn.indexOf(e[r])*45+tn.indexOf(e[r+1]),11):t.put(tn.indexOf(e[r]),6);return{mode:2,count:e.length,data:t,ccBits:[9,11,13]}}let n=new TextEncoder().encode(e);for(let r of n)t.put(r,8);return{mode:4,count:n.length,data:t,ccBits:[8,16,16]}}var fo=(e,t)=>e.ccBits[t<=9?0:t<=26?1:2];function ba(e,t,n){let r=go[n][t],o=ho[n][t],s=Math.floor(bo(t)/8),a=r-s%r,c=Math.floor(s/r),i=ma(o),f=[];for(let l=0,u=0;l<r;l++){let d=c-o+(l<a?0:1),h=e.slice(u,u+d);u+=d,f.push({data:h,ec:ha(h,i)})}let p=[],b=c-o+1;for(let l=0;l<b;l++)for(let u of f)l<u.data.length&&p.push(u.data[l]);for(let l=0;l<o;l++)for(let u of f)p.push(u.ec[l]);return p}function ya(e,t,n){switch(e){case 0:return(t+n)%2===0;case 1:return n%2===0;case 2:return t%3===0;case 3:return(t+n)%3===0;case 4:return(Math.floor(t/3)+Math.floor(n/2))%2===0;case 5:return t*n%2+t*n%3===0;case 6:return(t*n%2+t*n%3)%2===0;default:return((t+n)%2+t*n%3)%2===0}}function wa(e){let t=e.length,n=0,r=[1,0,1,1,1,0,1,0,0,0,0],o=[0,0,0,0,1,0,1,1,1,0,1];for(let c=0;c<2;c++){let i=(f,p)=>c?e[p][f]:e[f][p];for(let f=0;f<t;f++){let p=1;for(let l=1;l<=t;l++)l<t&&i(f,l)===i(f,l-1)?p++:(p>=5&&(n+=p-2),p=1);let b=l=>l>=0&&l<t&&i(f,l)?1:0;for(let l=-4;l+11<=t+4;l++){let u=!0,d=!0;for(let h=0;h<11&&(u||d);h++){let $=b(l+h);$!==r[h]&&(u=!1),$!==o[h]&&(d=!1)}u&&(n+=40),d&&(n+=40)}}}for(let c=0;c<t-1;c++)for(let i=0;i<t-1;i++){let f=e[c][i];f===e[c][i+1]&&f===e[c+1][i]&&f===e[c+1][i+1]&&(n+=3)}let s=0;for(let c of e)for(let i of c)i&&s++;let a=t*t;return n+=(Math.ceil(Math.abs(s*20-a*10)/a)-1)*10,n}function xa(e,t){let n=da[e]<<3|t,r=n;for(let o=0;o<10;o++)r=r<<1^(r>>>9)*1335;return(n<<10|r)^21522}function ka(e){let t=e;for(let n=0;n<12;n++)t=t<<1^(t>>>11)*7973;return e<<12|t}function _n(e,t="M"){let n=ga(e),r=1;for(;r<=40;r++){let M=fo(n,r);if(n.count<1<<M&&4+M+n.data.bits.length<=uo(r,t)*8)break}if(r>40)throw new Error("QR: data too long");let o=uo(r,t)*8,s=new on;s.put(n.mode,4),s.put(n.count,fo(n,r)),s.bits.push(...n.data.bits),s.put(0,Math.min(4,o-s.bits.length)),s.put(0,(8-s.bits.length%8)%8);for(let M=236;s.bits.length<o;M^=253)s.put(M,8);let a=[];for(let M=0;M<s.bits.length;M+=8){let j=0;for(let y=0;y<8;y++)j=j<<1|s.bits[M+y];a.push(j)}let c=ba(a,r,t),i=r*4+17,f=Array.from({length:i},()=>new Array(i).fill(!1)),p=Array.from({length:i},()=>new Array(i).fill(!1)),b=(M,j,y)=>{f[j][M]=y,p[j][M]=!0};for(let M=0;M<i;M++)b(6,M,M%2===0),b(M,6,M%2===0);for(let[M,j]of[[3,3],[i-4,3],[3,i-4]])for(let y=-4;y<=4;y++)for(let A=-4;A<=4;A++){let T=M+A,I=j+y;if(T<0||I<0||T>=i||I>=i)continue;let V=Math.max(Math.abs(A),Math.abs(y));b(T,I,V!==2&&V!==4)}let l=pa(r);for(let M=0;M<l.length;M++)for(let j=0;j<l.length;j++)if(!(M===0&&j===0||M===0&&j===l.length-1||M===l.length-1&&j===0))for(let y=-2;y<=2;y++)for(let A=-2;A<=2;A++)b(l[M]+A,l[j]+y,Math.max(Math.abs(A),Math.abs(y))!==1);let u=M=>{let j=xa(t,M),y=A=>(j>>>A&1)===1;for(let A=0;A<=5;A++)b(8,A,y(A));b(8,7,y(6)),b(8,8,y(7)),b(7,8,y(8));for(let A=9;A<15;A++)b(14-A,8,y(A));for(let A=0;A<8;A++)b(i-1-A,8,y(A));for(let A=8;A<15;A++)b(8,i-15+A,y(A));b(8,i-8,!0)};if(u(0),r>=7){let M=ka(r);for(let j=0;j<18;j++){let y=(M>>>j&1)===1,A=i-11+j%3,T=Math.floor(j/3);b(A,T,y),b(T,A,y)}}let d=0,h=c.length*8;for(let M=i-1;M>=1;M-=2){M===6&&(M=5);let j=(M+1&2)===0;for(let y=0;y<i;y++){let A=j?i-1-y:y;for(let T=0;T<2;T++){let I=M-T;p[A][I]||d>=h||(f[A][I]=(c[d>>>3]>>>7-(d&7)&1)===1,d++)}}}let $=M=>{for(let j=0;j<i;j++)for(let y=0;y<i;y++)!p[j][y]&&ya(M,y,j)&&(f[j][y]=!f[j][y])},x=0,v=1/0;for(let M=0;M<8;M++){$(M),u(M);let j=wa(f);j<v&&(v=j,x=M),$(M)}return $(x),u(x),f}var $a=["qn0tbouluqjgt9sukvl30qhol1ga10l0oa0gln0qrotduljgqpstcvb30lhob1gbn0lroqtubjglpsqsvbholoubroltubpslsvbtuuntqbgt5suivkj0q9ot4ukhgq8s910kgoq8e90gkgc908krgqdst6v9j0kpoqcu9hgkosqcf9gokoe9rgktsqev9poksu9osksf9tskuv9su9sfkb0q5ot2uk9gq4st2f8h0k8oq4e8ggk8c8g88g48r0kdoq6u8pgkcsq6f8ookce8oc8o68tokeu8sskef8se8uuk5gq2st1f890k4oq2e88gk4cq27888k46884k438dgk6sq3f8cok6e8cck678c68c3k7f8e7850k2oq1e84gk2cq17848k26844k2384286o86c86682gq0nk16k13821pbgslsuavij0p9oskuihgp8sskf510igo50girgpdssmv5j0ipopcu5hgios5go5gc5rgitspev5poisu5os5oe5tsiuv5su5uvrb0tlouqur9gtksuqfmh0r8otkemggr8ctk7mg8r86ib0p5osiumr0i9gp4ssifmpgrcstmfdh04ggi8cp47dggmocdg84r0idop6udr04pgicsp6fdpgmssrefdoo4ocdoc4toieudto4ssiefdssmufdse4uuduu4ufdufr5gtisupfm90r4otiem8gr4cti7m88r46m84m82i5gp2sshfmdgi4op2ecp048gr6ep27cog488i46co8mc6i434824dgi6sp3fctg4coi6ecsomeei67csc4c64c34esi7fcus4eecue4e7cu7cvfm50r2othem4gr2cth7m48r26m44r23m42m41450i2op1ecd044gi2cp17ccgm6cr37cc8444i23cc4m63cc246oi3eceo46ci37cecm77ce6463ce3cfecf7m2gr1ctgnm28r16m24r13m22m2142gi1cp0nc6g428i16c68m36i13c64422c6242143cc7cc76c73r0mr0jm11i0m414c34c32c31hb0olosauh9goks2h0h8ooke2ggh8c2g82g42r0hdoomu2pghcsomf2oohce2oc2o62toheu2sshef2se2uu2ufplgsqsudfj90pkosqej8gpkcsq7j88pk6j84pk3h5goiss9fjdgh4ooie6p028gpmeoi76ogjcch466o82846o42dgh6sojf6tg2copnf6sojeeh676sc2c66s62esh7f6us2ee6ue2e72ff6vfrl0tqouterkgtqcut7rk8tq6rk4tq3rk2j50piospend0j4gtresp7ncgrmctr7nc8j44pi3nc4rm3j41250h2oohe6d024gh2coh7et06cgj6cpj7esgnecrn7h23es86c4j63es424126oh3e6eo26ch37euo6ecj77eucnf72636e327e6fe277eve6f7rigtpcusnri8tp6ri4tp3ri2ri1j2gphcsonn6gj28tpnn68rj6ph3n64j22n62j21n6122gh1cogn66g228h16eeg668j36h13ee8n76222ee466222166123ch1n67c236efc676233ef667323nefnrh8tomrh4tojrh2rh1j18pgmn38j14pgjn34rhjn32j11n31218h0m638214h0je78634j1je74n3j211e72631e7163me7me7jtobrghpgbj0ij0h20k61ke3k20h61hglg190gko18ggkcoa7188gk6184gk31dggmsobf1cogme1ccgm71c61c31esgnf1ee1e71ffhl0oqosdehkgoqchk8oq6hk4oq3hk2150gioo9e3d014goreo973cghmcor73c8144gi33c4hm314116ogje3eo16cgj73echn73e616317e3fe1773f7pqgstcuenpq8st6pq4st3pq2pq1higopcjmghi8op6jm8pr6op3jm4hi2jm2hi1jm112gghc36g128opn7eg368hj6gh37e8jn61227e436212136113cghn37c1367fc3761337f637313n37n7fntt8uumtt4uujtt2tt1pp8ssmrr8ttmssjrr4ttjrr2pp1rr1hh8oomjj8hh4oojnn8jj4ppjnn4rrjhh1nn2jj1nn1118ggm338114ggj778334hhjff8774jjj111ff4nnj331ff211m33m11j77m33jffm77jffjtskuubtsitshpokssbrpktsrrpipohrphhgkoobjhkhginjkjhihghnjijhhnjh10kggb31khgr73k31i10hf7k73i31hf7i73hf7h31rf7rts9roqropjgqnhqnhp30q71qf3qf3p0l00kggac0k80k40k20mo0mc0m60m30ne0n7gqggq8od6gq4od3gq2gq10igg9c1mggrcg961m8gr61m4gr31m20i11m10jcg9n1ncgrn1n60j31n30jn1nnot8ot4ot2ot1gp8hr8otmocjhr4otjhr2gp1hr10h81j80h4g8j3n81j40h23n41j20h13n21j10hm1jm0hj3nm1jj3njsuksuisuhoskptksurptioshpthgokocbhpkosrjrkhpigohjrihphjrh0gkg8b1hkgor3jk1hi0gh7nk3ji1hh7ni3jh0gr1hr3jr7nruvauv9suatuqsu9tuposapsqos9rtqpsprtpgoahoqgo9jpqhopnrq","ulgvast90ukovaet8gukcva7t88uk6t84uk3t82tdgumsvbfqp0tcoumeqogtccum7qo8tc6qo4tc3qo2qtgtesunflp0qsoteelogqscte7lo8qs6lo4qs3lo2ltgqustffbp0lsoqueboglscqu7bo8ls6bo4ls3btglusqvfbsoluebsclu7bs6buslvfbuebu7t50uiov9et4guicv97t48ui6t44ui3t42t41qd0t6oujeqcgt6cuj7qc8t66qc4t63qc2qc1kt0qeot7eksgqect77ks8qe6ks4qe3ks2ks19t0kuoqfe9sgkucqf79s8ku69s4ku39s29uokve9uckv79u69u39ve9v7t2guhcv8nt28uh6t24uh3t22t21q6gt3cuhnq68t36q64t33q62q61kegq7ct3nke8q76ke4q73ke2ke18ugkfcq7n8u8kf68u4kf38u28u18vckfn8v68v38vnt18ugmt14ugjt12t11q38t1mq34t1jq32q31k78q3mk74q3jk72k718f8k7m8f4k7j8f28f18fm8fjt0kugbt0it0hq1kt0rq1iq1hk3kq1rk3ik3h87kk3r87i87ht0at09q0qq0pk1qk1psl0uaov5eskguacv57sk8ua6sk4ua3sk2sk1pd0smoubepcgsmcub7pc8sm6pc4sm3pc2pc1it0peosneisgpecsn7is8pe6is4pe3is2is15t0iuopfe5sgiucpf75s8iu65s4iu35s25uoive5uciv75u65u35ve5v7uqgvdcdfouq8vd6d7suq4vd3d3uuq2uq1sigu9cv4ntmgsi8vdntm8ur6u93tm4si2tm2si1tm1p6gsjcu9nregp68sj6re8tn6sj3re4p62re2p61re1iegp7csjnmugie8p76mu8rf6p73mu4ie2mu2ie1mu14ugifcp7ndug4u8if6du8mv6if3du44u2du24u14vcifndvc4v6dv64v3dv34vnup8vcmcnsup4vcjcjuup2chvup1sh8u8mtj8sh4u8jtj4upjtj2sh1tj1p38shmr78p34shjr74tjjr72p31r71i78p3mmf8i74p3jmf4r7jmf2i71mf14f8i7mcv84f4i7jcv4mfjcv24f1cv14fmcvm4fjcvjuokvcbcbuuoic9vuohsgku8bthkuorthisghthhp1ksgrr3kp1ir3ip1hr3hi3kp1rm7kr3rm7ii3hm7h47ki3rcfk47icfi47hcfh47rcfruoac5vuo9sgatgqsg9tgpp0qr1qp0pr1pi1qm3qi1pm3p43qc7q43pc7puo5sg5tgdp0dr0ti0tm1tsagu5cv2nsa8u56sa4u53sa2sa1omgsbcu5nom8sb6om4sb3om2om1hegoncsbnhe8on6he4on3he2he12ughfconn2u8hf62u4hf32u22u12vchfn2v62v32vnud8v6m6nsud4v6j6juud26hvud1s98u4msr8s94u4jsr4udjsr2s91sr1oj8s9mpn8oj4s9jpn4srjpn2oj1pn1h78ojmjf8h74ojjjf4pnjjf2h71jf12f8h7m6v82f4h7j6v4jfj6v22f16v12fm6vm2fj6vjvekenonbuveiejsn9vvehehuegvuckv6b6buutkvereru69vutiuchepvuths8ku4bspks8itrkutrs8htrisphtrhohks8rpjkohirnkpjiohhrnipjhrnhh3kohrj7kh3infkj7ih3hnfij7hnfh27kh3r6fk27ievk6fi27hevi6fhevh27r6frveaebsn5vve9e9ue8vuca65vusquc9edvusps8asoqs89tpqsoptppogqphqogprjqphprjph1qj3qh1pn7qj3pn7p23q67q23pefq67pefpve5e5ue4vuc5usds85sodtotogdpgtrhth0tj1tn3t21t63te7te2vs58u2ms54u2js52s51ob8s5mob4s5job2ob1gn8obmgn4objgn2gn11f8gnm1f4gnj1f21f11fm1fju6kv3b3buu6i39vu6hs4ku2bsdks4isdis4hsdho9ks4rorko9iorio9horhgjko9rhnkgjihnigjhhnh17kgjr3fk17i3fi17h3fh17r3frv7a7bsjlvv7979u78vu6a35vuequ697dvueps4ascqs49stqscpstpo8qopqo8pprqoppprpghqhjqghpjnqhjpjnp13q37q13p7fq37p7fpfbonluf9snkvf8uf8fv7575uvfdfdu74vfcvu65ueduuts45scdsstttto8dootpptrrtggthhtjjtnnt11t33t77tf5snivf4uf4f72vf6vf2uf2ff1fs2ks2is2ho5ks2ro5io5hgbko5rgbigbh0nkgbr0ni0nh0nru3a1lvu39s2as6qs29s6po4qodqo4podpg9qgrqg9pgrp0jq1nq0jp1npv3l3lu3kvu35u7ds25s6dseto4doctottg8tgpthrt0ht1jt3nt7lsjqv7ku7kf3iv7mvflonqufksnqffkefk77iufmu7iffmffisnpffiefi77hffjffhefh7fgno2qo2pg5qg5p0bq0bps3do2do6tg4tgdt09t0rt1qv3qu3qf7qsjtf7qe7q73pf7rffqontefqcnt7fq6fq37pefre7p7fr7fpcnsnfp6fp37onfpnfomfoj1tf3te3t77tcjun7t67t33sn7tn7sm7sj","lfgqnsaf0l7oqjua7gl3sqhva3ol1ua1svb8bfglnsvb4b7oljuvb2b3slhvvb1b1uun8vbmbnsun4vbjbjuun2bhvun1tf8unmtf4unjtf2tf1qv8tfmqv4tfjqv2qv1lv8qvmlv4qvjlv29f0knoqbu97gkjsq9v93okhu91skgv90uv9k9nokruv9i9jskpvv9h9hu9gvujkv9r9ruuji9pvujht7kujrt7it7hqfkt7rqfiqfhkvkqfrkvikvh8ngkbsq5v8jok9u8hsk8v8gu8gfv8q8rskdvv8p8pu8ovuhq8tvuhpt3qt3pq7qq7pkfqkfp8bok5u89sk4v88u88fv8d8du8cvugtt1tq3t85sk2v84u84f86v82u82f5f0inopbu57gijsp9v53oihu51sigv50uv5k5noiruv5i5jsipvv5h5hu5gvubkv5r5ruubi5pvubhsnkubrsnisnhpfksnrpfipfhivkpfriviivhmngrbstlvd70mjor9ud3gmhsr8vd1omgud0smgfd0e4ngibsp5vdng4joi9udjompui8vdhs4gudgu4gfdgfv4q4rsidvvdqv4pdrs4puvdpdpu4ovdovu9q4tvurqu9pdtvurpsjqtnqsjptnpp7qrfqp7prfpifqifpcn0mbor5ucjgm9sr4vchom8ucgsm8fcgecg74boi5ucro49si4vcpsmcvcou48fcofv4d4duvctctu4cvcsvu8tuptshttjtp3tr7ti7tcbgm5sr2vc9om4uc8sm4fc8ec8745si2vcds44uccu44fccf46vcevc5om2uc4sm2fc4ec4742uc6u42fc6fc2sm1fc2ec2741fc3fc1ec172nghbsolv2joh9u2hsh8v2gu2gfv2q2rshdvv2p2pu2ovu5q2tvu5psbqsbponqonphfqhfp6n0jboplu6jgj9spkv6hoj8u6gsj8f6ge6g72boh5u6ro29sh4v6psjcv6ou28f6ofv2d2duv6t6tu2cv6svu4tudts9tsrtojtpnth7tnbgrlstqvej0n9orkuehgn8srkfegon8eegcn87eg66bgj5spiverg69oj4ueponcuj4feos68eeoe687eo725sh2v6ds24uets6cu24fesu6cfesf26v6eveuveb0n5oriue9gn4srife8on4ee8cn47e86e8365oj2uedo64sj2fecsn6fece647ec722u66u22feeu66feefe5gn2srhfe4on2ee4cn27e46e4362sj1fe6s62ee6e627e6721f63fe7fe2on1ee2cn17e26e2361ee3e617e37e1cn0ne16e1360ne1ne0me0j1boglu19sgkv18u18f1du1cvu2ts5tobtgnt3bghlsoqv39ohku38shkf38e38715sgiv3ds14u3cu14f3cf16v3ev7b0jlopqu79gjkspqf78ojke78cjk778678335ohiu7do34shif7cs34e7ce3477c712u36u12f7eu36f7efnlgrqsttff90nkorqef8gnkcrq7f88nk6f84nk3f8275gjisppffdg74ojiefconmeji7fcc746fc6743fc332shhf76s32efes76e327fee767fe711f33f77fffff50niorpef4gnicrp7f48ni6f44ni3f42f4172ojhef6o72cjh7f6cnj7f66723f6331e73e317f7e737f77f2gnhcronf28nh6f24nh3f22f2171cjgnf3c716f36713f3330n71nf3nf18ngmf14ngjf12f1170mf1m70jf1jf0kngbf0if0h70bf0r0lsgav0ku0kf0mv1logqu1ksgqf1ke1k70iu1mu0if1mf3lghqsotf3kohqe3kchq73k63k31isgpf3ms1ie3me1i73m70hf1jf3nf7l0jqopte7kgjqcpt77k8jq67k4jq37k27k13iohpe7mo3ichp77mcjr77m63i37m31he3je1h77ne3j77n7nqgrtctunnq8rt6nq4rt3nq2nq17igjpcpsnfmg7i8jp6fm8nr6jp3fm47i2fm27i1fm13hchon7jc3h6fnc7j63h3fn67j3fn31gn3hn7jnfnnnp8rsmnp4rsjnp2np17h8jomfj87h4jojfj4npjfj27h1fj13gm7hm3gjfjm7hjfjjnokrsbnoinoh7gkjobfhk7gifhi7ghfhh3gb7grfhrnoano97gafgq7g9fgp0au0af0qsgdf0qe0q709f0rf1qogte1qcgt71q61q30pe1re0p71r73qghtcoun3q8ht63q4ht33q23q11pcgsn3rchtn3r61p33r30on1pn3rnjt8pumjt4pujjt2jt13p8hsm7r8jtmhsj7r43p27r23p17r11om3pm1oj7rm3pj7rjruktvbruiruhjskpubntkjsintijshnth3okhsb7pk3oifrk7pi3ohfri7phfrh1ob3or7prfrrruaru9jsansqjs9nsp3oa7oq3o9fpq7opfppru5js5nsd3o57odfot0de0d70tcgen0t60t30cn0tn1t8gum1t4guj1t21t10sm1tm0sj1tjhukovbhuihuh1skgub3tkhur3ti1sh3th0sb1sr3trpvapv9huajuqhu9jup1sa3sq1s97tq3sp7tppv5hu5jud1s53sd7st0em0ej0ukgfb0ui0uh0eb0urgvagv90ua1uq0u91upovl"],nn=null;function va(){return nn||(nn=$a.map(e=>{let t=new Array(929);for(let n=0;n<929;n++)t[n]=65536|parseInt(e.substr(n*3,3),32)<<1;return t}),nn)}var Ma=130728,Sa=260649;function Ea(e,t){if(!(t>=0&&t<=8)||t%1)throw new Error("PDF417: ecc level must be 0..8");let n=2<<t,r=new Array(n+1).fill(0);r[0]=1;let o=1;for(let c=1;c<=n;c++){o=o*3%929;for(let i=c;i>=0;i--)r[i]=((i>0?r[i-1]:0)+929-r[i]*o%929)%929}let s=new Array(n).fill(0);for(let c of e){let i=(c+s[n-1])%929;for(let f=n-1;f>=1;f--)s[f]=(s[f-1]+929-i*r[f]%929)%929;s[0]=(929-i*r[0]%929)%929}let a=[];for(let c=n-1;c>=0;c--)a.push((929-s[c])%929);return a}var po="0123456789&\r ,:#-.$/+%*=^",Dt=`;<>@[\\]_\`~!\r ,:
|
|
12
|
+
-.$/"|*()?{}'`,On=e=>e===9||e===10||e===13||e>=32&&e<=126;function Ra(e){let t=[],n=i=>i>=65&&i<=90,r=i=>i>=97&&i<=122,o=i=>po.includes(i),s=i=>!o(i)&&Dt.includes(i),a=0;for(let i=0;i<e.length;){let f=e[i],p=e.charCodeAt(i);if(a===0)n(p)||p===32?(t.push(p===32?26:p-65),i++):r(p)?(t.push(27),a=1):o(f)?(t.push(28),a=2):(t.push(29,Dt.indexOf(f)),i++);else if(a===1)r(p)||p===32?(t.push(p===32?26:p-97),i++):n(p)?(t.push(27,p-65),i++):o(f)?(t.push(28),a=2):(t.push(29,Dt.indexOf(f)),i++);else if(a===2)o(f)||p===32?(t.push(p===32?26:po.indexOf(f)),i++):n(p)?(t.push(28),a=0):r(p)?(t.push(27),a=1):i+1<e.length&&s(e[i+1])?(t.push(25),a=3):(t.push(29,Dt.indexOf(f)),i++);else{let b=Dt.indexOf(f);b>=0?(t.push(b),i++):(t.push(29),a=0)}}t.length%2&&t.push(29);let c=[];for(let i=0;i<t.length;i+=2)c.push(t[i]*30+t[i+1]);return c}function Ta(e){let t=[];for(let n=0;n<e.length;n+=44){let r=("1"+e.substr(n,44)).split("").map(Number),o=[];for(;r.length;){let s=[],a=0;for(let c of r){a=a*10+c;let i=Math.floor(a/900);a-=i*900,(s.length||i)&&s.push(i)}o.unshift(a),r=s}t.push(...o)}return t}function Pa(e){let t=[e.length%6===0?924:901],n=0;for(;n+6<=e.length;n+=6){let r=0;for(let s=0;s<6;s++)r=r*256+e[n+s];let o=[];for(let s=0;s<5;s++)o.unshift(r%900),r=Math.floor(r/900);t.push(...o)}for(;n<e.length;n++)t.push(e[n]);return t}function ja(e){let t=[];/[^\x00-\x7f]/.test(e)&&t.push(927,26);let n=new TextEncoder,r="text",o=0;for(;o<e.length;){let s=qn(e,o);if(s>=13){t.push(902,...Ta(e.substr(o,s))),r="num",o+=s;continue}let a=o;if(On(e.charCodeAt(o))){for(;a<e.length&&On(e.charCodeAt(a))&&qn(e,a)<13;)a++;r!=="text"&&t.push(900),t.push(...Ra(e.slice(o,a))),r="text"}else{for(;a<e.length&&!On(e.charCodeAt(a));)a++;t.push(...Pa(n.encode(e.slice(o,a)))),r="byte"}o=a}return t}var Aa=e=>e<=40?2:e<=160?3:e<=320?4:5;function Xn(e,t={}){let n=ja(e),r=t.ecc??Aa(n.length+1);if(!(r>=0&&r<=8)||r%1)throw new Error("PDF417: ecc level must be 0..8");let o=2<<r,s=1+n.length+o,a=x=>{let v=Math.max(3,Math.ceil(s/x));return v<=90&&v*x<=928?v:0},c=0;if(t.columns!==void 0){if(!(t.columns>=1&&t.columns<=30)||t.columns%1)throw new Error("PDF417: columns must be 1..30");if(!a(t.columns))throw new Error("PDF417: data does not fit with the requested columns");c=t.columns}else{let x=1/0;for(let v=1;v<=30;v++){let M=a(v);if(!M)continue;let j=Math.abs(Math.log((17*(v+4)+1)/(M*3)/3));j<x&&(x=j,c=v)}if(!c)throw new Error("PDF417: data too long")}let i=a(c),f=[0,...n];for(;f.length<i*c-o;)f.push(900);f[0]=f.length;let p=f.concat(Ea(f,r)),b=va(),l=(x,v,M)=>{for(let j=M-1;j>=0;j--)x.push((v>>>j&1)===1)},u=Math.floor((i-1)/3),d=r*3+(i-1)%3,h=c-1,$=[];for(let x=0;x<i;x++){let v=x%3,M=30*Math.floor(x/3),j=M+(v===0?u:v===1?d:h),y=M+(v===0?h:v===1?u:d),A=b[v],T=[];l(T,Ma,17),l(T,A[j],17);for(let I=0;I<c;I++)l(T,A[p[x*c+I]],17);l(T,A[y],17),l(T,Sa,18),$.push(T)}return{rows:i,cols:c,matrix:$}}var Ft=new Uint8Array(512),Gn=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)Ft[t]=e,Gn[e]=t,e<<=1,e&256&&(e^=301);for(let t=255;t<512;t++)Ft[t]=Ft[t-255]})();var mo=(e,t)=>e&&t?Ft[Gn[e]+Gn[t]]:0;function Ca(e,t){let n=[1];for(let s=1;s<=t;s++){let a=new Array(n.length+1).fill(0),c=Ft[s];for(let i=0;i<n.length;i++)a[i]^=n[i],a[i+1]^=mo(n[i],c);n=a}let r=n.slice(1),o=new Array(t).fill(0);for(let s of e){let a=s^o.shift();o.push(0);for(let c=0;c<t;c++)o[c]^=mo(r[c],a)}return o}var La=[[10,3,5,1],[12,5,7,1],[14,8,10,1],[16,12,12,1],[18,18,14,1],[20,22,18,1],[22,30,20,1],[24,36,24,1],[26,44,28,1],[32,62,36,1],[36,86,42,1],[40,114,48,1],[44,144,56,1],[48,174,68,1],[52,204,84,2],[64,280,112,2],[72,368,144,4],[80,456,192,4],[88,576,224,4],[96,696,272,4],[104,816,336,6],[120,1050,408,6],[132,1304,496,8],[144,1558,620,10]],Da=e=>e<32?1:e<64?2:e<120?4:6;function Fa(e){let t=new TextEncoder().encode(e),n=[],r=a=>a<t.length&&t[a]>=128,o=a=>a<t.length&&t[a]>=48&&t[a]<=57;t.some(a=>a>=128)&&n.push(241,27);let s=0;for(;s<t.length;)if(r(s)){let a=s;for(;;){for(;r(a);)a++;let f=a;for(;f<t.length&&!r(f)&&f-a<4;)f++;if(f>a&&f-a<4&&r(f))a=f;else break}let c=a-s;n.push(231);let i=c<=249?[c]:[Math.floor(c/250)+249,c%250];for(let f of[...i,...t.subarray(s,a)]){let p=n.length+1,b=f+149*p%255+1;n.push(b<=255?b:b-256)}s=a}else o(s)&&o(s+1)?(n.push(130+(t[s]-48)*10+(t[s+1]-48)),s+=2):(n.push(t[s]+1),s++);return n}function Ia(e,t){let n=new Int32Array(e*t),r=(f,p,b,l)=>{f<0&&(f+=e,p+=4-(e+4)%8),p<0&&(p+=t,f+=4-(t+4)%8),n[f*t+p]=10*b+l},o=(f,p,b)=>{r(f-2,p-2,b,1),r(f-2,p-1,b,2),r(f-1,p-2,b,3),r(f-1,p-1,b,4),r(f-1,p,b,5),r(f,p-2,b,6),r(f,p-1,b,7),r(f,p,b,8)},s=(f,p)=>p.forEach(([b,l],u)=>r(b,l,f,u+1)),a=1,c=4,i=0;do{c===e&&i===0&&s(a++,[[e-1,0],[e-1,1],[e-1,2],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),c===e-2&&i===0&&t%4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-4],[0,t-3],[0,t-2],[0,t-1],[1,t-1]]),c===e-2&&i===0&&t%8===4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),c===e+4&&i===2&&!(t%8)&&s(a++,[[e-1,0],[e-1,t-1],[0,t-3],[0,t-2],[0,t-1],[1,t-3],[1,t-2],[1,t-1]]);do c<e&&i>=0&&!n[c*t+i]&&o(c,i,a++),c-=2,i+=2;while(c>=0&&i<t);c+=1,i+=3;do c>=0&&i<t&&!n[c*t+i]&&o(c,i,a++),c+=2,i-=2;while(c<e&&i>=0);c+=3,i+=1}while(c<e||i<t);return n[e*t-1]||(n[e*t-1]=n[e*t-t-2]=1),n}function Ba(e){let t=Fa(e),n=La.find(f=>f[1]>=t.length);if(!n)throw new Error("DataMatrix: data too long");let[r,o,s,a]=n;for(t.length<o&&t.push(129);t.length<o;){let f=129+149*(t.length+1)%253+1;t.push(f<=254?f:f-254)}let c=s/a,i=t.slice();for(let f=0;f<a;f++){let p=[];for(let l=f;l<o;l+=a)p.push(t[l]);let b=Ca(p,c);for(let l=0;l<c;l++)i[o+l*a+f]=b[l]}return{size:r,data:t,codewords:i}}function Vn(e){let{size:t,codewords:n}=Ba(e),r=Da(t),o=(t-2*r)/r,s=o*r,a=Ia(s,s),c=Array.from({length:t},()=>new Array(t).fill(!1)),i=o+2;for(let f=0;f<r;f++)for(let p=0;p<r;p++){let b=f*i,l=p*i;for(let u=0;u<i;u++)c[b+i-1][l+u]=!0,c[b+u][l]=!0,u%2===0&&(c[b][l+u]=!0),u%2===1&&(c[b+u][l+i-1]=!0)}for(let f=0;f<s;f++)for(let p=0;p<s;p++){let b=a[f*s+p],l=b===1||b>=10&&(n[Math.floor(b/10)-1]>>8-b%10&1)===1;c[f+2*Math.floor(f/o)+1][p+2*Math.floor(p/o)+1]=l}return c}var st={A3:[297,420],A4:[210,297],A5:[148,210],B4:[257,364],B5:[182,257],Letter:[215.9,279.4],Legal:[215.9,355.6]};function _e(e={}){let[t,n]=Array.isArray(e.size)?e.size:st[e.size??"A4"]??st.A4;(e.orientation==="landscape"?t<n:e.orientation==="portrait"&&t>n)&&([t,n]=[n,t]);let r=e.margins??15,o=typeof r=="number"?[r,r,r,r]:[r[0],r[1],r[2],r[3]];return{width:t,height:n,margins:o}}function Xe(e){let t=_e(e.page);return t.width-t.margins[1]-t.margins[3]}var Yn={width:.2,style:"solid",color:"#000000"};function yo(e){if(!e)return;if(e===!0)return{...Yn};if(typeof e=="string"){if(e==="none"||e==="0")return;let n={...Yn};for(let r of e.trim().split(/\s+/))/^[\d.]+(mm)?$/.test(r)?n.width=parseFloat(r):/^(solid|dashed|dotted|double)$/.test(r)?n.style=r:n.color=r;return n.width>0?n:void 0}let t={...Yn,...e};return t.width>0?t:void 0}function It(e){if(!e)return{};if(e===!0||typeof e=="string"||"width"in e||"style"in e||"color"in e){let r=yo(e);return r?{top:r,right:r,bottom:r,left:r}:{}}let t=e,n={};for(let r of["top","right","bottom","left"]){let o=yo(t[r]);o&&(n[r]=o)}return n}var Na=(e,t)=>e===void 0?t:typeof e=="number"?[e,e,e,e]:e,Ha="Nanum Gothic",wo=new WeakMap;function Ae(e,t){let n=t.styleName?e.styles?.[t.styleName]:void 0,r=wo.get(t);if(r&&r.style===t.style&&r.named===n&&r.font===e.font)return r.result;let o=Oa(e,t,n);return wo.set(t,{style:t.style,named:n,font:e.font,result:o}),o}function Oa(e,t,n){let r={...n,...t.style};return{fontFamily:r.fontFamily??e.font?.family??Ha,fontSize:r.fontSize??e.font?.size??9,bold:r.bold??!1,italic:r.italic??!1,underline:r.underline??!1,strike:r.strike??!1,color:r.color??e.font?.color??"#000000",background:r.background,align:r.align??"left",valign:r.valign??"middle",padding:Na(r.padding,[.5,1,.5,1]),border:It(r.border),lineHeight:r.lineHeight??1.25,wrap:r.wrap??!0,shrinkToFit:r.shrinkToFit??!1,letterSpacing:r.letterSpacing??0}}var qa={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#008000",blue:"#0000ff",gray:"#808080",grey:"#808080",silver:"#c0c0c0",navy:"#000080",yellow:"#ffff00",orange:"#ffa500",purple:"#800080",maroon:"#800000",teal:"#008080"};function sn(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;let n=qa[t]??t,r=/^#([0-9a-f]{3,8})$/.exec(n);if(r){let o=r[1];return(o.length===3||o.length===4)&&(o=[...o].map(s=>s+s).join("")),o.length!==6&&o.length!==8?null:[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),o.length===8?parseInt(o.slice(6,8),16)/255:1]}if(r=/^rgba?\(([^)]+)\)$/.exec(t),r){let o=r[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return o.length<3?null:[o[0],o[1],o[2],o[3]??1]}return null}var yt=["#2F5BEA","#F2A900","#16A34A","#DC2626","#7C3AED","#0891B2","#DB2777","#65A30D","#EA580C","#475569"],za=(e,t)=>{let n=e/Math.max(1,t),r=10**Math.floor(Math.log10(n||1)),o=n/r;return(o<=1?1:o<=2?2:o<=2.5?2.5:o<=5?5:10)*r};function xo(e,t,n,r,o,s=0){let a=[],c=(i,f,p,b)=>{let l=Math.max(1,Math.ceil(Math.abs(p-f)/(Math.PI/2))),u=(p-f)/l,d=4/3*Math.tan(u/4),h=f;b?a.push("M",e+i*Math.cos(h),t+i*Math.sin(h)):a.push("L",e+i*Math.cos(h),t+i*Math.sin(h));for(let $=0;$<l;$++){let x=h+u;a.push("C",e+i*(Math.cos(h)-d*Math.sin(h)),t+i*(Math.sin(h)+d*Math.cos(h)),e+i*(Math.cos(x)+d*Math.sin(x)),t+i*(Math.sin(x)-d*Math.cos(x)),e+i*Math.cos(x),t+i*Math.sin(x)),h=x}};return c(n,r,o,!0),s>0?c(s,o,r,!1):a.push("L",e,t),a.push("Z"),a}var Jn=(e,t,n,r)=>["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z"];function ko(e,t,n,r){let o=Ae(r.def,e),s=e.source?Me(e.source,t):t.rows,a=Array.isArray(s)?s:[],c=e.series?.length?e.series:[],i=a.map((Z,J)=>ve(Me(e.category,{...t,row:Z,vars:{...t.vars,rowNum:J+1}})??"")),f=c.map(Z=>a.map((J,fe)=>{let de=Number(Me(Z.expr,{...t,row:J,vars:{...t.vars,rowNum:fe+1}}));return Number.isFinite(de)?de:0})),p=Z=>c[Z]?.color??yt[Z%yt.length],b=Math.min(o.fontSize,8),l={family:o.fontFamily,size:b,bold:!1,italic:!1},u={...o,padding:[0,0,0,0],letterSpacing:0,border:{}},d=b*$e*1.3,h=[],$=(Z,J,fe,de,pe,ce=!1,R="#444444")=>h.push({...at(J,fe,de,d,[Z],{...l,bold:ce},{...u,align:pe,valign:"middle",color:R},r.measure),overflow:void 0,source:{band:r.kind,elementId:e.id}}),{x,y:v,w:M,h:j}=n;if(e.title&&($(e.title,x,v,M,"center",!0,o.color),v+=d*1.3,j-=d*1.3),e.legend??(c.length>1||e.chartType==="pie"||e.chartType==="doughnut")){let Z=e.chartType==="pie"||e.chartType==="doughnut"?i:c.map((N,D)=>N.label??`Series ${D+1}`),J=b*$e,fe=x,de=v+j-d,pe=[];Z.forEach((N,D)=>{let C=r.measure.width(N,l)+J+3;fe+C>x+M&&fe>x&&(fe=x,de-=d),pe.push({text:N,color:e.chartType==="pie"||e.chartType==="doughnut"?yt[D%yt.length]:p(D),x:fe,y:de}),fe+=C+2});let ce=v+j-Math.min(...pe.map(N=>N.y),v+j),R=new Map;for(let N of pe)R.set(N.y,[...R.get(N.y)??[],N]);for(let N of R.values()){let D=N[N.length-1],C=D.x+r.measure.width(D.text,l)+J+1-N[0].x,ne=(M-C)/2;for(let q of N)h.push({kind:"path",d:Jn(q.x+ne,q.y+(d-J)/2,J,J),fill:q.color}),$(q.text,q.x+ne+J+1,q.y,r.measure.width(q.text,l)+1,"left")}j-=ce+1}if(!a.length||!c.length||j<5)return h;if(e.chartType==="pie"||e.chartType==="doughnut"){let Z=f[0].map(R=>Math.max(0,R)),J=Z.reduce((R,N)=>R+N,0)||1,fe=Math.min(M,j)/2-1,de=x+M/2,pe=v+j/2,ce=-Math.PI/2;return Z.forEach((R,N)=>{let D=ce+R/J*Math.PI*2;if(R>0&&h.push({kind:"path",d:xo(de,pe,fe,ce,D,e.chartType==="doughnut"?fe*.55:0),fill:yt[N%yt.length],stroke:"#ffffff",strokeWidth:.3}),e.showValues!==!1&&R/J>=.04){let C=(ce+D)/2,ne=e.chartType==="doughnut"?fe*.78:fe*.62,q=e.format?ve(R,e.format):`${Math.round(R/J*100)}%`;$(q,de+ne*Math.cos(C)-10,pe+ne*Math.sin(C)-d/2,20,"center",!0,"#ffffff")}ce=D}),h}let A=e.chartType==="hbar",T=!!e.stacked&&(e.chartType==="bar"||e.chartType==="hbar"||e.chartType==="area"),I=i.map((Z,J)=>f.reduce((fe,de)=>fe+Math.max(0,de[J]),0)),V=i.map((Z,J)=>f.reduce((fe,de)=>fe+Math.min(0,de[J]),0)),oe=Math.max(...T?I:f.flat()),z=T?Math.min(0,...V):Math.min(0,...f.flat());oe===z&&(oe=z+1);let ae=za(oe-z,5);oe=Math.ceil(oe/ae)*ae,z=Math.floor(z/ae)*ae;let ke=[];for(let Z=z;Z<=oe+ae/1e6;Z+=ae)ke.push(Math.round(Z*1e9)/1e9);let U=Z=>ve(Z,e.format??(Math.abs(oe)>=1e3?"#,##0":void 0)),le=Math.max(...ke.map(Z=>r.measure.width(U(Z),l)))+1.5,me=A?Math.min(M*.3,Math.max(...i.map(Z=>r.measure.width(Z,l)))+1.5):0,_=A?{x:x+me,y:v,w:M-me-2,h:j-d}:{x:x+le,y:v+d/2,w:M-le-1,h:j-d-d/2},ue="#999999",Y="#e3e3e3",H=Z=>A?_.x+(Z-z)/(oe-z)*_.w:_.y+_.h-(Z-z)/(oe-z)*_.h;for(let Z of ke){let J=H(Z);A?(h.push({kind:"line",x1:J,y1:_.y,x2:J,y2:_.y+_.h,width:.15,color:Z===0?ue:Y}),$(U(Z),J-10,_.y+_.h+.3,20,"center")):(h.push({kind:"line",x1:_.x,y1:J,x2:_.x+_.w,y2:J,width:.15,color:Z===0?ue:Y}),$(U(Z),x,J-d/2,le-1,"right"))}let O=i.length,X=(A?_.h:_.w)/O,ie=Math.max(1,Math.ceil(O*r.measure.width("0000",l)/(A?_.h*3:_.w)));if(i.forEach((Z,J)=>{J%ie||(A?$(Z,x,_.y+J*X+X/2-d/2,me-1,"right"):$(Z,_.x+J*X,_.y+_.h+.3,X*ie,ie>1?"left":"center"))}),e.chartType==="bar"||e.chartType==="hbar"){let Z=X*.7,J=T?Z:Z/c.length,fe=H(0);return i.forEach((de,pe)=>{let ce=0,R=0;c.forEach((N,D)=>{let C=f[D][pe],ne=0,q=C;T&&(C>=0?(ne=ce,q=ce+C,ce=q):(ne=R,q=R+C,R=q));let G=T?H(ne):fe,S=H(q),Q=(A?_.y:_.x)+pe*X+(X-Z)/2+(T?0:D*J),ee=A?Jn(Math.min(G,S),Q,Math.abs(S-G),J*.92):Jn(Q,Math.min(G,S),J*.92,Math.abs(S-G));h.push({kind:"path",d:ee,fill:p(D),source:{band:r.kind,elementId:e.id,value:C}}),e.showValues&&C!==0&&(A?$(U(C),S+.5,Q+J*.46-d/2,le+4,"left"):$(U(C),Q-5,Math.min(G,S)-d,J+10,"center"))})}),h}let ge=i.map((Z,J)=>_.x+J*X+X/2),ye=i.map(()=>0);return c.forEach((Z,J)=>{let fe=f[J].map((pe,ce)=>H(T?ye[ce]+=pe:pe)),de=[];if(ge.forEach((pe,ce)=>de.push(ce?"L":"M",pe,fe[ce])),e.chartType==="area"){let pe=T&&J>0?f.slice(0,J).reduce((R,N)=>R.map((D,C)=>D+N[C]),i.map(()=>0)).map(H):ge.map(()=>H(Math.max(z,0))),ce=[...de];for(let R=ge.length-1;R>=0;R--)ce.push("L",ge[R],pe[R]);ce.push("Z"),h.push({kind:"path",d:ce,fill:p(J),opacity:.25})}h.push({kind:"path",d:de,stroke:p(J),strokeWidth:.5,source:{band:r.kind,elementId:e.id}}),ge.forEach((pe,ce)=>{O<=40&&h.push({kind:"path",d:xo(pe,fe[ce],.7,0,Math.PI*2).slice(0,-4).concat(["Z"]),fill:p(J)}),e.showValues&&$(U(f[J][ce]),pe-8,fe[ce]-d-.3,16,"center")})}),h}var $o="0.15 solid #9aa3b2",vo="#eef1f6";function Ve(e,t,n){return{...e,...t?.bold!==void 0?{bold:t.bold}:{},...t?.color?{color:t.color}:{},...t?.fontSize?{fontSize:t.fontSize}:{},background:t?.background??e.background,border:t?.border!==void 0?It(t.border):e.border,align:n,valign:"middle",wrap:!1}}function Ce(e,t,n,r,o,s,a,c,i,f){let p=a.border.top||a.border.right||a.border.bottom||a.border.left;if((a.background||p)&&e.push({kind:"box",x:t,y:n,w:r,h:o,fill:a.background,border:a.border,source:{band:c.kind}}),!s)return;let b={family:a.fontFamily,size:a.fontSize,bold:a.bold,italic:a.italic},l=at(t,n,r,o,[s],b,a,c.measure);l.source={band:c.kind,value:i,format:f},e.push(l)}function an(e){try{return Ne(e)}catch(t){let n=`#ERR ${t.message}`;return()=>n}}var Zn=e=>Array.isArray(e)?e:[];function Ua(e){let t=e.columns.reduce((o,s)=>o+(s.width??0),0),n=e.columns.filter(o=>!o.width).length,r=Math.max(0,e.w-t);return e.columns.map(o=>o.width??(n?r/n:0))}function Mo(e,t){let n=Zn(Me(e.source,t)),r=e.rowHeight??6,o=e.showHeader===!1?0:r,s=e.columns.some(a=>a.sum)?r:0;return Math.max(e.h,o+n.length*r+s)}function So(e,t,n,r,o){let s=Zn(Me(e.source,t)),a=Ae(o.def,e),c={...a,border:a.border.top||a.border.left?a.border:It($o),padding:[.3,1,.3,1]},i=Ve(c,{bold:!0,background:vo,...e.headerStyle},"center"),f=Ua(e),p=e.rowHeight??6,b=[],l=r;if(e.showHeader!==!1){let h=n;e.columns.forEach(($,x)=>{Ce(b,h,l,f[x],p,$.header,i,o),h+=f[x]}),l+=p}let u=e.columns.map(h=>an(h.expr)),d=e.columns.map(()=>0);if(s.forEach((h,$)=>{let x=n,v={...t,row:h,vars:{...t.vars,rowNum:$+1}};e.columns.forEach((M,j)=>{let y;try{y=u[j](v)}catch(T){y=`#ERR ${T.message}`}M.sum&&typeof y=="number"&&(d[j]+=y);let A=Ve(c,e.altBackground&&$%2?{background:e.altBackground}:void 0,M.align??(typeof y=="number"?"right":"left"));Ce(b,x,l,f[j],p,ve(y,M.format,o.locale),A,o,y,M.format),x+=f[j]}),l+=p}),e.columns.some(h=>h.sum)){let h=n,$=Ve(c,{bold:!0,background:"#f7f8fb"},"right");e.columns.forEach((x,v)=>{let M=x.sum?ve(d[v],x.format,o.locale):v===0?e.footerLabel??"\uD569\uACC4":"";Ce(b,h,l,f[v],p,M,{...$,align:x.sum?"right":"center"},o,x.sum?d[v]:void 0,x.format),h+=f[v]})}return b}function Eo(e,t){let n=e.source?Zn(Me(e.source,t)):t.rows,r=an(e.rowKey),o=an(e.columnKey),s=an(e.value),a=e.aggregate??"sum",c=new Map,i=[],f=[],p=new Set,b=new Set;n.forEach((d,h)=>{let $={...t,row:d,vars:{...t.vars,rowNum:h+1}},x=ve(r($)),v=ve(o($)),M=Number(s($));p.has(x)||(p.add(x),i.push(x)),b.has(v)||(b.add(v),f.push(v));for(let j of[`${x}\0${v}`,`${x}\0*`,`*\0${v}`,"*\0*"]){let y=c.get(j);y||c.set(j,y=[]),y.push(Number.isFinite(M)?M:0)}});let l=new Intl.Collator("ko",{numeric:!0});i.sort(l.compare),f.sort(l.compare);let u=d=>{if(!d?.length)return null;switch(a){case"count":return d.length;case"avg":return d.reduce((h,$)=>h+$,0)/d.length;case"min":return d.reduce((h,$)=>$<h?$:h);case"max":return d.reduce((h,$)=>$>h?$:h);default:return d.reduce((h,$)=>h+$,0)}};return{rowKeys:i,colKeys:f,cell:(d,h)=>u(c.get(`${d}\0${h}`)),rowTotal:d=>u(c.get(`${d}\0*`)),colTotal:d=>u(c.get(`*\0${d}`)),total:u(c.get("*\0*"))}}function Ro(e,t){let n=Eo(e,t),r=e.cellHeight??6;return Math.max(e.h,(n.rowKeys.length+1+(e.totals!==!1?1:0))*r)}function To(e,t,n,r,o){let s=Eo(e,t),a=e.totals!==!1,c=e.cellHeight??6,i=Ae(o.def,e),f={...i,border:i.border.top||i.border.left?i.border:It($o),padding:[.3,1,.3,1]},p=Ve(f,{bold:!0,background:vo,...e.headerStyle},"center"),b=Ve(f,{bold:!0,background:"#f7f8fb"},"right"),l=Math.min(e.rowHeaderWidth??25,e.w*.4),u=s.colKeys.length+(a?1:0),d=u?(e.w-l)/u:0,h=f.fontSize,$=Math.max(1,...s.colKeys.map(y=>o.measure.width(y,{family:f.fontFamily,size:h,bold:!0,italic:!1})));$>d-2&&(h=Math.max(5,h*((d-2)/$)));let x=y=>({...y,fontSize:Math.min(y.fontSize,h)}),v=[],M=e.totals!==!1?o.locale.startsWith("ko")?"\uD569\uACC4":"Total":"";Ce(v,n,r,l,c,e.corner??"",p,o),s.colKeys.forEach((y,A)=>Ce(v,n+l+A*d,r,d,c,y,x(p),o)),a&&Ce(v,n+l+s.colKeys.length*d,r,d,c,M,x(p),o);let j=e.format??"#,##0";if(s.rowKeys.forEach((y,A)=>{let T=r+(A+1)*c;if(Ce(v,n,T,l,c,y,Ve(f,{bold:!0,background:"#f7f8fb"},"left"),o),s.colKeys.forEach((I,V)=>{let oe=s.cell(y,I);Ce(v,n+l+V*d,T,d,c,oe===null?"":ve(oe,j,o.locale),x(Ve(f,void 0,"right")),o,oe??void 0,j)}),a){let I=s.rowTotal(y);Ce(v,n+l+s.colKeys.length*d,T,d,c,I===null?"":ve(I,j,o.locale),x(b),o,I??void 0,j)}}),a){let y=r+(s.rowKeys.length+1)*c;Ce(v,n,y,l,c,M,Ve(f,{bold:!0,background:"#f7f8fb"},"center"),o),s.colKeys.forEach((A,T)=>{let I=s.colTotal(A);Ce(v,n+l+T*d,y,d,c,I===null?"":ve(I,j,o.locale),x(b),o,I??void 0,j)}),Ce(v,n+l+s.colKeys.length*d,y,d,c,s.total===null?"":ve(s.total,j,o.locale),x(b),o,s.total??void 0,j)}return v}var Ga=.8,Wa=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Ka(e,t=e.fontSize){return{family:e.fontFamily,size:t,bold:e.bold,italic:e.italic}}function _a(e,t,n,r){let o=Ae(n.def,e);if(e.type==="table"||e.type==="crosstab")return n.blank||e.canGrow===!1?{el:e,style:o,needed:e.h}:{el:e,style:o,needed:e.type==="table"?Mo(e,t):Ro(e,t)};if(e.type!=="text"&&e.type!=="field")return{el:e,style:o,needed:e.h};let s="",a;if(!n.blank){if(e.type==="text")s=Ge(e.text??"",t,n.locale);else if(a=Me(e.expr,t),s=a==null||a===""?e.nullText??"":ve(a,e.format,n.locale),e.suppressRepeated&&n.previous){let x=n.previous.get(e);n.previous.set(e,s),x===s&&(s="")}}let[c,i,f,p]=o.padding,b=Math.max(1,e.w-p-i),l=Ka(o);if(o.shrinkToFit&&s){let x=o.fontSize;for(;x>4&&n.measure.width(s,{...l,size:x})+o.letterSpacing*s.length>b;)x-=.25;l={...l,size:x}}let u=o.wrap&&!o.shrinkToFit?Mn(s,b,l,n.measure,o.letterSpacing):s.split(/\r?\n/),d=l.size*$e*o.lineHeight,$=e.canGrow??r?Math.max(e.h,u.length*d+c+f):e.h;return{el:e,style:o,text:s,value:a,font:l,lines:u,needed:$}}function Xa(e,t,n,r,o,s,a){let c=o.border.top||o.border.right||o.border.bottom||o.border.left;return!o.background&&!c?null:{kind:"box",x:e,y:t,w:n,h:r,fill:o.background,border:o.border,source:{band:s.kind,elementId:a,row:s.rowIndex}}}function at(e,t,n,r,o,s,a,c){let[i,f,p,b]=a.padding,l=s.size*$e*a.lineHeight,u=o.length*l,d=r-i-p,h=t+i;a.valign==="middle"?h+=(d-u)/2:a.valign==="bottom"&&(h+=d-u);let $=o.map((v,M)=>{let j=c.width(v,s)+a.letterSpacing*[...v].length,y=e+b;return a.align==="center"?y=e+b+(n-b-f-j)/2:a.align==="right"&&(y=e+n-f-j),{text:v,x:y,y:h+M*l+(l-s.size*$e)/2+s.size*$e*Ga,width:j}}),x=h<t-.05||h+u>t+r+.05||$.some(v=>v.x<e-.05||v.x+v.width>e+n+.05);return{kind:"text",x:e,y:t,w:n,h:r,lines:$,font:s,color:a.color,align:a.align,valign:a.valign,underline:a.underline||void 0,strike:a.strike||void 0,letterSpacing:a.letterSpacing||void 0,overflow:x||void 0,text:o.join(`
|
|
13
|
+
`)}}function Va(e,t,n,r,o){let s=e.reduce((f,p)=>f+p,0),a=r/s,c=[],i=t;return e.forEach((f,p)=>{p%2===0&&c.push("M",i,n,"L",i+f*a,n,"L",i+f*a,n+o,"L",i,n+o,"Z"),i+=f*a}),c}function Ya(e,t,n,r,o,s,a){let c=String(Me(e.expr,s)??"");if(!c||c.startsWith("#ERR")||a.blank)return[];let i=e.color??"#000000",f={band:a.kind,elementId:e.id,row:a.rowIndex,value:c};try{if(e.format==="qr"||e.format==="datamatrix"||e.format==="pdf417"){let $,x,v,M,j;if(e.format==="pdf417"){$=Xn(c).matrix;let T=$[0].length+4,I=$.length*3+4,V=Math.min(r/T,o/I);x=V,v=V*3,M=t+(r-T*V)/2+2*V,j=n+(o-I*V)/2+2*V}else{$=e.format==="qr"?_n(c,e.ecc??"M"):Vn(c);let T=e.format==="qr"?4:1,I=$.length+T*2,V=Math.min(r,o);x=v=V/I,M=t+(r-V)/2+T*x,j=n+(o-V)/2+T*v}let y=x,A=[];return $.forEach((T,I)=>{for(let V=0;V<T.length;V++){if(!T[V])continue;let oe=V;for(;oe+1<T.length&&T[oe+1];)oe++;A.push("M",M+V*y,j+I*v,"L",M+(oe+1)*y,j+I*v,"L",M+(oe+1)*y,j+(I+1)*v,"L",M+V*y,j+(I+1)*v,"Z"),V=oe}}),[{kind:"path",d:A,fill:i,source:f}]}let p=e.format==="ean13"?Kn(c):Wn(c),b=e.showText!==!1,l=Ae(a.def,e),u=Math.min(l.fontSize,9),d=b?u*$e*1.3:0,h=[{kind:"path",d:Va(p,t,n,r,Math.max(1,o-d)),fill:i,source:f}];if(b){let $={family:l.fontFamily,size:u,bold:!1,italic:!1};h.push(at(t,n+o-d,r,d,[c],$,{...l,align:"center",valign:"middle",padding:[0,0,0,0],letterSpacing:0},a.measure))}return h}catch{return[at(t,n,r,o,["(barcode?)"],{family:"sans-serif",size:7,bold:!1,italic:!1},{...Ae(a.def,e),color:"#cc0000"},a.measure)]}}var wt=e=>Math.min(e.y,e.y+e.h),xt=e=>Math.max(e.y,e.y+e.h),Po=e=>Math.min(e.x,e.x+e.w),jo=e=>Math.max(e.x,e.x+e.w);function Ja(e){let t=!1;for(let s of e)if(s.collapsed||!s.hidden&&s.needed>s.el.h+.01){t=!0;break}if(!t)return null;let n=new Map,r=[...e].sort((s,a)=>wt(s.el)-wt(a.el)),o=s=>s.hidden?0:Math.max(0,s.needed-s.el.h);for(let s of r){if(s.el.shift===!1)continue;let a=wt(s.el),c=Po(s.el),i=jo(s.el),f=null,p=-1/0,b=-1/0,l=[];for(let h of r){if(wt(h.el)>=a)break;xt(h.el)>a+.01||Po(h.el)>=i-.01||c>=jo(h.el)-.01||(l.push(h),(!f||xt(h.el)>xt(f.el)+.01)&&(f=h))}for(let h of l){if(h.collapsed)continue;let $=(n.get(h)??0)+o(h);$>0&&!l.some(x=>x.collapsed&&wt(x.el)>=xt(h.el)-.01)&&(b=Math.max(b,$)),p=Math.max(p,xt(h.el)+$-a)}if(!f)continue;let u=f.collapsed?wt(f.el)+(n.get(f)??0)-a:(n.get(f)??0)+o(f),d=Math.max(u,b,p);Math.abs(d)>1e-9&&n.set(s,d)}return n}function Za(e){for(let t of e)if(!(t.el.stretch!=="row"||t.hidden))for(let n of e)!n.hidden&&Math.abs(n.el.y-t.el.y)<.01&&Math.abs(n.el.h-t.el.h)<.01&&(t.needed=Math.max(t.needed,n.needed))}function Ao(e,t,n,r,o,s,a,c){if(!t.id)return;let i=t.type==="line";e.push({id:t.id,band:n.kind,row:n.rowIndex,x:r+(i?Math.min(t.x,t.x+t.w):t.x),y:o+(i?Math.min(s,s+a):s),w:i?Math.abs(t.w):t.w,h:i?Math.abs(a):a,...c?{hidden:c}:{}})}function Ye(e,t,n,r,o,s=0){let a=e.canGrow??(n.kind==="detail"||n.kind==="groupHeader"||n.kind==="groupFooter"||n.kind==="summary"||n.kind==="title"),c=[],i=n.anchors&&!n.blank?[]:void 0,f=!1,p=!1;for(let $ of e.elements){if($.visible&&!n.blank&&!Wa(Me($.visible,t))){$.collapse&&(f=!0),c.push({el:$,style:Ae(n.def,$),needed:$.h,hidden:!0,collapsed:!!$.collapse});continue}$.stretch==="row"&&(p=!0),c.push(_a($,t,n,a))}p&&Za(c);let b=Ja(c),l=$=>b?$.el.y+(b.get($)??0):$.el.y,u=Math.max(e.height,s);if(f){let $=0,x=0;for(let v of c)$=Math.max($,xt(v.el)),v.hidden||(x=Math.max(x,l(v)+Math.max(v.needed,0)));u=Math.max(s,x+Math.max(0,e.height-$))}else for(let $ of c)$.hidden||(u=Math.max(u,l($)+$.needed));let d=[],h=n.background??e.background;h&&d.push({kind:"box",x:r,y:o,w:n.width,h:u,fill:h,source:{band:n.kind,row:n.rowIndex}});for(let $ of c){let x=$.el,v=l($);if($.hidden){i&&Ao(i,x,n,r,o,v,x.h,!0);continue}let M=x.y+x.h>=e.height-.01,j=x.stretch==="row"?M:x.stretch??M,y=$.needed;j&&x.type!=="line"&&x.type!=="table"&&x.type!=="crosstab"&&(y=Math.max(y,u-v)),x.type==="line"&&(y=x.h===0?0:x.stretch==="row"?$.needed:M?Math.max(x.h,u-v):x.h);let A=r+x.x,T=o+v;switch(i&&Ao(i,x,n,r,o,v,y),x.type){case"text":case"field":{let I=Xa(A,T,x.w,y,$.style,n,x.id);if(I&&d.push(I),$.text){let V=at(A,T,x.w,y,$.lines,$.font,$.style,n.measure);V.source={band:n.kind,elementId:x.id,row:n.rowIndex,value:x.type==="field"?$.value:void 0,format:x.type==="field"?x.format:void 0},/docHash/.test(x.type==="text"?x.text:x.expr)&&(V.source.fingerprint=!0),d.push(V)}break}case"line":{d.push({kind:"line",x1:A,y1:T,x2:A+x.w,y2:T+y,width:x.width??.2,color:x.color??"#000000",dash:x.dash,source:{band:n.kind,elementId:x.id}});break}case"rect":{let I=x.width??.2;d.push({kind:"box",x:A,y:T,w:x.w,h:y,fill:x.fill,radius:x.radius,stroke:I>0?{width:I,color:x.color??"#000000"}:void 0,source:{band:n.kind,elementId:x.id}});break}case"image":{let I=x.expr?String(Me(x.expr,t)??""):x.src??"";I&&!I.startsWith("#ERR")&&!n.blank&&d.push({kind:"image",x:A,y:T,w:x.w,h:y,src:I,fit:x.fit??"contain",source:{band:n.kind,elementId:x.id}});break}case"barcode":d.push(...Ya(x,A,T,x.w,y,t,n));break;case"chart":n.blank||d.push(...ko(x,t,{x:A,y:T,w:x.w,h:y},n));break;case"table":n.blank||d.push(...So(x,t,A,T,n));break;case"crosstab":n.blank||d.push(...To(x,t,A,T,n));break}}return i?{height:u,items:d,anchors:i}:{height:u,items:d}}var Qn=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Co(e){return e instanceof Date?e.getTime():typeof e=="number"?e:typeof e=="boolean"?e?1:0:e==null?"":String(e)}var Qa=new Intl.Collator("ko",{numeric:!0});function Do(e,t){let n=Co(e),r=Co(t);return typeof n=="number"&&typeof r=="number"?n-r:n===r?0:Qa.compare(String(n),String(r))}function ei(e,t){if(!t)return e;for(let n of e)if(n.kind==="line")n.y1+=t,n.y2+=t;else if(n.kind==="path"){let r=0;for(let o=0;o<n.d.length;o++){let s=n.d[o];if(typeof s=="string"){r=0;continue}r++%2===1&&(n.d[o]=s+t)}}else if(n.y+=t,n.kind==="text")for(let r of n.lines)r.y+=t;return e}var Lo=new WeakMap;function ti(e){let t=Lo.get(e);return t===void 0&&(t=/\bpages?\b|pageRows|pageIndex/.test(JSON.stringify(e.elements)),Lo.set(e,t)),t}function He(e,t){if(Array.isArray(t))return{rows:t,root:{rows:t}};let n=t??{},r=n[e.dataSource??"rows"];return{rows:Array.isArray(r)?r:[],root:n}}function it(e,t={}){let n={};for(let[r,o]of Object.entries(e.params??{}))n[r]=o.default;return{...n,...t}}function Fo(e,t,n,r){if(n>=t.length)return null;let o=t[n],s=Ne(o.by),a=[],c=null;e.forEach(i=>{let f=s({...r,row:i});(!c||Do(c.key,f)!==0)&&(c={def:o,level:n,key:f,rows:[],children:null},a.push(c)),c.rows.push(i)});for(let i of a)i.children=Fo(i.rows,t,n+1,r);return a}function kt(e,t={},n={}){let r=typeof performance<"u"?performance.now():Date.now(),o=er(e,t,n,void 0,void 0),s=/\bpages\b/.test(JSON.stringify([e.bands.title,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.groups])),a=s&&o.pages.length>1?er(e,t,n,o.pages.length,void 0):o;if(e.fingerprint){let c=Lt(a.pages);a=er(e,t,n,s?a.pages.length:void 0,c),a.fingerprint=c}return a.ms=Math.round(((typeof performance<"u"?performance.now():Date.now())-r)*10)/10,a}function er(e,t,n,r,o){Jr();let s=n.measure??St(),a=n.locale??"ko",c=n.maxPages??1e4,i=_e(e.page),[f,,p,b]=i.margins,l=Xe(e),u=it(e,n.params),{rows:d,root:h}=He(e,t),$=new Date,x=o?{docHash:o,docHashShort:o.slice(0,12)}:{docHash:"",docHashShort:""},v={rows:d,allRows:d,params:u,data:h,vars:{now:$,...x}},M=d;if(e.filter){let D=Ne(e.filter);M=M.filter(C=>Qn(D({...v,row:C})))}let j=e.bands.groups??[],y=[...j.filter(D=>D.sort).map(D=>({fn:Ne(D.by),dir:D.sort==="desc"?-1:1})),...(e.sort??[]).map(D=>({fn:Ne(D.replace(/^[-+]/,"")),dir:D.startsWith("-")?-1:1}))];if(y.length){let D=M.map((C,ne)=>({row:C,i:ne,keys:y.map(q=>q.fn({...v,row:C}))}));D.sort((C,ne)=>{for(let q=0;q<y.length;q++){let G=Do(C.keys[q],ne.keys[q])*y[q].dir;if(G)return G}return C.i-ne.i}),M=D.map(C=>C.row)}let A={...v,rows:M,allRows:M},T=[],I=e.bands;I.title&&T.push({kind:"title",band:I.title,scopeRows:M,groups:[]});let V=0,oe=(D,C,ne)=>{if(!D){let q=Math.max(1,Math.floor(I.detail?.columns??1));if(I.detail&&q>1){for(let G=0;G<ne.length;G+=q){let S=ne.slice(G,G+q);T.push({kind:"detail",band:I.detail,row:S[0],rowIndex:V,localIndex:G,chunk:S,scopeRows:ne,groupRows:C.length?ne:void 0,groups:C}),V+=S.length}return}ne.forEach((G,S)=>{I.detail&&T.push({kind:"detail",band:I.detail,row:G,rowIndex:V,localIndex:S,scopeRows:ne,groupRows:C.length?ne:void 0,groups:C}),V++});return}for(let q of D){let G=[...C,q];q.def.header&&T.push({kind:"groupHeader",band:q.def.header,row:q.rows[0],scopeRows:q.rows,groupRows:q.rows,groups:G,group:q}),oe(q.children,G,q.rows),q.def.footer&&T.push({kind:"groupFooter",band:q.def.footer,row:q.rows[q.rows.length-1],scopeRows:q.rows,groupRows:q.rows,groups:G,group:q})}};!M.length&&I.noData?T.push({kind:"noData",band:I.noData,scopeRows:M,groups:[]}):oe(Fo(M,j,0,A),[],M),I.summary&&T.push({kind:"summary",band:I.summary,row:M[M.length-1],scopeRows:M,groups:[]});let z=[],ae=[],ke=[],U,le=0,me=0,_=!1,ue=!1,Y=new Map,H=I.pageFooter?.height??0,O=null,X=(D,C)=>({...A,row:D.row,rows:D.kind==="groupHeader"||D.kind==="groupFooter"||D.kind==="detail"?D.scopeRows:M,groupRows:D.groupRows,pageRows:ae[z.length-1],vars:{now:$,...x,page:C,pages:r??C,rowNum:D.localIndex!==void 0?D.localIndex+1:void 0,rowIndex:D.rowIndex!==void 0?D.rowIndex+1:void 0,groupKey:D.group?.key??D.groups[D.groups.length-1]?.key,groupLevel:D.group?.level}}),ie=(D,C={})=>({def:e,measure:s,locale:a,kind:D,width:l,previous:Y,anchors:n.anchors,...C}),ge=()=>{if(z.length>=c)throw new Error(`Report stopped at ${c} pages (maxPages)`);U={number:z.length+1,total:0,width:i.width,height:i.height,items:[]},z.push(U),ae.push([]),ke.push(O),le=f,I.pageHeader&&!(e.pageHeaderSkipFirst&&z.length===1)&&(le+=I.pageHeader.height),me=i.height-p-H,_=!1,ue=!1,Y.clear()},ye=(D,C,ne,q={},G)=>{let S=G?{height:G.height,items:ei(G.items,le),anchors:G.anchors?.map(Q=>({...Q,y:Q.y+le}))}:Ye(D,ne,ie(C,q),b,le);for(let Q of S.items)U.items.push(Q);if(S.anchors){for(let Q of S.anchors)Q.y+Q.h>me+.01&&(Q.offPage=!0);(U.anchors??(U.anchors=[])).push(...S.anchors)}return le+=S.height,ue=!0,S.height},Z=(D,C,ne,q={})=>Ye(D,ne,ie(C,{...q,previous:void 0,anchors:!1}),0,0).height,J=(D,C,ne)=>{let q=D.band,G=Math.max(1,Math.floor(q.columns??1)),S=q.columnGap??0,Q=(l-S*(G-1))/G,ee=D.chunk.map((m,w)=>Ye(q,{...C,row:m,vars:{...C.vars,rowNum:(D.localIndex??0)+w+1,rowIndex:(D.rowIndex??0)+w+1}},ie(D.kind,{...ne,rowIndex:(D.rowIndex??0)+w,previous:void 0,width:Q}),b+w*(Q+S),0));return{height:Math.max(...ee.map(m=>m.height)),items:ee.flatMap(m=>m.items),anchors:n.anchors?ee.flatMap(m=>m.anchors??[]):void 0}},fe=D=>D.kind==="detail"||D.kind==="groupHeader"||D.kind==="groupFooter",de=D=>{!I.columnHeader||_||!fe(D)||(_=!0,ye(I.columnHeader,"columnHeader",X(D,U.number)))},pe=D=>{for(let C of D.groups){if(C===D.group&&D.kind==="groupHeader")break;C.def.repeatHeader&&C.def.header&&ye(C.def.header,"groupHeader",{...X(D,U.number),rows:C.rows,groupRows:C.rows,row:C.rows[0]})}},ce=D=>{if(!e.fillEmptyRows||!I.detail)return;let C=I.detail.height;if(C>.5)for(;le+C<=D+.01&&!(ye(I.detail,"detail",{...A,rows:M},{blank:!0})<=0););};ge();let R=new Set;for(let D=0;D<T.length;D++){let C=T[D],ne=X(C,U.number);if(C.band.visible&&!Qn(Me(C.band.visible,ne)))continue;C.kind==="groupHeader"&&C.group?.def.resetPageNumber&&(O&&ue?(ce(me),O=C.group,ge()):(O=C.group,ke[z.length-1]=O));let q=C.band.pageBreakBefore&&ue||C.kind==="groupHeader"&&C.group?.def.newPage&&ue&&!C.group.def.resetPageNumber&&R.has(C.group.level);C.kind==="groupHeader"&&C.group&&R.add(C.group.level),q&&(ce(me),ge());let G={rowIndex:C.rowIndex};C.kind==="detail"&&I.detail?.altBackground&&(C.localIndex??0)%2===1&&(G.background=I.detail.altBackground);let S=!ti(C.band)&&!C.band.elements.some(w=>w.type==="field"&&w.suppressRepeated),Q=C.chunk?J(C,ne,G):Ye(C.band,ne,ie(C.kind,{...G,previous:void 0}),b,0),ee=Q.height;if(!_&&I.columnHeader&&fe(C)&&(ee+=I.columnHeader.height),C.kind==="groupHeader"){let w=C.group?.def.keepWithRows??1;for(let E=D+1,k=0;E<T.length&&k<w&&!(T[E].kind!=="detail"&&T[E].kind!=="groupHeader");E++)ee+=Z(T[E].band,T[E].kind,X(T[E],U.number)),T[E].kind==="detail"&&k++}le+ee>me+.01&&ue?(ce(me),ge(),de(C),pe(C)):de(C);let m=X(C,U.number);if(ye(C.band,C.kind,m,G,S||C.chunk?Q:void 0),C.chunk?ae[z.length-1].push(...C.chunk):C.kind==="detail"&&C.row&&ae[z.length-1].push(C.row),e.fillEmptyRows&&C.kind==="detail"&&T[D+1]?.kind!=="detail"){let E=T.slice(D+1).filter(k=>k.kind==="groupFooter"||k.kind==="summary").reduce((k,P)=>k+Z(P.band,P.kind,X(P,U.number)),0);T.slice(D+1).some(k=>k.kind==="detail")||ce(me-E)}C.band.pageBreakAfter&&D<T.length-1&&ge()}!T.length&&e.fillEmptyRows&&ce(me);let N=new Map;ke.forEach((D,C)=>N.set(D,[...N.get(D)??[],C]));for(let D of N.values())D.forEach((C,ne)=>{z[C].number=ne+1,z[C].total=D.length});return z.forEach((D,C)=>{let ne=ke[C],q={...A,row:ae[C][0],rows:ae[C],pageRows:ae[C],groupRows:ne?.rows,vars:{now:$,...x,page:D.number,pages:D.total,pageIndex:C+1,pageCount:z.length,groupKey:ne?.key,lastPage:C===z.length-1,firstPage:C===0}},G=[],S=(Q,ee,m)=>{if(!Q||Q.visible&&!Qn(Me(Q.visible,q)))return;let w=Ye(Q,q,ie(ee,{previous:void 0}),b,m,0);G.push(...w.items),w.anchors&&(D.anchors??(D.anchors=[])).push(...w.anchors)};e.pageHeaderSkipFirst&&C===0||S(I.pageHeader,"pageHeader",f),S(I.pageFooter,"pageFooter",i.height-p-H),D.items.push(...G)}),no(z,{watermark:e.watermark,emboss:e.emboss,locale:a},i,(D,C)=>({...A,rows:ae[C],pageRows:ae[C],vars:{now:$,...x,page:D.number,pages:D.total,pageIndex:C+1,pageCount:z.length}}),s),{pages:z,width:i.width,height:i.height,rowCount:M.length,ms:0}}var ni=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function ri(e){let t=4294967295;for(let n=0;n<e.length;n++)t=ni[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Io=new TextEncoder;function ln(e){let t=e.map(p=>{let b=Io.encode(p.name),l=typeof p.data=="string"?Io.encode(p.data):p.data;return{name:b,data:l,crc:ri(l),offset:0}}),n=t.reduce((p,b)=>p+30+b.name.length+b.data.length,0),r=t.reduce((p,b)=>p+46+b.name.length,0),o=new Uint8Array(n+r+22),s=new DataView(o.buffer),a=0,c=0,i=33;for(let p of t)p.offset=a,s.setUint32(a,67324752,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,2048,!0),s.setUint16(a+8,0,!0),s.setUint16(a+10,c,!0),s.setUint16(a+12,i,!0),s.setUint32(a+14,p.crc,!0),s.setUint32(a+18,p.data.length,!0),s.setUint32(a+22,p.data.length,!0),s.setUint16(a+26,p.name.length,!0),s.setUint16(a+28,0,!0),o.set(p.name,a+30),o.set(p.data,a+30+p.name.length),a+=30+p.name.length+p.data.length;let f=a;for(let p of t)s.setUint32(a,33639248,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,20,!0),s.setUint16(a+8,2048,!0),s.setUint16(a+10,0,!0),s.setUint16(a+12,c,!0),s.setUint16(a+14,i,!0),s.setUint32(a+16,p.crc,!0),s.setUint32(a+20,p.data.length,!0),s.setUint32(a+24,p.data.length,!0),s.setUint16(a+28,p.name.length,!0),s.setUint16(a+30,0,!0),s.setUint16(a+32,0,!0),s.setUint16(a+34,0,!0),s.setUint16(a+36,0,!0),s.setUint32(a+38,0,!0),s.setUint32(a+42,p.offset,!0),o.set(p.name,a+46),a+=46+p.name.length;return s.setUint32(a,101010256,!0),s.setUint16(a+8,t.length,!0),s.setUint16(a+10,t.length,!0),s.setUint32(a+12,a-f,!0),s.setUint32(a+16,f,!0),o}function Bt(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}var oi=Date.UTC(1899,11,30),si=e=>(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())-oi)/864e5,ai=/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,Ht=e=>e.replace(ai,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Nt=e=>{if(!e)return"";let t=e.replace("#","");return/^[0-9a-f]{6}$/i.test(t)?`FF${t.toUpperCase()}`:/^[0-9a-f]{3}$/i.test(t)?`FF${[...t].map(n=>n+n).join("").toUpperCase()}`:/^[0-9a-f]{8}$/i.test(t)?t.toUpperCase():""},ii={Letter:1,Legal:5,A3:8,A4:9,A5:11,B4:12,B5:13},lt=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
14
|
+
`,tr="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Bo="http://schemas.openxmlformats.org/officeDocument/2006/relationships",nr=class{constructor(){this.fonts=['<font><sz val="10"/><name val="\uB9D1\uC740 \uACE0\uB515"/><family val="3"/></font>'];this.fills=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>'];this.borders=["<border><left/><right/><top/><bottom/><diagonal/></border>"];this.numFmts=[];this.xfs=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'];this.idx=new Map;this.fmtIds=new Map}intern(t,n){let r=`${t.length===0,""}${n}`,o=t.indexOf(r);return o>=0?o:(t.push(n),t.length-1)}id(t){if(!t)return 0;let n=JSON.stringify(t),r=this.idx.get(n);if(r!==void 0)return r;let o=t.font??{},s=this.intern(this.fonts,`<font>${o.bold?"<b/>":""}${o.italic?"<i/>":""}${o.strike?"<strike/>":""}${o.underline?"<u/>":""}<sz val="${o.size??10}"/>${Nt(o.color)?`<color rgb="${Nt(o.color)}"/>`:""}<name val="${Ht(o.name??"\uB9D1\uC740 \uACE0\uB515")}"/><family val="3"/></font>`),a=t.fill&&Nt(t.fill)?this.intern(this.fills,`<fill><patternFill patternType="solid"><fgColor rgb="${Nt(t.fill)}"/><bgColor indexed="64"/></patternFill></fill>`):0,c=(d,h)=>h?`<${d} style="${h.style}"><color rgb="${Nt(h.color)||"FF000000"}"/></${d}>`:`<${d}/>`,i=t.border??{},f=t.border?this.intern(this.borders,`<border>${c("left",i.left)}${c("right",i.right)}${c("top",i.top)}${c("bottom",i.bottom)}<diagonal/></border>`):0,p=0;t.fmt&&t.fmt!=="General"&&(p={0:1,"0.00":2,"#,##0":3,"#,##0.00":4,"0%":9,"0.00%":10,"yyyy-mm-dd":14}[t.fmt]??this.fmtIds.get(t.fmt)??0,p||(p=164+this.numFmts.length,this.numFmts.push(`<numFmt numFmtId="${p}" formatCode="${Ht(t.fmt)}"/>`),this.fmtIds.set(t.fmt,p)));let b=t.align||t.valign||t.wrap?`<alignment${t.align?` horizontal="${t.align}"`:""}${t.valign?` vertical="${t.valign}"`:""}${t.wrap?' wrapText="1"':""}/>`:"",l=`numFmtId="${p}" fontId="${s}" fillId="${a}" borderId="${f}" xfId="0"`+(p?' applyNumberFormat="1"':"")+(s?' applyFont="1"':"")+(a?' applyFill="1"':"")+(f?' applyBorder="1"':"")+(b?' applyAlignment="1"':"");this.xfs.push(b?`<xf ${l}>${b}</xf>`:`<xf ${l}/>`);let u=this.xfs.length-1;return this.idx.set(n,u),u}xml(){return lt+`<styleSheet xmlns="${tr}">`+(this.numFmts.length?`<numFmts count="${this.numFmts.length}">${this.numFmts.join("")}</numFmts>`:"")+`<fonts count="${this.fonts.length}">${this.fonts.join("")}</fonts><fills count="${this.fills.length}">${this.fills.join("")}</fills><borders count="${this.borders.length}">${this.borders.join("")}</borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="${this.xfs.length}">${this.xfs.join("")}</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>`}};function li(e){let t=new Set;return e.map((n,r)=>{let o=(n.name??`Sheet${r+1}`).replace(/[[\]:*?/\\]/g," ").slice(0,31).trim()||`Sheet${r+1}`,s=o;for(let a=2;t.has(s.toLowerCase());a++)s=`${o.slice(0,27)} (${a})`;return t.add(s.toLowerCase()),s})}function cn(e,t={}){let n=new nr,r=li(e),o=e.map(a=>{let c=[],i=0;for(let j=0;j<a.rows.length;j++)i=Math.max(i,a.rows[j]?.length??0);a.widths&&(i=Math.max(i,a.widths.length));let f=Math.max(a.rows.length,a.heights?.length??0);for(let j=0;j<f;j++){let y=a.rows[j]??[],A=a.heights?.[j],T="";for(let I=0;I<y.length;I++){let V=y[I];if(!V)continue;let oe=`${Bt(I)}${j+1}`,z=V.v,ae=V.s;z instanceof Date&&(Number.isNaN(z.getTime())?z=null:(z=si(z),ae={...ae,fmt:ae?.fmt??"yyyy-mm-dd"}));let ke=n.id(ae),U=ke?` s="${ke}"`:"";z==null||z===""?T+=`<c r="${oe}"${U}/>`:typeof z=="number"?T+=Number.isFinite(z)?`<c r="${oe}"${U}><v>${z}</v></c>`:`<c r="${oe}"${U}/>`:typeof z=="boolean"?T+=`<c r="${oe}"${U} t="b"><v>${z?1:0}</v></c>`:T+=`<c r="${oe}"${U} t="inlineStr"><is><t xml:space="preserve">${Ht(String(z))}</t></is></c>`}(T||A)&&c.push(`<row r="${j+1}"${A?` ht="${Math.round(A*100)/100}" customHeight="1"`:""}>${T}</row>`)}let p=`A1:${Bt(Math.max(0,i-1))}${Math.max(1,f)}`,b=`<sheetViews><sheetView workbookViewId="0"${a.showGrid===!1?' showGridLines="0"':""}>${a.freezeRows?`<pane ySplit="${a.freezeRows}" topLeftCell="A${a.freezeRows+1}" activePane="bottomLeft" state="frozen"/>`:""}</sheetView></sheetViews>`,l=a.widths?.length?`<cols>${a.widths.map((j,y)=>`<col min="${y+1}" max="${y+1}" width="${Math.round(j*100)/100}" customWidth="1"/>`).join("")}</cols>`:"",u=a.merges?.length?`<mergeCells count="${a.merges.length}">${a.merges.map(([j,y,A,T])=>`<mergeCell ref="${Bt(y)}${j+1}:${Bt(T)}${A+1}"/>`).join("")}</mergeCells>`:"",d=a.autoFilter&&i?`<autoFilter ref="A${a.freezeRows||1}:${Bt(i-1)}${Math.max(1,f)}"/>`:"",h=a.page,$=h?.margins?`<pageMargins left="${(h.margins[3]/25.4).toFixed(3)}" right="${(h.margins[1]/25.4).toFixed(3)}" top="${(h.margins[0]/25.4).toFixed(3)}" bottom="${(h.margins[2]/25.4).toFixed(3)}" header="0" footer="0"/>`:"",x=h?`<pageSetup paperSize="${ii[h.paper??"A4"]??9}" orientation="${h.landscape?"landscape":"portrait"}"${h.fitWidth?` fitToWidth="1" fitToHeight="${h.fitHeight??0}"`:""}/>`:"",v=a.breaks?.length?`<rowBreaks count="${a.breaks.length}" manualBreakCount="${a.breaks.length}">${a.breaks.map(j=>`<brk id="${j}" max="16383" man="1"/>`).join("")}</rowBreaks>`:"",M=h?.fitWidth?'<sheetPr><pageSetUpPr fitToPage="1"/></sheetPr>':"";return lt+`<worksheet xmlns="${tr}" xmlns:r="${Bo}">${M}<dimension ref="${p}"/>${b}<sheetFormatPr defaultRowHeight="15"/>${l}<sheetData>${c.join("")}</sheetData>${d}${u}${$}${x}${v}</worksheet>`}),s=[{name:"[Content_Types].xml",data:lt+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'+e.map((a,c)=>`<Override PartName="/xl/worksheets/sheet${c+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")+'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/></Types>'},{name:"_rels/.rels",data:lt+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>'},{name:"docProps/core.xml",data:lt+`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>${Ht(t.creator??"FreeReport")}</dc:creator><dcterms:created xsi:type="dcterms:W3CDTF">${new Date().toISOString().slice(0,19)}Z</dcterms:created></cp:coreProperties>`},{name:"xl/workbook.xml",data:lt+`<workbook xmlns="${tr}" xmlns:r="${Bo}"><sheets>${r.map((a,c)=>`<sheet name="${Ht(a)}" sheetId="${c+1}" r:id="rId${c+1}"/>`).join("")}</sheets></workbook>`},{name:"xl/_rels/workbook.xml.rels",data:lt+`<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${e.map((a,c)=>`<Relationship Id="rId${c+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${c+1}.xml"/>`).join("")}<Relationship Id="rId${e.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`},...o.map((a,c)=>({name:`xl/worksheets/sheet${c+1}.xml`,data:a}))];return s.push({name:"xl/styles.xml",data:n.xml()}),ln(s)}var Ho=1.9,ci=72/25.4,Je=e=>{if(e)return e.style==="double"?{style:"double",color:e.color}:e.style==="dashed"?{style:"dashed",color:e.color}:e.style==="dotted"?{style:"dotted",color:e.color}:{style:e.width>=.6?"thick":e.width>=.35?"medium":e.width<.12?"hair":"thin",color:e.color}};function Oo(e){if(!(!e||e==="korean"||e==="koreanNumber"||e==="bizNo"||e==="upper"||e==="lower"))return jn(e)?e.replace(/dddd/g,"aaaa").replace(/ddd/g,"aaa").replace(/\ba\b|tt/g,"AM/PM").replace(/H/g,"h"):e.replace(/([^"\\#0,.%;()₩$€\-\s])/gu,(t,n,r,o)=>/"/.test(o.slice(0,r).replace(/[^"]/g,"").length%2?'"':"")?t:`"${t}"`).replace(/""/g,"")}function No(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var Oe=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function Ot(e,t,n={}){let r=_e(t.page),o=l=>l.source?.band!=="watermark",s=[];for(let l of e.pages)for(let u of l.items)o(u)&&(u.kind==="text"||u.kind==="box"?s.push(u.x,u.x+u.w):u.kind==="line"&&Math.abs(u.x1-u.x2)<.01&&s.push(u.x1));let a=No(s.length?s:[r.margins[3],r.width-r.margins[1]],1.2),c=a.slice(1).map((l,u)=>Math.max(.5,(l-a[u])/Ho)),i=l=>({name:l,rows:[],widths:c,heights:[],merges:[],breaks:[],showGrid:!1,page:{paper:typeof t.page?.size=="string"?t.page.size:"A4",landscape:t.page?.orientation==="landscape",margins:r.margins,fitWidth:!0,fitHeight:n.onePerPage?1:e.pages.length}}),f=[],p=i(n.sheetName??t.name??"Report");f.push(p);let b=0;return e.pages.forEach((l,u)=>{n.onePerPage&&u>0&&(p=i(`${u+1}`),f.push(p),b=0);let d=l.items.filter(o),h=[];for(let y of d)y.kind==="text"||y.kind==="box"?h.push(y.y,y.y+y.h):y.kind==="line"&&Math.abs(y.y1-y.y2)<.01&&h.push(y.y1);if(!h.length)return;let $=No(h,.8);u>0&&!n.onePerPage&&p.breaks.push(b),$.slice(1).forEach((y,A)=>{p.heights[b+A]=Math.max(2,(y-$[A])*ci)});let x=(y,A)=>{var I,V;let T=(I=p.rows)[V=b+y]??(I[V]=[]);return T[A]??(T[A]={v:null,s:{}})},v=(y,A,T,I)=>{let V=Oe(a,y),oe=Math.max(V+1,Oe(a,y+T)),z=Oe($,A),ae=Math.max(z+1,Oe($,A+I));return{r1:z,c1:V,r2:ae-1,c2:oe-1}},M=(y,A)=>{for(let T=y.c1;T<=y.c2;T++){if(A.top){let I=x(y.r1,T).s;I.border={...I.border,top:Je(A.top)}}if(A.bottom){let I=x(y.r2,T).s;I.border={...I.border,bottom:Je(A.bottom)}}}for(let T=y.r1;T<=y.r2;T++){if(A.left){let I=x(T,y.c1).s;I.border={...I.border,left:Je(A.left)}}if(A.right){let I=x(T,y.c2).s;I.border={...I.border,right:Je(A.right)}}}},j=new Set;for(let y of d)if(y.kind==="box"){let A=v(y.x,y.y,y.w,y.h);if(y.fill)for(let T=A.r1;T<=A.r2;T++)for(let I=A.c1;I<=A.c2;I++)x(T,I).s.fill=y.fill;if(y.border&&M(A,y.border),y.stroke&&y.stroke.width>0){let T={width:y.stroke.width,style:y.stroke.dash??"solid",color:y.stroke.color};M(A,{top:T,right:T,bottom:T,left:T})}}else if(y.kind==="line"){let A={width:y.width,style:y.dash??"solid",color:y.color};if(Math.abs(y.y1-y.y2)<.01){let T=Oe($,y.y1),I=Oe(a,Math.min(y.x1,y.x2)),V=Oe(a,Math.max(y.x1,y.x2));for(let oe=I;oe<V;oe++)if(T<$.length-1){let z=x(T,oe).s;z.border={...z.border,top:Je(A)}}else{let z=x(T-1,oe).s;z.border={...z.border,bottom:Je(A)}}}else if(Math.abs(y.x1-y.x2)<.01){let T=Oe(a,y.x1),I=Oe($,Math.min(y.y1,y.y2)),V=Oe($,Math.max(y.y1,y.y2));for(let oe=I;oe<V;oe++)if(T<a.length-1){let z=x(oe,T).s;z.border={...z.border,left:Je(A)}}else{let z=x(oe,T-1).s;z.border={...z.border,right:Je(A)}}}}else if(y.kind==="text"){let A=v(y.x,y.y,y.w,y.h),T=`${A.r1}:${A.c1}`,I=x(A.r1,A.c1),V=y.source?.value,oe=Oo(y.source?.format),z=typeof V=="number"&&Number.isFinite(V)&&y.source?.format!=="korean"&&y.source?.format!=="koreanNumber";j.has(T)&&I.v!==null?I.v=`${I.v}
|
|
15
|
+
${y.text}`:I.v=z||V instanceof Date?V:y.text,j.add(T),Object.assign(I.s,{font:{size:Math.round(y.font.size*2)/2,bold:y.font.bold||void 0,italic:y.font.italic||void 0,underline:y.underline,strike:y.strike,color:y.color},align:y.align==="justify"?"left":y.align,valign:y.valign==="middle"?"center":y.valign,wrap:y.lines.length>1||void 0,fmt:z||V instanceof Date?oe:void 0}),(A.r2>A.r1||A.c2>A.c1)&&(p.merges.some(([ke,U,le,me])=>!(b+A.r2<ke||b+A.r1>le||A.c2<U||A.c1>me))||p.merges.push([b+A.r1,A.c1,b+A.r2,A.c2]))}b+=$.length-1}),cn(f)}function qt(e,t,n={}){let{rows:r,root:o}=He(e,t),s=it(e,n.params),c=[...e.bands.detail?.elements.filter(d=>d.type==="field"||d.type==="text")??[]].sort((d,h)=>d.y-h.y||d.x-h.x),i=e.bands.columnHeader?.elements.filter(d=>d.type==="text")??[],f=d=>{if(d.name)return d.name;let h=d.x+d.w/2,$=i.find(x=>x.x<=h&&x.x+x.w>=h);return $?$.text.replace(/\{[^}]*\}/g,"").trim():d.type==="field"?d.expr:d.text},p=c.map(d=>({v:f(d),s:{font:{bold:!0},fill:"F2F4F7",border:{bottom:{style:"thin"}},align:"center"}})),b=[p],l={rows:r,allRows:r,params:s,data:o,vars:{now:new Date}};r.forEach((d,h)=>{let $={...l,row:d,vars:{...l.vars,rowNum:h+1,rowIndex:h+1}};b.push(c.map(x=>{if(x.type==="text")return{v:Ge(x.text,$,n.locale)};let v=Me(x.expr,$);return typeof v=="number"||v instanceof Date?{v,s:{fmt:Oo(x.format)}}:{v:v==null?"":ve(v,x.format,n.locale)}}))});let u=c.map((d,h)=>Math.min(60,Math.max(6,String(p[h].v??"").length*2,d.w/Ho)));return cn([{name:n.sheetName??e.name??"Data",rows:b,widths:u,freezeRows:1,autoFilter:!0}])}function rr(e,t,n={}){let{rows:r,root:o}=He(e,t),s=it(e,n.params),a=(e.bands.detail?.elements.filter(p=>p.type==="field")??[]).sort((p,b)=>p.y-b.y||p.x-b.x),c=(p,b=!1)=>{let l=!b&&/^[=+\-@\t\r]/.test(p)?`'${p}`:p;return/[",\n\r]/.test(l)?`"${l.replace(/"/g,'""')}"`:l},i=[a.map(p=>c(p.name??p.expr)).join(",")],f={rows:r,allRows:r,params:s,data:o,vars:{now:new Date}};return r.forEach((p,b)=>{let l={...f,row:p,vars:{...f.vars,rowNum:b+1}};i.push(a.map(u=>{let d=Me(u.expr,l);return typeof d=="number"?c(String(d),!0):c(ve(d,u.format,n.locale))}).join(","))}),"\uFEFF"+i.join(`\r
|
|
16
|
+
`)}var Ie=e=>Math.round(e*7200/25.4),ui=25.4/72,qo=e=>e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),ar=e=>{let t=sn(e);return t&&t[3]>0?"#"+t.slice(0,3).map(n=>Math.round(n).toString(16).padStart(2,"0")).join("").toUpperCase():null},or='xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:hp="http://www.hancom.co.kr/hwpml/2011/paragraph" xmlns:hp10="http://www.hancom.co.kr/hwpml/2016/paragraph" xmlns:hs="http://www.hancom.co.kr/hwpml/2011/section" xmlns:hc="http://www.hancom.co.kr/hwpml/2011/core" xmlns:hh="http://www.hancom.co.kr/hwpml/2011/head" xmlns:hhs="http://www.hancom.co.kr/hwpml/2011/history" xmlns:hm="http://www.hancom.co.kr/hwpml/2011/master-page" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:ooxmlchart="http://www.hancom.co.kr/hwpml/2016/ooxmlchart" xmlns:hwpunitchar="http://www.hancom.co.kr/hwpml/2016/HwpUnitChar" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"',ct='<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>',zo=["\uB9D1\uC740 \uACE0\uB515","\uB098\uB214\uACE0\uB515"],fi=e=>/nanum\s*gothic|나눔고딕/i.test(e)?1:0,ir=["HANGUL","LATIN","HANJA","JAPANESE","OTHER","SYMBOL","USER"],di=["0.1","0.12","0.15","0.2","0.25","0.3","0.4","0.5","0.6","0.7","1.0","1.5","2.0","3.0","4.0","5.0"],zt=class{constructor(t){this.first=t;this.list=[];this.ids=new Map}id(t){let n=JSON.stringify(t),r=this.ids.get(n);return r===void 0&&(r=this.first+this.list.length,this.ids.set(n,r),this.list.push(t)),r}};function un(e,t){if(!t||t.width<=0)return`<hh:${e} type="NONE" width="0.1 mm" color="#000000"/>`;let n=t.style==="dashed"?"DASH":t.style==="dotted"?"DOT":t.style==="double"?"DOUBLE_SLIM":"SOLID",r=di.reduce((o,s)=>Math.abs(+s-t.width)<Math.abs(+o-t.width)?s:o);return`<hh:${e} type="${n}" width="${r} mm" color="${ar(t.color)??"#000000"}"/>`}function sr(e,t){let n=t.fill?`<hc:fillBrush><hc:winBrush faceColor="${t.fill}" hatchColor="#000000" alpha="0"/></hc:fillBrush>`:"";return`<hh:borderFill id="${e}" threeD="0" shadow="0" centerLine="NONE" breakCellSeparateLine="0"><hh:slash type="NONE" Crooked="0" isCounter="0"/><hh:backSlash type="NONE" Crooked="0" isCounter="0"/>`+un("leftBorder",t.left)+un("rightBorder",t.right)+un("topBorder",t.top)+un("bottomBorder",t.bottom)+`<hh:diagonal type="SOLID" width="0.1 mm" color="#000000"/>${n}</hh:borderFill>`}function pi(e,t){let n=r=>ir.map(o=>`${o.toLowerCase()}="${r}"`).join(" ");return`<hh:charPr id="${e}" height="${t.size}" textColor="${t.color}" shadeColor="none" useFontSpace="0" useKerning="0" symMark="NONE" borderFillIDRef="2"><hh:fontRef ${n(t.font)}/><hh:ratio ${n(100)}/><hh:spacing ${n(t.spacing)}/><hh:relSz ${n(100)}/><hh:offset ${n(0)}/>`+(t.italic?"<hh:italic/>":"")+(t.bold?"<hh:bold/>":"")+`<hh:underline type="${t.underline?"BOTTOM":"NONE"}" shape="SOLID" color="${t.color}"/><hh:strikeout shape="${t.strike?"SOLID":"NONE"}" color="${t.color}"/><hh:outline type="NONE"/><hh:shadow type="NONE" color="#B2B2B2" offsetX="10" offsetY="10"/></hh:charPr>`}function mi(e,t){return`<hh:paraPr id="${e}" tabPrIDRef="0" condense="0" fontLineHeight="0" snapToGrid="0" suppressLineNumbers="0" checked="0"><hh:align horizontal="${t.align}" vertical="BASELINE"/><hh:heading type="NONE" idRef="0" level="0"/><hh:breakSetting breakLatinWord="KEEP_WORD" breakNonLatinWord="BREAK_WORD" widowOrphan="0" keepWithNext="0" keepLines="0" pageBreakBefore="0" lineWrap="SQUEEZE"/><hh:autoSpacing eAsianEng="0" eAsianNum="0"/><hh:margin><hc:intent value="0" unit="HWPUNIT"/><hc:left value="0" unit="HWPUNIT"/><hc:right value="0" unit="HWPUNIT"/><hc:prev value="0" unit="HWPUNIT"/><hc:next value="0" unit="HWPUNIT"/></hh:margin><hh:lineSpacing type="PERCENT" value="${t.spacing}" unit="HWPUNIT"/><hh:border borderFillIDRef="2" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/></hh:paraPr>`}function Uo(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var Ze=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function hi(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(e.length>24&&e[0]===137&&e[1]===80)return[t.getUint32(16),t.getUint32(20)];if(e.length>4&&e[0]===255&&e[1]===216)for(let n=2;n+9<e.length;){if(e[n]!==255)return null;let r=e[n+1],o=t.getUint16(n+2);if(r>=192&&r<=207&&r!==196&&r!==200&&r!==204)return[t.getUint16(n+7),t.getUint16(n+5)];n+=2+o}return null}function gi(e){let t=/^data:image\/(png|jpe?g);base64,(.*)$/is.exec(e.trim());if(!t||typeof atob!="function")return null;try{let n=atob(t[2].replace(/\s+/g,"")),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return{bytes:r,ext:t[1].toLowerCase()==="png"?"png":"jpg"}}catch{return null}}function lr(e,t){let n=_e(t.page),r=e.width||n.width,o=e.height||n.height,s=new zt(0),a=new zt(0),c=new zt(3),i={top:void 0,right:void 0,bottom:void 0,left:void 0,fill:null};s.id({font:0,size:1e3,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});let f=s.id({font:0,size:100,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});a.id({align:"LEFT",spacing:160});let p=a.id({align:"LEFT",spacing:100}),b=c.id(i),l=[],u=new Map,d=1e3,h=0,$=[],x=()=>`<hp:p id="${h++}" paraPrIDRef="${p}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}"/></hp:p>`,v=Y=>Y.flatMap(H=>{let O=H.font.size*ui,X=H.lines.length>1?(H.lines[H.lines.length-1].y-H.lines[0].y)/(H.lines.length-1):O*1.25,ie=s.id({font:fi(H.font.family),size:Math.max(100,Math.round(H.font.size*100)),color:ar(H.color)??"#000000",bold:H.font.bold,italic:H.font.italic,underline:!!H.underline,strike:!!H.strike,spacing:Math.max(-50,Math.min(50,Math.round((H.letterSpacing??0)/O*100)))}),ge=a.id({align:{left:"LEFT",center:"CENTER",right:"RIGHT",justify:"JUSTIFY"}[H.align]??"LEFT",spacing:Math.max(80,Math.min(300,Math.round(X/O*100)))});return H.lines.filter((Z,J)=>J===0||Z.y<=H.y+H.h+.5).map(Z=>`<hp:p id="${h++}" paraPrIDRef="${ge}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${ie}"><hp:t>${qo(Z.text.replace(/\t/g," "))}</hp:t></hp:run></hp:p>`)}),M=(Y,H)=>{let O=u.get(Y.src);if(!O){let R=gi(Y.src),N=R&&hi(R.bytes);if(!R||!N||!N[0]||!N[1])return"";O={id:`image${l.length+1}`,px:N},l.push({name:`${O.id}.${R.ext}`,bytes:R.bytes}),u.set(Y.src,O)}let{x:X,y:ie,w:ge,h:ye}=Y;if(Y.fit==="contain"){let R=Math.min(ge/O.px[0],ye/O.px[1]),N=O.px[0]*R,D=O.px[1]*R;X+=(ge-N)/2,ie+=(ye-D)/2,ge=N,ye=D}let Z=Ie(ge),J=Ie(ye),fe=O.px[0]*75,de=O.px[1]*75,pe=d++,ce=(R,N)=>`e1="${R}" e2="0" e3="0" e4="0" e5="${N}" e6="0"`;return`<hp:pic id="${pe}" zOrder="${H}" numberingType="PICTURE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" href="" groupLevel="0" instid="${pe}" reverse="0"><hp:offset x="0" y="0"/><hp:orgSz width="${Z}" height="${J}"/><hp:curSz width="${Z}" height="${J}"/><hp:flip horizontal="0" vertical="0"/><hp:rotationInfo angle="0" centerX="${Z>>1}" centerY="${J>>1}" rotateimage="1"/><hp:renderingInfo><hc:transMatrix ${ce(1,1)}/><hc:scaMatrix ${ce(1,1)}/><hc:rotMatrix ${ce(1,1)}/></hp:renderingInfo><hp:imgRect><hc:pt0 x="0" y="0"/><hc:pt1 x="${Z}" y="0"/><hc:pt2 x="${Z}" y="${J}"/><hc:pt3 x="0" y="${J}"/></hp:imgRect><hp:imgClip left="0" right="${fe}" top="0" bottom="${de}"/><hp:inMargin left="0" right="0" top="0" bottom="0"/><hp:imgDim dimwidth="${fe}" dimheight="${de}"/><hc:img binaryItemIDRef="${O.id}" bright="0" contrast="0" effect="REAL_PIC" alpha="0"/><hp:sz width="${Z}" widthRelTo="ABSOLUTE" height="${J}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${Ie(ie)}" horzOffset="${Ie(X)}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/></hp:pic>`},j=Y=>{let H=[],O=[];for(let S of Y)S.kind==="text"||S.kind==="box"&&(S.fill||S.border||S.stroke)?(H.push(S.x,S.x+S.w),O.push(S.y,S.y+S.h)):S.kind==="line"&&Math.abs(S.y1-S.y2)<.01?(O.push(S.y1),H.push(S.x1,S.x2)):S.kind==="line"&&Math.abs(S.x1-S.x2)<.01&&(H.push(S.x1),O.push(S.y1,S.y2));let X=Uo(H,1.2),ie=Uo(O,.8);if(X.length<2||ie.length<2)return"";let ge=Y.filter(S=>S.kind==="text"&&!S.rotate&&S.text.trim()!==""),ye=[];for(let S=0;S<200;S++){let Q=ie.length-1,ee=X.length-1,m=Array.from({length:Q},()=>Array(ee).fill(null));ye=[];for(let k of ge){let P=Math.min(Ze(X,k.x),ee-1),F=Math.min(Ze(ie,k.y),Q-1),g=Math.max(P+1,Ze(X,k.x+k.w)),L=Math.max(F+1,Ze(ie,k.y+k.h)),W=m[F][P];if(W){W.texts.push(k);continue}let B=!0;for(let se=F;se<L&&B;se++)for(let he=P;he<g;he++)if(m[se][he]){B=!1;break}let te=B?{r:F,c:P,rs:L-F,cs:g-P,texts:[k]}:{r:F,c:P,rs:1,cs:1,texts:[k]};for(let se=te.r;se<te.r+te.rs;se++)for(let he=te.c;he<te.c+te.cs;he++)m[se][he]=te;ye.push(te)}for(let k=0;k<Q;k++)for(let P=0;P<ee;P++)if(!m[k][P]){let F={r:k,c:P,rs:1,cs:1,texts:[]};m[k][P]=F,ye.push(F)}let w=ie.slice(1,-1).findIndex((k,P)=>!ye.some(F=>F.r===P+1)),E=X.slice(1,-1).findIndex((k,P)=>!ye.some(F=>F.c===P+1));if(w<0&&E<0)break;w>=0&&(ie=ie.filter((k,P)=>P!==w+1)),E>=0&&(X=X.filter((k,P)=>P!==E+1))}let Z=ie.length-1,J=X.length-1,fe=Array.from({length:Z+1},()=>Array(J).fill(void 0)),de=Array.from({length:Z},()=>Array(J+1).fill(void 0)),pe=Array.from({length:Z},()=>Array(J).fill(null)),ce=(S,Q,ee)=>{let m=Ze(ee,S);return[m,Math.max(m,Ze(ee,Q))]};for(let S of Y)if(S.kind==="box"){let[Q,ee]=ce(S.x,S.x+S.w,X),[m,w]=ce(S.y,S.y+S.h,ie);if(ee===Q||w===m)continue;let E=ar(S.fill);if(E&&(S.opacity??1)>.05)for(let F=m;F<w;F++)for(let g=Q;g<ee;g++)pe[F][g]=E;let k=S.stroke&&S.stroke.width>0?{width:S.stroke.width,style:S.stroke.dash??"solid",color:S.stroke.color}:void 0,P={top:S.border?.top??k,bottom:S.border?.bottom??k,left:S.border?.left??k,right:S.border?.right??k};for(let F=Q;F<ee;F++)P.top&&(fe[m][F]=P.top),P.bottom&&(fe[w][F]=P.bottom);for(let F=m;F<w;F++)P.left&&(de[F][Q]=P.left),P.right&&(de[F][ee]=P.right)}else if(S.kind==="line"){let Q={width:S.width,style:S.dash??"solid",color:S.color};if(Math.abs(S.y1-S.y2)<.01){let ee=Ze(ie,S.y1),[m,w]=ce(Math.min(S.x1,S.x2),Math.max(S.x1,S.x2),X);for(let E=m;E<w;E++)fe[ee][E]=Q}else if(Math.abs(S.x1-S.x2)<.01){let ee=Ze(X,S.x1),[m,w]=ce(Math.min(S.y1,S.y2),Math.max(S.y1,S.y2),ie);for(let E=m;E<w;E++)de[E][ee]=Q}}let R=X.map(Ie),N=ie.map(Ie),D=S=>S.find(Q=>Q!==void 0),C={top:"TOP",middle:"CENTER",bottom:"BOTTOM"},ne=Array.from({length:Z},()=>[]);for(let S of ye.sort((Q,ee)=>Q.r-ee.r||Q.c-ee.c)){let Q=c.id({top:D(fe[S.r].slice(S.c,S.c+S.cs)),bottom:D(fe[S.r+S.rs].slice(S.c,S.c+S.cs)),left:D(de.slice(S.r,S.r+S.rs).map(F=>F[S.c])),right:D(de.slice(S.r,S.r+S.rs).map(F=>F[S.c+S.cs])),fill:pe[S.r][S.c]}),ee=R[S.c+S.cs]-R[S.c],m=N[S.r+S.rs]-N[S.r],w=0,E=0,k=S.texts[0];if(k?.lines.length){let F=X[S.c],g=X[S.c+S.cs],L=Math.min(...k.lines.map(he=>he.x)),W=Math.max(...k.lines.map(he=>he.x+he.width)),B=he=>Math.max(0,Math.min(5,he)),te=B(L-F),se=B(g-W);k.align==="right"?(E=se,w=Math.min(te,.5)):k.align==="center"?w=E=Math.min(te,se,1):(w=te,E=Math.min(se,.5))}let P=S.texts.length?v(S.texts).join(""):x();S.texts.length&&$.push(S.texts.map(F=>F.text).join(" ")),ne[S.r].push(`<hp:tc name="" header="0" hasMargin="1" protect="0" editable="0" dirty="0" borderFillIDRef="${Q}"><hp:subList id="" textDirection="HORIZONTAL" lineWrap="BREAK" vertAlign="${k?C[k.valign]??"TOP":"CENTER"}" linkListIDRef="0" linkListNextIDRef="0" textWidth="0" textHeight="0" hasTextRef="0" hasNumRef="0">${P}</hp:subList><hp:cellAddr colAddr="${S.c}" rowAddr="${S.r}"/><hp:cellSpan colSpan="${S.cs}" rowSpan="${S.rs}"/><hp:cellSz width="${ee}" height="${m}"/><hp:cellMargin left="${Ie(w)}" right="${Ie(E)}" top="0" bottom="0"/></hp:tc>`)}let q=R[J]-R[0],G=N[Z]-N[0];return`<hp:tbl id="${d++}" zOrder="0" numberingType="TABLE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" pageBreak="NONE" repeatHeader="0" rowCnt="${Z}" colCnt="${J}" cellSpacing="0" borderFillIDRef="${b}" noAdjust="1"><hp:sz width="${q}" widthRelTo="ABSOLUTE" height="${G}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${N[0]}" horzOffset="${R[0]}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/><hp:inMargin left="0" right="0" top="0" bottom="0"/>`+ne.map(S=>`<hp:tr>${S.join("")}</hp:tr>`).join("")+"</hp:tbl>"},[y,A,T,I]=n.margins.map(Ie),V=`<hp:secPr id="" textDirection="HORIZONTAL" spaceColumns="1134" tabStop="8000" tabStopVal="4000" tabStopUnit="HWPUNIT" outlineShapeIDRef="1" memoShapeIDRef="0" textVerticalWidthHead="0" masterPageCnt="0"><hp:grid lineGrid="0" charGrid="0" wonggojiFormat="0"/><hp:startNum pageStartsOn="BOTH" page="0" pic="0" tbl="0" equation="0"/><hp:visibility hideFirstHeader="0" hideFirstFooter="0" hideFirstMasterPage="0" border="SHOW_ALL" fill="SHOW_ALL" hideFirstPageNum="0" hideFirstEmptyLine="0" showLineNumber="0"/><hp:lineNumberShape restartType="0" countBy="0" distance="0" startNumber="0"/><hp:pagePr landscape="${r>o?"NARROWLY":"WIDELY"}" width="${Ie(Math.min(r,o))}" height="${Ie(Math.max(r,o))}" gutterType="LEFT_ONLY"><hp:margin header="0" footer="0" gutter="0" left="${I}" right="${A}" top="${y}" bottom="${T}"/></hp:pagePr><hp:footNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="-1" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="283" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="EACH_COLUMN" beneathText="0"/></hp:footNotePr><hp:endNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="14692344" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="0" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="END_OF_DOCUMENT" beneathText="0"/></hp:endNotePr>`+["BOTH","EVEN","ODD"].map(Y=>`<hp:pageBorderFill type="${Y}" borderFillIDRef="1" textBorder="PAPER" headerInside="0" footerInside="0" fillArea="PAPER"><hp:offset left="1417" right="1417" top="1417" bottom="1417"/></hp:pageBorderFill>`).join("")+'</hp:secPr><hp:ctrl><hp:colPr id="" type="NEWSPAPER" layout="LEFT" colCount="1" sameSz="1" sameGap="0"/></hp:ctrl>',z=(e.pages.length?e.pages:[{items:[]}]).map((Y,H)=>{let O=Y.items.filter(ie=>ie.source?.band!=="watermark"),X=j(O)+O.filter(ie=>ie.kind==="image"&&!ie.emboss).map((ie,ge)=>M(ie,ge+1)).join("");return`<hp:p id="${h++}" paraPrIDRef="${p}" styleIDRef="0" pageBreak="${H>0?1:0}" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}">${H===0?V:""}${X}<hp:t/></hp:run></hp:p>`}).join(""),ae=`${ct}<hs:sec ${or}>${z}</hs:sec>`,ke=ir.map(Y=>`<hh:fontface lang="${Y}" fontCnt="${zo.length}">`+zo.map((H,O)=>`<hh:font id="${O}" face="${H}" type="TTF" isEmbedded="0"><hh:typeInfo familyType="FCAT_GOTHIC" weight="6" proportion="4" contrast="0" strokeVariation="1" armStyle="1" letterform="1" midline="1" xHeight="1"/></hh:font>`).join("")+"</hh:fontface>").join(""),U=sr(1,i)+sr(2,i).replace("</hh:borderFill>",'<hc:fillBrush><hc:winBrush faceColor="none" hatchColor="#FF000000" alpha="0"/></hc:fillBrush></hh:borderFill>'),le=`${ct}<hh:head ${or} version="1.4" secCnt="1"><hh:beginNum page="1" footnote="1" endnote="1" pic="1" tbl="1" equation="1"/><hh:refList><hh:fontfaces itemCnt="${ir.length}">${ke}</hh:fontfaces><hh:borderFills itemCnt="${c.list.length+2}">${U}${c.list.map((Y,H)=>sr(H+3,Y)).join("")}</hh:borderFills><hh:charProperties itemCnt="${s.list.length}">${s.list.map((Y,H)=>pi(H,Y)).join("")}</hh:charProperties><hh:tabProperties itemCnt="1"><hh:tabPr id="0" autoTabLeft="0" autoTabRight="0"/></hh:tabProperties><hh:numberings itemCnt="1"><hh:numbering id="1" start="0">`+["^1.","^2.","^3)","^4)","(^5)","(^6)","^7"].map((Y,H)=>`<hh:paraHead start="1" level="${H+1}" align="LEFT" useInstWidth="1" autoIndent="1" widthAdjust="0" textOffsetType="PERCENT" textOffset="50" numFormat="${H===6?"CIRCLED_DIGIT":H%2?"HANGUL_SYLLABLE":"DIGIT"}" charPrIDRef="4294967295" checkable="${H===6?1:0}">${Y}</hh:paraHead>`).join("")+`</hh:numbering></hh:numberings><hh:paraProperties itemCnt="${a.list.length}">${a.list.map((Y,H)=>mi(H,Y)).join("")}</hh:paraProperties><hh:styles itemCnt="1"><hh:style id="0" type="PARA" name="\uBC14\uD0D5\uAE00" engName="Normal" paraPrIDRef="0" charPrIDRef="0" nextStyleIDRef="0" langID="1042" lockForm="0"/></hh:styles></hh:refList><hh:compatibleDocument targetProgram="HWP201X"><hh:layoutCompatibility/></hh:compatibleDocument><hh:docOption><hh:linkinfo path="" pageInherit="0" footnoteInherit="0"/></hh:docOption><hh:trackchageConfig flags="56"/></hh:head>`,me=new Date().toISOString().replace(/\.\d+Z$/,"Z"),_=qo(t.name??""),ue=`${ct}<opf:package ${or} version="" unique-identifier="" id=""><opf:metadata><opf:title>${_}</opf:title><opf:language>ko</opf:language><opf:meta name="creator" content="text">FreeReport</opf:meta><opf:meta name="CreatedDate" content="text">${me}</opf:meta><opf:meta name="ModifiedDate" content="text">${me}</opf:meta></opf:metadata><opf:manifest><opf:item id="header" href="Contents/header.xml" media-type="application/xml"/>`+l.map(Y=>`<opf:item id="${Y.name.replace(/\..*$/,"")}" href="BinData/${Y.name}" media-type="image/${Y.name.endsWith("png")?"png":"jpg"}" isEmbeded="1"/>`).join("")+'<opf:item id="section0" href="Contents/section0.xml" media-type="application/xml"/><opf:item id="settings" href="settings.xml" media-type="application/xml"/></opf:manifest><opf:spine><opf:itemref idref="header" linear="yes"/><opf:itemref idref="section0" linear="yes"/></opf:spine></opf:package>';return ln([{name:"mimetype",data:"application/hwp+zip"},{name:"version.xml",data:`${ct}<hv:HCFVersion xmlns:hv="http://www.hancom.co.kr/hwpml/2011/version" tagetApplication="WORDPROCESSOR" major="5" minor="0" micro="5" buildNumber="0" os="1" xmlVersion="1.4" application="FreeReport" appVersion="1.0"/>`},{name:"Contents/header.xml",data:le},{name:"Contents/section0.xml",data:ae},{name:"Preview/PrvText.txt",data:$.join(`\r
|
|
17
|
+
`).slice(0,1024)},{name:"settings.xml",data:`${ct}<ha:HWPApplicationSetting xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"><ha:CaretPosition listIDRef="0" paraIDRef="0" pos="0"/></ha:HWPApplicationSetting>`},...l.map(Y=>({name:`BinData/${Y.name}`,data:Y.bytes})),{name:"META-INF/container.xml",data:`${ct}<ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"><ocf:rootfiles><ocf:rootfile full-path="Contents/content.hpf" media-type="application/hwpml-package+xml"/><ocf:rootfile full-path="Preview/PrvText.txt" media-type="text/plain"/></ocf:rootfiles></ocf:container>`},{name:"Contents/content.hpf",data:ue},{name:"META-INF/manifest.xml",data:`${ct}<odf:manifest xmlns:odf="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"/>`}])}var cr=(e,t)=>String.fromCharCode(e[t],e[t+1],e[t+2],e[t+3]);function Ut(e){if(e.length<12)throw new Error("FreeReport PDF: font data is too short to be a TrueType font");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=cr(e,0);if(n==="OTTO")throw new Error("FreeReport PDF: CFF-based OpenType (.otf) fonts are not supported; a TrueType .ttf font is required");if(n==="wOFF"||n==="wOF2")throw new Error("FreeReport PDF: WOFF/WOFF2 fonts are not supported; a TrueType .ttf font is required");if(n==="ttcf")throw new Error("FreeReport PDF: TrueType collections (.ttc) are not supported; a single .ttf font is required");if(t.getUint32(0)!==65536&&n!=="true")throw new Error("FreeReport PDF: unrecognised font format; a TrueType .ttf font is required");let r=new Map,o=t.getUint16(4);for(let T=0;T<o;T++){let I=12+T*16;r.set(cr(e,I),{offset:t.getUint32(I+8),length:t.getUint32(I+12)})}let s=T=>{let I=r.get(T);if(!I)throw new Error(`FreeReport PDF: font has no '${T}' table`+(T==="glyf"?" (only TrueType outlines are supported)":""));return I},a=s("head"),c=s("hhea"),i=s("maxp"),f=s("hmtx");s("loca"),s("glyf");let p=t.getUint16(a.offset+18)||1e3,b=[t.getInt16(a.offset+36),t.getInt16(a.offset+38),t.getInt16(a.offset+40),t.getInt16(a.offset+42)],l=t.getUint16(i.offset+4),u=t.getInt16(c.offset+4),d=t.getInt16(c.offset+6),h=Math.max(1,t.getUint16(c.offset+34)),$=Math.round(u*.7),x=r.get("OS/2");x&&x.length>=78&&(u||(u=t.getInt16(x.offset+68)),d||(d=t.getInt16(x.offset+70)),t.getUint16(x.offset)>=2&&x.length>=90&&($=t.getInt16(x.offset+88)||$));let v=0,M=!1,j=r.get("post");j&&j.length>=16&&(v=t.getInt32(j.offset+4)/65536,M=t.getUint32(j.offset+12)!==0);let y=32|(v!==0?64:0)|(M?1:0),A=T=>{(T<0||T>=l)&&(T=0);let I=T<h?T:h-1;return t.getUint16(f.offset+I*4)};return{data:e,unitsPerEm:p,ascent:u,descent:d,capHeight:$,bbox:b,italicAngle:v,numGlyphs:l,flags:y,postscriptName:bi(e,t,r.get("name")),glyphId:yi(t,r.get("cmap"),l),advance:A}}function bi(e,t,n){let r="FreeReportFont";if(!n)return r;let o=t.getUint16(n.offset+2),s=n.offset+t.getUint16(n.offset+4),a=null;for(let i=0;i<o;i++){let f=n.offset+6+i*12,p=t.getUint16(f);if(t.getUint16(f+6)!==6)continue;let l=t.getUint16(f+8),u=s+t.getUint16(f+10),d="";if(p===3||p===0)for(let h=0;h+1<l;h+=2)d+=String.fromCharCode(t.getUint16(u+h));else for(let h=0;h<l;h++)d+=String.fromCharCode(e[u+h]);if(a=d,p===3)break}return(a||"").replace(/[^\x21-\x7e]|[()<>[\]{}/%#]/g,"")||r}function yi(e,t,n){if(!t)return()=>0;let r=e.getUint16(t.offset+2),o=-1,s=99;for(let h=0;h<r;h++){let $=t.offset+4+h*8,x=e.getUint16($),v=e.getUint16($+2),M=t.offset+e.getUint32($+4),j=e.getUint16(M);if(j!==4&&j!==12)continue;let y=x===3&&v===10?0:x===3&&v===1?1:x===0?2+(j===12?0:1):99;y<s&&(s=y,o=M)}if(o<0)return()=>0;let a=new Map,c=h=>h>0&&h<n?h:0;if(e.getUint16(o)===12){let h=e.getUint32(o+12),$=x=>{let v=0,M=h-1;for(;v<=M;){let j=v+M>>1,y=o+16+j*12,A=e.getUint32(y),T=e.getUint32(y+4);if(x<A)M=j-1;else if(x>T)v=j+1;else return c(e.getUint32(y+8)+x-A)}return 0};return x=>{let v=a.get(x);return v===void 0&&a.set(x,v=$(x)),v}}let i=e.getUint16(o+6),f=i/2,p=o+14,b=p+i+2,l=b+i,u=l+i,d=h=>{if(h>65535)return 0;let $=0,x=f-1;for(;$<=x;){let v=$+x>>1,M=e.getUint16(p+v*2),j=e.getUint16(b+v*2);if(h>M)$=v+1;else if(h<j)x=v-1;else{let y=e.getInt16(l+v*2),A=e.getUint16(u+v*2);if(A===0)return c(h+y&65535);let T=u+v*2+A+(h-j)*2,I=e.getUint16(T);return I===0?0:c(I+y&65535)}}return 0};return h=>{let $=a.get(h);return $===void 0&&a.set(h,$=d(h)),$}}var wi=["OS/2","cvt ","fpgm","glyf","head","hhea","hmtx","loca","maxp","prep"];function xi(e){let t=e.data,n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=new Map;for(let o=0,s=n.getUint16(4);o<s;o++){let a=12+o*16;r.set(cr(t,a),{offset:n.getUint32(a+8),length:n.getUint32(a+12)})}return r}function Go(e,t,n){let r=0,o=t+n;for(let s=t;s<o;s+=4){let a=(e[s]<<24|(s+1<o?e[s+1]:0)<<16|(s+2<o?e[s+2]:0)<<8|(s+3<o?e[s+3]:0))>>>0;r=r+a>>>0}return r}function Wo(e,t){let n=e.data,r=new DataView(n.buffer,n.byteOffset,n.byteLength),o=xi(e),s=o.get("head"),a=o.get("loca"),c=o.get("glyf"),i=r.getInt16(s.offset+50)===1,f=e.numGlyphs,p=U=>i?r.getUint32(a.offset+U*4):r.getUint16(a.offset+U*2)*2,b=U=>{let le=p(U),me=p(U+1);return me>le?[c.offset+le,me-le]:[0,0]},l=new Set([0]),u=[...t].filter(U=>U>=0&&U<f);for(;u.length;){let U=u.pop();if(l.has(U)&&U!==0)continue;l.add(U);let[le,me]=b(U);if(me<10||r.getInt16(le)>=0)continue;let _=le+10;for(;;){let ue=r.getUint16(_),Y=r.getUint16(_+2);if(Y<f&&!l.has(Y)&&u.push(Y),_+=4+(ue&1?4:2),ue&8?_+=2:ue&64?_+=4:ue&128&&(_+=8),!(ue&32))break}}let d=0;for(let U of l){let le=b(U)[1];d+=le+3&-4}let h=new Uint8Array(d),$=new Uint8Array((f+1)*4),x=new DataView($.buffer),v=0;for(let U=0;U<f;U++){if(x.setUint32(U*4,v),!l.has(U))continue;let[le,me]=b(U);h.set(n.subarray(le,le+me),v),v+=me+3&-4}x.setUint32(f*4,v);let M=n.slice(s.offset,s.offset+s.length),j=new DataView(M.buffer);j.setUint32(8,0),j.setInt16(50,1);let y=[];for(let U of wi)if(U==="glyf")y.push({tag:U,data:h});else if(U==="loca")y.push({tag:U,data:$});else if(U==="head")y.push({tag:U,data:M});else{let le=o.get(U);le&&y.push({tag:U,data:n.subarray(le.offset,le.offset+le.length)})}let A=y.length,T=0;for(;1<<T+1<=A;)T++;let I=(1<<T)*16,V=12+A*16;for(let U of y)V+=U.data.length+3&-4;let oe=new Uint8Array(V),z=new DataView(oe.buffer);z.setUint32(0,65536),z.setUint16(4,A),z.setUint16(6,I),z.setUint16(8,T),z.setUint16(10,A*16-I);let ae=12+A*16,ke=0;return y.forEach((U,le)=>{let me=12+le*16;for(let _=0;_<4;_++)oe[me+_]=U.tag.charCodeAt(_);oe.set(U.data,ae),z.setUint32(me+4,Go(oe,ae,U.data.length)),z.setUint32(me+8,ae),z.setUint32(me+12,U.data.length),U.tag==="head"&&(ke=ae),ae+=U.data.length+3&-4}),z.setUint32(ke+8,2981146554-Go(oe,0,oe.length)>>>0),oe}function mn(){let e=globalThis.crypto;if(!e||!e.subtle||!e.getRandomValues)throw new Error("FreeReport PDF: encryption needs WebCrypto (crypto.subtle)");return e}function qe(e){let t=new Uint8Array(e);return mn().getRandomValues(t),t}var Gt=(...e)=>{let t=0;for(let o of e)t+=o.length;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.length;return n},dn=e=>e;async function Ko(e,t){return new Uint8Array(await mn().subtle.digest(e,dn(t)))}var _o=new WeakMap;function ki(e){let t=_o.get(e);return t||_o.set(e,t=mn().subtle.importKey("raw",dn(e),{name:"AES-CBC"},!1,["encrypt"])),t}async function fr(e,t,n){return new Uint8Array(await mn().subtle.encrypt({name:"AES-CBC",iv:dn(t)},await ki(e),dn(n)))}async function ur(e,t,n){return(await fr(e,t,n)).subarray(0,n.length)}async function pn(e,t){let n=qe(16);return Gt(n,await fr(e,n,t))}function Xo(e){return new TextEncoder().encode(e.normalize("NFKC")).subarray(0,127)}async function fn(e,t,n){let r=await Ko("SHA-256",Gt(e,t,n));for(let o=0;;o++){let s=Gt(e,r,n),a=new Uint8Array(s.length*64);for(let p=0;p<64;p++)a.set(s,p*s.length);let c=await ur(r.subarray(0,16),r.subarray(16,32),a),i=0;for(let p=0;p<16;p++)i+=c[p];let f=i%3;if(r=await Ko(f===0?"SHA-256":f===1?"SHA-384":"SHA-512",c),o>=63&&c[c.length-1]<=o+1-32)break}return r.subarray(0,32)}function $i(e={}){let t=r=>r!==!1,n=4294963392;return t(e.print)&&(n|=4),t(e.modify)&&(n|=8),t(e.copy)&&(n|=16),t(e.annotate)&&(n|=32),t(e.fillForms)&&(n|=256),t(e.extract)&&(n|=512),t(e.assemble)&&(n|=1024),t(e.printHighQuality)&&(n|=2048),n|0}var ut=e=>{let t="";for(let n of e)t+=n.toString(16).padStart(2,"0");return t};async function Yo(e){let t=qe(32),n=new Uint8Array(16),r=Xo(e.userPassword??""),o=e.ownerPassword?Xo(e.ownerPassword):qe(32).map(x=>33+x%94),s=qe(8),a=qe(8),c=Gt(await fn(r,s,new Uint8Array(0)),s,a),i=await ur(await fn(r,a,new Uint8Array(0)),n,t),f=qe(8),p=qe(8),b=Gt(await fn(o,f,c),f,p),l=await ur(await fn(o,p,c),n,t),u=$i(e.permissions),d=new Uint8Array(16);d[0]=u&255,d[1]=u>>>8&255,d[2]=u>>>16&255,d[3]=u>>>24&255,d.fill(255,4,8),d.set([84,97,100,98],8),d.set(qe(4),12);let h=(await fr(t,n,d)).subarray(0,16),$=`<< /Filter /Standard /V 5 /R 6 /Length 256 /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >> /StmF /StdCF /StrF /StdCF /O <${ut(b)}> /U <${ut(c)}> /OE <${ut(l)}> /UE <${ut(i)}> /P ${u} /Perms <${ut(h)}> /EncryptMetadata true >>`;return{fileKey:t,dict:$,p:u}}var Vo={n:10,r:13,t:9,b:8,f:12};function vi(e){let t=[];for(let n=0;n<e.length;n++){if(e[n]!=="\\"){t.push(e.charCodeAt(n)&255);continue}let o=e[++n];if(o===void 0)break;if(o in Vo)t.push(Vo[o]);else if(o>="0"&&o<="7"){let s=o;for(;s.length<3&&e[n+1]>="0"&&e[n+1]<="7";)s+=e[++n];t.push(parseInt(s,8)&255)}else o==="\r"?e[n+1]===`
|
|
18
18
|
`&&n++:o===`
|
|
19
|
-
`||t.push(o.charCodeAt(0)&255)}return new Uint8Array(t)}function
|
|
19
|
+
`||t.push(o.charCodeAt(0)&255)}return new Uint8Array(t)}function Mi(e){let t=e.replace(/[^0-9a-fA-F]/g,""),n=t.length%2?t+"0":t,r=new Uint8Array(n.length/2);for(let o=0;o<r.length;o++)r[o]=parseInt(n.slice(o*2,o*2+2),16);return r}async function Jo(e,t){if(!/[(<]/.test(t))return t;let n="";for(let r=0;r<t.length;){let o=t[r];if(o==="<"&&t[r+1]==="<"){n+="<<",r+=2;continue}if(o==="<"){let s=t.indexOf(">",r);n+="<"+ut(await pn(e,Mi(t.slice(r+1,s))))+">",r=s+1;continue}if(o==="("){let s=1,a=r+1;for(;a<t.length&&s;a++)t[a]==="\\"?a++:t[a]==="("?s++:t[a]===")"&&s--;n+="<"+ut(await pn(e,vi(t.slice(r+1,a-1))))+">",r=a;continue}n+=o,r++}return n}var dr=new Map,Zo=new WeakMap;function Wt(e){if(typeof e!="string")return Promise.resolve(e);let t=dr.get(e);return t||(t=fetch(e).then(async n=>{if(!n.ok)throw new Error(`FreeReport PDF: font ${e} could not be loaded (HTTP ${n.status})`);return new Uint8Array(await n.arrayBuffer())}),t.catch(()=>dr.delete(e)),dr.set(e,t)),t}function Si(e){let t=Zo.get(e);return t||Zo.set(e,t=Ut(e)),t}var Ee=72/25.4,ze=e=>{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t},K=e=>Math.abs(e)<5e-4?"0":e.toFixed(3).replace(/\.?0+$/,""),hr=e=>e.toString(16).toUpperCase().padStart(4,"0");function ts(e){let t="";for(let n=0;n<e.length;n++)t+=hr(e.charCodeAt(n));return t}function hn(e){return/^[\x20-\x7e]*$/.test(e)?"("+e.replace(/[\\()]/g,t=>"\\"+t)+")":"<FEFF"+ts(e)+">"}var Qo={black:"000000",white:"ffffff",red:"ff0000",green:"008000",blue:"0000ff",gray:"808080",grey:"808080",silver:"c0c0c0",maroon:"800000",navy:"000080",yellow:"ffff00",orange:"ffa500",purple:"800080",teal:"008080",olive:"808000",lime:"00ff00",aqua:"00ffff",cyan:"00ffff",magenta:"ff00ff",fuchsia:"ff00ff",lightgray:"d3d3d3",lightgrey:"d3d3d3",darkgray:"a9a9a9",darkgrey:"a9a9a9",pink:"ffc0cb",brown:"a52a2a"};function ft(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;Qo[t]&&(t="#"+Qo[t]);let n,r,o,s=1,a;if(a=t.match(/^#([0-9a-f]{3,8})$/)){let i=a[1];if((i.length===3||i.length===4)&&(i=i.split("").map(f=>f+f).join("")),i.length!==6&&i.length!==8)return;n=parseInt(i.slice(0,2),16),r=parseInt(i.slice(2,4),16),o=parseInt(i.slice(4,6),16),i.length===8&&(s=parseInt(i.slice(6,8),16)/255)}else if(a=t.match(/^rgba?\(([^)]*)\)$/)){let i=a[1].split(/[\s,/]+/).filter(Boolean).map(f=>f.endsWith("%")?parseFloat(f)*2.55:parseFloat(f));if(i.length<3||i.slice(0,3).some(isNaN))return;[n,r,o]=i,i.length>3&&(s=a[1].split(/[\s,/]+/).filter(Boolean)[3].endsWith("%")?i[3]/255:i[3])}else return;if(s<=0)return null;let c=i=>K(Math.min(255,Math.max(0,i))/255);return`${c(n)} ${c(r)} ${c(o)}`}async function Ei(e){let t=new CompressionStream("deflate"),n=t.writable.getWriter();n.write(e).then(()=>n.close());let r=t.readable.getReader(),o=[],s=0;for(;;){let{done:i,value:f}=await r.read();if(i)break;o.push(f),s+=f.length}let a=new Uint8Array(s),c=0;for(let i of o)a.set(i,c),c+=i.length;return a}var pr=class{constructor(t){this.compress=t;this.objects=[void 0]}alloc(){return this.objects.push(void 0),this.objects.length-1}set(t,n,r=!1){this.objects[t]={body:n,raw:r}}async stream(t,n,r,o=!0){this.compress&&o&&(r=await Ei(r),n+=" /Filter /FlateDecode"),this.objects[t]={body:n,data:r}}async build(t,n,r){let o=[ze(`%PDF-1.7
|
|
20
20
|
%\xE2\xE3\xCF\xD3
|
|
21
|
-
`)],s=o[0].length,a=[0];for(let
|
|
21
|
+
`)],s=o[0].length,a=[0];for(let d=1;d<this.objects.length;d++){let h=this.objects[d],$;if(!h)$=[ze("null")];else{let v=h.body,M=h.data;r&&!h.raw&&(v=await Jo(r.fileKey,v),M&&(M=await pn(r.fileKey,M))),$=M?[ze(`<< ${v} /Length ${M.length} >>
|
|
22
22
|
stream
|
|
23
|
-
`),
|
|
24
|
-
endstream`)]:[
|
|
25
|
-
`)
|
|
23
|
+
`),M,ze(`
|
|
24
|
+
endstream`)]:[ze(v)]}a[d]=s;let x=[ze(`${d} 0 obj
|
|
25
|
+
`),...$,ze(`
|
|
26
26
|
endobj
|
|
27
|
-
`)];for(let
|
|
28
|
-
0 ${
|
|
27
|
+
`)];for(let v of x)o.push(v),s+=v.length}let c=this.objects.length,i=`xref
|
|
28
|
+
0 ${c}
|
|
29
29
|
0000000000 65535 f
|
|
30
|
-
`;for(let
|
|
31
|
-
`;let
|
|
32
|
-
<< /Size ${
|
|
30
|
+
`;for(let d=1;d<c;d++)i+=String(a[d]).padStart(10,"0")+` 00000 n
|
|
31
|
+
`;let f="",p=r?qe(16):Array.from({length:16},()=>Math.random()*256|0);for(let d of p)f+=d.toString(16).padStart(2,"0");let b=r?` /Encrypt ${r.encryptId} 0 R`:"";i+=`trailer
|
|
32
|
+
<< /Size ${c} /Root ${t} 0 R /Info ${n} 0 R${b} /ID [<${f}> <${f}>] >>
|
|
33
33
|
startxref
|
|
34
34
|
${s}
|
|
35
35
|
%%EOF
|
|
36
|
-
`,o.push(
|
|
37
|
-
`))),r.set(
|
|
38
|
-
`+
|
|
36
|
+
`,o.push(ze(i));let l=new Uint8Array(s+o[o.length-1].length),u=0;for(let d of o)l.set(d,u),u+=d.length;return l}},mr=class{constructor(){this.parts=[];this.st={font:"",tc:0,tr:0,fill:"0 0 0",stroke:"0 0 0",lw:1};this.stack=[]}op(t){this.parts.push(t)}save(){this.parts.push("q"),this.stack.push({...this.st})}restore(){this.parts.push("Q"),this.st=this.stack.pop()}fill(t){t!==this.st.fill&&(this.st.fill=t,this.parts.push(t+" rg"))}stroke(t){t!==this.st.stroke&&(this.st.stroke=t,this.parts.push(t+" RG"))}lineWidth(t){t!==this.st.lw&&(this.st.lw=t,this.parts.push(K(t)+" w"))}font(t,n){let r=`/${t} ${K(n)} Tf`;r!==this.st.font&&(this.st.font=r,this.parts.push(r))}charSpace(t){t!==this.st.tc&&(this.st.tc=t,this.parts.push(K(t)+" Tc"))}render(t){t!==this.st.tr&&(this.st.tr=t,this.parts.push(t+" Tr"))}};function es(e,t){let n=new Map(Object.keys(e).map(r=>[r.toLowerCase(),r]));for(let r of(t||"").split(",")){let o=n.get(r.trim().replace(/^['"]|['"]$/g,"").toLowerCase());if(o)return o}return n.get("default")??Object.keys(e)[0]??null}function Ri(e){if(e[0]!==255||e[1]!==216)return null;let t=2;for(;t+9<e.length;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===216||n===1||n>=208&&n<=215||n===255){t+=n===255?1:2;continue}let r=e[t+2]<<8|e[t+3];if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204)return{height:e[t+5]<<8|e[t+6],width:e[t+7]<<8|e[t+8],comps:e[t+9]};t+=2+r}return null}async function Ti(e){try{if(typeof fetch>"u")return null;let t=await fetch(e);if(!t.ok)return null;let n=new Uint8Array(await t.arrayBuffer()),r=Ri(n);if(r&&(r.comps===1||r.comps===3))return{kind:"jpeg",data:n,width:r.width,height:r.height,gray:r.comps===1};let o,s,a,c=new TextDecoder().decode(n.subarray(0,512)).trimStart(),i=c.startsWith("<svg")||c.startsWith("<?xml")&&c.includes("<svg"),f=new Blob([n],i?{type:"image/svg+xml"}:void 0);if(i&&typeof document<"u"){let u=URL.createObjectURL(f);try{let d=new Image;await new Promise((v,M)=>{d.onload=()=>v(),d.onerror=()=>M(new Error("image")),d.src=u});let h=(d.naturalWidth||1)/(d.naturalHeight||1);o=h>=1?800:Math.round(800*h),s=h>=1?Math.round(800/h):800;let $=document.createElement("canvas");$.width=o,$.height=s;let x=$.getContext("2d");x.drawImage(d,0,0,o,s),a=x.getImageData(0,0,o,s).data}finally{URL.revokeObjectURL(u)}}else if(typeof createImageBitmap=="function"&&typeof OffscreenCanvas<"u"){let u=await createImageBitmap(f);o=u.width,s=u.height;let d=new OffscreenCanvas(o,s).getContext("2d");d.drawImage(u,0,0),a=d.getImageData(0,0,o,s).data}else if(typeof document<"u"){let u=URL.createObjectURL(f);try{let d=new Image;await new Promise((x,v)=>{d.onload=()=>x(),d.onerror=()=>v(new Error("image")),d.src=u}),o=d.naturalWidth,s=d.naturalHeight;let h=document.createElement("canvas");h.width=o,h.height=s;let $=h.getContext("2d");$.drawImage(d,0,0),a=$.getImageData(0,0,o,s).data}finally{URL.revokeObjectURL(u)}}else return null;if(!o||!s)return null;let p=new Uint8Array(o*s*3),b=new Uint8Array(o*s),l=!0;for(let u=0,d=0;u<o*s;u++,d+=4)p[u*3]=a[d],p[u*3+1]=a[d+1],p[u*3+2]=a[d+2],b[u]=a[d+3],a[d+3]!==255&&(l=!1);return{kind:"raw",rgb:p,alpha:l?void 0:b,width:o,height:s}}catch{return null}}async function $t(e,t){let n=t.compress??typeof CompressionStream<"u",r=new pr(n),o=r.alloc(),s=r.alloc(),a=r.alloc(),c=r.alloc(),i=t.fonts||{},f=new Map,p=[],b=(_,ue)=>{let Y=`${_}\0${ue}`;if(f.has(Y)||!i[_])return;let H=i[_],O=ue&&H.bold!=null;f.set(Y,null),p.push(Wt(O?H.bold:H.normal).then(X=>{f.set(Y,{bytes:X,fakeBold:ue&&!O})}))},l=Object.keys(i).find(_=>_.toLowerCase()==="default");for(let _ of e)for(let ue of _.items){if(ue.kind!=="text"||!ue.lines.some(H=>H.text))continue;let Y=es(i,ue.font.family);if(!Y)throw new Error('FreeReport PDF: no fonts configured; pass opts.fonts with at least a "default" TrueType font');b(Y,ue.font.bold),l&&b(l,ue.font.bold)}await Promise.all(p);let u=new Map,d=new Map,h=(_,ue)=>{if(!_)return null;let Y=f.get(`${_}\0${ue}`);if(!Y)return null;let H=d.get(Y.bytes);H===void 0&&d.set(Y.bytes,H=d.size);let O=`${H}|${Y.fakeBold}`,X=u.get(O);return X||(X={font:Si(Y.bytes),fakeBold:Y.fakeBold,name:"F"+(u.size+1),id:r.alloc(),used:new Map},u.set(O,X)),X},$=new Map,x=_=>{let ue=K(Math.max(0,Math.min(1,_))),Y=$.get(ue);return Y||$.set(ue,Y="GS"+($.size+1)),Y},v=new Map,M=[],j=t.loadImage??Ti,y=(_,ue)=>{let Y=(ue?"emboss:":"")+_,H=v.get(Y);return H||(H=(async()=>{try{let O=_;ue&&(O=await Ct(_));let X=await j(O);if(!X||!X.width||!X.height)return null;let ie=r.alloc(),ge="Im"+(M.length+1);M.push(`/${ge} ${ie} 0 R`);let ye=`/Type /XObject /Subtype /Image /Width ${X.width} /Height ${X.height} /BitsPerComponent 8`;if(X.kind==="jpeg")await r.stream(ie,`${ye} /ColorSpace /Device${X.gray?"Gray":"RGB"} /Filter /DCTDecode`,X.data,!1);else{let Z="";if(X.alpha){let J=r.alloc();await r.stream(J,`/Type /XObject /Subtype /Image /Width ${X.width} /Height ${X.height} /BitsPerComponent 8 /ColorSpace /DeviceGray`,X.alpha),Z=` /SMask ${J} 0 R`}await r.stream(ie,`${ye} /ColorSpace /DeviceRGB${Z}`,X.rgb)}return{name:ge,width:X.width,height:X.height}}catch{return null}})(),v.set(Y,H)),H},A=[];for(let _ of e){let ue=_.height*Ee,Y=R=>R*Ee,H=R=>ue-R*Ee,O=new mr,X=(R,N,D)=>{let C=R!=null&&R<1,ne=!!N&&!!D;if(!C&&!ne)return!1;if(O.save(),C&&O.op(`/${x(R)} gs`),ne){let q=Y(D.x+D.w/2),G=H(D.y+D.h/2),S=-N*Math.PI/180,Q=Math.cos(S),ee=Math.sin(S);O.op(`${K(Q)} ${K(ee)} ${K(-ee)} ${K(Q)} ${K(q-Q*q+ee*G)} ${K(G-ee*q-Q*G)} cm`)}return!0},ie=(R,N,D,C,ne,q,G)=>{let S=ne*Ee;if(S<=0)return;let Q=G==="dashed"||G==="dotted";Q&&O.save(),O.lineWidth(S),O.stroke(q),G==="dashed"?O.op(`[${K(3*S)} ${K(2*S)}] 0 d`):G==="dotted"&&O.op(`1 J [0 ${K(2*S)}] 0 d`),O.op(`${K(Y(R))} ${K(H(N))} m ${K(Y(D))} ${K(H(C))} l S`),Q&&O.restore()},ge=(R,N,D,C,ne=0)=>{let q=Y(R),G=H(N+C),S=D*Ee,Q=C*Ee,ee=Math.min(ne*Ee,S/2,Q/2);if(ee<=0){O.op(`${K(q)} ${K(G)} ${K(S)} ${K(Q)} re`);return}let m=.5523*ee,w=q+S,E=G+Q;O.op(`${K(q+ee)} ${K(G)} m ${K(w-ee)} ${K(G)} l ${K(w-ee+m)} ${K(G)} ${K(w)} ${K(G+ee-m)} ${K(w)} ${K(G+ee)} c ${K(w)} ${K(E-ee)} l ${K(w)} ${K(E-ee+m)} ${K(w-ee+m)} ${K(E)} ${K(w-ee)} ${K(E)} c ${K(q+ee)} ${K(E)} l ${K(q+ee-m)} ${K(E)} ${K(q)} ${K(E-ee+m)} ${K(q)} ${K(E-ee)} c ${K(q)} ${K(G+ee)} l ${K(q)} ${K(G+ee-m)} ${K(q+ee-m)} ${K(G)} ${K(q+ee)} ${K(G)} c h`)},ye=R=>{let N=X(R.opacity,void 0),D=ft(R.fill);if(D&&(O.fill(D),ge(R.x,R.y,R.w,R.h,R.radius),O.op("f")),R.stroke&&R.stroke.width>0){let ne=ft(R.stroke.color);if(ne){let q=R.stroke.width*Ee,G=R.stroke.dash==="dashed"||R.stroke.dash==="dotted";G&&O.save(),O.lineWidth(q),O.stroke(ne),R.stroke.dash==="dashed"?O.op(`[${K(3*q)} ${K(2*q)}] 0 d`):R.stroke.dash==="dotted"&&O.op(`1 J [0 ${K(2*q)}] 0 d`),ge(R.x,R.y,R.w,R.h,R.radius),O.op("S"),G&&O.restore()}}let C=R.border;if(C){let ne=R.x+R.w,q=R.y+R.h,G=[[C.top,R.x,R.y,ne,R.y,!0],[C.right,ne,R.y,ne,q,!1],[C.bottom,R.x,q,ne,q,!0],[C.left,R.x,R.y,R.x,q,!1]];for(let[S,Q,ee,m,w,E]of G){if(!S||!(S.width>0))continue;let k=ft(S.color);if(k)if(S.style==="double"){let P=S.width/3,F=E?0:P,g=E?P:0;ie(Q-F,ee-g,m-F,w-g,P,k),ie(Q+F,ee+g,m+F,w+g,P,k)}else ie(Q,ee,m,w,S.width,k,S.style)}}N&&O.restore()},Z=R=>{let N=ft(R.color);if(!N)return;let D=X(R.opacity,void 0);ie(R.x1,R.y1,R.x2,R.y2,R.width,N,R.dash),D&&O.restore()},J=R=>{let N=ft(R.fill),D=ft(R.stroke);if(!N&&!D)return;let C=R.d,ne=[],q=S=>Number(C[S]);for(let S=0;S<C.length;){let Q=String(C[S++]).toUpperCase();Q==="M"||Q==="L"?(ne.push(`${K(Y(q(S)))} ${K(H(q(S+1)))} ${Q==="M"?"m":"l"}`),S+=2):Q==="C"?(ne.push(`${K(Y(q(S)))} ${K(H(q(S+1)))} ${K(Y(q(S+2)))} ${K(H(q(S+3)))} ${K(Y(q(S+4)))} ${K(H(q(S+5)))} c`),S+=6):Q==="Z"&&ne.push("h")}if(!ne.length)return;let G=X(R.opacity,void 0);N&&O.fill(N),D&&(O.stroke(D),O.lineWidth((R.strokeWidth??.2)*Ee)),O.op(ne.join(" ")),O.op(N&&D?"B":N?"f":"S"),G&&O.restore()},fe=R=>{if(!R.lines.length)return;let N=es(i,R.font.family),D=h(N??void 0,R.font.bold);if(!D)return;let C=h(l,R.font.bold),ne=ft(R.color);if(ne===null)return;let q=ne??"0 0 0",G=R.font.size,S=(R.letterSpacing||0)*Ee,Q=R.lines.filter(B=>B.text).map(B=>{let te=[],se=0,he=0,Fe=null;for(let Vt of B.text){let Er=Vt.codePointAt(0),nt=D,mt=D.font.glyphId(Er);if(mt===0&&C&&C!==D){let Rr=C.font.glyphId(Er);Rr&&(nt=C,mt=Rr)}nt.used.has(mt)||nt.used.set(mt,Vt),se+=nt.font.advance(mt)*G/nt.font.unitsPerEm,he++,(!Fe||Fe.e!==nt)&&te.push(Fe={e:nt,hex:""}),Fe.hex+=hr(mt)}se+=S*he;let tt=R.align==="right"?B.x*Ee+B.width*Ee-se:R.align==="center"?B.x*Ee+(B.width*Ee-se)/2:B.x*Ee;return{runs:te,width:se,x:tt,y:H(B.y)}});if(!Q.length)return;let ee=Y(R.x),m=R.w*Ee,w=H(R.y),E=H(R.y+R.h),k=D.font.ascent/D.font.unitsPerEm*G,P=-D.font.descent/D.font.unitsPerEm*G,F=.5,g=Q.some(B=>B.x<ee-F||B.x+B.width>ee+m+F||B.y+k>w+F||B.y-P<E-F),L=X(R.opacity,R.rotate,R);g&&(L||(O.save(),L=!0),O.op(`${K(ee)} ${K(E)} ${K(m)} ${K(w-E)} re W n`));let W=R.font.italic?"0.2":"0";O.op("BT"),O.fill(q),O.charSpace(S);for(let B of Q){O.op(`1 0 ${W} 1 ${K(B.x)} ${K(B.y)} Tm`);for(let te of B.runs)O.font(te.e.name,G),te.e.fakeBold?(O.render(2),O.stroke(q),O.lineWidth(G*.03)):O.render(0),O.op(`<${te.hex}> Tj`)}if(O.op("ET"),R.underline||R.strike)for(let B of Q){if(R.underline){let te=B.y-.1*G;O.lineWidth(G*.05),O.stroke(q),O.op(`${K(B.x)} ${K(te)} m ${K(B.x+B.width)} ${K(te)} l S`)}if(R.strike){let te=B.y+.3*G;O.lineWidth(G*.05),O.stroke(q),O.op(`${K(B.x)} ${K(te)} m ${K(B.x+B.width)} ${K(te)} l S`)}}L&&O.restore()},de=async R=>{if(!R.src||R.w<=0||R.h<=0)return;let N=await y(R.src,!!R.emboss);if(!N)return;let D=R.x,C=R.y,ne=R.w,q=R.h;if(R.fit!=="fill"){let G=(R.fit==="cover"?Math.max:Math.min)(R.w/N.width,R.h/N.height);ne=N.width*G,q=N.height*G,D=R.x+(R.w-ne)/2,C=R.y+(R.h-q)/2}X(R.opacity,R.rotate,R)||O.save(),R.fit==="cover"&&(ge(R.x,R.y,R.w,R.h),O.op("W n")),O.op(`${K(ne*Ee)} 0 0 ${K(q*Ee)} ${K(Y(D))} ${K(H(C+q))} cm /${N.name} Do`),O.restore()};for(let R of _.items)switch(R.kind){case"box":ye(R);break;case"line":Z(R);break;case"path":J(R);break;case"text":fe(R);break;case"image":await de(R);break}let pe=r.alloc(),ce=r.alloc();await r.stream(pe,"",ze(O.parts.join(`
|
|
37
|
+
`))),r.set(ce,`<< /Type /Page /Parent ${s} 0 R /MediaBox [0 0 ${K(_.width*Ee)} ${K(ue)}] /Resources ${c} 0 R /Contents ${pe} 0 R >>`),A.push(ce)}let T=0;for(let _ of u.values())await ji(r,_,T++);let I=[...u.values()].map(_=>`/${_.name} ${_.id} 0 R`).join(" "),V=[...$].map(([_,ue])=>`/${ue} << /Type /ExtGState /ca ${_} /CA ${_} >>`).join(" ");r.set(c,"<< /ProcSet [/PDF /Text /ImageB /ImageC]"+(I?` /Font << ${I} >>`:"")+(M.length?` /XObject << ${M.join(" ")} >>`:"")+(V?` /ExtGState << ${V} >>`:"")+" >>"),r.set(s,`<< /Type /Pages /Kids [${A.map(_=>`${_} 0 R`).join(" ")}] /Count ${A.length} >>`);let oe=t.security?" /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 8 >> >>":"";r.set(o,`<< /Type /Catalog /Pages ${s} 0 R${oe} >>`);let z=new Date,ae=_=>String(_).padStart(2,"0"),U=`<< /Producer (FreeReport) /CreationDate (${`D:${z.getUTCFullYear()}${ae(z.getUTCMonth()+1)}${ae(z.getUTCDate())}${ae(z.getUTCHours())}${ae(z.getUTCMinutes())}${ae(z.getUTCSeconds())}Z`})`;if(t.title&&(U+=` /Title ${hn(t.title)}`),t.author&&(U+=` /Author ${hn(t.author)}`),t.subject&&(U+=` /Subject ${hn(t.subject)}`),U+=` /Creator ${hn(t.creator||"FreeReport")} >>`,r.set(a,U),!t.security)return r.build(o,a);let le=await Yo(t.security),me=r.alloc();return r.set(me,le.dict,!0),r.build(o,a,{fileKey:le.fileKey,encryptId:me})}function Pi(e,t){let n=2166136261;for(let o of e+":"+t)n=Math.imul(n^o.charCodeAt(0),16777619)>>>0;let r="";for(let o=0;o<6;o++)r+=String.fromCharCode(65+n%26),n=Math.floor(n/26)+o*7;return r}async function ji(e,t,n){let r=t.font,o=1e3/r.unitsPerEm,s=v=>Math.round(v*o),a=e.alloc(),c=e.alloc(),i=e.alloc(),f=e.alloc(),p=[...t.used.keys()].sort((v,M)=>v-M),b=`${Pi(r.postscriptName,n)}+${r.postscriptName}${t.fakeBold?",Bold":""}`,l="";for(let v=0;v<p.length;){let M=v,j=[s(r.advance(p[v]))];for(;M+1<p.length&&p[M+1]===p[M]+1;)M++,j.push(s(r.advance(p[M])));l+=`${p[v]} [${j.join(" ")}] `,v=M+1}let u=Wo(r,new Set(p));await e.stream(i,`/Length1 ${u.length}`,u);let d=r.bbox.map(s);e.set(c,`<< /Type /FontDescriptor /FontName /${b} /Flags ${r.flags} /FontBBox [${d.join(" ")}] /ItalicAngle ${K(r.italicAngle)} /Ascent ${s(r.ascent)} /Descent ${s(r.descent)} /CapHeight ${s(r.capHeight)} /StemV ${t.fakeBold?120:80} /FontFile2 ${i} 0 R >>`),e.set(a,`<< /Type /Font /Subtype /CIDFontType2 /BaseFont /${b} /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor ${c} 0 R /DW ${s(r.advance(0))} /W [${l.trim()}] /CIDToGIDMap /Identity >>`);let h=p.filter(v=>v!==0),$="";for(let v=0;v<h.length;v+=100){let M=h.slice(v,v+100);$+=`${M.length} beginbfchar
|
|
38
|
+
`+M.map(j=>`<${hr(j)}> <${ts(t.used.get(j))}>`).join(`
|
|
39
39
|
`)+`
|
|
40
40
|
endbfchar
|
|
41
|
-
`}let
|
|
41
|
+
`}let x=`/CIDInit /ProcSet findresource begin
|
|
42
42
|
12 dict begin
|
|
43
43
|
begincmap
|
|
44
44
|
/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def
|
|
@@ -47,32 +47,32 @@ begincmap
|
|
|
47
47
|
1 begincodespacerange
|
|
48
48
|
<0000> <FFFF>
|
|
49
49
|
endcodespacerange
|
|
50
|
-
|
|
50
|
+
`+$+`endcmap
|
|
51
51
|
CMapName currentdict /CMap defineresource pop
|
|
52
52
|
end
|
|
53
|
-
end`;await e.stream(
|
|
53
|
+
end`;await e.stream(f,"",ze(x)),e.set(t.id,`<< /Type /Font /Subtype /Type0 /BaseFont /${b} /Encoding /Identity-H /DescendantFonts [${a} 0 R] /ToUnicode ${f} 0 R >>`)}async function gr(e,t={}){if(!e.length)return;let n=t.pages?t.pages.map(i=>e[i]).filter(Boolean):e,{width:r,height:o}=n[0],s=document.createElement("iframe");s.setAttribute("aria-hidden","true"),s.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none",document.body.appendChild(s);let a=s.contentDocument;a.open(),a.write(`<!doctype html><html><head><meta charset="utf-8"><title>${(t.title??"Report").replace(/</g,"<")}</title><style>
|
|
54
54
|
@page { size: ${r}mm ${o}mm; margin: 0; }
|
|
55
55
|
html, body { margin: 0; padding: 0; background: #fff; }
|
|
56
56
|
.p { width: ${r}mm; height: ${o}mm; overflow: hidden; break-after: page; page-break-after: always; }
|
|
57
57
|
.p:last-child { break-after: auto; page-break-after: auto; }
|
|
58
58
|
.p svg { display: block; width: ${r}mm; height: ${o}mm; }
|
|
59
59
|
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
60
|
-
</style></head><body>${n.map(i=>`<div class="p">${Ke(i)}</div>`).join("")}</body></html>`),a.close(),
|
|
60
|
+
</style></head><body>${n.map(i=>`<div class="p">${Ke(i)}</div>`).join("")}</body></html>`),a.close(),Et(t.families??["Nanum Gothic"],a),bt(a);let c=s.contentWindow;await new Promise(i=>setTimeout(i,50));try{await Promise.race([a.fonts?.ready,new Promise(f=>setTimeout(f,3e3))]);let i=[...a.querySelectorAll("image")].map(f=>{let p=f.getAttribute("href");if(!p)return Promise.resolve();let b=new Image;return b.src=p,b.decode().catch(()=>{})});await Promise.race([Promise.all(i),new Promise(f=>setTimeout(f,4e3))]),await new Promise(f=>setTimeout(f,300))}catch{}await new Promise(i=>{let f=!1,p=()=>{f||(f=!0,setTimeout(()=>s.remove(),500),i())};c.addEventListener("afterprint",p,{once:!0}),c.focus(),c.print(),setTimeout(i,1e3),setTimeout(p,10*6e4)})}function rs(e){return{...e,updateAvailable:typeof e.updateAvailable=="string"?e.updateAvailable:null,latestVersion:typeof e.latestVersion=="string"?e.latestVersion:null,outdated:e.outdated===!0}}var Qe=class extends Error{constructor(n,r,o){super(n);this.code=r;this.status=o;this.name="AgentError"}},ns=[18731,18732,18733,18734,18735],br="freereport:agent-token",os=600,Ai="FreeReport Print Agent",dt=null;function Ci(){try{return globalThis.localStorage?.getItem(br)??null}catch{return null}}function yr(e){try{e?globalThis.localStorage?.setItem(br,e):globalThis.localStorage?.removeItem(br)}catch{}}var bn=null,ss=()=>Ci()??bn;async function Kt(e,t={}){let n=new AbortController,r=t.timeout?setTimeout(()=>n.abort(),t.timeout):void 0;try{let o={...t.headers},s=ss();s&&(o["x-freereport-token"]=s);let a=await fetch(e,{...t,headers:o,signal:n.signal,cache:"no-store"}),c=await a.json().catch(()=>({}));if(!a.ok)throw new Qe(c.message??`HTTP ${a.status}`,c.error??"http_error",a.status);return c}finally{r&&clearTimeout(r)}}async function Li(e){let t=await Kt(`http://127.0.0.1:${e}/v1/status`,{timeout:os});if(t?.name!==Ai)throw new Error("not the agent");return rs(t)}async function as(){if(dt||await et.detect())return dt;throw new Qe("FreeReport Print Agent is not running on this PC.","not_running",0)}async function gn(e,t={}){let n=await as();if(!ss()&&!await et.pair())throw new Qe("The user did not allow printing from this site.","denied",403);try{return await Kt(n+e,t)}catch(r){if(r instanceof Qe&&r.code==="not_paired"&&(yr(null),bn=null,await et.pair()))return Kt(n+e,t);throw r}}function Di(e){let t="";for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode.apply(null,e.subarray(n,n+32768));return btoa(t)}var et={async detect(){if(typeof fetch>"u")return null;if(dt)try{return rs(await Kt(`${dt}/v1/status`,{timeout:os}))}catch{dt=null}let e=async t=>({port:t,status:await Li(t)});try{let t=await e(ns[0]).catch(()=>Promise.any(ns.slice(1).map(e)));return dt=`http://127.0.0.1:${t.port}`,t.status}catch{return null}},async pair(){let e=await as(),t=globalThis.location?.origin;try{let n=await Kt(`${e}/v1/pair`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({origin:t}),timeout:7e4});return bn=n.token,yr(n.token),!0}catch(n){if(n instanceof Qe&&(n.code==="denied"||n.code==="busy"))return!1;throw n}},printers(){return gn("/v1/printers",{timeout:15e3})},async print(e,t={}){let n=e instanceof Uint8Array?e:new Uint8Array(e instanceof Blob?await e.arrayBuffer():e);return gn("/v1/print",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...t,pdf:Di(n)}),timeout:18e4})},job(e){return gn(`/v1/jobs/${encodeURIComponent(e)}`,{timeout:5e3})},logs(e=50){return gn(`/v1/logs?limit=${e}`,{timeout:5e3})},forget(){yr(null),bn=null}};var yn={pdf:"application/pdf",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",csv:"text/csv;charset=utf-8",hwpx:"application/hwp+zip"};function is(e,t){let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),setTimeout(()=>{URL.revokeObjectURL(n),r.remove()},1e3)}var Fi=e=>e.replace(/[\\/:*?"<>|]+/g,"_").trim()||"report";function wr(e,t={},n={}){let r=e,o=t,s={...n.params},a=null,c=null;Dn(n.licenseKey);let i=()=>a??(a=kt(r,o,{...n,params:s})),f=()=>n.anchors?i():c??(c=kt(r,o,{...n,params:s,anchors:!0})),p=async(l,u)=>{if(!n.onOutput)return!0;let d=i();return await n.onOutput({kind:l,report:r.name??"report",pages:d.pages.length,rows:d.rowCount,params:s,fileName:u})!==!1},b={get definition(){return r},layout:i,async ready(){return await rt(r),a=c=null,i()},anchors(l=""){return f().pages.flatMap((d,h)=>(d.anchors??[]).filter($=>$.id.startsWith(l)).map($=>({...$,page:h+1,pageWidth:d.width,pageHeight:d.height})))},setData(l){o=l,a=c=null},fingerprint(){let l=i();return l.fingerprint??Lt(l.pages)},setParams(l){s={...l},a=c=null},setDefinition(l){r=l,a=c=null},async print(l={}){if(!await p("print"))return!1;if(n.directPrint&&typeof window<"u"){let u=await et.detect();if(u&&(u.paired||await et.pair())){let d=i().pages,h=l.pages?l.pages.map(v=>d[v]).filter(Boolean):d,$=await $t(h,{fonts:Tn(h),title:r.name,creator:"FreeReport"}),x=typeof n.directPrint=="object"?n.directPrint:{};return await et.print($,{report:r.name,jobName:r.name,...x}),!0}}return await gr(i().pages,{families:Rn(r),pages:l.pages,title:r.name}),!0},async toPdf(){if(!await p("pdf"))return null;let l=i().pages,u=await $t(l,{fonts:Tn(l),title:r.name,author:n.author,creator:"FreeReport",security:n.pdfSecurity});return new Blob([u],{type:yn.pdf})},async toXlsx(l="form"){if(!await p(l==="data"?"xlsx-data":"xlsx"))return null;let u=l==="data"?qt(r,o,{params:s,locale:n.locale}):Ot(i(),r);return new Blob([u],{type:yn.xlsx})},async toHwpx(){return await p("hwpx")?new Blob([lr(i(),r)],{type:yn.hwpx}):null},async toCsv(){return await p("csv")?new Blob([rr(r,o,{params:s,locale:n.locale})],{type:yn.csv}):null},async download(l,u){let d=Fi(u??r.name??"report"),h=l==="pdf"?await b.toPdf():l==="csv"?await b.toCsv():l==="hwpx"?await b.toHwpx():await b.toXlsx(l==="xlsx-data"?"data":"form");if(!h)return!1;let $=l==="pdf"?"pdf":l==="csv"?"csv":l==="hwpx"?"hwpx":"xlsx";return is(h,/\.\w+$/.test(d)?d:`${d}.${$}`),!0}};return b}var Ii={ko:{find:"\uCC3E\uAE30",findNone:"\uCC3E\uB294 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",findCount:(e,t)=>`${e} / ${t}`,first:"\uCCAB \uD398\uC774\uC9C0",prev:"\uC774\uC804 \uD398\uC774\uC9C0",next:"\uB2E4\uC74C \uD398\uC774\uC9C0",last:"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",zoomIn:"\uD655\uB300",zoomOut:"\uCD95\uC18C",fitWidth:"\uD3ED \uB9DE\uCDA4",fitPage:"\uCABD \uB9DE\uCDA4",print:"\uC778\uC1C4",pdf:"PDF",xlsx:"\uC5D1\uC140",xlsxForm:"\uC5D1\uC140 (\uC591\uC2DD \uADF8\uB300\uB85C)",xlsxData:"\uC5D1\uC140 (\uB370\uC774\uD130)",hwpx:"\uD55C\uAE00 (HWPX)",save:"\uC800\uC7A5",csv:"CSV",params:"\uC870\uD68C \uC870\uAC74",search:"\uC870\uD68C",loading:"\uBCF4\uACE0\uC11C\uB97C \uB9CC\uB4DC\uB294 \uC911\u2026",exporting:"\uD30C\uC77C\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",pages:e=>`${e}\uCABD`,rows:e=>`${e.toLocaleString("ko")}\uAC74`,empty:"\uD45C\uC2DC\uD560 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",error:"\uBCF4\uACE0\uC11C\uB97C \uB9CC\uB4E4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4",page:"\uD398\uC774\uC9C0",required:"\uD544\uC218 \uD56D\uBAA9\uC785\uB2C8\uB2E4",yes:"\uC608",no:"\uC544\uB2C8\uC694"},en:{find:"Find",findNone:"No matches",findCount:(e,t)=>`${e} of ${t}`,first:"First page",prev:"Previous page",next:"Next page",last:"Last page",zoomIn:"Zoom in",zoomOut:"Zoom out",fitWidth:"Fit width",fitPage:"Fit page",print:"Print",pdf:"PDF",xlsx:"Excel",xlsxForm:"Excel (as printed)",xlsxData:"Excel (data)",hwpx:"Hangul (HWPX)",save:"Save",csv:"CSV",params:"Parameters",search:"Run",loading:"Building the report\u2026",exporting:"Creating the file\u2026",pages:e=>`${e} pages`,rows:e=>`${e.toLocaleString("en")} rows`,empty:"No pages to show",error:"The report could not be built",page:"Page",required:"Required",yes:"Yes",no:"No"}},Bi={first:"M18 6l-6 6 6 6M7 6v12",prev:"M15 6l-6 6 6 6",next:"M9 6l6 6-6 6",last:"M6 6l6 6-6 6M17 6v12",search:"M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM20 20l-4-4",minus:"M6 12h12",plus:"M12 6v12M6 12h12",print:"M7 9V4h10v5M7 17H5a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2M7 14h10v6H7z",file:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4",filter:"M4 5h16l-6 8v5l-4 2v-7z",caret:"M7 10l5 5 5-5"},Le=e=>`<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="${Bi[e]}"/></svg>`,pt=96/25.4,ls=16;function cs(e,t,n,r){let o=`fr-p-${e.replace(/[^\w-]/g,"_")}`,s=`<label for="${o}">${We(t.label??e)}${t.required?' <b aria-hidden="true">*</b>':""}</label>`,a=n==null?"":n instanceof Date?Rt(n,"yyyy-MM-dd"):String(n),c=t.required?" required":"";if(t.type==="select"||t.options)return`<div class="fr-param">${s}<select id="${o}" name="${We(e)}"${c}>${(t.options??[]).map(f=>`<option value="${We(String(f.value))}"${String(f.value)===a?" selected":""}>${We(String(f.label??f.value))}</option>`).join("")}</select></div>`;if(t.type==="boolean")return`<div class="fr-param">${s}<select id="${o}" name="${We(e)}" data-type="boolean"><option value="true"${n===!0?" selected":""}>${r.yes}</option><option value="false"${n!==!0?" selected":""}>${r.no}</option></select></div>`;let i=t.type==="number"?"number":t.type==="date"?"date":"text";return`<div class="fr-param">${s}<input id="${o}" name="${We(e)}" type="${i}" value="${We(a)}" data-type="${We(String(t.type??"string"))}"${c}></div>`}var We=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");function xr(e,t){let n=Ii[t.lang??"ko"],r={pages:!0,zoom:!0,search:!0,print:!0,pdf:!0,xlsx:!0,xlsxData:!0,csv:!1,hwpx:!0,params:!0,...t.toolbar},o=t.definition,s=!!o.params&&Object.keys(o.params).length>0,a={};for(let[g,L]of Object.entries(o.params??{}))a[g]=L.default;a={...a,...t.params};let c=wr(o,t.data??{},{...t,params:a}),i=null,f=t.zoom??"width",p=1,b=0,l=!1;e.classList.add("fr-viewer"),e.innerHTML=`
|
|
61
61
|
<div class="fr-toolbar" role="toolbar">
|
|
62
|
-
${r.params&&s?`<button type="button" class="fr-btn fr-params-toggle" aria-expanded="false">${
|
|
63
|
-
${r.pages?`<button type="button" class="fr-btn fr-icon" data-act="first" title="${n.first}" aria-label="${n.first}">${
|
|
64
|
-
<button type="button" class="fr-btn fr-icon" data-act="prev" title="${n.prev}" aria-label="${n.prev}">${
|
|
62
|
+
${r.params&&s?`<button type="button" class="fr-btn fr-params-toggle" aria-expanded="false">${Le("filter")}<span>${n.params}</span></button><span class="fr-sep"></span>`:""}
|
|
63
|
+
${r.pages?`<button type="button" class="fr-btn fr-icon" data-act="first" title="${n.first}" aria-label="${n.first}">${Le("first")}</button>
|
|
64
|
+
<button type="button" class="fr-btn fr-icon" data-act="prev" title="${n.prev}" aria-label="${n.prev}">${Le("prev")}</button>
|
|
65
65
|
<span class="fr-pageno"><input type="text" inputmode="numeric" aria-label="${n.page}" value="1"><span class="fr-total">/ 0</span></span>
|
|
66
|
-
<button type="button" class="fr-btn fr-icon" data-act="next" title="${n.next}" aria-label="${n.next}">${
|
|
67
|
-
<button type="button" class="fr-btn fr-icon" data-act="last" title="${n.last}" aria-label="${n.last}">${
|
|
68
|
-
${r.zoom?`<button type="button" class="fr-btn fr-icon" data-act="zoomOut" title="${n.zoomOut}" aria-label="${n.zoomOut}">${
|
|
69
|
-
<select class="fr-zoom" aria-label="Zoom"><option value="width">${n.fitWidth}</option><option value="page">${n.fitPage}</option>${[.5,.75,1,1.25,1.5,2].map(
|
|
70
|
-
<button type="button" class="fr-btn fr-icon" data-act="zoomIn" title="${n.zoomIn}" aria-label="${n.zoomIn}">${
|
|
71
|
-
${r.search?`<span class="fr-sep"></span><span class="fr-search">${
|
|
66
|
+
<button type="button" class="fr-btn fr-icon" data-act="next" title="${n.next}" aria-label="${n.next}">${Le("next")}</button>
|
|
67
|
+
<button type="button" class="fr-btn fr-icon" data-act="last" title="${n.last}" aria-label="${n.last}">${Le("last")}</button><span class="fr-sep"></span>`:""}
|
|
68
|
+
${r.zoom?`<button type="button" class="fr-btn fr-icon" data-act="zoomOut" title="${n.zoomOut}" aria-label="${n.zoomOut}">${Le("minus")}</button>
|
|
69
|
+
<select class="fr-zoom" aria-label="Zoom"><option value="width">${n.fitWidth}</option><option value="page">${n.fitPage}</option>${[.5,.75,1,1.25,1.5,2].map(g=>`<option value="${g}">${Math.round(g*100)}%</option>`).join("")}<option value="custom" hidden></option></select>
|
|
70
|
+
<button type="button" class="fr-btn fr-icon" data-act="zoomIn" title="${n.zoomIn}" aria-label="${n.zoomIn}">${Le("plus")}</button>`:""}
|
|
71
|
+
${r.search?`<span class="fr-sep"></span><span class="fr-search">${Le("search")}<input type="search" aria-label="${n.find}" placeholder="${n.find}"><span class="fr-search-count" aria-live="polite"></span></span>`:""}
|
|
72
72
|
<span class="fr-spacer"></span>
|
|
73
|
-
${r.print?`<button type="button" class="fr-btn" data-act="print">${
|
|
74
|
-
${r.pdf?`<button type="button" class="fr-btn" data-act="pdf">${
|
|
75
|
-
${r.xlsx||r.xlsxData||r.csv||r.hwpx?`<span class="fr-menu"><button type="button" class="fr-btn" data-act="menu" aria-haspopup="true" aria-expanded="false">${
|
|
73
|
+
${r.print?`<button type="button" class="fr-btn" data-act="print">${Le("print")}<span>${n.print}</span></button>`:""}
|
|
74
|
+
${r.pdf?`<button type="button" class="fr-btn" data-act="pdf">${Le("file")}<span>${n.pdf}</span></button>`:""}
|
|
75
|
+
${r.xlsx||r.xlsxData||r.csv||r.hwpx?`<span class="fr-menu"><button type="button" class="fr-btn" data-act="menu" aria-haspopup="true" aria-expanded="false">${Le("file")}<span>${n.save}</span>${Le("caret")}</button>
|
|
76
76
|
<span class="fr-menu-list" role="menu" hidden>
|
|
77
77
|
${r.xlsx?`<button type="button" role="menuitem" data-act="xlsx">${n.xlsxForm}</button>`:""}
|
|
78
78
|
${r.xlsxData?`<button type="button" role="menuitem" data-act="xlsxData">${n.xlsxData}</button>`:""}
|
|
@@ -80,9 +80,9 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
80
80
|
${r.csv?`<button type="button" role="menuitem" data-act="csv">${n.csv}</button>`:""}
|
|
81
81
|
</span></span>`:""}
|
|
82
82
|
</div>
|
|
83
|
-
${s?`<form class="fr-params" hidden>${Object.entries(o.params).map(([
|
|
83
|
+
${s?`<form class="fr-params" hidden>${Object.entries(o.params).map(([g,L])=>cs(g,L,a[g],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button></form>`:""}
|
|
84
84
|
<div class="fr-body" tabindex="0"><div class="fr-pages"></div><div class="fr-overlay" hidden><span class="fr-spinner"></span><span class="fr-overlay-text"></span></div></div>
|
|
85
|
-
<div class="fr-status" aria-live="polite"><span class="fr-status-text"></span><a class="fr-badge" href="https://freereport.app/pricing/" target="_blank" rel="noopener" hidden>FreeReport \xB7 \uBB34\uB8CC \uC0AC\uC6A9</a></div>`;let f=m=>e.querySelector(m),u=f(".fr-body"),y=f(".fr-pages"),R=f(".fr-overlay"),M=f(".fr-status-text"),$=f(".fr-pageno input"),v=f(".fr-total"),T=f(".fr-zoom"),x=f(".fr-params"),j=f(".fr-params-toggle"),C=f('[data-act="menu"]'),D=f(".fr-menu-list"),Q=f(".fr-overlay-text"),Z=m=>{R.hidden=m===null,Q.textContent=m??""},z=m=>{!x||!j||(x.hidden=!m,j.setAttribute("aria-expanded",String(m)))};z(t.paramsOpen??Object.entries(o.params??{}).some(([,m])=>m.required&&m.default===void 0));let oe=null,xe=()=>{if(!i)return 1;let m=Math.max(100,u.clientWidth-48),g=Math.max(100,u.clientHeight-32);return p==="width"?Math.min(1.25,m/(i.width*dt)):p==="page"?Math.min(m/(i.width*dt),g/(i.height*dt)):p},W=m=>{if(!i||m.dataset.drawn)return;let g=Number(m.dataset.index);m.innerHTML=Ke(i.pages[g],{className:"fr-page-svg"}),m.dataset.drawn="1",gt(m)},ce=()=>{if(!i)return;d=xe();let m=i.width*dt*d,g=i.height*dt*d;if(y.style.setProperty("--fr-page-w",`${m}px`),y.style.setProperty("--fr-page-h",`${g}px`),T){let k=typeof p=="number"?String(p):p,E=[...T.options].some(B=>B.value===k),A=T.querySelector('option[value="custom"]');A.hidden=E,A.textContent=`${Math.round(d*100)}%`,T.value=E?k:"custom"}},me=()=>{if(oe?.disconnect(),y.innerHTML="",!i)return;if(!i.pages.length){y.innerHTML=`<p class="fr-empty">${n.empty}</p>`;return}let m=document.createDocumentFragment();i.pages.forEach((A,B)=>{let re=document.createElement("div");re.className="fr-page",re.dataset.index=String(B),re.dataset.page=String(B+1),re.setAttribute("aria-label",`${n.page} ${B+1}`),m.appendChild(re)}),y.appendChild(m),ce(),oe=typeof IntersectionObserver<"u"?new IntersectionObserver(A=>{for(let B of A)B.isIntersecting&&W(B.target);K()},{root:u,rootMargin:"600px 0px"}):null;let g=y.querySelectorAll(".fr-page");g.forEach((A,B)=>oe?oe.observe(A):B<3&&W(A));let k=i.height*dt*d+os,E=Math.min(g.length-1,Math.max(0,Math.floor(u.scrollTop/k)));for(let A=E;A<Math.min(g.length,E+1+Math.ceil(u.clientHeight/k));A++)W(g[A]);v&&(v.textContent=`/ ${i.pages.length}`),S="",I=[],M.textContent=`${n.pages(i.pages.length)} \xB7 ${n.rows(i.rowCount)} \xB7 ${i.ms}ms`,K()},K=()=>{if(!i)return;let m=i.height*dt*d+os;b=Math.min(i.pages.length-1,Math.max(0,Math.round(u.scrollTop/m))),$&&document.activeElement!==$&&($.value=String(b+1)),V()},ue=-1,V=()=>{if(!(!i?.pages.length||b===ue)){ue=b;try{t.onPageChange?.(b+1,i.pages.length)}catch(m){console.error(m)}}},N=(m,g)=>{let k=m instanceof Error?m:new Error(String(m));console.error(k);try{t.onError?.(k,g)}catch(E){console.error(E)}return k},H=m=>{if(!i)return;let g=Math.min(i.pages.length-1,Math.max(0,m)),k=y.children[g];k&&(u.scrollTop=k.offsetTop-y.offsetTop),b=g,$&&($.value=String(g+1)),V()},_=m=>{let g=i?u.scrollTop/Math.max(1,u.scrollHeight):0;p=typeof m=="number"?Math.min(4,Math.max(.25,m)):m,ce(),u.scrollTop=g*u.scrollHeight},le=0,he=0,be=Promise.resolve(),X=m=>{e.dataset.frState=m},Y=async m=>{Z(n.loading),X("busy");let g="data",k=()=>m!==le;try{if(t.fetchData){let E=await t.fetchData(a);if(k())return await be;l.setData(E)}if(g="layout",l.setParams(a),await nt(l.definition),c)return;if(k())return await be;i=l.layout(),ue=-1,me(),e.dataset.frRun=String(++he),X("ready");try{t.onReady?.({pages:i.pages.length,rows:i.rowCount,ms:i.ms,params:{...a}})}catch(E){console.error(E)}}catch(E){if(k())return await be;let A=N(E,g);y.innerHTML=`<p class="fr-empty">${n.error}: ${Ge(A.message)}</p>`,e.dataset.frRun=String(++he),X("error")}finally{k()||Z(null)}},se=()=>be=Y(++le),fe=async m=>{Z(n.exporting);try{await l.download(m,t.fileName)}catch(g){de(`${n.error}: ${N(g,"output").message}`)}finally{Z(null)}},de=m=>{M.textContent=m},ie=()=>{!D||!C||(D.hidden=!0,C.setAttribute("aria-expanded","false"))},P=new AbortController;e.addEventListener("click",m=>{let g=m.target.closest("[data-act]");if(!g||!e.contains(g)){m.target.closest(".fr-menu")||ie();return}let k=g.dataset.act;switch(k!=="menu"&&ie(),k){case"first":H(0);break;case"prev":H(b-1);break;case"next":H(b+1);break;case"last":H((i?.pages.length??1)-1);break;case"zoomIn":_(Math.round((d+.1)*10)/10);break;case"zoomOut":_(Math.round((d-.1)*10)/10);break;case"print":l.print().catch(E=>de(`${n.error}: ${N(E,"output").message}`));break;case"pdf":fe("pdf");break;case"xlsx":fe("xlsx");break;case"xlsxData":fe("xlsx-data");break;case"csv":fe("csv");break;case"hwpx":fe("hwpx");break;case"findNext":w(1);break;case"menu":{let E=D.hidden;D.hidden=!E,C.setAttribute("aria-expanded",String(E));break}}},{signal:P.signal});let O=m=>{e.contains(m.target)||ie()};document.addEventListener("click",O),j?.addEventListener("click",()=>z(x.hidden)),T?.addEventListener("change",()=>{let m=T.value;m!=="custom"&&_(m==="width"||m==="page"?m:Number(m))}),$?.addEventListener("change",()=>H(Number($.value)-1)),$?.addEventListener("keydown",m=>{m.key==="Enter"&&H(Number($.value)-1)}),u.addEventListener("scroll",()=>K(),{passive:!0}),u.addEventListener("keydown",m=>{m.key==="PageDown"||m.key==="ArrowRight"&&!m.altKey?(m.preventDefault(),H(b+1)):m.key==="PageUp"||m.key==="ArrowLeft"?(m.preventDefault(),H(b-1)):m.key==="Home"&&m.ctrlKey?(m.preventDefault(),H(0)):m.key==="End"&&m.ctrlKey?(m.preventDefault(),H((i?.pages.length??1)-1)):(m.ctrlKey||m.metaKey)&&m.key.toLowerCase()==="p"?(m.preventDefault(),l.print()):(m.ctrlKey||m.metaKey)&&m.key.toLowerCase()==="f"&&L?(m.preventDefault(),L.focus(),L.select()):(m.ctrlKey||m.metaKey)&&(m.key==="+"||m.key==="=")?(m.preventDefault(),_(d+.1)):(m.ctrlKey||m.metaKey)&&m.key==="-"&&(m.preventDefault(),_(d-.1))}),u.addEventListener("wheel",m=>{m.ctrlKey&&(m.preventDefault(),_(Math.round(d*(m.deltaY<0?1.1:1/1.1)*100)/100))},{passive:!1}),x?.addEventListener("submit",async m=>{m.preventDefault();let g={...a};x.querySelectorAll("input, select").forEach(A=>{let B=A.dataset.type,re=A.value;g[A.name]=B==="number"?re===""?null:Number(re):B==="boolean"?re==="true":re});let k=e.dataset.frState;X("busy");let E;try{E=await t.onParamsSubmit?.({...g})}catch(A){N(A,"data"),X(k??"ready");return}if(E===!1){X(k??"ready");return}a=E&&typeof E=="object"?{...g,...E}:g,se()});let F=typeof ResizeObserver<"u"?new ResizeObserver(()=>{typeof p!="number"&&ce()}):null;F?.observe(u);let L=f(".fr-search input"),J=f(".fr-search-count"),I=[],U=-1,S="",te=1,ne=m=>{if(I=[],!i||!m)return;let g=m.toLowerCase();i.pages.forEach((k,E)=>{for(let A of k.items)if(!(A.kind!=="text"||A.source?.band==="watermark"))for(let B of A.lines){let re=B.text.toLowerCase().indexOf(g);if(re<0)continue;let q=[...B.text].length||1,ae=A.font.size*(25.4/72);I.push({page:E,x:B.x+B.width*re/q,y:B.y-ae*.85,w:Math.max(1,B.width*[...m].length/q),h:ae*1.1*te})}})},h=()=>{if(y.querySelectorAll(".fr-hit").forEach(B=>B.remove()),!i||U<0||!I[U])return;let m=I[U];H(m.page);let g=y.children[m.page];W(g);let k=document.createElement("div");k.className="fr-hit";let E=g.clientWidth/i.width,A=g.clientHeight/i.height;Object.assign(k.style,{left:`${m.x*E}px`,top:`${m.y*A}px`,width:`${m.w*E}px`,height:`${m.h*A}px`}),g.appendChild(k),u.scrollTop=g.offsetTop-y.offsetTop+m.y*A-u.clientHeight/3},w=m=>{let g=L?.value.trim()??"";if(g!==S&&(S=g,ne(g),U=-1),!I.length){J&&(J.textContent=g?n.findNone:""),h();return}U=(U+m+I.length)%I.length,J&&(J.textContent=n.findCount(U+1,I.length)),h()};return L?.addEventListener("keydown",m=>{m.key==="Enter"?(m.preventDefault(),w(m.shiftKey?-1:1)):m.key==="Escape"&&(L.value="",w(1),u.focus())}),L?.addEventListener("input",()=>{L.value||w(1)}),Ur(t.licenseKey).then(m=>{let g=f(".fr-badge");g&&m&&(g.hidden=!1)}),se(),{report:l,refresh:se,async setData(m){l.setData(m),await se()},async setParams(m){a={...a,...m},await se()},async setDefinition(m){l.setDefinition(m);let g=f(".fr-params");if(g){let k={};for(let[E,A]of Object.entries(m.params??{}))k[E]=a[E]??A.default;a=k,g.innerHTML=`${Object.entries(m.params??{}).map(([E,A])=>ss(E,A,a[E],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button>`}await se()},goTo:m=>H(m-1),setZoom:_,print:()=>l.print(),destroy(){c=!0,oe?.disconnect(),F?.disconnect(),document.removeEventListener("click",O),P.abort(),e.innerHTML="",e.classList.remove("fr-viewer"),delete e.dataset.frState,delete e.dataset.frRun}}}function ze(e){let t=e.bands,n=[],r=(o,s,a,l)=>{s&&n.push({key:o,band:s,group:a,groupIndex:l})};return r("title",t.title),r("pageHeader",t.pageHeader),r("columnHeader",t.columnHeader),(t.groups??[]).forEach((o,s)=>r(`groupHeader:${s}`,o.header,o,s)),r("detail",t.detail),[...t.groups??[]].map((o,s)=>[o,s]).reverse().forEach(([o,s])=>r(`groupFooter:${s}`,o.footer,o,s)),r("summary",t.summary),r("noData",t.noData),r("pageFooter",t.pageFooter),n}function Te(e,t){let[n,r]=t.split(":");return n==="groupHeader"?e.bands.groups?.[Number(r)]?.header:n==="groupFooter"?e.bands.groups?.[Number(r)]?.footer:e.bands[n]}function wr(e,t,n){let[r,o]=t.split(":");if(r==="groupHeader"||r==="groupFooter"){let a=e.bands.groups?.[Number(o)];if(!a)return;r==="groupHeader"?a.header=n:a.footer=n;return}let s=r;n?e.bands[s]=n:delete e.bands[s]}var as=0;function xt(e){let t=new Set;for(let r of ze(e))for(let o of r.band.elements)o.id&&t.add(o.id);let n=new Set;for(let r of ze(e))for(let o of r.band.elements){if(o.id&&/^[\w:.-]{1,64}$/.test(String(o.id))&&!n.has(o.id)){n.add(o.id);continue}let s;do s=`e${++as}`;while(t.has(s));t.add(s),n.add(s),o.id=s}}function kt(e){let t=new Set(ze(e).flatMap(r=>r.band.elements.map(o=>o.id))),n;do n=`e${++as}`;while(t.has(n));return n}function je(e,t){for(let n of ze(e)){let r=n.band.elements.findIndex(o=>o.id===t);if(r>=0)return{slot:n,el:n.band.elements[r],index:r}}return null}function is(e,t,n,r,o,s){let a=Math.min(Math.max(o,5),8);switch(e){case"field":return{id:t,type:"field",x:n,y:r,w:30,h:a,expr:s??"field",style:void 0};case"line":return{id:t,type:"line",x:n,y:r,w:40,h:0,width:.2};case"rect":return{id:t,type:"rect",x:n,y:r,w:30,h:15,width:.2};case"image":return{id:t,type:"image",x:n,y:r,w:25,h:15,src:"",fit:"contain"};case"barcode":return{id:t,type:"barcode",x:n,y:r,w:45,h:12,expr:"'ABC-12345'",format:"code128"};case"qr":return{id:t,type:"barcode",x:n,y:r,w:18,h:18,expr:"'https://freereport.app'",format:"qr"};case"chart":return{id:t,type:"chart",x:n,y:r,w:90,h:50,chartType:"bar",category:s??"name",series:[{expr:"value"}]};case"table":return{id:t,type:"table",x:n,y:r,w:120,h:18,source:"items",columns:[{header:"\uD488\uBAA9",expr:"name"},{header:"\uC218\uB7C9",expr:"qty",width:20,format:"#,##0"},{header:"\uAE08\uC561",expr:"amount",width:30,format:"#,##0",sum:!0}]};case"crosstab":return{id:t,type:"crosstab",x:n,y:r,w:150,h:30,rowKey:s??"region",columnKey:"category",value:"amount",corner:""};case"pageNumber":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{page} / {pages}",style:{align:"center"}};case"today":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{format(today(), 'yyyy-MM-dd')}"};default:return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"\uD14D\uC2A4\uD2B8"}}}var Ie=e=>{if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};function bn(){return{version:1,name:"\uC0C8 \uBCF4\uACE0\uC11C",page:{size:"A4",orientation:"portrait",margins:15},font:{family:"Nanum Gothic",size:9},bands:{title:{height:14,elements:[{id:"e1",type:"text",x:0,y:0,w:180,h:12,text:"\uBCF4\uACE0\uC11C \uC81C\uBAA9",style:{fontSize:16,bold:!0,align:"center"}}]},columnHeader:{height:7,elements:[]},detail:{height:6,elements:[]},summary:{height:8,elements:[]},pageFooter:{height:8,elements:[{id:"e2",type:"text",x:0,y:1,w:180,h:6,text:"{page} / {pages}",style:{align:"center",fontSize:8}}]}}}}var ls={ko:{report:"\uBCF4\uACE0\uC11C",name:"\uC774\uB984",page:"\uC6A9\uC9C0",size:"\uD06C\uAE30",orientation:"\uBC29\uD5A5",portrait:"\uC138\uB85C",landscape:"\uAC00\uB85C",margins:"\uC5EC\uBC31 (\uC0C1 \uC6B0 \uD558 \uC88C, mm)",font:"\uAE30\uBCF8 \uAE00\uAF34",fontSize:"\uAE00\uC790 \uD06C\uAE30 (pt)",dataSource:"\uB370\uC774\uD130 \uBC30\uC5F4 \uC774\uB984",sort:"\uC815\uB82C (\uC27C\uD45C\uB85C \uAD6C\uBD84, -\uB294 \uB0B4\uB9BC\uCC28\uC21C)",filter:"\uD544\uD130 \uC2DD",fillEmpty:"\uBE48 \uD589\uC73C\uB85C \uD398\uC774\uC9C0 \uCC44\uC6B0\uAE30",skipHeader:"\uCCAB \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uC228\uAE30\uAE30",watermark:"\uC6CC\uD130\uB9C8\uD06C \uBB38\uAD6C",wmRepeat:"\uC804\uBA74 \uBC18\uBCF5 (\uBCF4\uC548 \uD328\uD134)",wmOpacity:"\uC6CC\uD130\uB9C8\uD06C \uBD88\uD22C\uBA85\uB3C4",emboss:"\uC5E0\uBCF4\uC2F1 \uBB38\uAD6C",embossCenter:"\uC5E0\uBCF4\uC2F1 \uAC00\uC6B4\uB370 \uAE00\uC790",params:"\uD30C\uB77C\uBBF8\uD130 (JSON)",position:"\uC704\uCE58\uC640 \uD06C\uAE30 (mm)",x:"X",y:"Y",w:"\uB108\uBE44",h:"\uB192\uC774",text:"\uD14D\uC2A4\uD2B8 (\uC911\uAD04\uD638 \uC548\uC740 \uC2DD: {amount:#,##0})",expr:"\uC2DD",format:"\uC11C\uC2DD (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"\uAC12\uC774 \uC5C6\uC744 \uB54C",suppress:"\uAC19\uC740 \uAC12 \uBC18\uBCF5 \uC228\uAE30\uAE30",visible:"\uD45C\uC2DC \uC870\uAC74 (\uC2DD)",canGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",stretch:"\uBC34\uB4DC \uB192\uC774 \uB530\uB77C\uAC00\uAE30",style:"\uC2A4\uD0C0\uC77C",bold:"\uAD75\uAC8C",italic:"\uAE30\uC6B8\uC784",underline:"\uBC11\uC904",strike:"\uCDE8\uC18C\uC120",color:"\uAE00\uC790\uC0C9",background:"\uBC30\uACBD\uC0C9",align:"\uAC00\uB85C \uC815\uB82C",valign:"\uC138\uB85C \uC815\uB82C",left:"\uC67C\uCABD",center:"\uAC00\uC6B4\uB370",right:"\uC624\uB978\uCABD",justify:"\uC591\uCABD",top:"\uC704",middle:"\uAC00\uC6B4\uB370",bottom:"\uC544\uB798",border:"\uD14C\uB450\uB9AC",none:"\uC5C6\uC74C",all:"\uBAA8\uB450",borderWidth:"\uD14C\uB450\uB9AC \uB450\uAED8 (mm)",borderColor:"\uD14C\uB450\uB9AC \uC0C9",padding:"\uC548\uCABD \uC5EC\uBC31 (mm)",wrap:"\uC904\uBC14\uAFC8",shrink:"\uAE00\uC790 \uC904\uC5EC \uB9DE\uCD94\uAE30",lineColor:"\uC120 \uC0C9",lineWidth:"\uC120 \uB450\uAED8 (mm)",dash:"\uC120 \uBAA8\uC591",solid:"\uC2E4\uC120",dashed:"\uD30C\uC120",dotted:"\uC810\uC120",fill:"\uCC44\uC6B0\uAE30",radius:"\uBAA8\uC11C\uB9AC \uB465\uAE00\uAE30",src:"\uC774\uBBF8\uC9C0 \uC8FC\uC18C",fit:"\uB9DE\uCDA4",contain:"\uBE44\uC728 \uC720\uC9C0",cover:"\uCC44\uC6B0\uAE30(\uC798\uB9BC)",stretchFit:"\uB298\uC774\uAE30",barcode:"\uBC14\uCF54\uB4DC \uC885\uB958",showText:"\uAC12 \uD45C\uC2DC",ecc:"\uC624\uB958 \uC815\uC815",chartType:"\uCC28\uD2B8 \uC885\uB958",source:"\uB370\uC774\uD130 (\uC2DD, \uBE44\uC6B0\uBA74 \uD604\uC7AC \uBC94\uC704)",category:"\uD56D\uBAA9 \uC2DD",series:"\uAC12 \uC2DD (\uC27C\uD45C\uB85C \uC5EC\uB7EC \uAC1C)",title:"\uC81C\uBAA9",legend:"\uBC94\uB840",showValues:"\uAC12 \uD45C\uC2DC",stacked:"\uB204\uC801",band:"\uBC34\uB4DC",height:"\uB192\uC774 (mm)",bandGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",bandBg:"\uBC30\uACBD\uC0C9",altBg:"\uC904\uBB34\uB2AC \uBC30\uACBD\uC0C9",breakBefore:"\uC55E\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",breakAfter:"\uB4A4\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",group:"\uADF8\uB8F9",by:"\uADF8\uB8F9 \uAE30\uC900 \uC2DD",groupSort:"\uADF8\uB8F9 \uC815\uB82C",asc:"\uC624\uB984\uCC28\uC21C",desc:"\uB0B4\uB9BC\uCC28\uC21C",keep:"\uC5C6\uC74C",newPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uC0C8 \uD398\uC774\uC9C0",repeatHeader:"\uB2E4\uC74C \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uBC18\uBCF5",resetPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uCABD \uBC88\uD638 \uC0C8\uB85C",multi:e=>`${e}\uAC1C \uC120\uD0DD\uB428`,errorExpr:"\uC2DD \uC624\uB958",id:"ID",rowHeight:"\uD589 \uB192\uC774 (mm)",showHeader:"\uBA38\uB9AC\uAE00 \uD45C\uC2DC",tableColumns:"\uC5F4 (JSON: header, expr, width, format, align, sum)",rowKey:"\uD589 \uAE30\uC900 \uC2DD",columnKey:"\uC5F4 \uAE30\uC900 \uC2DD",valueExpr:"\uAC12 \uC2DD",aggregate:"\uC9D1\uACC4",corner:"\uC67C\uCABD \uC704 \uC81C\uBAA9",totals:"\uD569\uACC4 \uD589\xB7\uC5F4",columns:"\uB2E4\uB2E8 (\uC5F4 \uC218, \uB77C\uBCA8 \uCD9C\uB825)",columnGap:"\uB2E8 \uC0AC\uC774 \uAC04\uACA9 (mm)"},en:{report:"Report",name:"Name",page:"Paper",size:"Size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins (top right bottom left, mm)",font:"Default font",fontSize:"Font size (pt)",dataSource:"Data array name",sort:"Sort (comma separated, - for descending)",filter:"Filter expression",fillEmpty:"Fill pages with blank rows",skipHeader:"Hide page header on first page",watermark:"Watermark text",wmRepeat:"Repeat over the page (security pattern)",wmOpacity:"Watermark opacity",emboss:"Emboss text",embossCenter:"Emboss centre text",params:"Parameters (JSON)",position:"Position and size (mm)",x:"X",y:"Y",w:"Width",h:"Height",text:"Text (expressions in braces: {amount:#,##0})",expr:"Expression",format:"Format (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"Text when empty",suppress:"Hide repeated values",visible:"Visible when (expression)",canGrow:"Grow to fit content",stretch:"Follow band height",style:"Style",bold:"Bold",italic:"Italic",underline:"Underline",strike:"Strikethrough",color:"Text color",background:"Background",align:"Horizontal align",valign:"Vertical align",left:"Left",center:"Center",right:"Right",justify:"Justify",top:"Top",middle:"Middle",bottom:"Bottom",border:"Border",none:"None",all:"All",borderWidth:"Border width (mm)",borderColor:"Border color",padding:"Padding (mm)",wrap:"Wrap text",shrink:"Shrink to fit",lineColor:"Line color",lineWidth:"Line width (mm)",dash:"Line style",solid:"Solid",dashed:"Dashed",dotted:"Dotted",fill:"Fill",radius:"Corner radius",src:"Image URL",fit:"Fit",contain:"Contain",cover:"Cover",stretchFit:"Stretch",barcode:"Barcode type",showText:"Show value",ecc:"Error correction",chartType:"Chart type",source:"Rows (expression, empty = current scope)",category:"Category expression",series:"Value expressions (comma separated)",title:"Title",legend:"Legend",showValues:"Show values",stacked:"Stacked",band:"Band",height:"Height (mm)",bandGrow:"Grow to fit content",bandBg:"Background",altBg:"Alternate row background",breakBefore:"Page break before",breakAfter:"Page break after",group:"Group",by:"Group by expression",groupSort:"Sort groups",asc:"Ascending",desc:"Descending",keep:"None",newPage:"New page per group",repeatHeader:"Repeat header on next page",resetPage:"Restart page numbers per group",multi:e=>`${e} selected`,errorExpr:"Expression error",id:"ID",rowHeight:"Row height (mm)",showHeader:"Show header",tableColumns:"Columns (JSON: header, expr, width, format, align, sum)",rowKey:"Row expression",columnKey:"Column expression",valueExpr:"Value expression",aggregate:"Aggregate",corner:"Corner title",totals:"Totals",columns:"Columns (labels)",columnGap:"Column gap (mm)"}},cs=["Nanum Gothic","Nanum Myeongjo","Malgun Gothic","Arial","Times New Roman","Courier New"],Se=e=>{let t=Number(e);return Number.isFinite(t)?t:0},Wt=e=>Math.round(e*100)/100;function yn(e){let t=e?.border;if(!t)return{mode:"none",width:.2,color:"#000000"};if(t===!0)return{mode:"all",width:.2,color:"#000000"};if(typeof t=="string"){let n=t.split(/\s+/);return{mode:"all",width:parseFloat(n.find(r=>/^[\d.]+$/.test(r))??"0.2"),color:n.find(r=>r.startsWith("#"))??"#000000"}}return"width"in t||"color"in t||"style"in t?{mode:"all",width:t.width??.2,color:t.color??"#000000"}:{mode:"mixed",width:.2,color:"#000000"}}function xr(e){let t=e?.border;if(!t)return{};if(t===!0||typeof t=="string"||"width"in t||"color"in t||"style"in t)return{top:!0,right:!0,bottom:!0,left:!0};let n=t;return{top:!!n.top,right:!!n.right,bottom:!!n.bottom,left:!!n.left}}function Gt(e,t,n){for(let r of e){let o=yn(r.style),s=xr(r.style);s[t]=n;let a=`${o.width} solid ${o.color}`,l=s.top&&s.right&&s.bottom&&s.left,i=s.top||s.right||s.bottom||s.left;r.style={...r.style,border:l?a:i?Object.fromEntries(Object.entries(s).filter(([,p])=>p).map(([p])=>[p,a])):void 0},r.style.border||delete r.style.border}}function us(e,t,n){let r=e[0],o=c=>{let f=c(r);return e.every(u=>c(u)===f)?f:void 0},s=c=>e.forEach(c),a=c=>()=>o(f=>f.style?.[c]),l=c=>f=>s(u=>{let y={...u.style};f===""||f===void 0||f===null||f===!1?delete y[c]:y[c]=f,u.style=Object.keys(y).length?y:void 0,u.style||delete u.style}),i=[];i.push({label:e.length>1?t.multi(e.length):`${r.type}${r.id?` \xB7 ${r.id}`:""}`,kind:"section"}),i.push({label:t.x,kind:"number",step:.5,get:()=>o(c=>c.x),set:c=>s(f=>f.x=Wt(Se(c)))},{label:t.y,kind:"number",step:.5,get:()=>o(c=>c.y),set:c=>s(f=>f.y=Wt(Se(c)))},{label:t.w,kind:"number",step:.5,get:()=>o(c=>c.w),set:c=>s(f=>f.w=Wt(Se(c)))},{label:t.h,kind:"number",step:.5,get:()=>o(c=>c.h),set:c=>s(f=>f.h=Wt(Se(c)))});let p=new Set(e.map(c=>c.type)),d=p.size===1?r.type:null;if(e.length===1){let c=r;c.type==="text"&&i.push({label:t.text,kind:"textarea",wide:!0,get:()=>c.text,set:f=>c.text=String(f)}),c.type==="field"&&(i.push({label:t.expr,kind:"expr",wide:!0,get:()=>c.expr,set:f=>c.expr=String(f)}),i.push({label:t.format,kind:"text",wide:!0,placeholder:"#,##0",get:()=>c.format??"",set:f=>f?c.format=String(f):delete c.format}),i.push({label:t.nullText,kind:"text",get:()=>c.nullText??"",set:f=>f?c.nullText=String(f):delete c.nullText}),i.push({label:t.suppress,kind:"check",get:()=>!!c.suppressRepeated,set:f=>f?c.suppressRepeated=!0:delete c.suppressRepeated})),c.type==="image"&&(i.push({label:t.src,kind:"text",wide:!0,get:()=>c.src??"",set:f=>c.src=String(f)}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>c.expr??"",set:f=>f?c.expr=String(f):delete c.expr}),i.push({label:t.fit,kind:"select",options:[{value:"contain",label:t.contain},{value:"cover",label:t.cover},{value:"fill",label:t.stretchFit}],get:()=>c.fit??"contain",set:f=>c.fit=f})),c.type==="barcode"&&(i.push({label:t.barcode,kind:"select",options:["code128","ean13","qr","datamatrix","pdf417"].map(f=>({value:f,label:f.toUpperCase()})),get:()=>c.format??"code128",set:f=>c.format=f}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>c.expr,set:f=>c.expr=String(f)}),i.push({label:t.showText,kind:"check",get:()=>c.showText!==!1,set:f=>f?delete c.showText:c.showText=!1}),i.push({label:t.ecc,kind:"select",options:["L","M","Q","H"].map(f=>({value:f,label:f})),get:()=>c.ecc??"M",set:f=>c.ecc=f})),c.type==="table"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>c.source,set:f=>c.source=String(f)}),i.push({label:t.rowHeight,kind:"number",step:.5,get:()=>c.rowHeight??6,set:f=>c.rowHeight=Se(f)||6}),i.push({label:t.showHeader,kind:"check",get:()=>c.showHeader!==!1,set:f=>f?delete c.showHeader:c.showHeader=!1}),i.push({label:t.altBg,kind:"color",get:()=>c.altBackground??"",set:f=>f?c.altBackground=String(f):delete c.altBackground}),i.push({label:t.tableColumns,kind:"json",wide:!0,get:()=>JSON.stringify(c.columns,null,1),set:f=>{let u=JSON.parse(String(f));if(!Array.isArray(u))throw new Error("array");c.columns=u}})),c.type==="crosstab"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>c.source??"",set:f=>f?c.source=String(f):delete c.source}),i.push({label:t.rowKey,kind:"expr",wide:!0,get:()=>c.rowKey,set:f=>c.rowKey=String(f)}),i.push({label:t.columnKey,kind:"expr",wide:!0,get:()=>c.columnKey,set:f=>c.columnKey=String(f)}),i.push({label:t.valueExpr,kind:"expr",wide:!0,get:()=>c.value,set:f=>c.value=String(f)}),i.push({label:t.aggregate,kind:"select",options:["sum","count","avg","min","max"].map(f=>({value:f,label:f})),get:()=>c.aggregate??"sum",set:f=>c.aggregate=f}),i.push({label:t.format,kind:"text",get:()=>c.format??"",set:f=>f?c.format=String(f):delete c.format}),i.push({label:t.corner,kind:"text",get:()=>c.corner??"",set:f=>c.corner=String(f)}),i.push({label:t.totals,kind:"check",get:()=>c.totals!==!1,set:f=>f?delete c.totals:c.totals=!1})),c.type==="chart"&&(i.push({label:t.chartType,kind:"select",options:["bar","hbar","line","area","pie","doughnut"].map(f=>({value:f,label:f})),get:()=>c.chartType,set:f=>c.chartType=f}),i.push({label:t.title,kind:"text",wide:!0,get:()=>c.title??"",set:f=>f?c.title=String(f):delete c.title}),i.push({label:t.source,kind:"expr",wide:!0,get:()=>c.source??"",set:f=>f?c.source=String(f):delete c.source}),i.push({label:t.category,kind:"expr",wide:!0,get:()=>c.category,set:f=>c.category=String(f)}),i.push({label:t.series,kind:"text",wide:!0,get:()=>c.series.map(f=>f.expr).join(", "),set:f=>c.series=String(f).split(",").map(u=>u.trim()).filter(Boolean).map((u,y)=>({...c.series[y],expr:u}))}),i.push({label:t.format,kind:"text",get:()=>c.format??"",set:f=>f?c.format=String(f):delete c.format}),i.push({label:t.legend,kind:"check",get:()=>c.legend??!1,set:f=>c.legend=!!f}),i.push({label:t.showValues,kind:"check",get:()=>!!c.showValues,set:f=>c.showValues=!!f}),i.push({label:t.stacked,kind:"check",get:()=>!!c.stacked,set:f=>c.stacked=!!f}))}if(d==="line"){let c=e;i.push({label:t.lineColor,kind:"color",get:()=>o(f=>f.color)??"#000000",set:f=>c.forEach(u=>u.color=String(f))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(f=>f.width)??.2,set:f=>c.forEach(u=>u.width=Se(f))}),i.push({label:t.dash,kind:"select",options:[{value:"solid",label:t.solid},{value:"dashed",label:t.dashed},{value:"dotted",label:t.dotted}],get:()=>o(f=>f.dash)??"solid",set:f=>c.forEach(u=>f==="solid"?delete u.dash:u.dash=f)})}if(d==="rect"){let c=e;i.push({label:t.fill,kind:"color",get:()=>o(f=>f.fill)??"",set:f=>c.forEach(u=>f?u.fill=String(f):delete u.fill)}),i.push({label:t.lineColor,kind:"color",get:()=>o(f=>f.color)??"#000000",set:f=>c.forEach(u=>u.color=String(f))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(f=>f.width)??.2,set:f=>c.forEach(u=>u.width=Se(f))}),i.push({label:t.radius,kind:"number",step:.5,get:()=>o(f=>f.radius)??0,set:f=>c.forEach(u=>Se(f)?u.radius=Se(f):delete u.radius)})}let b=[...p].every(c=>c==="text"||c==="field");if((b||d==="barcode"||d==="chart")&&(i.push({label:t.style,kind:"section"}),i.push({label:t.font,kind:"select",options:[{value:"",label:n.font?.family??"Nanum Gothic"},...cs.map(c=>({value:c,label:c}))],get:a("fontFamily"),set:l("fontFamily")}),i.push({label:t.fontSize,kind:"number",step:.5,min:4,get:()=>o(c=>c.style?.fontSize)??n.font?.size??9,set:c=>l("fontSize")(Se(c)||void 0)})),b){i.push({label:"",kind:"toggles",toggles:[{label:"B",title:t.bold,get:()=>!!o(u=>!!u.style?.bold),set:u=>l("bold")(u)},{label:"I",title:t.italic,get:()=>!!o(u=>!!u.style?.italic),set:u=>l("italic")(u)},{label:"U",title:t.underline,get:()=>!!o(u=>!!u.style?.underline),set:u=>l("underline")(u)},{label:"S",title:t.strike,get:()=>!!o(u=>!!u.style?.strike),set:u=>l("strike")(u)}]}),i.push({label:t.align,kind:"select",options:[{value:"left",label:t.left},{value:"center",label:t.center},{value:"right",label:t.right},{value:"justify",label:t.justify}],get:()=>o(u=>u.style?.align)??"left",set:u=>l("align")(u==="left"?void 0:u)}),i.push({label:t.valign,kind:"select",options:[{value:"top",label:t.top},{value:"middle",label:t.middle},{value:"bottom",label:t.bottom}],get:()=>o(u=>u.style?.valign)??"middle",set:u=>l("valign")(u==="middle"?void 0:u)}),i.push({label:t.color,kind:"color",get:()=>o(u=>u.style?.color)??"#000000",set:u=>l("color")(u==="#000000"?void 0:u)}),i.push({label:t.background,kind:"color",get:()=>o(u=>u.style?.background)??"",set:l("background")});let c=xr(r.style);i.push({label:t.border,kind:"toggles",toggles:[{label:"\u25A3",title:t.all,get:()=>!!(c.top&&c.right&&c.bottom&&c.left),set:u=>["top","right","bottom","left"].forEach(y=>Gt(e,y,u))},{label:"\u2594",title:t.top,get:()=>!!c.top,set:u=>Gt(e,"top",u)},{label:"\u2581",title:t.bottom,get:()=>!!c.bottom,set:u=>Gt(e,"bottom",u)},{label:"\u258F",title:t.left,get:()=>!!c.left,set:u=>Gt(e,"left",u)},{label:"\u2595",title:t.right,get:()=>!!c.right,set:u=>Gt(e,"right",u)}]});let f=(u,y)=>s(R=>{let M=yn(R.style),$=xr(R.style);if(M.mode==="none")return;let v=`${u??M.width} solid ${y??M.color}`,T=$.top&&$.right&&$.bottom&&$.left;R.style={...R.style,border:T?v:Object.fromEntries(Object.entries($).filter(([,x])=>x).map(([x])=>[x,v]))}});i.push({label:t.borderWidth,kind:"number",step:.05,get:()=>yn(r.style).width,set:u=>f(Se(u))}),i.push({label:t.borderColor,kind:"color",get:()=>yn(r.style).color,set:u=>f(void 0,String(u))}),i.push({label:t.padding,kind:"number",step:.5,get:()=>{let u=r.style?.padding;return typeof u=="number"?u:u?u[1]:1},set:u=>l("padding")(Se(u)===1?void 0:Se(u))}),i.push({label:t.wrap,kind:"check",get:()=>o(u=>u.style?.wrap!==!1),set:u=>l("wrap")(u?void 0:!1)}),i.push({label:t.shrink,kind:"check",get:()=>!!o(u=>!!u.style?.shrinkToFit),set:u=>l("shrinkToFit")(u)}),i.push({label:t.canGrow,kind:"check",get:()=>o(u=>u.canGrow!==!1),set:u=>s(y=>u?delete y.canGrow:y.canGrow=!1)})}return i.push({label:t.visible,kind:"expr",wide:!0,get:()=>o(c=>c.visible??"")??"",set:c=>s(f=>c?f.visible=String(c):delete f.visible)}),i}function fs(e,t,n,r,o){let s=[{label:`${n.band}: ${t}`,kind:"section"},{label:n.height,kind:"number",step:.5,min:1,get:()=>e.height,set:a=>e.height=Math.max(1,Wt(Se(a)))},{label:n.bandGrow,kind:"check",get:()=>e.canGrow!==!1,set:a=>a?delete e.canGrow:e.canGrow=!1},{label:n.bandBg,kind:"color",get:()=>e.background??"",set:a=>a?e.background=String(a):delete e.background}];return o&&(s.push({label:n.altBg,kind:"color",get:()=>e.altBackground??"",set:a=>a?e.altBackground=String(a):delete e.altBackground}),s.push({label:n.columns,kind:"number",step:1,min:1,get:()=>e.columns??1,set:a=>Se(a)>1?e.columns=Math.floor(Se(a)):delete e.columns}),s.push({label:n.columnGap,kind:"number",step:.5,min:0,get:()=>e.columnGap??0,set:a=>Se(a)?e.columnGap=Se(a):delete e.columnGap})),s.push({label:n.breakBefore,kind:"check",get:()=>!!e.pageBreakBefore,set:a=>a?e.pageBreakBefore=!0:delete e.pageBreakBefore},{label:n.breakAfter,kind:"check",get:()=>!!e.pageBreakAfter,set:a=>a?e.pageBreakAfter=!0:delete e.pageBreakAfter},{label:n.visible,kind:"expr",wide:!0,get:()=>e.visible??"",set:a=>a?e.visible=String(a):delete e.visible}),r&&s.push({label:n.group,kind:"section"},{label:n.by,kind:"expr",wide:!0,get:()=>r.by,set:a=>r.by=String(a)},{label:n.groupSort,kind:"select",options:[{value:"",label:n.keep},{value:"asc",label:n.asc},{value:"desc",label:n.desc}],get:()=>r.sort??"",set:a=>a?r.sort=a:delete r.sort},{label:n.newPage,kind:"check",get:()=>!!r.newPage,set:a=>a?r.newPage=!0:delete r.newPage},{label:n.repeatHeader,kind:"check",get:()=>!!r.repeatHeader,set:a=>a?r.repeatHeader=!0:delete r.repeatHeader},{label:n.resetPage,kind:"check",get:()=>!!r.resetPageNumber,set:a=>a?r.resetPageNumber=!0:delete r.resetPageNumber}),s}function ds(e,t){let n=e.page??(e.page={}),r=()=>{let i=n.margins??15;return typeof i=="number"?`${i}`:i.join(" ")},o=()=>typeof e.watermark=="string"?{text:e.watermark}:Array.isArray(e.watermark)?e.watermark[0]??{}:e.watermark??{},s=i=>{let p={...o(),...i};for(let d of Object.keys(p))(p[d]===void 0||p[d]===""||p[d]===!1)&&delete p[d];!p.text&&!p.image?delete e.watermark:e.watermark=Object.keys(p).length===1?String(p.text):p},a=()=>Array.isArray(e.emboss)?e.emboss[0]??{}:e.emboss??{},l=i=>{let p={...a(),...i};for(let d of Object.keys(p))(p[d]===void 0||p[d]==="")&&delete p[d];!p.text&&!p.centerText&&!p.image?delete e.emboss:e.emboss=p};return[{label:t.report,kind:"section"},{label:t.name,kind:"text",wide:!0,get:()=>e.name??"",set:i=>e.name=String(i)},{label:t.size,kind:"select",options:Object.keys(ot).map(i=>({value:i,label:`${i} (${ot[i][0]}\xD7${ot[i][1]})`})),get:()=>Array.isArray(n.size)?"A4":n.size??"A4",set:i=>n.size=i},{label:t.orientation,kind:"select",options:[{value:"portrait",label:t.portrait},{value:"landscape",label:t.landscape}],get:()=>n.orientation??"portrait",set:i=>n.orientation=i},{label:t.margins,kind:"text",wide:!0,get:r,set:i=>{let p=String(i).trim().split(/[\s,]+/).map(Number).filter(Number.isFinite);n.margins=p.length>=4?[p[0],p[1],p[2],p[3]]:p.length?p[0]:15}},{label:t.font,kind:"select",options:cs.map(i=>({value:i,label:i})),get:()=>e.font?.family??"Nanum Gothic",set:i=>e.font={...e.font,family:String(i)}},{label:t.fontSize,kind:"number",step:.5,get:()=>e.font?.size??9,set:i=>e.font={...e.font,size:Se(i)||9}},{label:t.dataSource,kind:"text",placeholder:"rows",get:()=>e.dataSource??"",set:i=>i?e.dataSource=String(i):delete e.dataSource},{label:t.sort,kind:"text",wide:!0,get:()=>(e.sort??[]).join(", "),set:i=>{let p=String(i).split(",").map(d=>d.trim()).filter(Boolean);p.length?e.sort=p:delete e.sort}},{label:t.filter,kind:"expr",wide:!0,get:()=>e.filter??"",set:i=>i?e.filter=String(i):delete e.filter},{label:t.fillEmpty,kind:"check",get:()=>!!e.fillEmptyRows,set:i=>i?e.fillEmptyRows=!0:delete e.fillEmptyRows},{label:t.skipHeader,kind:"check",get:()=>!!e.pageHeaderSkipFirst,set:i=>i?e.pageHeaderSkipFirst=!0:delete e.pageHeaderSkipFirst},{label:t.watermark,kind:"text",wide:!0,placeholder:'\uC0AC\uBCF8 / {params.user} {format(now(), "yyyy-MM-dd HH:mm")}',get:()=>o().text??"",set:i=>s({text:String(i)})},{label:t.wmRepeat,kind:"check",get:()=>!!o().repeat,set:i=>s({repeat:!!i||void 0})},{label:t.wmOpacity,kind:"number",step:.02,min:0,get:()=>o().opacity??.12,set:i=>s({opacity:Se(i)})},{label:t.emboss,kind:"text",wide:!0,placeholder:"(\uC8FC)\uD68C\uC0AC\uBA85 \xB7 COMPANY \xB7",get:()=>a().text??"",set:i=>l({text:String(i)})},{label:t.embossCenter,kind:"text",get:()=>a().centerText??"",set:i=>l({centerText:String(i)})},{label:t.params,kind:"json",wide:!0,get:()=>e.params?JSON.stringify(e.params,null,2):"",set:i=>{let p=String(i).trim();if(!p){delete e.params;return}e.params=JSON.parse(p)}}]}function kr(e,t){if(!e.trim())return"";let n=Dn(e);return n?`${t.errorExpr}: ${n}`:""}var Li=96/25.4,vr={ko:{title:"\uC81C\uBAA9",pageHeader:"\uD398\uC774\uC9C0 \uBA38\uB9AC\uAE00",columnHeader:"\uC5F4 \uBA38\uB9AC\uAE00",groupHeader:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00",detail:"\uC0C1\uC138",groupFooter:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00",summary:"\uC694\uC57D (\uD569\uACC4)",pageFooter:"\uD398\uC774\uC9C0 \uBC14\uB2E5\uAE00",noData:"\uC790\uB8CC \uC5C6\uC74C"},en:{title:"Title",pageHeader:"Page header",columnHeader:"Column header",groupHeader:"Group header",detail:"Detail",groupFooter:"Group footer",summary:"Summary",pageFooter:"Page footer",noData:"No data"}},Fi={ko:{design:"\uB514\uC790\uC778",preview:"\uBBF8\uB9AC\uBCF4\uAE30",json:"JSON",newReport:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",open:"\uC5F4\uAE30",save:"\uC800\uC7A5",undo:"\uC2E4\uD589 \uCDE8\uC18C",redo:"\uB2E4\uC2DC \uC2E4\uD589",cut:"\uC798\uB77C\uB0B4\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30",del:"\uC0AD\uC81C",dup:"\uBCF5\uC81C",alignL:"\uC67C\uCABD \uB9DE\uCDA4",alignC:"\uAC00\uC6B4\uB370 \uB9DE\uCDA4",alignR:"\uC624\uB978\uCABD \uB9DE\uCDA4",alignT:"\uC704 \uB9DE\uCDA4",alignM:"\uC911\uAC04 \uB9DE\uCDA4",alignB:"\uC544\uB798 \uB9DE\uCDA4",sameW:"\uAC19\uC740 \uB108\uBE44",sameH:"\uAC19\uC740 \uB192\uC774",grid:"\uACA9\uC790\uC5D0 \uB9DE\uCDA4",toolbox:"\uB3C4\uAD6C",fields:"\uB370\uC774\uD130 \uD544\uB4DC",bands:"\uBC34\uB4DC",addGroup:"\uADF8\uB8F9 \uCD94\uAC00",apply:"\uC801\uC6A9",props:"\uC18D\uC131",tools:{text:"\uD14D\uC2A4\uD2B8",field:"\uD544\uB4DC",line:"\uC120",rect:"\uC0AC\uAC01\uD615",image:"\uC774\uBBF8\uC9C0",barcode:"\uBC14\uCF54\uB4DC",qr:"QR \uCF54\uB4DC",chart:"\uCC28\uD2B8",table:"\uD45C (\uBAA9\uB85D)",crosstab:"\uD06C\uB85C\uC2A4\uD0ED",pageNumber:"\uCABD \uBC88\uD638",today:"\uC624\uB298 \uB0A0\uC9DC"},noFields:"\uB370\uC774\uD130\uB97C \uC5F0\uACB0\uD558\uBA74 \uD544\uB4DC\uAC00 \uB098\uC635\uB2C8\uB2E4",confirmNew:"\uD604\uC7AC \uBCF4\uACE0\uC11C\uB97C \uC9C0\uC6B0\uACE0 \uC0C8\uB85C \uB9CC\uB4E4\uAE4C\uC694?",jsonError:"JSON \uC624\uB958",add:"\uCD94\uAC00",remove:"\uC0AD\uC81C",params:"\uD30C\uB77C\uBBF8\uD130",dropHint:"\uB3C4\uAD6C\uB098 \uD544\uB4DC\uB97C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694"},en:{design:"Design",preview:"Preview",json:"JSON",newReport:"New",open:"Open",save:"Save",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",del:"Delete",dup:"Duplicate",alignL:"Align left",alignC:"Align center",alignR:"Align right",alignT:"Align top",alignM:"Align middle",alignB:"Align bottom",sameW:"Same width",sameH:"Same height",grid:"Snap to grid",toolbox:"Toolbox",fields:"Data fields",bands:"Bands",addGroup:"Add group",apply:"Apply",props:"Properties",tools:{text:"Text",field:"Field",line:"Line",rect:"Rectangle",image:"Image",barcode:"Barcode",qr:"QR code",chart:"Chart",table:"Table",crosstab:"Crosstab",pageNumber:"Page number",today:"Today"},noFields:"Connect data to list its fields",confirmNew:"Discard this report and start a new one?",jsonError:"JSON error",add:"Add",remove:"Remove",params:"Parameters",dropHint:"Drop tools or fields here"}},Di={new:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4M12 11v6M9 14h6",open:"M3 7a1 1 0 0 1 1-1h5l2 2h8a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",save:"M5 4h11l3 3v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM8 4v5h7V4M8 20v-6h8v6",undo:"M9 14L4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",redo:"M15 14l5-5-5-5M20 9H10a6 6 0 0 0 0 12h3",cut:"M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM20 4L8.1 15.9M14.5 14.5L20 20M8.1 8.1L12 12",copy:"M9 9h10v12H9zM5 15V3h10",paste:"M9 4h6v3H9zM7 5H5v16h14V5h-2",del:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",alignL:"M4 3v18M8 7h12M8 15h7",alignC:"M12 3v18M6 7h12M8.5 15h7",alignR:"M20 3v18M4 7h12M9 15h7",alignT:"M3 4h18M7 8v12M15 8v7",alignM:"M3 12h18M7 6v12M15 8.5v7",alignB:"M3 20h18M7 4v12M15 9v7",sameW:"M4 8h16M4 16h16M4 5v6M20 5v6M4 13v6M20 13v6",sameH:"M8 4v16M16 4v16M5 4h6M5 20h6M13 4h6M13 20h6",grid:"M4 4h16v16H4zM4 9.3h16M4 14.6h16M9.3 4v16M14.6 4v16",text:"M5 6V4h14v2M12 4v16M9 20h6",field:"M4 7h16v10H4zM8 11h8",line:"M4 20L20 4",rect:"M4 6h16v12H4z",image:"M4 5h16v14H4zM4 15l4-4 4 4 3-3 5 5M15 9.5a1.5 1.5 0 1 0 0-.01",barcode:"M4 5v14M7 5v14M9 5v14M12 5v14M15 5v14M17 5v14M20 5v14",qr:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 18h2v2h-2zM14 18h2M18 14h2",chart:"M4 20V10M10 20V4M16 20v-7M2 20h20",pageNumber:"M7 3h7l4 4v14H7zM10 14h1v4M13 14h2v4h-2",table:"M4 5h16v14H4zM4 10h16M4 14.5h16M10 5v14",crosstab:"M4 4h16v16H4zM4 9h16M9 4v16M14 9v11M9 14.5h11",today:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",plus:"M12 5v14M5 12h14",minus:"M5 12h14",x:"M6 6l12 12M18 6L6 18"},Le=e=>`<svg viewBox="0 0 24 24" width="17" height="17" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="${Di[e]}"/></svg>`,$r=e=>typeof e=="string"&&rn(e)?e.replace(/[^#\w(),.\s%]/g,""):"transparent",Ii=e=>String(e??"").replace(/[^\p{L}\p{N} _-]/gu,""),ye=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),we=(e,t=.01)=>Math.round(e/t)*t,Bi=["text","field","line","rect","image","barcode","qr","chart","table","crosstab","pageNumber","today"];function ps(e,t){let[n]=e.key.split(":"),r=vr[t][n];return e.group?`${r} \xB7 ${e.group.by}`:r}function Ni(e){return e.split(":")[0]}function Hi(e,t={}){let n=t.lang??"ko",r=ls[n],o=Fi[n],s=Ie(t.definition??bn());xt(s);let a=t.data??{},l=t.zoom??1,i=1,p="design",d=new Set,b=null,c=[],f=[JSON.stringify(s)],u=[],y=null,R,M=$t();e.classList.add("fr-designer"),e.tabIndex=-1,e.innerHTML=`
|
|
85
|
+
<div class="fr-status" aria-live="polite"><span class="fr-status-text"></span><a class="fr-badge" href="https://freereport.app/pricing/" target="_blank" rel="noopener" hidden>FreeReport \xB7 \uBB34\uB8CC \uC0AC\uC6A9</a></div>`;let u=g=>e.querySelector(g),d=u(".fr-body"),h=u(".fr-pages"),$=u(".fr-overlay"),x=u(".fr-status-text"),v=u(".fr-pageno input"),M=u(".fr-total"),j=u(".fr-zoom"),y=u(".fr-params"),A=u(".fr-params-toggle"),T=u('[data-act="menu"]'),I=u(".fr-menu-list"),V=u(".fr-overlay-text"),oe=g=>{$.hidden=g===null,V.textContent=g??""},z=g=>{!y||!A||(y.hidden=!g,A.setAttribute("aria-expanded",String(g)))};z(t.paramsOpen??Object.entries(o.params??{}).some(([,g])=>g.required&&g.default===void 0));let ae=null,ke=()=>{if(!i)return 1;let g=Math.max(100,d.clientWidth-48),L=Math.max(100,d.clientHeight-32);return f==="width"?Math.min(1.25,g/(i.width*pt)):f==="page"?Math.min(g/(i.width*pt),L/(i.height*pt)):f},U=g=>{if(!i||g.dataset.drawn)return;let L=Number(g.dataset.index);g.innerHTML=Ke(i.pages[L],{className:"fr-page-svg"}),g.dataset.drawn="1",bt(g)},le=()=>{if(!i)return;p=ke();let g=i.width*pt*p,L=i.height*pt*p;if(h.style.setProperty("--fr-page-w",`${g}px`),h.style.setProperty("--fr-page-h",`${L}px`),j){let W=typeof f=="number"?String(f):f,B=[...j.options].some(se=>se.value===W),te=j.querySelector('option[value="custom"]');te.hidden=B,te.textContent=`${Math.round(p*100)}%`,j.value=B?W:"custom"}},me=()=>{if(ae?.disconnect(),h.innerHTML="",!i)return;if(!i.pages.length){h.innerHTML=`<p class="fr-empty">${n.empty}</p>`;return}let g=document.createDocumentFragment();i.pages.forEach((te,se)=>{let he=document.createElement("div");he.className="fr-page",he.dataset.index=String(se),he.dataset.page=String(se+1),he.setAttribute("aria-label",`${n.page} ${se+1}`),g.appendChild(he)}),h.appendChild(g),le(),ae=typeof IntersectionObserver<"u"?new IntersectionObserver(te=>{for(let se of te)se.isIntersecting&&U(se.target);_()},{root:d,rootMargin:"600px 0px"}):null;let L=h.querySelectorAll(".fr-page");L.forEach((te,se)=>ae?ae.observe(te):se<3&&U(te));let W=i.height*pt*p+ls,B=Math.min(L.length-1,Math.max(0,Math.floor(d.scrollTop/W)));for(let te=B;te<Math.min(L.length,B+1+Math.ceil(d.clientHeight/W));te++)U(L[te]);M&&(M.textContent=`/ ${i.pages.length}`),w="",ee=[],x.textContent=`${n.pages(i.pages.length)} \xB7 ${n.rows(i.rowCount)} \xB7 ${i.ms}ms`,_()},_=()=>{if(!i)return;let g=i.height*pt*p+ls;b=Math.min(i.pages.length-1,Math.max(0,Math.round(d.scrollTop/g))),v&&document.activeElement!==v&&(v.value=String(b+1)),Y()},ue=-1,Y=()=>{if(!(!i?.pages.length||b===ue)){ue=b;try{t.onPageChange?.(b+1,i.pages.length)}catch(g){console.error(g)}}},H=(g,L)=>{let W=g instanceof Error?g:new Error(String(g));console.error(W);try{t.onError?.(W,L)}catch(B){console.error(B)}return W},O=g=>{if(!i)return;let L=Math.min(i.pages.length-1,Math.max(0,g)),W=h.children[L];W&&(d.scrollTop=W.offsetTop-h.offsetTop),b=L,v&&(v.value=String(L+1)),Y()},X=g=>{let L=i?d.scrollTop/Math.max(1,d.scrollHeight):0;f=typeof g=="number"?Math.min(4,Math.max(.25,g)):g,le(),d.scrollTop=L*d.scrollHeight},ie=0,ge=0,ye=Promise.resolve(),Z=!1,J=0,fe=null,de=()=>{l||(e.dataset.frState=Z||J?"busy":fe??"busy")},pe=g=>{Z=!1,fe=g,e.dataset.frRun=String(++ge),de()},ce=async g=>{oe(n.loading),Z=!0,de();let L="data",W=()=>g!==ie;try{if(t.fetchData){let B=await t.fetchData(a);if(W())return await ye;c.setData(B)}if(L="layout",c.setParams(a),await rt(c.definition),l)return;if(W())return await ye;i=c.layout(),ue=-1,me(),pe("ready");try{t.onReady?.({pages:i.pages.length,rows:i.rowCount,ms:i.ms,params:{...a}})}catch(B){console.error(B)}}catch(B){if(W())return await ye;if(l)return;let te=H(B,L);h.innerHTML=`<p class="fr-empty">${n.error}: ${We(te.message)}</p>`,pe("error")}finally{W()||oe(null)}},R=()=>ye=ce(++ie),N=async g=>{oe(n.exporting);try{await c.download(g,t.fileName)}catch(L){D(`${n.error}: ${H(L,"output").message}`)}finally{oe(null)}},D=g=>{x.textContent=g},C=()=>{!I||!T||(I.hidden=!0,T.setAttribute("aria-expanded","false"))},ne=new AbortController;e.addEventListener("click",g=>{let L=g.target.closest("[data-act]");if(!L||!e.contains(L)){g.target.closest(".fr-menu")||C();return}let W=L.dataset.act;switch(W!=="menu"&&C(),W){case"first":O(0);break;case"prev":O(b-1);break;case"next":O(b+1);break;case"last":O((i?.pages.length??1)-1);break;case"zoomIn":X(Math.round((p+.1)*10)/10);break;case"zoomOut":X(Math.round((p-.1)*10)/10);break;case"print":c.print().catch(B=>D(`${n.error}: ${H(B,"output").message}`));break;case"pdf":N("pdf");break;case"xlsx":N("xlsx");break;case"xlsxData":N("xlsx-data");break;case"csv":N("csv");break;case"hwpx":N("hwpx");break;case"findNext":F(1);break;case"menu":{let B=I.hidden;I.hidden=!B,T.setAttribute("aria-expanded",String(B));break}}},{signal:ne.signal});let q=g=>{e.contains(g.target)||C()};document.addEventListener("click",q),A?.addEventListener("click",()=>z(y.hidden)),j?.addEventListener("change",()=>{let g=j.value;g!=="custom"&&X(g==="width"||g==="page"?g:Number(g))}),v?.addEventListener("change",()=>O(Number(v.value)-1)),v?.addEventListener("keydown",g=>{g.key==="Enter"&&O(Number(v.value)-1)}),d.addEventListener("scroll",()=>_(),{passive:!0}),d.addEventListener("keydown",g=>{g.key==="PageDown"||g.key==="ArrowRight"&&!g.altKey?(g.preventDefault(),O(b+1)):g.key==="PageUp"||g.key==="ArrowLeft"?(g.preventDefault(),O(b-1)):g.key==="Home"&&g.ctrlKey?(g.preventDefault(),O(0)):g.key==="End"&&g.ctrlKey?(g.preventDefault(),O((i?.pages.length??1)-1)):(g.ctrlKey||g.metaKey)&&g.key.toLowerCase()==="p"?(g.preventDefault(),c.print()):(g.ctrlKey||g.metaKey)&&g.key.toLowerCase()==="f"&&S?(g.preventDefault(),S.focus(),S.select()):(g.ctrlKey||g.metaKey)&&(g.key==="+"||g.key==="=")?(g.preventDefault(),X(p+.1)):(g.ctrlKey||g.metaKey)&&g.key==="-"&&(g.preventDefault(),X(p-.1))}),d.addEventListener("wheel",g=>{g.ctrlKey&&(g.preventDefault(),X(Math.round(p*(g.deltaY<0?1.1:1/1.1)*100)/100))},{passive:!1}),y?.addEventListener("submit",async g=>{g.preventDefault();let L={...a};y.querySelectorAll("input, select").forEach(B=>{let te=B.dataset.type,se=B.value;L[B.name]=te==="number"?se===""?null:Number(se):te==="boolean"?se==="true":se}),J++,de();let W;try{W=await t.onParamsSubmit?.({...L})}catch(B){H(B,"data"),J--,de();return}if(J--,W===!1){de();return}a=W&&typeof W=="object"?{...L,...W}:L,R()});let G=typeof ResizeObserver<"u"?new ResizeObserver(()=>{typeof f!="number"&&le()}):null;G?.observe(d);let S=u(".fr-search input"),Q=u(".fr-search-count"),ee=[],m=-1,w="",E=1,k=g=>{if(ee=[],!i||!g)return;let L=g.toLowerCase();i.pages.forEach((W,B)=>{for(let te of W.items)if(!(te.kind!=="text"||te.source?.band==="watermark"))for(let se of te.lines){let he=se.text.toLowerCase().indexOf(L);if(he<0)continue;let Fe=[...se.text].length||1,tt=te.font.size*(25.4/72);ee.push({page:B,x:se.x+se.width*he/Fe,y:se.y-tt*.85,w:Math.max(1,se.width*[...g].length/Fe),h:tt*1.1*E})}})},P=()=>{if(h.querySelectorAll(".fr-hit").forEach(se=>se.remove()),!i||m<0||!ee[m])return;let g=ee[m];O(g.page);let L=h.children[g.page];U(L);let W=document.createElement("div");W.className="fr-hit";let B=L.clientWidth/i.width,te=L.clientHeight/i.height;Object.assign(W.style,{left:`${g.x*B}px`,top:`${g.y*te}px`,width:`${g.w*B}px`,height:`${g.h*te}px`}),L.appendChild(W),d.scrollTop=L.offsetTop-h.offsetTop+g.y*te-d.clientHeight/3},F=g=>{let L=S?.value.trim()??"";if(L!==w&&(w=L,k(L),m=-1),!ee.length){Q&&(Q.textContent=L?n.findNone:""),P();return}m=(m+g+ee.length)%ee.length,Q&&(Q.textContent=n.findCount(m+1,ee.length)),P()};return S?.addEventListener("keydown",g=>{g.key==="Enter"?(g.preventDefault(),F(g.shiftKey?-1:1)):g.key==="Escape"&&(S.value="",F(1),d.focus())}),S?.addEventListener("input",()=>{S.value||F(1)}),Wr(t.licenseKey).then(g=>{let L=u(".fr-badge");L&&g&&(L.hidden=!1)}),R(),{report:c,refresh:R,async setData(g){c.setData(g),await R()},async setParams(g){a={...a,...g},await R()},async setDefinition(g){c.setDefinition(g);let L=u(".fr-params");if(L){let W={};for(let[B,te]of Object.entries(g.params??{}))W[B]=a[B]??te.default;a=W,L.innerHTML=`${Object.entries(g.params??{}).map(([B,te])=>cs(B,te,a[B],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button>`}await R()},goTo:g=>O(g-1),setZoom:X,print:()=>c.print(),destroy(){l=!0,ae?.disconnect(),G?.disconnect(),document.removeEventListener("click",q),ne.abort(),e.innerHTML="",e.classList.remove("fr-viewer"),delete e.dataset.frState,delete e.dataset.frRun}}}function Ue(e){let t=e.bands,n=[],r=(o,s,a,c)=>{s&&n.push({key:o,band:s,group:a,groupIndex:c})};return r("title",t.title),r("pageHeader",t.pageHeader),r("columnHeader",t.columnHeader),(t.groups??[]).forEach((o,s)=>r(`groupHeader:${s}`,o.header,o,s)),r("detail",t.detail),[...t.groups??[]].map((o,s)=>[o,s]).reverse().forEach(([o,s])=>r(`groupFooter:${s}`,o.footer,o,s)),r("summary",t.summary),r("noData",t.noData),r("pageFooter",t.pageFooter),n}function Te(e,t){let[n,r]=t.split(":");return n==="groupHeader"?e.bands.groups?.[Number(r)]?.header:n==="groupFooter"?e.bands.groups?.[Number(r)]?.footer:e.bands[n]}function kr(e,t,n){let[r,o]=t.split(":");if(r==="groupHeader"||r==="groupFooter"){let a=e.bands.groups?.[Number(o)];if(!a)return;r==="groupHeader"?a.header=n:a.footer=n;return}let s=r;n?e.bands[s]=n:delete e.bands[s]}var us=0;function vt(e){let t=new Set;for(let r of Ue(e))for(let o of r.band.elements)o.id&&t.add(o.id);let n=new Set;for(let r of Ue(e))for(let o of r.band.elements){if(o.id&&/^[\w:.-]{1,64}$/.test(String(o.id))&&!n.has(o.id)){n.add(o.id);continue}let s;do s=`e${++us}`;while(t.has(s));t.add(s),n.add(s),o.id=s}}function Mt(e){let t=new Set(Ue(e).flatMap(r=>r.band.elements.map(o=>o.id))),n;do n=`e${++us}`;while(t.has(n));return n}function je(e,t){for(let n of Ue(e)){let r=n.band.elements.findIndex(o=>o.id===t);if(r>=0)return{slot:n,el:n.band.elements[r],index:r}}return null}function fs(e,t,n,r,o,s){let a=Math.min(Math.max(o,5),8);switch(e){case"field":return{id:t,type:"field",x:n,y:r,w:30,h:a,expr:s??"field",style:void 0};case"line":return{id:t,type:"line",x:n,y:r,w:40,h:0,width:.2};case"rect":return{id:t,type:"rect",x:n,y:r,w:30,h:15,width:.2};case"image":return{id:t,type:"image",x:n,y:r,w:25,h:15,src:"",fit:"contain"};case"barcode":return{id:t,type:"barcode",x:n,y:r,w:45,h:12,expr:"'ABC-12345'",format:"code128"};case"qr":return{id:t,type:"barcode",x:n,y:r,w:18,h:18,expr:"'https://freereport.app'",format:"qr"};case"chart":return{id:t,type:"chart",x:n,y:r,w:90,h:50,chartType:"bar",category:s??"name",series:[{expr:"value"}]};case"table":return{id:t,type:"table",x:n,y:r,w:120,h:18,source:"items",columns:[{header:"\uD488\uBAA9",expr:"name"},{header:"\uC218\uB7C9",expr:"qty",width:20,format:"#,##0"},{header:"\uAE08\uC561",expr:"amount",width:30,format:"#,##0",sum:!0}]};case"crosstab":return{id:t,type:"crosstab",x:n,y:r,w:150,h:30,rowKey:s??"region",columnKey:"category",value:"amount",corner:""};case"pageNumber":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{page} / {pages}",style:{align:"center"}};case"today":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{format(today(), 'yyyy-MM-dd')}"};default:return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"\uD14D\uC2A4\uD2B8"}}}var Be=e=>{if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};function wn(){return{version:1,name:"\uC0C8 \uBCF4\uACE0\uC11C",page:{size:"A4",orientation:"portrait",margins:15},font:{family:"Nanum Gothic",size:9},bands:{title:{height:14,elements:[{id:"e1",type:"text",x:0,y:0,w:180,h:12,text:"\uBCF4\uACE0\uC11C \uC81C\uBAA9",style:{fontSize:16,bold:!0,align:"center"}}]},columnHeader:{height:7,elements:[]},detail:{height:6,elements:[]},summary:{height:8,elements:[]},pageFooter:{height:8,elements:[{id:"e2",type:"text",x:0,y:1,w:180,h:6,text:"{page} / {pages}",style:{align:"center",fontSize:8}}]}}}}var ds={ko:{report:"\uBCF4\uACE0\uC11C",name:"\uC774\uB984",page:"\uC6A9\uC9C0",size:"\uD06C\uAE30",orientation:"\uBC29\uD5A5",portrait:"\uC138\uB85C",landscape:"\uAC00\uB85C",margins:"\uC5EC\uBC31 (\uC0C1 \uC6B0 \uD558 \uC88C, mm)",font:"\uAE30\uBCF8 \uAE00\uAF34",fontSize:"\uAE00\uC790 \uD06C\uAE30 (pt)",dataSource:"\uB370\uC774\uD130 \uBC30\uC5F4 \uC774\uB984",sort:"\uC815\uB82C (\uC27C\uD45C\uB85C \uAD6C\uBD84, -\uB294 \uB0B4\uB9BC\uCC28\uC21C)",filter:"\uD544\uD130 \uC2DD",fillEmpty:"\uBE48 \uD589\uC73C\uB85C \uD398\uC774\uC9C0 \uCC44\uC6B0\uAE30",skipHeader:"\uCCAB \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uC228\uAE30\uAE30",watermark:"\uC6CC\uD130\uB9C8\uD06C \uBB38\uAD6C",wmRepeat:"\uC804\uBA74 \uBC18\uBCF5 (\uBCF4\uC548 \uD328\uD134)",wmOpacity:"\uC6CC\uD130\uB9C8\uD06C \uBD88\uD22C\uBA85\uB3C4",emboss:"\uC5E0\uBCF4\uC2F1 \uBB38\uAD6C",embossCenter:"\uC5E0\uBCF4\uC2F1 \uAC00\uC6B4\uB370 \uAE00\uC790",params:"\uD30C\uB77C\uBBF8\uD130 (JSON)",position:"\uC704\uCE58\uC640 \uD06C\uAE30 (mm)",x:"X",y:"Y",w:"\uB108\uBE44",h:"\uB192\uC774",text:"\uD14D\uC2A4\uD2B8 (\uC911\uAD04\uD638 \uC548\uC740 \uC2DD: {amount:#,##0})",expr:"\uC2DD",format:"\uC11C\uC2DD (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"\uAC12\uC774 \uC5C6\uC744 \uB54C",suppress:"\uAC19\uC740 \uAC12 \uBC18\uBCF5 \uC228\uAE30\uAE30",visible:"\uD45C\uC2DC \uC870\uAC74 (\uC2DD)",canGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",stretch:"\uB192\uC774 \uB9DE\uCD94\uAE30",stretchAuto:"\uAE30\uBCF8 (\uBC34\uB4DC \uBC14\uB2E5\uC5D0 \uB2FF\uC73C\uBA74 \uBC34\uB4DC \uB192\uC774)",stretchBand:"\uBC34\uB4DC \uB192\uC774",stretchRow:"\uAC19\uC740 \uC904\uC758 \uAC00\uC7A5 \uB192\uC740 \uCE78",stretchNone:"\uB9DE\uCD94\uC9C0 \uC54A\uC74C",shift:"\uC704 \uC694\uC18C\uAC00 \uB298\uBA74 \uD568\uAED8 \uB0B4\uB824\uAC00\uAE30",collapse:"\uC228\uC73C\uBA74 \uC790\uB9AC \uC811\uAE30 (\uC544\uB798 \uC694\uC18C\uAC00 \uC62C\uB77C\uC634)",style:"\uC2A4\uD0C0\uC77C",bold:"\uAD75\uAC8C",italic:"\uAE30\uC6B8\uC784",underline:"\uBC11\uC904",strike:"\uCDE8\uC18C\uC120",color:"\uAE00\uC790\uC0C9",background:"\uBC30\uACBD\uC0C9",align:"\uAC00\uB85C \uC815\uB82C",valign:"\uC138\uB85C \uC815\uB82C",left:"\uC67C\uCABD",center:"\uAC00\uC6B4\uB370",right:"\uC624\uB978\uCABD",justify:"\uC591\uCABD",top:"\uC704",middle:"\uAC00\uC6B4\uB370",bottom:"\uC544\uB798",border:"\uD14C\uB450\uB9AC",none:"\uC5C6\uC74C",all:"\uBAA8\uB450",borderWidth:"\uD14C\uB450\uB9AC \uB450\uAED8 (mm)",borderColor:"\uD14C\uB450\uB9AC \uC0C9",padding:"\uC548\uCABD \uC5EC\uBC31 (mm)",wrap:"\uC904\uBC14\uAFC8",shrink:"\uAE00\uC790 \uC904\uC5EC \uB9DE\uCD94\uAE30",lineColor:"\uC120 \uC0C9",lineWidth:"\uC120 \uB450\uAED8 (mm)",dash:"\uC120 \uBAA8\uC591",solid:"\uC2E4\uC120",dashed:"\uD30C\uC120",dotted:"\uC810\uC120",fill:"\uCC44\uC6B0\uAE30",radius:"\uBAA8\uC11C\uB9AC \uB465\uAE00\uAE30",src:"\uC774\uBBF8\uC9C0 \uC8FC\uC18C",fit:"\uB9DE\uCDA4",contain:"\uBE44\uC728 \uC720\uC9C0",cover:"\uCC44\uC6B0\uAE30(\uC798\uB9BC)",stretchFit:"\uB298\uC774\uAE30",barcode:"\uBC14\uCF54\uB4DC \uC885\uB958",showText:"\uAC12 \uD45C\uC2DC",ecc:"\uC624\uB958 \uC815\uC815",chartType:"\uCC28\uD2B8 \uC885\uB958",source:"\uB370\uC774\uD130 (\uC2DD, \uBE44\uC6B0\uBA74 \uD604\uC7AC \uBC94\uC704)",category:"\uD56D\uBAA9 \uC2DD",series:"\uAC12 \uC2DD (\uC27C\uD45C\uB85C \uC5EC\uB7EC \uAC1C)",title:"\uC81C\uBAA9",legend:"\uBC94\uB840",showValues:"\uAC12 \uD45C\uC2DC",stacked:"\uB204\uC801",band:"\uBC34\uB4DC",height:"\uB192\uC774 (mm)",bandGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",bandBg:"\uBC30\uACBD\uC0C9",altBg:"\uC904\uBB34\uB2AC \uBC30\uACBD\uC0C9",breakBefore:"\uC55E\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",breakAfter:"\uB4A4\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",group:"\uADF8\uB8F9",by:"\uADF8\uB8F9 \uAE30\uC900 \uC2DD",groupSort:"\uADF8\uB8F9 \uC815\uB82C",asc:"\uC624\uB984\uCC28\uC21C",desc:"\uB0B4\uB9BC\uCC28\uC21C",keep:"\uC5C6\uC74C",newPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uC0C8 \uD398\uC774\uC9C0",repeatHeader:"\uB2E4\uC74C \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uBC18\uBCF5",resetPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uCABD \uBC88\uD638 \uC0C8\uB85C",multi:e=>`${e}\uAC1C \uC120\uD0DD\uB428`,errorExpr:"\uC2DD \uC624\uB958",id:"ID",rowHeight:"\uD589 \uB192\uC774 (mm)",showHeader:"\uBA38\uB9AC\uAE00 \uD45C\uC2DC",tableColumns:"\uC5F4 (JSON: header, expr, width, format, align, sum)",rowKey:"\uD589 \uAE30\uC900 \uC2DD",columnKey:"\uC5F4 \uAE30\uC900 \uC2DD",valueExpr:"\uAC12 \uC2DD",aggregate:"\uC9D1\uACC4",corner:"\uC67C\uCABD \uC704 \uC81C\uBAA9",totals:"\uD569\uACC4 \uD589\xB7\uC5F4",columns:"\uB2E4\uB2E8 (\uC5F4 \uC218, \uB77C\uBCA8 \uCD9C\uB825)",columnGap:"\uB2E8 \uC0AC\uC774 \uAC04\uACA9 (mm)"},en:{report:"Report",name:"Name",page:"Paper",size:"Size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins (top right bottom left, mm)",font:"Default font",fontSize:"Font size (pt)",dataSource:"Data array name",sort:"Sort (comma separated, - for descending)",filter:"Filter expression",fillEmpty:"Fill pages with blank rows",skipHeader:"Hide page header on first page",watermark:"Watermark text",wmRepeat:"Repeat over the page (security pattern)",wmOpacity:"Watermark opacity",emboss:"Emboss text",embossCenter:"Emboss centre text",params:"Parameters (JSON)",position:"Position and size (mm)",x:"X",y:"Y",w:"Width",h:"Height",text:"Text (expressions in braces: {amount:#,##0})",expr:"Expression",format:"Format (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"Text when empty",suppress:"Hide repeated values",visible:"Visible when (expression)",canGrow:"Grow to fit content",stretch:"Height",stretchAuto:"Default (band height when touching its bottom)",stretchBand:"Band height",stretchRow:"Tallest cell on the same row",stretchNone:"Own height",shift:"Move down when an element above grows",collapse:"Give the space back when hidden",style:"Style",bold:"Bold",italic:"Italic",underline:"Underline",strike:"Strikethrough",color:"Text color",background:"Background",align:"Horizontal align",valign:"Vertical align",left:"Left",center:"Center",right:"Right",justify:"Justify",top:"Top",middle:"Middle",bottom:"Bottom",border:"Border",none:"None",all:"All",borderWidth:"Border width (mm)",borderColor:"Border color",padding:"Padding (mm)",wrap:"Wrap text",shrink:"Shrink to fit",lineColor:"Line color",lineWidth:"Line width (mm)",dash:"Line style",solid:"Solid",dashed:"Dashed",dotted:"Dotted",fill:"Fill",radius:"Corner radius",src:"Image URL",fit:"Fit",contain:"Contain",cover:"Cover",stretchFit:"Stretch",barcode:"Barcode type",showText:"Show value",ecc:"Error correction",chartType:"Chart type",source:"Rows (expression, empty = current scope)",category:"Category expression",series:"Value expressions (comma separated)",title:"Title",legend:"Legend",showValues:"Show values",stacked:"Stacked",band:"Band",height:"Height (mm)",bandGrow:"Grow to fit content",bandBg:"Background",altBg:"Alternate row background",breakBefore:"Page break before",breakAfter:"Page break after",group:"Group",by:"Group by expression",groupSort:"Sort groups",asc:"Ascending",desc:"Descending",keep:"None",newPage:"New page per group",repeatHeader:"Repeat header on next page",resetPage:"Restart page numbers per group",multi:e=>`${e} selected`,errorExpr:"Expression error",id:"ID",rowHeight:"Row height (mm)",showHeader:"Show header",tableColumns:"Columns (JSON: header, expr, width, format, align, sum)",rowKey:"Row expression",columnKey:"Column expression",valueExpr:"Value expression",aggregate:"Aggregate",corner:"Corner title",totals:"Totals",columns:"Columns (labels)",columnGap:"Column gap (mm)"}},ps=["Nanum Gothic","Nanum Myeongjo","Malgun Gothic","Arial","Times New Roman","Courier New"],Se=e=>{let t=Number(e);return Number.isFinite(t)?t:0},Xt=e=>Math.round(e*100)/100;function xn(e){let t=e?.border;if(!t)return{mode:"none",width:.2,color:"#000000"};if(t===!0)return{mode:"all",width:.2,color:"#000000"};if(typeof t=="string"){let n=t.split(/\s+/);return{mode:"all",width:parseFloat(n.find(r=>/^[\d.]+$/.test(r))??"0.2"),color:n.find(r=>r.startsWith("#"))??"#000000"}}return"width"in t||"color"in t||"style"in t?{mode:"all",width:t.width??.2,color:t.color??"#000000"}:{mode:"mixed",width:.2,color:"#000000"}}function $r(e){let t=e?.border;if(!t)return{};if(t===!0||typeof t=="string"||"width"in t||"color"in t||"style"in t)return{top:!0,right:!0,bottom:!0,left:!0};let n=t;return{top:!!n.top,right:!!n.right,bottom:!!n.bottom,left:!!n.left}}function _t(e,t,n){for(let r of e){let o=xn(r.style),s=$r(r.style);s[t]=n;let a=`${o.width} solid ${o.color}`,c=s.top&&s.right&&s.bottom&&s.left,i=s.top||s.right||s.bottom||s.left;r.style={...r.style,border:c?a:i?Object.fromEntries(Object.entries(s).filter(([,f])=>f).map(([f])=>[f,a])):void 0},r.style.border||delete r.style.border}}function ms(e,t,n){let r=e[0],o=l=>{let u=l(r);return e.every(d=>l(d)===u)?u:void 0},s=l=>e.forEach(l),a=l=>()=>o(u=>u.style?.[l]),c=l=>u=>s(d=>{let h={...d.style};u===""||u===void 0||u===null||u===!1?delete h[l]:h[l]=u,d.style=Object.keys(h).length?h:void 0,d.style||delete d.style}),i=[];i.push({label:e.length>1?t.multi(e.length):`${r.type}${r.id?` \xB7 ${r.id}`:""}`,kind:"section"}),i.push({label:t.x,kind:"number",step:.5,get:()=>o(l=>l.x),set:l=>s(u=>u.x=Xt(Se(l)))},{label:t.y,kind:"number",step:.5,get:()=>o(l=>l.y),set:l=>s(u=>u.y=Xt(Se(l)))},{label:t.w,kind:"number",step:.5,get:()=>o(l=>l.w),set:l=>s(u=>u.w=Xt(Se(l)))},{label:t.h,kind:"number",step:.5,get:()=>o(l=>l.h),set:l=>s(u=>u.h=Xt(Se(l)))});let f=new Set(e.map(l=>l.type)),p=f.size===1?r.type:null;if(e.length===1){let l=r;l.type==="text"&&i.push({label:t.text,kind:"textarea",wide:!0,get:()=>l.text,set:u=>l.text=String(u)}),l.type==="field"&&(i.push({label:t.expr,kind:"expr",wide:!0,get:()=>l.expr,set:u=>l.expr=String(u)}),i.push({label:t.format,kind:"text",wide:!0,placeholder:"#,##0",get:()=>l.format??"",set:u=>u?l.format=String(u):delete l.format}),i.push({label:t.nullText,kind:"text",get:()=>l.nullText??"",set:u=>u?l.nullText=String(u):delete l.nullText}),i.push({label:t.suppress,kind:"check",get:()=>!!l.suppressRepeated,set:u=>u?l.suppressRepeated=!0:delete l.suppressRepeated})),l.type==="image"&&(i.push({label:t.src,kind:"text",wide:!0,get:()=>l.src??"",set:u=>l.src=String(u)}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>l.expr??"",set:u=>u?l.expr=String(u):delete l.expr}),i.push({label:t.fit,kind:"select",options:[{value:"contain",label:t.contain},{value:"cover",label:t.cover},{value:"fill",label:t.stretchFit}],get:()=>l.fit??"contain",set:u=>l.fit=u})),l.type==="barcode"&&(i.push({label:t.barcode,kind:"select",options:["code128","ean13","qr","datamatrix","pdf417"].map(u=>({value:u,label:u.toUpperCase()})),get:()=>l.format??"code128",set:u=>l.format=u}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>l.expr,set:u=>l.expr=String(u)}),i.push({label:t.showText,kind:"check",get:()=>l.showText!==!1,set:u=>u?delete l.showText:l.showText=!1}),i.push({label:t.ecc,kind:"select",options:["L","M","Q","H"].map(u=>({value:u,label:u})),get:()=>l.ecc??"M",set:u=>l.ecc=u})),l.type==="table"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>l.source,set:u=>l.source=String(u)}),i.push({label:t.rowHeight,kind:"number",step:.5,get:()=>l.rowHeight??6,set:u=>l.rowHeight=Se(u)||6}),i.push({label:t.showHeader,kind:"check",get:()=>l.showHeader!==!1,set:u=>u?delete l.showHeader:l.showHeader=!1}),i.push({label:t.altBg,kind:"color",get:()=>l.altBackground??"",set:u=>u?l.altBackground=String(u):delete l.altBackground}),i.push({label:t.tableColumns,kind:"json",wide:!0,get:()=>JSON.stringify(l.columns,null,1),set:u=>{let d=JSON.parse(String(u));if(!Array.isArray(d))throw new Error("array");l.columns=d}})),l.type==="crosstab"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>l.source??"",set:u=>u?l.source=String(u):delete l.source}),i.push({label:t.rowKey,kind:"expr",wide:!0,get:()=>l.rowKey,set:u=>l.rowKey=String(u)}),i.push({label:t.columnKey,kind:"expr",wide:!0,get:()=>l.columnKey,set:u=>l.columnKey=String(u)}),i.push({label:t.valueExpr,kind:"expr",wide:!0,get:()=>l.value,set:u=>l.value=String(u)}),i.push({label:t.aggregate,kind:"select",options:["sum","count","avg","min","max"].map(u=>({value:u,label:u})),get:()=>l.aggregate??"sum",set:u=>l.aggregate=u}),i.push({label:t.format,kind:"text",get:()=>l.format??"",set:u=>u?l.format=String(u):delete l.format}),i.push({label:t.corner,kind:"text",get:()=>l.corner??"",set:u=>l.corner=String(u)}),i.push({label:t.totals,kind:"check",get:()=>l.totals!==!1,set:u=>u?delete l.totals:l.totals=!1})),l.type==="chart"&&(i.push({label:t.chartType,kind:"select",options:["bar","hbar","line","area","pie","doughnut"].map(u=>({value:u,label:u})),get:()=>l.chartType,set:u=>l.chartType=u}),i.push({label:t.title,kind:"text",wide:!0,get:()=>l.title??"",set:u=>u?l.title=String(u):delete l.title}),i.push({label:t.source,kind:"expr",wide:!0,get:()=>l.source??"",set:u=>u?l.source=String(u):delete l.source}),i.push({label:t.category,kind:"expr",wide:!0,get:()=>l.category,set:u=>l.category=String(u)}),i.push({label:t.series,kind:"text",wide:!0,get:()=>l.series.map(u=>u.expr).join(", "),set:u=>l.series=String(u).split(",").map(d=>d.trim()).filter(Boolean).map((d,h)=>({...l.series[h],expr:d}))}),i.push({label:t.format,kind:"text",get:()=>l.format??"",set:u=>u?l.format=String(u):delete l.format}),i.push({label:t.legend,kind:"check",get:()=>l.legend??!1,set:u=>l.legend=!!u}),i.push({label:t.showValues,kind:"check",get:()=>!!l.showValues,set:u=>l.showValues=!!u}),i.push({label:t.stacked,kind:"check",get:()=>!!l.stacked,set:u=>l.stacked=!!u}))}if(p==="line"){let l=e;i.push({label:t.lineColor,kind:"color",get:()=>o(u=>u.color)??"#000000",set:u=>l.forEach(d=>d.color=String(u))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(u=>u.width)??.2,set:u=>l.forEach(d=>d.width=Se(u))}),i.push({label:t.dash,kind:"select",options:[{value:"solid",label:t.solid},{value:"dashed",label:t.dashed},{value:"dotted",label:t.dotted}],get:()=>o(u=>u.dash)??"solid",set:u=>l.forEach(d=>u==="solid"?delete d.dash:d.dash=u)})}if(p==="rect"){let l=e;i.push({label:t.fill,kind:"color",get:()=>o(u=>u.fill)??"",set:u=>l.forEach(d=>u?d.fill=String(u):delete d.fill)}),i.push({label:t.lineColor,kind:"color",get:()=>o(u=>u.color)??"#000000",set:u=>l.forEach(d=>d.color=String(u))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(u=>u.width)??.2,set:u=>l.forEach(d=>d.width=Se(u))}),i.push({label:t.radius,kind:"number",step:.5,get:()=>o(u=>u.radius)??0,set:u=>l.forEach(d=>Se(u)?d.radius=Se(u):delete d.radius)})}let b=[...f].every(l=>l==="text"||l==="field");if((b||p==="barcode"||p==="chart")&&(i.push({label:t.style,kind:"section"}),i.push({label:t.font,kind:"select",options:[{value:"",label:n.font?.family??"Nanum Gothic"},...ps.map(l=>({value:l,label:l}))],get:a("fontFamily"),set:c("fontFamily")}),i.push({label:t.fontSize,kind:"number",step:.5,min:4,get:()=>o(l=>l.style?.fontSize)??n.font?.size??9,set:l=>c("fontSize")(Se(l)||void 0)})),b){i.push({label:"",kind:"toggles",toggles:[{label:"B",title:t.bold,get:()=>!!o(d=>!!d.style?.bold),set:d=>c("bold")(d)},{label:"I",title:t.italic,get:()=>!!o(d=>!!d.style?.italic),set:d=>c("italic")(d)},{label:"U",title:t.underline,get:()=>!!o(d=>!!d.style?.underline),set:d=>c("underline")(d)},{label:"S",title:t.strike,get:()=>!!o(d=>!!d.style?.strike),set:d=>c("strike")(d)}]}),i.push({label:t.align,kind:"select",options:[{value:"left",label:t.left},{value:"center",label:t.center},{value:"right",label:t.right},{value:"justify",label:t.justify}],get:()=>o(d=>d.style?.align)??"left",set:d=>c("align")(d==="left"?void 0:d)}),i.push({label:t.valign,kind:"select",options:[{value:"top",label:t.top},{value:"middle",label:t.middle},{value:"bottom",label:t.bottom}],get:()=>o(d=>d.style?.valign)??"middle",set:d=>c("valign")(d==="middle"?void 0:d)}),i.push({label:t.color,kind:"color",get:()=>o(d=>d.style?.color)??"#000000",set:d=>c("color")(d==="#000000"?void 0:d)}),i.push({label:t.background,kind:"color",get:()=>o(d=>d.style?.background)??"",set:c("background")});let l=$r(r.style);i.push({label:t.border,kind:"toggles",toggles:[{label:"\u25A3",title:t.all,get:()=>!!(l.top&&l.right&&l.bottom&&l.left),set:d=>["top","right","bottom","left"].forEach(h=>_t(e,h,d))},{label:"\u2594",title:t.top,get:()=>!!l.top,set:d=>_t(e,"top",d)},{label:"\u2581",title:t.bottom,get:()=>!!l.bottom,set:d=>_t(e,"bottom",d)},{label:"\u258F",title:t.left,get:()=>!!l.left,set:d=>_t(e,"left",d)},{label:"\u2595",title:t.right,get:()=>!!l.right,set:d=>_t(e,"right",d)}]});let u=(d,h)=>s($=>{let x=xn($.style),v=$r($.style);if(x.mode==="none")return;let M=`${d??x.width} solid ${h??x.color}`,j=v.top&&v.right&&v.bottom&&v.left;$.style={...$.style,border:j?M:Object.fromEntries(Object.entries(v).filter(([,y])=>y).map(([y])=>[y,M]))}});i.push({label:t.borderWidth,kind:"number",step:.05,get:()=>xn(r.style).width,set:d=>u(Se(d))}),i.push({label:t.borderColor,kind:"color",get:()=>xn(r.style).color,set:d=>u(void 0,String(d))}),i.push({label:t.padding,kind:"number",step:.5,get:()=>{let d=r.style?.padding;return typeof d=="number"?d:d?d[1]:1},set:d=>c("padding")(Se(d)===1?void 0:Se(d))}),i.push({label:t.wrap,kind:"check",get:()=>o(d=>d.style?.wrap!==!1),set:d=>c("wrap")(d?void 0:!1)}),i.push({label:t.shrink,kind:"check",get:()=>!!o(d=>!!d.style?.shrinkToFit),set:d=>c("shrinkToFit")(d)}),i.push({label:t.canGrow,kind:"check",get:()=>o(d=>d.canGrow!==!1),set:d=>s(h=>d?delete h.canGrow:h.canGrow=!1)})}return i.push({label:t.stretch,kind:"select",options:[{value:"",label:t.stretchAuto},{value:"band",label:t.stretchBand},{value:"row",label:t.stretchRow},{value:"none",label:t.stretchNone}],get:()=>o(l=>l.stretch===void 0?"":l.stretch==="row"?"row":l.stretch?"band":"none"),set:l=>s(u=>l==="row"?u.stretch="row":l==="band"?u.stretch=!0:l==="none"?u.stretch=!1:delete u.stretch)}),i.push({label:t.shift,kind:"check",get:()=>o(l=>l.shift!==!1),set:l=>s(u=>l?delete u.shift:u.shift=!1)}),i.push({label:t.visible,kind:"expr",wide:!0,get:()=>o(l=>l.visible??"")??"",set:l=>s(u=>l?u.visible=String(l):delete u.visible)}),i.push({label:t.collapse,kind:"check",get:()=>o(l=>!!l.collapse),set:l=>s(u=>l?u.collapse=!0:delete u.collapse)}),i}function hs(e,t,n,r,o){let s=[{label:`${n.band}: ${t}`,kind:"section"},{label:n.height,kind:"number",step:.5,min:1,get:()=>e.height,set:a=>e.height=Math.max(1,Xt(Se(a)))},{label:n.bandGrow,kind:"check",get:()=>e.canGrow!==!1,set:a=>a?delete e.canGrow:e.canGrow=!1},{label:n.bandBg,kind:"color",get:()=>e.background??"",set:a=>a?e.background=String(a):delete e.background}];return o&&(s.push({label:n.altBg,kind:"color",get:()=>e.altBackground??"",set:a=>a?e.altBackground=String(a):delete e.altBackground}),s.push({label:n.columns,kind:"number",step:1,min:1,get:()=>e.columns??1,set:a=>Se(a)>1?e.columns=Math.floor(Se(a)):delete e.columns}),s.push({label:n.columnGap,kind:"number",step:.5,min:0,get:()=>e.columnGap??0,set:a=>Se(a)?e.columnGap=Se(a):delete e.columnGap})),s.push({label:n.breakBefore,kind:"check",get:()=>!!e.pageBreakBefore,set:a=>a?e.pageBreakBefore=!0:delete e.pageBreakBefore},{label:n.breakAfter,kind:"check",get:()=>!!e.pageBreakAfter,set:a=>a?e.pageBreakAfter=!0:delete e.pageBreakAfter},{label:n.visible,kind:"expr",wide:!0,get:()=>e.visible??"",set:a=>a?e.visible=String(a):delete e.visible}),r&&s.push({label:n.group,kind:"section"},{label:n.by,kind:"expr",wide:!0,get:()=>r.by,set:a=>r.by=String(a)},{label:n.groupSort,kind:"select",options:[{value:"",label:n.keep},{value:"asc",label:n.asc},{value:"desc",label:n.desc}],get:()=>r.sort??"",set:a=>a?r.sort=a:delete r.sort},{label:n.newPage,kind:"check",get:()=>!!r.newPage,set:a=>a?r.newPage=!0:delete r.newPage},{label:n.repeatHeader,kind:"check",get:()=>!!r.repeatHeader,set:a=>a?r.repeatHeader=!0:delete r.repeatHeader},{label:n.resetPage,kind:"check",get:()=>!!r.resetPageNumber,set:a=>a?r.resetPageNumber=!0:delete r.resetPageNumber}),s}function gs(e,t){let n=e.page??(e.page={}),r=()=>{let i=n.margins??15;return typeof i=="number"?`${i}`:i.join(" ")},o=()=>typeof e.watermark=="string"?{text:e.watermark}:Array.isArray(e.watermark)?e.watermark[0]??{}:e.watermark??{},s=i=>{let f={...o(),...i};for(let p of Object.keys(f))(f[p]===void 0||f[p]===""||f[p]===!1)&&delete f[p];!f.text&&!f.image?delete e.watermark:e.watermark=Object.keys(f).length===1?String(f.text):f},a=()=>Array.isArray(e.emboss)?e.emboss[0]??{}:e.emboss??{},c=i=>{let f={...a(),...i};for(let p of Object.keys(f))(f[p]===void 0||f[p]==="")&&delete f[p];!f.text&&!f.centerText&&!f.image?delete e.emboss:e.emboss=f};return[{label:t.report,kind:"section"},{label:t.name,kind:"text",wide:!0,get:()=>e.name??"",set:i=>e.name=String(i)},{label:t.size,kind:"select",options:Object.keys(st).map(i=>({value:i,label:`${i} (${st[i][0]}\xD7${st[i][1]})`})),get:()=>Array.isArray(n.size)?"A4":n.size??"A4",set:i=>n.size=i},{label:t.orientation,kind:"select",options:[{value:"portrait",label:t.portrait},{value:"landscape",label:t.landscape}],get:()=>n.orientation??"portrait",set:i=>n.orientation=i},{label:t.margins,kind:"text",wide:!0,get:r,set:i=>{let f=String(i).trim().split(/[\s,]+/).map(Number).filter(Number.isFinite);n.margins=f.length>=4?[f[0],f[1],f[2],f[3]]:f.length?f[0]:15}},{label:t.font,kind:"select",options:ps.map(i=>({value:i,label:i})),get:()=>e.font?.family??"Nanum Gothic",set:i=>e.font={...e.font,family:String(i)}},{label:t.fontSize,kind:"number",step:.5,get:()=>e.font?.size??9,set:i=>e.font={...e.font,size:Se(i)||9}},{label:t.dataSource,kind:"text",placeholder:"rows",get:()=>e.dataSource??"",set:i=>i?e.dataSource=String(i):delete e.dataSource},{label:t.sort,kind:"text",wide:!0,get:()=>(e.sort??[]).join(", "),set:i=>{let f=String(i).split(",").map(p=>p.trim()).filter(Boolean);f.length?e.sort=f:delete e.sort}},{label:t.filter,kind:"expr",wide:!0,get:()=>e.filter??"",set:i=>i?e.filter=String(i):delete e.filter},{label:t.fillEmpty,kind:"check",get:()=>!!e.fillEmptyRows,set:i=>i?e.fillEmptyRows=!0:delete e.fillEmptyRows},{label:t.skipHeader,kind:"check",get:()=>!!e.pageHeaderSkipFirst,set:i=>i?e.pageHeaderSkipFirst=!0:delete e.pageHeaderSkipFirst},{label:t.watermark,kind:"text",wide:!0,placeholder:'\uC0AC\uBCF8 / {params.user} {format(now(), "yyyy-MM-dd HH:mm")}',get:()=>o().text??"",set:i=>s({text:String(i)})},{label:t.wmRepeat,kind:"check",get:()=>!!o().repeat,set:i=>s({repeat:!!i||void 0})},{label:t.wmOpacity,kind:"number",step:.02,min:0,get:()=>o().opacity??.12,set:i=>s({opacity:Se(i)})},{label:t.emboss,kind:"text",wide:!0,placeholder:"(\uC8FC)\uD68C\uC0AC\uBA85 \xB7 COMPANY \xB7",get:()=>a().text??"",set:i=>c({text:String(i)})},{label:t.embossCenter,kind:"text",get:()=>a().centerText??"",set:i=>c({centerText:String(i)})},{label:t.params,kind:"json",wide:!0,get:()=>e.params?JSON.stringify(e.params,null,2):"",set:i=>{let f=String(i).trim();if(!f){delete e.params;return}e.params=JSON.parse(f)}}]}function vr(e,t){if(!e.trim())return"";let n=Bn(e);return n?`${t.errorExpr}: ${n}`:""}var Ni=96/25.4,Sr={ko:{title:"\uC81C\uBAA9",pageHeader:"\uD398\uC774\uC9C0 \uBA38\uB9AC\uAE00",columnHeader:"\uC5F4 \uBA38\uB9AC\uAE00",groupHeader:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00",detail:"\uC0C1\uC138",groupFooter:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00",summary:"\uC694\uC57D (\uD569\uACC4)",pageFooter:"\uD398\uC774\uC9C0 \uBC14\uB2E5\uAE00",noData:"\uC790\uB8CC \uC5C6\uC74C"},en:{title:"Title",pageHeader:"Page header",columnHeader:"Column header",groupHeader:"Group header",detail:"Detail",groupFooter:"Group footer",summary:"Summary",pageFooter:"Page footer",noData:"No data"}},Hi={ko:{design:"\uB514\uC790\uC778",preview:"\uBBF8\uB9AC\uBCF4\uAE30",json:"JSON",newReport:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",open:"\uC5F4\uAE30",save:"\uC800\uC7A5",undo:"\uC2E4\uD589 \uCDE8\uC18C",redo:"\uB2E4\uC2DC \uC2E4\uD589",cut:"\uC798\uB77C\uB0B4\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30",del:"\uC0AD\uC81C",dup:"\uBCF5\uC81C",alignL:"\uC67C\uCABD \uB9DE\uCDA4",alignC:"\uAC00\uC6B4\uB370 \uB9DE\uCDA4",alignR:"\uC624\uB978\uCABD \uB9DE\uCDA4",alignT:"\uC704 \uB9DE\uCDA4",alignM:"\uC911\uAC04 \uB9DE\uCDA4",alignB:"\uC544\uB798 \uB9DE\uCDA4",sameW:"\uAC19\uC740 \uB108\uBE44",sameH:"\uAC19\uC740 \uB192\uC774",grid:"\uACA9\uC790\uC5D0 \uB9DE\uCDA4",toolbox:"\uB3C4\uAD6C",fields:"\uB370\uC774\uD130 \uD544\uB4DC",bands:"\uBC34\uB4DC",addGroup:"\uADF8\uB8F9 \uCD94\uAC00",apply:"\uC801\uC6A9",props:"\uC18D\uC131",tools:{text:"\uD14D\uC2A4\uD2B8",field:"\uD544\uB4DC",line:"\uC120",rect:"\uC0AC\uAC01\uD615",image:"\uC774\uBBF8\uC9C0",barcode:"\uBC14\uCF54\uB4DC",qr:"QR \uCF54\uB4DC",chart:"\uCC28\uD2B8",table:"\uD45C (\uBAA9\uB85D)",crosstab:"\uD06C\uB85C\uC2A4\uD0ED",pageNumber:"\uCABD \uBC88\uD638",today:"\uC624\uB298 \uB0A0\uC9DC"},noFields:"\uB370\uC774\uD130\uB97C \uC5F0\uACB0\uD558\uBA74 \uD544\uB4DC\uAC00 \uB098\uC635\uB2C8\uB2E4",confirmNew:"\uD604\uC7AC \uBCF4\uACE0\uC11C\uB97C \uC9C0\uC6B0\uACE0 \uC0C8\uB85C \uB9CC\uB4E4\uAE4C\uC694?",jsonError:"JSON \uC624\uB958",add:"\uCD94\uAC00",remove:"\uC0AD\uC81C",params:"\uD30C\uB77C\uBBF8\uD130",dropHint:"\uB3C4\uAD6C\uB098 \uD544\uB4DC\uB97C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694"},en:{design:"Design",preview:"Preview",json:"JSON",newReport:"New",open:"Open",save:"Save",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",del:"Delete",dup:"Duplicate",alignL:"Align left",alignC:"Align center",alignR:"Align right",alignT:"Align top",alignM:"Align middle",alignB:"Align bottom",sameW:"Same width",sameH:"Same height",grid:"Snap to grid",toolbox:"Toolbox",fields:"Data fields",bands:"Bands",addGroup:"Add group",apply:"Apply",props:"Properties",tools:{text:"Text",field:"Field",line:"Line",rect:"Rectangle",image:"Image",barcode:"Barcode",qr:"QR code",chart:"Chart",table:"Table",crosstab:"Crosstab",pageNumber:"Page number",today:"Today"},noFields:"Connect data to list its fields",confirmNew:"Discard this report and start a new one?",jsonError:"JSON error",add:"Add",remove:"Remove",params:"Parameters",dropHint:"Drop tools or fields here"}},Oi={new:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4M12 11v6M9 14h6",open:"M3 7a1 1 0 0 1 1-1h5l2 2h8a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",save:"M5 4h11l3 3v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM8 4v5h7V4M8 20v-6h8v6",undo:"M9 14L4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",redo:"M15 14l5-5-5-5M20 9H10a6 6 0 0 0 0 12h3",cut:"M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM20 4L8.1 15.9M14.5 14.5L20 20M8.1 8.1L12 12",copy:"M9 9h10v12H9zM5 15V3h10",paste:"M9 4h6v3H9zM7 5H5v16h14V5h-2",del:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",alignL:"M4 3v18M8 7h12M8 15h7",alignC:"M12 3v18M6 7h12M8.5 15h7",alignR:"M20 3v18M4 7h12M9 15h7",alignT:"M3 4h18M7 8v12M15 8v7",alignM:"M3 12h18M7 6v12M15 8.5v7",alignB:"M3 20h18M7 4v12M15 9v7",sameW:"M4 8h16M4 16h16M4 5v6M20 5v6M4 13v6M20 13v6",sameH:"M8 4v16M16 4v16M5 4h6M5 20h6M13 4h6M13 20h6",grid:"M4 4h16v16H4zM4 9.3h16M4 14.6h16M9.3 4v16M14.6 4v16",text:"M5 6V4h14v2M12 4v16M9 20h6",field:"M4 7h16v10H4zM8 11h8",line:"M4 20L20 4",rect:"M4 6h16v12H4z",image:"M4 5h16v14H4zM4 15l4-4 4 4 3-3 5 5M15 9.5a1.5 1.5 0 1 0 0-.01",barcode:"M4 5v14M7 5v14M9 5v14M12 5v14M15 5v14M17 5v14M20 5v14",qr:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 18h2v2h-2zM14 18h2M18 14h2",chart:"M4 20V10M10 20V4M16 20v-7M2 20h20",pageNumber:"M7 3h7l4 4v14H7zM10 14h1v4M13 14h2v4h-2",table:"M4 5h16v14H4zM4 10h16M4 14.5h16M10 5v14",crosstab:"M4 4h16v16H4zM4 9h16M9 4v16M14 9v11M9 14.5h11",today:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",plus:"M12 5v14M5 12h14",minus:"M5 12h14",x:"M6 6l12 12M18 6L6 18"},De=e=>`<svg viewBox="0 0 24 24" width="17" height="17" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="${Oi[e]}"/></svg>`,Mr=e=>typeof e=="string"&&sn(e)?e.replace(/[^#\w(),.\s%]/g,""):"transparent",qi=e=>String(e??"").replace(/[^\p{L}\p{N} _-]/gu,""),we=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),xe=(e,t=.01)=>Math.round(e/t)*t,zi=["text","field","line","rect","image","barcode","qr","chart","table","crosstab","pageNumber","today"];function bs(e,t){let[n]=e.key.split(":"),r=Sr[t][n];return e.group?`${r} \xB7 ${e.group.by}`:r}function Ui(e){return e.split(":")[0]}function Gi(e,t={}){let n=t.lang??"ko",r=ds[n],o=Hi[n],s=Be(t.definition??wn());vt(s);let a=t.data??{},c=t.zoom??1,i=1,f="design",p=new Set,b=null,l=[],u=[JSON.stringify(s)],d=[],h=null,$,x=St();e.classList.add("fr-designer"),e.tabIndex=-1,e.innerHTML=`
|
|
86
86
|
<div class="fr-toolbar" role="toolbar">
|
|
87
87
|
<span class="fr-tabs" role="tablist">
|
|
88
88
|
<button type="button" role="tab" class="fr-tab" data-mode="design" aria-selected="true">${o.design}</button>
|
|
@@ -90,26 +90,26 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
90
90
|
<button type="button" role="tab" class="fr-tab" data-mode="json" aria-selected="false">${o.json}</button>
|
|
91
91
|
</span>
|
|
92
92
|
<span class="fr-sep"></span>
|
|
93
|
-
${[["new",o.newReport],["open",o.open],["save",o.save]].map(([
|
|
93
|
+
${[["new",o.newReport],["open",o.open],["save",o.save]].map(([m,w])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${w}" aria-label="${w}">${De(m)}</button>`).join("")}
|
|
94
94
|
<span class="fr-sep"></span>
|
|
95
|
-
${[["undo",o.undo],["redo",o.redo]].map(([
|
|
95
|
+
${[["undo",o.undo],["redo",o.redo]].map(([m,w])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${w} (Ctrl+${m==="undo"?"Z":"Y"})" aria-label="${w}">${De(m)}</button>`).join("")}
|
|
96
96
|
<span class="fr-sep fr-design-only"></span>
|
|
97
97
|
<span class="fr-design-only fr-group">
|
|
98
|
-
${[["cut",o.cut],["copy",o.copy],["paste",o.paste],["del",o.del]].map(([
|
|
98
|
+
${[["cut",o.cut],["copy",o.copy],["paste",o.paste],["del",o.del]].map(([m,w])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${w}" aria-label="${w}">${De(m)}</button>`).join("")}
|
|
99
99
|
<span class="fr-sep"></span>
|
|
100
|
-
${[["alignL",o.alignL],["alignC",o.alignC],["alignR",o.alignR],["alignT",o.alignT],["alignM",o.alignM],["alignB",o.alignB],["sameW",o.sameW],["sameH",o.sameH]].map(([
|
|
100
|
+
${[["alignL",o.alignL],["alignC",o.alignC],["alignR",o.alignR],["alignT",o.alignT],["alignM",o.alignM],["alignB",o.alignB],["sameW",o.sameW],["sameH",o.sameH]].map(([m,w])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${w}" aria-label="${w}">${De(m)}</button>`).join("")}
|
|
101
101
|
<span class="fr-sep"></span>
|
|
102
|
-
<button type="button" class="fr-btn fr-icon" data-act="grid" title="${o.grid}" aria-label="${o.grid}" aria-pressed="true">${
|
|
103
|
-
<button type="button" class="fr-btn fr-icon" data-act="zoomOut" aria-label="-">${
|
|
102
|
+
<button type="button" class="fr-btn fr-icon" data-act="grid" title="${o.grid}" aria-label="${o.grid}" aria-pressed="true">${De("grid")}</button>
|
|
103
|
+
<button type="button" class="fr-btn fr-icon" data-act="zoomOut" aria-label="-">${De("minus")}</button>
|
|
104
104
|
<span class="fr-zoom-label">100%</span>
|
|
105
|
-
<button type="button" class="fr-btn fr-icon" data-act="zoomIn" aria-label="+">${
|
|
105
|
+
<button type="button" class="fr-btn fr-icon" data-act="zoomIn" aria-label="+">${De("plus")}</button>
|
|
106
106
|
</span>
|
|
107
107
|
<input type="file" accept=".json,application/json" class="fr-file" hidden>
|
|
108
108
|
</div>
|
|
109
109
|
<div class="fr-dz">
|
|
110
110
|
<aside class="fr-dz-left">
|
|
111
111
|
<h3>${o.toolbox}</h3>
|
|
112
|
-
<div class="fr-dz-tools">${
|
|
112
|
+
<div class="fr-dz-tools">${zi.map(m=>`<button type="button" class="fr-dz-tool" draggable="true" data-tool="${m}" title="${o.tools[m]}">${De(m)}<span>${o.tools[m]}</span></button>`).join("")}</div>
|
|
113
113
|
<h3>${o.fields}</h3>
|
|
114
114
|
<div class="fr-dz-fields"></div>
|
|
115
115
|
<h3>${o.bands}</h3>
|
|
@@ -121,12 +121,12 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
121
121
|
<div class="fr-dz-json" hidden><textarea spellcheck="false" aria-label="JSON"></textarea><div class="fr-dz-json-bar"><span class="fr-dz-json-err" role="alert"></span><button type="button" class="fr-btn fr-primary" data-act="applyJson">${o.apply}</button></div></div>
|
|
122
122
|
</div>
|
|
123
123
|
<aside class="fr-dz-right" aria-label="${o.props}"><form class="fr-dz-props" autocomplete="off"></form></aside>
|
|
124
|
-
</div>`;let
|
|
125
|
-
<section class="fr-dz-band${b===
|
|
126
|
-
<header class="fr-dz-band-head" data-band-head="${
|
|
127
|
-
<div class="fr-dz-band-area" data-band-area="${
|
|
128
|
-
${
|
|
129
|
-
${
|
|
124
|
+
</div>`;let v=m=>e.querySelector(m),M=v(".fr-dz-canvas"),j=v(".fr-dz-page"),y=v(".fr-dz-props"),A=v(".fr-dz-fields"),T=v(".fr-dz-bandlist"),I=v(".fr-dz-preview"),V=v(".fr-dz-json"),oe=v(".fr-file");Et(["Nanum Gothic","Nanum Myeongjo"]);let z=()=>c*Ni,ae=()=>{let m=JSON.stringify(s);m!==u[u.length-1]&&(u.push(m),u.length>200&&u.shift(),d=[],clearTimeout($),$=setTimeout(()=>t.onChange?.(Be(s)),250))},ke=m=>{s=JSON.parse(m),p=new Set([...p].filter(w=>je(s,w))),H(),clearTimeout($),$=setTimeout(()=>t.onChange?.(Be(s)),250)},U=()=>{u.length<2||(d.push(u.pop()),ke(u[u.length-1]))},le=()=>{let m=d.pop();m&&(u.push(m),ke(m))},me=()=>{let{rows:m,root:w}=He(s,a);return{row:m[0],rows:m,allRows:m,params:it(s),data:w,vars:{page:1,pages:1,rowNum:1,now:new Date}}},_=()=>{let{rows:m}=He(s,a),w=new Set;for(let E of m.slice(0,20))E&&typeof E=="object"&&Object.keys(E).forEach(k=>w.add(k));if(!m.length&&a&&typeof a=="object"&&!Array.isArray(a))for(let[E,k]of Object.entries(a))k&&typeof k=="object"&&!Array.isArray(k)?Object.keys(k).forEach(P=>w.add(`${E}.${P}`)):Array.isArray(k)||w.add(E);return[...w]},ue=(m,w)=>{let E=z();if(m.type==="text"||m.type==="field"){let k=Ae(s,m),[P,F,g,L]=k.padding,W=[`font-family:'${qi(k.fontFamily)}', 'Malgun Gothic', sans-serif`,`font-size:${Number(k.fontSize)*(96/72)*c}px`,k.bold?"font-weight:700":"",k.italic?"font-style:italic":"",`color:${Mr(k.color)}`,k.underline||k.strike?`text-decoration:${[k.underline?"underline":"",k.strike?"line-through":""].join(" ")}`:"",`padding:${P*E}px ${F*E}px ${g*E}px ${L*E}px`,`text-align:${k.align}`,`justify-content:${k.valign==="top"?"flex-start":k.valign==="bottom"?"flex-end":"center"}`,`line-height:${Number(k.lineHeight)||1.25}`,k.background?`background:${Mr(k.background)}`:"",k.letterSpacing?`letter-spacing:${k.letterSpacing*E}px`:""],B=k.border,te=he=>he?`${Math.max(1,Number(he.width)*E)}px ${he.style==="double"||he.style==="dashed"||he.style==="dotted"?he.style:"solid"} ${Mr(he.color)}`:"";B.top&&W.push(`border-top:${te(B.top)}`),B.right&&W.push(`border-right:${te(B.right)}`),B.bottom&&W.push(`border-bottom:${te(B.bottom)}`),B.left&&W.push(`border-left:${te(B.left)}`);let se=m.type==="text"?we(m.text||" "):`<span class="fr-dz-expr">[${we(m.expr)}]</span>`;return`<div class="fr-dz-text" style="${W.filter(Boolean).join(";")}"><span>${se}</span></div>`}if(m.type==="line"){let k=Math.max(1,(m.width??.2)*E),P=m.w<0?-m.w*E:0,F=m.h<0?-m.h*E:0;return`<svg class="fr-dz-svg" overflow="visible"><line x1="${P}" y1="${F}" x2="${P+m.w*E}" y2="${F+m.h*E}" stroke="${we(m.color??"#000")}" stroke-width="${k}"${m.dash==="dashed"?` stroke-dasharray="${k*3} ${k*2}"`:m.dash==="dotted"?` stroke-dasharray="${k} ${k}"`:""}/></svg>`}if(m.type==="rect")return`<div class="fr-dz-rect" style="border:${Math.max(m.width??.2,0)*E}px solid ${we(m.color??"#000")};${m.fill?`background:${we(m.fill)};`:""}${m.radius?`border-radius:${m.radius*E}px;`:""}"></div>`;if(m.type==="image"&&!m.expr)return m.src?`<img src="${we(m.src)}" alt="" style="object-fit:${m.fit==="fill"?"fill":m.fit==="cover"?"cover":"contain"}">`:`<div class="fr-dz-ph">${De("image")}</div>`;try{let k={height:m.y+m.h,elements:[{...m,x:0,y:0}],canGrow:!1},P=Ye(k,me(),{def:s,measure:x,locale:"ko",kind:Ui(w.key),width:m.w},0,0);return Ke({number:1,total:1,width:Math.max(m.w,1),height:Math.max(m.h,1),items:P.items},{className:"fr-dz-svg"}).replace('<rect width="100%" height="100%" fill="#fff"/>',"")}catch{return`<div class="fr-dz-ph">${De(m.type==="chart"?"chart":"barcode")}</div>`}},Y=(m,w)=>{let E=z(),k=p.has(m.id),P=m.type==="line",F=Math.min(m.x,m.x+(P?m.w:0)),g=Math.min(m.y,m.y+(P?m.h:0)),L=Math.abs(m.w),W=Math.abs(m.h),B=k&&p.size===1?(P?["nw","se"]:["nw","n","ne","e","se","s","sw","w"]).map(te=>`<span class="fr-dz-h fr-dz-h-${te}" data-h="${te}"></span>`).join(""):"";return`<div class="fr-dz-el${k?" is-selected":""}${P?" is-line":""}" data-id="${we(String(m.id))}" style="left:${F*E}px;top:${g*E}px;width:${Math.max(L*E,P?1:4)}px;height:${Math.max(W*E,P?1:4)}px" title="${we(m.type==="field"?m.expr:m.type==="text"?m.text:m.type)}">${ue(m,w)}${B}</div>`},H=()=>{let m=z(),w=Xe(s);v(".fr-zoom-label").textContent=`${Math.round(c*100)}%`,j.style.width=`${w*m}px`;let E=Ue(s);j.innerHTML=E.map(F=>`
|
|
125
|
+
<section class="fr-dz-band${b===F.key&&!p.size?" is-selected":""}" data-band="${F.key}">
|
|
126
|
+
<header class="fr-dz-band-head" data-band-head="${F.key}"><span>${we(bs(F,n))}</span><small>${Number(F.band.height)}mm</small></header>
|
|
127
|
+
<div class="fr-dz-band-area" data-band-area="${F.key}" style="height:${F.band.height*m}px;background-size:${5*m}px ${5*m}px${F.band.background?`;background-color:${we(F.band.background)}`:""}">
|
|
128
|
+
${F.band.elements.map(g=>Y(g,F)).join("")}
|
|
129
|
+
${F.band.elements.length?"":`<span class="fr-dz-hint">${o.dropHint}</span>`}
|
|
130
130
|
</div>
|
|
131
|
-
<div class="fr-dz-band-resize" data-band-resize="${
|
|
132
|
-
</section>`).join(""),le(),H(),e.querySelectorAll('[data-act="undo"]').forEach(E=>E.disabled=f.length<2),e.querySelectorAll('[data-act="redo"]').forEach(E=>E.disabled=!u.length);let g=d.size>0,k=d.size>1;for(let E of["cut","copy","del"])e.querySelector(`[data-act="${E}"]`).disabled=!g;for(let E of["alignL","alignC","alignR","alignT","alignM","alignB","sameW","sameH"])e.querySelector(`[data-act="${E}"]`).disabled=!k;e.querySelector('[data-act="paste"]').disabled=!c.length},H=()=>{let h=K();j.innerHTML=h.length?h.map(k=>`<button type="button" class="fr-dz-field" draggable="true" data-field="${ye(k)}" title="${ye(k)}">${ye(k)}</button>`).join(""):`<p class="fr-dz-empty">${o.noFields}</p>`;let w=new Set(ze(s).map(k=>k.key)),m=["title","pageHeader","columnHeader","detail","summary","pageFooter","noData"],g=s.bands.groups??[];C.innerHTML=m.map(k=>`<label class="fr-dz-bandopt"><input type="checkbox" data-band-toggle="${k}"${w.has(k)?" checked":""}> ${vr[n][k]}</label>`).join("")+g.map((k,E)=>`<div class="fr-dz-groupopt"><span>${vr[n].groupHeader.replace(/ .*/,"")} ${E+1}: <code>${ye(k.by)}</code></span><button type="button" class="fr-btn fr-icon" data-group-remove="${E}" title="${o.remove}" aria-label="${o.remove}">${Le("x")}</button></div>`).join("")+`<div class="fr-dz-addgroup"><select aria-label="${o.addGroup}">${h.map(k=>`<option>${ye(k)}</option>`).join("")}</select><button type="button" class="fr-btn" data-act="addGroup">${Le("plus")}<span>${o.addGroup}</span></button></div>`},_=[],le=()=>{let h=[...d].map(w=>je(s,w)?.el).filter(w=>!!w);if(h.length)_=us(h,r,s);else if(b&&Te(s,b)){let w=ze(s).find(m=>m.key===b);_=fs(w.band,ps(w,n),r,w.group,w.key==="detail")}else _=ds(s,r);x.innerHTML=_.map((w,m)=>{if(w.kind==="section")return`<h3 class="fr-dz-sec">${ye(w.label)}</h3>`;let g=w.get?.(),k=`fr-f-${m}`,E=`fr-dz-prop${w.wide||w.kind==="textarea"||w.kind==="json"||w.kind==="expr"||w.kind==="toggles"?" is-wide":""}${w.kind==="check"?" is-check":""}`;if(w.kind==="check")return`<label class="${E}"><input type="checkbox" data-f="${m}"${g?" checked":""}> ${ye(w.label)}</label>`;if(w.kind==="toggles")return`<div class="${E}">${w.label?`<span class="fr-dz-plabel">${ye(w.label)}</span>`:""}<span class="fr-dz-toggles">${w.toggles.map((q,ae)=>`<button type="button" class="fr-btn fr-dz-toggle" data-f="${m}" data-k="${ae}" title="${ye(q.title)}" aria-label="${ye(q.title)}" aria-pressed="${q.get()}">${ye(q.label)}</button>`).join("")}</span></div>`;let A=`<label for="${k}" class="fr-dz-plabel">${ye(w.label)}</label>`,B=g==null?"":String(g);if(w.kind==="select")return`<div class="${E}">${A}<select id="${k}" data-f="${m}">${g===void 0?'<option value="" selected>\u2014</option>':""}${w.options.map(q=>`<option value="${ye(q.value)}"${q.value===B?" selected":""}>${ye(q.label)}</option>`).join("")}</select></div>`;if(w.kind==="textarea"||w.kind==="json")return`<div class="${E}">${A}<textarea id="${k}" data-f="${m}" rows="${w.kind==="json"?6:3}" spellcheck="false">${ye(B)}</textarea><small class="fr-dz-err" data-err="${m}"></small></div>`;if(w.kind==="color")return`<div class="${E}">${A}<span class="fr-dz-color"><input type="color" data-f="${m}" data-color value="${/^#[0-9a-f]{6}$/i.test(B)?B:"#ffffff"}" aria-label="${ye(w.label)}"><input type="text" id="${k}" data-f="${m}" value="${ye(B)}" placeholder="\u2014"></span></div>`;let re=w.kind==="number"?"number":"text";return`<div class="${E}">${A}<input id="${k}" type="${re}" data-f="${m}" value="${ye(B)}"${w.step?` step="${w.step}"`:""}${w.min!==void 0?` min="${w.min}"`:""}${w.placeholder?` placeholder="${ye(w.placeholder)}"`:""}${w.kind==="expr"?' spellcheck="false" class="is-expr"':""}>${w.kind==="expr"?`<small class="fr-dz-err" data-err="${m}">${ye(kr(B,r))}</small>`:""}</div>`}).join("")},he=(h,w)=>{let m=Number(h.dataset.f),g=_[m];if(g){if(g.kind==="toggles"){let k=g.toggles[Number(h.dataset.k)];k.set(!k.get())}else if(g.kind==="check")g.set?.(h.checked);else{let k=h.value;if(g.kind==="expr"){let E=kr(k,r),A=x.querySelector(`[data-err="${m}"]`);A&&(A.textContent=E)}if(g.kind==="json")try{g.set?.(k);let E=x.querySelector(`[data-err="${m}"]`);E&&(E.textContent="")}catch(E){let A=x.querySelector(`[data-err="${m}"]`);A&&(A.textContent=`${o.jsonError}: ${E.message}`);return}else if(g.kind==="number"){if(k===""||!Number.isFinite(Number(k)))return;g.set?.(Number(k))}else g.set?.(k)}if(w){oe();let k=document.activeElement?.id;N(),k&&g.kind!=="toggles"&&g.kind!=="check"&&document.getElementById(k)?.focus()}else be()}},be=()=>{let h=x.innerHTML,w=document.activeElement?.id,m=document.activeElement,g=m&&"selectionStart"in m?m.selectionStart:null;if(N(),w){let k=document.getElementById(w);if(k&&(k.focus(),g!==null&&"setSelectionRange"in k))try{k.setSelectionRange(g,g)}catch{}}};x.addEventListener("input",h=>{let w=h.target;if(!w.dataset.f)return;let m=_[Number(w.dataset.f)];if(w.dataset.color!==void 0){let g=w.parentElement.querySelector("input[type=text]");g.value=w.value}m&&(m.kind==="text"||m.kind==="textarea"||m.kind==="expr"||m.kind==="number")&&he(w,!1)}),x.addEventListener("change",h=>{let w=h.target;w.dataset.f&&he(w,!0)}),x.addEventListener("click",h=>{let w=h.target.closest(".fr-dz-toggle");w&&he(w,!0)}),x.addEventListener("submit",h=>h.preventDefault());let X=()=>[...d].map(h=>je(s,h)).filter(h=>!!h),Y=(h,w=!1)=>{w||(d=new Set);for(let g of h)w&&d.has(g)?d.delete(g):d.add(g);let m=h.length?je(s,h[0]):null;m&&(b=m.slot.key),N()},se=()=>{for(let{slot:h,el:w}of X())h.band.elements=h.band.elements.filter(m=>m!==w);d.clear(),oe(),N()},fe=()=>{c=X().map(h=>Ie(h.el))},de=()=>{if(!c.length)return;let h=b&&Te(s,b)?b:ze(s).find(g=>g.key==="detail")?.key??ze(s)[0]?.key;if(!h)return;let w=Te(s,h),m=[];for(let g of c){let k=Ie(g);k.id=kt(s),k.x=we(k.x+2,.5),k.y=we(Math.min(k.y+2,Math.max(0,w.height-Math.max(1,k.h))),.5),w.elements.push(k),m.push(k.id)}c=c.map(g=>({...Ie(g),x:g.x+2,y:g.y+2})),oe(),Y(m)},ie=h=>{let w=X().map(B=>B.el);if(w.length<2)return;let m=Math.min(...w.map(B=>B.x)),g=Math.max(...w.map(B=>B.x+B.w)),k=Math.min(...w.map(B=>B.y)),E=Math.max(...w.map(B=>B.y+B.h)),A=w[0];for(let B of w)h==="alignL"?B.x=m:h==="alignR"?B.x=we(g-B.w):h==="alignC"?B.x=we((m+g)/2-B.w/2):h==="alignT"?B.y=k:h==="alignB"?B.y=we(E-B.h):h==="alignM"?B.y=we((k+E)/2-B.h/2):h==="sameW"?B.w=A.w:h==="sameH"&&(B.h=A.h);oe(),N()},P=(h,w,m,g,k)=>{let E=Te(s,w);if(!E)return;let A=is(h,kt(s),we(m,i||.01),we(g,i||.01),E.height,k);if(A.x=Math.max(0,Math.min(A.x,Xe(s)-Math.min(A.w,5))),A.y=Math.max(0,Math.min(A.y,Math.max(0,E.height-(A.h||0)))),A.y+A.h>E.height&&(E.height=we(A.y+A.h,.5)),E.elements.push(A),h==="field"&&k&&w==="detail"&&s.bands.columnHeader){let B=s.bands.columnHeader;B.elements.some(q=>q.x<A.x+A.w&&q.x+q.w>A.x)||B.elements.push({id:kt(s),type:"text",x:A.x,y:0,w:A.w,h:B.height,text:k,style:{bold:!0,align:"center",background:"#eef1f6",border:"0.2 solid #8a94a6"}}),A.style={border:"0.15 solid #b9c1cd",...typeof(Ne(s,a).rows[0]??{})[k]=="number"?{align:"right"}:{}},typeof(Ne(s,a).rows[0]??{})[k]=="number"&&(A.format="#,##0"),A.h=E.height,A.y=0}oe(),Y([A.id])},O=null,F=(h,w)=>{let m=h.getBoundingClientRect();return{x:(w.clientX-m.left)/z(),y:(w.clientY-m.top)/z()}};v.addEventListener("pointerdown",h=>{if(h.button!==0)return;let w=h.target;v.focus({preventScroll:!0});let m=w.closest(".fr-dz-h"),g=w.closest(".fr-dz-el"),k=w.closest("[data-band-resize]"),E=w.closest("[data-band-head]"),A=w.closest("[data-band-area]");if(k){let B=k.dataset.bandResize;O={kind:"band",key:B,startY:h.clientY,orig:Te(s,B).height}}else if(m&&g){let B=je(s,g.dataset.id);O={kind:"resize",id:B.el.id,handle:m.dataset.h,startX:h.clientX,startY:h.clientY,orig:{x:B.el.x,y:B.el.y,w:B.el.w,h:B.el.h}}}else if(g){let B=g.dataset.id;if(h.shiftKey||h.ctrlKey||h.metaKey){Y([B],!0);return}d.has(B)||Y([B]),O={kind:"move",startX:h.clientX,startY:h.clientY,moved:!1,items:X().map(re=>({id:re.el.id,x:re.el.x,y:re.el.y,key:re.slot.key}))}}else if(E){d.clear(),b=E.dataset.bandHead,N();return}else if(A){let B=A.dataset.bandArea,re=document.createElement("div");re.className="fr-dz-marquee",A.appendChild(re);let q=F(A,h);O={kind:"marquee",key:B,area:A,startX:q.x,startY:q.y,box:re,additive:h.shiftKey||h.ctrlKey},O.additive||(d.clear(),b=B)}else{d.clear(),b=null,N();return}v.setPointerCapture(h.pointerId),h.preventDefault()}),v.addEventListener("pointermove",h=>{if(!O)return;let w=z();if(O.kind==="move"){let m=(h.clientX-O.startX)/w,g=(h.clientY-O.startY)/w;if(!O.moved&&Math.hypot(m,g)*w<3)return;if(O.moved=!0,i&&!h.altKey){let k=O.items[0];m=we(k.x+m,i)-k.x,g=we(k.y+g,i)-k.y}for(let k of O.items){let E=T.querySelector(`.fr-dz-el[data-id="${k.id}"]`),A=je(s,k.id);if(!E||!A)continue;let B=A.el.type==="line";E.style.left=`${Math.min(k.x+m,k.x+m+(B?A.el.w:0))*w}px`,E.style.top=`${Math.min(k.y+g,k.y+g+(B?A.el.h:0))*w}px`}}else if(O.kind==="resize"){let m=je(s,O.id);if(!m)return;let g=m.el,k=(h.clientX-O.startX)/w,E=(h.clientY-O.startY)/w,A=O.orig,B=q=>i&&!h.altKey?we(q,i):we(q);if(g.type==="line")O.handle==="nw"?(g.x=B(A.x+k),g.y=B(A.y+E),g.w=we(A.x+A.w-g.x),g.h=we(A.y+A.h-g.y)):(g.w=B(A.x+A.w+k)-A.x,g.h=B(A.y+A.h+E)-A.y,h.shiftKey&&(Math.abs(g.w)>Math.abs(g.h)?g.h=0:g.w=0));else{if(O.handle.includes("e")&&(g.w=Math.max(1,B(A.x+A.w+k)-A.x)),O.handle.includes("s")&&(g.h=Math.max(1,B(A.y+A.h+E)-A.y)),O.handle.includes("w")){let q=Math.min(B(A.x+k),A.x+A.w-1);g.w=we(A.x+A.w-q),g.x=q}if(O.handle.includes("n")){let q=Math.min(B(A.y+E),A.y+A.h-1);g.h=we(A.y+A.h-q),g.y=q}}k=E=0;let re=T.querySelector(`.fr-dz-el[data-id="${O.id}"]`);re&&(re.outerHTML=V(g,m.slot))}else if(O.kind==="marquee"){let m=F(O.area,h),g=Math.min(m.x,O.startX),k=Math.min(m.y,O.startY);Object.assign(O.box.style,{left:`${g*w}px`,top:`${k*w}px`,width:`${Math.abs(m.x-O.startX)*w}px`,height:`${Math.abs(m.y-O.startY)*w}px`})}else if(O.kind==="band"){let m=Te(s,O.key),g=Math.max(1,...m.elements.map(A=>A.y+Math.max(A.h,0)));m.height=Math.max(g,we(O.orig+(h.clientY-O.startY)/w,.5));let k=T.querySelector(`[data-band-area="${O.key}"]`);k&&(k.style.height=`${m.height*w}px`);let E=T.querySelector(`[data-band-head="${O.key}"] small`);E&&(E.textContent=`${m.height}mm`)}});let L=h=>{if(!O)return;let w=O;O=null;let m=z();if(w.kind==="move"&&w.moved){let g=(h.clientX-w.startX)/m,k=(h.clientY-w.startY)/m;if(i&&!h.altKey){let B=w.items[0];g=we(B.x+g,i)-B.x,k=we(B.y+k,i)-B.y}let A=document.elementsFromPoint(h.clientX,h.clientY).find(B=>B.dataset?.bandArea)?.dataset.bandArea;for(let B of w.items){let re=je(s,B.id);if(!re)continue;let q=re.el;if(q.x=we(Math.max(0,B.x+g)),q.y=we(B.y+k),A&&A!==re.slot.key){let pe=T.querySelector(`[data-band-area="${re.slot.key}"]`),We=(T.querySelector(`[data-band-area="${A}"]`).getBoundingClientRect().top-pe.getBoundingClientRect().top)/m;q.y=we(q.y-We),re.slot.band.elements.splice(re.index,1),Te(s,A).elements.push(q),b=A}let ae=je(s,B.id).slot.band;q.y=Math.max(0,q.y),q.y+Math.max(q.h,0)>ae.height&&(ae.height=we(q.y+Math.max(q.h,0),.5))}oe(),N()}else if(w.kind==="resize"||w.kind==="band"){if(w.kind==="resize"){let g=je(s,w.id);g&&g.el.y+Math.max(g.el.h,0)>g.slot.band.height&&(g.slot.band.height=we(g.el.y+g.el.h,.5))}oe(),N()}else if(w.kind==="marquee"){let g=w.box.getBoundingClientRect();w.box.remove();let k=Te(s,w.key),E=w.area.getBoundingClientRect(),A=(g.left-E.left)/m,B=(g.top-E.top)/m,re=A+g.width/m,q=B+g.height/m,ae=g.width<2&&g.height<2?[]:k.elements.filter(pe=>{let ke=Math.min(pe.x,pe.x+pe.w),We=Math.max(pe.x,pe.x+pe.w),Kt=Math.min(pe.y,pe.y+pe.h),_t=Math.max(pe.y,pe.y+pe.h);return ke<re&&We>A&&Kt<q&&_t>B}).map(pe=>pe.id);w.additive?ae.forEach(pe=>d.add(pe)):d=new Set(ae),b=w.key,N()}};v.addEventListener("pointerup",L),v.addEventListener("pointercancel",L),v.addEventListener("dblclick",h=>{let w=h.target.closest(".fr-dz-el");if(!w)return;let m=je(s,w.dataset.id);if(!m||m.el.type!=="text"&&m.el.type!=="field")return;let g=m.el,k=document.createElement("textarea");k.className="fr-dz-inline",k.value=g.type==="text"?g.text:g.expr,w.appendChild(k),k.focus(),k.select();let E=A=>{k.isConnected&&(A&&(g.type==="text"?g.text=k.value:g.expr=k.value,oe()),N())};k.addEventListener("blur",()=>E(!0)),k.addEventListener("keydown",A=>{A.stopPropagation(),A.key==="Escape"?E(!1):A.key==="Enter"&&(g.type==="field"||!A.shiftKey)&&(A.preventDefault(),E(!0))})});let J=new AbortController,I=J.signal;e.addEventListener("dragstart",h=>{let w=h.target.closest("[data-tool]"),m=h.target.closest("[data-field]");!w&&!m||(h.dataTransfer.setData("text/plain",w?`tool:${w.dataset.tool}`:`field:${m.dataset.field}`),h.dataTransfer.effectAllowed="copy")},{signal:I}),v.addEventListener("dragover",h=>{h.target.closest("[data-band-area]")&&(h.preventDefault(),h.dataTransfer.dropEffect="copy")}),v.addEventListener("drop",h=>{let w=h.target.closest("[data-band-area]"),m=h.dataTransfer?.getData("text/plain")??"";if(!w||!m.includes(":"))return;h.preventDefault();let g=F(w,h),[k,E]=[m.slice(0,m.indexOf(":")),m.slice(m.indexOf(":")+1)];k==="tool"?P(E,w.dataset.bandArea,g.x,g.y):k==="field"&&P("field",w.dataset.bandArea,g.x,g.y,E)});let U=h=>{p=h,e.querySelectorAll(".fr-tab").forEach(w=>w.setAttribute("aria-selected",String(w.dataset.mode===h))),e.classList.toggle("is-preview",h==="preview"),e.classList.toggle("is-json",h==="json"),v.hidden=h!=="design",D.hidden=h!=="preview",Q.hidden=h!=="json",y?.destroy(),y=null,h==="preview"&&(y=yr(D,{definition:Ie(s),data:a,lang:n,licenseKey:t.licenseKey,toolbar:{csv:!0}})),h==="json"&&(Q.querySelector("textarea").value=JSON.stringify(s,null,2),Q.querySelector(".fr-dz-json-err").textContent="")},S=(h,w)=>{let m=URL.createObjectURL(new Blob([h],{type:"application/json"})),g=document.createElement("a");g.href=m,g.download=w,g.click(),setTimeout(()=>URL.revokeObjectURL(m),1e3)};e.addEventListener("click",h=>{var B;let w=h.target,m=w.closest(".fr-tab");if(m){U(m.dataset.mode);return}let g=w.closest("[data-tool]");if(g){let re=b&&Te(s,b)?b:"detail";Te(s,re)&&P(g.dataset.tool,re,0,0);return}let k=w.closest("[data-field]");if(k){let re=b&&Te(s,b)?b:"detail",q=Te(s,re);q&&P("field",re,Math.max(0,...q.elements.map(ae=>ae.x+ae.w))%Xe(s),0,k.dataset.field);return}let E=w.closest("[data-group-remove]");if(E){s.bands.groups?.splice(Number(E.dataset.groupRemove),1),s.bands.groups?.length||delete s.bands.groups,b=null,oe(),N();return}let A=w.closest("[data-act]")?.dataset.act;if(A)switch(A){case"new":confirm(o.confirmNew)&&(s=bn(),xt(s),d.clear(),b=null,oe(),N());break;case"open":Z.click();break;case"save":t.onSave?t.onSave(Ie(s)):S(JSON.stringify(s,null,2),`${(s.name??"report").replace(/[\\/:*?"<>|]+/g,"_")}.json`);break;case"undo":W();break;case"redo":ce();break;case"cut":fe(),se();break;case"copy":fe(),N();break;case"paste":de();break;case"del":se();break;case"grid":i=i?0:1,w.closest("[data-act]").setAttribute("aria-pressed",String(!!i));break;case"zoomIn":l=Math.min(3,Math.round((l+.1)*10)/10),N();break;case"zoomOut":l=Math.max(.4,Math.round((l-.1)*10)/10),N();break;case"addGroup":{let re=e.querySelector(".fr-dz-addgroup select")?.value;if(!re)break;let q=(B=s.bands).groups??(B.groups=[]),ae=Xe(s);q.push({by:re,sort:"asc",header:{height:7,elements:[{id:kt(s),type:"text",x:0,y:0,w:ae,h:7,text:`{${re}}`,style:{bold:!0,border:{bottom:!0}}}]},footer:{height:7,elements:[{id:kt(s),type:"text",x:0,y:0,w:ae,h:7,text:`{${re}} {count()}\uAC74`,style:{align:"right",color:"#4a5568"}}]}}),oe(),N();break}case"applyJson":{let re=Q.querySelector(".fr-dz-json-err");try{let q=JSON.parse(Q.querySelector("textarea").value);if(!q||typeof q!="object"||!q.bands)throw new Error('"bands" is missing');s=q,xt(s),d.clear(),oe(),N(),re.textContent="",U("design")}catch(q){re.textContent=`${o.jsonError}: ${q.message}`}break}default:(A.startsWith("align")||A==="sameW"||A==="sameH")&&ie(A)}},{signal:I}),C.addEventListener("change",h=>{let w=h.target.closest("[data-band-toggle]");if(!w)return;let m=w.dataset.bandToggle;w.checked?wr(s,m,{height:m==="title"?14:8,elements:[]}):(wr(s,m,void 0),b===m&&(b=null),d=new Set([...d].filter(g=>je(s,g)))),oe(),N()}),Z.addEventListener("change",async()=>{let h=Z.files?.[0];if(h){try{let w=JSON.parse(await h.text());if(!w?.bands)throw new Error('"bands" is missing');s=w,xt(s),d.clear(),b=null,oe(),N()}catch(w){alert(`${o.jsonError}: ${w.message}`)}Z.value=""}});let te=h=>{let w=h.target;if(w.closest("input, textarea, select")||p!=="design"||!e.contains(w)&&w!==document.body)return;let m=h.ctrlKey||h.metaKey,g=h.key.toLowerCase();if(m&&g==="z"&&!h.shiftKey)h.preventDefault(),W();else if(m&&(g==="y"||g==="z"&&h.shiftKey))h.preventDefault(),ce();else if(m&&g==="c")d.size&&(h.preventDefault(),fe(),N());else if(m&&g==="x")d.size&&(h.preventDefault(),fe(),se());else if(m&&g==="v")h.preventDefault(),de();else if(m&&g==="d")h.preventDefault(),fe(),de();else if(m&&g==="a")h.preventDefault(),Y(Te(s,b??"detail")?.elements.map(E=>E.id)??[]);else if((g==="delete"||g==="backspace")&&d.size)h.preventDefault(),se();else if(g==="escape")d.clear(),N();else if(g.startsWith("arrow")&&d.size){h.preventDefault();let k=h.altKey?.1:h.shiftKey?5:i||.5;for(let{el:E}of X())g==="arrowleft"&&(E.x=we(Math.max(0,E.x-k))),g==="arrowright"&&(E.x=we(E.x+k)),g==="arrowup"&&(E.y=we(Math.max(0,E.y-k))),g==="arrowdown"&&(E.y=we(E.y+k));oe(),N()}};e.addEventListener("keydown",te,{signal:I});let ne=!1;return nt(s).then(()=>{ne||N()}),N(),{getDefinition:()=>Ie(s),setDefinition(h){s=Ie(h),xt(s),d.clear(),b=null,f.length=0,f.push(JSON.stringify(s)),u=[],N(),p!=="design"&&U(p)},setData(h){a=h,N(),p==="preview"&&U("preview")},undo:W,redo:ce,setMode:U,destroy(){ne=!0,y?.destroy(),clearTimeout(R),J.abort(),e.innerHTML="",e.classList.remove("fr-designer","is-preview","is-json")}}}function ms(e){let t=new Map,n=s=>s.toLowerCase().replace(/[\s'"_-]/g,"");for(let[s,a]of Object.entries(e))t.set(n(s),{normal:Ot(a.normal),bold:a.bold?Ot(a.bold):void 0});let r=t.values().next().value;if(!r)throw new Error("ttfMeasurer needs at least one font");let o=new Map;return{width(s,a){let l=t.get(n(a.family))??r,i=a.bold&&l.bold||l.normal,p=`${a.family}|${a.bold?1:0}|${s}`,d=o.get(p);if(d===void 0){d=0;for(let b of s){let c=i.glyphId(b.codePointAt(0)),f=i;!c&&i!==r.normal&&(f=r.normal,c=f.glyphId(b.codePointAt(0))),d+=f.advance(c)/f.unitsPerEm}a.bold&&!l.bold&&(d*=1.02),o.size>5e4&&o.clear(),o.set(p,d)}return d*a.size*$e}}}async function hs(e=["Nanum Gothic"]){let t={};for(let n of e){let r=mt(n);r?.normal&&(t[n]={normal:await zt(r.normal),bold:r.bold?await zt(r.bold):void 0})}return t}async function gs(e,t,n){let r=n.fonts??await hs();return{layout:yt(e,t,{...n,measure:n.measure??ms(r)}),fonts:r}}async function Oi(e,t={},n={}){let{layout:r,fonts:o}=await gs(e,t,n),s=Object.values(o)[0];return wt(r.pages,{title:e.name,creator:"FreeReport",...n.pdf,fonts:{default:s,...o}})}async function qi(e,t={},n={}){if(n.mode==="data")return Nt(e,t,{params:n.params});let{layout:r}=await gs(e,t,n);return Bt(r,e)}export{Qe as AgentError,Ln as FUNCTIONS,ot as PAPER,et as agent,gt as applyEmboss,bn as blankReport,ro as canonicalText,Tr as canvasMeasurer,Dn as checkExpression,Be as compile,Xe as contentWidth,Hi as createDesigner,br as createReport,yr as createViewer,tr as dataToCsv,Nt as dataToXlsx,$t as defaultMeasurer,Pt as embossImage,Un as encodeCode128,_n as encodeDataMatrix,Gn as encodeEan13,Kn as encodePdf417,Wn as encodeQr,nt as ensureFonts,Rr as estimateMeasurer,Me as evaluate,jt as fingerprintPages,Mt as formatDate,Dr as formatNumber,ve as formatValue,mt as getFont,Ue as interpolate,St as koreanAmount,Rn as koreanNumber,yt as layoutReport,zt as loadFontBytes,hs as loadFonts,_e as pageGeometry,Ke as pageToSvg,ar as pagesToHwpx,Bt as pagesToXlsx,at as paramValues,mr as printPages,Mn as registerFont,Js as renderPage,Oi as renderPdf,qi as renderXlsx,kn as resetMeasurer,Ne as rowsOf,rs as saveFile,As as setLicenseKey,no as sha256Hex,ms as ttfMeasurer,zr as verifyLicense,Vt as version,$n as wrapText,wt as writePdf,an as writeXlsx};
|
|
131
|
+
<div class="fr-dz-band-resize" data-band-resize="${F.key}" title="${r.height}"></div>
|
|
132
|
+
</section>`).join(""),ie(),O(),e.querySelectorAll('[data-act="undo"]').forEach(F=>F.disabled=u.length<2),e.querySelectorAll('[data-act="redo"]').forEach(F=>F.disabled=!d.length);let k=p.size>0,P=p.size>1;for(let F of["cut","copy","del"])e.querySelector(`[data-act="${F}"]`).disabled=!k;for(let F of["alignL","alignC","alignR","alignT","alignM","alignB","sameW","sameH"])e.querySelector(`[data-act="${F}"]`).disabled=!P;e.querySelector('[data-act="paste"]').disabled=!l.length},O=()=>{let m=_();A.innerHTML=m.length?m.map(P=>`<button type="button" class="fr-dz-field" draggable="true" data-field="${we(P)}" title="${we(P)}">${we(P)}</button>`).join(""):`<p class="fr-dz-empty">${o.noFields}</p>`;let w=new Set(Ue(s).map(P=>P.key)),E=["title","pageHeader","columnHeader","detail","summary","pageFooter","noData"],k=s.bands.groups??[];T.innerHTML=E.map(P=>`<label class="fr-dz-bandopt"><input type="checkbox" data-band-toggle="${P}"${w.has(P)?" checked":""}> ${Sr[n][P]}</label>`).join("")+k.map((P,F)=>`<div class="fr-dz-groupopt"><span>${Sr[n].groupHeader.replace(/ .*/,"")} ${F+1}: <code>${we(P.by)}</code></span><button type="button" class="fr-btn fr-icon" data-group-remove="${F}" title="${o.remove}" aria-label="${o.remove}">${De("x")}</button></div>`).join("")+`<div class="fr-dz-addgroup"><select aria-label="${o.addGroup}">${m.map(P=>`<option>${we(P)}</option>`).join("")}</select><button type="button" class="fr-btn" data-act="addGroup">${De("plus")}<span>${o.addGroup}</span></button></div>`},X=[],ie=()=>{let m=[...p].map(w=>je(s,w)?.el).filter(w=>!!w);if(m.length)X=ms(m,r,s);else if(b&&Te(s,b)){let w=Ue(s).find(E=>E.key===b);X=hs(w.band,bs(w,n),r,w.group,w.key==="detail")}else X=gs(s,r);y.innerHTML=X.map((w,E)=>{if(w.kind==="section")return`<h3 class="fr-dz-sec">${we(w.label)}</h3>`;let k=w.get?.(),P=`fr-f-${E}`,F=`fr-dz-prop${w.wide||w.kind==="textarea"||w.kind==="json"||w.kind==="expr"||w.kind==="toggles"?" is-wide":""}${w.kind==="check"?" is-check":""}`;if(w.kind==="check")return`<label class="${F}"><input type="checkbox" data-f="${E}"${k?" checked":""}> ${we(w.label)}</label>`;if(w.kind==="toggles")return`<div class="${F}">${w.label?`<span class="fr-dz-plabel">${we(w.label)}</span>`:""}<span class="fr-dz-toggles">${w.toggles.map((B,te)=>`<button type="button" class="fr-btn fr-dz-toggle" data-f="${E}" data-k="${te}" title="${we(B.title)}" aria-label="${we(B.title)}" aria-pressed="${B.get()}">${we(B.label)}</button>`).join("")}</span></div>`;let g=`<label for="${P}" class="fr-dz-plabel">${we(w.label)}</label>`,L=k==null?"":String(k);if(w.kind==="select")return`<div class="${F}">${g}<select id="${P}" data-f="${E}">${k===void 0?'<option value="" selected>\u2014</option>':""}${w.options.map(B=>`<option value="${we(B.value)}"${B.value===L?" selected":""}>${we(B.label)}</option>`).join("")}</select></div>`;if(w.kind==="textarea"||w.kind==="json")return`<div class="${F}">${g}<textarea id="${P}" data-f="${E}" rows="${w.kind==="json"?6:3}" spellcheck="false">${we(L)}</textarea><small class="fr-dz-err" data-err="${E}"></small></div>`;if(w.kind==="color")return`<div class="${F}">${g}<span class="fr-dz-color"><input type="color" data-f="${E}" data-color value="${/^#[0-9a-f]{6}$/i.test(L)?L:"#ffffff"}" aria-label="${we(w.label)}"><input type="text" id="${P}" data-f="${E}" value="${we(L)}" placeholder="\u2014"></span></div>`;let W=w.kind==="number"?"number":"text";return`<div class="${F}">${g}<input id="${P}" type="${W}" data-f="${E}" value="${we(L)}"${w.step?` step="${w.step}"`:""}${w.min!==void 0?` min="${w.min}"`:""}${w.placeholder?` placeholder="${we(w.placeholder)}"`:""}${w.kind==="expr"?' spellcheck="false" class="is-expr"':""}>${w.kind==="expr"?`<small class="fr-dz-err" data-err="${E}">${we(vr(L,r))}</small>`:""}</div>`}).join("")},ge=(m,w)=>{let E=Number(m.dataset.f),k=X[E];if(k){if(k.kind==="toggles"){let P=k.toggles[Number(m.dataset.k)];P.set(!P.get())}else if(k.kind==="check")k.set?.(m.checked);else{let P=m.value;if(k.kind==="expr"){let F=vr(P,r),g=y.querySelector(`[data-err="${E}"]`);g&&(g.textContent=F)}if(k.kind==="json")try{k.set?.(P);let F=y.querySelector(`[data-err="${E}"]`);F&&(F.textContent="")}catch(F){let g=y.querySelector(`[data-err="${E}"]`);g&&(g.textContent=`${o.jsonError}: ${F.message}`);return}else if(k.kind==="number"){if(P===""||!Number.isFinite(Number(P)))return;k.set?.(Number(P))}else k.set?.(P)}if(w){ae();let P=document.activeElement?.id;H(),P&&k.kind!=="toggles"&&k.kind!=="check"&&document.getElementById(P)?.focus()}else ye()}},ye=()=>{let m=y.innerHTML,w=document.activeElement?.id,E=document.activeElement,k=E&&"selectionStart"in E?E.selectionStart:null;if(H(),w){let P=document.getElementById(w);if(P&&(P.focus(),k!==null&&"setSelectionRange"in P))try{P.setSelectionRange(k,k)}catch{}}};y.addEventListener("input",m=>{let w=m.target;if(!w.dataset.f)return;let E=X[Number(w.dataset.f)];if(w.dataset.color!==void 0){let k=w.parentElement.querySelector("input[type=text]");k.value=w.value}E&&(E.kind==="text"||E.kind==="textarea"||E.kind==="expr"||E.kind==="number")&&ge(w,!1)}),y.addEventListener("change",m=>{let w=m.target;w.dataset.f&&ge(w,!0)}),y.addEventListener("click",m=>{let w=m.target.closest(".fr-dz-toggle");w&&ge(w,!0)}),y.addEventListener("submit",m=>m.preventDefault());let Z=()=>[...p].map(m=>je(s,m)).filter(m=>!!m),J=(m,w=!1)=>{w||(p=new Set);for(let k of m)w&&p.has(k)?p.delete(k):p.add(k);let E=m.length?je(s,m[0]):null;E&&(b=E.slot.key),H()},fe=()=>{for(let{slot:m,el:w}of Z())m.band.elements=m.band.elements.filter(E=>E!==w);p.clear(),ae(),H()},de=()=>{l=Z().map(m=>Be(m.el))},pe=()=>{if(!l.length)return;let m=b&&Te(s,b)?b:Ue(s).find(k=>k.key==="detail")?.key??Ue(s)[0]?.key;if(!m)return;let w=Te(s,m),E=[];for(let k of l){let P=Be(k);P.id=Mt(s),P.x=xe(P.x+2,.5),P.y=xe(Math.min(P.y+2,Math.max(0,w.height-Math.max(1,P.h))),.5),w.elements.push(P),E.push(P.id)}l=l.map(k=>({...Be(k),x:k.x+2,y:k.y+2})),ae(),J(E)},ce=m=>{let w=Z().map(L=>L.el);if(w.length<2)return;let E=Math.min(...w.map(L=>L.x)),k=Math.max(...w.map(L=>L.x+L.w)),P=Math.min(...w.map(L=>L.y)),F=Math.max(...w.map(L=>L.y+L.h)),g=w[0];for(let L of w)m==="alignL"?L.x=E:m==="alignR"?L.x=xe(k-L.w):m==="alignC"?L.x=xe((E+k)/2-L.w/2):m==="alignT"?L.y=P:m==="alignB"?L.y=xe(F-L.h):m==="alignM"?L.y=xe((P+F)/2-L.h/2):m==="sameW"?L.w=g.w:m==="sameH"&&(L.h=g.h);ae(),H()},R=(m,w,E,k,P)=>{let F=Te(s,w);if(!F)return;let g=fs(m,Mt(s),xe(E,i||.01),xe(k,i||.01),F.height,P);if(g.x=Math.max(0,Math.min(g.x,Xe(s)-Math.min(g.w,5))),g.y=Math.max(0,Math.min(g.y,Math.max(0,F.height-(g.h||0)))),g.y+g.h>F.height&&(F.height=xe(g.y+g.h,.5)),F.elements.push(g),m==="field"&&P&&w==="detail"&&s.bands.columnHeader){let L=s.bands.columnHeader;L.elements.some(B=>B.x<g.x+g.w&&B.x+B.w>g.x)||L.elements.push({id:Mt(s),type:"text",x:g.x,y:0,w:g.w,h:L.height,text:P,style:{bold:!0,align:"center",background:"#eef1f6",border:"0.2 solid #8a94a6"}}),g.style={border:"0.15 solid #b9c1cd",...typeof(He(s,a).rows[0]??{})[P]=="number"?{align:"right"}:{}},typeof(He(s,a).rows[0]??{})[P]=="number"&&(g.format="#,##0"),g.h=F.height,g.y=0}ae(),J([g.id])},N=null,D=(m,w)=>{let E=m.getBoundingClientRect();return{x:(w.clientX-E.left)/z(),y:(w.clientY-E.top)/z()}};M.addEventListener("pointerdown",m=>{if(m.button!==0)return;let w=m.target;M.focus({preventScroll:!0});let E=w.closest(".fr-dz-h"),k=w.closest(".fr-dz-el"),P=w.closest("[data-band-resize]"),F=w.closest("[data-band-head]"),g=w.closest("[data-band-area]");if(P){let L=P.dataset.bandResize;N={kind:"band",key:L,startY:m.clientY,orig:Te(s,L).height}}else if(E&&k){let L=je(s,k.dataset.id);N={kind:"resize",id:L.el.id,handle:E.dataset.h,startX:m.clientX,startY:m.clientY,orig:{x:L.el.x,y:L.el.y,w:L.el.w,h:L.el.h}}}else if(k){let L=k.dataset.id;if(m.shiftKey||m.ctrlKey||m.metaKey){J([L],!0);return}p.has(L)||J([L]),N={kind:"move",startX:m.clientX,startY:m.clientY,moved:!1,items:Z().map(W=>({id:W.el.id,x:W.el.x,y:W.el.y,key:W.slot.key}))}}else if(F){p.clear(),b=F.dataset.bandHead,H();return}else if(g){let L=g.dataset.bandArea,W=document.createElement("div");W.className="fr-dz-marquee",g.appendChild(W);let B=D(g,m);N={kind:"marquee",key:L,area:g,startX:B.x,startY:B.y,box:W,additive:m.shiftKey||m.ctrlKey},N.additive||(p.clear(),b=L)}else{p.clear(),b=null,H();return}M.setPointerCapture(m.pointerId),m.preventDefault()}),M.addEventListener("pointermove",m=>{if(!N)return;let w=z();if(N.kind==="move"){let E=(m.clientX-N.startX)/w,k=(m.clientY-N.startY)/w;if(!N.moved&&Math.hypot(E,k)*w<3)return;if(N.moved=!0,i&&!m.altKey){let P=N.items[0];E=xe(P.x+E,i)-P.x,k=xe(P.y+k,i)-P.y}for(let P of N.items){let F=j.querySelector(`.fr-dz-el[data-id="${P.id}"]`),g=je(s,P.id);if(!F||!g)continue;let L=g.el.type==="line";F.style.left=`${Math.min(P.x+E,P.x+E+(L?g.el.w:0))*w}px`,F.style.top=`${Math.min(P.y+k,P.y+k+(L?g.el.h:0))*w}px`}}else if(N.kind==="resize"){let E=je(s,N.id);if(!E)return;let k=E.el,P=(m.clientX-N.startX)/w,F=(m.clientY-N.startY)/w,g=N.orig,L=B=>i&&!m.altKey?xe(B,i):xe(B);if(k.type==="line")N.handle==="nw"?(k.x=L(g.x+P),k.y=L(g.y+F),k.w=xe(g.x+g.w-k.x),k.h=xe(g.y+g.h-k.y)):(k.w=L(g.x+g.w+P)-g.x,k.h=L(g.y+g.h+F)-g.y,m.shiftKey&&(Math.abs(k.w)>Math.abs(k.h)?k.h=0:k.w=0));else{if(N.handle.includes("e")&&(k.w=Math.max(1,L(g.x+g.w+P)-g.x)),N.handle.includes("s")&&(k.h=Math.max(1,L(g.y+g.h+F)-g.y)),N.handle.includes("w")){let B=Math.min(L(g.x+P),g.x+g.w-1);k.w=xe(g.x+g.w-B),k.x=B}if(N.handle.includes("n")){let B=Math.min(L(g.y+F),g.y+g.h-1);k.h=xe(g.y+g.h-B),k.y=B}}P=F=0;let W=j.querySelector(`.fr-dz-el[data-id="${N.id}"]`);W&&(W.outerHTML=Y(k,E.slot))}else if(N.kind==="marquee"){let E=D(N.area,m),k=Math.min(E.x,N.startX),P=Math.min(E.y,N.startY);Object.assign(N.box.style,{left:`${k*w}px`,top:`${P*w}px`,width:`${Math.abs(E.x-N.startX)*w}px`,height:`${Math.abs(E.y-N.startY)*w}px`})}else if(N.kind==="band"){let E=Te(s,N.key),k=Math.max(1,...E.elements.map(g=>g.y+Math.max(g.h,0)));E.height=Math.max(k,xe(N.orig+(m.clientY-N.startY)/w,.5));let P=j.querySelector(`[data-band-area="${N.key}"]`);P&&(P.style.height=`${E.height*w}px`);let F=j.querySelector(`[data-band-head="${N.key}"] small`);F&&(F.textContent=`${E.height}mm`)}});let C=m=>{if(!N)return;let w=N;N=null;let E=z();if(w.kind==="move"&&w.moved){let k=(m.clientX-w.startX)/E,P=(m.clientY-w.startY)/E;if(i&&!m.altKey){let L=w.items[0];k=xe(L.x+k,i)-L.x,P=xe(L.y+P,i)-L.y}let g=document.elementsFromPoint(m.clientX,m.clientY).find(L=>L.dataset?.bandArea)?.dataset.bandArea;for(let L of w.items){let W=je(s,L.id);if(!W)continue;let B=W.el;if(B.x=xe(Math.max(0,L.x+k)),B.y=xe(L.y+P),g&&g!==W.slot.key){let se=j.querySelector(`[data-band-area="${W.slot.key}"]`),Fe=(j.querySelector(`[data-band-area="${g}"]`).getBoundingClientRect().top-se.getBoundingClientRect().top)/E;B.y=xe(B.y-Fe),W.slot.band.elements.splice(W.index,1),Te(s,g).elements.push(B),b=g}let te=je(s,L.id).slot.band;B.y=Math.max(0,B.y),B.y+Math.max(B.h,0)>te.height&&(te.height=xe(B.y+Math.max(B.h,0),.5))}ae(),H()}else if(w.kind==="resize"||w.kind==="band"){if(w.kind==="resize"){let k=je(s,w.id);k&&k.el.y+Math.max(k.el.h,0)>k.slot.band.height&&(k.slot.band.height=xe(k.el.y+k.el.h,.5))}ae(),H()}else if(w.kind==="marquee"){let k=w.box.getBoundingClientRect();w.box.remove();let P=Te(s,w.key),F=w.area.getBoundingClientRect(),g=(k.left-F.left)/E,L=(k.top-F.top)/E,W=g+k.width/E,B=L+k.height/E,te=k.width<2&&k.height<2?[]:P.elements.filter(se=>{let he=Math.min(se.x,se.x+se.w),Fe=Math.max(se.x,se.x+se.w),tt=Math.min(se.y,se.y+se.h),Vt=Math.max(se.y,se.y+se.h);return he<W&&Fe>g&&tt<B&&Vt>L}).map(se=>se.id);w.additive?te.forEach(se=>p.add(se)):p=new Set(te),b=w.key,H()}};M.addEventListener("pointerup",C),M.addEventListener("pointercancel",C),M.addEventListener("dblclick",m=>{let w=m.target.closest(".fr-dz-el");if(!w)return;let E=je(s,w.dataset.id);if(!E||E.el.type!=="text"&&E.el.type!=="field")return;let k=E.el,P=document.createElement("textarea");P.className="fr-dz-inline",P.value=k.type==="text"?k.text:k.expr,w.appendChild(P),P.focus(),P.select();let F=g=>{P.isConnected&&(g&&(k.type==="text"?k.text=P.value:k.expr=P.value,ae()),H())};P.addEventListener("blur",()=>F(!0)),P.addEventListener("keydown",g=>{g.stopPropagation(),g.key==="Escape"?F(!1):g.key==="Enter"&&(k.type==="field"||!g.shiftKey)&&(g.preventDefault(),F(!0))})});let ne=new AbortController,q=ne.signal;e.addEventListener("dragstart",m=>{let w=m.target.closest("[data-tool]"),E=m.target.closest("[data-field]");!w&&!E||(m.dataTransfer.setData("text/plain",w?`tool:${w.dataset.tool}`:`field:${E.dataset.field}`),m.dataTransfer.effectAllowed="copy")},{signal:q}),M.addEventListener("dragover",m=>{m.target.closest("[data-band-area]")&&(m.preventDefault(),m.dataTransfer.dropEffect="copy")}),M.addEventListener("drop",m=>{let w=m.target.closest("[data-band-area]"),E=m.dataTransfer?.getData("text/plain")??"";if(!w||!E.includes(":"))return;m.preventDefault();let k=D(w,m),[P,F]=[E.slice(0,E.indexOf(":")),E.slice(E.indexOf(":")+1)];P==="tool"?R(F,w.dataset.bandArea,k.x,k.y):P==="field"&&R("field",w.dataset.bandArea,k.x,k.y,F)});let G=m=>{f=m,e.querySelectorAll(".fr-tab").forEach(w=>w.setAttribute("aria-selected",String(w.dataset.mode===m))),e.classList.toggle("is-preview",m==="preview"),e.classList.toggle("is-json",m==="json"),M.hidden=m!=="design",I.hidden=m!=="preview",V.hidden=m!=="json",h?.destroy(),h=null,m==="preview"&&(h=xr(I,{definition:Be(s),data:a,lang:n,licenseKey:t.licenseKey,toolbar:{csv:!0}})),m==="json"&&(V.querySelector("textarea").value=JSON.stringify(s,null,2),V.querySelector(".fr-dz-json-err").textContent="")},S=(m,w)=>{let E=URL.createObjectURL(new Blob([m],{type:"application/json"})),k=document.createElement("a");k.href=E,k.download=w,k.click(),setTimeout(()=>URL.revokeObjectURL(E),1e3)};e.addEventListener("click",m=>{var L;let w=m.target,E=w.closest(".fr-tab");if(E){G(E.dataset.mode);return}let k=w.closest("[data-tool]");if(k){let W=b&&Te(s,b)?b:"detail";Te(s,W)&&R(k.dataset.tool,W,0,0);return}let P=w.closest("[data-field]");if(P){let W=b&&Te(s,b)?b:"detail",B=Te(s,W);B&&R("field",W,Math.max(0,...B.elements.map(te=>te.x+te.w))%Xe(s),0,P.dataset.field);return}let F=w.closest("[data-group-remove]");if(F){s.bands.groups?.splice(Number(F.dataset.groupRemove),1),s.bands.groups?.length||delete s.bands.groups,b=null,ae(),H();return}let g=w.closest("[data-act]")?.dataset.act;if(g)switch(g){case"new":confirm(o.confirmNew)&&(s=wn(),vt(s),p.clear(),b=null,ae(),H());break;case"open":oe.click();break;case"save":t.onSave?t.onSave(Be(s)):S(JSON.stringify(s,null,2),`${(s.name??"report").replace(/[\\/:*?"<>|]+/g,"_")}.json`);break;case"undo":U();break;case"redo":le();break;case"cut":de(),fe();break;case"copy":de(),H();break;case"paste":pe();break;case"del":fe();break;case"grid":i=i?0:1,w.closest("[data-act]").setAttribute("aria-pressed",String(!!i));break;case"zoomIn":c=Math.min(3,Math.round((c+.1)*10)/10),H();break;case"zoomOut":c=Math.max(.4,Math.round((c-.1)*10)/10),H();break;case"addGroup":{let W=e.querySelector(".fr-dz-addgroup select")?.value;if(!W)break;let B=(L=s.bands).groups??(L.groups=[]),te=Xe(s);B.push({by:W,sort:"asc",header:{height:7,elements:[{id:Mt(s),type:"text",x:0,y:0,w:te,h:7,text:`{${W}}`,style:{bold:!0,border:{bottom:!0}}}]},footer:{height:7,elements:[{id:Mt(s),type:"text",x:0,y:0,w:te,h:7,text:`{${W}} {count()}\uAC74`,style:{align:"right",color:"#4a5568"}}]}}),ae(),H();break}case"applyJson":{let W=V.querySelector(".fr-dz-json-err");try{let B=JSON.parse(V.querySelector("textarea").value);if(!B||typeof B!="object"||!B.bands)throw new Error('"bands" is missing');s=B,vt(s),p.clear(),ae(),H(),W.textContent="",G("design")}catch(B){W.textContent=`${o.jsonError}: ${B.message}`}break}default:(g.startsWith("align")||g==="sameW"||g==="sameH")&&ce(g)}},{signal:q}),T.addEventListener("change",m=>{let w=m.target.closest("[data-band-toggle]");if(!w)return;let E=w.dataset.bandToggle;w.checked?kr(s,E,{height:E==="title"?14:8,elements:[]}):(kr(s,E,void 0),b===E&&(b=null),p=new Set([...p].filter(k=>je(s,k)))),ae(),H()}),oe.addEventListener("change",async()=>{let m=oe.files?.[0];if(m){try{let w=JSON.parse(await m.text());if(!w?.bands)throw new Error('"bands" is missing');s=w,vt(s),p.clear(),b=null,ae(),H()}catch(w){alert(`${o.jsonError}: ${w.message}`)}oe.value=""}});let Q=m=>{let w=m.target;if(w.closest("input, textarea, select")||f!=="design"||!e.contains(w)&&w!==document.body)return;let E=m.ctrlKey||m.metaKey,k=m.key.toLowerCase();if(E&&k==="z"&&!m.shiftKey)m.preventDefault(),U();else if(E&&(k==="y"||k==="z"&&m.shiftKey))m.preventDefault(),le();else if(E&&k==="c")p.size&&(m.preventDefault(),de(),H());else if(E&&k==="x")p.size&&(m.preventDefault(),de(),fe());else if(E&&k==="v")m.preventDefault(),pe();else if(E&&k==="d")m.preventDefault(),de(),pe();else if(E&&k==="a")m.preventDefault(),J(Te(s,b??"detail")?.elements.map(F=>F.id)??[]);else if((k==="delete"||k==="backspace")&&p.size)m.preventDefault(),fe();else if(k==="escape")p.clear(),H();else if(k.startsWith("arrow")&&p.size){m.preventDefault();let P=m.altKey?.1:m.shiftKey?5:i||.5;for(let{el:F}of Z())k==="arrowleft"&&(F.x=xe(Math.max(0,F.x-P))),k==="arrowright"&&(F.x=xe(F.x+P)),k==="arrowup"&&(F.y=xe(Math.max(0,F.y-P))),k==="arrowdown"&&(F.y=xe(F.y+P));ae(),H()}};e.addEventListener("keydown",Q,{signal:q});let ee=!1;return rt(s).then(()=>{ee||H()}),H(),{getDefinition:()=>Be(s),setDefinition(m){s=Be(m),vt(s),p.clear(),b=null,u.length=0,u.push(JSON.stringify(s)),d=[],H(),f!=="design"&&G(f)},setData(m){a=m,H(),f==="preview"&&G("preview")},undo:U,redo:le,setMode:G,destroy(){ee=!0,h?.destroy(),clearTimeout($),ne.abort(),e.innerHTML="",e.classList.remove("fr-designer","is-preview","is-json")}}}function ys(e){let t=new Map,n=s=>s.toLowerCase().replace(/[\s'"_-]/g,"");for(let[s,a]of Object.entries(e))t.set(n(s),{normal:Ut(a.normal),bold:a.bold?Ut(a.bold):void 0});let r=t.values().next().value;if(!r)throw new Error("ttfMeasurer needs at least one font");let o=new Map;return{width(s,a){let c=t.get(n(a.family))??r,i=a.bold&&c.bold||c.normal,f=`${a.family}|${a.bold?1:0}|${s}`,p=o.get(f);if(p===void 0){p=0;for(let b of s){let l=i.glyphId(b.codePointAt(0)),u=i;!l&&i!==r.normal&&(u=r.normal,l=u.glyphId(b.codePointAt(0))),p+=u.advance(l)/u.unitsPerEm}a.bold&&!c.bold&&(p*=1.02),o.size>5e4&&o.clear(),o.set(f,p)}return p*a.size*$e}}}async function ws(e=["Nanum Gothic"]){let t={};for(let n of e){let r=ht(n);r?.normal&&(t[n]={normal:await Wt(r.normal),bold:r.bold?await Wt(r.bold):void 0})}return t}async function xs(e,t,n){let r=n.fonts??await ws();return{layout:kt(e,t,{...n,measure:n.measure??ys(r)}),fonts:r}}async function Wi(e,t={},n={}){let{layout:r,fonts:o}=await xs(e,t,n),s=Object.values(o)[0];return $t(r.pages,{title:e.name,creator:"FreeReport",...n.pdf,fonts:{default:s,...o}})}async function Ki(e,t={},n={}){if(n.mode==="data")return qt(e,t,{params:n.params,locale:n.locale});let{layout:r}=await xs(e,t,n);return Ot(r,e)}export{Qe as AgentError,Fn as FUNCTIONS,st as PAPER,et as agent,bt as applyEmboss,wn as blankReport,so as canonicalText,jr as canvasMeasurer,Bn as checkExpression,Ne as compile,Xe as contentWidth,Gi as createDesigner,wr as createReport,xr as createViewer,rr as dataToCsv,qt as dataToXlsx,St as defaultMeasurer,Ct as embossImage,Wn as encodeCode128,Vn as encodeDataMatrix,Kn as encodeEan13,Xn as encodePdf417,_n as encodeQr,rt as ensureFonts,Pr as estimateMeasurer,Me as evaluate,Lt as fingerprintPages,Rt as formatDate,Br as formatNumber,ve as formatValue,ht as getFont,Ge as interpolate,Tt as koreanAmount,Pn as koreanNumber,kt as layoutReport,Wt as loadFontBytes,ws as loadFonts,_e as pageGeometry,Ke as pageToSvg,lr as pagesToHwpx,Ot as pagesToXlsx,it as paramValues,gr as printPages,En as registerFont,ta as renderPage,Wi as renderPdf,Ki as renderXlsx,vn as resetMeasurer,He as rowsOf,is as saveFile,Fs as setLicenseKey,oo as sha256Hex,ys as ttfMeasurer,Gr as verifyLicense,Jt as version,Mn as wrapText,$t as writePdf,cn as writeXlsx};
|