@namahapdf/core 0.1.0 → 0.2.0

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/index.js CHANGED
@@ -1,42 +1,42 @@
1
- import'./chunk-X7U5LSSK.js';import Bn from'zlib';import {TextAlignment,PDFDocument,StandardFonts,rgb,degrees,PDFRef,PDFRawStream,PDFName,PDFNumber,PDFString}from'pdf-lib';import {ed25519}from'@noble/curves/ed25519';var mt=class{constructor(){this.processors=new Map;}registerProcessor(e){this.processors.set(e.name,e),console.log(`[AvniEngine] Registered processor: ${e.name}`);}async runPipeline(e,n){let r=[],i=e;for(let s of n.tasks){let o=this.processors.get(s.processorName);if(!o)throw new Error(`Processor ${s.processorName} not found`);console.log(`[AvniEngine] Executing ${o.name}...`);let a=Date.now(),c=await o.process(i,s.params),l=Date.now();if(c.metrics={duration:l-a,originalSize:i.size,newSize:c.document.size},r.push(c),!c.success){console.error(`[AvniEngine] Pipeline failed at ${o.name}: ${c.error}`);break}i=c.document;}return r}getAvailableProcessors(){return Array.from(this.processors.keys())}},Di=new mt;var Gt=t=>({type:"name",value:t.startsWith("/")?t.slice(1):t}),Xt=()=>({type:"null"}),Xe=t=>({type:"boolean",value:t}),Yt=t=>({type:"integer",value:t}),Ht=t=>({type:"real",value:t}),pt=(t,e)=>({type:"string",value:t,encoding:e}),Kt=(t,e=0)=>({type:"ref",objNum:t,genNum:e});var xt=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="integer",In=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="real",Vt=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="string",M=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="dict",U=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="stream",q=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="ref",j=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="array",gt=t=>xt(t)||In(t),A=t=>!t||typeof t!="object"||!("type"in t)?null:t.type==="integer"||t.type==="real"?t.value:null;function Un(t){return !t||typeof t!="object"||!("type"in t)?null:t.type==="name"?t.value:null}function wi(t){if(!t)return [];let e=Un(t);return e?[e]:j(t)?t.items.map(n=>Un(n)).filter(n=>n!==null):[]}function Ln(t){return t&&M(t)?t:null}function Si(t,e){if(e<=0)return [];if(!t)return new Array(e).fill(null);let n=Ln(t);if(n)return new Array(e).fill(n);if(j(t)){let r=t.items.map(i=>Ln(i));return r.length>=e?r.slice(0,e):[...r,...new Array(e-r.length).fill(null)]}return new Array(e).fill(null)}function Re(t,e){return t?A(t.entries.get(e)):null}function Fi(t){let e=new TextDecoder("latin1").decode(t),n=e.indexOf(">"),r=(n>=0?e.slice(0,n):e).replace(/\s+/g,"");if(r.length===0)return new Uint8Array(0);let i=r.length%2===0?r:`${r}0`,s=new Uint8Array(i.length/2);for(let o=0;o<s.length;o++){let a=Number.parseInt(i.slice(o*2,o*2+2),16);if(Number.isNaN(a))throw new Error("Invalid ASCIIHex stream data");s[o]=a;}return s}function vi(t){let e=new TextDecoder("latin1").decode(t),n=[],r=[];for(let i=0;i<e.length;i++){let s=e[i];if(s==="~"&&e[i+1]===">")break;if(/\s/.test(s))continue;if(s==="z"){if(r.length!==0)throw new Error("Invalid ASCII85 stream data");n.push(0,0,0,0);continue}let o=s.charCodeAt(0);if(!(o<33||o>117)&&(r.push(o-33),r.length===5)){let a=0;for(let c of r)a=a*85+c;n.push(a>>>24&255,a>>>16&255,a>>>8&255,a&255),r=[];}}if(r.length>0){let i=r.length;for(;r.length<5;)r.push(84);let s=0;for(let a of r)s=s*85+a;let o=[s>>>24&255,s>>>16&255,s>>>8&255,s&255];n.push(...o.slice(0,i-1));}return new Uint8Array(n)}function Ci(t){let e=[];for(let n=0;n<t.length;){let r=t[n++];if(r===128)break;if(r<128){let o=r+1;for(let a=0;a<o&&n<t.length;a++)e.push(t[n++]);continue}let i=257-r;if(n>=t.length)break;let s=t[n++];for(let o=0;o<i;o++)e.push(s);}return new Uint8Array(e)}function Ai(t,e,n){let r=t+e-n,i=Math.abs(r-t),s=Math.abs(r-e),o=Math.abs(r-n);return i<=s&&i<=o?t:s<=o?e:n}function $n(t,e,n,r){let i=Math.max(1,Math.ceil(e*n/8)),s=Math.ceil(r*e*n/8);if(s<=0)return t;let o=s+1,a=Math.floor(t.length/o);if(a<=0)return t;let c=new Uint8Array(a*s),l=new Uint8Array(s);for(let f=0;f<a;f++){let d=t[f*o],u=t.subarray(f*o+1,f*o+1+s),h=c.subarray(f*s,(f+1)*s);switch(d){case 0:{h.set(u);break}case 1:{for(let m=0;m<s;m++){let p=m>=i?h[m-i]:0;h[m]=u[m]+p&255;}break}case 2:{for(let m=0;m<s;m++)h[m]=u[m]+l[m]&255;break}case 3:{for(let m=0;m<s;m++){let p=m>=i?h[m-i]:0,x=l[m];h[m]=u[m]+Math.floor((p+x)/2)&255;}break}case 4:{for(let m=0;m<s;m++){let p=m>=i?h[m-i]:0,x=l[m],g=m>=i?l[m-i]:0;h[m]=u[m]+Ai(p,x,g)&255;}break}default:{h.set(u);break}}l=h.slice();}return c}function Mi(t){let e=[{bytes:t,trimmed:0,skippedHeader:false}];t.length>2&&e.push({bytes:t.subarray(2),trimmed:0,skippedHeader:true});let n=Math.min(64,Math.max(0,t.length-1));for(let r=1;r<=n;r++){let i=t.subarray(0,t.length-r);e.push({bytes:i,trimmed:r,skippedHeader:false}),i.length>2&&e.push({bytes:i.subarray(2),trimmed:r,skippedHeader:true});}for(let r of e){try{return {inflated:new Uint8Array(Bn.inflateSync(Buffer.from(r.bytes))),mode:"zlib",trimmed:r.trimmed,skippedHeader:r.skippedHeader}}catch{}try{return {inflated:new Uint8Array(Bn.inflateRawSync(Buffer.from(r.bytes))),mode:"raw",trimmed:r.trimmed,skippedHeader:r.skippedHeader}}catch{}}return null}function ki(t,e){var s,o,a,c;let n=Mi(t);if(!n){let l=Array.from(t.subarray(0,Math.min(8,t.length))).map(u=>`0x${u.toString(16).padStart(2,"0")}`).join(" "),f=Math.max(0,t.length-8),d=Array.from(t.subarray(f)).map(u=>`0x${u.toString(16).padStart(2,"0")}`).join(" ");throw new Error(`FlateDecode failed after zlib/raw retries (including tail-trim recovery). len=${t.length} first=[${l}] last=[${d}]`)}let r=n.inflated;if(n.trimmed>0||n.skippedHeader){let l=[];n.trimmed>0&&l.push(`trimmed ${n.trimmed} byte(s)`),n.skippedHeader&&l.push("skipped first 2 header byte(s)"),console.warn(`[StreamDecoder] FlateDecode recovered (${l.join(", ")}) using ${n.mode} mode`);}if(((s=Re(e,"Predictor"))!=null?s:1)>=10){let l=(o=Re(e,"Colors"))!=null?o:1,f=(a=Re(e,"BitsPerComponent"))!=null?a:8,d=(c=Re(e,"Columns"))!=null?c:1;return $n(r,l,f,d)}return r}function Ri(t,e){var p,x,g,b;let s=0,o=9,a=258,c=[];for(let P=0;P<256;P++)c[P]=[P];let l=()=>{if(Math.floor(s/8)>=t.length)return null;let y=0;for(let D=0;D<o;D++){let v=s+D,F=t[Math.floor(v/8)]>>7-v%8&1;y=y<<1|F;}return s+=o,y},f=()=>{c.length=0;for(let P=0;P<256;P++)c[P]=[P];o=9,a=258;},d=[],u=null;for(;;){let P=l();if(P===null||P===257)break;if(P===256){f(),u=null;continue}let y;if(c[P])y=c[P];else if(u)y=[...u,u[0]];else break;d.push(...y),u&&(c[a++]=[...u,y[0]],a===1<<o&&o<12&&o++),u=y;}let h=new Uint8Array(d);if(((p=Re(e,"Predictor"))!=null?p:1)>=10){let P=(x=Re(e,"Colors"))!=null?x:1,y=(g=Re(e,"BitsPerComponent"))!=null?g:8,D=(b=Re(e,"Columns"))!=null?b:1;return $n(h,P,y,D)}return h}var _=class{static async decodeStream(e){return this.decodeStreamSync(e)}static decodeStreamSync(e){var c,l;let n=e.dict.entries.get("Filter"),r=e.dict.entries.get("DecodeParms"),i=wi(n),s=Si(r,i.length),o=(c=e.rawBytes)!=null?c:e.data;if(!o)throw new Error("Stream has no byte payload");if(i.length===0)return o;let a=o;for(let f=0;f<i.length;f++)a=this.applyFilterSync(i[f],a,(l=s[f])!=null?l:null);return a}static createLazyDecoder(e,n){return async()=>{let r={type:"stream",dict:e,rawBytes:n,decode:async()=>n};return this.decodeStreamSync(r)}}static applyFilterSync(e,n,r){switch(e){case "FlateDecode":case "Fl":return ki(n,r);case "ASCII85Decode":case "A85":return vi(n);case "ASCIIHexDecode":case "AHx":return Fi(n);case "LZWDecode":case "LZW":return Ri(n,r);case "DCTDecode":case "DCT":return n;case "JPXDecode":return console.warn("[StreamDecoder] JPXDecode not yet supported; returning raw bytes"),n;case "RunLengthDecode":case "RL":return Ci(n);case "CCITTFaxDecode":case "CCF":return console.warn("[StreamDecoder] CCITTFaxDecode not yet supported; returning raw bytes"),n;case "Crypt":return n;default:return console.warn(`[StreamDecoder] Unknown filter: ${e}; returning raw bytes`),n}}};var Se=class{constructor(e){this.pos=0;this.bytes=e;}skipWhitespace(){for(;this.pos<this.bytes.length;){let e=this.bytes[this.pos];if(e===0||e===9||e===10||e===12||e===13||e===32)this.pos++;else if(e===37)for(;this.pos<this.bytes.length&&this.bytes[this.pos]!==10&&this.bytes[this.pos]!==13;)this.pos++;else break}}peek(){return this.skipWhitespace(),this.pos<this.bytes.length?this.bytes[this.pos]:void 0}peekRaw(e=0){let n=this.pos+e;return n<this.bytes.length?this.bytes[n]:void 0}read(){return this.skipWhitespace(),this.pos<this.bytes.length?this.bytes[this.pos++]:void 0}readRaw(){return this.pos<this.bytes.length?this.bytes[this.pos++]:void 0}readWord(){this.skipWhitespace();let e=this.pos;for(;this.pos<this.bytes.length;){let n=this.bytes[this.pos];if(n===0||n===9||n===10||n===12||n===13||n===32||n===60||n===62||n===40||n===41||n===123||n===125||n===91||n===93||n===47||n===37)break;this.pos++;}return new TextDecoder().decode(this.bytes.subarray(e,this.pos))}readUntil(e){let n=this.pos,r=new TextEncoder().encode(e),i=r.length;for(;this.pos<=this.bytes.length-i;){let s=true;for(let o=0;o<i;o++)if(this.bytes[this.pos+o]!==r[o]){s=false;break}if(s){let o=this.bytes.subarray(n,this.pos);return this.pos+=i,o}this.pos++;}throw new Error(`Could not find sequence: ${e}`)}getRemainingBytes(){return this.bytes.subarray(this.pos)}getBytes(){return this.bytes}getPosition(){return this.pos}setPosition(e){this.pos=e;}};function Oi(t){let e=t.peekRaw(),n=t.peekRaw(1);if(e===13&&n===10){t.readRaw(),t.readRaw();return}if(e===10||e===13){t.readRaw();return}console.warn(`[WARN] No newline after 'stream' keyword at tokenizer position ${t.getPosition()}`);}function Ti(t){let e=t.getBytes(),n=t.getPosition(),r=[101,110,100,115,116,114,101,97,109];for(let i=n;i<=e.length-r.length;i++){let s=true;for(let d=0;d<r.length;d++)if(e[i+d]!==r[d]){s=false;break}if(!s)continue;let o=i>0?e[i-1]:10,a=i+r.length<e.length?e[i+r.length]:10;if(!(o===10||o===13||o===32||o===9)||!(a===10||a===13||a===32||a===9||a===62))continue;let f=i;return f>n&&e[f-1]===10&&(f-=1),f>n&&e[f-1]===13&&(f-=1),t.setPosition(i+r.length),e.subarray(n,f)}throw new Error("Could not find 'endstream' marker for stream object")}function _n(t){let e=t.readWord();return parseFloat(e)}function Ei(t){if(!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(t))throw new Error(`Invalid numeric token: ${t}`);let e=parseFloat(t);if(!Number.isFinite(e))throw new Error(`Invalid numeric value: ${t}`);return /^[+-]?\d+$/.test(t)?Yt(e):Ht(e)}function ji(t){t.skipWhitespace();let e=t.readWord(),n=Ei(e);if(!xt(n))return n;let r=t.getPosition();try{t.skipWhitespace();let i=t.readWord();if(!/^[+-]?\d+$/.test(i))return t.setPosition(r),n;if(t.skipWhitespace(),t.readWord()==="R")return Kt(n.value,parseInt(i,10))}catch{return t.setPosition(r),n}return t.setPosition(r),n}function Nn(t){let e=t.peek();if(e===40){t.read();let n=[],r=1;for(;r>0&&t.peekRaw()!==void 0;){let i=t.readRaw();if(i===40)r++;else if(i===41){if(r--,r===0)break;n.push(i);}else if(i===92){let s=t.peekRaw();if(s===void 0)break;if(s>=48&&s<=55){let o="";for(let a=0;a<3;a++){let c=t.peekRaw();if(c!==void 0&&c>=48&&c<=55)o+=String.fromCharCode(t.readRaw());else break}n.push(parseInt(o,8)&255);continue}t.readRaw(),s===110?n.push(10):s===114?n.push(13):s===116?n.push(9):s===98?n.push(8):s===102?n.push(12):s===40?n.push(40):s===41?n.push(41):s===92?n.push(92):s===10||(s===13?t.peekRaw()===10&&t.readRaw():n.push(s));}else n.push(i);}return pt(new Uint8Array(n),"literal")}else if(e===60){t.read();let n=[];for(;t.peekRaw()!==62;){let i=t.readRaw();if(i===void 0)throw new Error("Unexpected EOF in hex string");if(i===0||i===9||i===10||i===12||i===13||i===32)continue;let s=Ii(i);s!==-1&&n.push(s);}t.readRaw(),n.length%2===1&&n.push(0);let r=new Uint8Array(n.length/2);for(let i=0,s=0;i<n.length;i+=2,s++)r[s]=n[i]<<4|n[i+1];return pt(r,"hex")}throw new Error("Invalid string format")}function Ii(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:-1}function Bi(t){if(t.peek()!==47)throw new Error("Expected / for name");t.read();let n=t.readWord();return Gt(n)}function Ui(t){if(t.peek()!==91)throw new Error("Expected [ for array");t.read();let n=[];for(;t.peek()!==93;)n.push(he(t));return t.read(),{type:"array",items:n}}function Li(t){if(t.peek()!==60)throw new Error("Expected < for dict");if(t.read(),t.peek()!==60)throw new Error("Expected << for dict");t.read();let n=new Map;for(;;){if(t.skipWhitespace(),t.peekRaw()===62&&t.peekRaw(1)===62){t.readRaw(),t.readRaw();break}let r=he(t);if(!r||typeof r!="object"||r.type!=="name")throw new Error("Dictionary key must be a name");let i=r.value,s=he(t);n.set(i,s);}return {type:"dict",entries:n}}function he(t){let e=t.peek();if(e===void 0)throw new Error("Unexpected EOF while reading object");if(e===110){let n=t.readWord();if(n==="null")return Xt();if(n==="true")return Xe(true);if(n==="false")return Xe(false);throw new Error("Unknown keyword: "+n)}if(e===116||e===102){let n=t.readWord();if(n==="true")return Xe(true);if(n==="false")return Xe(false)}if(e===45||e===43||e===46||e>=48&&e<=57)return ji(t);if(e===40)return Nn(t);if(e===47)return Bi(t);if(e===91)return Ui(t);if(e===60){if(t.peekRaw(1)!==60)return Nn(t);let r=Li(t),i=t.getPosition();try{if(t.skipWhitespace(),t.readWord()==="stream"){Oi(t);let o,a=r.entries.get("Length"),c=A(a);if(typeof c=="number"){let l=t.getPosition();o=t.getRemainingBytes().subarray(0,c),t.setPosition(l+c),t.skipWhitespace();let f=t.readWord();f!=="endstream"&&console.warn(`[WARN] Expected 'endstream' but got '${f}' - stream may be malformed`);}else o=Ti(t);return {type:"stream",dict:r,rawBytes:o,data:o,decode:_.createLazyDecoder(r,o)}}else return t.setPosition(i),r}catch{return t.setPosition(i),r}}throw new Error(`Unknown object type at byte ${e}`)}function Wn(t){let e=_n(t),n=_n(t);if(t.readWord()!=="obj")throw new Error("Expected obj keyword");let i=he(t),s=t.readWord();if(s!=="endobj"){let o=t.getRemainingBytes(),a=o.subarray(0,Math.min(8192,o.length)),c=new TextDecoder("latin1").decode(a),l=c.search(/\bendobj\b/);if(l===-1){let f=c.replace(/[\r\n\t]+/g," ").slice(0,220);throw new Error(`Expected endobj keyword (got '${s||"<EOF>"}'). Nearby: "${f}"`)}t.setPosition(t.getPosition()+l+6),console.warn(`[ObjectReader] Recovered non-immediate endobj for ${Math.floor(e)} ${Math.floor(n)} obj (first token: '${s||"<EOF>"}')`);}return {objNum:Math.floor(e),genNum:Math.floor(n),object:i}}function bt(t,e,n){let r=new TextDecoder("latin1");if(!Number.isFinite(e)||e<0||e>=t.length)throw new Error(`Invalid object offset ${e} (file size: ${t.length})`);let i=4096,s=8192,o=Math.max(0,e-i),a=Math.min(t.length,e+s),c=t.subarray(o,a),l=r.decode(c),f=/(\d+)\s+(\d+)\s+obj\b/g,d,u=[];for(;(d=f.exec(l))!==null;){let b=o+d.index,P=Math.abs(b-e),y=parseInt(d[1],10);u.push({absolutePos:b,matched:d[0],distance:P,objNum:y});}if(u.length===0){let b=Math.max(0,e-64),P=Math.min(t.length,e+128),y=r.decode(t.subarray(b,P)).replace(/[\r\n\t]+/g," ").slice(0,220);throw new Error(`Could not find object header near offset ${e} (searched ${o}-${a}). Snippet: "${y}"`)}if(n!==void 0&&!u.some(b=>b.objNum===n)){let b=r.decode(t),P=String(n),y=new RegExp(`(?<![0-9])${P}\\s+\\d+\\s+obj\\b`,"g"),D;for(;(D=y.exec(b))!==null;){let v=D.index;if(u.some(F=>F.absolutePos===v))continue;let S=Math.abs(v-e);u.push({absolutePos:v,matched:D[0].trim(),distance:S,objNum:n});}}u.sort((b,P)=>{let y=n!==void 0&&b.objNum===n?0:1,D=n!==void 0&&P.objNum===n?0:1;return y!==D?y-D:b.distance-P.distance});let h=Math.min(12,u.length),m=[];for(let b=0;b<h;b++){let P=u[b];try{let y=new Se(t.subarray(P.absolutePos)),D=Wn(y);if(n!==void 0&&D.objNum!==n)throw new Error(`Parsed object ${D.objNum} but expected ${n}`);return b>0&&console.warn(`[ObjectReader] Offset ${e} resolved via fallback candidate #${b+1}: ${P.matched} at ${P.absolutePos}`),{...D,objectOffset:P.absolutePos}}catch(y){let D=y instanceof Error?y.message:String(y);m.push(`#${b+1} ${P.matched} @${P.absolutePos}: ${D}`);}}let p=Math.max(0,e-64),x=Math.min(t.length,e+256),g=r.decode(t.subarray(p,x)).replace(/[\r\n\t]+/g," ").slice(0,280);throw new Error(`Failed to read indirect object near offset ${e}. Tried ${h}/${u.length} candidates. Errors: ${m.join(" || ")}. Snippet: "${g}"`)}function zt(t){let e=A(t.entries.get("XRefStm"));return e===null?null:Math.floor(e)}function $i(t){return t===0||t===9||t===10||t===12||t===13||t===32}function yt(t,e){let n=e;for(;n<t.length&&$i(t[n]);)n++;return n}function Gn(t,e){let n=e;for(;n<t.length&&t[n]!==10&&t[n]!==13;)n++;let r=new TextDecoder("latin1").decode(t.subarray(e,n));return n<t.length&&t[n]===13&&n++,n<t.length&&t[n]===10&&n++,{line:r,next:n}}function Jt(t,e,n){e:for(let r=n;r<=t.length-e.length;r++){for(let i=0;i<e.length;i++)if(t[r+i]!==e[i])continue e;return r}return -1}function Xn(t){return t===void 0?true:t===0||t===9||t===10||t===12||t===13||t===32||t===60||t===62||t===40||t===41||t===91||t===93||t===123||t===125||t===47||t===37}function Zt(t,e,n){if(e<0||e+n.length>t.length)return false;for(let s=0;s<n.length;s++)if(t[e+s]!==n[s])return false;let r=e>0?t[e-1]:void 0,i=e+n.length<t.length?t[e+n.length]:void 0;return Xn(r)&&Xn(i)}function Vn(t,e,n){let r=Math.max(0,n);for(;r<=t.length-e.length;){let i=Jt(t,e,r);if(i===-1)return -1;if(Zt(t,i,e))return i;r=i+1;}return -1}function _i(t,e,n,r){let i=[],s=Math.max(0,n),o=Math.min(t.length-e.length,Math.max(s,r));for(;s<=o;){let a=Jt(t,e,s);if(a===-1||a>o)break;Zt(t,a,e)&&i.push(a),s=a+1;}return i}function Yn(t,e,n,r){let i=Math.max(0,n-r),s=Math.min(t.length,n+r),o=_i(t,e,i,s);return o.length===0?-1:(o.sort((a,c)=>Math.abs(a-n)-Math.abs(c-n)),o[0])}function Ni(t,e,n,r){let i=Math.min(r,t.length);for(let s=Math.max(n,0);s<=i-e.length;s++){let o=true;for(let a=0;a<e.length;a++)if(t[s+a]!==e[a]){o=false;break}if(o){let a=s;for(let c=s+1;c<=i-e.length;c++){let l=true;for(let f=0;f<e.length;f++)if(t[c+f]!==e[f]){l=false;break}l&&(a=c);}return a}}return -1}function qt(t,e){let n=new Se(t.subarray(e)),r=he(n);if(!M(r))throw new Error("Trailer object is not a dictionary");return r}function Be(t){if(t===null)return "null";if(t===void 0)return "undefined";if(Array.isArray(t))return `Array(len=${t.length})`;if(typeof t=="number")return "number";if(typeof t!="object")return typeof t;let e=t;return typeof e.type=="string"?Array.isArray(e.items)?`PDFObject(type=${e.type}, items=${e.items.length})`:typeof e.value!="undefined"?`PDFObject(type=${e.type}, value=${String(e.value)})`:`PDFObject(type=${e.type})`:"object"}function Wi(t){return !t||typeof t!="object"||!("type"in t)?null:t.type==="name"?t.value:null}function zn(t,e){console.debug("[XRefTable]",t,e!=null?e:{});}function Hn(t,e){console.warn("[XRefTable]",t,e!=null?e:{});}function Kn(t,e){if(!t)throw new Error(`/${e} missing`);if(j(t)){let i=[];for(let s of t.items){let o=A(s);if(o===null)throw new Error(`/${e} must contain only numbers`);i.push(Math.floor(o));}return i}if(Array.isArray(t))return t.map(i=>Math.floor(Number(i)||0));if(typeof t=="number")return [Math.floor(t)];let n=A(t);if(n!==null)return [Math.floor(n)];let r=t;if(Array.isArray(r.items))return r.items.map(i=>Math.floor(Number(i)||0));throw new Error(`/${e} must be an array, got ${Be(t)}`)}function qn(t){let e=t.length,n=Math.min(1024*1024,e),r=new TextDecoder("latin1").decode(t.subarray(e-n,e)),i=r.lastIndexOf("startxref");if(i!==-1){let s=r.slice(i+9).match(/\d+/);if(s)return parseInt(s[0],10)}throw new Error("PDF missing startxref offset")}function et(t,e){let n=new TextDecoder("latin1"),r=new Uint8Array([120,114,101,102]),i=e,s=Vn(t,r,i);if(s===-1||s-e>32){let a=n.decode(t.subarray(e,Math.min(e+20,t.length)));throw new Error(`Expected 'xref' keyword near offset ${e}, found: ${a}`)}for(i=s+r.length;i<t.length&&(t[i]===13||t[i]===10);)i++;let o=new Map;for(;i<t.length;){for(;i<t.length&&(t[i]===13||t[i]===10);)i++;let a=i;for(;i<t.length&&t[i]!==13&&t[i]!==10;)i++;let c=n.decode(t.subarray(a,i)).trim();for(;i<t.length&&(t[i]===13||t[i]===10);)i++;if(!c)continue;if(c==="trailer"||c.startsWith("trailer")||c==="railer"||c.startsWith("railer")){let u=c.startsWith("railer")?Math.max(0,a-1):a,h=yt(t,u+7),m=qt(t,h),p=m.entries.get("Prev"),x=A(p),g=x===null?null:Math.floor(x),b=zt(m);if(o.size===0&&g===null&&b===null)throw new Error("No valid xref entries found");return {entries:o,trailer:m,prevXRefOffset:g,offset:e,xrefStmOffset:b}}if(c==="%%EOF"||c.startsWith("startxref")){let u=new Uint8Array([116,114,97,105,108,101,114]),h=Ni(t,u,e,a);if(h!==-1){let m=yt(t,h+7),p=qt(t,m),x=p.entries.get("Prev"),g=A(x),b=g===null?null:Math.floor(g),P=zt(p);if(o.size===0&&b===null&&P===null)throw new Error("No valid xref entries found");return {entries:o,trailer:p,prevXRefOffset:b,offset:e,xrefStmOffset:P}}throw new Error("Reached EOF before trailer in traditional xref section")}let l=c.match(/^(\d+)\s+(\d+)$/);if(!l){if(/^\d+$/.test(c)){let u=new Uint8Array([116,114,97,105,108,101,114]),h=Jt(t,u,Math.max(0,a-1));if(h!==-1&&h-a<=256){let m=yt(t,h+7),p=qt(t,m),x=p.entries.get("Prev"),g=A(x),b=g===null?null:Math.floor(g),P=zt(p);if(o.size===0&&b===null&&P===null)throw new Error("No valid xref entries found");return {entries:o,trailer:p,prevXRefOffset:b,offset:e,xrefStmOffset:P}}continue}throw new Error(`Invalid xref subsection header: ${c}`)}let f=parseInt(l[1],10),d=parseInt(l[2],10);for(let u=0;u<d;u++){if(i+20>t.length)throw new Error(`Truncated xref at entry ${f+u}`);let h=i,m=n.decode(t.subarray(i,i+20));i+=20;let p=m.substring(0,10),x=m.substring(11,16),g=m[17],b=0,P=0,y="f";if(/^\d{10}$/.test(p)&&/^\d{5}$/.test(x)&&(g==="n"||g==="f"))b=parseInt(p,10),P=parseInt(x,10),y=g;else {i=h;let D=Gn(t,i);i=D.next;let v=0;for(;v<3&&D.line.trim()==="";)D=Gn(t,i),i=D.next,v++;let S=D.line.match(/^\s*(\d{10})\s+(\d{5})\s+([nf])\b/);if(!S)throw new Error(`Malformed fixed-width xref entry: ${m}`);b=parseInt(S[1],10),P=parseInt(S[2],10),y=S[3];}o.set(f+u,{type:"uncompressed",offset:b,genNum:P,inUse:y==="n"});}}throw new Error("trailer keyword not found after xref entries")}function Gi(t,e){let{stream:n,resolvedObj:r}=Xi(t,e),i=n.dict,s=Wi(i.entries.get("Type"));s!=="XRef"&&Hn("Resolved stream is not /Type /XRef",{offset:e,resolvedObj:r,type:s}),zn("Parsing xref stream",{offset:e,resolvedObj:r,type:s,wShape:Be(i.entries.get("W")),indexShape:Be(i.entries.get("Index")),sizeShape:Be(i.entries.get("Size"))});let o,a;{let D=i.entries.get("W"),v=i.entries.get("Size"),S=A(v),F=i.entries.get("Index");try{if(o=Kn(D,"W"),o.length!==3)throw new Error("/W must contain three integers");if(S===null)throw new Error("XRef stream missing /Size");if(a=F?Kn(F,"Index"):[0,Math.floor(S)],a.length%2!==0)throw new Error("/Index must have even number of elements")}catch(w){let C=w instanceof Error?w.message:String(w);throw Hn("Failed parsing /W or /Index in xref stream",{offset:e,resolvedObj:r,error:C,wShape:Be(D),indexShape:Be(F),sizeShape:Be(v)}),w}}let c=new Map,[l,f,d]=o,u=l+f+d,h=_.decodeStreamSync(n),m=0;for(let D=0;D<a.length;D+=2){let v=a[D],S=a[D+1];for(let F=0;F<S;F++){if(m+u>h.length)throw new Error("XRef stream data is shorter than expected from /W and /Index");let w=L=>{let $=0;for(let H=0;H<L;H++)$=$<<8|h[m++];return $},C=l===0?1:w(l),O=w(f),E=w(d),I=v+F;C===0?c.set(I,{type:"uncompressed",offset:0,genNum:E,inUse:false}):C===1?c.set(I,{type:"uncompressed",offset:O,genNum:E,inUse:true}):C===2&&c.set(I,{type:"compressed",streamNum:O,indexNum:E,genNum:0,inUse:true});}}let p=i.entries.get("Prev"),x=A(p),g=x===null?null:Math.floor(x),b=new Map(i.entries),P=new Set(["W","Index","Filter","DecodeParms","Length","Columns","Predictor","Type","DL"]);for(let D of P)b.delete(D);return {entries:c,trailer:{type:"dict",entries:b},prevXRefOffset:g,offset:e}}function Xi(t,e){let n=[0,-64,64,-256,256,-1024,1024,-4096,4096,-8192,8192],r=new Set,i=[],s=[];for(let o of n){let a=e+o;if(!(a<0||a>=t.length))try{let c=bt(t,a),l=`${c.objNum}.${c.genNum}`;if(r.has(l))continue;if(r.add(l),!U(c.object)){i.push(`offset ${a}: ${l} is not a stream`);continue}let f=c.object,d=f.dict.entries.has("W"),u=f.dict.entries.has("Size"),h=f.dict.entries.get("Type"),m=h&&typeof h=="object"&&"type"in h&&h.type==="name"?h.value:null,p=m==="XRef";if(d&&u)return zn("Resolved xref stream candidate",{requestedOffset:e,probeOffset:a,object:`${c.objNum} ${c.genNum} obj`,type:m}),{stream:f,resolvedObj:`${c.objNum} ${c.genNum} obj`};s.push(`offset ${a}: ${l} stream type=${m!=null?m:"unknown"} hasW=${d} hasSize=${u} isTypeXRef=${p}`);}catch(c){let l=c instanceof Error?c.message:String(c);i.push(`offset ${a}: ${l}`);}}throw new Error(`Could not resolve xref stream with /W and /Size near startxref ${e}. Non-xref streams: ${s.join(" || ")||"none"}. Failures: ${i.join(" || ")||"none"}`)}function Jn(t,e){let n=new Uint8Array([120,114,101,102]),r=yt(t,e);if(Zt(t,r,n))return et(t,r);let i=Vn(t,n,Math.max(0,e));if(i!==-1&&i-e<=2048)return et(t,i);let s=Yn(t,n,e,32768);if(s!==-1)return et(t,s);if(new TextDecoder("latin1").decode(t.subarray(e,Math.min(e+64,t.length))).trimStart().startsWith("xref"))return et(t,e);try{return Gi(t,e)}catch(a){let c=Yn(t,n,e,131072);if(c!==-1)return et(t,c);throw a}}function Qt(t){let e=[],n=new Set,r=[qn(t)];for(;r.length>0;){let i=r.shift();if(i===null||n.has(i))continue;n.add(i);let s=Jn(t,i);e.push(s),s.xrefStmOffset!=null&&r.push(s.xrefStmOffset),s.prevXRefOffset!=null&&r.push(s.prevXRefOffset);}return e}var Yi=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function en(t){let e=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],n=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],r=1732584193,i=4023233417,s=2562383102,o=271733878,a=t.length,c=(56-(a+1)%64+64)%64,l=new Uint8Array(a+1+c+8);l.set(t),l[a]=128;let f=a*8;l[l.length-8]=f&255,l[l.length-7]=f>>>8&255,l[l.length-6]=f>>>16&255,l[l.length-5]=f>>>24&255;let d=new DataView(l.buffer);for(let m=0;m<l.length;m+=64){let p=r,x=i,g=s,b=o,P=new Uint32Array(16);for(let y=0;y<16;y++)P[y]=d.getUint32(m+y*4,true);for(let y=0;y<64;y++){let D,v;y<16?(D=x&g|~x&b,v=y):y<32?(D=b&x|~b&g,v=(5*y+1)%16):y<48?(D=x^g^b,v=(3*y+5)%16):(D=g^(x|~b),v=7*y%16);let S=b;b=g,g=x;let F=p+D+n[y]+P[v]|0;x=x+(F<<e[y]|F>>>32-e[y])|0,p=S;}r=r+p|0,i=i+x|0,s=s+g|0,o=o+b|0;}let u=new Uint8Array(16),h=new DataView(u.buffer);return h.setUint32(0,r,true),h.setUint32(4,i,true),h.setUint32(8,s,true),h.setUint32(12,o,true),u}function Hi(t,e){let n=new Uint8Array(256);for(let o=0;o<256;o++)n[o]=o;let r=0;for(let o=0;o<256;o++){r=(r+n[o]+t[o%t.length])%256;let a=n[o];n[o]=n[r],n[r]=a;}let i=new Uint8Array(e.length),s=0;r=0;for(let o=0;o<e.length;o++){s=(s+1)%256,r=(r+n[s])%256;let a=n[s];n[s]=n[r],n[r]=a,i[o]=e[o]^n[(n[s]+n[r])%256];}return i}var Oe=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),Ki=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);function Vi(t){let e=t.length/4,n=e+6,r=new Uint32Array(4*(n+1));for(let s=0;s<e;s++)r[s]=t[4*s]<<24|t[4*s+1]<<16|t[4*s+2]<<8|t[4*s+3];let i=[0,1,2,4,8,16,32,64,128,27,54];for(let s=e;s<4*(n+1);s++){let o=r[s-1];if(s%e===0){let a=o>>>24&255,c=o>>>16&255,l=o>>>8&255,f=o&255;o=Oe[c]<<24|Oe[l]<<16|Oe[f]<<8|Oe[a],o^=i[s/e]<<24;}else if(e>6&&s%e===4){let a=o>>>24&255,c=o>>>16&255,l=o>>>8&255,f=o&255;o=Oe[a]<<24|Oe[c]<<16|Oe[l]<<8|Oe[f];}r[s]=r[s-e]^o;}return r}function Zn(t){for(let e=0;e<16;e++)t[e]=Ki[t[e]];}function Qn(t){let e;e=t[13],t[13]=t[9],t[9]=t[5],t[5]=t[1],t[1]=e,e=t[2],t[2]=t[10],t[10]=e,e=t[6],t[6]=t[14],t[14]=e,e=t[3],t[3]=t[7],t[7]=t[11],t[11]=t[15],t[15]=e;}var zi=t=>(t<<1^(t>>>7&1)*27)&255;function se(t,e){let n=0,r=t;for(let i=0;i<8;i++)e>>>i&1&&(n^=r),r=zi(r);return n}function qi(t){for(let e=0;e<4;e++){let n=e*4,r=t[n],i=t[n+1],s=t[n+2],o=t[n+3];t[n]=se(r,14)^se(i,11)^se(s,13)^se(o,9),t[n+1]=se(r,9)^se(i,14)^se(s,11)^se(o,13),t[n+2]=se(r,13)^se(i,9)^se(s,14)^se(o,11),t[n+3]=se(r,11)^se(i,13)^se(s,9)^se(o,14);}}function tn(t,e,n){for(let r=0;r<4;r++){let i=e[n*4+r];t[r*4]^=i>>>24&255,t[r*4+1]^=i>>>16&255,t[r*4+2]^=i>>>8&255,t[r*4+3]^=i&255;}}function Ji(t,e,n){let r=new Uint8Array(16);r.set(t),tn(r,e,n);for(let i=n-1;i>=1;i--)Qn(r),Zn(r),tn(r,e,i),qi(r);return Qn(r),Zn(r),tn(r,e,0),r}function Zi(t,e){if(e.length<16)return e;let n=Vi(t),r=t.length/4+6,i=e.subarray(0,16),s=e.subarray(16),o=s.length/16,a=new Uint8Array(s.length),c=i;for(let f=0;f<o;f++){let d=f*16,u=s.subarray(d,d+16),h=Ji(u,n,r);for(let m=0;m<16;m++)a[d+m]=h[m]^c[m];c=u;}let l=a[a.length-1];if(l>0&&l<=16){let f=true;for(let d=a.length-l;d<a.length;d++)if(a[d]!==l){f=false;break}if(f)return a.subarray(0,a.length-l)}return a}var Pt=class{constructor(e,n){this.fileKey=new Uint8Array(0);this.v=0;this.r=0;this.isAes=false;this.parseEncryptDict(e,n);}parseEncryptDict(e,n){var b,P,y,D;let r=e.entries.get("V"),i=e.entries.get("R"),s=e.entries.get("Length"),o=e.entries.get("O"),a=e.entries.get("U"),c=e.entries.get("P"),l=e.entries.get("EncryptMetadata");this.v=(b=A(r))!=null?b:0,this.r=(P=A(i))!=null?P:0;let d=((y=A(s))!=null?y:40)/8,u=o&&"value"in o&&o.value instanceof Uint8Array?o.value:new Uint8Array(0),h=a&&"value"in a&&a.value instanceof Uint8Array?a.value:new Uint8Array(0),m=(D=A(c))!=null?D:0,p=l&&"value"in l?l.value:true,x=e.entries.get("CF"),g=e.entries.get("StmF");if(g&&"value"in g&&g.value==="AESV2")this.isAes=true;else if(x&&M(x)){let v=x.entries.get("StdCF");if(v&&M(v)){let S=v.entries.get("CFM");S&&"value"in S&&S.value==="AESV2"&&(this.isAes=true);}}(this.v===5||this.r===5||this.r===6)&&(this.isAes=true),this.fileKey=this.deriveFileKey(new Uint8Array(0),d,u,h,m,n,p);}deriveFileKey(e,n,r,i,s,o,a=true){let c=new Uint8Array(32);c.set(e.subarray(0,Math.min(32,e.length))),e.length<32&&c.set(Yi.subarray(0,32-e.length),e.length);let l=[];l.push(...c),l.push(...r),l.push(s&255),l.push(s>>>8&255),l.push(s>>>16&255),l.push(s>>>24&255),o&&o.length>0&&l.push(...o),this.r>=3&&!a&&l.push(255,255,255,255);let f=en(new Uint8Array(l));if(this.r>=3){let u=f.subarray(0,n);for(let h=0;h<50;h++)u=en(u).subarray(0,n);return u}return f.subarray(0,n)}deriveObjectKey(e,n){let r=new Uint8Array(5);r[0]=e&255,r[1]=e>>>8&255,r[2]=e>>>16&255,r[3]=n&255,r[4]=n>>>8&255;let i=new Uint8Array(this.fileKey.length+r.length+(this.isAes?4:0));i.set(this.fileKey),i.set(r,this.fileKey.length),this.isAes&&i.set([115,65,108,84],this.fileKey.length+r.length);let s=en(i),o=Math.min(16,this.fileKey.length+5);return s.subarray(0,o)}decrypt(e,n,r){return this.isAes?Zi(this.deriveObjectKey(n,r),e):Hi(this.deriveObjectKey(n,r),e)}};var Te=class{constructor(e){this.document=null;this.objectStreamCache=new Map;this.encryptRef=null;this.decryptionHandler=null;this.bytes=e;}parse(){if(this.document)return this.document;try{let e=this.extractVersion(),n=this.parseXRefTables();if(n.length===0)throw new Error("No valid xref tables found in PDF");let r=new Map;for(let a=n.length-1;a>=0;a--)for(let[c,l]of n[a].entries)r.set(c,l);let i=n[0].trailer,s=this.extractRootRef(i);this.document={rawBytes:this.bytes,xrefTables:new Map([[0,r]]),objectCache:new Map,rootRef:s,trailer:i,version:e};let o=i.entries.get("Encrypt");if(o){let a=null;if(q(o)){this.encryptRef=o;let c=this.loadObject(o);M(c)&&(a=c);}else M(o)&&(a=o);if(a){let c,l=i.entries.get("ID");if(l&&j(l)&&l.items.length>0){let f=l.items[0];Vt(f)&&(c=f.value);}this.decryptionHandler=new Pt(a,c);}}return this.document}catch(e){throw console.error("[ERROR] Parse failed:",e),e}}extractVersion(){let r=new TextDecoder().decode(this.bytes.subarray(0,20)).match(/%PDF-(\d+\.\d+)/);if(!r)throw new Error("Invalid PDF header - no %PDF-X.Y found");return r[1]}parseXRefTables(){return Qt(this.bytes)}extractRootRef(e){let n=e.entries.get("Root");if(!n)throw console.error("[ERROR] Trailer has no Root entry. Trailer entries:",Array.from(e.entries.keys())),new Error("Trailer missing /Root reference");if(typeof n!="object"||n.type!=="ref")throw console.error("[ERROR] Root is not a reference object:",n),new Error("Trailer /Root is not a valid reference");return n}loadObject(e){if(!this.document)throw new Error("Parse PDF first");let n=`${e.objNum}.${e.genNum}`;if(this.document.objectCache.has(n))return this.document.objectCache.get(n);let r=this.document.xrefTables.get(0);if(!r)throw new Error("No xref table found");let i=r.get(e.objNum);if(!i)throw new Error(`Object ${e.objNum} not found in xref`);if(i.type==="uncompressed"){if(!i.inUse)throw new Error(`Object ${e.objNum} is marked free in xref`);if(i.offset===0){let s={type:"dict",entries:new Map};throw this.document.objectCache.set(n,s),new Error(`Object ${e.objNum} has ghost xref entry (offset 0)`)}try{let{object:s,objectOffset:o}=bt(this.bytes,i.offset,e.objNum),a=U(s)?this.repairStreamBytesFromLengthRef(s,o):s,c=this.decryptObject(a,e.objNum,e.genNum);return this.document.objectCache.set(n,c),c}catch(s){console.warn(`[PDFParser] Failed to load object ${e.objNum}: ${s}`);let o={type:"dict",entries:new Map};throw this.document.objectCache.set(n,o),s}}else {if(!i.inUse)throw new Error(`Object ${e.objNum} is marked free in compressed xref entry`);let s=i.streamNum;if(!this.objectStreamCache.has(s)){let a=this.loadObjectStream(s,r);this.objectStreamCache.set(s,a);}let o=this.document.objectCache.get(n);if(!o)throw new Error(`Object ${e.objNum} not found in object stream ${s}`);return o}}loadObjectStream(e,n){var x,g;let r=n.get(e);if(!r||r.type!=="uncompressed"||!r.inUse)throw new Error(`Object stream ${e} not found or not in-use/uncompressed`);let i={type:"ref",objNum:e,genNum:0},s=this.loadObject(i);if(!U(s))throw new Error(`Object ${e} is not a stream`);let o=s.dict.entries.get("Type");if(!o||o.type!=="name"||o.value!=="ObjStm")throw new Error(`Object ${e} is not an /ObjStm`);let a=s.dict.entries.get("N"),c=s.dict.entries.get("First");if(!a||!gt(a)||!c||!gt(c))throw new Error(`Object stream ${e} missing numeric /N or /First`);let l=Math.floor(a.value),f=Math.floor(c.value);if(l<0||f<0)throw new Error(`Object stream ${e} has invalid /N or /First values`);let d=s,u;try{u=_.decodeStreamSync(d);}catch(b){let P=d.dict.entries.get("Filter"),y=d.dict.entries.get("Length"),D=(g=(x=d.rawBytes)!=null?x:d.data)!=null?g:new Uint8Array(0),v=Array.from(D.subarray(0,8)).map(C=>C.toString(16).padStart(2,"0")).join(" "),S=Math.max(0,D.length-8),F=Array.from(D.subarray(S)).map(C=>C.toString(16).padStart(2,"0")).join(" "),w=b instanceof Error?b.message:String(b);throw new Error(`Object stream ${e} decode failed: ${w}; Filter=${JSON.stringify(P)} Length=${JSON.stringify(y)} rawLen=${D.length} first8=[${v}] last8=[${F}]`)}if(f>u.length)throw new Error(`Object stream ${e} /First (${f}) exceeds decoded length (${u.length})`);let m=new TextDecoder("latin1").decode(u.subarray(0,f)).match(/\d+/g)||[];if(m.length<l*2)throw new Error(`Object stream ${e} header has ${m.length} numbers, expected at least ${l*2}`);let p=new Map;for(let b=0;b<l;b++){let P=parseInt(m[b*2],10),y=parseInt(m[b*2+1],10),D=f+y;if(!(!Number.isFinite(P)||!Number.isFinite(y)||y<0||D>u.length))try{let v=new Se(u.subarray(D)),S=he(v);p.set(P,S),this.document.objectCache.set(`${P}.0`,S);}catch(v){console.warn(`[WARN] Failed to parse object ${P} from object stream ${e}:`,v);}}return p}repairStreamBytesFromLengthRef(e,n){var l,f;let r=e.dict.entries.get("Length");if(!r||!q(r))return e;let i=null;try{let d=this.loadObject(r);i=A(d);}catch{return e}if(i===null)return e;let s=Math.max(0,Math.floor(i)),o=this.findStreamDataStart(n);if(o<0||o+s>this.bytes.length)return e;let a=(l=e.rawBytes)!=null?l:e.data;if(a&&a.length===s)return e;let c=this.bytes.subarray(o,o+s);return console.warn(`[PDFParser] Repaired stream bytes via indirect /Length at offset ${n}: resolved length=${s}, previous length=${(f=a==null?void 0:a.length)!=null?f:0}`),{type:"stream",dict:e.dict,rawBytes:c,data:c,decode:_.createLazyDecoder(e.dict,c)}}findStreamDataStart(e){let n=[115,116,114,101,97,109],r=Math.min(this.bytes.length-n.length,e+1024*1024);for(let i=Math.max(0,e);i<=r;i++){let s=true;for(let d=0;d<n.length;d++)if(this.bytes[i+d]!==n[d]){s=false;break}if(!s)continue;let o=i>0?this.bytes[i-1]:32,a=this.bytes[i+n.length];if(!(o===10||o===13||o===32||o===9||o===62)||!(a===10||a===13||a===32||a===9))continue;let f=i+n.length;return this.bytes[f]===13&&this.bytes[f+1]===10?f+=2:(this.bytes[f]===10||this.bytes[f]===13)&&(f+=1),f}return -1}decryptObject(e,n,r){return !this.decryptionHandler||this.encryptRef&&n===this.encryptRef.objNum?e:this.decryptObjectRecursive(e,n,r)}decryptObjectRecursive(e,n,r){var i,s;if(!this.decryptionHandler)return e;if(e.type==="string"){let o=this.decryptionHandler.decrypt(e.value,n,r);return {...e,value:o}}if(e.type==="array")return {...e,items:e.items.map(o=>this.decryptObjectRecursive(o,n,r))};if(e.type==="dict"){let o=new Map;for(let[a,c]of e.entries)o.set(a,this.decryptObjectRecursive(c,n,r));return {...e,entries:o}}if(e.type==="stream"){let o=(s=(i=e.rawBytes)!=null?i:e.data)!=null?s:new Uint8Array(0),a=o.length>0?this.decryptionHandler.decrypt(o,n,r):o,c=this.decryptObjectRecursive(e.dict,n,r);return {type:"stream",dict:c,rawBytes:a,data:a,decode:_.createLazyDecoder(c,a)}}return e}};function tt(t){if(!t)return [];if(q(t))return [t];if(j(t)){let e=[];for(let n of t.items)e.push(...tt(n));return e}return []}function Qi(t){if(t.length===0)return new Uint8Array(0);let e=Math.max(0,t.length-1),n=t.reduce((s,o)=>s+o.length,0)+e,r=new Uint8Array(n),i=0;for(let s=0;s<t.length;s++)r.set(t[s],i),i+=t[s].length,s<t.length-1&&(r[i]=32,i+=1);return r}async function er(t,e){let n=tt(t);if(n.length===0)return {combinedBytes:new Uint8Array(0),streamCount:0,streamByteLengths:[]};let r=[];for(let i of n){let s=await Promise.resolve(e(i));if(!U(s)){console.warn(`[WARN] Contents ref ${i.objNum} ${i.genNum} R is not a stream, skipping`);continue}try{let o=s.decode?await s.decode():await _.decodeStream(s);r.push(o);}catch(o){throw console.error(`[ContentStreamLoader] Failed to decode stream ${i.objNum} ${i.genNum} R:`,o),o}}return {combinedBytes:Qi(r),streamCount:r.length,streamByteLengths:r.map(i=>i.length)}}function Ue(t){return Ye(t).commands}function Ye(t){let e=new Se(t),n=[],r=[],i=[],s=-1;for(;e.skipWhitespace(),!(e.getPosition()>=t.length);){let o=e.getPosition(),a=t[o];if(rr(a)){let c=e.readWord();if(!c)break;if(c==="BI"){let f=ts(e,t);f?(n.push(f.command),r.push({start:o,end:f.end})):(n.push({op:"unknown",keyword:"BI",operands:[]}),r.push({start:o,end:e.getPosition()})),i.length=0,s=-1;continue}let l=ns(c,i);l&&(n.push(l),r.push({start:s>=0?s:o,end:e.getPosition()})),i.length=0,s=-1;}else {s<0&&(s=o);try{let c=he(e);i.push(c);}catch{e.setPosition(o+1);}}}return {commands:n,ranges:r}}function rr(t){return t>=65&&t<=90||t>=97&&t<=122||t===39||t===34}var Dt=t=>t===32||t===10||t===13||t===9||t===12||t===0,tr=t=>t===47||t===60||t===62||t===91||t===93||t===40||t===41||t===37||t===123||t===125,es=t=>{var r,i;let e=(r=t.entries.get("IM"))!=null?r:t.entries.get("ImageMask");if(e&&"type"in e&&e.type==="boolean"&&e.value)return 1;let n=(i=t.entries.get("CS"))!=null?i:t.entries.get("ColorSpace");if(!n||!("type"in n)||n.type!=="name")return 1;switch(n.value){case "RGB":case "DeviceRGB":case "CalRGB":return 3;case "CMYK":case "DeviceCMYK":return 4;default:return 1}};function ts(t,e){var n,r,i,s,o;try{let a=new Map;for(;;){t.skipWhitespace();let g=t.getPosition();if(g>=e.length)return null;let b=e[g];if(b===47){let P=he(t);if(!P||!("type"in P)||P.type!=="name")return null;t.skipWhitespace(),a.set(P.value,he(t));}else if(rr(b)){if(t.readWord()==="ID")break;return null}else return null}let c={type:"dict",entries:a},l=t.getPosition();Dt(e[l])&&(l+=e[l]===13&&e[l+1]===10?2:1);let f=(n=a.get("L"))!=null?n:a.get("Length"),d=A(f),u=a.has("F")||a.has("Filter"),h=-1;if(d!==null&&d>=0&&l+d<=e.length)h=l+d;else if(!u){let g=A((r=a.get("W"))!=null?r:a.get("Width")),b=A((i=a.get("H"))!=null?i:a.get("Height")),P=(o=A((s=a.get("BPC"))!=null?s:a.get("BitsPerComponent")))!=null?o:8;if(g!==null&&b!==null&&g>0&&b>0){let y=Math.ceil(g*P*es(c)/8)*b;l+y<=e.length&&(h=l+y);}}if(h<0){for(let g=l;g+1<e.length;g++){if(e[g]!==69||e[g+1]!==73||g>l&&!Dt(e[g-1]))continue;let b=e[g+2];if(!(b!==void 0&&!Dt(b)&&!tr(b))){h=Math.max(l,g-1);break}}if(h<0)return null}let m=new Uint8Array(e.subarray(l,h));t.setPosition(h),t.skipWhitespace();let p=t.getPosition();if(e[p]!==69||e[p+1]!==73)return null;let x=e[p+2];return x!==void 0&&!Dt(x)&&!tr(x)?null:(t.setPosition(p+2),{command:{op:"inline_image",params:c,data:m},end:p+2})}catch{return null}}function ns(t,e){switch(t){case "q":return {op:"save_state"};case "Q":return {op:"restore_state"};case "cm":return {op:"set_ctm",matrix:nr(e)};case "w":return {op:"set_line_width",width:k(e,0)};case "J":return {op:"set_line_cap",cap:Math.floor(k(e,0))};case "j":return {op:"set_line_join",join:Math.floor(k(e,0))};case "M":return {op:"set_miter_limit",limit:k(e,0)};case "d":return {op:"set_dash",array:rs(e,0),phase:k(e,1)};case "ri":return {op:"set_rendering_intent",intent:Fe(e,0)};case "gs":return {op:"set_graphics_state",name:Fe(e,0)};case "rg":return {op:"set_fill_color_rgb",r:k(e,0),g:k(e,1),b:k(e,2)};case "RG":return {op:"set_stroke_color_rgb",r:k(e,0),g:k(e,1),b:k(e,2)};case "g":return {op:"set_fill_gray",gray:k(e,0)};case "G":return {op:"set_stroke_gray",gray:k(e,0)};case "k":return {op:"set_fill_cmyk",c:k(e,0),m:k(e,1),y:k(e,2),k:k(e,3)};case "K":return {op:"set_stroke_cmyk",c:k(e,0),m:k(e,1),y:k(e,2),k:k(e,3)};case "cs":return {op:"set_fill_color_space",name:Fe(e,0)};case "CS":return {op:"set_stroke_color_space",name:Fe(e,0)};case "sc":case "scn":{let n=e[e.length-1],r=n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:void 0;return {op:"set_fill_color",values:(r?e.slice(0,-1):e).map(wt),patternName:r}}case "SC":case "SCN":{let n=e[e.length-1],r=n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:void 0;return {op:"set_stroke_color",values:(r?e.slice(0,-1):e).map(wt),patternName:r}}case "m":return {op:"move_to",x:k(e,0),y:k(e,1)};case "l":return {op:"line_to",x:k(e,0),y:k(e,1)};case "c":return {op:"curve_to",x1:k(e,0),y1:k(e,1),x2:k(e,2),y2:k(e,3),x3:k(e,4),y3:k(e,5)};case "v":return {op:"curve_to_v",x2:k(e,0),y2:k(e,1),x3:k(e,2),y3:k(e,3)};case "y":return {op:"curve_to",x1:k(e,0),y1:k(e,1),x2:k(e,2),y2:k(e,3),x3:k(e,2),y3:k(e,3)};case "re":return {op:"rect",x:k(e,0),y:k(e,1),w:k(e,2),h:k(e,3)};case "h":return {op:"close_path"};case "S":return {op:"stroke"};case "s":return {op:"close_stroke"};case "f":case "F":return {op:"fill"};case "f*":return {op:"fill_even_odd"};case "B":return {op:"fill_stroke"};case "B*":return {op:"fill_stroke_even_odd"};case "b":return {op:"close_fill_stroke"};case "b*":return {op:"close_fill_stroke_even_odd"};case "n":return {op:"end_path"};case "W":return {op:"clip"};case "W*":return {op:"clip_even_odd"};case "BT":return {op:"begin_text"};case "ET":return {op:"end_text"};case "Tf":return {op:"set_font",name:Fe(e,0),size:k(e,1)};case "Td":return {op:"move_text",tx:k(e,0),ty:k(e,1)};case "TD":return {op:"move_text_set_leading",tx:k(e,0),ty:k(e,1)};case "Tm":return {op:"set_text_matrix",matrix:nr(e)};case "T*":return {op:"next_line"};case "Tc":return {op:"set_char_spacing",spacing:k(e,0)};case "Tw":return {op:"set_word_spacing",spacing:k(e,0)};case "Tz":return {op:"set_horiz_scale",scale:k(e,0)};case "TL":return {op:"set_leading",leading:k(e,0)};case "Tr":return {op:"set_text_render",mode:k(e,0)};case "Ts":return {op:"set_text_rise",rise:k(e,0)};case "Tj":return {op:"show_string",data:nn(e,0)};case "TJ":return {op:"show_strings",items:is(e,0)};case "'":return {op:"next_line_show_string",data:nn(e,0)};case '"':return {op:"set_spacing_next_line_show_string",wordSpacing:k(e,0),charSpacing:k(e,1),data:nn(e,2)};case "d0":return {op:"type3_glyph_width",wx:k(e,0),wy:k(e,1)};case "d1":return {op:"type3_glyph_width",wx:k(e,0),wy:k(e,1)};case "sh":return {op:"shade",name:Fe(e,0)};case "Do":return {op:"xobject",name:Fe(e,0)};case "BMC":return {op:"begin_marked_content",tag:Fe(e,0)};case "BDC":{let n=e[1];return {op:"begin_marked_content",tag:Fe(e,0),properties:M(n)?n:void 0}}case "EMC":return {op:"end_marked_content"};case "MP":case "DP":case "BX":case "EX":return null;default:return {op:"unknown",keyword:t,operands:[...e]}}}function k(t,e){return wt(t[e])}function wt(t){let e=A(t);return e===null?0:e}function Fe(t,e){let n=t[e];return n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:""}function nn(t,e){let n=t[e];return n&&typeof n=="object"&&"type"in n&&n.type==="string"?n.value:new Uint8Array(0)}function rs(t,e){let n=t[e];return j(n)?n.items.map(wt):[]}function is(t,e){let n=t[e];return j(n)?n.items.map(r=>{let i=A(r);return i!==null?i:r&&typeof r=="object"&&"type"in r&&r.type==="string"?r.value:0}):[]}function nr(t){return [k(t,0),k(t,1),k(t,2),k(t,3),k(t,4),k(t,5)]}var St=()=>({ctm:[1,0,0,1,0,0],font:"",fontSize:12,charSpacing:0,wordSpacing:0,horizScale:100,leading:0,textRise:0,textRenderMode:0,textMatrix:[1,0,0,1,0,0],textLineMatrix:[1,0,0,1,0,0],fillColorSpace:"DeviceGray",strokeColorSpace:"DeviceGray",fillColor:{space:"gray",gray:0},strokeColor:{space:"gray",gray:0},fillPatternName:null,strokePatternName:null,fillPattern:null,strokePattern:null,lineWidth:1,lineCap:0,lineJoin:0,miterLimit:10,dashArray:[],dashPhase:0,fillAlpha:1,strokeAlpha:1,blendMode:"Normal"});var Y=(t,e)=>{let[n,r,i,s,o,a]=t,[c,l,f,d,u,h]=e;return [n*c+i*l,r*c+s*l,n*f+i*d,r*f+s*d,n*u+i*h+o,r*u+s*h+a]};var He=t=>{let e=t[0]*t[3]-t[1]*t[2];if(!Number.isFinite(e)||Math.abs(e)<1e-12)return null;let n=t[3]/e,r=-t[1]/e,i=-t[2]/e,s=t[0]/e;return [n,r,i,s,-(n*t[4]+i*t[5]),-(r*t[4]+s*t[5])]};var ir=t=>t===" "||t===" "||t==="\r"||t===`
2
- `||t==="\f"||t==="\0";function or(t){let e=[],n=[e],r=0;for(;r<t.length;){let i=t[r];if(ir(i)){r++;continue}if(i==="%"){for(;r<t.length&&t[r]!==`
3
- `&&t[r]!=="\r";)r++;continue}if(i==="{"){let c=[];n[n.length-1].push(c),n.push(c),r++;continue}if(i==="}"){if(n.length===1)throw new Error("Unbalanced } in PostScript function");n.pop(),r++;continue}let s=r;for(;s<t.length&&!ir(t[s])&&t[s]!=="{"&&t[s]!=="}"&&t[s]!=="%";)s++;let o=t.slice(r,s);r=s;let a=Number(o);Number.isFinite(a)&&/^[-+.0-9eE]+$/.test(o)?n[n.length-1].push(a):n[n.length-1].push(o.toLowerCase());}if(n.length!==1)throw new Error("Unbalanced { in PostScript function");return e.length===1&&Array.isArray(e[0])?e[0]:e}var rn=Math.PI/180;function N(t,e){if(typeof t!="number")throw new Error(`${e}: expected number`);return t}function ie(t,e){if(typeof t!="number")throw new Error(`${e}: expected integer`);return Math.trunc(t)}function sr(t,e){if(typeof t!="boolean")throw new Error(`${e}: expected boolean`);return t}function ar(t,e,n){let r=[...e],i=0,s=d=>{if(r.length>=100)throw new Error("PostScript stack overflow");r.push(d);},o=d=>{let u=r.pop();if(u===void 0)throw new Error(`${d}: stack underflow`);return u},a=d=>{let u=o(d);if(!Array.isArray(u))throw new Error(`${d}: expected procedure`);return u},c=d=>{for(let u of d){if(++i>1e4)throw new Error("PostScript op budget exceeded");if(typeof u=="number"){s(u);continue}if(Array.isArray(u)){s(u);continue}switch(u){case "add":{let h=N(o(u),u),m=N(o(u),u);s(m+h);break}case "sub":{let h=N(o(u),u),m=N(o(u),u);s(m-h);break}case "mul":{let h=N(o(u),u),m=N(o(u),u);s(m*h);break}case "div":{let h=N(o(u),u),m=N(o(u),u);s(h===0?0:m/h);break}case "idiv":{let h=ie(o(u),u),m=ie(o(u),u);s(h===0?0:Math.trunc(m/h));break}case "mod":{let h=ie(o(u),u),m=ie(o(u),u);s(h===0?0:m%h);break}case "neg":s(-N(o(u),u));break;case "abs":s(Math.abs(N(o(u),u)));break;case "ceiling":s(Math.ceil(N(o(u),u)));break;case "floor":s(Math.floor(N(o(u),u)));break;case "round":s(Math.round(N(o(u),u)));break;case "truncate":s(Math.trunc(N(o(u),u)));break;case "sqrt":s(Math.sqrt(Math.max(0,N(o(u),u))));break;case "sin":s(Math.sin(N(o(u),u)*rn));break;case "cos":s(Math.cos(N(o(u),u)*rn));break;case "atan":{let h=N(o(u),u),m=N(o(u),u),p=Math.atan2(m,h)/rn;p<0&&(p+=360),s(p);break}case "exp":{let h=N(o(u),u),m=N(o(u),u);s(Math.pow(m,h));break}case "ln":s(Math.log(Math.max(Number.MIN_VALUE,N(o(u),u))));break;case "log":s(Math.log10(Math.max(Number.MIN_VALUE,N(o(u),u))));break;case "cvi":s(Math.trunc(N(o(u),u)));break;case "cvr":s(N(o(u),u));break;case "eq":{let h=o(u),m=o(u);s(m===h);break}case "ne":{let h=o(u),m=o(u);s(m!==h);break}case "gt":{let h=N(o(u),u),m=N(o(u),u);s(m>h);break}case "ge":{let h=N(o(u),u),m=N(o(u),u);s(m>=h);break}case "lt":{let h=N(o(u),u),m=N(o(u),u);s(m<h);break}case "le":{let h=N(o(u),u),m=N(o(u),u);s(m<=h);break}case "and":{let h=o(u),m=o(u);s(typeof m=="boolean"&&typeof h=="boolean"?m&&h:ie(m,u)&ie(h,u));break}case "or":{let h=o(u),m=o(u);s(typeof m=="boolean"&&typeof h=="boolean"?m||h:ie(m,u)|ie(h,u));break}case "xor":{let h=o(u),m=o(u);s(typeof m=="boolean"&&typeof h=="boolean"?m!==h:ie(m,u)^ie(h,u));break}case "not":{let h=o(u);s(typeof h=="boolean"?!h:~ie(h,u));break}case "bitshift":{let h=ie(o(u),u),m=ie(o(u),u);s(h>=0?m<<h:m>>-h);break}case "true":s(true);break;case "false":s(false);break;case "pop":o(u);break;case "exch":{let h=o(u),m=o(u);s(h),s(m);break}case "dup":{let h=o(u);s(h),s(h);break}case "copy":{let h=ie(o(u),u);if(h<0||h>r.length)throw new Error("copy: bad count");let m=r.length-h;for(let p=0;p<h;p++)s(r[m+p]);break}case "index":{let h=ie(o(u),u);if(h<0||h>=r.length)throw new Error("index: out of range");s(r[r.length-1-h]);break}case "roll":{let h=ie(o(u),u),m=ie(o(u),u);if(m<0||m>r.length)throw new Error("roll: bad count");if(m>0&&h!==0){let p=r.splice(r.length-m,m),x=(h%m+m)%m;r.push(...p.slice(m-x),...p.slice(0,m-x));}break}case "if":{let h=a(u);sr(o(u),u)&&c(h);break}case "ifelse":{let h=a(u),m=a(u),p=sr(o(u),u);c(p?m:h);break}default:throw new Error(`Unknown PostScript operator: ${u}`)}}};c(t);let l=Math.floor(n.length/2);if(r.length<l)throw new Error("PostScript function returned too few values");return r.slice(r.length-l).map((d,u)=>{if(typeof d!="number"&&typeof d!="boolean")throw new Error("PostScript function returned a non-numeric value");let h=typeof d=="number"?d:d?1:0,m=n[u*2],p=n[u*2+1];return Math.max(m,Math.min(p,h))})}var Ft=A,De=t=>!t||!j(t)?null:t.items.map(e=>{var n;return (n=Ft(e))!=null?n:0}),oe=(t,e)=>{if(t){if(!q(t))return t;try{return e(t)}catch{return}}},cr=new WeakMap,ss=(t,e,n)=>{var c;let r=e*n,i=r>>3,s=r&7,o=n,a=0;for(;o>0;){let l=8-s,f=Math.min(l,o),u=((c=t[i])!=null?c:0)>>l-f&(1<<f)-1;a=a*(1<<f)+u,o-=f,s+=f,s===8&&(s=0,i++);}return a},os=(t,e)=>t.map((n,r)=>{let i=e[r*2],s=e[r*2+1];return i===void 0||s===void 0?n:Math.max(i,Math.min(s,n))}),vt=(t,e,n)=>{var l,f,d,u,h,m,p,x,g,b,P,y,D,v,S,F,w,C,O,E,I,L,$,H,Z,ae;let r=oe(t,n);if(!r)return null;let i=U(r)?r.dict:M(r)?r:null;if(!i)return null;let s=Math.floor((l=Ft(oe(i.entries.get("FunctionType"),n)))!=null?l:-1),o=(f=De(oe(i.entries.get("Domain"),n)))!=null?f:[0,1],a=Math.max(1,Math.floor(o.length/2)),c=[];for(let T=0;T<a;T++){let B=(d=e[T])!=null?d:0,W=(u=o[T*2])!=null?u:0,G=(h=o[T*2+1])!=null?h:1;c.push(Math.max(Math.min(W,G),Math.min(Math.max(W,G),B)));}if(s===2){let T=(m=Ft(oe(i.entries.get("N"),n)))!=null?m:1,B=(p=De(oe(i.entries.get("C0"),n)))!=null?p:[0],W=(x=De(oe(i.entries.get("C1"),n)))!=null?x:[1],G=Math.pow(c[0],T);return B.map((fe,ee)=>{var te;return fe+G*(((te=W[ee])!=null?te:1)-fe)})}if(s===0){if(!U(r))return null;let T=((g=De(oe(i.entries.get("Size"),n)))!=null?g:[2]).map(K=>Math.max(1,Math.floor(K)));if(T.length<a||a>8)return null;let B=Math.floor((b=Ft(oe(i.entries.get("BitsPerSample"),n)))!=null?b:8);if(![1,2,4,8,12,16,24,32].includes(B))return null;let W=De(oe(i.entries.get("Range"),n));if(!W||W.length<2)return null;let G=Math.floor(W.length/2),fe=[];for(let K=0;K<a;K++)fe.push(0,T[K]-1);let ee=(P=De(oe(i.entries.get("Encode"),n)))!=null?P:fe,te=(y=De(oe(i.entries.get("Decode"),n)))!=null?y:W,Me=B===32?4294967295:(1<<B)-1,xe;try{xe=_.decodeStreamSync(r);}catch{return null}let pe=[],ke=[];for(let K=0;K<a;K++){let ce=(D=o[K*2])!=null?D:0,be=(v=o[K*2+1])!=null?v:1,Q=(S=ee[K*2])!=null?S:0,Qe=(F=ee[K*2+1])!=null?F:T[K]-1,ht=be!==ce?(c[K]-ce)/(be-ce):0,En=Math.max(0,Math.min(T[K]-1,Q+ht*(Qe-Q))),jn=Math.min(T[K]-1,Math.floor(En));pe.push(jn),ke.push(Math.max(0,Math.min(1,En-jn)));}let ge=[],Ze=1;for(let K=0;K<a;K++)ge.push(Ze),Ze*=T[K];let X=new Array(G).fill(0),de=1<<a;for(let K=0;K<de;K++){let ce=1,be=0;for(let Q=0;Q<a;Q++)if(K>>Q&1){if(ke[Q]===0){ce=0;break}ce*=ke[Q],be+=Math.min(T[Q]-1,pe[Q]+1)*ge[Q];}else ce*=1-ke[Q],be+=pe[Q]*ge[Q];if(ce!==0)for(let Q=0;Q<G;Q++)X[Q]+=ce*ss(xe,be*G+Q,B);}let dt=X.map((K,ce)=>{var Qe,ht;let be=(Qe=te[ce*2])!=null?Qe:0,Q=(ht=te[ce*2+1])!=null?ht:1;return be+K/Me*(Q-be)});return os(dt,W)}if(s===3){let T=(w=De(oe(i.entries.get("Bounds"),n)))!=null?w:[],B=(C=De(oe(i.entries.get("Encode"),n)))!=null?C:[],W=oe(i.entries.get("Functions"),n);if(!W||!j(W))return null;let G=W.items,fe=c[0],ee=0;for(let ge=0;ge<T.length&&fe>=T[ge];ge++)ee=ge+1;let te=ee===0?(O=o[0])!=null?O:0:(I=(E=T[ee-1])!=null?E:o[0])!=null?I:0,Me=ee<T.length?($=(L=T[ee])!=null?L:o[1])!=null?$:1:(H=o[1])!=null?H:1,xe=(Z=B[ee*2])!=null?Z:0,pe=(ae=B[ee*2+1])!=null?ae:1,ke=te===Me?xe:xe+(fe-te)/(Me-te)*(pe-xe);return vt(G[ee],[ke],n)}if(s===4){if(!U(r))return null;let T=De(oe(i.entries.get("Range"),n));if(!T||T.length<2)return null;try{let B=cr.get(r);if(!B){let W=new TextDecoder("latin1").decode(_.decodeStreamSync(r));B=or(W),cr.set(r,B);}return ar(B,c,T)}catch{return null}}return null},Ct=(t,e,n)=>vt(t,[e],n),sn=(t,e,n)=>{let r=oe(t,n);if(!r)return null;if(j(r)){let i=[];for(let s of r.items){let o=vt(s,e,n);if(!o)return null;i.push(...o);}return i}return vt(r,e,n)};var lr=t=>Math.max(1,Math.min(2048,Math.ceil(t)));function ur(t,e,n,r){if(![...t,e,n,...r].every(Number.isFinite)||Math.abs(e)<1e-9||Math.abs(n)<1e-9)return null;let i=Math.hypot(r[0],r[1]),s=Math.hypot(r[2],r[3]);if(i<1e-12||s<1e-12)return null;let o=lr(Math.abs(e)*i),a=lr(Math.abs(n)*s),[c,l]=t,f=[o/e,0,0,-a/n,-c*o/e,(l+n)*a/n],d=He(f);return d?{cellPxW:o,cellPxH:a,contentTransform:f,paintTransform:d}:null}var Ke=5e4,an=class{constructor(e){this.bytes=e;this.bitPos=0;}get hasData(){return this.bitPos<this.bytes.length*8}get remainingBits(){return Math.max(0,this.bytes.length*8-this.bitPos)}read(e){var i;let n=0,r=e;for(;r>0;){let s=this.bitPos>>3,a=8-(this.bitPos&7),c=Math.min(a,r),f=((i=this.bytes[s])!=null?i:0)>>a-c&(1<<c)-1;n=n*(1<<c)+f,this.bitPos+=c,r-=c;}return n}alignToByte(){this.bitPos=this.bitPos+7&-8;}},as=t=>t>=32?4294967295:(1<<t)-1,on=(t,e,n,r)=>n+t/as(e)*(r-n);function fr(t,e,n,r){var y;let i=new an(n),s=[],{bitsPerCoordinate:o,bitsPerComponent:a,bitsPerFlag:c,decode:l,numColorComponents:f}=e;if(l.length<4+f*2)return [];let d=()=>[on(i.read(o),o,l[0],l[1]),on(i.read(o),o,l[2],l[3])],u=()=>{let D=[];for(let v=0;v<f;v++)D.push(on(i.read(a),a,l[4+v*2],l[5+v*2]));return r(D)},h=2*o+f*a;if(t===4){let D=c+h,v=null,S=null,F=null,w=()=>{let C=i.read(c),[O,E]=d(),I=u();return i.alignToByte(),{flag:C,v:{x:O,y:E,color:I}}};for(;i.remainingBits>=D&&s.length<Ke;){let C=w();if(C.flag===0||v===null||S===null||F===null){if(v=C.v,i.remainingBits<D||(S=w().v,i.remainingBits<D))break;F=w().v;}else C.flag===1?(v=S,S=F,F=C.v):(S=F,F=C.v);nt(s,v,S,F);}return s}if(t===5){let D=Math.max(2,Math.floor((y=e.verticesPerRow)!=null?y:2)),v=[];for(;i.remainingBits>=D*h;){let S=[];for(let F=0;F<D;F++){let[w,C]=d();S.push({x:w,y:C,color:u()});}if(v.push(S),v.length*D>Ke)break}for(let S=0;S+1<v.length&&s.length<Ke;S++)for(let F=0;F+1<D&&s.length<Ke;F++)nt(s,v[S][F],v[S][F+1],v[S+1][F]),nt(s,v[S][F+1],v[S+1][F+1],v[S+1][F]);return s}let m=t===6?12:16,p=t===6?8:12,x=null,g=null,b=m*2*o+4*f*a,P=p*2*o+2*f*a;for(;i.remainingBits>=c+P&&s.length<Ke;){let D=i.read(c),v,S;if(D===0||!x||!g){if(i.remainingBits<b)break;v=[];for(let F=0;F<m;F++)v.push(d());S=[u(),u(),u(),u()];}else {let F=[];for(let I=0;I<p;I++)F.push(d());let w=u(),C=u(),O,E;D===1?(O=[x[3],x[4],x[5],x[6]],E=[g[1],g[2]]):D===2?(O=[x[6],x[7],x[8],x[9]],E=[g[2],g[3]]):(O=[x[9],x[10],x[11],x[0]],E=[g[3],g[0]]),v=[...O,...F],S=[E[0],E[1],w,C];}if(!Number.isFinite(v[0][0]))break;ls(s,v,S),x=v,g=S;}return s}var nt=(t,e,n,r)=>{t.push({p:[[e.x,e.y],[n.x,n.y],[r.x,r.y]],c:[e.color,n.color,r.color]});},At=(t,e,n,r,i)=>{let s=1-i,o=s*s*s,a=3*s*s*i,c=3*s*i*i,l=i*i*i;return [o*t[0]+a*e[0]+c*n[0]+l*r[0],o*t[1]+a*e[1]+c*n[1]+l*r[1]]},cs=6,ls=(t,e,n)=>{let[r,i,s,o,a,c,l,f,d,u,h,m]=e,[p,x,g,b]=n,P=(S,F)=>{let w=At(r,i,s,o,F),C=At(u,d,f,l,F),O=At(r,m,h,u,S),E=At(o,a,c,l,S),I=(1-S)*w[0]+S*C[0]+(1-F)*O[0]+F*E[0]-((1-S)*(1-F)*r[0]+S*(1-F)*u[0]+(1-S)*F*o[0]+S*F*l[0]),L=(1-S)*w[1]+S*C[1]+(1-F)*O[1]+F*E[1]-((1-S)*(1-F)*r[1]+S*(1-F)*u[1]+(1-S)*F*o[1]+S*F*l[1]);return [I,L]},y=(S,F)=>[(1-S)*(1-F)*p[0]+(1-S)*F*x[0]+S*F*g[0]+S*(1-F)*b[0],(1-S)*(1-F)*p[1]+(1-S)*F*x[1]+S*F*g[1]+S*(1-F)*b[1],(1-S)*(1-F)*p[2]+(1-S)*F*x[2]+S*F*g[2]+S*(1-F)*b[2]],D=cs,v=[];for(let S=0;S<=D;S++){let F=[];for(let w=0;w<=D;w++){let C=w/D,O=S/D,[E,I]=P(C,O);F.push({x:E,y:I,color:y(C,O)});}v.push(F);}for(let S=0;S<D;S++)for(let F=0;F<D;F++){if(t.length+2>Ke)return;nt(t,v[S][F],v[S][F+1],v[S+1][F]),nt(t,v[S][F+1],v[S+1][F+1],v[S+1][F]);}};function dr(t,e,n,r){let i=new Uint8ClampedArray(n*r*4),s=(o,a)=>[e[0]*o+e[2]*a+e[4],e[1]*o+e[3]*a+e[5]];for(let o of t){let[a,c,l]=o.p.map(([p,x])=>s(p,x)),f=(c[0]-a[0])*(l[1]-a[1])-(c[1]-a[1])*(l[0]-a[0]);if(Math.abs(f)<1e-9)continue;let d=Math.max(0,Math.floor(Math.min(a[0],c[0],l[0]))),u=Math.min(n-1,Math.ceil(Math.max(a[0],c[0],l[0]))),h=Math.max(0,Math.floor(Math.min(a[1],c[1],l[1]))),m=Math.min(r-1,Math.ceil(Math.max(a[1],c[1],l[1])));for(let p=h;p<=m;p++)for(let x=d;x<=u;x++){let g=x+.5,b=p+.5,P=((c[0]-g)*(l[1]-b)-(c[1]-b)*(l[0]-g))/f,y=((l[0]-g)*(a[1]-b)-(l[1]-b)*(a[0]-g))/f,D=1-P-y;if(P<-1e-6||y<-1e-6||D<-1e-6)continue;let v=(p*n+x)*4;i[v]=255*(P*o.c[0][0]+y*o.c[1][0]+D*o.c[2][0]),i[v+1]=255*(P*o.c[0][1]+y*o.c[1][1]+D*o.c[2][1]),i[v+2]=255*(P*o.c[0][2]+y*o.c[1][2]+D*o.c[2][2]),i[v+3]=255;}}return i}var us=12,fs=(t,e,n)=>t.minX-n<=e.maxX&&e.minX-n<=t.maxX&&t.minY-n<=e.maxY&&e.minY-n<=t.maxY,ds=(t,e)=>({minX:Math.min(t.minX,e.minX),minY:Math.min(t.minY,e.minY),maxX:Math.max(t.maxX,e.maxX),maxY:Math.max(t.maxY,e.maxY)});function hr(t,e,n,r){if(!t.length)return [];let i=Math.max(2,.01*Math.hypot(n,r)),s=[...e].sort((f,d)=>f-d),o=(f,d)=>{let u=0,h=s.length-1;for(;u<=h;){let m=u+h>>1,p=s[m];if(p<=f)u=m+1;else if(p>=d)h=m-1;else return true}return false},a=[],c=null;for(let f of t)c!==null&&f.fromXObject===c.fromXObject&&f.pathStartIndex-c.operatorEnd<=us&&!o(c.operatorEnd,f.pathStartIndex)&&fs(c.bbox,f.bbox,i)&&c?(c.bbox=ds(c.bbox,f.bbox),c.operatorEnd=Math.max(c.operatorEnd,f.paintIndex),c.operatorStart=Math.min(c.operatorStart,f.pathStartIndex),c.paintOperatorIndices.push(f.paintIndex)):(c&&a.push(c),c={bbox:{...f.bbox},operatorStart:f.pathStartIndex,operatorEnd:f.paintIndex,paintOperatorIndices:[f.paintIndex],ctmAtStart:[...f.ctmAtStart],fromXObject:f.fromXObject});c&&a.push(c);let l=n*r;return a.filter(f=>{let d=f.bbox.maxX-f.bbox.minX,u=f.bbox.maxY-f.bbox.minY;return d>0&&u>0&&d*u<=.9*l})}function hs(t){return t&&typeof t=="object"&&"type"in t&&t.type==="name"&&"value"in t?String(t.value):""}function mr(t,e){if(!t)return null;let n=o=>{let a=e(o);if(!a||!U(a))return null;try{return _.decodeStreamSync(a)}catch{return null}},r=n(t.entries.get("FontFile2"));if(r&&r.length>0)return {bytes:r,kind:"truetype"};let i=e(t.entries.get("FontFile3"));if(i&&U(i)){let o=n(i);if(o&&o.length>0){let c=hs(i.dict.entries.get("Subtype"))==="OpenType"?"opentype":"cff";return {bytes:o,kind:c}}}let s=n(t.entries.get("FontFile"));return s&&s.length>0?{bytes:s,kind:"type1"}:null}function ms(t){return t==="truetype"||t==="opentype"}var Mt=(t,e)=>t[e]<<8|t[e+1],ps=(t,e)=>t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3];function xs(t){if(t.length<12)return false;let e=Mt(t,4),n=-1;for(let i=0;i<e;i+=1){let s=12+i*16;if(s+16>t.length)return false;if(t[s]===99&&t[s+1]===109&&t[s+2]===97&&t[s+3]===112){n=ps(t,s+8);break}}if(n<0||n+4>t.length)return false;let r=Mt(t,n+2);for(let i=0;i<r;i+=1){let s=n+4+i*8;if(s+8>t.length)break;let o=Mt(t,s),a=Mt(t,s+2);if(o===3&&(a===1||a===10)||o===0)return true}return false}function gs(t){let e=2166136261,n=t.length,r=Math.max(1,Math.floor(n/4096));for(let i=0;i<n;i+=r)e^=t[i],e=Math.imul(e,16777619);return e^=n,e=Math.imul(e,16777619),`npf-${(e>>>0).toString(16)}`}var cn=new Map,ln=new Map,bs=()=>typeof document!="undefined"&&typeof globalThis.FontFace!="undefined"&&!!document.fonts;async function pr(t){if(!bs()||!ms(t.kind)||!xs(t.bytes))return null;let e=gs(t.bytes),n=cn.get(e);if(n==="loaded")return e;if(n==="failed")return null;let r=ln.get(e);if(r)return r;let i=(async()=>{try{let s=t.bytes.slice().buffer,o=new FontFace(e,s);return await o.load(),document.fonts.add(o),cn.set(e,"loaded"),e}catch{return cn.set(e,"failed"),null}finally{ln.delete(e);}})();return ln.set(e,i),i}var un=null,kt=()=>un!=null?un:un=import('./pdf.image_decoders.min-5CGUOWQR.js'),xr=new Set,gr=new Set,br=new Set(["F1","F3","F4"]),yr=new WeakMap,ys=()=>new Promise(t=>setTimeout(t,0)),Ve=class Ve{constructor(e,n,r,i,s){this.canvas=e;this.pageWidth=n;this.pageHeight=r;this.scale=i;this.stateStack=[];this.state=St();this.atomicLogCount=0;this.commandIndex=0;this.xobjectDepth=0;this.pageResources=null;this.objectLoader=null;this.fontCache=new Map;this.embeddedFamilies=new Map;this.glyphWidthCache=new Map;this.separationColorCache=new Map;this.fillColorResolver=null;this.strokeColorResolver=null;this.resolverStack=[];this.capturedTextRuns=[];this.fontDiagnosticsLogged=new Set;this.rawByteDiagnosticsLogged=new Set;this.currentPathX=0;this.currentPathY=0;this.pathStartX=0;this.pathStartY=0;this.initialTransform=null;this.forcedColor=null;this.patternDepth=0;this.patternCache=new Map;this.meshCache=new Map;this.layerStack=[];this.layerPool=[];this.capturedImages=[];this.paintRecords=[];this.breakerIndices=[];this.pendingPath=null;this.captureSuppressed=0;var c,l,f,d,u,h,m;let o=(c=s==null?void 0:s.debugAtomic)!=null?c:false,a=e.getContext("2d",{willReadFrequently:o});if(!a)throw new Error("2D context unavailable");this.ctx=a,this.baseCtx=a,this.disableClip=(l=s==null?void 0:s.disableClip)!=null?l:false,this.debug=(f=s==null?void 0:s.debug)!=null?f:false,this.debugAtomic=o,this.maxAtomicLogs=(d=s==null?void 0:s.maxAtomicLogs)!=null?d:500,this.initialTransform=(u=s==null?void 0:s.initialTransform)!=null?u:null,this.forcedColor=(h=s==null?void 0:s.forcedColor)!=null?h:null,this.patternDepth=(m=s==null?void 0:s.patternDepth)!=null?m:0,e.width=Math.ceil(n*i),e.height=Math.ceil(r*i),s!=null&&s.transparentBackground||(this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillStyle="white",this.ctx.fillRect(0,0,e.width,e.height),this.ctx.restore()),this.forcedColor&&(this.state.fillColor=this.forcedColor,this.state.strokeColor=this.forcedColor,this.ctx.fillStyle=ve(this.forcedColor),this.ctx.strokeStyle=ve(this.forcedColor)),this.applyCurrentTransform(),this.logDebug("init",{pageWidth:n,pageHeight:r,scale:i,canvasWidth:e.width,canvasHeight:e.height,disableClip:this.disableClip});}render(e){this.commandIndex=0,this.capturedTextRuns=[],this.applyCurrentTransform(),this.logDebug("render:start",{commandCount:e.length}),this.logDebug("orientation",{flipYApplied:true});for(let n of e){let r=this.commandIndex++;this.debug&&this.logDebug("command",{index:r,op:n.op,payload:this.commandPayload(n)});let s=this.debugAtomic&&this.atomicLogCount<this.maxAtomicLogs?this.captureAtomicState():null;this.execute(n),s&&this.logAtomic(r,n,s,this.captureAtomicState());}this.logDebug("render:end",{renderedCommands:e.length,capturedTextRuns:this.capturedTextRuns.length,finalTextMatrix:this.state.textMatrix,finalLineMatrix:this.state.textLineMatrix,finalCTM:this.state.ctm,stackDepth:this.stateStack.length});}async renderAsync(e){for(this.commandIndex=0,this.xobjectDepth=0,this.capturedTextRuns=[],this.capturedImages=[],this.paintRecords=[],this.breakerIndices=[],this.pendingPath=null,this.patternCache.clear(),this.meshCache.clear(),this.glyphWidthCache.clear(),this.ctx=this.baseCtx,this.layerStack=[],this.applyCurrentTransform(),this.logDebug("render:start",{commandCount:e.length,async:true}),await this.preloadEmbeddedFonts(),await this.runCommandsAsync(e);this.layerStack.length>0;)this.popLayer();this.logDebug("render:end",{renderedCommands:e.length,capturedTextRuns:this.capturedTextRuns.length,finalTextMatrix:this.state.textMatrix,finalLineMatrix:this.state.textLineMatrix,finalCTM:this.state.ctm,stackDepth:this.stateStack.length,async:true});}async renderAnnotations(e){if(!e)return;let n=this.resolveObject(e.entries.get("Annots"));if(!n||!j(n))return;let r=this.state;this.state=St(),this.applyCurrentTransform();try{for(let i of n.items){let s=this.resolveObject(i);if(!(!s||!M(s)))try{await this.renderOneAnnotation(s);}catch(o){this.logDebug("annot:render-failed",{error:o instanceof Error?o.message:String(o)});}}}finally{this.state=r,this.applyCurrentTransform();}}async renderOneAnnotation(e){var l,f;let n=V(e.entries.get("Subtype"));if(n==="Popup"||n==="Link"||n==="Widget")return;let r=Math.floor((l=A(e.entries.get("F")))!=null?l:0);if((r&2)!==0||(r&32)!==0)return;let i=this.resolveAppearanceStream(e);if(!i)return;let s=le(this.resolveObject(e.entries.get("Rect")));if(!s||s.length<4)return;let o=le(i.dict.entries.get("BBox"));if(!o||o.length<4)return;let a=(f=rt(i.dict.entries.get("Matrix")))!=null?f:[1,0,0,1,0,0],c=Ss(s,o,a);if(c){this.execute({op:"save_state"}),this.execute({op:"set_ctm",matrix:c});try{await this.renderFormStreamInline(i);}finally{this.execute({op:"restore_state"});}}}resolveAppearanceStream(e){let n=this.resolveObject(e.entries.get("AP"));if(!n||!M(n))return null;let r=this.resolveObject(n.entries.get("N"));if(r&&M(r)){let i=V(e.entries.get("AS"));r=i?this.resolveObject(r.entries.get(i)):void 0;}return r&&U(r)?r:null}async runCommandsAsync(e){let n=()=>typeof performance!="undefined"?performance.now():Date.now(),r=n();for(let i of e){let s=this.commandIndex++;this.debug&&this.logDebug("command",{index:s,op:i.op,payload:this.commandPayload(i)}),n()-r>12&&(await ys(),r=n());let a=this.debugAtomic&&this.atomicLogCount<this.maxAtomicLogs?this.captureAtomicState():null;i.op==="xobject"?await this.renderXObject(i.name):i.op==="inline_image"?await this.renderInlineImage(i.params,i.data):(i.op==="set_fill_color"||i.op==="set_stroke_color")&&i.patternName&&!this.forcedColor&&(i.op==="set_fill_color"?this.state.fillColorSpace:this.state.strokeColorSpace)==="Pattern"?await this.applyPatternColor(i.op==="set_fill_color"?"fill":"stroke",i.patternName,i.values):i.op==="set_graphics_state"?(this.execute(i),await this.applySoftMaskFromExtGState(i.name)):this.execute(i),a&&this.logAtomic(s,i,a,this.captureAtomicState());}}getCapturedTextRuns(){return this.capturedTextRuns.map(e=>({...e,glyphs:e.glyphs.map(n=>({...n}))}))}getCapturedImages(){return this.capturedImages.map(e=>({...e,ctm:[...e.ctm]}))}getCapturedGraphics(){return hr(this.paintRecords,this.breakerIndices,this.canvas.width,this.canvas.height).map(e=>({canvasX:e.bbox.minX,canvasY:e.bbox.minY,canvasWidth:e.bbox.maxX-e.bbox.minX,canvasHeight:e.bbox.maxY-e.bbox.minY,operatorStart:e.operatorStart,operatorEnd:e.operatorEnd,paintOperatorIndices:e.paintOperatorIndices,ctmAtStart:e.ctmAtStart,fromXObject:e.fromXObject}))}extendPendingPath(e){if(this.captureSuppressed>0)return;this.pendingPath||(this.pendingPath={bbox:{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},startIndex:Math.max(0,this.commandIndex-1),ctmAtStart:[...this.state.ctm]});let n=Y(this.deviceBase(),this.state.ctm),r=this.pendingPath.bbox;for(let[i,s]of e){let o=J(n,i,s);o.x<r.minX&&(r.minX=o.x),o.x>r.maxX&&(r.maxX=o.x),o.y<r.minY&&(r.minY=o.y),o.y>r.maxY&&(r.maxY=o.y);}}recordPaintForCapture(){let e=this.pendingPath;this.pendingPath=null,!(this.captureSuppressed>0||!e)&&(e.bbox.minX>e.bbox.maxX||this.paintRecords.push({bbox:{...e.bbox},pathStartIndex:e.startIndex,paintIndex:Math.max(0,this.commandIndex-1),ctmAtStart:e.ctmAtStart,fromXObject:this.xobjectDepth>0}));}recordBreaker(){this.captureSuppressed>0||this.breakerIndices.push(Math.max(0,this.commandIndex-1));}captureImageBox(e,n){if(this.recordBreaker(),this.captureSuppressed>0)return;let r=Y(this.deviceBase(),this.state.ctm),i=[J(r,0,0),J(r,1,0),J(r,0,1),J(r,1,1)],s=i.map(l=>l.x),o=i.map(l=>l.y),a=Math.min(...s),c=Math.min(...o);this.capturedImages.push({canvasX:a,canvasY:c,canvasWidth:Math.max(...s)-a,canvasHeight:Math.max(...o)-c,ctm:[...this.state.ctm],kind:e,xobjectName:n,streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0});}setFontContext(e,n){this.pageResources=e!=null?e:null,this.objectLoader=n!=null?n:null,this.fontCache.clear(),this.fontDiagnosticsLogged.clear(),this.rawByteDiagnosticsLogged.clear(),this.patternCache.clear();}execute(e){var n,r;switch(e.op){case "save_state":this.stateStack.push(Ns(this.state)),this.resolverStack.push({fill:this.fillColorResolver,stroke:this.strokeColorResolver}),this.ctx.save();break;case "restore_state":for(;this.layerStack.length>0&&this.stateStack.length>0;){let i=this.layerStack[this.layerStack.length-1];if(i.kind==="smask"&&i.stateDepthAtPush>=this.stateStack.length)this.popLayer();else break}if(this.stateStack.length>0&&(this.state=this.stateStack.pop()),this.resolverStack.length>0){let i=this.resolverStack.pop();this.fillColorResolver=i.fill,this.strokeColorResolver=i.stroke;}this.ctx.restore();break;case "set_ctm":this.state.ctm=Y(this.state.ctm,e.matrix),this.applyCurrentTransform(),this.logDebug("ctm:update",{ctm:this.state.ctm,cmd:e.matrix});break;case "set_line_width":this.state.lineWidth=e.width,this.ctx.lineWidth=e.width;break;case "set_line_cap":{let i=["butt","round","square"];this.state.lineCap=e.cap,this.ctx.lineCap=(n=i[e.cap])!=null?n:"butt";break}case "set_line_join":{let i=["miter","round","bevel"];this.state.lineJoin=e.join,this.ctx.lineJoin=(r=i[e.join])!=null?r:"miter";break}case "set_miter_limit":this.state.miterLimit=e.limit,this.ctx.miterLimit=e.limit;break;case "set_dash":this.state.dashArray=e.array,this.state.dashPhase=e.phase,this.ctx.setLineDash(e.array),this.ctx.lineDashOffset=e.phase;break;case "set_rendering_intent":break;case "set_graphics_state":this.applyExtGState(e.name);break;case "set_fill_color_rgb":if(this.forcedColor)break;this.state.fillColorSpace="DeviceRGB",this.state.fillColor={space:"rgb",r:e.r,g:e.g,b:e.b},this.state.fillPatternName=null,this.state.fillPattern=null,this.ctx.fillStyle=ye(e.r,e.g,e.b);break;case "set_stroke_color_rgb":if(this.forcedColor)break;this.state.strokeColorSpace="DeviceRGB",this.state.strokeColor={space:"rgb",r:e.r,g:e.g,b:e.b},this.state.strokePatternName=null,this.state.strokePattern=null,this.ctx.strokeStyle=ye(e.r,e.g,e.b);break;case "set_fill_gray":if(this.forcedColor)break;this.state.fillColorSpace="DeviceGray",this.state.fillColor={space:"gray",gray:e.gray},this.state.fillPatternName=null,this.state.fillPattern=null,this.ctx.fillStyle=ye(e.gray,e.gray,e.gray);break;case "set_stroke_gray":if(this.forcedColor)break;this.state.strokeColorSpace="DeviceGray",this.state.strokeColor={space:"gray",gray:e.gray},this.state.strokePatternName=null,this.state.strokePattern=null,this.ctx.strokeStyle=ye(e.gray,e.gray,e.gray);break;case "set_fill_cmyk":{if(this.forcedColor)break;this.state.fillColorSpace="DeviceCMYK",this.state.fillColor={space:"cmyk",c:e.c,m:e.m,y:e.y,k:e.k},this.state.fillPatternName=null,this.state.fillPattern=null;let i=qe(e.c,e.m,e.y,e.k);this.ctx.fillStyle=ye(i.r,i.g,i.b);break}case "set_stroke_cmyk":{if(this.forcedColor)break;this.state.strokeColorSpace="DeviceCMYK",this.state.strokeColor={space:"cmyk",c:e.c,m:e.m,y:e.y,k:e.k},this.state.strokePatternName=null,this.state.strokePattern=null;let i=qe(e.c,e.m,e.y,e.k);this.ctx.strokeStyle=ye(i.r,i.g,i.b);break}case "move_to":this.ctx.beginPath(),this.ctx.moveTo(e.x,e.y),this.currentPathX=e.x,this.currentPathY=e.y,this.pathStartX=e.x,this.pathStartY=e.y,this.extendPendingPath([[e.x,e.y]]);break;case "line_to":this.ctx.lineTo(e.x,e.y),this.currentPathX=e.x,this.currentPathY=e.y,this.extendPendingPath([[e.x,e.y]]);break;case "curve_to":this.ctx.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x3,e.y3),this.extendPendingPath([[e.x1,e.y1],[e.x2,e.y2],[e.x3,e.y3]]),this.currentPathX=e.x3,this.currentPathY=e.y3;break;case "curve_to_v":this.ctx.bezierCurveTo(this.currentPathX,this.currentPathY,e.x2,e.y2,e.x3,e.y3),this.extendPendingPath([[e.x2,e.y2],[e.x3,e.y3]]),this.currentPathX=e.x3,this.currentPathY=e.y3;break;case "rect":this.ctx.beginPath(),this.ctx.rect(e.x,e.y,e.w,e.h),this.currentPathX=e.x,this.currentPathY=e.y,this.pathStartX=e.x,this.pathStartY=e.y,this.extendPendingPath([[e.x,e.y],[e.x+e.w,e.y+e.h]]);break;case "close_path":this.ctx.closePath(),this.currentPathX=this.pathStartX,this.currentPathY=this.pathStartY;break;case "end_path":this.ctx.beginPath(),this.pendingPath=null;break;case "stroke":this.paintStroke(),this.recordPaintForCapture();break;case "close_stroke":this.ctx.closePath(),this.currentPathX=this.pathStartX,this.currentPathY=this.pathStartY,this.paintStroke(),this.recordPaintForCapture();break;case "fill":this.paintFill(),this.recordPaintForCapture();break;case "fill_stroke":this.paintFill(),this.paintStroke(),this.recordPaintForCapture();break;case "fill_even_odd":this.paintFill("evenodd"),this.recordPaintForCapture();break;case "fill_stroke_even_odd":this.paintFill("evenodd"),this.paintStroke(),this.recordPaintForCapture();break;case "close_fill_stroke":this.ctx.closePath(),this.paintFill(),this.paintStroke(),this.recordPaintForCapture();break;case "close_fill_stroke_even_odd":this.ctx.closePath(),this.paintFill("evenodd"),this.paintStroke(),this.recordPaintForCapture();break;case "clip":this.disableClip?this.logDebug("clip:skipped",{rule:"nonzero"}):this.ctx.clip();break;case "clip_even_odd":this.disableClip?this.logDebug("clip:skipped",{rule:"evenodd"}):this.ctx.clip("evenodd");break;case "begin_text":this.state.textMatrix=[1,0,0,1,0,0],this.state.textLineMatrix=[1,0,0,1,0,0];break;case "end_text":break;case "set_font":this.state.font=e.name,this.state.fontSize=e.size;break;case "set_text_matrix":this.state.textMatrix=[...e.matrix],this.state.textLineMatrix=[...e.matrix];break;case "move_text":this.state.textLineMatrix=Y(this.state.textLineMatrix,[1,0,0,1,e.tx,e.ty]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "move_text_set_leading":this.state.leading=-e.ty,this.state.textLineMatrix=Y(this.state.textLineMatrix,[1,0,0,1,e.tx,e.ty]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "next_line":this.state.textLineMatrix=Y(this.state.textLineMatrix,[1,0,0,1,0,-this.state.leading]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "set_char_spacing":this.state.charSpacing=e.spacing;break;case "set_word_spacing":this.state.wordSpacing=e.spacing;break;case "set_horiz_scale":this.state.horizScale=e.scale;break;case "set_leading":this.state.leading=e.leading;break;case "set_text_render":this.state.textRenderMode=e.mode;break;case "set_text_rise":this.state.textRise=e.rise;break;case "show_string":this.recordBreaker(),this.renderText(e.data);break;case "show_strings":this.recordBreaker();for(let i of e.items)if(i instanceof Uint8Array)this.renderText(i);else {let s=-(i/1e3)*this.state.fontSize*(this.state.horizScale/100);this.state.textMatrix=Y(this.state.textMatrix,[1,0,0,1,s,0]);}break;case "next_line_show_string":this.recordBreaker(),this.moveToNextTextLine(),this.renderText(e.data);break;case "set_spacing_next_line_show_string":this.recordBreaker(),this.state.wordSpacing=e.wordSpacing,this.state.charSpacing=e.charSpacing,this.moveToNextTextLine(),this.renderText(e.data);break;case "xobject":case "inline_image":break;case "set_fill_color_space":this.state.fillColorSpace=this.resolveColorSpaceName(e.name),this.fillColorResolver=this.buildComplexColorResolver(e.name);break;case "set_stroke_color_space":this.state.strokeColorSpace=this.resolveColorSpaceName(e.name),this.strokeColorResolver=this.buildComplexColorResolver(e.name);break;case "set_fill_color":if(this.forcedColor)break;if(this.state.fillColorSpace==="Pattern"&&e.patternName){this.state.fillPatternName=e.patternName;let i=this.resolvePatternFillStyle(e.patternName,"fill");this.ctx.fillStyle=i;}else this.state.fillPatternName=null,this.state.fillPattern=null,this.state.fillColor=this.fillColorResolver?this.fillColorResolver(e.values):je(this.state.fillColorSpace,e.values),this.ctx.fillStyle=ve(this.state.fillColor);break;case "set_stroke_color":if(this.forcedColor)break;if(this.state.strokeColorSpace==="Pattern"&&e.patternName){this.state.strokePatternName=e.patternName;let i=this.resolvePatternFillStyle(e.patternName,"stroke");this.ctx.strokeStyle=i;}else this.state.strokePatternName=null,this.state.strokePattern=null,this.state.strokeColor=this.strokeColorResolver?this.strokeColorResolver(e.values):je(this.state.strokeColorSpace,e.values),this.ctx.strokeStyle=ve(this.state.strokeColor);break;case "shade":this.renderShadeOperator(e.name);break;}}moveToNextTextLine(){this.state.textLineMatrix=Y(this.state.textLineMatrix,[1,0,0,1,0,-this.state.leading]),this.state.textMatrix=[...this.state.textLineMatrix];}renderText(e){var Ze;if(e.length===0)return;let n=this.getCurrentFontInfo();if(n.isType3){this.renderType3Text(e,n);return}let r=this.decodeTextWithFont(e,n),i=Math.max(1,this.state.fontSize);this.ctx.font=vr(n,i);let s=X=>this.measureGlyphWidthCached(X),o=Rs(e,r,n,i,this.state.charSpacing,this.state.wordSpacing,s),a=o.glyphs,c=a.map(X=>X.text).join("")||r;this.logDebug("text:before",{text:c,textLength:c.length,font:this.state.font,fontSize:i,textMatrix:this.state.textMatrix,fillColor:ve(this.state.fillColor),textRise:this.state.textRise,horizScale:this.state.horizScale}),this.ctx.save();let l=this.state.textMatrix;this.ctx.transform(l[0],l[1],l[2],l[3],l[4],l[5]);let f=this.state.horizScale/100;f!==1&&this.ctx.scale(f,1);let d=this.state.textRise;this.ctx.font=vr(n,i),this.ctx.fillStyle=ve(this.state.fillColor),this.ctx.globalAlpha=this.state.fillAlpha;let u=this.ctx.measureText(c),h=Math.max(1e-4,u.width),m=o.hasPdfMetrics?a.reduce((X,de)=>X+de.advance,0)*f:null,p=m!=null?m:h*f,x=Math.max(1,u.actualBoundingBoxAscent||i*.8),g=Math.max(1,u.actualBoundingBoxDescent||i*.2);this.ctx.scale(1,-1);let b=o.hasPdfMetrics&&a.length>0,P=h*Math.max(1e-4,f),y=m?_s(p/P,.5,1.8):1;!b&&y!==1&&this.ctx.scale(y,1);let D=this.state.textRenderMode,v=D===0||D===2||D===4||D===6,S=D===1||D===2||D===5||D===6;v&&(this.ctx.fillStyle=ve(this.state.fillColor)),S&&(this.ctx.strokeStyle=ve(this.state.strokeColor),this.ctx.lineWidth=Math.max(.01,this.state.lineWidth/i));let F=(X,de)=>{v&&(this.ctx.globalAlpha=this.state.fillAlpha,this.ctx.fillText(X,de,-d)),S&&(this.ctx.globalAlpha=this.state.strokeAlpha,this.ctx.strokeText(X,de,-d));};if(b){let X=0;for(let de of a)de.text&&F(de.text,X),X+=de.advance;}else F(c,0);this.ctx.restore();let w=[1,0,0,-1,0,this.pageHeight],C=Y(Y(w,this.state.ctm),l),O=p,E=J(C,0,d),I=[J(C,0,d+x),J(C,O,d+x),J(C,O,d-g),J(C,0,d-g)],L=Math.min(...I.map(X=>X.x)),$=Math.max(...I.map(X=>X.x)),H=Math.min(...I.map(X=>X.y)),Z=Math.max(...I.map(X=>X.y)),ae=L*this.scale,T=H*this.scale,B=Math.max(1,($-L)*this.scale),W=Math.max(1,(Z-H)*this.scale),G=Ee(this.state.fillColor),fe=(Ze=n.baseFontName)!=null?Ze:this.state.font,ee=Y(this.state.ctm,l),te=Math.hypot(ee[1],ee[3]),Me=Math.max(1,i*(te>.01?te:1)),xe=this.capturedTextRuns.length,pe=0,ke=a.map(X=>{let de=o.hasPdfMetrics?X.advance:h>0?this.measureGlyphWidthCached(X.text)/h*(p/Math.max(1e-4,f)):0,dt=J(C,pe*f,d),K=J(C,(pe+de)*f,d),ce=Math.min(dt.x,K.x)*this.scale,be=Math.max(1,Math.abs(K.x-dt.x)*this.scale);return pe+=de,{canvasX:ce,canvasY:T,canvasWidth:be,canvasHeight:W,canvasBaselineY:E.y*this.scale,char:X.text,charCode:X.code,runIndex:xe}});this.capturedTextRuns.push({index:xe,text:c,fontName:fe,fontSize:Me,canvasX:ae,canvasY:T,canvasWidth:B,canvasHeight:W,canvasBaselineX:E.x*this.scale,canvasBaselineY:E.y*this.scale,fillColor:G,streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0,glyphs:ke,fontFamily:xn(n)});let ge=m!=null?m:p;this.state.textMatrix=Y(this.state.textMatrix,[1,0,0,1,ge,0]),this.logDebug("text:after",{text:c,measuredWidth:h,advance:ge,needsTextFlip:true,bytesHexPreview:Array.from(e.slice(0,12)).map(X=>X.toString(16).padStart(2,"0")).join(" "),printableChars:Array.from(r).filter(X=>X>=" "&&X<="~").length,totalChars:r.length,nextTextMatrix:this.state.textMatrix});}renderType3Text(e,n){var v,S,F,w,C,O,E,I;let r=n.type3CharProcs,i=n.type3Encoding;if(!r)return;let s=Math.max(1,this.state.fontSize),o=this.state.horizScale/100,a=this.state.textRise,c=(v=n.fontMatrix)!=null?v:[.001,0,0,.001,0,0],l=this.capturedTextRuns.length,f="";for(let L=0;L<e.length;L++){let $=e[L],H=(S=n.encodingMap)==null?void 0:S.get($);f+=H!=null?H:i&&(F=i.get($))!=null?F:String.fromCharCode($);}let d=[...this.state.textMatrix],u=[1,0,0,-1,0,this.pageHeight],h=this.pageResources;for(let L=0;L<e.length;L++){let $=e[L],H=(w=i==null?void 0:i.get($))!=null?w:".notdef",ae=((E=(O=(C=n.widths)==null?void 0:C.get($))!=null?O:n.defaultWidth)!=null?E:1e3)/1e3*s+this.state.charSpacing+($===32?this.state.wordSpacing:0),T=r.entries.get(H),B=T?this.resolveObject(T):void 0;if(B&&U(B)){let W=this.state.textMatrix,G=[s*o,0,0,s,0,a],fe=Y(Y(W,G),c),ee=[...this.state.textMatrix],te=[...this.state.textLineMatrix];this.execute({op:"save_state"}),this.execute({op:"set_ctm",matrix:fe}),n.type3Resources&&(this.pageResources=n.type3Resources),this.captureSuppressed+=1;try{let Me=_.decodeStreamSync(B),xe=Ue(Me);for(let pe of xe)pe.op!=="type3_glyph_width"&&this.execute(pe);}catch{}finally{this.captureSuppressed-=1;}this.pageResources=h,this.execute({op:"restore_state"}),this.state.textMatrix=ee,this.state.textLineMatrix=te;}this.state.textMatrix=Y(this.state.textMatrix,[1,0,0,1,ae,0]);}let m=Y(Y(u,this.state.ctm),d),p=J(m,0,a),x=Y(Y(u,this.state.ctm),this.state.textMatrix),g=J(x,0,a),b=Math.min(p.x,g.x)*this.scale,P=(Math.min(p.y,g.y)-s)*this.scale,y=Math.max(1,Math.abs(g.x-p.x)*this.scale),D=Math.max(1,s*this.scale);this.capturedTextRuns.push({index:l,text:f,fontName:(I=n.baseFontName)!=null?I:this.state.font,fontSize:s,canvasX:b,canvasY:P,canvasWidth:y,canvasHeight:D,canvasBaselineX:p.x*this.scale,canvasBaselineY:p.y*this.scale,fillColor:Ee(this.state.fillColor),streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0,glyphs:[],fontFamily:xn(n)});}commandPayload(e){return e.op==="show_string"?{text:this.decodeText(e.data),bytes:e.data.length}:e.op==="show_strings"?{items:e.items.map(n=>n instanceof Uint8Array?{type:"text",text:this.decodeText(n),bytes:n.length}:{type:"adjust",value:n})}:e}decodeText(e){return this.decodeTextWithFont(e,this.getCurrentFontInfo())}measureGlyphWidthCached(e){let n=`${this.ctx.font}|${e}`,r=this.glyphWidthCache.get(n);if(r!==void 0)return r;let i=this.ctx.measureText(e).width;return this.glyphWidthCache.set(n,i),i}async preloadEmbeddedFonts(){if(this.embeddedFamilies.clear(),!this.pageResources)return;let e=this.resolveObject(this.pageResources.entries.get("Font"));if(!e||!M(e))return;let n=r=>this.resolveObject(r);for(let[r,i]of e.entries)try{let s=this.resolveObject(i);if(!s||!M(s))continue;let a=V(s.entries.get("Subtype"))==="Type0"?Sr(s,n):void 0,c=Fr(s,a,n),l=mr(c,n);if(!l)continue;let f=await pr(l);f&&this.embeddedFamilies.set(r,f);}catch{}}getCurrentFontInfo(){let e=this.state.font;if(!e)return Ot();let n=this.fontCache.get(e);if(n)return n;let r=this.loadFontInfo(e);return this.fontCache.set(e,r),r}loadFontInfo(e){var C,O,E,I,L,$,H,Z,ae;if(!this.pageResources)return Ot();let n=this.resolveObject(this.pageResources.entries.get("Font"));if(!n||!M(n))return Ot();let r=n.entries.get(e),i=this.resolveObject(r);if(!i||!M(i))return Ot();let s=yr.get(i);if(s)return s;let o=i.entries.get("Subtype"),a=(C=V(o))!=null?C:"Unknown",c=(O=V(i.entries.get("BaseFont")))!=null?O:void 0,l=a==="Type0",f=Math.floor((E=A(i.entries.get("FirstChar")))!=null?E:0),d=l?Sr(i,T=>this.resolveObject(T)):void 0,u=Fr(i,d,T=>this.resolveObject(T)),h=l?As(d):Cs(i,f),m=l?Ms(d):ks(i),p=i.entries.get("ToUnicode"),x=i.entries.get("Encoding"),g=null,b=this.resolveObject(p);if(b&&U(b))try{let T=_.decodeStreamSync(b),B=new TextDecoder("latin1").decode(T),W=po(B);this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Ce(p),resolvedToUnicodeType:Ce(b),encoding:Ce(x),cmapRaw:W}),this.debug&&br.has(e)&&!gr.has(e)&&(gr.add(e),console.log(`=== Raw CMap text for ${e} (first 500 chars) ===`),console.log(B.slice(0,500)),console.log("===")),g=Ws(B),this.logDebug("font:cmap-parsed",{fontName:e,cmapType:g.cmapType,isUsable:g.isUsable,bfChar:g.bfChar.size,bfRange:g.bfRange.length,codeSpaceRanges:g.codeSpaceRanges.length}),g&&br.has(e)&&Hs(g,e);}catch(T){this.logDebug("font:toUnicode-failed",{fontName:e,subtype:a,error:T instanceof Error?T.message:String(T)}),this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Ce(p),resolvedToUnicodeType:Ce(b),encoding:Ce(x),toUnicodeError:T instanceof Error?T.message:String(T)});}else this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Ce(p),resolvedToUnicodeType:Ce(b),encoding:Ce(x),note:l?"Composite font without resolved ToUnicode stream":"No ToUnicode stream"});if(!g&&l){let T=i.entries.get("Encoding");T&&T.type==="name"&&(T.value==="Identity-H"||T.value==="Identity-V")&&this.logDebug("font:identity-no-tounicode",{fontName:e,subtype:a,encoding:T.value});}let P;l||(P=Ls(x,T=>this.resolveObject(T)));let y=false,D,v,S,F;if(a==="Type3"){y=true;let T=this.resolveObject(i.entries.get("CharProcs"));T&&M(T)&&(D=T);let B=i.entries.get("FontMatrix");if(B&&j(B)){let G=B.items;S=[(I=A(G[0]))!=null?I:.001,(L=A(G[1]))!=null?L:0,($=A(G[2]))!=null?$:0,(H=A(G[3]))!=null?H:.001,(Z=A(G[4]))!=null?Z:0,(ae=A(G[5]))!=null?ae:0];}let W=this.resolveObject(i.entries.get("Resources"));W&&M(W)&&(F=W),v=$s(x,G=>this.resolveObject(G));}let w={subtype:a,baseFontName:c,fontWeight:Os(c,u),fontStyle:Ts(c,u),isComposite:l,firstChar:f,widths:h,defaultWidth:m,toUnicode:g,encodingMap:P,isType3:y,type3CharProcs:D,type3Encoding:v,fontMatrix:S,type3Resources:F,registeredFamily:this.embeddedFamilies.get(e)};return this.logDebug("font:loaded",{fontName:e,subtype:a,isComposite:l,hasToUnicode:!!g}),yr.set(i,w),w}logFontDiagnostic(e,n){if(!this.debug)return;let r=`${e}|${String(n.subtype)}|${String(n.rawToUnicodeType)}|${String(n.resolvedToUnicodeType)}`;this.fontDiagnosticsLogged.has(r)||(this.fontDiagnosticsLogged.add(r),console.info("[PageRenderer][FontDiag]",{font:e,...n}));}resolveObject(e){if(e){if(!q(e))return e;if(this.objectLoader)try{return this.objectLoader(e)}catch{return}}}resolveColorSpaceName(e){var s;let n=Pe(e);if(n)return n;if(!this.pageResources)return e;let r=this.resolveObject(this.pageResources.entries.get("ColorSpace"));if(!r||!M(r))return e;let i=this.resolveObject(r.entries.get(e));return (s=Dr(i))!=null?s:e}buildComplexColorResolver(e){var h;if(Pe(e))return null;let n=this.separationColorCache.get(e);if(n)return n;if(!this.pageResources||!this.objectLoader)return null;let r=this.resolveObject(this.pageResources.entries.get("ColorSpace"));if(!r||!M(r))return null;let i=this.resolveObject(r.entries.get(e));if(!i||!j(i)||i.items.length<2)return null;let s=V(i.items[0]);if(s!=="Separation"&&s!=="DeviceN")return null;let o=2,a=3,c=i.items[o]?this.resolveObject(i.items[o]):void 0,l=(h=Dr(c))!=null?h:"DeviceGray",f=i.items[a],d=this.objectLoader,u=m=>{var g;let p=(g=m[0])!=null?g:0,x=Ct(f,p,d);return x&&x.length>0?je(l,x):l==="DeviceCMYK"?{space:"cmyk",c:0,m:0,y:0,k:p}:{space:"gray",gray:1-p}};return this.separationColorCache.set(e,u),u}async renderXObject(e){if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("XObject"));if(!n||!M(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!U(r))return;let i=V(r.dict.entries.get("Subtype"));if(i==="Image"){this.captureImageBox("xobject",e),await this.renderImageXObject(r);return}if(i==="Form")try{let s=r,o=this.resolveObject(s.dict.entries.get("Resources")),c=await(s.decode?s.decode():Promise.resolve(_.decodeStreamSync(s))),l=Ue(c instanceof Uint8Array?c:new Uint8Array(await c)),f=this.pageResources,d=this.objectLoader,u=this.patternCache;this.patternCache=new Map,this.pageResources=o&&M(o)?o:this.pageResources;let h=this.resolveObject(s.dict.entries.get("Group")),x=!!h&&M(h)&&V(h.entries.get("S"))==="Transparency"&&(this.state.fillAlpha<1||this.state.strokeAlpha<1||this.state.blendMode!=="Normal")&&this.pushLayer("group",this.state.fillAlpha,this.state.blendMode,null);this.execute({op:"save_state"}),x&&(this.state.fillAlpha=1,this.state.strokeAlpha=1,this.state.blendMode="Normal",this.ctx.globalAlpha=1,this.ctx.globalCompositeOperation="source-over");let g=s.dict.entries.get("Matrix");if(g&&Array.isArray(g.items))try{let P=g.items.map(y=>{var D;return Number((D=A(y))!=null?D:0)});this.execute({op:"set_ctm",matrix:P});}catch{}let b=this.commandIndex;this.xobjectDepth+=1;try{await this.runCommandsAsync(l);}finally{this.xobjectDepth-=1,this.commandIndex=b;}this.execute({op:"restore_state"}),x&&this.popLayer(),this.pageResources=f,this.objectLoader=d,this.patternCache=u;return}catch(s){this.logDebug("xobject:form-failed",{name:e,error:s instanceof Error?s.message:String(s)});return}}resolveImageColorSpace(e){var r,i,s;if(!e)return "DeviceRGB";let n=V(e);if(n)return (r=Pe(n))!=null?r:n;if(j(e)&&e.items.length>0){let o=V(e.items[0]);if(o==="ICCBased"){let a=this.resolveObject(e.items[1]);if(a&&U(a)){let c=Math.floor((i=A(a.dict.entries.get("N")))!=null?i:3);return c===1?"DeviceGray":c===4?"DeviceCMYK":"DeviceRGB"}return "DeviceRGB"}if(o==="Indexed")return "Indexed";if(o==="CalRGB")return "DeviceRGB";if(o==="CalGray")return "DeviceGray";if(o)return (s=Pe(o))!=null?s:o}return "DeviceRGB"}resolveDecodeParms(e){var r;let n=this.resolveObject((r=e.entries.get("DecodeParms"))!=null?r:e.entries.get("DP"));if(!n)return null;if(M(n))return n;if(j(n))for(let i of n.items){let s=this.resolveObject(i);if(s&&M(s))return s}return null}async decodeJbig2(e){var r;let n=(r=e.rawBytes)!=null?r:e.data;if(!n||n.length===0)return null;try{let{Jbig2Image:i}=await kt(),s,o=this.resolveDecodeParms(e.dict);if(o){let l=this.resolveObject(o.entries.get("JBIG2Globals"));if(l&&U(l))try{s=_.decodeStreamSync(l);}catch{}}let a=[];s&&s.length>0&&a.push({data:s,start:0,end:s.length}),a.push({data:n,start:0,end:n.length});let c=new i().parseChunks(a);for(let l=0;l<c.length;l++)c[l]^=255;return c}catch(i){return this.logDebug("xobject:jbig2-failed",{error:i instanceof Error?i.message:String(i)}),null}}async decodeCcitt(e,n,r){var s;let i=(s=e.rawBytes)!=null?s:e.data;if(!i||i.length===0)return null;try{let{CCITTFaxDecoder:o}=await kt(),a=this.resolveDecodeParms(e.dict),c=(y,D)=>{var v;return a?Math.floor((v=A(a.entries.get(y)))!=null?v:D):D},l=(y,D)=>{let v=a==null?void 0:a.entries.get(y);return v&&typeof v=="object"&&"type"in v&&v.type==="boolean"?v.value:D},f=c("Columns",1728),d=c("Rows",r),u=0,h={next:()=>u<i.length?i[u++]:-1},m=new o(h,{K:c("K",0),EndOfLine:l("EndOfLine",!1),EncodedByteAlign:l("EncodedByteAlign",!1),Columns:f,Rows:d,EndOfBlock:l("EndOfBlock",!0),BlackIs1:l("BlackIs1",!1)}),x=(f+7>>3)*(d>0?d:r),g=new Uint8Array(x),b=0,P;for(;b<x&&(P=m.readNextChar())!==-1;)g[b++]=P;return b>0?g.subarray(0,b):null}catch(o){return this.logDebug("xobject:ccitt-failed",{error:o instanceof Error?o.message:String(o)}),null}}drawRgbaImageData(e,n,r){let i=document.createElement("canvas");i.width=n,i.height=r;let s=i.getContext("2d");s&&(s.putImageData(e,0,0),this.drawImageBitmapLike(i));}async renderImageXObject(e){var u,h,m,p;let n=e.dict,r=Math.floor((u=A(n.entries.get("Width")))!=null?u:0),i=Math.floor((h=A(n.entries.get("Height")))!=null?h:0);if(r<=0||i<=0)return;let s=wr(n.entries.get("Filter")),o=Math.floor((m=A(n.entries.get("BitsPerComponent")))!=null?m:8),a=n.entries.get("ImageMask"),c=a!=null&&typeof a=="object"&&"type"in a&&a.type==="boolean"&&a.value===true||V(a)==="true",l=this.resolveImageColorSpace(n.entries.get("ColorSpace")),f=s.includes("JBIG2Decode"),d=s.includes("CCITTFaxDecode")||s.includes("CCF");try{let x=null;if(f?x=await this.decodeJbig2(e):d&&(x=await this.decodeCcitt(e,r,i)),(f||d)&&!x)return;if(c){await this.renderStencilMask(e,r,i,x);return}if(!f&&!d&&(s.includes("DCTDecode")||s.includes("DCT"))){let g=(p=e.rawBytes)!=null?p:e.data;if(!g)return;if(l==="DeviceCMYK"){await this.renderJpegViaPdfjs(e,g,r,i);return}let b=this.resolveObject(n.entries.get("SMask"));if(b&&U(b))await this.renderImageWithSMask(g,"image/jpeg",b,r,i);else {let P=await fn(g,"image/jpeg");this.drawImageBitmapLike(P),dn(P);}return}if(!f&&!d&&s.includes("JPXDecode")){await this.renderJpxViaPdfjs(e,r,i);return}if(!x&&s.some(g=>!Ds.has(g)))return;if(o===1||o===2||o===4||o===8||o===16){let g=x!=null?x:_.decodeStreamSync(e),b=null;if(l==="Indexed"){let y=n.entries.get("ColorSpace"),D=S=>this.resolveObject(S),v=hn(g,r,i,1,o,!1);b=Bs(v,r,i,y&&j(y)?y.items:[],D);}else {let y=js(l),D=hn(g,r,i,y,o,!0);b=Is(D,r,i,l);}if(!b)return;ws(b,le(n.entries.get("Decode")),l);let P=this.resolveObject(n.entries.get("SMask"));if(P&&U(P))try{let y=await this.decodeSMaskAlpha(P,r,i);Rt(b,y,r,i);}catch{}this.drawRgbaImageData(b,r,i);}}catch(x){this.logDebug("xobject:image-failed",{width:r,height:i,colorSpace:l,bitsPerComponent:o,filters:s,error:x instanceof Error?x.message:String(x)});}}async renderJpegViaPdfjs(e,n,r,i){let{JpegImage:s}=await kt(),o=new s;o.parse(n);let a=o.getData({width:r,height:i,forceRGBA:true,isSourcePDF:true});if(a.length<r*i*4)return;let c=new ImageData(new Uint8ClampedArray(a.subarray(0,r*i*4)),r,i),l=this.resolveObject(e.dict.entries.get("SMask"));if(l&&U(l))try{let f=await this.decodeSMaskAlpha(l,r,i);Rt(c,f,r,i);}catch{}this.drawRgbaImageData(c,r,i);}async renderJpxViaPdfjs(e,n,r){var p,x,g;let i=(p=e.rawBytes)!=null?p:e.data;if(!i)return;let{JpxImage:s}=await kt(),o=new s;o.parse(i);let a=o.width||n,c=o.height||r,l=o.componentsCount||1,f=(g=(x=o.tiles)==null?void 0:x[0])==null?void 0:g.items;if(!f)return;let d=a*c,u=new Uint8ClampedArray(d*4);for(let b=0,P=0;b<d;b++,P+=4){let y=b*l;if(l>=4){let D=f[y],v=f[y+1],S=f[y+2],F=f[y+3];u[P]=255-Math.min(255,D+F),u[P+1]=255-Math.min(255,v+F),u[P+2]=255-Math.min(255,S+F);}else l===3?(u[P]=f[y],u[P+1]=f[y+1],u[P+2]=f[y+2]):u[P]=u[P+1]=u[P+2]=f[y];u[P+3]=255;}let h=new ImageData(u,a,c),m=this.resolveObject(e.dict.entries.get("SMask"));if(m&&U(m))try{let b=await this.decodeSMaskAlpha(m,a,c);Rt(h,b,a,c);}catch{}this.drawRgbaImageData(h,a,c);}async renderInlineImage(e,n){var l;this.captureImageBox("inline",null);let r={W:"Width",H:"Height",BPC:"BitsPerComponent",CS:"ColorSpace",F:"Filter",IM:"ImageMask",D:"Decode",DP:"DecodeParms",I:"Interpolate"},i={AHx:"ASCIIHexDecode",A85:"ASCII85Decode",LZW:"LZWDecode",Fl:"FlateDecode",RL:"RunLengthDecode",CCF:"CCITTFaxDecode",DCT:"DCTDecode"},s={G:"DeviceGray",RGB:"DeviceRGB",CMYK:"DeviceCMYK",I:"Indexed"},o=(f,d)=>f&&"type"in f&&f.type==="name"&&d[f.value]?{type:"name",value:d[f.value]}:f,a=new Map;for(let[f,d]of e.entries){let u=(l=r[f])!=null?l:f,h=d;if(u==="Filter")h=j(d)?{type:"array",items:d.items.map(m=>o(m,i))}:o(d,i);else if(u==="ColorSpace")if(d&&"type"in d&&d.type==="name"&&!s[d.value]&&!["DeviceGray","DeviceRGB","DeviceCMYK","Indexed"].includes(d.value)){let m=this.lookupResource("ColorSpace",d.value);h=m!=null?m:d;}else h=o(d,s);a.set(u,h);}let c={type:"stream",dict:{type:"dict",entries:a},data:n,rawBytes:n};await this.renderImageXObject(c);}lookupResource(e,n){if(!this.pageResources)return;let r=this.resolveObject(this.pageResources.entries.get(e));if(!(!r||!M(r)))return this.resolveObject(r.entries.get(n))}async decodeSMaskAlpha(e,n,r){var d,u,h,m;let i=wr(e.dict.entries.get("Filter")),s=i.includes("JPXDecode");if(i.includes("DCTDecode")||i.includes("DCT")||s){let p=(d=e.rawBytes)!=null?d:e.data;if(p&&p.length>0){let x=await fn(p,s?"image/jp2":"image/jpeg");try{let g=document.createElement("canvas");g.width=n,g.height=r;let b=g.getContext("2d");if(b){b.drawImage(x,0,0,n,r);let{data:P}=b.getImageData(0,0,n,r),y=new Uint8Array(n*r);for(let D=0;D<y.length;D++)y[D]=P[D*4];return y}}finally{dn(x);}}}let a=_.decodeStreamSync(e),c=Math.floor((u=A(e.dict.entries.get("BitsPerComponent")))!=null?u:8);if(c===8)return a;let l=Math.floor((h=A(e.dict.entries.get("Width")))!=null?h:n),f=Math.floor((m=A(e.dict.entries.get("Height")))!=null?m:r);return hn(a,l,f,1,c,true)}async renderImageWithSMask(e,n,r,i,s){let o=await fn(e,n);try{let a=document.createElement("canvas");a.width=i,a.height=s;let c=a.getContext("2d");if(!c){this.drawImageBitmapLike(o);return}c.drawImage(o,0,0,i,s);let l=c.getImageData(0,0,i,s);try{let f=await this.decodeSMaskAlpha(r,i,s);Rt(l,f,i,s);}catch{}c.putImageData(l,0,0),this.drawImageBitmapLike(a);}finally{dn(o);}}async renderStencilMask(e,n,r,i){try{let s=i!=null?i:_.decodeStreamSync(e),o=Ee(this.state.fillColor),a=Math.round(o.r*255),c=Math.round(o.g*255),l=Math.round(o.b*255),f=n*r,d=new Uint8ClampedArray(f*4),u=le(e.dict.entries.get("Decode")),h=!!u&&u.length>=2&&u[0]===1&&u[1]===0,m=0;for(let g=0;g<s.length&&m<f;g++){let b=s[g];for(let P=7;P>=0&&m<f;P--){let y=b>>P&1,D=m*4;y===1!==h&&(d[D]=a,d[D+1]=c,d[D+2]=l,d[D+3]=255),m++;}}let p=document.createElement("canvas");p.width=n,p.height=r;let x=p.getContext("2d");if(!x)return;x.putImageData(new ImageData(d,n,r),0,0),this.drawImageBitmapLike(p);}catch(s){this.logDebug("xobject:stencil-mask-failed",{error:s instanceof Error?s.message:String(s)});}}drawImageBitmapLike(e){this.ctx.save(),this.ctx.transform(1,0,0,-1,0,1),this.ctx.drawImage(e,0,0,1,1),this.ctx.restore();}decodeTextWithFont(e,n){var r;if(e.length===0)return "";if(this.debug){let i=String(this.state.font||"").toLowerCase();if(i==="f1"||i==="f2"){let s=Array.from(e.subarray(0,24)).map(a=>a.toString(16).padStart(2,"0")).join(" "),o=`${i}|${s}`;this.rawByteDiagnosticsLogged.has(o)||(this.rawByteDiagnosticsLogged.add(o),console.log(`[${i} RAW BYTES] ${s}`));}}if(n.toUnicode)return !n.toUnicode.isUsable&&n.isComposite?Vs(e,n.toUnicode):Ks(e,n.toUnicode,n.isComposite,this.state.font,this.debug);if(n.isComposite)return Er(e);if(n.encodingMap&&n.encodingMap.size>0){let i="";for(let s of e)i+=(r=n.encodingMap.get(s))!=null?r:String.fromCharCode(s);return i}return new TextDecoder("latin1").decode(e)}logDebug(e,n){this.debug&&console.debug(`[PageRenderer] ${e}`,n);}captureAtomicState(){return {transform:this.ctx.getTransform(),lineWidth:this.ctx.lineWidth,fillStyle:String(this.ctx.fillStyle),strokeStyle:String(this.ctx.strokeStyle),stackDepth:this.stateStack.length,samples:this.samplePixels()}}samplePixels(){let e=this.canvas.width,n=this.canvas.height;if(e<=0||n<=0)return [];let r=[[1,1],[Math.max(1,Math.floor(e/2)),Math.max(1,Math.floor(n/2))],[Math.max(1,e-2),Math.max(1,n-2)],[Math.max(1,Math.floor(e*.25)),Math.max(1,Math.floor(n*.25))],[Math.max(1,Math.floor(e*.75)),Math.max(1,Math.floor(n*.75))]],i=[],s=this.ctx.getTransform();this.ctx.setTransform(1,0,0,1,0,0);try{for(let[o,a]of r){let c=this.ctx.getImageData(Math.min(e-1,o),Math.min(n-1,a),1,1).data;i.push([c[0],c[1],c[2],c[3]]);}}finally{this.ctx.setTransform(s.a,s.b,s.c,s.d,s.e,s.f);}return i}logAtomic(e,n,r,i){if(!this.debugAtomic||this.atomicLogCount>=this.maxAtomicLogs)return;let s=JSON.stringify(r.samples),o=JSON.stringify(i.samples),a=s!==o;!(n.op==="stroke"||n.op==="fill"||n.op==="fill_even_odd"||n.op==="fill_stroke"||n.op==="show_string"||n.op==="show_strings")&&!a||(this.atomicLogCount+=1,console.debug("[PageRenderer][atomic]",{index:e,op:n.op,stackDepthBefore:r.stackDepth,stackDepthAfter:i.stackDepth,transformBefore:[r.transform.a,r.transform.b,r.transform.c,r.transform.d,r.transform.e,r.transform.f],transformAfter:[i.transform.a,i.transform.b,i.transform.c,i.transform.d,i.transform.e,i.transform.f],lineWidthBefore:r.lineWidth,lineWidthAfter:i.lineWidth,fillStyleBefore:r.fillStyle,fillStyleAfter:i.fillStyle,strokeStyleBefore:r.strokeStyle,strokeStyleAfter:i.strokeStyle,pixelChanged:a,samplesBefore:r.samples,samplesAfter:i.samples}));}applyExtGState(e){var m,p,x;if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("ExtGState"));if(!n||!M(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!M(r))return;let i=r,s=A(i.entries.get("LW"));s!==null&&(this.state.lineWidth=s,this.ctx.lineWidth=s);let o=A(i.entries.get("LC"));if(o!==null){let g=Math.floor(o),b=["butt","round","square"];this.state.lineCap=g,this.ctx.lineCap=(m=b[g])!=null?m:"butt";}let a=A(i.entries.get("LJ"));if(a!==null){let g=Math.floor(a),b=["miter","round","bevel"];this.state.lineJoin=g,this.ctx.lineJoin=(p=b[g])!=null?p:"miter";}let c=A(i.entries.get("ML"));c!==null&&(this.state.miterLimit=c,this.ctx.miterLimit=c);let l=i.entries.get("D");if(l&&j(l)&&l.items.length>=1){let g=l.items[0],b=(x=A(l.items[1]))!=null?x:0;if(j(g)){let P=g.items.map(y=>{var D;return (D=A(y))!=null?D:0});this.state.dashArray=P,this.state.dashPhase=b,this.ctx.setLineDash(P),this.ctx.lineDashOffset=b;}}let f=A(i.entries.get("CA"));f!==null&&(this.state.strokeAlpha=ne(f));let d=A(i.entries.get("ca"));d!==null&&(this.state.fillAlpha=ne(d));let u=i.entries.get("BM"),h=V(u);h&&(this.state.blendMode=h,this.ctx.globalCompositeOperation=Pr(h));}deviceBase(){if(this.initialTransform)return this.initialTransform;let e=this.scale;return [e,0,0,-e,0,e*this.pageHeight]}applyCurrentTransform(){let e=Y(this.deviceBase(),this.state.ctm);this.ctx.setTransform(e[0],e[1],e[2],e[3],e[4],e[5]);}resolvePatternFillStyle(e,n){var r,i,s;try{if(!this.pageResources||!this.objectLoader)return "transparent";let o=this.resolveObject(this.pageResources.entries.get("Pattern"));if(!o||!M(o))return "transparent";let a=this.resolveObject(o.entries.get(e));if(!a||!M(a)||Math.floor((r=A(a.entries.get("PatternType")))!=null?r:0)!==2)return "transparent";let l=this.resolveObject(a.entries.get("Shading"));if(!l||!M(l))return "transparent";let f=(i=rt(a.entries.get("Matrix")))!=null?i:[1,0,0,1,0,0];return (s=this.createCanvasGradient(l,f))!=null?s:"transparent"}catch{return "transparent"}}async resolvePattern(e,n){var o,a;let r=`${e}|${ve(n)}`,i=this.patternCache.get(r);if(i!==void 0)return i;let s=null;try{if(this.pageResources&&this.objectLoader){let c=this.resolveObject(this.pageResources.entries.get("Pattern")),l=c&&M(c)?this.resolveObject(c.entries.get(e)):void 0,f=l?U(l)?l.dict:M(l)?l:null:null;if(f){let d=Math.floor((o=A(f.entries.get("PatternType")))!=null?o:0),u=(a=rt(f.entries.get("Matrix")))!=null?a:[1,0,0,1,0,0];if(d===2){let h=this.resolveObject(f.entries.get("Shading")),m=h?U(h)?h.dict:M(h)?h:null:null;m&&(s={kind:"shading",shading:m,stream:h&&U(h)?h:null,matrix:u});}else d===1&&l&&U(l)&&(s=await this.renderTilingCell(l,f,u,n));}}}catch{s=null;}return this.patternCache.set(r,s),s}async applyPatternColor(e,n,r){let i=e==="fill"?this.state.fillColor:this.state.strokeColor,s=r.length>=4?{space:"cmyk",c:r[0],m:r[1],y:r[2],k:r[3]}:r.length===3?{space:"rgb",r:r[0],g:r[1],b:r[2]}:r.length===1?{space:"gray",gray:r[0]}:i,o=await this.resolvePattern(n,s);e==="fill"?(this.state.fillPatternName=n,this.state.fillPattern=o,o||(this.ctx.fillStyle="transparent")):(this.state.strokePatternName=n,this.state.strokePattern=o,o||(this.ctx.strokeStyle="transparent"));}async renderTilingCell(e,n,r,i){var v,S,F,w;if(this.patternDepth>=4)return null;let s=le(n.entries.get("BBox"));if(!s||s.length<4)return null;let o=[s[0],s[1],s[2],s[3]],a=o[2]-o[0],c=o[3]-o[1],l=(v=A(n.entries.get("XStep")))!=null?v:a,f=(S=A(n.entries.get("YStep")))!=null?S:c,d=Math.abs(l)<1e-9?a:l,u=Math.abs(f)<1e-9?c:f,h=Math.floor((F=A(n.entries.get("PaintType")))!=null?F:1),m=Y(this.deviceBase(),r),p=ur(o,d,u,m);if(!p)return null;let x=document.createElement("canvas"),g=new Ve(x,p.cellPxW,p.cellPxH,1,{disableClip:this.disableClip,transparentBackground:true,initialTransform:p.contentTransform,forcedColor:h===2?i:void 0,patternDepth:this.patternDepth+1}),b=this.resolveObject(n.entries.get("Resources"));g.setFontContext(b&&M(b)?b:void 0,(w=this.objectLoader)!=null?w:void 0);let P=e.decode?await e.decode():_.decodeStreamSync(e),y=Ue(P),D=a>0&&c>0?[{op:"rect",x:o[0],y:o[1],w:a,h:c},{op:"clip"},{op:"end_path"}]:[];return await g.renderAsync([...D,...y]),{kind:"tiling",cell:x,layout:p,matrix:r}}paintFill(e){let n=this.state.fillPattern;if(!n){this.ctx.globalAlpha=this.state.fillAlpha,e?this.ctx.fill(e):this.ctx.fill();return}this.paintPatternThroughPath(n,this.state.fillAlpha,e!=null?e:"nonzero");}paintStroke(){let e=this.state.strokePattern;if(this.ctx.globalAlpha=this.state.strokeAlpha,e)if(e.kind==="tiling"){let c=this.ctx.createPattern(e.cell,"repeat");c&&(this.ctx.strokeStyle=c);}else {let c=this.createCanvasGradient(e.shading,e.matrix);c&&(this.ctx.strokeStyle=c);}let n=this.deviceBase(),r=Math.sqrt(Math.abs(n[0]*n[3]-n[1]*n[2]))||1,i=this.state.ctm,s=Math.sqrt(Math.abs(i[0]*i[3]-i[1]*i[2]))||1,o=r*s,a=this.state.lineWidth*o;this.ctx.lineWidth=this.state.lineWidth===0||a<1?1/o:this.state.lineWidth,this.ctx.stroke();}paintPatternThroughPath(e,n,r){this.ctx.save();try{this.ctx.globalAlpha=n,this.ctx.clip(r);let i=Y(this.deviceBase(),e.matrix);if(e.kind==="tiling"){let s=this.ctx.createPattern(e.cell,"repeat");if(!s)return;let o=Y(i,e.layout.paintTransform);this.ctx.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),this.ctx.fillStyle=s,this.floodCanvasExtent(o,Math.max(e.layout.cellPxW,e.layout.cellPxH));}else this.paintShadingBackground(e.shading,i),this.paintShadingWithBase(e.shading,e.stream,i);}finally{this.ctx.restore();}}paintShadingBackground(e,n){var a,c;let r=le(e.entries.get("Background"));if(!r||!r.length)return;let i=(a=V(e.entries.get("ColorSpace")))!=null?a:"DeviceRGB",s=(c=Pe(i))!=null?c:"DeviceRGB",o=Ee(je(s,r));this.ctx.save(),this.ctx.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),this.ctx.fillStyle=ye(o.r,o.g,o.b),this.floodCanvasExtent(n,0),this.ctx.restore();}paintShadingWithBase(e,n,r){var s;let i=Math.floor((s=A(e.entries.get("ShadingType")))!=null?s:0);if(i===2||i===3){let o=this.createCanvasGradient(e);if(!o)return;this.ctx.save(),this.ctx.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),this.ctx.fillStyle=o,this.floodCanvasExtent(r,0),this.ctx.restore();return}if(i===1){this.paintFunctionShading(e,r);return}i>=4&&i<=7&&n&&this.paintMeshShading(i,e,n,r);}paintFunctionShading(e,n){var P,y,D,v,S,F,w,C;if(!this.objectLoader)return;let r=e.entries.get("Function");if(!r)return;let i=(P=le(e.entries.get("Domain")))!=null?P:[0,1,0,1],[s,o,a,c]=[(y=i[0])!=null?y:0,(D=i[1])!=null?D:1,(v=i[2])!=null?v:0,(S=i[3])!=null?S:1];if(!(o>s)||!(c>a))return;let l=(F=rt(e.entries.get("Matrix")))!=null?F:[1,0,0,1,0,0],f=(w=V(e.entries.get("ColorSpace")))!=null?w:"DeviceRGB",d=(C=Pe(f))!=null?C:"DeviceRGB",u=128,h=128,m=new ImageData(u,h);for(let O=0;O<h;O++){let E=a+(O+.5)/h*(c-a);for(let I=0;I<u;I++){let L=s+(I+.5)/u*(o-s),$=sn(r,[L,E],this.objectLoader);if(!$)continue;let H=Ee(je(d,$)),Z=(O*u+I)*4;m.data[Z]=Math.round(H.r*255),m.data[Z+1]=Math.round(H.g*255),m.data[Z+2]=Math.round(H.b*255),m.data[Z+3]=255;}}let p=document.createElement("canvas");p.width=u,p.height=h;let x=p.getContext("2d");if(!x)return;x.putImageData(m,0,0);let g=[(o-s)/u,0,0,(c-a)/h,s,a],b=Y(Y(n,l),g);this.ctx.save(),this.ctx.setTransform(b[0],b[1],b[2],b[3],b[4],b[5]),this.ctx.drawImage(p,0,0),this.ctx.restore();}paintMeshShading(e,n,r,i){var g,b,P,y,D,v;if(!this.objectLoader)return;let s=this.objectLoader,o=this.meshCache.get(n);if(!o){try{let S=_.decodeStreamSync(r),F=(g=V(n.entries.get("ColorSpace")))!=null?g:"DeviceRGB",w=(b=Pe(F))!=null?b:"DeviceRGB",C=n.entries.get("Function"),O=C?1:Ps(w),E=le(n.entries.get("Decode"));if(!E)return;let I=L=>{var Z;let $=C&&(Z=sn(C,L,s))!=null?Z:L,H=Ee(je(w,$));return [H.r,H.g,H.b]};o=fr(e,{bitsPerCoordinate:Math.floor((P=A(n.entries.get("BitsPerCoordinate")))!=null?P:16),bitsPerComponent:Math.floor((y=A(n.entries.get("BitsPerComponent")))!=null?y:8),bitsPerFlag:Math.floor((D=A(n.entries.get("BitsPerFlag")))!=null?D:8),decode:E,numColorComponents:O,verticesPerRow:(v=A(n.entries.get("VerticesPerRow")))!=null?v:void 0},S,I);}catch{o=[];}this.meshCache.set(n,o);}if(!o.length)return;let a=1/0,c=1/0,l=-1/0,f=-1/0;for(let S of o)for(let[F,w]of S.p){let C=J(i,F,w);C.x<a&&(a=C.x),C.x>l&&(l=C.x),C.y<c&&(c=C.y),C.y>f&&(f=C.y);}a=Math.max(0,Math.floor(a)),c=Math.max(0,Math.floor(c)),l=Math.min(this.canvas.width,Math.ceil(l)),f=Math.min(this.canvas.height,Math.ceil(f));let d=Math.min(4096,l-a),u=Math.min(4096,f-c);if(d<=0||u<=0)return;let h=Y([1,0,0,1,-a,-c],i),m=dr(o,h,d,u),p=document.createElement("canvas");p.width=d,p.height=u;let x=p.getContext("2d");x&&(x.putImageData(new ImageData(m,d,u),0,0),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(p,a,c),this.ctx.restore());}floodCanvasExtent(e,n){let r=He(e);if(!r)return;let i=this.canvas.width,s=this.canvas.height,o=[J(r,0,0),J(r,i,0),J(r,0,s),J(r,i,s)],a=o.map(h=>h.x),c=o.map(h=>h.y),l=Math.min(...a)-n,f=Math.min(...c)-n,d=Math.max(...a)+n,u=Math.max(...c)+n;this.ctx.fillRect(l,f,d-l,u-f);}createCanvasGradient(e,n){var x,g,b,P;let r=Math.floor((x=A(e.entries.get("ShadingType")))!=null?x:0),i=(g=V(e.entries.get("ColorSpace")))!=null?g:"DeviceRGB",s=(b=Pe(i))!=null?b:"DeviceRGB",o=e.entries.get("Function"),a=(P=le(e.entries.get("Domain")))!=null?P:[0,1],[c,l]=Fs(e.entries.get("Extend")),f=y=>{var S,F;let D=a[0]+y*(((S=a[1])!=null?S:1)-a[0]),v=this.objectLoader?(F=Ct(o,D,this.objectLoader))!=null?F:[0]:[0];return Ee(je(s,v))},d=y=>`rgb(${Math.round(y.r*255)},${Math.round(y.g*255)},${Math.round(y.b*255)})`,u=y=>`rgba(${Math.round(y.r*255)},${Math.round(y.g*255)},${Math.round(y.b*255)},0)`,h=le(e.entries.get("Coords"));if(!h)return null;let m=(y,D)=>n?[n[0]*y+n[2]*D+n[4],n[1]*y+n[3]*D+n[5]]:[y,D],p=y=>{let v=.000244140625,S=c?0:v,F=l?1:1-v;c||y.addColorStop(0,u(f(0)));for(let w=0;w<=64;w++){let C=w/64;y.addColorStop(S+C*(F-S),d(f(C)));}l||y.addColorStop(1,u(f(1)));};try{if(r===2){let[y,D,v,S]=h,[F,w]=m(y,D),[C,O]=m(v,S),E=this.ctx.createLinearGradient(F,w,C,O);return p(E),E}if(r===3){let[y,D,v,S,F,w]=h,[C,O]=m(y,D),[E,I]=m(S,F),L=n?(Math.hypot(n[0],n[1])+Math.hypot(n[2],n[3]))/2:1,$=this.ctx.createRadialGradient(C,O,Math.max(0,v*L),E,I,Math.max(0,w*L));return p($),$}}catch{return null}return null}acquireLayerCanvas(){var n;let e=(n=this.layerPool.pop())!=null?n:document.createElement("canvas");if(e.width!==this.canvas.width||e.height!==this.canvas.height)e.width=this.canvas.width,e.height=this.canvas.height;else {let r=e.getContext("2d");if(!r)return null;r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore();}return e}releaseLayerCanvas(e){this.layerPool.length<Ve.MAX_LAYER_DEPTH&&this.layerPool.push(e);}pushLayer(e,n,r,i){if(this.layerStack.length>=Ve.MAX_LAYER_DEPTH)return false;let s=this.acquireLayerCanvas(),o=s==null?void 0:s.getContext("2d");return !s||!o?false:(o.setTransform(this.ctx.getTransform()),o.lineWidth=this.ctx.lineWidth,o.lineCap=this.ctx.lineCap,o.lineJoin=this.ctx.lineJoin,o.miterLimit=this.ctx.miterLimit,o.setLineDash(this.ctx.getLineDash()),o.lineDashOffset=this.ctx.lineDashOffset,o.fillStyle=this.ctx.fillStyle,o.strokeStyle=this.ctx.strokeStyle,o.globalAlpha=1,o.globalCompositeOperation="source-over",this.layerStack.push({savedCtx:this.ctx,canvas:s,alpha:n,blend:r,mask:i,kind:e,stateDepthAtPush:this.stateStack.length}),this.ctx=o,true)}popLayer(){let e=this.layerStack.pop();if(!e)return;let n=e.canvas.getContext("2d");n&&e.mask&&(n.save(),n.setTransform(1,0,0,1,0,0),n.globalAlpha=1,n.globalCompositeOperation="destination-in",n.drawImage(e.mask,0,0),n.restore(),this.releaseLayerCanvas(e.mask)),this.ctx=e.savedCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.globalAlpha=e.alpha,this.ctx.globalCompositeOperation=Pr(e.blend),this.ctx.drawImage(e.canvas,0,0),this.ctx.restore(),this.releaseLayerCanvas(e.canvas);}async applySoftMaskFromExtGState(e){try{if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("ExtGState"));if(!n||!M(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!M(r))return;let i=r.entries.get("SMask");if(!i)return;if(V(i)==="None"){for(;this.layerStack.length>0;){let a=this.layerStack[this.layerStack.length-1];if(a.kind==="smask"&&a.stateDepthAtPush===this.stateStack.length)this.popLayer();else break}return}let s=this.resolveObject(i);if(!s||!M(s))return;let o=await this.renderSMaskCanvas(s);if(!o)return;this.pushLayer("smask",1,"Normal",o);}catch{}}async renderSMaskCanvas(e){var d;let n=this.resolveObject(e.entries.get("G"));if(!n||!U(n))return null;let r=((d=V(e.entries.get("S")))!=null?d:"Alpha")==="Luminosity",i=this.acquireLayerCanvas(),s=i==null?void 0:i.getContext("2d",{willReadFrequently:true});if(!i||!s)return null;if(r){let u=le(e.entries.get("BC"));if(s.save(),s.setTransform(1,0,0,1,0,0),u&&u.length){let h=Ee(je(u.length===1?"DeviceGray":u.length===4?"DeviceCMYK":"DeviceRGB",u));s.fillStyle=ye(h.r,h.g,h.b);}else s.fillStyle="black";s.fillRect(0,0,i.width,i.height),s.restore();}s.setTransform(this.ctx.getTransform());let o=this.ctx,a=this.capturedTextRuns.length;this.ctx=s,this.captureSuppressed+=1;try{await this.renderFormStreamInline(n);}finally{this.captureSuppressed-=1,this.ctx=o,this.capturedTextRuns.length=a;}let c=e.entries.get("TR"),l=this.objectLoader,f=c&&l&&V(c)!=="Identity"?u=>{let h=Ct(c,u,l);return h&&h.length?Math.max(0,Math.min(1,h[0])):u}:null;try{let u=s.getImageData(0,0,i.width,i.height),h=u.data;for(let m=0;m<h.length;m+=4){let p=r?(.3*h[m]+.59*h[m+1]+.11*h[m+2])/255:h[m+3]/255,x=f?f(p):p;h[m+3]=Math.round(x*255);}s.putImageData(u,0,0);}catch{return this.releaseLayerCanvas(i),null}return i}async renderFormStreamInline(e){let n=e.decode?await e.decode():_.decodeStreamSync(e),r=Ue(n),i=this.pageResources,s=this.objectLoader,o=this.patternCache;this.patternCache=new Map;let a=this.resolveObject(e.dict.entries.get("Resources"));this.pageResources=a&&M(a)?a:this.pageResources,this.execute({op:"save_state"});let c=rt(e.dict.entries.get("Matrix"));c&&this.execute({op:"set_ctm",matrix:c});let l=le(e.dict.entries.get("BBox"));l&&l.length>=4&&(this.ctx.beginPath(),this.ctx.rect(l[0],l[1],l[2]-l[0],l[3]-l[1]),this.ctx.clip());let f=this.commandIndex;this.xobjectDepth+=1;try{await this.runCommandsAsync(r);}finally{this.xobjectDepth-=1,this.commandIndex=f,this.execute({op:"restore_state"}),this.pageResources=i,this.objectLoader=s,this.patternCache=o;}}renderShadeOperator(e){try{if(!this.pageResources||!this.objectLoader)return;let n=this.resolveObject(this.pageResources.entries.get("Shading"));if(!n||!M(n))return;let r=this.resolveObject(n.entries.get(e)),i=r?U(r)?r.dict:M(r)?r:null:null;if(!i)return;let s=r&&U(r)?r:null;this.ctx.save();try{this.ctx.globalAlpha=this.state.fillAlpha;let o=le(i.entries.get("BBox"));o&&o.length>=4&&(this.ctx.beginPath(),this.ctx.rect(o[0],o[1],o[2]-o[0],o[3]-o[1]),this.ctx.clip());let a=Y(this.deviceBase(),this.state.ctm);this.paintShadingWithBase(i,s,a);}finally{this.ctx.restore();}}catch{}}};Ve.MAX_LAYER_DEPTH=6;var jt=Ve,Ps=t=>t==="DeviceGray"||t==="CalGray"?1:t==="DeviceCMYK"?4:3,Pr=t=>{switch(t){case "Normal":case "Compatible":return "source-over";case "Multiply":return "multiply";case "Screen":return "screen";case "Overlay":return "overlay";case "Darken":return "darken";case "Lighten":return "lighten";case "ColorDodge":return "color-dodge";case "ColorBurn":return "color-burn";case "HardLight":return "hard-light";case "SoftLight":return "soft-light";case "Difference":return "difference";case "Exclusion":return "exclusion";case "Hue":return "hue";case "Saturation":return "saturation";case "Color":return "color";case "Luminosity":return "luminosity";default:return "source-over"}},le=t=>!t||!j(t)?null:t.items.map(e=>{var n;return (n=A(e))!=null?n:0}),Ds=new Set(["FlateDecode","Fl","LZWDecode","LZW","ASCII85Decode","A85","ASCIIHexDecode","AHx","RunLengthDecode","RL","Crypt"]),ws=(t,e,n)=>{if(!e||e.length<2||n!=="DeviceGray"&&n!=="DeviceRGB"||!(e[0]===1&&e[1]===0))return;let r=t.data;for(let i=0;i<r.length;i+=4)r[i]=255-r[i],r[i+1]=255-r[i+1],r[i+2]=255-r[i+2];},rt=t=>{let e=le(t);return !e||e.length<6?null:[e[0],e[1],e[2],e[3],e[4],e[5]]},Ss=(t,e,n)=>{let r=[J(n,e[0],e[1]),J(n,e[2],e[1]),J(n,e[2],e[3]),J(n,e[0],e[3])],i=r.map(b=>b.x),s=r.map(b=>b.y),o=Math.min(...i),a=Math.max(...i),c=Math.min(...s),l=Math.max(...s),f=Math.min(t[0],t[2]),d=Math.max(t[0],t[2]),u=Math.min(t[1],t[3]),h=Math.max(t[1],t[3]),m=a-o,p=l-c;if(!(m>1e-6)||!(p>1e-6))return null;let x=(d-f)/m,g=(h-u)/p;return [x,0,0,g,f-x*o,u-g*c]},Fs=t=>{if(!t||!j(t))return [false,false];let e=n=>!!n&&typeof n=="object"&&"type"in n&&n.type==="boolean"&&n.value;return [e(t.items[0]),e(t.items[1])]},ye=(t,e,n)=>`rgb(${Math.round(ne(t)*255)},${Math.round(ne(e)*255)},${Math.round(ne(n)*255)})`,ve=t=>{if(t.space==="rgb")return ye(t.r,t.g,t.b);if(t.space==="gray")return ye(t.gray,t.gray,t.gray);let e=qe(t.c,t.m,t.y,t.k);return ye(e.r,e.g,e.b)},Ee=t=>{if(t.space==="rgb")return {r:ne(t.r),g:ne(t.g),b:ne(t.b)};if(t.space==="gray"){let e=ne(t.gray);return {r:e,g:e,b:e}}return qe(t.c,t.m,t.y,t.k)},Pe=t=>{switch(t){case "DeviceRGB":case "RGB":return "DeviceRGB";case "DeviceGray":case "G":case "Gray":return "DeviceGray";case "DeviceCMYK":case "CMYK":return "DeviceCMYK";default:return null}},Dr=t=>{var r;let e=V(t),n=e?Pe(e):null;if(n)return n;if(t&&j(t)&&t.items.length>0){let i=V(t.items[0]),s=i?Pe(i):null;if(s)return s;if(i==="ICCBased"){let o=t.items[1];if(o&&U(o)){let a=Math.floor((r=A(o.dict.entries.get("N")))!=null?r:0);if(a===1)return "DeviceGray";if(a===3)return "DeviceRGB";if(a===4)return "DeviceCMYK"}}if(i==="CalGray")return "DeviceGray";if(i==="CalRGB")return "DeviceRGB";if(i==="Lab")return "Lab";if(i==="Separation")return "Separation";if(i==="DeviceN")return "DeviceN";if(i==="Indexed")return "Indexed";if(i==="Pattern")return "Pattern"}return null},vs=(t,e,n)=>{let r=(t+16)/116,i=e/500+r,s=r-n/200,o=m=>m>.206897?m*m*m:(m-16/116)/7.787,a=.9642*o(i),c=1*o(r),l=.8249*o(s),f=3.1338561*a-1.6168667*c-.4906146*l,d=-0.9787684*a+1.9161415*c+.033454*l,u=.0719453*a-.2289914*c+1.4052427*l,h=m=>m<=.0031308?12.92*m:1.055*Math.pow(Math.max(0,m),1/2.4)-.055;return {r:ne(h(f)),g:ne(h(d)),b:ne(h(u))}},je=(t,e)=>{var r,i,s,o,a,c,l,f,d,u,h,m,p,x,g,b,P;let n=Pe(t);if(n==="DeviceGray")return {space:"gray",gray:(r=e[0])!=null?r:0};if(n==="DeviceCMYK")return {space:"cmyk",c:(i=e[0])!=null?i:0,m:(s=e[1])!=null?s:0,y:(o=e[2])!=null?o:0,k:(a=e[3])!=null?a:0};if(n==="DeviceRGB"||!n&&e.length===3)return {space:"rgb",r:(c=e[0])!=null?c:0,g:(l=e[1])!=null?l:0,b:(f=e[2])!=null?f:0};if(t==="Lab"){let y=vs((d=e[0])!=null?d:0,(u=e[1])!=null?u:0,(h=e[2])!=null?h:0);return {space:"rgb",r:y.r,g:y.g,b:y.b}}return t==="Separation"||t==="DeviceN"?{space:"gray",gray:1-((m=e[0])!=null?m:0)}:e.length>=4?{space:"cmyk",c:(p=e[0])!=null?p:0,m:(x=e[1])!=null?x:0,y:(g=e[2])!=null?g:0,k:(b=e[3])!=null?b:0}:{space:"gray",gray:(P=e[0])!=null?P:0}},wr=t=>{if(!t)return [];let e=V(t);return e?[e]:j(t)?t.items.map(n=>V(n)).filter(n=>n!==null):[]},fn=async(t,e)=>typeof createImageBitmap=="function"?createImageBitmap(new Blob([t.slice().buffer],{type:e})):new Promise((n,r)=>{let i=new Image,s=URL.createObjectURL(new Blob([t.slice().buffer],{type:e}));i.onload=()=>{URL.revokeObjectURL(s),n(i);},i.onerror=()=>{URL.revokeObjectURL(s),r(new Error(`Could not decode image ${e}`));},i.src=s;}),dn=t=>{"close"in t&&typeof t.close=="function"&&t.close();},Cs=(t,e)=>{let n=t.entries.get("Widths");if(!n||!j(n))return;let r=new Map;return n.items.forEach((i,s)=>{let o=A(i);o!==null&&r.set(e+s,o);}),r.size>0?r:void 0},Sr=(t,e)=>{let n=t.entries.get("DescendantFonts");if(!n||!j(n)||n.items.length===0)return;let r=e(n.items[0]);return r&&M(r)?r:void 0},Fr=(t,e,n)=>{let r=n(t.entries.get("FontDescriptor"));if(r&&M(r))return r;let i=n(e==null?void 0:e.entries.get("FontDescriptor"));return i&&M(i)?i:void 0},As=t=>{let e=t==null?void 0:t.entries.get("W");if(!e||!j(e))return;let n=new Map,r=e.items;for(let i=0;i<r.length;i+=1){let s=A(r[i]);if(s===null)continue;let o=r[i+1];if(o&&j(o)){o.items.forEach((l,f)=>{let d=A(l);d!==null&&n.set(s+f,d);}),i+=1;continue}let a=A(o),c=A(r[i+2]);if(!(a===null||c===null)){for(let l=s;l<=a;l+=1)n.set(l,c);i+=2;}}return n.size>0?n:void 0},Ms=t=>{let e=A(t==null?void 0:t.entries.get("DW"));return e!=null?e:void 0},ks=t=>{let e=t.entries.get("FontDescriptor");if(!e||!M(e))return;let n=A(e.entries.get("MissingWidth"));return n!=null?n:void 0},Rs=(t,e,n,r,i,s,o)=>{let a=n.isComposite?Es(t,n.toUnicode):Array.from(t).map((u,h)=>({code:u,bytes:t.slice(h,h+1)})),c=Array.from(e),l=!!n.widths||n.defaultWidth!==void 0,f=0;return {glyphs:a.map(u=>{var b,P,y;let h=n.toUnicode?Ae(u.code,n.toUnicode):null,m=(b=h!=null?h:c[f])!=null?b:"";f+=Math.max(1,Array.from(m).length);let p=(y=(P=n.widths)==null?void 0:P.get(u.code))!=null?y:n.defaultWidth,x;p!==void 0?x=p/1e3*r:o?x=o(m):x=(n.isComposite?1e3:500)/1e3*r,x>0||(x=o?Math.max(.01,o(m||" ")):r*.5);let g=i+(m===" "||u.code===32?s:0);return {text:m,code:u.code,bytes:u.bytes,glyphWidth:x,advance:x+g}}),hasPdfMetrics:l}},xn=t=>{var r;let e=It((r=t.baseFontName)!=null?r:"").toLowerCase(),n=Or(e);return t.registeredFamily?`"${t.registeredFamily}", ${n}`:n},vr=(t,e)=>{var o,a,c;let r=It((o=t.baseFontName)!=null?o:"").toLowerCase(),i=(a=t.fontStyle)!=null?a:r.includes("italic")||r.includes("oblique")?"italic":"normal",s=String((c=t.fontWeight)!=null?c:r.includes("bold")||r.includes("black")?700:400);return t.registeredFamily?`${e}px ${xn(t)}`:`${i} ${s} ${e}px ${Or(r)}`},Os=(t,e)=>{var o;let n=It(t!=null?t:"").toLowerCase(),r=A(e==null?void 0:e.entries.get("FontWeight"));if(r!==null)return Math.max(100,Math.min(900,Math.round(r/100)*100));let i=Math.floor((o=A(e==null?void 0:e.entries.get("Flags")))!=null?o:0),s=A(e==null?void 0:e.entries.get("StemV"));if(n.includes("bold")||n.includes("black")||n.includes("heavy")||(i&262144)!==0||s!==null&&s>=120)return 700},Ts=(t,e)=>{var s;let n=It(t!=null?t:"").toLowerCase(),r=Math.floor((s=A(e==null?void 0:e.entries.get("Flags")))!=null?s:0),i=A(e==null?void 0:e.entries.get("ItalicAngle"));if(n.includes("italic")||n.includes("oblique")||(r&64)!==0||i!==null&&i!==0)return "italic"},It=t=>/^[A-Z]{6}\+/.test(t)?t.slice(7):t,Or=t=>t.includes("courier")?'"Courier New", Courier, monospace':t.includes("times")||t.includes("serif")?'"Times New Roman", Times, serif':t.includes("symbol")?'Symbol, "Times New Roman", serif':t.includes("zapfdingbats")||t.includes("dingbats")?'ZapfDingbats, "Times New Roman", serif':(t.includes("helvetica")||t.includes("arial"),"Helvetica, Arial, sans-serif"),Es=(t,e)=>{var r,i;if(t.length===0)return [];if(e!=null&&e.codeSpaceRanges.length){let s=Array.from(new Set(e.codeSpaceRanges.map(a=>a.byteLength))).sort((a,c)=>c-a),o=[];for(let a=0;a<t.length;){let c=0,l=0;for(let f of s){if(a+f>t.length)continue;let d=ze(t,a,f);if(d!==null&&jr(d,f,e.codeSpaceRanges)){c=f,l=d;break}}c===0&&(c=Math.min(2,t.length-a),l=(r=ze(t,a,c))!=null?r:t[a]),o.push({code:l,bytes:t.slice(a,a+c)}),a+=c;}return o}let n=[];for(let s=0;s<t.length;){let o=Math.min(2,t.length-s);n.push({code:(i=ze(t,s,o))!=null?i:t[s],bytes:t.slice(s,s+o)}),s+=o;}return n},js=t=>t==="DeviceCMYK"?4:t==="DeviceGray"||t==="Separation"?1:3,hn=(t,e,n,r,i,s)=>{var f,d,u,h;if(i===8)return t;let o=e*r,a=new Uint8Array(o*n);if(i===16){for(let m=0,p=0;m<a.length;m++,p+=2)a[m]=(f=t[p])!=null?f:0;return a}let c=(1<<i)-1,l=Math.ceil(o*i/8);for(let m=0;m<n;m++){let p=m*l,x=0;for(let g=0;g<o;g++){let b=p+(x>>3),y=8-(x&7),D;if(i<=y)D=((d=t[b])!=null?d:0)>>y-i&c;else {let v=i-y,S=((u=t[b])!=null?u:0)&(1<<y)-1,F=((h=t[b+1])!=null?h:0)>>8-v;D=S<<v|F;}a[m*o+g]=s?Math.round(D*255/c):D,x+=i;}}return a},Is=(t,e,n,r)=>{let i=e*n,s=new Uint8ClampedArray(i*4);if(r==="DeviceRGB"){if(t.length<i*3)return null;for(let a=0,c=0;c<s.length;a+=3,c+=4)s[c]=t[a],s[c+1]=t[a+1],s[c+2]=t[a+2],s[c+3]=255;return new ImageData(s,e,n)}if(r==="DeviceGray"){if(t.length<i)return null;for(let a=0,c=0;c<s.length;a+=1,c+=4){let l=t[a];s[c]=l,s[c+1]=l,s[c+2]=l,s[c+3]=255;}return new ImageData(s,e,n)}if(r==="DeviceCMYK"){if(t.length<i*4)return null;for(let a=0,c=0;c<s.length;a+=4,c+=4){let l=qe(t[a]/255,t[a+1]/255,t[a+2]/255,t[a+3]/255);s[c]=Math.round(l.r*255),s[c+1]=Math.round(l.g*255),s[c+2]=Math.round(l.b*255),s[c+3]=255;}return new ImageData(s,e,n)}let o=Math.floor(t.length/Math.max(1,i));if(o>=3){let a=o;for(let c=0,l=0;c<i;c++,l+=4){let f=c*a;s[l]=t[f],s[l+1]=t[f+1],s[l+2]=t[f+2],s[l+3]=255;}return new ImageData(s,e,n)}if(o>=1){let a=r==="Separation"||r==="DeviceN";for(let c=0,l=0;c<i;c++,l+=4){let f=a?255-t[c]:t[c];s[l]=f,s[l+1]=f,s[l+2]=f,s[l+3]=255;}return new ImageData(s,e,n)}return null},Rt=(t,e,n,r)=>{let i=t.data,s=n*r;for(let o=0;o<s&&o<e.length;o++)i[o*4+3]=e[o];},Bs=(t,e,n,r,i)=>{var u,h,m,p,x,g,b,P,y,D,v;if(r.length<4)return null;let s=(u=V(r[1]))!=null?u:"DeviceRGB",o=Math.floor((h=A(r[2]))!=null?h:255),a=i(r[3]),c=null;if(a&&U(a))try{c=_.decodeStreamSync(a);}catch{}else a&&typeof a=="object"&&"type"in a&&a.type==="string"&&(c=a.value);if(!c)return null;let l=s==="DeviceCMYK"?4:s==="DeviceGray"?1:3,f=e*n,d=new Uint8ClampedArray(f*4);for(let S=0;S<f;S++){let w=Math.min((m=t[S])!=null?m:0,o)*l,C=0,O=0,E=0;if(l===3)C=(p=c[w])!=null?p:0,O=(x=c[w+1])!=null?x:0,E=(g=c[w+2])!=null?g:0;else if(l===1)C=O=E=(b=c[w])!=null?b:0;else if(l===4){let L=qe(((P=c[w])!=null?P:0)/255,((y=c[w+1])!=null?y:0)/255,((D=c[w+2])!=null?D:0)/255,((v=c[w+3])!=null?v:0)/255);C=Math.round(L.r*255),O=Math.round(L.g*255),E=Math.round(L.b*255);}let I=S*4;d[I]=C,d[I+1]=O,d[I+2]=E,d[I+3]=255;}return new ImageData(d,e,n)},Us=t=>{var i;if(!t)return null;let e=t.match(/^uni([0-9A-Fa-f]{4,6})$/);if(e){let s=parseInt(e[1],16);try{return String.fromCodePoint(s)}catch{return null}}let n=t.match(/^u([0-9A-Fa-f]{5,6})$/);if(n){let s=parseInt(n[1],16);try{return String.fromCodePoint(s)}catch{return null}}return t.length===1?t:(i={space:" ",exclam:"!",quotedbl:'"',numbersign:"#",dollar:"$",percent:"%",ampersand:"&",quotesingle:"'",parenleft:"(",parenright:")",asterisk:"*",plus:"+",comma:",",hyphen:"-",period:".",slash:"/",zero:"0",one:"1",two:"2",three:"3",four:"4",five:"5",six:"6",seven:"7",eight:"8",nine:"9",colon:":",semicolon:";",less:"<",equal:"=",greater:">",question:"?",at:"@",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",bracketleft:"[",backslash:"\\",bracketright:"]",asciicircum:"^",underscore:"_",grave:"`",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z",braceleft:"{",bar:"|",braceright:"}",asciitilde:"~",exclamdown:"\xA1",cent:"\xA2",sterling:"\xA3",currency:"\xA4",yen:"\xA5",brokenbar:"\xA6",section:"\xA7",dieresis:"\xA8",copyright:"\xA9",ordfeminine:"\xAA",guillemotleft:"\xAB",logicalnot:"\xAC",minus:"\u2212",registered:"\xAE",macron:"\xAF",degree:"\xB0",plusminus:"\xB1",twosuperior:"\xB2",threesuperior:"\xB3",acute:"\xB4",mu:"\xB5",paragraph:"\xB6",periodcentered:"\xB7",cedilla:"\xB8",onesuperior:"\xB9",ordmasculine:"\xBA",guillemotright:"\xBB",onequarter:"\xBC",onehalf:"\xBD",threequarters:"\xBE",questiondown:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acircumflex:"\xC2",Atilde:"\xC3",Adieresis:"\xC4",Aring:"\xC5",AE:"\xC6",Ccedilla:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecircumflex:"\xCA",Edieresis:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icircumflex:"\xCE",Idieresis:"\xCF",Eth:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocircumflex:"\xD4",Otilde:"\xD5",Odieresis:"\xD6",multiply:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucircumflex:"\xDB",Udieresis:"\xDC",Yacute:"\xDD",Thorn:"\xDE",germandbls:"\xDF",agrave:"\xE0",aacute:"\xE1",acircumflex:"\xE2",atilde:"\xE3",adieresis:"\xE4",aring:"\xE5",ae:"\xE6",ccedilla:"\xE7",egrave:"\xE8",eacute:"\xE9",ecircumflex:"\xEA",edieresis:"\xEB",igrave:"\xEC",iacute:"\xED",icircumflex:"\xEE",idieresis:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocircumflex:"\xF4",otilde:"\xF5",odieresis:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucircumflex:"\xFB",udieresis:"\xFC",yacute:"\xFD",thorn:"\xFE",ydieresis:"\xFF",OE:"\u0152",oe:"\u0153",Scaron:"\u0160",scaron:"\u0161",Ydieresis:"\u0178",Zcaron:"\u017D",zcaron:"\u017E",florin:"\u0192",circumflex:"\u02C6",tilde:"\u02DC",endash:"\u2013",emdash:"\u2014",quotedblleft:"\u201C",quotedblright:"\u201D",quoteleft:"\u2018",quoteright:"\u2019",quotesinglbase:"\u201A",quotedblbase:"\u201E",dagger:"\u2020",daggerdbl:"\u2021",bullet:"\u2022",ellipsis:"\u2026",perthousand:"\u2030",guilsinglleft:"\u2039",guilsinglright:"\u203A",fraction:"\u2044",Euro:"\u20AC",trademark:"\u2122",fi:"\uFB01",fl:"\uFB02",ff:"\uFB00",ffi:"\uFB03",ffl:"\uFB04",lslash:"\u0142",Lslash:"\u0141",dotaccent:"\u02D9",ring:"\u02DA",caron:"\u02C7",breve:"\u02D8",dotlessi:"\u0131",hungarumlaut:"\u02DD",ogonek:"\u02DB",Delta:"\u2206",Omega:"\u03A9",pi:"\u03C0",infinity:"\u221E",lessequal:"\u2264",greaterequal:"\u2265",notequal:"\u2260",approxequal:"\u2248",radical:"\u221A",summation:"\u2211",product:"\u220F",integral:"\u222B",partialdiff:"\u2202",lozenge:"\u25CA",apple:"\uF8FF"}[t])!=null?i:null},Cr=(()=>{let t=[[128,196],[129,197],[130,199],[131,201],[132,209],[133,214],[134,220],[135,225],[136,224],[137,226],[138,228],[139,227],[140,229],[141,231],[142,233],[143,232],[144,234],[145,235],[146,237],[147,236],[148,238],[149,239],[150,241],[151,243],[152,242],[153,244],[154,246],[155,250],[156,249],[157,251],[158,252],[159,8224],[160,176],[161,162],[162,163],[163,167],[164,8226],[165,182],[166,223],[167,174],[168,169],[169,8482],[170,180],[171,168],[172,8800],[173,198],[174,216],[175,8734],[176,177],[177,8804],[178,8805],[179,165],[180,181],[181,8706],[182,8721],[183,8719],[184,960],[185,8747],[186,170],[187,186],[188,937],[189,230],[190,248],[191,191],[192,161],[193,172],[194,8730],[195,402],[196,8776],[197,8710],[198,171],[199,187],[200,8230],[201,160],[202,192],[203,195],[204,213],[205,338],[206,339],[207,8211],[208,8212],[209,8220],[210,8221],[211,8216],[212,8217],[213,247],[214,9674],[215,255],[216,376],[217,8260],[218,8364],[219,8249],[220,8250],[221,64257],[222,64258],[223,8225],[224,183],[225,8218],[226,8222],[227,8240],[228,194],[229,202],[230,193],[231,203],[232,200],[233,205],[234,206],[235,207],[236,204],[237,211],[238,212],[239,210],[240,218],[241,219],[242,217],[243,305],[244,710],[245,732],[246,175],[247,728],[248,729],[249,730],[250,184],[251,733],[252,731],[253,711],[254,254],[255,255]],e=new Map;for(let[n,r]of t)e.set(n,String.fromCodePoint(r));return e})(),Ar=(()=>{let t=[[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]],e=new Map;for(let[n,r]of t)e.set(n,String.fromCodePoint(r));return e})(),Ls=(t,e)=>{if(!t)return;let n=e(t);if(!n)return;let r=V(n);if(r)return r==="MacRomanEncoding"?new Map(Cr):r==="WinAnsiEncoding"?new Map(Ar):void 0;if(!M(n))return;let i=n,s=V(i.entries.get("BaseEncoding")),o;s==="MacRomanEncoding"?o=new Map(Cr):s==="WinAnsiEncoding"?o=new Map(Ar):o=new Map;let a=i.entries.get("Differences");if(!a||!j(a))return o.size>0?o:void 0;let c=0;for(let l of a.items){let f=A(l);if(f!==null)c=Math.floor(f);else {let d=V(l);if(d){let u=Us(d);u&&o.set(c,u),c++;}}}return o.size>0?o:void 0},$s=(t,e)=>{let n=new Map;if(!t)return n;let r=e(t);if(!r||!M(r))return n;let i=r.entries.get("Differences");if(!i||!j(i))return n;let s=0;for(let o of i.items){let a=A(o);if(a!==null)s=Math.floor(a);else {let c=V(o);c&&(n.set(s,c),s++);}}return n},qe=(t,e,n,r)=>({r:(1-ne(t))*(1-ne(r)),g:(1-ne(e))*(1-ne(r)),b:(1-ne(n))*(1-ne(r))}),ne=t=>!Number.isFinite(t)||t<0?0:t>1?1:t,_s=(t,e,n)=>Number.isFinite(t)?Math.min(n,Math.max(e,t)):e,Ns=t=>({...t,ctm:[...t.ctm],textMatrix:[...t.textMatrix],textLineMatrix:[...t.textLineMatrix],fillColor:{...t.fillColor},strokeColor:{...t.strokeColor},dashArray:[...t.dashArray]}),J=(t,e,n)=>({x:t[0]*e+t[2]*n+t[4],y:t[1]*e+t[3]*n+t[5]}),Ot=()=>({subtype:"Unknown",baseFontName:void 0,isComposite:false,firstChar:void 0,widths:void 0,defaultWidth:void 0,toUnicode:null}),Ws=t=>{let e={bfChar:new Map,bfRange:[],codeSpaceRanges:[],cmapType:0,isUsable:true},n=t.match(/\/CMapType\s+(\d+)\s+def/);n&&(e.cmapType=Number.parseInt(n[1],10),e.isUsable=e.cmapType!==0);let r=t.replace(/\r\n/g,`
1
+ import'./chunk-X7U5LSSK.js';import dr from'zlib';import {TextAlignment,PDFDocument,StandardFonts,rgb,degrees,PDFRef,PDFString,PDFName,PDFRawStream,PDFBool,PDFNumber,PDFArray,PDFHexString,PDFNull,PDFDict}from'pdf-lib';import {ed25519}from'@noble/curves/ed25519';var et=process.env.NEXT_PUBLIC_ENGINE_DEBUG==="1",mn=(...t)=>{et&&console.log(...t);},ue=(...t)=>{et&&console.warn(...t);},Ue=(...t)=>{et&&console.error(...t);};var jt=class{constructor(){this.processors=new Map;}registerProcessor(e){this.processors.set(e.name,e),mn(`[AvniEngine] Registered processor: ${e.name}`);}async runPipeline(e,n){let r=[],i=e;for(let s of n.tasks){let o=this.processors.get(s.processorName);if(!o)throw new Error(`Processor ${s.processorName} not found`);mn(`[AvniEngine] Executing ${o.name}...`);let a=Date.now(),c=await o.process(i,s.params),l=Date.now();if(c.metrics={duration:l-a,originalSize:i.size,newSize:c.document.size},r.push(c),!c.success){Ue(`[AvniEngine] Pipeline failed at ${o.name}: ${c.error}`);break}i=c.document;}return r}getAvailableProcessors(){return Array.from(this.processors.keys())}},Ts=new jt;var pt=t=>({type:"name",value:t.startsWith("/")?t.slice(1):t}),gt=()=>({type:"null"}),Le=t=>({type:"boolean",value:t}),xt=t=>({type:"integer",value:t}),bt=t=>({type:"real",value:t}),Xe=(t,e)=>({type:"string",value:t,encoding:e}),yt=(t,e=0)=>({type:"ref",objNum:t,genNum:e});var Nt=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="integer",fr=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="real",pn=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="string",k=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="dict",L=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="stream",Z=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="ref",B=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="array",$t=t=>Nt(t)||fr(t),A=t=>!t||typeof t!="object"||!("type"in t)?null:t.type==="integer"||t.type==="real"?t.value:null,He=t=>!t||typeof t!="object"||!("type"in t)?null:t.type==="name"?t.value:null,Dt=(t,e)=>t?A(t.entries.get(e)):null,ve=t=>t===0||t===9||t===10||t===12||t===13||t===32,wt=t=>t===40||t===41||t===60||t===62||t===91||t===93||t===123||t===125||t===47||t===37,tt=(t,e)=>{let n=e;for(;n<t.length&&ve(t[n]);)n++;return n};var hr=He;function Is(t){if(!t)return [];let e=hr(t);return e?[e]:B(t)?t.items.map(n=>hr(n)).filter(n=>n!==null):[]}function mr(t){return t&&k(t)?t:null}function Bs(t,e){if(e<=0)return [];if(!t)return new Array(e).fill(null);let n=mr(t);if(n)return new Array(e).fill(n);if(B(t)){let r=t.items.map(i=>mr(i));return r.length>=e?r.slice(0,e):[...r,...new Array(e-r.length).fill(null)]}return new Array(e).fill(null)}function Us(t){let e=new TextDecoder("latin1").decode(t),n=e.indexOf(">"),r=(n>=0?e.slice(0,n):e).replace(/\s+/g,"");if(r.length===0)return new Uint8Array(0);let i=r.length%2===0?r:`${r}0`,s=new Uint8Array(i.length/2);for(let o=0;o<s.length;o++){let a=Number.parseInt(i.slice(o*2,o*2+2),16);if(Number.isNaN(a))throw new Error("Invalid ASCIIHex stream data");s[o]=a;}return s}function Ls(t){let e=new TextDecoder("latin1").decode(t),n=[],r=[];for(let i=0;i<e.length;i++){let s=e[i];if(s==="~"&&e[i+1]===">")break;if(/\s/.test(s))continue;if(s==="z"){if(r.length!==0)throw new Error("Invalid ASCII85 stream data");n.push(0,0,0,0);continue}let o=s.charCodeAt(0);if(!(o<33||o>117)&&(r.push(o-33),r.length===5)){let a=0;for(let c of r)a=a*85+c;n.push(a>>>24&255,a>>>16&255,a>>>8&255,a&255),r=[];}}if(r.length>0){let i=r.length;for(;r.length<5;)r.push(84);let s=0;for(let a of r)s=s*85+a;let o=[s>>>24&255,s>>>16&255,s>>>8&255,s&255];n.push(...o.slice(0,i-1));}return new Uint8Array(n)}function _s(t){let e=[];for(let n=0;n<t.length;){let r=t[n++];if(r===128)break;if(r<128){let o=r+1;for(let a=0;a<o&&n<t.length;a++)e.push(t[n++]);continue}let i=257-r;if(n>=t.length)break;let s=t[n++];for(let o=0;o<i;o++)e.push(s);}return new Uint8Array(e)}function js(t,e,n){let r=t+e-n,i=Math.abs(r-t),s=Math.abs(r-e),o=Math.abs(r-n);return i<=s&&i<=o?t:s<=o?e:n}function Ns(t,e,n,r){let i=Math.max(1,Math.ceil(e*n/8)),s=Math.ceil(r*e*n/8);if(s<=0)return t;let o=s+1,a=Math.floor(t.length/o);if(a<=0)return t;let c=new Uint8Array(a*s),l=new Uint8Array(s);for(let u=0;u<a;u++){let d=t[u*o],f=t.subarray(u*o+1,u*o+1+s),m=c.subarray(u*s,(u+1)*s);switch(d){case 0:{m.set(f);break}case 1:{for(let h=0;h<s;h++){let p=h>=i?m[h-i]:0;m[h]=f[h]+p&255;}break}case 2:{for(let h=0;h<s;h++)m[h]=f[h]+l[h]&255;break}case 3:{for(let h=0;h<s;h++){let p=h>=i?m[h-i]:0,b=l[h];m[h]=f[h]+Math.floor((p+b)/2)&255;}break}case 4:{for(let h=0;h<s;h++){let p=h>=i?m[h-i]:0,b=l[h],g=h>=i?l[h-i]:0;m[h]=f[h]+js(p,b,g)&255;}break}default:{m.set(f);break}}l=m.slice();}return c}function $s(t,e,n,r){let i=Math.ceil(r*e*n/8);if(i<=0)return t;let s=t.slice(),o=Math.floor(s.length/i);if(n===8){for(let a=0;a<o;a++){let c=a*i;for(let l=e;l<i;l++)s[c+l]=s[c+l]+s[c+l-e]&255;}return s}if(n===16){let a=new DataView(s.buffer,s.byteOffset,s.byteLength),c=r*e;for(let l=0;l<o;l++){let u=l*i;for(let d=e;d<c;d++){let f=a.getUint16(u+d*2,false),m=a.getUint16(u+(d-e)*2,false);a.setUint16(u+d*2,f+m&65535,false);}}return s}return console.warn(`[StreamDecoder] TIFF Predictor 2 unsupported for ${n}-bit components; returning undifferenced data`),t}function pr(t,e){var o,a,c,l;let n=(o=Dt(e,"Predictor"))!=null?o:1;if(n<2)return t;let r=(a=Dt(e,"Colors"))!=null?a:1,i=(c=Dt(e,"BitsPerComponent"))!=null?c:8,s=(l=Dt(e,"Columns"))!=null?l:1;return n>=10?Ns(t,r,i,s):n===2?$s(t,r,i,s):t}function Ws(t){let e=[{bytes:t,trimmed:0,skippedHeader:false}];t.length>2&&e.push({bytes:t.subarray(2),trimmed:0,skippedHeader:true});let n=Math.min(64,Math.max(0,t.length-1));for(let r=1;r<=n;r++){let i=t.subarray(0,t.length-r);e.push({bytes:i,trimmed:r,skippedHeader:false}),i.length>2&&e.push({bytes:i.subarray(2),trimmed:r,skippedHeader:true});}for(let r of e){try{return {inflated:new Uint8Array(dr.inflateSync(Buffer.from(r.bytes))),mode:"zlib",trimmed:r.trimmed,skippedHeader:r.skippedHeader}}catch{}try{return {inflated:new Uint8Array(dr.inflateRawSync(Buffer.from(r.bytes))),mode:"raw",trimmed:r.trimmed,skippedHeader:r.skippedHeader}}catch{}}return null}function Vs(t,e){let n=Ws(t);if(!n){let i=Array.from(t.subarray(0,Math.min(8,t.length))).map(a=>`0x${a.toString(16).padStart(2,"0")}`).join(" "),s=Math.max(0,t.length-8),o=Array.from(t.subarray(s)).map(a=>`0x${a.toString(16).padStart(2,"0")}`).join(" ");throw new Error(`FlateDecode failed after zlib/raw retries (including tail-trim recovery). len=${t.length} first=[${i}] last=[${o}]`)}let r=n.inflated;if(n.trimmed>0||n.skippedHeader){let i=[];n.trimmed>0&&i.push(`trimmed ${n.trimmed} byte(s)`),n.skippedHeader&&i.push("skipped first 2 header byte(s)"),console.warn(`[StreamDecoder] FlateDecode recovered (${i.join(", ")}) using ${n.mode} mode`);}return pr(r,e)}function Gs(t,e){let s=0,o=9,a=258,c=[];for(let h=0;h<256;h++)c[h]=[h];let l=()=>{if(Math.floor(s/8)>=t.length)return null;let p=0;for(let b=0;b<o;b++){let g=s+b,D=t[Math.floor(g/8)]>>7-g%8&1;p=p<<1|D;}return s+=o,p},u=()=>{c.length=0;for(let h=0;h<256;h++)c[h]=[h];o=9,a=258;},d=[],f=null;for(;;){let h=l();if(h===null||h===257)break;if(h===256){u(),f=null;continue}let p;if(c[h])p=c[h];else if(f)p=[...f,f[0]];else break;d.push(...p),f&&(c[a++]=[...f,p[0]],a===1<<o&&o<12&&o++),f=p;}let m=new Uint8Array(d);return pr(m,e)}var $=class{static async decodeStream(e){return this.decodeStreamSync(e)}static decodeStreamSync(e){var c,l;let n=e.dict.entries.get("Filter"),r=e.dict.entries.get("DecodeParms"),i=Is(n),s=Bs(r,i.length),o=(c=e.rawBytes)!=null?c:e.data;if(!o)throw new Error("Stream has no byte payload");if(i.length===0)return o;let a=o;for(let u=0;u<i.length;u++)a=this.applyFilterSync(i[u],a,(l=s[u])!=null?l:null);return a}static createLazyDecoder(e,n){return async()=>{let r={type:"stream",dict:e,rawBytes:n,decode:async()=>n};return this.decodeStreamSync(r)}}static applyFilterSync(e,n,r){switch(e){case "FlateDecode":case "Fl":return Vs(n,r);case "ASCII85Decode":case "A85":return Ls(n);case "ASCIIHexDecode":case "AHx":return Us(n);case "LZWDecode":case "LZW":return Gs(n,r);case "DCTDecode":case "DCT":return n;case "JPXDecode":return n;case "CCITTFaxDecode":case "CCF":return n;case "JBIG2Decode":return n;case "RunLengthDecode":case "RL":return _s(n);case "Crypt":return n;default:return console.warn(`[StreamDecoder] Unknown filter: ${e}; returning raw bytes`),n}}};var ke=class{constructor(e){this.pos=0;this.bytes=e;}skipWhitespace(){for(;this.pos<this.bytes.length;){let e=this.bytes[this.pos];if(e===0||e===9||e===10||e===12||e===13||e===32)this.pos++;else if(e===37)for(;this.pos<this.bytes.length&&this.bytes[this.pos]!==10&&this.bytes[this.pos]!==13;)this.pos++;else break}}peek(){return this.skipWhitespace(),this.pos<this.bytes.length?this.bytes[this.pos]:void 0}peekRaw(e=0){let n=this.pos+e;return n<this.bytes.length?this.bytes[n]:void 0}read(){return this.skipWhitespace(),this.pos<this.bytes.length?this.bytes[this.pos++]:void 0}readRaw(){return this.pos<this.bytes.length?this.bytes[this.pos++]:void 0}readWord(){this.skipWhitespace();let e=this.pos;for(;this.pos<this.bytes.length;){let n=this.bytes[this.pos];if(n===0||n===9||n===10||n===12||n===13||n===32||n===60||n===62||n===40||n===41||n===123||n===125||n===91||n===93||n===47||n===37)break;this.pos++;}return new TextDecoder().decode(this.bytes.subarray(e,this.pos))}readUntil(e){let n=this.pos,r=new TextEncoder().encode(e),i=r.length;for(;this.pos<=this.bytes.length-i;){let s=true;for(let o=0;o<i;o++)if(this.bytes[this.pos+o]!==r[o]){s=false;break}if(s){let o=this.bytes.subarray(n,this.pos);return this.pos+=i,o}this.pos++;}throw new Error(`Could not find sequence: ${e}`)}getRemainingBytes(){return this.bytes.subarray(this.pos)}getBytes(){return this.bytes}getPosition(){return this.pos}setPosition(e){this.pos=e;}};function Xs(t){let e=t.peekRaw(),n=t.peekRaw(1);if(e===13&&n===10){t.readRaw(),t.readRaw();return}if(e===10||e===13){t.readRaw();return}ue(`[WARN] No newline after 'stream' keyword at tokenizer position ${t.getPosition()}`);}function Hs(t){let e=t.getBytes(),n=t.getPosition(),r=[101,110,100,115,116,114,101,97,109];for(let i=n;i<=e.length-r.length;i++){let s=true;for(let d=0;d<r.length;d++)if(e[i+d]!==r[d]){s=false;break}if(!s)continue;let o=i>0?e[i-1]:10,a=i+r.length<e.length?e[i+r.length]:10;if(!(o===10||o===13||o===32||o===9)||!(a===10||a===13||a===32||a===9||a===62))continue;let u=i;return u>n&&e[u-1]===10&&(u-=1),u>n&&e[u-1]===13&&(u-=1),t.setPosition(i+r.length),e.subarray(n,u)}throw new Error("Could not find 'endstream' marker for stream object")}function gr(t){let e=t.readWord();return parseFloat(e)}function Ys(t){if(!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(t))throw new Error(`Invalid numeric token: ${t}`);let e=parseFloat(t);if(!Number.isFinite(e))throw new Error(`Invalid numeric value: ${t}`);return /^[+-]?\d+$/.test(t)?xt(e):bt(e)}function Ks(t){t.skipWhitespace();let e=t.readWord(),n=Ys(e);if(!Nt(n))return n;let r=t.getPosition();try{t.skipWhitespace();let i=t.readWord();if(!/^[+-]?\d+$/.test(i))return t.setPosition(r),n;if(t.skipWhitespace(),t.readWord()==="R")return yt(n.value,parseInt(i,10))}catch{return t.setPosition(r),n}return t.setPosition(r),n}function xr(t){let e=t.peek();if(e===40){t.read();let n=[],r=1;for(;r>0&&t.peekRaw()!==void 0;){let i=t.readRaw();if(i===40)r++;else if(i===41){if(r--,r===0)break;n.push(i);}else if(i===92){let s=t.peekRaw();if(s===void 0)break;if(s>=48&&s<=55){let o="";for(let a=0;a<3;a++){let c=t.peekRaw();if(c!==void 0&&c>=48&&c<=55)o+=String.fromCharCode(t.readRaw());else break}n.push(parseInt(o,8)&255);continue}t.readRaw(),s===110?n.push(10):s===114?n.push(13):s===116?n.push(9):s===98?n.push(8):s===102?n.push(12):s===40?n.push(40):s===41?n.push(41):s===92?n.push(92):s===10||(s===13?t.peekRaw()===10&&t.readRaw():n.push(s));}else n.push(i);}return Xe(new Uint8Array(n),"literal")}else if(e===60){t.read();let n=[];for(;t.peekRaw()!==62;){let i=t.readRaw();if(i===void 0)throw new Error("Unexpected EOF in hex string");if(i===0||i===9||i===10||i===12||i===13||i===32)continue;let s=zs(i);s!==-1&&n.push(s);}t.readRaw(),n.length%2===1&&n.push(0);let r=new Uint8Array(n.length/2);for(let i=0,s=0;i<n.length;i+=2,s++)r[s]=n[i]<<4|n[i+1];return Xe(r,"hex")}throw new Error("Invalid string format")}function zs(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:-1}function qs(t){if(t.peek()!==47)throw new Error("Expected / for name");t.read();let n=t.readWord();return pt(n)}var Js=200;function Zs(t,e){if(t.peek()!==91)throw new Error("Expected [ for array");t.read();let r=[];for(;t.peek()!==93;)r.push(ge(t,e+1));return t.read(),{type:"array",items:r}}function Qs(t,e){if(t.peek()!==60)throw new Error("Expected < for dict");if(t.read(),t.peek()!==60)throw new Error("Expected << for dict");t.read();let r=new Map;for(;;){if(t.skipWhitespace(),t.peekRaw()===62&&t.peekRaw(1)===62){t.readRaw(),t.readRaw();break}let i=ge(t,e+1);if(!i||typeof i!="object"||i.type!=="name")throw new Error("Dictionary key must be a name");let s=i.value,o=ge(t,e+1);r.set(s,o);}return {type:"dict",entries:r}}function ge(t,e=0){if(e>Js)throw new Error("PDF object nesting too deep");let n=t.peek();if(n===void 0)throw new Error("Unexpected EOF while reading object");if(n===110){let r=t.readWord();if(r==="null")return gt();if(r==="true")return Le(true);if(r==="false")return Le(false);throw new Error("Unknown keyword: "+r)}if(n===116||n===102){let r=t.readWord();if(r==="true")return Le(true);if(r==="false")return Le(false)}if(n===45||n===43||n===46||n>=48&&n<=57)return Ks(t);if(n===40)return xr(t);if(n===47)return qs(t);if(n===91)return Zs(t,e);if(n===60){if(t.peekRaw(1)!==60)return xr(t);let i=Qs(t,e),s=t.getPosition();try{if(t.skipWhitespace(),t.readWord()==="stream"){Xs(t);let a,c=i.entries.get("Length"),l=A(c);if(typeof l=="number"){let u=t.getPosition();a=t.getRemainingBytes().subarray(0,l),t.setPosition(u+l),t.skipWhitespace();let d=t.readWord();d!=="endstream"&&ue(`[WARN] Expected 'endstream' but got '${d}' - stream may be malformed`);}else a=Hs(t);return {type:"stream",dict:i,rawBytes:a,data:a,decode:$.createLazyDecoder(i,a)}}else return t.setPosition(s),i}catch{return t.setPosition(s),i}}throw new Error(`Unknown object type at byte ${n}`)}function br(t){let e=gr(t),n=gr(t);if(t.readWord()!=="obj")throw new Error("Expected obj keyword");let i=ge(t),s=t.readWord();if(s!=="endobj"){let o=t.getRemainingBytes(),a=o.subarray(0,Math.min(8192,o.length)),c=new TextDecoder("latin1").decode(a),l=c.search(/\bendobj\b/);if(l===-1){let u=c.replace(/[\r\n\t]+/g," ").slice(0,220);throw new Error(`Expected endobj keyword (got '${s||"<EOF>"}'). Nearby: "${u}"`)}t.setPosition(t.getPosition()+l+6),ue(`[ObjectReader] Recovered non-immediate endobj for ${Math.floor(e)} ${Math.floor(n)} obj (first token: '${s||"<EOF>"}')`);}return {objNum:Math.floor(e),genNum:Math.floor(n),object:i}}function nt(t,e,n){let r=new TextDecoder("latin1");if(!Number.isFinite(e)||e<0||e>=t.length)throw new Error(`Invalid object offset ${e} (file size: ${t.length})`);let i=4096,s=8192,o=Math.max(0,e-i),a=Math.min(t.length,e+s),c=t.subarray(o,a),l=r.decode(c),u=/(\d+)\s+(\d+)\s+obj\b/g,d,f=[];for(;(d=u.exec(l))!==null;){let x=o+d.index,D=Math.abs(x-e),y=parseInt(d[1],10);f.push({absolutePos:x,matched:d[0],distance:D,objNum:y});}if(f.length===0){let x=Math.max(0,e-64),D=Math.min(t.length,e+128),y=r.decode(t.subarray(x,D)).replace(/[\r\n\t]+/g," ").slice(0,220);throw new Error(`Could not find object header near offset ${e} (searched ${o}-${a}). Snippet: "${y}"`)}if(n!==void 0&&!f.some(x=>x.objNum===n)){let x=r.decode(t),D=String(n),y=new RegExp(`(?<![0-9])${D}\\s+\\d+\\s+obj\\b`,"g"),w;for(;(w=y.exec(x))!==null;){let v=w.index;if(f.some(P=>P.absolutePos===v))continue;let S=Math.abs(v-e);f.push({absolutePos:v,matched:w[0].trim(),distance:S,objNum:n});}}f.sort((x,D)=>{let y=n!==void 0&&x.objNum===n?0:1,w=n!==void 0&&D.objNum===n?0:1;return y!==w?y-w:x.distance-D.distance});let m=Math.min(12,f.length),h=[];for(let x=0;x<m;x++){let D=f[x];try{let y=new ke(t.subarray(D.absolutePos)),w=br(y);if(n!==void 0&&w.objNum!==n)throw new Error(`Parsed object ${w.objNum} but expected ${n}`);return x>0&&ue(`[ObjectReader] Offset ${e} resolved via fallback candidate #${x+1}: ${D.matched} at ${D.absolutePos}`),{...w,objectOffset:D.absolutePos}}catch(y){let w=y instanceof Error?y.message:String(y);h.push(`#${x+1} ${D.matched} @${D.absolutePos}: ${w}`);}}let p=Math.max(0,e-64),b=Math.min(t.length,e+256),g=r.decode(t.subarray(p,b)).replace(/[\r\n\t]+/g," ").slice(0,280);throw new Error(`Failed to read indirect object near offset ${e}. Tried ${m}/${f.length} candidates. Errors: ${h.join(" || ")}. Snippet: "${g}"`)}function gn(t){let e=A(t.entries.get("XRefStm"));return e===null?null:Math.floor(e)}function yr(t,e){let n=e;for(;n<t.length&&t[n]!==10&&t[n]!==13;)n++;let r=new TextDecoder("latin1").decode(t.subarray(e,n));return n<t.length&&t[n]===13&&n++,n<t.length&&t[n]===10&&n++,{line:r,next:n}}function yn(t,e,n){e:for(let r=n;r<=t.length-e.length;r++){for(let i=0;i<e.length;i++)if(t[r+i]!==e[i])continue e;return r}return -1}function Dr(t){return t===void 0||ve(t)||wt(t)}function Dn(t,e,n){if(e<0||e+n.length>t.length)return false;for(let s=0;s<n.length;s++)if(t[e+s]!==n[s])return false;let r=e>0?t[e-1]:void 0,i=e+n.length<t.length?t[e+n.length]:void 0;return Dr(r)&&Dr(i)}function Vt(t,e,n){let r=Math.max(0,n);for(;r<=t.length-e.length;){let i=yn(t,e,r);if(i===-1)return -1;if(Dn(t,i,e))return i;r=i+1;}return -1}function eo(t,e,n,r){let i=[],s=Math.max(0,n),o=Math.min(t.length-e.length,Math.max(s,r));for(;s<=o;){let a=yn(t,e,s);if(a===-1||a>o)break;Dn(t,a,e)&&i.push(a),s=a+1;}return i}function wr(t,e,n,r){let i=Math.max(0,n-r),s=Math.min(t.length,n+r),o=eo(t,e,i,s);return o.length===0?-1:(o.sort((a,c)=>Math.abs(a-n)-Math.abs(c-n)),o[0])}function to(t,e,n,r){let i=Math.min(r,t.length);for(let s=Math.max(n,0);s<=i-e.length;s++){let o=true;for(let a=0;a<e.length;a++)if(t[s+a]!==e[a]){o=false;break}if(o){let a=s;for(let c=s+1;c<=i-e.length;c++){let l=true;for(let u=0;u<e.length;u++)if(t[c+u]!==e[u]){l=false;break}l&&(a=c);}return a}}return -1}function Wt(t,e){let n=new ke(t.subarray(e)),r=ge(n);if(!k(r))throw new Error("Trailer object is not a dictionary");return r}function Ye(t){if(t===null)return "null";if(t===void 0)return "undefined";if(Array.isArray(t))return `Array(len=${t.length})`;if(typeof t=="number")return "number";if(typeof t!="object")return typeof t;let e=t;return typeof e.type=="string"?Array.isArray(e.items)?`PDFObject(type=${e.type}, items=${e.items.length})`:typeof e.value!="undefined"?`PDFObject(type=${e.type}, value=${String(e.value)})`:`PDFObject(type=${e.type})`:"object"}function Fr(t,e){et&&console.debug("[XRefTable]",t,e!=null?e:{});}function xn(t,e){et&&console.warn("[XRefTable]",t,e!=null?e:{});}function Pr(t,e){if(!t)throw new Error(`/${e} missing`);if(B(t)){let i=[];for(let s of t.items){let o=A(s);if(o===null)throw new Error(`/${e} must contain only numbers`);i.push(Math.floor(o));}return i}if(Array.isArray(t))return t.map(i=>Math.floor(Number(i)||0));if(typeof t=="number")return [Math.floor(t)];let n=A(t);if(n!==null)return [Math.floor(n)];let r=t;if(Array.isArray(r.items))return r.items.map(i=>Math.floor(Number(i)||0));throw new Error(`/${e} must be an array, got ${Ye(t)}`)}function vr(t){let e=t.length,n=Math.min(1024*1024,e),r=new TextDecoder("latin1").decode(t.subarray(e-n,e)),i=r.lastIndexOf("startxref");if(i!==-1){let s=r.slice(i+9).match(/\d+/);if(s)return parseInt(s[0],10)}throw new Error("PDF missing startxref offset")}function Pt(t,e){let n=new TextDecoder("latin1"),r=new Uint8Array([120,114,101,102]),i=e,s=Vt(t,r,i);if(s===-1||s-e>32){let a=n.decode(t.subarray(e,Math.min(e+20,t.length)));throw new Error(`Expected 'xref' keyword near offset ${e}, found: ${a}`)}for(i=s+r.length;i<t.length&&(t[i]===13||t[i]===10);)i++;let o=new Map;for(;i<t.length;){for(;i<t.length&&(t[i]===13||t[i]===10);)i++;let a=i;for(;i<t.length&&t[i]!==13&&t[i]!==10;)i++;let c=n.decode(t.subarray(a,i)).trim();for(;i<t.length&&(t[i]===13||t[i]===10);)i++;if(!c)continue;if(c==="trailer"||c.startsWith("trailer")||c==="railer"||c.startsWith("railer")){let f=c.startsWith("railer")?Math.max(0,a-1):a,m=tt(t,f+7),h=Wt(t,m),p=h.entries.get("Prev"),b=A(p),g=b===null?null:Math.floor(b),x=gn(h);if(o.size===0&&g===null&&x===null)throw new Error("No valid xref entries found");return {entries:o,trailer:h,prevXRefOffset:g,offset:e,xrefStmOffset:x}}if(c==="%%EOF"||c.startsWith("startxref")){let f=new Uint8Array([116,114,97,105,108,101,114]),m=to(t,f,e,a);if(m!==-1){let h=tt(t,m+7),p=Wt(t,h),b=p.entries.get("Prev"),g=A(b),x=g===null?null:Math.floor(g),D=gn(p);if(o.size===0&&x===null&&D===null)throw new Error("No valid xref entries found");return {entries:o,trailer:p,prevXRefOffset:x,offset:e,xrefStmOffset:D}}throw new Error("Reached EOF before trailer in traditional xref section")}let l=c.match(/^(\d+)\s+(\d+)$/);if(!l){if(/^\d+$/.test(c)){let f=new Uint8Array([116,114,97,105,108,101,114]),m=yn(t,f,Math.max(0,a-1));if(m!==-1&&m-a<=256){let h=tt(t,m+7),p=Wt(t,h),b=p.entries.get("Prev"),g=A(b),x=g===null?null:Math.floor(g),D=gn(p);if(o.size===0&&x===null&&D===null)throw new Error("No valid xref entries found");return {entries:o,trailer:p,prevXRefOffset:x,offset:e,xrefStmOffset:D}}continue}throw new Error(`Invalid xref subsection header: ${c}`)}let u=parseInt(l[1],10),d=parseInt(l[2],10);for(let f=0;f<d;f++){if(i+20>t.length)throw new Error(`Truncated xref at entry ${u+f}`);let m=i,h=n.decode(t.subarray(i,i+20));i+=20;let p=h.substring(0,10),b=h.substring(11,16),g=h[17],x=0,D=0,y="f";if(/^\d{10}$/.test(p)&&/^\d{5}$/.test(b)&&(g==="n"||g==="f"))x=parseInt(p,10),D=parseInt(b,10),y=g;else {i=m;let w=yr(t,i);i=w.next;let v=0;for(;v<3&&w.line.trim()==="";)w=yr(t,i),i=w.next,v++;let S=w.line.match(/^\s*(\d{10})\s+(\d{5})\s+([nf])\b/);if(!S)throw new Error(`Malformed fixed-width xref entry: ${h}`);x=parseInt(S[1],10),D=parseInt(S[2],10),y=S[3];}o.set(u+f,{type:"uncompressed",offset:x,genNum:D,inUse:y==="n"});}}throw new Error("trailer keyword not found after xref entries")}function no(t,e){let{stream:n,resolvedObj:r}=ro(t,e),i=n.dict,s=He(i.entries.get("Type"));s!=="XRef"&&xn("Resolved stream is not /Type /XRef",{offset:e,resolvedObj:r,type:s}),Fr("Parsing xref stream",{offset:e,resolvedObj:r,type:s,wShape:Ye(i.entries.get("W")),indexShape:Ye(i.entries.get("Index")),sizeShape:Ye(i.entries.get("Size"))});let o,a;{let w=i.entries.get("W"),v=i.entries.get("Size"),S=A(v),P=i.entries.get("Index");try{if(o=Pr(w,"W"),o.length!==3)throw new Error("/W must contain three integers");if(S===null)throw new Error("XRef stream missing /Size");if(a=P?Pr(P,"Index"):[0,Math.floor(S)],a.length%2!==0)throw new Error("/Index must have even number of elements")}catch(M){let C=M instanceof Error?M.message:String(M);throw xn("Failed parsing /W or /Index in xref stream",{offset:e,resolvedObj:r,error:C,wShape:Ye(w),indexShape:Ye(P),sizeShape:Ye(v)}),M}}let c=new Map,[l,u,d]=o,f=l+u+d,m=$.decodeStreamSync(n),h=0;for(let w=0;w<a.length;w+=2){let v=a[w],S=a[w+1];for(let P=0;P<S;P++){if(h+f>m.length)throw new Error("XRef stream data is shorter than expected from /W and /Index");let M=U=>{let N=0;for(let j=0;j<U;j++)N=N<<8|m[h++];return N},C=l===0?1:M(l),F=M(u),R=M(d),T=v+P;C===0?c.set(T,{type:"uncompressed",offset:0,genNum:R,inUse:false}):C===1?c.set(T,{type:"uncompressed",offset:F,genNum:R,inUse:true}):C===2&&c.set(T,{type:"compressed",streamNum:F,indexNum:R,genNum:0,inUse:true});}}let p=i.entries.get("Prev"),b=A(p),g=b===null?null:Math.floor(b),x=new Map(i.entries),D=new Set(["W","Index","Filter","DecodeParms","Length","Columns","Predictor","Type","DL"]);for(let w of D)x.delete(w);return {entries:c,trailer:{type:"dict",entries:x},prevXRefOffset:g,offset:e}}function ro(t,e){let n=[0,-64,64,-256,256,-1024,1024,-4096,4096,-8192,8192],r=new Set,i=[],s=[];for(let o of n){let a=e+o;if(!(a<0||a>=t.length))try{let c=nt(t,a),l=`${c.objNum}.${c.genNum}`;if(r.has(l))continue;if(r.add(l),!L(c.object)){i.push(`offset ${a}: ${l} is not a stream`);continue}let u=c.object,d=u.dict.entries.has("W"),f=u.dict.entries.has("Size"),m=u.dict.entries.get("Type"),h=m&&typeof m=="object"&&"type"in m&&m.type==="name"?m.value:null,p=h==="XRef";if(d&&f)return Fr("Resolved xref stream candidate",{requestedOffset:e,probeOffset:a,object:`${c.objNum} ${c.genNum} obj`,type:h}),{stream:u,resolvedObj:`${c.objNum} ${c.genNum} obj`};s.push(`offset ${a}: ${l} stream type=${h!=null?h:"unknown"} hasW=${d} hasSize=${f} isTypeXRef=${p}`);}catch(c){let l=c instanceof Error?c.message:String(c);i.push(`offset ${a}: ${l}`);}}throw new Error(`Could not resolve xref stream with /W and /Size near startxref ${e}. Non-xref streams: ${s.join(" || ")||"none"}. Failures: ${i.join(" || ")||"none"}`)}function Cr(t,e){let n=new Uint8Array([120,114,101,102]),r=tt(t,e);if(Dn(t,r,n))return Pt(t,r);let i=Vt(t,n,Math.max(0,e));if(i!==-1&&i-e<=2048)return Pt(t,i);let s=wr(t,n,e,32768);if(s!==-1)return Pt(t,s);if(new TextDecoder("latin1").decode(t.subarray(e,Math.min(e+64,t.length))).trimStart().startsWith("xref"))return Pt(t,e);try{return no(t,e)}catch(a){let c=wr(t,n,e,131072);if(c!==-1)return Pt(t,c);throw a}}var bn=new TextDecoder("latin1"),Sr=t=>t>=48&&t<=57;function io(t,e){let n=e-1;for(;n>=0&&ve(t[n]);)n--;let r=n;for(;n>=0&&Sr(t[n]);)n--;let i=n+1;if(i>r)return null;for(;n>=0&&ve(t[n]);)n--;let s=n;for(;n>=0&&Sr(t[n]);)n--;let o=n+1;if(o>s)return null;let a=parseInt(bn.decode(t.subarray(i,r+1)),10),c=parseInt(bn.decode(t.subarray(o,s+1)),10);return Number.isFinite(c)?{objNum:c,genNum:Number.isFinite(a)?a:0,start:o}:null}function so(t){let e=new Uint8Array([116,114,97,105,108,101,114]),n=null,r=0;for(;;){let i=Vt(t,e,r);if(i===-1)break;try{let s=tt(t,i+e.length),o=Wt(t,s);o.entries.get("Root")&&(n=o);}catch{}r=i+e.length;}return n}function oo(t,e){for(let[n,r]of e)if(!(r.type!=="uncompressed"||!r.inUse))try{let{object:i}=nt(t,r.offset,n),s=L(i)?i.dict:k(i)?i:null;if(!s)continue;if(He(s.entries.get("Type"))==="Catalog"){let o=new Map;return o.set("Root",{type:"ref",objNum:n,genNum:r.genNum}),{type:"dict",entries:o}}}catch{}throw new Error("xref recovery: no trailer and no /Catalog object found")}function ao(t,e){for(let[n,r]of Array.from(e))if(!(r.type!=="uncompressed"||!r.inUse))try{let{object:i}=nt(t,r.offset,n);if(!L(i)||He(i.dict.entries.get("Type"))!=="ObjStm")continue;let s=A(i.dict.entries.get("N")),o=A(i.dict.entries.get("First"));if(s===null||o===null)continue;let a=$.decodeStreamSync(i),l=bn.decode(a.subarray(0,Math.min(Math.floor(o),a.length))).split(/\s+/).map(u=>parseInt(u,10)).filter(u=>Number.isFinite(u));for(let u=0;u<Math.floor(s);u++){let d=l[u*2];if(d===void 0)break;e.has(d)||e.set(d,{type:"compressed",streamNum:n,indexNum:u,genNum:0,inUse:!0});}}catch{}}function wn(t){var s;let e=new Uint8Array([111,98,106]),n=new Map,r=0;for(;;){let o=Vt(t,e,r);if(o===-1)break;let a=io(t,o);a&&n.set(a.objNum,{type:"uncompressed",offset:a.start,genNum:a.genNum,inUse:true}),r=o+e.length;}if(n.size===0)throw new Error("xref recovery: no indirect objects found (not a PDF?)");ao(t,n);let i=(s=so(t))!=null?s:oo(t,n);return xn("Rebuilt xref by full-file scan",{objects:n.size}),{entries:n,trailer:i,prevXRefOffset:null,offset:0}}function Pn(t){let e=[],n=new Set,r=[vr(t)];for(;r.length>0;){let i=r.shift();if(i===null||n.has(i))continue;n.add(i);let s=Cr(t,i);e.push(s),s.xrefStmOffset!=null&&r.push(s.xrefStmOffset),s.prevXRefOffset!=null&&r.push(s.prevXRefOffset);}return e}var co=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 Ar(t,e,n){let r=t.length*8,i=Math.ceil((t.length+1+n)/e)*e,s=new Uint8Array(i);s.set(t),s[t.length]=128;let o=new DataView(s.buffer);return o.setUint32(i-4,r>>>0,false),o.setUint32(i-8,Math.floor(r/4294967296)>>>0,false),s}function Gt(t){let e=1779033703,n=3144134277,r=1013904242,i=2773480762,s=1359893119,o=2600822924,a=528734635,c=1541459225,l=Ar(t,64,8),u=new DataView(l.buffer),d=(p,b)=>p>>>b|p<<32-b,f=new Uint32Array(64);for(let p=0;p<l.length;p+=64){for(let P=0;P<16;P++)f[P]=u.getUint32(p+P*4,false);for(let P=16;P<64;P++){let M=f[P-15],C=f[P-2],F=d(M,7)^d(M,18)^M>>>3,R=d(C,17)^d(C,19)^C>>>10;f[P]=f[P-16]+F+f[P-7]+R|0;}let b=e,g=n,x=r,D=i,y=s,w=o,v=a,S=c;for(let P=0;P<64;P++){let M=d(y,6)^d(y,11)^d(y,25),C=y&w^~y&v,F=S+M+C+co[P]+f[P]|0,R=d(b,2)^d(b,13)^d(b,22),T=b&g^b&x^g&x,U=R+T|0;S=v,v=w,w=y,y=D+F|0,D=x,x=g,g=b,b=F+U|0;}e=e+b|0,n=n+g|0,r=r+x|0,i=i+D|0,s=s+y|0,o=o+w|0,a=a+v|0,c=c+S|0;}let m=new Uint8Array(32),h=new DataView(m.buffer);return [e,n,r,i,s,o,a,c].forEach((p,b)=>h.setUint32(b*4,p>>>0,false)),m}var fe=(BigInt(1)<<BigInt(64))-BigInt(1),lo=BigInt(32),uo=BigInt(255),fo=["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t)),ho=["0x6a09e667f3bcc908","0xbb67ae8584caa73b","0x3c6ef372fe94f82b","0xa54ff53a5f1d36f1","0x510e527fade682d1","0x9b05688c2b3e6c1f","0x1f83d9abfb41bd6b","0x5be0cd19137e2179"].map(t=>BigInt(t)),mo=["0xcbbb9d5dc1059ed8","0x629a292a367cd507","0x9159015a3070dd17","0x152fecd8f70e5939","0x67332667ffc00b31","0x8eb44a8768581511","0xdb0c2e0d64f98fa7","0x47b5481dbefa4fa4"].map(t=>BigInt(t));function Mr(t,e,n){let r=(g,x)=>(g>>BigInt(x)|g<<BigInt(64-x))&fe,i=(g,x)=>g>>BigInt(x),s=Ar(t,128,16),o=new DataView(s.buffer),[a,c,l,u,d,f,m,h]=e,p=new Array(80);for(let g=0;g<s.length;g+=128){for(let C=0;C<16;C++){let F=BigInt(o.getUint32(g+C*8,false)>>>0),R=BigInt(o.getUint32(g+C*8+4,false)>>>0);p[C]=F<<lo|R;}for(let C=16;C<80;C++){let F=p[C-15],R=p[C-2],T=r(F,1)^r(F,8)^i(F,7),U=r(R,19)^r(R,61)^i(R,6);p[C]=p[C-16]+T+p[C-7]+U&fe;}let x=a,D=c,y=l,w=u,v=d,S=f,P=m,M=h;for(let C=0;C<80;C++){let F=r(v,14)^r(v,18)^r(v,41),R=v&S^~v&fe&P,T=M+F+R+fo[C]+p[C]&fe,U=r(x,28)^r(x,34)^r(x,39),N=x&D^x&y^D&y,j=U+N&fe;M=P,P=S,S=v,v=w+T&fe,w=y,y=D,D=x,x=T+j&fe;}a=a+x&fe,c=c+D&fe,l=l+y&fe,u=u+w&fe,d=d+v&fe,f=f+S&fe,m=m+P&fe,h=h+M&fe;}let b=new Uint8Array(64);return [a,c,l,u,d,f,m,h].forEach((g,x)=>{for(let D=0;D<8;D++)b[x*8+D]=Number(g>>BigInt((7-D)*8)&uo);}),b.subarray(0,n)}var kr=t=>Mr(t,ho,64),Rr=t=>Mr(t,mo,48);var po=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function Sn(t){let e=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],n=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],r=1732584193,i=4023233417,s=2562383102,o=271733878,a=t.length,c=(56-(a+1)%64+64)%64,l=new Uint8Array(a+1+c+8);l.set(t),l[a]=128;let u=a*8;l[l.length-8]=u&255,l[l.length-7]=u>>>8&255,l[l.length-6]=u>>>16&255,l[l.length-5]=u>>>24&255;let d=new DataView(l.buffer);for(let h=0;h<l.length;h+=64){let p=r,b=i,g=s,x=o,D=new Uint32Array(16);for(let y=0;y<16;y++)D[y]=d.getUint32(h+y*4,true);for(let y=0;y<64;y++){let w,v;y<16?(w=b&g|~b&x,v=y):y<32?(w=x&b|~x&g,v=(5*y+1)%16):y<48?(w=b^g^x,v=(3*y+5)%16):(w=g^(b|~x),v=7*y%16);let S=x;x=g,g=b;let P=p+w+n[y]+D[v]|0;b=b+(P<<e[y]|P>>>32-e[y])|0,p=S;}r=r+p|0,i=i+b|0,s=s+g|0,o=o+x|0;}let f=new Uint8Array(16),m=new DataView(f.buffer);return m.setUint32(0,r,true),m.setUint32(4,i,true),m.setUint32(8,s,true),m.setUint32(12,o,true),f}function go(t,e){let n=new Uint8Array(256);for(let o=0;o<256;o++)n[o]=o;let r=0;for(let o=0;o<256;o++){r=(r+n[o]+t[o%t.length])%256;let a=n[o];n[o]=n[r],n[r]=a;}let i=new Uint8Array(e.length),s=0;r=0;for(let o=0;o<e.length;o++){s=(s+1)%256,r=(r+n[s])%256;let a=n[s];n[s]=n[r],n[r]=a,i[o]=e[o]^n[(n[s]+n[r])%256];}return i}var Re=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),xo=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);function vn(t){let e=t.length/4,n=e+6,r=new Uint32Array(4*(n+1));for(let s=0;s<e;s++)r[s]=t[4*s]<<24|t[4*s+1]<<16|t[4*s+2]<<8|t[4*s+3];let i=[0,1,2,4,8,16,32,64,128,27,54];for(let s=e;s<4*(n+1);s++){let o=r[s-1];if(s%e===0){let a=o>>>24&255,c=o>>>16&255,l=o>>>8&255,u=o&255;o=Re[c]<<24|Re[l]<<16|Re[u]<<8|Re[a],o^=i[s/e]<<24;}else if(e>6&&s%e===4){let a=o>>>24&255,c=o>>>16&255,l=o>>>8&255,u=o&255;o=Re[a]<<24|Re[c]<<16|Re[l]<<8|Re[u];}r[s]=r[s-e]^o;}return r}function Er(t){for(let e=0;e<16;e++)t[e]=xo[t[e]];}function Or(t){let e;e=t[13],t[13]=t[9],t[9]=t[5],t[5]=t[1],t[1]=e,e=t[2],t[2]=t[10],t[10]=e,e=t[6],t[6]=t[14],t[14]=e,e=t[3],t[3]=t[7],t[7]=t[11],t[11]=t[15],t[15]=e;}var bo=t=>(t<<1^(t>>>7&1)*27)&255;function q(t,e){let n=0,r=t;for(let i=0;i<8;i++)e>>>i&1&&(n^=r),r=bo(r);return n}function yo(t){for(let e=0;e<4;e++){let n=e*4,r=t[n],i=t[n+1],s=t[n+2],o=t[n+3];t[n]=q(r,14)^q(i,11)^q(s,13)^q(o,9),t[n+1]=q(r,9)^q(i,14)^q(s,11)^q(o,13),t[n+2]=q(r,13)^q(i,9)^q(s,14)^q(o,11),t[n+3]=q(r,11)^q(i,13)^q(s,9)^q(o,14);}}function rt(t,e,n){for(let r=0;r<4;r++){let i=e[n*4+r];t[r*4]^=i>>>24&255,t[r*4+1]^=i>>>16&255,t[r*4+2]^=i>>>8&255,t[r*4+3]^=i&255;}}function Ur(t,e,n){let r=new Uint8Array(16);r.set(t),rt(r,e,n);for(let i=n-1;i>=1;i--)Or(r),Er(r),rt(r,e,i),yo(r);return Or(r),Er(r),rt(r,e,0),r}function Tr(t,e){if(e.length<16)return e;let n=vn(t),r=t.length/4+6,i=e.subarray(0,16),s=e.subarray(16),o=s.length/16,a=new Uint8Array(s.length),c=i;for(let u=0;u<o;u++){let d=u*16,f=s.subarray(d,d+16),m=Ur(f,n,r);for(let h=0;h<16;h++)a[d+h]=m[h]^c[h];c=f;}let l=a[a.length-1];if(l>0&&l<=16){let u=true;for(let d=a.length-l;d<a.length;d++)if(a[d]!==l){u=false;break}if(u)return a.subarray(0,a.length-l)}return a}function Ir(t){for(let e=0;e<16;e++)t[e]=Re[t[e]];}function Br(t){let e;e=t[1],t[1]=t[5],t[5]=t[9],t[9]=t[13],t[13]=e,e=t[2],t[2]=t[10],t[10]=e,e=t[6],t[6]=t[14],t[14]=e,e=t[15],t[15]=t[11],t[11]=t[7],t[7]=t[3],t[3]=e;}function Do(t){for(let e=0;e<4;e++){let n=e*4,r=t[n],i=t[n+1],s=t[n+2],o=t[n+3];t[n]=q(r,2)^q(i,3)^s^o,t[n+1]=r^q(i,2)^q(s,3)^o,t[n+2]=r^i^q(s,2)^q(o,3),t[n+3]=q(r,3)^i^s^q(o,2);}}function wo(t,e,n){let r=new Uint8Array(16);r.set(t),rt(r,e,0);for(let i=1;i<n;i++)Ir(r),Br(r),Do(r),rt(r,e,i);return Ir(r),Br(r),rt(r,e,n),r}function Po(t,e,n){let r=vn(t),i=t.length/4+6,s=new Uint8Array(n.length),o=e;for(let a=0;a<n.length;a+=16){let c=new Uint8Array(16);for(let u=0;u<16;u++)c[u]=n[a+u]^o[u];let l=wo(c,r,i);s.set(l,a),o=l;}return s}function So(t,e,n){let r=vn(t),i=t.length/4+6,s=new Uint8Array(n.length),o=e;for(let a=0;a<n.length;a+=16){let c=n.subarray(a,a+16),l=Ur(c,r,i);for(let u=0;u<16;u++)s[a+u]=l[u]^o[u];o=c;}return s}function Fo(t,e){if(t.length!==e.length)return false;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return false;return true}function Fn(...t){let e=t.reduce((i,s)=>i+s.length,0),n=new Uint8Array(e),r=0;for(let i of t)n.set(i,r),r+=i.length;return n}function vo(t,e,n){let r=Gt(Fn(t,e,n)),i=0;for(;;){let s=Fn(t,r,n),o=new Uint8Array(s.length*64);for(let l=0;l<64;l++)o.set(s,l*s.length);let a=Po(r.subarray(0,16),r.subarray(16,32),o),c=0;for(let l=0;l<16;l++)c+=a[l];if(c%=3,r=c===0?Gt(a):c===1?Rr(a):kr(a),i++,i>=64&&a[a.length-1]<=i-32)break}return r.subarray(0,32)}var Xt=class{constructor(e,n){this.fileKey=new Uint8Array(0);this.v=0;this.r=0;this.isAes=false;this.parseEncryptDict(e,n);}parseEncryptDict(e,n){var w,v,S,P;let r=e.entries.get("V"),i=e.entries.get("R"),s=e.entries.get("Length"),o=e.entries.get("O"),a=e.entries.get("U"),c=e.entries.get("P"),l=e.entries.get("EncryptMetadata");this.v=(w=A(r))!=null?w:0,this.r=(v=A(i))!=null?v:0;let d=((S=A(s))!=null?S:40)/8,f=e.entries.get("UE"),m=o&&"value"in o&&o.value instanceof Uint8Array?o.value:new Uint8Array(0),h=a&&"value"in a&&a.value instanceof Uint8Array?a.value:new Uint8Array(0),p=f&&"value"in f&&f.value instanceof Uint8Array?f.value:new Uint8Array(0),b=(P=A(c))!=null?P:0,g=l&&"value"in l?l.value:true,x=e.entries.get("CF"),D=e.entries.get("StmF"),y=(()=>{if(D&&"value"in D&&(D.value==="AESV2"||D.value==="AESV3"))return D.value;if(x&&k(x)){let M=x.entries.get("StdCF");if(M&&k(M)){let C=M.entries.get("CFM");if(C&&"value"in C&&typeof C.value=="string")return C.value}}})();(y==="AESV2"||y==="AESV3")&&(this.isAes=true),(this.v===5||this.r===5||this.r===6)&&(this.isAes=true),this.fileKey=this.v===5?this.deriveFileKeyV5(new Uint8Array(0),h,p):this.deriveFileKey(new Uint8Array(0),d,m,h,b,n,g);}deriveFileKeyV5(e,n,r){if(n.length<48||r.length<32)return new Uint8Array(0);let i=n.subarray(0,32),s=n.subarray(32,40),o=n.subarray(40,48),a=new Uint8Array(0),c=this.hashV5(e,s,a);if(!Fo(c,i))return ue("[Decryption] AES-256 document requires a non-empty user password; cannot decrypt."),new Uint8Array(0);let l=this.hashV5(e,o,a);return So(l,new Uint8Array(16),r.subarray(0,32))}hashV5(e,n,r){return this.r===6?vo(e,n,r):Gt(Fn(e,n,r))}deriveFileKey(e,n,r,i,s,o,a=true){let c=new Uint8Array(32);c.set(e.subarray(0,Math.min(32,e.length))),e.length<32&&c.set(po.subarray(0,32-e.length),e.length);let l=[];l.push(...c),l.push(...r),l.push(s&255),l.push(s>>>8&255),l.push(s>>>16&255),l.push(s>>>24&255),o&&o.length>0&&l.push(...o),this.r>=3&&!a&&l.push(255,255,255,255);let u=Sn(new Uint8Array(l));if(this.r>=3){let f=u.subarray(0,n);for(let m=0;m<50;m++)f=Sn(f).subarray(0,n);return f}return u.subarray(0,n)}deriveObjectKey(e,n){let r=new Uint8Array(5);r[0]=e&255,r[1]=e>>>8&255,r[2]=e>>>16&255,r[3]=n&255,r[4]=n>>>8&255;let i=new Uint8Array(this.fileKey.length+r.length+(this.isAes?4:0));i.set(this.fileKey),i.set(r,this.fileKey.length),this.isAes&&i.set([115,65,108,84],this.fileKey.length+r.length);let s=Sn(i),o=Math.min(16,this.fileKey.length+5);return s.subarray(0,o)}decrypt(e,n,r){return this.v===5?this.fileKey.length===0?e:Tr(this.fileKey,e):this.isAes?Tr(this.deriveObjectKey(n,r),e):go(this.deriveObjectKey(n,r),e)}};var _e=class{constructor(e){this.document=null;this.objectStreamCache=new Map;this.encryptRef=null;this.decryptionHandler=null;this.bytes=e;}parse(){if(this.document)return this.document;try{let e=this.extractVersion(),n=this.parseXRefTables();if(n.length===0)throw new Error("No valid xref tables found in PDF");let r=new Map;for(let a=n.length-1;a>=0;a--)for(let[c,l]of n[a].entries)r.set(c,l);let i=n[0].trailer,s=this.extractRootRef(i);this.document={rawBytes:this.bytes,xrefTables:new Map([[0,r]]),objectCache:new Map,rootRef:s,trailer:i,version:e};let o=i.entries.get("Encrypt");if(o){let a=null;if(Z(o)){this.encryptRef=o;let c=this.loadObject(o);k(c)&&(a=c);}else k(o)&&(a=o);if(a){let c,l=i.entries.get("ID");if(l&&B(l)&&l.items.length>0){let u=l.items[0];pn(u)&&(c=u.value);}this.decryptionHandler=new Xt(a,c);}}return this.document}catch(e){throw Ue("[ERROR] Parse failed:",e),e}}extractVersion(){let r=new TextDecoder().decode(this.bytes.subarray(0,20)).match(/%PDF-(\d+\.\d+)/);if(!r)throw new Error("Invalid PDF header - no %PDF-X.Y found");return r[1]}parseXRefTables(){try{let e=Pn(this.bytes);if(e.length>0&&e[0].trailer.entries.get("Root"))return e;ue("[PDFParser] xref parsed but no /Root in newest trailer \u2014 rebuilding by scan");}catch(e){ue("[PDFParser] xref parse failed, rebuilding by scan:",e instanceof Error?e.message:e);}return [wn(this.bytes)]}extractRootRef(e){let n=e.entries.get("Root");if(!n)throw Ue("[ERROR] Trailer has no Root entry. Trailer entries:",Array.from(e.entries.keys())),new Error("Trailer missing /Root reference");if(typeof n!="object"||n.type!=="ref")throw Ue("[ERROR] Root is not a reference object:",n),new Error("Trailer /Root is not a valid reference");return n}loadObject(e){if(!this.document)throw new Error("Parse PDF first");let n=`${e.objNum}.${e.genNum}`;if(this.document.objectCache.has(n))return this.document.objectCache.get(n);let r=this.document.xrefTables.get(0);if(!r)throw new Error("No xref table found");let i=r.get(e.objNum);if(!i)throw new Error(`Object ${e.objNum} not found in xref`);if(i.type==="uncompressed"){if(!i.inUse)throw new Error(`Object ${e.objNum} is marked free in xref`);if(i.offset===0){let s={type:"dict",entries:new Map};throw this.document.objectCache.set(n,s),new Error(`Object ${e.objNum} has ghost xref entry (offset 0)`)}try{let{object:s,objectOffset:o}=nt(this.bytes,i.offset,e.objNum),a=L(s)?this.repairStreamBytesFromLengthRef(s,o):s,c=this.decryptObject(a,e.objNum,e.genNum);return this.document.objectCache.set(n,c),c}catch(s){throw ue(`[PDFParser] Failed to load object ${e.objNum}: ${s}`),s}}else {if(!i.inUse)throw new Error(`Object ${e.objNum} is marked free in compressed xref entry`);let s=i.streamNum;if(!this.objectStreamCache.has(s)){let a=this.loadObjectStream(s,r);this.objectStreamCache.set(s,a);}let o=this.document.objectCache.get(n);if(!o)throw new Error(`Object ${e.objNum} not found in object stream ${s}`);return o}}loadObjectStream(e,n){var b,g;let r=n.get(e);if(!r||r.type!=="uncompressed"||!r.inUse)throw new Error(`Object stream ${e} not found or not in-use/uncompressed`);let i={type:"ref",objNum:e,genNum:0},s=this.loadObject(i);if(!L(s))throw new Error(`Object ${e} is not a stream`);let o=s.dict.entries.get("Type");if(!o||o.type!=="name"||o.value!=="ObjStm")throw new Error(`Object ${e} is not an /ObjStm`);let a=s.dict.entries.get("N"),c=s.dict.entries.get("First");if(!a||!$t(a)||!c||!$t(c))throw new Error(`Object stream ${e} missing numeric /N or /First`);let l=Math.floor(a.value),u=Math.floor(c.value);if(l<0||u<0)throw new Error(`Object stream ${e} has invalid /N or /First values`);let d=s,f;try{f=$.decodeStreamSync(d);}catch(x){let D=d.dict.entries.get("Filter"),y=d.dict.entries.get("Length"),w=(g=(b=d.rawBytes)!=null?b:d.data)!=null?g:new Uint8Array(0),v=Array.from(w.subarray(0,8)).map(C=>C.toString(16).padStart(2,"0")).join(" "),S=Math.max(0,w.length-8),P=Array.from(w.subarray(S)).map(C=>C.toString(16).padStart(2,"0")).join(" "),M=x instanceof Error?x.message:String(x);throw new Error(`Object stream ${e} decode failed: ${M}; Filter=${JSON.stringify(D)} Length=${JSON.stringify(y)} rawLen=${w.length} first8=[${v}] last8=[${P}]`)}if(u>f.length)throw new Error(`Object stream ${e} /First (${u}) exceeds decoded length (${f.length})`);let h=new TextDecoder("latin1").decode(f.subarray(0,u)).match(/\d+/g)||[];if(h.length<l*2)throw new Error(`Object stream ${e} header has ${h.length} numbers, expected at least ${l*2}`);let p=new Map;for(let x=0;x<l;x++){let D=parseInt(h[x*2],10),y=parseInt(h[x*2+1],10),w=u+y;if(!(!Number.isFinite(D)||!Number.isFinite(y)||y<0||w>f.length))try{let v=new ke(f.subarray(w)),S=ge(v);p.set(D,S),this.document.objectCache.set(`${D}.0`,S);}catch(v){ue(`[WARN] Failed to parse object ${D} from object stream ${e}:`,v);}}return p}repairStreamBytesFromLengthRef(e,n){var l,u;let r=e.dict.entries.get("Length");if(!r||!Z(r))return e;let i=null;try{let d=this.loadObject(r);i=A(d);}catch{return e}if(i===null)return e;let s=Math.max(0,Math.floor(i)),o=this.findStreamDataStart(n);if(o<0||o+s>this.bytes.length)return e;let a=(l=e.rawBytes)!=null?l:e.data;if(a&&a.length===s)return e;let c=this.bytes.subarray(o,o+s);return ue(`[PDFParser] Repaired stream bytes via indirect /Length at offset ${n}: resolved length=${s}, previous length=${(u=a==null?void 0:a.length)!=null?u:0}`),{type:"stream",dict:e.dict,rawBytes:c,data:c,decode:$.createLazyDecoder(e.dict,c)}}findStreamDataStart(e){let n=[115,116,114,101,97,109],r=Math.min(this.bytes.length-n.length,e+1024*1024);for(let i=Math.max(0,e);i<=r;i++){let s=true;for(let d=0;d<n.length;d++)if(this.bytes[i+d]!==n[d]){s=false;break}if(!s)continue;let o=i>0?this.bytes[i-1]:32,a=this.bytes[i+n.length];if(!(o===10||o===13||o===32||o===9||o===62)||!(a===10||a===13||a===32||a===9))continue;let u=i+n.length;return this.bytes[u]===13&&this.bytes[u+1]===10?u+=2:(this.bytes[u]===10||this.bytes[u]===13)&&(u+=1),u}return -1}decryptObject(e,n,r){return !this.decryptionHandler||this.encryptRef&&n===this.encryptRef.objNum?e:this.decryptObjectRecursive(e,n,r)}decryptObjectRecursive(e,n,r){var i,s;if(!this.decryptionHandler)return e;if(e.type==="string"){let o=this.decryptionHandler.decrypt(e.value,n,r);return {...e,value:o}}if(e.type==="array")return {...e,items:e.items.map(o=>this.decryptObjectRecursive(o,n,r))};if(e.type==="dict"){let o=new Map;for(let[a,c]of e.entries)o.set(a,this.decryptObjectRecursive(c,n,r));return {...e,entries:o}}if(e.type==="stream"){let o=(s=(i=e.rawBytes)!=null?i:e.data)!=null?s:new Uint8Array(0),a=o.length>0?this.decryptionHandler.decrypt(o,n,r):o,c=this.decryptObjectRecursive(e.dict,n,r);return {type:"stream",dict:c,rawBytes:a,data:a,decode:$.createLazyDecoder(c,a)}}return e}};function St(t){if(!t)return [];if(Z(t))return [t];if(B(t)){let e=[];for(let n of t.items)e.push(...St(n));return e}return []}function Co(t){if(t.length===0)return new Uint8Array(0);let e=Math.max(0,t.length-1),n=t.reduce((s,o)=>s+o.length,0)+e,r=new Uint8Array(n),i=0;for(let s=0;s<t.length;s++)r.set(t[s],i),i+=t[s].length,s<t.length-1&&(r[i]=32,i+=1);return r}async function Lr(t,e){let n=St(t);if(n.length===0)return {combinedBytes:new Uint8Array(0),streamCount:0,streamByteLengths:[]};let r=[];for(let i of n){let s=await Promise.resolve(e(i));if(!L(s)){ue(`[WARN] Contents ref ${i.objNum} ${i.genNum} R is not a stream, skipping`);continue}try{let o=s.decode?await s.decode():await $.decodeStream(s);r.push(o);}catch(o){throw Ue(`[ContentStreamLoader] Failed to decode stream ${i.objNum} ${i.genNum} R:`,o),o}}return {combinedBytes:Co(r),streamCount:r.length,streamByteLengths:r.map(i=>i.length)}}function Ke(t){return it(t).commands}function it(t){let e=new ke(t),n=[],r=[],i=[],s=-1;for(;e.skipWhitespace(),!(e.getPosition()>=t.length);){let o=e.getPosition(),a=t[o];if(jr(a)){let c=e.readWord();if(!c)break;if(c==="BI"){let u=Mo(e,t);u?(n.push(u.command),r.push({start:o,end:u.end})):(n.push({op:"unknown",keyword:"BI",operands:[]}),r.push({start:o,end:e.getPosition()})),i.length=0,s=-1;continue}let l=ko(c,i);l&&(n.push(l),r.push({start:s>=0?s:o,end:e.getPosition()})),i.length=0,s=-1;}else {s<0&&(s=o);try{let c=ge(e);i.push(c);}catch{e.setPosition(o+1);}}}return {commands:n,ranges:r}}function jr(t){return t>=65&&t<=90||t>=97&&t<=122||t===39||t===34}var Ao=t=>{var r,i;let e=(r=t.entries.get("IM"))!=null?r:t.entries.get("ImageMask");if(e&&"type"in e&&e.type==="boolean"&&e.value)return 1;let n=(i=t.entries.get("CS"))!=null?i:t.entries.get("ColorSpace");if(!n||!("type"in n)||n.type!=="name")return 1;switch(n.value){case "RGB":case "DeviceRGB":case "CalRGB":return 3;case "CMYK":case "DeviceCMYK":return 4;default:return 1}};function Mo(t,e){var n,r,i,s,o;try{let a=new Map;for(;;){t.skipWhitespace();let g=t.getPosition();if(g>=e.length)return null;let x=e[g];if(x===47){let D=ge(t);if(!D||!("type"in D)||D.type!=="name")return null;t.skipWhitespace(),a.set(D.value,ge(t));}else if(jr(x)){if(t.readWord()==="ID")break;return null}else return null}let c={type:"dict",entries:a},l=t.getPosition();ve(e[l])&&(l+=e[l]===13&&e[l+1]===10?2:1);let u=(n=a.get("L"))!=null?n:a.get("Length"),d=A(u),f=a.has("F")||a.has("Filter"),m=-1;if(d!==null&&d>=0&&l+d<=e.length)m=l+d;else if(!f){let g=A((r=a.get("W"))!=null?r:a.get("Width")),x=A((i=a.get("H"))!=null?i:a.get("Height")),D=(o=A((s=a.get("BPC"))!=null?s:a.get("BitsPerComponent")))!=null?o:8;if(g!==null&&x!==null&&g>0&&x>0){let y=Math.ceil(g*D*Ao(c)/8)*x;l+y<=e.length&&(m=l+y);}}if(m<0){for(let g=l;g+1<e.length;g++){if(e[g]!==69||e[g+1]!==73||g>l&&!ve(e[g-1]))continue;let x=e[g+2];if(!(x!==void 0&&!ve(x)&&!wt(x))){m=Math.max(l,g-1);break}}if(m<0)return null}let h=new Uint8Array(e.subarray(l,m));t.setPosition(m),t.skipWhitespace();let p=t.getPosition();if(e[p]!==69||e[p+1]!==73)return null;let b=e[p+2];return b!==void 0&&!ve(b)&&!wt(b)?null:(t.setPosition(p+2),{command:{op:"inline_image",params:c,data:h},end:p+2})}catch{return null}}function ko(t,e){switch(t){case "q":return {op:"save_state"};case "Q":return {op:"restore_state"};case "cm":return {op:"set_ctm",matrix:_r(e)};case "w":return {op:"set_line_width",width:E(e,0)};case "J":return {op:"set_line_cap",cap:Math.floor(E(e,0))};case "j":return {op:"set_line_join",join:Math.floor(E(e,0))};case "M":return {op:"set_miter_limit",limit:E(e,0)};case "d":return {op:"set_dash",array:Ro(e,0),phase:E(e,1)};case "ri":return {op:"set_rendering_intent",intent:Ee(e,0)};case "gs":return {op:"set_graphics_state",name:Ee(e,0)};case "rg":return {op:"set_fill_color_rgb",r:E(e,0),g:E(e,1),b:E(e,2)};case "RG":return {op:"set_stroke_color_rgb",r:E(e,0),g:E(e,1),b:E(e,2)};case "g":return {op:"set_fill_gray",gray:E(e,0)};case "G":return {op:"set_stroke_gray",gray:E(e,0)};case "k":return {op:"set_fill_cmyk",c:E(e,0),m:E(e,1),y:E(e,2),k:E(e,3)};case "K":return {op:"set_stroke_cmyk",c:E(e,0),m:E(e,1),y:E(e,2),k:E(e,3)};case "cs":return {op:"set_fill_color_space",name:Ee(e,0)};case "CS":return {op:"set_stroke_color_space",name:Ee(e,0)};case "sc":case "scn":{let n=e[e.length-1],r=n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:void 0;return {op:"set_fill_color",values:(r?e.slice(0,-1):e).map(Ht),patternName:r}}case "SC":case "SCN":{let n=e[e.length-1],r=n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:void 0;return {op:"set_stroke_color",values:(r?e.slice(0,-1):e).map(Ht),patternName:r}}case "m":return {op:"move_to",x:E(e,0),y:E(e,1)};case "l":return {op:"line_to",x:E(e,0),y:E(e,1)};case "c":return {op:"curve_to",x1:E(e,0),y1:E(e,1),x2:E(e,2),y2:E(e,3),x3:E(e,4),y3:E(e,5)};case "v":return {op:"curve_to_v",x2:E(e,0),y2:E(e,1),x3:E(e,2),y3:E(e,3)};case "y":return {op:"curve_to",x1:E(e,0),y1:E(e,1),x2:E(e,2),y2:E(e,3),x3:E(e,2),y3:E(e,3)};case "re":return {op:"rect",x:E(e,0),y:E(e,1),w:E(e,2),h:E(e,3)};case "h":return {op:"close_path"};case "S":return {op:"stroke"};case "s":return {op:"close_stroke"};case "f":case "F":return {op:"fill"};case "f*":return {op:"fill_even_odd"};case "B":return {op:"fill_stroke"};case "B*":return {op:"fill_stroke_even_odd"};case "b":return {op:"close_fill_stroke"};case "b*":return {op:"close_fill_stroke_even_odd"};case "n":return {op:"end_path"};case "W":return {op:"clip"};case "W*":return {op:"clip_even_odd"};case "BT":return {op:"begin_text"};case "ET":return {op:"end_text"};case "Tf":return {op:"set_font",name:Ee(e,0),size:E(e,1)};case "Td":return {op:"move_text",tx:E(e,0),ty:E(e,1)};case "TD":return {op:"move_text_set_leading",tx:E(e,0),ty:E(e,1)};case "Tm":return {op:"set_text_matrix",matrix:_r(e)};case "T*":return {op:"next_line"};case "Tc":return {op:"set_char_spacing",spacing:E(e,0)};case "Tw":return {op:"set_word_spacing",spacing:E(e,0)};case "Tz":return {op:"set_horiz_scale",scale:E(e,0)};case "TL":return {op:"set_leading",leading:E(e,0)};case "Tr":return {op:"set_text_render",mode:E(e,0)};case "Ts":return {op:"set_text_rise",rise:E(e,0)};case "Tj":return {op:"show_string",data:Cn(e,0)};case "TJ":return {op:"show_strings",items:Eo(e,0)};case "'":return {op:"next_line_show_string",data:Cn(e,0)};case '"':return {op:"set_spacing_next_line_show_string",wordSpacing:E(e,0),charSpacing:E(e,1),data:Cn(e,2)};case "d0":return {op:"type3_glyph_width",wx:E(e,0),wy:E(e,1)};case "d1":return {op:"type3_glyph_width",wx:E(e,0),wy:E(e,1)};case "sh":return {op:"shade",name:Ee(e,0)};case "Do":return {op:"xobject",name:Ee(e,0)};case "BMC":return {op:"begin_marked_content",tag:Ee(e,0)};case "BDC":{let n=e[1];return {op:"begin_marked_content",tag:Ee(e,0),properties:k(n)?n:void 0}}case "EMC":return {op:"end_marked_content"};case "MP":case "DP":case "BX":case "EX":return null;default:return {op:"unknown",keyword:t,operands:[...e]}}}function E(t,e){return Ht(t[e])}function Ht(t){let e=A(t);return e===null?0:e}function Ee(t,e){let n=t[e];return n&&typeof n=="object"&&"type"in n&&n.type==="name"?n.value:""}function Cn(t,e){let n=t[e];return n&&typeof n=="object"&&"type"in n&&n.type==="string"?n.value:new Uint8Array(0)}function Ro(t,e){let n=t[e];return B(n)?n.items.map(Ht):[]}function Eo(t,e){let n=t[e];return B(n)?n.items.map(r=>{let i=A(r);return i!==null?i:r&&typeof r=="object"&&"type"in r&&r.type==="string"?r.value:0}):[]}function _r(t){return [E(t,0),E(t,1),E(t,2),E(t,3),E(t,4),E(t,5)]}var Yt=()=>({ctm:[1,0,0,1,0,0],font:"",fontSize:12,charSpacing:0,wordSpacing:0,horizScale:100,leading:0,textRise:0,textRenderMode:0,textMatrix:[1,0,0,1,0,0],textLineMatrix:[1,0,0,1,0,0],fillColorSpace:"DeviceGray",strokeColorSpace:"DeviceGray",fillColor:{space:"gray",gray:0},strokeColor:{space:"gray",gray:0},fillPatternName:null,strokePatternName:null,fillPattern:null,strokePattern:null,lineWidth:1,lineCap:0,lineJoin:0,miterLimit:10,dashArray:[],dashPhase:0,fillAlpha:1,strokeAlpha:1,blendMode:"Normal"});var X=(t,e)=>{let[n,r,i,s,o,a]=t,[c,l,u,d,f,m]=e;return [n*c+i*l,r*c+s*l,n*u+i*d,r*u+s*d,n*f+i*m+o,r*f+s*m+a]};var st=t=>{let e=t[0]*t[3]-t[1]*t[2];if(!Number.isFinite(e)||Math.abs(e)<1e-12)return null;let n=t[3]/e,r=-t[1]/e,i=-t[2]/e,s=t[0]/e;return [n,r,i,s,-(n*t[4]+i*t[5]),-(r*t[4]+s*t[5])]};var Nr=t=>t===" "||t===" "||t==="\r"||t===`
2
+ `||t==="\f"||t==="\0";function Wr(t){let e=[],n=[e],r=0;for(;r<t.length;){let i=t[r];if(Nr(i)){r++;continue}if(i==="%"){for(;r<t.length&&t[r]!==`
3
+ `&&t[r]!=="\r";)r++;continue}if(i==="{"){let c=[];n[n.length-1].push(c),n.push(c),r++;continue}if(i==="}"){if(n.length===1)throw new Error("Unbalanced } in PostScript function");n.pop(),r++;continue}let s=r;for(;s<t.length&&!Nr(t[s])&&t[s]!=="{"&&t[s]!=="}"&&t[s]!=="%";)s++;let o=t.slice(r,s);r=s;let a=Number(o);Number.isFinite(a)&&/^[-+.0-9eE]+$/.test(o)?n[n.length-1].push(a):n[n.length-1].push(o.toLowerCase());}if(n.length!==1)throw new Error("Unbalanced { in PostScript function");return e.length===1&&Array.isArray(e[0])?e[0]:e}var An=Math.PI/180;function V(t,e){if(typeof t!="number")throw new Error(`${e}: expected number`);return t}function oe(t,e){if(typeof t!="number")throw new Error(`${e}: expected integer`);return Math.trunc(t)}function $r(t,e){if(typeof t!="boolean")throw new Error(`${e}: expected boolean`);return t}function Vr(t,e,n){let r=[...e],i=0,s=d=>{if(r.length>=100)throw new Error("PostScript stack overflow");r.push(d);},o=d=>{let f=r.pop();if(f===void 0)throw new Error(`${d}: stack underflow`);return f},a=d=>{let f=o(d);if(!Array.isArray(f))throw new Error(`${d}: expected procedure`);return f},c=d=>{for(let f of d){if(++i>1e4)throw new Error("PostScript op budget exceeded");if(typeof f=="number"){s(f);continue}if(Array.isArray(f)){s(f);continue}switch(f){case "add":{let m=V(o(f),f),h=V(o(f),f);s(h+m);break}case "sub":{let m=V(o(f),f),h=V(o(f),f);s(h-m);break}case "mul":{let m=V(o(f),f),h=V(o(f),f);s(h*m);break}case "div":{let m=V(o(f),f),h=V(o(f),f);s(m===0?0:h/m);break}case "idiv":{let m=oe(o(f),f),h=oe(o(f),f);s(m===0?0:Math.trunc(h/m));break}case "mod":{let m=oe(o(f),f),h=oe(o(f),f);s(m===0?0:h%m);break}case "neg":s(-V(o(f),f));break;case "abs":s(Math.abs(V(o(f),f)));break;case "ceiling":s(Math.ceil(V(o(f),f)));break;case "floor":s(Math.floor(V(o(f),f)));break;case "round":s(Math.round(V(o(f),f)));break;case "truncate":s(Math.trunc(V(o(f),f)));break;case "sqrt":s(Math.sqrt(Math.max(0,V(o(f),f))));break;case "sin":s(Math.sin(V(o(f),f)*An));break;case "cos":s(Math.cos(V(o(f),f)*An));break;case "atan":{let m=V(o(f),f),h=V(o(f),f),p=Math.atan2(h,m)/An;p<0&&(p+=360),s(p);break}case "exp":{let m=V(o(f),f),h=V(o(f),f);s(Math.pow(h,m));break}case "ln":s(Math.log(Math.max(Number.MIN_VALUE,V(o(f),f))));break;case "log":s(Math.log10(Math.max(Number.MIN_VALUE,V(o(f),f))));break;case "cvi":s(Math.trunc(V(o(f),f)));break;case "cvr":s(V(o(f),f));break;case "eq":{let m=o(f),h=o(f);s(h===m);break}case "ne":{let m=o(f),h=o(f);s(h!==m);break}case "gt":{let m=V(o(f),f),h=V(o(f),f);s(h>m);break}case "ge":{let m=V(o(f),f),h=V(o(f),f);s(h>=m);break}case "lt":{let m=V(o(f),f),h=V(o(f),f);s(h<m);break}case "le":{let m=V(o(f),f),h=V(o(f),f);s(h<=m);break}case "and":{let m=o(f),h=o(f);s(typeof h=="boolean"&&typeof m=="boolean"?h&&m:oe(h,f)&oe(m,f));break}case "or":{let m=o(f),h=o(f);s(typeof h=="boolean"&&typeof m=="boolean"?h||m:oe(h,f)|oe(m,f));break}case "xor":{let m=o(f),h=o(f);s(typeof h=="boolean"&&typeof m=="boolean"?h!==m:oe(h,f)^oe(m,f));break}case "not":{let m=o(f);s(typeof m=="boolean"?!m:~oe(m,f));break}case "bitshift":{let m=oe(o(f),f),h=oe(o(f),f);s(m>=0?h<<m:h>>-m);break}case "true":s(true);break;case "false":s(false);break;case "pop":o(f);break;case "exch":{let m=o(f),h=o(f);s(m),s(h);break}case "dup":{let m=o(f);s(m),s(m);break}case "copy":{let m=oe(o(f),f);if(m<0||m>r.length)throw new Error("copy: bad count");let h=r.length-m;for(let p=0;p<m;p++)s(r[h+p]);break}case "index":{let m=oe(o(f),f);if(m<0||m>=r.length)throw new Error("index: out of range");s(r[r.length-1-m]);break}case "roll":{let m=oe(o(f),f),h=oe(o(f),f);if(h<0||h>r.length)throw new Error("roll: bad count");if(h>0&&m!==0){let p=r.splice(r.length-h,h),b=(m%h+h)%h;r.push(...p.slice(h-b),...p.slice(0,h-b));}break}case "if":{let m=a(f);$r(o(f),f)&&c(m);break}case "ifelse":{let m=a(f),h=a(f),p=$r(o(f),f);c(p?h:m);break}default:throw new Error(`Unknown PostScript operator: ${f}`)}}};c(t);let l=Math.floor(n.length/2);if(r.length<l)throw new Error("PostScript function returned too few values");return r.slice(r.length-l).map((d,f)=>{if(typeof d!="number"&&typeof d!="boolean")throw new Error("PostScript function returned a non-numeric value");let m=typeof d=="number"?d:d?1:0,h=n[f*2],p=n[f*2+1];return Math.max(h,Math.min(p,m))})}var Kt=A,Ce=t=>!t||!B(t)?null:t.items.map(e=>{var n;return (n=Kt(e))!=null?n:0}),ae=(t,e)=>{if(t){if(!Z(t))return t;try{return e(t)}catch{return}}},Gr=new WeakMap,Oo=(t,e,n)=>{var c;let r=e*n,i=r>>3,s=r&7,o=n,a=0;for(;o>0;){let l=8-s,u=Math.min(l,o),f=((c=t[i])!=null?c:0)>>l-u&(1<<u)-1;a=a*(1<<u)+f,o-=u,s+=u,s===8&&(s=0,i++);}return a},To=(t,e)=>t.map((n,r)=>{let i=e[r*2],s=e[r*2+1];return i===void 0||s===void 0?n:Math.max(i,Math.min(s,n))}),zt=(t,e,n)=>{var l,u,d,f,m,h,p,b,g,x,D,y,w,v,S,P,M,C,F,R,T,U,N,j,J,ce;let r=ae(t,n);if(!r)return null;let i=L(r)?r.dict:k(r)?r:null;if(!i)return null;let s=Math.floor((l=Kt(ae(i.entries.get("FunctionType"),n)))!=null?l:-1),o=(u=Ce(ae(i.entries.get("Domain"),n)))!=null?u:[0,1],a=Math.max(1,Math.floor(o.length/2)),c=[];for(let I=0;I<a;I++){let _=(d=e[I])!=null?d:0,W=(f=o[I*2])!=null?f:0,K=(m=o[I*2+1])!=null?m:1;c.push(Math.max(Math.min(W,K),Math.min(Math.max(W,K),_)));}if(s===2){let I=(h=Kt(ae(i.entries.get("N"),n)))!=null?h:1,_=(p=Ce(ae(i.entries.get("C0"),n)))!=null?p:[0],W=(b=Ce(ae(i.entries.get("C1"),n)))!=null?b:[1],K=Math.pow(c[0],I);return _.map((le,ee)=>{var te;return le+K*(((te=W[ee])!=null?te:1)-le)})}if(s===0){if(!L(r))return null;let I=((g=Ce(ae(i.entries.get("Size"),n)))!=null?g:[2]).map(H=>Math.max(1,Math.floor(H)));if(I.length<a||a>8)return null;let _=Math.floor((x=Kt(ae(i.entries.get("BitsPerSample"),n)))!=null?x:8);if(![1,2,4,8,12,16,24,32].includes(_))return null;let W=Ce(ae(i.entries.get("Range"),n));if(!W||W.length<2)return null;let K=Math.floor(W.length/2),le=[];for(let H=0;H<a;H++)le.push(0,I[H]-1);let ee=(D=Ce(ae(i.entries.get("Encode"),n)))!=null?D:le,te=(y=Ce(ae(i.entries.get("Decode"),n)))!=null?y:W,Fe=_===32?4294967295:(1<<_)-1,re;try{re=$.decodeStreamSync(r);}catch{return null}let ye=[],Be=[];for(let H=0;H<a;H++){let he=(w=o[H*2])!=null?w:0,we=(v=o[H*2+1])!=null?v:1,ne=(S=ee[H*2])!=null?S:0,mt=(P=ee[H*2+1])!=null?P:I[H]-1,_t=we!==he?(c[H]-he)/(we-he):0,lr=Math.max(0,Math.min(I[H]-1,ne+_t*(mt-ne))),ur=Math.min(I[H]-1,Math.floor(lr));ye.push(ur),Be.push(Math.max(0,Math.min(1,lr-ur)));}let De=[],ht=1;for(let H=0;H<a;H++)De.push(ht),ht*=I[H];let G=new Array(K).fill(0),pe=1<<a;for(let H=0;H<pe;H++){let he=1,we=0;for(let ne=0;ne<a;ne++)if(H>>ne&1){if(Be[ne]===0){he=0;break}he*=Be[ne],we+=Math.min(I[ne]-1,ye[ne]+1)*De[ne];}else he*=1-Be[ne],we+=ye[ne]*De[ne];if(he!==0)for(let ne=0;ne<K;ne++)G[ne]+=he*Oo(re,we*K+ne,_);}let Lt=G.map((H,he)=>{var mt,_t;let we=(mt=te[he*2])!=null?mt:0,ne=(_t=te[he*2+1])!=null?_t:1;return we+H/Fe*(ne-we)});return To(Lt,W)}if(s===3){let I=(M=Ce(ae(i.entries.get("Bounds"),n)))!=null?M:[],_=(C=Ce(ae(i.entries.get("Encode"),n)))!=null?C:[],W=ae(i.entries.get("Functions"),n);if(!W||!B(W))return null;let K=W.items,le=c[0],ee=0;for(let De=0;De<I.length&&le>=I[De];De++)ee=De+1;let te=ee===0?(F=o[0])!=null?F:0:(T=(R=I[ee-1])!=null?R:o[0])!=null?T:0,Fe=ee<I.length?(N=(U=I[ee])!=null?U:o[1])!=null?N:1:(j=o[1])!=null?j:1,re=(J=_[ee*2])!=null?J:0,ye=(ce=_[ee*2+1])!=null?ce:1,Be=te===Fe?re:re+(le-te)/(Fe-te)*(ye-re);return zt(K[ee],[Be],n)}if(s===4){if(!L(r))return null;let I=Ce(ae(i.entries.get("Range"),n));if(!I||I.length<2)return null;try{let _=Gr.get(r);if(!_){let W=new TextDecoder("latin1").decode($.decodeStreamSync(r));_=Wr(W),Gr.set(r,_);}return Vr(_,c,I)}catch{return null}}return null},qt=(t,e,n)=>zt(t,[e],n),Mn=(t,e,n)=>{let r=ae(t,n);if(!r)return null;if(B(r)){let i=[];for(let s of r.items){let o=zt(s,e,n);if(!o)return null;i.push(...o);}return i}return zt(r,e,n)};var Xr=t=>Math.max(1,Math.min(2048,Math.ceil(t)));function Hr(t,e,n,r){if(![...t,e,n,...r].every(Number.isFinite)||Math.abs(e)<1e-9||Math.abs(n)<1e-9)return null;let i=Math.hypot(r[0],r[1]),s=Math.hypot(r[2],r[3]);if(i<1e-12||s<1e-12)return null;let o=Xr(Math.abs(e)*i),a=Xr(Math.abs(n)*s),[c,l]=t,u=[o/e,0,0,-a/n,-c*o/e,(l+n)*a/n],d=st(u);return d?{cellPxW:o,cellPxH:a,contentTransform:u,paintTransform:d}:null}var ot=5e4,Rn=class{constructor(e){this.bytes=e;this.bitPos=0;}get hasData(){return this.bitPos<this.bytes.length*8}get remainingBits(){return Math.max(0,this.bytes.length*8-this.bitPos)}read(e){var i;let n=0,r=e;for(;r>0;){let s=this.bitPos>>3,a=8-(this.bitPos&7),c=Math.min(a,r),u=((i=this.bytes[s])!=null?i:0)>>a-c&(1<<c)-1;n=n*(1<<c)+u,this.bitPos+=c,r-=c;}return n}alignToByte(){this.bitPos=this.bitPos+7&-8;}},Io=t=>t>=32?4294967295:(1<<t)-1,kn=(t,e,n,r)=>n+t/Io(e)*(r-n);function Yr(t,e,n,r){var y;let i=new Rn(n),s=[],{bitsPerCoordinate:o,bitsPerComponent:a,bitsPerFlag:c,decode:l,numColorComponents:u}=e;if(l.length<4+u*2)return [];let d=()=>[kn(i.read(o),o,l[0],l[1]),kn(i.read(o),o,l[2],l[3])],f=()=>{let w=[];for(let v=0;v<u;v++)w.push(kn(i.read(a),a,l[4+v*2],l[5+v*2]));return r(w)},m=2*o+u*a;if(t===4){let w=c+m,v=null,S=null,P=null,M=()=>{let C=i.read(c),[F,R]=d(),T=f();return i.alignToByte(),{flag:C,v:{x:F,y:R,color:T}}};for(;i.remainingBits>=w&&s.length<ot;){let C=M();if(C.flag===0||v===null||S===null||P===null){if(v=C.v,i.remainingBits<w||(S=M().v,i.remainingBits<w))break;P=M().v;}else C.flag===1?(v=S,S=P,P=C.v):(S=P,P=C.v);Ft(s,v,S,P);}return s}if(t===5){let w=Math.max(2,Math.floor((y=e.verticesPerRow)!=null?y:2)),v=[];for(;i.remainingBits>=w*m;){let S=[];for(let P=0;P<w;P++){let[M,C]=d();S.push({x:M,y:C,color:f()});}if(v.push(S),v.length*w>ot)break}for(let S=0;S+1<v.length&&s.length<ot;S++)for(let P=0;P+1<w&&s.length<ot;P++)Ft(s,v[S][P],v[S][P+1],v[S+1][P]),Ft(s,v[S][P+1],v[S+1][P+1],v[S+1][P]);return s}let h=t===6?12:16,p=t===6?8:12,b=null,g=null,x=h*2*o+4*u*a,D=p*2*o+2*u*a;for(;i.remainingBits>=c+D&&s.length<ot;){let w=i.read(c),v,S;if(w===0||!b||!g){if(i.remainingBits<x)break;v=[];for(let P=0;P<h;P++)v.push(d());S=[f(),f(),f(),f()];}else {let P=[];for(let T=0;T<p;T++)P.push(d());let M=f(),C=f(),F,R;w===1?(F=[b[3],b[4],b[5],b[6]],R=[g[1],g[2]]):w===2?(F=[b[6],b[7],b[8],b[9]],R=[g[2],g[3]]):(F=[b[9],b[10],b[11],b[0]],R=[g[3],g[0]]),v=[...F,...P],S=[R[0],R[1],M,C];}if(!Number.isFinite(v[0][0]))break;Uo(s,v,S),b=v,g=S;}return s}var Ft=(t,e,n,r)=>{t.push({p:[[e.x,e.y],[n.x,n.y],[r.x,r.y]],c:[e.color,n.color,r.color]});},Jt=(t,e,n,r,i)=>{let s=1-i,o=s*s*s,a=3*s*s*i,c=3*s*i*i,l=i*i*i;return [o*t[0]+a*e[0]+c*n[0]+l*r[0],o*t[1]+a*e[1]+c*n[1]+l*r[1]]},Bo=6,Uo=(t,e,n)=>{let[r,i,s,o,a,c,l,u,d,f,m,h]=e,[p,b,g,x]=n,D=(S,P)=>{let M=Jt(r,i,s,o,P),C=Jt(f,d,u,l,P),F=Jt(r,h,m,f,S),R=Jt(o,a,c,l,S),T=(1-S)*M[0]+S*C[0]+(1-P)*F[0]+P*R[0]-((1-S)*(1-P)*r[0]+S*(1-P)*f[0]+(1-S)*P*o[0]+S*P*l[0]),U=(1-S)*M[1]+S*C[1]+(1-P)*F[1]+P*R[1]-((1-S)*(1-P)*r[1]+S*(1-P)*f[1]+(1-S)*P*o[1]+S*P*l[1]);return [T,U]},y=(S,P)=>[(1-S)*(1-P)*p[0]+(1-S)*P*b[0]+S*P*g[0]+S*(1-P)*x[0],(1-S)*(1-P)*p[1]+(1-S)*P*b[1]+S*P*g[1]+S*(1-P)*x[1],(1-S)*(1-P)*p[2]+(1-S)*P*b[2]+S*P*g[2]+S*(1-P)*x[2]],w=Bo,v=[];for(let S=0;S<=w;S++){let P=[];for(let M=0;M<=w;M++){let C=M/w,F=S/w,[R,T]=D(C,F);P.push({x:R,y:T,color:y(C,F)});}v.push(P);}for(let S=0;S<w;S++)for(let P=0;P<w;P++){if(t.length+2>ot)return;Ft(t,v[S][P],v[S][P+1],v[S+1][P]),Ft(t,v[S][P+1],v[S+1][P+1],v[S+1][P]);}};function Kr(t,e,n,r){let i=new Uint8ClampedArray(n*r*4),s=(o,a)=>[e[0]*o+e[2]*a+e[4],e[1]*o+e[3]*a+e[5]];for(let o of t){let[a,c,l]=o.p.map(([p,b])=>s(p,b)),u=(c[0]-a[0])*(l[1]-a[1])-(c[1]-a[1])*(l[0]-a[0]);if(Math.abs(u)<1e-9)continue;let d=Math.max(0,Math.floor(Math.min(a[0],c[0],l[0]))),f=Math.min(n-1,Math.ceil(Math.max(a[0],c[0],l[0]))),m=Math.max(0,Math.floor(Math.min(a[1],c[1],l[1]))),h=Math.min(r-1,Math.ceil(Math.max(a[1],c[1],l[1])));for(let p=m;p<=h;p++)for(let b=d;b<=f;b++){let g=b+.5,x=p+.5,D=((c[0]-g)*(l[1]-x)-(c[1]-x)*(l[0]-g))/u,y=((l[0]-g)*(a[1]-x)-(l[1]-x)*(a[0]-g))/u,w=1-D-y;if(D<-1e-6||y<-1e-6||w<-1e-6)continue;let v=(p*n+b)*4;i[v]=255*(D*o.c[0][0]+y*o.c[1][0]+w*o.c[2][0]),i[v+1]=255*(D*o.c[0][1]+y*o.c[1][1]+w*o.c[2][1]),i[v+2]=255*(D*o.c[0][2]+y*o.c[1][2]+w*o.c[2][2]),i[v+3]=255;}}return i}var Lo=12,_o=(t,e,n)=>t.minX-n<=e.maxX&&e.minX-n<=t.maxX&&t.minY-n<=e.maxY&&e.minY-n<=t.maxY,jo=(t,e)=>({minX:Math.min(t.minX,e.minX),minY:Math.min(t.minY,e.minY),maxX:Math.max(t.maxX,e.maxX),maxY:Math.max(t.maxY,e.maxY)});function zr(t,e,n,r){if(!t.length)return [];let i=Math.max(2,.01*Math.hypot(n,r)),s=[...e].sort((u,d)=>u-d),o=(u,d)=>{let f=0,m=s.length-1;for(;f<=m;){let h=f+m>>1,p=s[h];if(p<=u)f=h+1;else if(p>=d)m=h-1;else return true}return false},a=[],c=null;for(let u of t)c!==null&&u.fromXObject===c.fromXObject&&u.pathStartIndex-c.operatorEnd<=Lo&&!o(c.operatorEnd,u.pathStartIndex)&&_o(c.bbox,u.bbox,i)&&c?(c.bbox=jo(c.bbox,u.bbox),c.operatorEnd=Math.max(c.operatorEnd,u.paintIndex),c.operatorStart=Math.min(c.operatorStart,u.pathStartIndex),c.paintOperatorIndices.push(u.paintIndex)):(c&&a.push(c),c={bbox:{...u.bbox},operatorStart:u.pathStartIndex,operatorEnd:u.paintIndex,paintOperatorIndices:[u.paintIndex],ctmAtStart:[...u.ctmAtStart],fromXObject:u.fromXObject});c&&a.push(c);let l=n*r;return a.filter(u=>{let d=u.bbox.maxX-u.bbox.minX,f=u.bbox.maxY-u.bbox.minY;return d>0&&f>0&&d*f<=.9*l})}var vt=(t,e)=>t[e],Ae=(t,e)=>t[e]<<8|t[e+1],qr=(t,e)=>t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3],Jr=(t,e,n)=>{let r=0;for(let i=0;i<n;i+=1)r=r*256+t[e+i];return r};var No=15,$o=17,Wo=1230,Vo=1206,Go=1207,Zt=(t,e)=>{let n=Ae(t,e);if(n===0)return {offsets:[],count:0,end:e+2};let r=vt(t,e+2),i=e+3,s=i+(n+1)*r-1,o=[];for(let a=0;a<=n;a+=1)o.push(s+Jr(t,i+a*r,r));return {offsets:o,count:n,end:o[n]}},Xo=(t,e,n)=>{let r=new Map,i=[],s=e;for(;s<n;){let o=t[s];if(o<=21){let a=o;s+=1,o===12&&(a=1200+t[s],s+=1),r.set(a,i),i=[];}else if(o===28)i.push((t[s+1]<<8|t[s+2])<<16>>16),s+=3;else if(o===29)i.push(t[s+1]<<24|t[s+2]<<16|t[s+3]<<8|t[s+4]),s+=5;else if(o===30){s+=1;let a="",c=false;for(;s<n&&!c;){let l=t[s];s+=1;for(let u of [l>>4,l&15])if(u<=9)a+=String(u);else if(u===10)a+=".";else if(u===11)a+="E";else if(u===12)a+="E-";else if(u===14)a+="-";else if(u===15){c=true;break}}i.push(parseFloat(a)||0);}else o>=32&&o<=246?(i.push(o-139),s+=1):o>=247&&o<=250?(i.push((o-247)*256+t[s+1]+108),s+=2):o>=251&&o<=254?(i.push(-(o-251)*256-t[s+1]-108),s+=2):s+=1;}return r},Ho=(t,e,n)=>{let r=new Array(n).fill(0);if(e===0){for(let a=1;a<n;a+=1)r[a]=a;return r}if(e===1||e===2)return null;let i=vt(t,e),s=e+1,o=1;if(i===0)for(;o<n;)r[o]=Ae(t,s),s+=2,o+=1;else if(i===1||i===2){let a=i===1?1:2;for(;o<n;){let c=Ae(t,s);s+=2;let l=a===1?vt(t,s):Ae(t,s);s+=a;for(let u=0;u<=l&&o<n;u+=1)r[o]=c+u,o+=1;}}else return null;return r},Yo=t=>{var e,n,r,i,s;try{if(t.length<4)return null;let o=vt(t,2),a=Zt(t,o),c=Zt(t,a.end),l=Zt(t,c.end);if(c.count<1)return null;let u=Xo(t,c.offsets[0],c.offsets[1]);if(u.has(Wo)||((n=(e=u.get(Vo))==null?void 0:e[0])!=null?n:2)!==2)return null;let f=(r=u.get($o))==null?void 0:r[0];if(f==null)return null;let h=Zt(t,f).count;if(h<1)return null;let p=(s=(i=u.get(No))==null?void 0:i[0])!=null?s:0,b=Ho(t,p,h);if(!b)return null;let g=u.get(Go),x=1e3;if(g&&g[0]>0){let D=Math.round(1/g[0]);D>=16&&D<=16384&&(x=D);}return {numGlyphs:h,sids:b,stringIndex:l,bytes:t,unitsPerEm:x}}catch{return null}},xe=class{constructor(){this.buf=[];}u8(e){this.buf.push(e&255);}u16(e){this.u8(e>>8),this.u8(e);}i16(e){this.u16(e&65535);}u32(e){this.u8(e>>>24),this.u8(e>>>16),this.u8(e>>>8),this.u8(e);}i32(e){this.u32(e>>>0);}bytes(e){for(let n=0;n<e.length;n+=1)this.buf.push(e[n]);}tag(e){for(let n=0;n<4;n+=1)this.u8(e.charCodeAt(n));}utf16be(e){for(let n=0;n<e.length;n+=1)this.u16(e.charCodeAt(n));}get length(){return this.buf.length}toUint8Array(){return Uint8Array.from(this.buf)}},Zr=t=>{var n,r,i;let e=0;for(let s=0;s<t.length;s+=4){let o=(t[s]<<24)+(((n=t[s+1])!=null?n:0)<<16)+(((r=t[s+2])!=null?r:0)<<8)+((i=t[s+3])!=null?i:0);e=e+(o>>>0)>>>0;}return e>>>0},Ko=t=>{let e=t.length+1,n=new xe,r=Math.floor(Math.log2(Math.max(1,e))),i=2*2**r,s=16+e*8;n.u16(4),n.u16(s),n.u16(0),n.u16(e*2),n.u16(i),n.u16(r),n.u16(e*2-i);for(let[o]of t)n.u16(o);n.u16(65535),n.u16(0);for(let[o]of t)n.u16(o);n.u16(65535);for(let[o,a]of t)n.u16(a-o&65535);n.u16(1);for(let o=0;o<e;o+=1)n.u16(0);return n.toUint8Array()},zo=t=>{let e=new xe,n=16+t.length*12;e.u16(12),e.u16(0),e.u32(n),e.u32(0),e.u32(t.length);for(let[r,i]of t)e.u32(r),e.u32(r),e.u32(i);return e.toUint8Array()},qo=t=>{let e=t.filter(([u])=>u<=65535),n=t.filter(([u])=>u>65535),r=Ko(e),i=n.length?zo(t):null,s=[{platform:0,encoding:3,isFormat12:false},{platform:3,encoding:1,isFormat12:false}];i&&(s.push({platform:0,encoding:4,isFormat12:true}),s.push({platform:3,encoding:10,isFormat12:true}));let o=4+s.length*8,a=o,c=o+r.length,l=new xe;l.u16(0),l.u16(s.length);for(let u of s)l.u16(u.platform),l.u16(u.encoding),l.u32(u.isFormat12?c:a);return l.bytes(r),i&&l.bytes(i),l.toUint8Array()},Jo=t=>{let e=new xe;return e.u32(65536),e.u32(65536),e.u32(0),e.u32(1594834165),e.u16(11),e.u16(t),e.u32(0),e.u32(0),e.u32(0),e.u32(0),e.i16(-t),e.i16(-t),e.i16(2*t),e.i16(2*t),e.u16(0),e.u16(8),e.i16(2),e.i16(0),e.i16(0),e.toUint8Array()},Zo=(t,e)=>{let n=new xe;return n.u32(65536),n.i16(Math.round(t*.8)),n.i16(-Math.round(t*.2)),n.i16(0),n.u16(t),n.i16(0),n.i16(0),n.i16(t),n.i16(1),n.i16(0),n.i16(0),n.i16(0),n.i16(0),n.i16(0),n.i16(0),n.i16(0),n.u16(e),n.toUint8Array()},Qo=(t,e)=>{let n=new xe;for(let r=0;r<e;r+=1)n.u16(t),n.i16(0);return n.toUint8Array()},ea=t=>{let e=new xe;return e.u32(20480),e.u16(t),e.toUint8Array()},ta=()=>{let t=new xe;return t.u32(196608),t.i32(0),t.i16(-100),t.i16(50),t.u32(0),t.u32(0),t.u32(0),t.u32(0),t.u32(0),t.toUint8Array()},na=(t,e,n)=>{let r=new xe;r.u16(4),r.i16(Math.round(t*.5)),r.u16(400),r.u16(5),r.u16(0),r.i16(650),r.i16(600),r.i16(0),r.i16(75),r.i16(650),r.i16(600),r.i16(0),r.i16(350),r.i16(50),r.i16(Math.round(t*.25)),r.i16(0);for(let i=0;i<10;i+=1)r.u8(0);return r.u32(0),r.u32(0),r.u32(0),r.u32(0),r.tag("NPDF"),r.u16(64),r.u16(e&65535),r.u16(n&65535),r.i16(Math.round(t*.8)),r.i16(-Math.round(t*.2)),r.i16(0),r.u16(Math.round(t*1)),r.u16(Math.round(t*.25)),r.u32(1),r.u32(0),r.i16(Math.round(t*.5)),r.i16(Math.round(t*.7)),r.u16(0),r.u16(32),r.u16(0),r.toUint8Array()},ra=()=>{let t=[{nameId:1,value:"NamahaPDF Embedded"},{nameId:2,value:"Regular"},{nameId:4,value:"NamahaPDF Embedded"},{nameId:6,value:"NamahaPDF-Embedded"}],e=6+t.length*12,n=new xe;n.u16(0),n.u16(t.length),n.u16(e);let r=0;for(let i of t){let s=i.value.length*2;n.u16(3),n.u16(1),n.u16(1033),n.u16(i.nameId),n.u16(s),n.u16(r),r+=s;}for(let i of t)n.utf16be(i.value);return n.toUint8Array()},ia=t=>{let e=[...t].sort((u,d)=>u.tag<d.tag?-1:u.tag>d.tag?1:0),n=e.length,r=Math.floor(Math.log2(n)),i=16*2**r,s=new xe;s.u32(1330926671),s.u16(n),s.u16(i),s.u16(r),s.u16(n*16-i);let o=12+n*16,a=-1,c=e.map(u=>{let d=u.data.length+3&-4,f={tag:u.tag,data:u.data,offset:o,checksum:Zr(u.data),len:u.data.length};return u.tag==="head"&&(a=o),o+=d,f});for(let u of c)s.tag(u.tag),s.u32(u.checksum),s.u32(u.offset),s.u32(u.len);let l=new Uint8Array(o);l.set(s.toUint8Array(),0);for(let u of c)l.set(u.data,u.offset);if(a>=0){let u=2981146554-Zr(l)>>>0;new DataView(l.buffer).setUint32(a+8,u);}return l},sa=[0,32,33,34,35,36,37,38,8217,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,8216,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,8260,165,402,167,164,39,8220,171,8249,8250,64257,64258,8211,8224,8225,183,182,8226,8218,8222,8221,187,8230,8240,191,96,180,710,732,175,728,729,168,730,184,733,731,711,8212,198,170,321,216,338,186,230,305,322,248,339,223,185,172,181,8482,208,189,177,222,188,247,166,176,254,190,178,174,8722,240,215,179,169,193,194,196,192,197,195,199,201,202,203,200,205,206,207,204,209,211,212,214,210,213,352,218,219,220,217,221,376,381,225,226,228,224,229,227,231,233,234,235,232,237,238,239,236,241,243,244,246,242,245,353,250,251,252,249,253,255,382,0,0,0,0,0,0,0,0,8229,8228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64256,64259,64260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8210,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],oa=t=>{var i;let e=t.includes(".")?t.slice(0,t.indexOf(".")):t;if(!e)return null;let n=/^uni([0-9A-Fa-f]{4})/.exec(e);if(n)return parseInt(n[1],16);let r=/^u([0-9A-Fa-f]{4,6})$/.exec(e);return r?parseInt(r[1],16):Array.from(e).length===1&&(i=e.codePointAt(0))!=null?i:null},aa=(t,e)=>{var a;let n=t.sids[e];if(n<391){let c=(a=sa[n])!=null?a:0;return c>0?c:null}let r=n-391;if(r<0||r>=t.stringIndex.count)return null;let i=t.stringIndex.offsets[r],s=t.stringIndex.offsets[r+1],o="";for(let c=i;c<s;c+=1)o+=String.fromCharCode(t.bytes[c]);return oa(o)},Qr=t=>{let e=Yo(t);if(!e)return null;let n=new Map;for(let c=1;c<e.numGlyphs;c+=1){let l=aa(e,c);l!=null&&l>0&&!n.has(l)&&n.set(l,c);}if(n.size===0)return null;let r=[...n.entries()].sort((c,l)=>c[0]-l[0]),i=r[0][0],s=r[r.length-1][0],{unitsPerEm:o,numGlyphs:a}=e;try{return ia([{tag:"CFF ",data:e.bytes},{tag:"OS/2",data:na(o,i,Math.min(65535,s))},{tag:"cmap",data:qo(r)},{tag:"head",data:Jo(o)},{tag:"hhea",data:Zo(o,a)},{tag:"hmtx",data:Qo(o,a)},{tag:"maxp",data:ea(a)},{tag:"name",data:ra()},{tag:"post",data:ta()}])}catch{return null}};function ca(t){return t&&typeof t=="object"&&"type"in t&&t.type==="name"&&"value"in t?String(t.value):""}function ei(t,e){if(!t)return null;let n=o=>{let a=e(o);if(!a||!L(a))return null;try{return $.decodeStreamSync(a)}catch{return null}},r=n(t.entries.get("FontFile2"));if(r&&r.length>0)return {bytes:r,kind:"truetype"};let i=e(t.entries.get("FontFile3"));if(i&&L(i)){let o=n(i);if(o&&o.length>0){let c=ca(i.dict.entries.get("Subtype"))==="OpenType"?"opentype":"cff";return {bytes:o,kind:c}}}let s=n(t.entries.get("FontFile"));return s&&s.length>0?{bytes:s,kind:"type1"}:null}function la(t){return t==="truetype"||t==="opentype"}function ua(t){if(t.length<12)return false;let e=Ae(t,4),n=-1;for(let i=0;i<e;i+=1){let s=12+i*16;if(s+16>t.length)return false;if(t[s]===99&&t[s+1]===109&&t[s+2]===97&&t[s+3]===112){n=qr(t,s+8);break}}if(n<0||n+4>t.length)return false;let r=Ae(t,n+2);for(let i=0;i<r;i+=1){let s=n+4+i*8;if(s+8>t.length)break;let o=Ae(t,s),a=Ae(t,s+2);if(o===3&&(a===1||a===10)||o===0)return true}return false}function fa(t){let e=2166136261,n=t.length,r=Math.max(1,Math.floor(n/4096));for(let i=0;i<n;i+=r)e^=t[i],e=Math.imul(e,16777619);return e^=n,e=Math.imul(e,16777619),`npf-${(e>>>0).toString(16)}`}function Tn(t){let e=null;return la(t.kind)?e=t.bytes:t.kind==="cff"&&(e=Qr(t.bytes)),!e||!ua(e)?null:{family:fa(t.bytes),bytes:e}}var En=new Map,On=new Map,da=()=>typeof document!="undefined"&&typeof globalThis.FontFace!="undefined"&&!!document.fonts;async function ti(t){if(!da())return null;let e=Tn(t);if(!e)return null;let{family:n,bytes:r}=e,i=En.get(n);if(i==="loaded")return n;if(i==="failed")return null;let s=On.get(n);if(s)return s;let o=r,a=(async()=>{try{let c=o.slice().buffer,l=new FontFace(n,c);return await l.load(),document.fonts.add(l),En.set(n,"loaded"),n}catch{return En.set(n,"failed"),null}finally{On.delete(n);}})();return On.set(n,a),a}var ni=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],ri=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],ii=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],si=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],oi=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],ai=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]],Qt=class{constructor(e,n={}){var i;if(!e||typeof e.next!="function")throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e,this.eof=false,this.encoding=n.K||0,this.eoline=n.EndOfLine||false,this.byteAlign=n.EncodedByteAlign||false,this.columns=n.Columns||1728,this.rows=n.Rows||0,this.eoblock=(i=n.EndOfBlock)!=null?i:true,this.black=n.BlackIs1||false,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0,this.rowsDone=false,this.err=false;let r;for(;(r=this._lookBits(12))===0;)this._eatBits(1);r===1&&this._eatBits(12),this.encoding>0&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1));}readNextChar(){if(this.eof)return -1;let e=this.refLine,n=this.codingLine,r=this.columns,i=0,s=0,o=0,a=0;if(this.outputBits===0){if(this.rowsDone&&(this.eof=true),this.eof)return -1;this.err=false;let l=0,u=0,d=0;if(this.nextLine2D){for(a=0;n[a]<r;++a)e[a]=n[a];for(e[a++]=r,e[a]=r,n[0]=0,this.codingPos=0,i=0,s=0;n[this.codingPos]<r;)switch(l=this._getTwoDimCode(),l){case 0:this._addPixels(e[i+1],s),e[i+1]<r&&(i+=2);break;case 1:if(l=u=0,s){do l+=d=this._getBlackCode();while(d>=64);do u+=d=this._getWhiteCode();while(d>=64)}else {do l+=d=this._getWhiteCode();while(d>=64);do u+=d=this._getBlackCode();while(d>=64)}for(this._addPixels(n[this.codingPos]+l,s),n[this.codingPos]<r&&this._addPixels(n[this.codingPos]+u,s^1);e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 7:if(this._addPixels(e[i]+3,s),s^=1,n[this.codingPos]<r)for(++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 5:if(this._addPixels(e[i]+2,s),s^=1,n[this.codingPos]<r)for(++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 3:if(this._addPixels(e[i]+1,s),s^=1,n[this.codingPos]<r)for(++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 2:if(this._addPixels(e[i],s),s^=1,n[this.codingPos]<r)for(++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 8:if(this._addPixelsNeg(e[i]-3,s),s^=1,n[this.codingPos]<r)for(i>0?--i:++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 6:if(this._addPixelsNeg(e[i]-2,s),s^=1,n[this.codingPos]<r)for(i>0?--i:++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case 4:if(this._addPixelsNeg(e[i]-1,s),s^=1,n[this.codingPos]<r)for(i>0?--i:++i;e[i]<=n[this.codingPos]&&e[i]<r;)i+=2;break;case -1:this._addPixels(r,0),this.eof=true;break;default:this._addPixels(r,0),this.err=true;}}else for(n[0]=0,this.codingPos=0,s=0;n[this.codingPos]<r;){if(l=0,s)do l+=d=this._getBlackCode();while(d>=64);else do l+=d=this._getWhiteCode();while(d>=64);this._addPixels(n[this.codingPos]+l,s),s^=1;}let f=false;if(this.byteAlign&&(this.inputBits&=-8),!this.eoblock&&this.row===this.rows-1)this.rowsDone=true;else {if(l=this._lookBits(12),this.eoline)for(;l!==-1&&l!==1;)this._eatBits(1),l=this._lookBits(12);else for(;l===0;)this._eatBits(1),l=this._lookBits(12);l===1?(this._eatBits(12),f=true):l===-1&&(this.eof=true);}if(!this.eof&&this.encoding>0&&!this.rowsDone&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1)),this.eoblock&&f&&this.byteAlign){if(l=this._lookBits(12),l===1){if(this._eatBits(12),this.encoding>0&&(this._lookBits(1),this._eatBits(1)),this.encoding>=0)for(a=0;a<4;++a)l=this._lookBits(12),this._eatBits(12),this.encoding>0&&(this._lookBits(1),this._eatBits(1));this.eof=true;}}else if(this.err&&this.eoline){for(;;){if(l=this._lookBits(13),l===-1)return this.eof=true,-1;if(l>>1===1)break;this._eatBits(1);}this._eatBits(12),this.encoding>0&&(this._eatBits(1),this.nextLine2D=!(l&1));}this.outputBits=n[0]>0?n[this.codingPos=0]:n[this.codingPos=1],this.row++;}let c;if(this.outputBits>=8)c=this.codingPos&1?0:255,this.outputBits-=8,this.outputBits===0&&n[this.codingPos]<r&&(this.codingPos++,this.outputBits=n[this.codingPos]-n[this.codingPos-1]);else {o=8,c=0;do{if(typeof this.outputBits!="number")throw new Error('Invalid /CCITTFaxDecode data, "outputBits" must be a number.');this.outputBits>o?(c<<=o,this.codingPos&1||(c|=255>>8-o),this.outputBits-=o,o=0):(c<<=this.outputBits,this.codingPos&1||(c|=255>>8-this.outputBits),o-=this.outputBits,this.outputBits=0,n[this.codingPos]<r?(this.codingPos++,this.outputBits=n[this.codingPos]-n[this.codingPos-1]):o>0&&(c<<=o,o=0));}while(o)}return this.black&&(c^=255),c}_addPixels(e,n){let r=this.codingLine,i=this.codingPos;e>r[i]&&(e>this.columns&&(this.err=true,e=this.columns),i&1^n&&++i,r[i]=e),this.codingPos=i;}_addPixelsNeg(e,n){let r=this.codingLine,i=this.codingPos;if(e>r[i])e>this.columns&&(this.err=true,e=this.columns),i&1^n&&++i,r[i]=e;else if(e<r[i]){for(e<0&&(this.err=true,e=0);i>0&&e<r[i-1];)--i;r[i]=e;}this.codingPos=i;}_findTableCode(e,n,r,i){let s=i||0;for(let o=e;o<=n;++o){let a=this._lookBits(o);if(a===-1)return [true,1,false];if(o<n&&(a<<=n-o),!s||a>=s){let c=r[a-s];if(c[0]===o)return this._eatBits(o),[true,c[1],true]}}return [false,0,false]}_getTwoDimCode(){let e=0,n;if(this.eoblock){if(e=this._lookBits(7),n=ni[e],(n==null?void 0:n[0])>0)return this._eatBits(n[0]),n[1]}else {let r=this._findTableCode(1,7,ni);if(r[0]&&r[2])return r[1]}return -1}_getWhiteCode(){let e=0,n;if(this.eoblock){if(e=this._lookBits(12),e===-1)return 1;if(n=e>>5===0?ri[e]:ii[e>>3],n[0]>0)return this._eatBits(n[0]),n[1]}else {let r=this._findTableCode(1,9,ii);if(r[0]||(r=this._findTableCode(11,12,ri),r[0]))return r[1]}return this._eatBits(1),1}_getBlackCode(){let e,n;if(this.eoblock){if(e=this._lookBits(13),e===-1)return 1;if(e>>7===0?n=si[e]:e>>9===0&&e>>7!==0?n=oi[(e>>1)-64]:n=ai[e>>7],n[0]>0)return this._eatBits(n[0]),n[1]}else {let r=this._findTableCode(2,6,ai);if(r[0]||(r=this._findTableCode(7,12,oi,64),r[0])||(r=this._findTableCode(10,13,si),r[0]))return r[1]}return this._eatBits(1),1}_lookBits(e){let n;for(;this.inputBits<e;){if((n=this.source.next())===-1)return this.inputBits===0?-1:this.inputBuf<<e-this.inputBits&65535>>16-e;this.inputBuf=this.inputBuf<<8|n,this.inputBits+=8;}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0);}};var In=null,li=()=>In!=null?In:In=import('./pdf.image_decoders.min-5CGUOWQR.js'),at=t=>Number.isFinite(t)?t<0?0:t>1?1:t:0,ui=(t,e,n,r)=>({r:(1-at(t))*(1-at(r)),g:(1-at(e))*(1-at(r)),b:(1-at(n))*(1-at(r))}),ct=t=>t?typeof t=="string"?t:typeof t=="object"&&"type"in t&&t.type==="name"&&"value"in t?String(t.value):null:null,ci=t=>{switch(t){case "DeviceRGB":case "RGB":return "DeviceRGB";case "DeviceGray":case "G":case "Gray":return "DeviceGray";case "DeviceCMYK":case "CMYK":return "DeviceCMYK";default:return null}},Bn=t=>t==="DeviceCMYK"?4:t==="DeviceGray"||t==="Separation"?1:3,lt=(t,e,n,r,i,s)=>{var u,d,f,m;if(i===8)return t;let o=e*r,a=new Uint8Array(o*n);if(i===16){for(let h=0,p=0;h<a.length;h++,p+=2)a[h]=(u=t[p])!=null?u:0;return a}let c=(1<<i)-1,l=Math.ceil(o*i/8);for(let h=0;h<n;h++){let p=h*l,b=0;for(let g=0;g<o;g++){let x=p+(b>>3),y=8-(b&7),w;if(i<=y)w=((d=t[x])!=null?d:0)>>y-i&c;else {let v=i-y,S=((f=t[x])!=null?f:0)&(1<<y)-1,P=((m=t[x+1])!=null?m:0)>>8-v;w=S<<v|P;}a[h*o+g]=s?Math.round(w*255/c):w,b+=i;}}return a},Un=(t,e,n,r)=>{let i=e*n,s=new Uint8ClampedArray(i*4);if(r==="DeviceRGB"){if(t.length<i*3)return null;for(let a=0,c=0;c<s.length;a+=3,c+=4)s[c]=t[a],s[c+1]=t[a+1],s[c+2]=t[a+2],s[c+3]=255;return new ImageData(s,e,n)}if(r==="DeviceGray"){if(t.length<i)return null;for(let a=0,c=0;c<s.length;a+=1,c+=4){let l=t[a];s[c]=l,s[c+1]=l,s[c+2]=l,s[c+3]=255;}return new ImageData(s,e,n)}if(r==="DeviceCMYK"){if(t.length<i*4)return null;for(let a=0,c=0;c<s.length;a+=4,c+=4){let l=ui(t[a]/255,t[a+1]/255,t[a+2]/255,t[a+3]/255);s[c]=Math.round(l.r*255),s[c+1]=Math.round(l.g*255),s[c+2]=Math.round(l.b*255),s[c+3]=255;}return new ImageData(s,e,n)}let o=Math.floor(t.length/Math.max(1,i));if(o>=3){let a=o;for(let c=0,l=0;c<i;c++,l+=4){let u=c*a;s[l]=t[u],s[l+1]=t[u+1],s[l+2]=t[u+2],s[l+3]=255;}return new ImageData(s,e,n)}if(o>=1){let a=r==="Separation"||r==="DeviceN";for(let c=0,l=0;c<i;c++,l+=4){let u=a?255-t[c]:t[c];s[l]=u,s[l+1]=u,s[l+2]=u,s[l+3]=255;}return new ImageData(s,e,n)}return null},Ct=(t,e,n,r)=>{let i=t.data,s=n*r;for(let o=0;o<s&&o<e.length;o++)i[o*4+3]=e[o];},Ln=(t,e,n,r,i)=>{var f,m,h,p,b,g,x,D,y,w,v;if(r.length<4)return null;let s=(f=ct(r[1]))!=null?f:"DeviceRGB",o=Math.floor((m=A(r[2]))!=null?m:255),a=i(r[3]),c=null;if(a&&L(a))try{c=$.decodeStreamSync(a);}catch{}else a&&typeof a=="object"&&"type"in a&&a.type==="string"&&(c=a.value);if(!c)return null;let l=s==="DeviceCMYK"?4:s==="DeviceGray"?1:3,u=e*n,d=new Uint8ClampedArray(u*4);for(let S=0;S<u;S++){let M=Math.min((h=t[S])!=null?h:0,o)*l,C=0,F=0,R=0;if(l===3)C=(p=c[M])!=null?p:0,F=(b=c[M+1])!=null?b:0,R=(g=c[M+2])!=null?g:0;else if(l===1)C=F=R=(x=c[M])!=null?x:0;else if(l===4){let U=ui(((D=c[M])!=null?D:0)/255,((y=c[M+1])!=null?y:0)/255,((w=c[M+2])!=null?w:0)/255,((v=c[M+3])!=null?v:0)/255);C=Math.round(U.r*255),F=Math.round(U.g*255),R=Math.round(U.b*255);}let T=S*4;d[T]=C,d[T+1]=F,d[T+2]=R,d[T+3]=255;}return new ImageData(d,e,n)},_n=(t,e,n)=>{if(!e||e.length<2||n!=="DeviceGray"&&n!=="DeviceRGB"||!(e[0]===1&&e[1]===0))return;let r=t.data;for(let i=0;i<r.length;i+=4)r[i]=255-r[i],r[i+1]=255-r[i+1],r[i+2]=255-r[i+2];},ha=new Set(["FlateDecode","Fl","LZWDecode","LZW","ASCII85Decode","A85","ASCIIHexDecode","AHx","RunLengthDecode","RL","Crypt"]),ma=t=>{if(!t)return [];let e=ct(t);return e?[e]:B(t)?t.items.map(n=>ct(n)).filter(n=>n!==null):[]},pa=t=>!t||!B(t)?null:t.items.map(e=>{var n;return (n=A(e))!=null?n:0}),ga=t=>!!t&&typeof t=="object"&&"type"in t&&t.type==="boolean"&&t.value===true||ct(t)==="true",xa=(t,e)=>{var r,i,s;if(!t)return "DeviceRGB";let n=ct(t);if(n)return (r=ci(n))!=null?r:n;if(B(t)&&t.items.length>0){let o=ct(t.items[0]);if(o==="ICCBased"){let a=e(t.items[1]);if(a&&L(a)){let c=Math.floor((i=A(a.dict.entries.get("N")))!=null?i:3);return c===1?"DeviceGray":c===4?"DeviceCMYK":"DeviceRGB"}return "DeviceRGB"}if(o==="Indexed")return "Indexed";if(o==="CalRGB")return "DeviceRGB";if(o==="CalGray")return "DeviceGray";if(o)return (s=ci(o))!=null?s:o}return "DeviceRGB"},ba=async(t,e,n)=>{if(typeof createImageBitmap!="function"||typeof document=="undefined")return null;let r=null;try{r=await createImageBitmap(new Blob([t.slice().buffer],{type:"image/jpeg"}));}catch{return null}try{let i=r.width||e,s=r.height||n,o=document.createElement("canvas");o.width=i,o.height=s;let a=o.getContext("2d");return a?(a.drawImage(r,0,0),a.getImageData(0,0,i,s)):null}catch{return null}finally{"close"in r&&typeof r.close=="function"&&r.close();}},ya=async(t,e,n)=>{try{let{JpegImage:r}=await li(),i=new r;i.parse(t);let s=i.getData({width:e,height:n,forceRGBA:!0,isSourcePDF:!0});return s.length<e*n*4?null:new ImageData(new Uint8ClampedArray(s.subarray(0,e*n*4)),e,n)}catch{return null}},Da=async(t,e,n)=>{var r,i;try{let{JpxImage:s}=await li(),o=new s;o.parse(t);let a=o.width||e,c=o.height||n,l=o.componentsCount||1,u=(i=(r=o.tiles)==null?void 0:r[0])==null?void 0:i.items;if(!u)return null;let d=a*c,f=new Uint8ClampedArray(d*4);for(let m=0,h=0;m<d;m++,h+=4){let p=m*l;if(l>=4){let b=u[p],g=u[p+1],x=u[p+2],D=u[p+3];f[h]=255-Math.min(255,b+D),f[h+1]=255-Math.min(255,g+D),f[h+2]=255-Math.min(255,x+D);}else l===3?(f[h]=u[p],f[h+1]=u[p+1],f[h+2]=u[p+2]):f[h]=f[h+1]=f[h+2]=u[p];f[h+3]=255;}return new ImageData(f,a,c)}catch{return null}},fi=async(t,e)=>{var f,m,h,p,b;let n=t.dict,r=Math.floor((f=A(n.entries.get("Width")))!=null?f:0),i=Math.floor((m=A(n.entries.get("Height")))!=null?m:0);if(r<=0||i<=0)return null;let s=ma(n.entries.get("Filter")),o=Math.floor((h=A(n.entries.get("BitsPerComponent")))!=null?h:8);if(ga(n.entries.get("ImageMask"))||s.includes("JBIG2Decode")||s.includes("CCITTFaxDecode")||s.includes("CCF"))return null;let a=xa(n.entries.get("ColorSpace"),e),c=e(n.entries.get("SMask")),l=!!(c&&L(c));if(s.includes("DCTDecode")||s.includes("DCT")){let g=(p=t.rawBytes)!=null?p:t.data;if(!g)return null;let x=a==="DeviceCMYK"?await ya(g,r,i):await ba(g,r,i);return x?{imageData:x,width:x.width,height:x.height,colorSpace:a,hasAlpha:l}:null}if(s.includes("JPXDecode")){let g=(b=t.rawBytes)!=null?b:t.data;if(!g)return null;let x=await Da(g,r,i);return x?{imageData:x,width:x.width,height:x.height,colorSpace:a,hasAlpha:l}:null}if(s.some(g=>!ha.has(g))||![1,2,4,8,16].includes(o))return null;let u;try{u=$.decodeStreamSync(t);}catch{return null}let d;if(a==="Indexed"){let g=n.entries.get("ColorSpace"),x=lt(u,r,i,1,o,false);d=Ln(x,r,i,g&&B(g)?g.items:[],e);}else {let g=Bn(a),x=lt(u,r,i,g,o,true);d=Un(x,r,i,a);}return d?(_n(d,pa(n.entries.get("Decode")),a),{imageData:d,width:r,height:i,colorSpace:a,hasAlpha:l}):null};var jn=null,Nn=()=>jn!=null?jn:jn=import('./pdf.image_decoders.min-5CGUOWQR.js'),wa=1e8,di=new Set,hi=new Set,mi=new Map,pi=new Set(["F1","F3","F4"]),gi=new WeakMap,Pa=()=>new Promise(t=>setTimeout(t,0)),ut=class ut{constructor(e,n,r,i,s){this.canvas=e;this.pageWidth=n;this.pageHeight=r;this.scale=i;this.stateStack=[];this.state=Yt();this.atomicLogCount=0;this.commandIndex=0;this.xobjectDepth=0;this.pageResources=null;this.objectLoader=null;this.fontCache=new Map;this.embeddedFamilies=new Map;this.embeddedFontBytes=new Map;this.glyphWidthCache=new Map;this.separationColorCache=new Map;this.fillColorResolver=null;this.strokeColorResolver=null;this.resolverStack=[];this.capturedTextRuns=[];this.fontDiagnosticsLogged=new Set;this.rawByteDiagnosticsLogged=new Set;this.currentPathX=0;this.currentPathY=0;this.pathStartX=0;this.pathStartY=0;this.pathOpen=false;this.initialTransform=null;this.forcedColor=null;this.patternDepth=0;this.patternCache=new Map;this.meshCache=new Map;this.layerStack=[];this.layerPool=[];this.capturedImages=[];this.paintRecords=[];this.breakerIndices=[];this.pendingPath=null;this.captureSuppressed=0;var c,l,u,d,f,m,h;let o=(c=s==null?void 0:s.debugAtomic)!=null?c:false,a=e.getContext("2d",{willReadFrequently:o});if(!a)throw new Error("2D context unavailable");a.imageSmoothingEnabled=true,"imageSmoothingQuality"in a&&(a.imageSmoothingQuality="high"),this.ctx=a,this.baseCtx=a,this.disableClip=(l=s==null?void 0:s.disableClip)!=null?l:false,this.debug=(u=s==null?void 0:s.debug)!=null?u:false,this.debugAtomic=o,this.maxAtomicLogs=(d=s==null?void 0:s.maxAtomicLogs)!=null?d:500,this.initialTransform=(f=s==null?void 0:s.initialTransform)!=null?f:null,this.forcedColor=(m=s==null?void 0:s.forcedColor)!=null?m:null,this.patternDepth=(h=s==null?void 0:s.patternDepth)!=null?h:0,e.width=Math.ceil(n*i),e.height=Math.ceil(r*i),s!=null&&s.transparentBackground||(this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillStyle="white",this.ctx.fillRect(0,0,e.width,e.height),this.ctx.restore()),this.forcedColor&&(this.state.fillColor=this.forcedColor,this.state.strokeColor=this.forcedColor,this.ctx.fillStyle=Oe(this.forcedColor),this.ctx.strokeStyle=Oe(this.forcedColor)),this.applyCurrentTransform(),this.logDebug("init",{pageWidth:n,pageHeight:r,scale:i,canvasWidth:e.width,canvasHeight:e.height,disableClip:this.disableClip});}render(e){this.commandIndex=0,this.capturedTextRuns=[],this.applyCurrentTransform(),this.logDebug("render:start",{commandCount:e.length}),this.logDebug("orientation",{flipYApplied:true});for(let n of e){let r=this.commandIndex++;this.debug&&this.logDebug("command",{index:r,op:n.op,payload:this.commandPayload(n)});let s=this.debugAtomic&&this.atomicLogCount<this.maxAtomicLogs?this.captureAtomicState():null;this.execute(n),s&&this.logAtomic(r,n,s,this.captureAtomicState());}this.logDebug("render:end",{renderedCommands:e.length,capturedTextRuns:this.capturedTextRuns.length,finalTextMatrix:this.state.textMatrix,finalLineMatrix:this.state.textLineMatrix,finalCTM:this.state.ctm,stackDepth:this.stateStack.length});}async renderAsync(e){for(this.commandIndex=0,this.xobjectDepth=0,this.capturedTextRuns=[],this.capturedImages=[],this.paintRecords=[],this.breakerIndices=[],this.pendingPath=null,this.pathOpen=false,this.patternCache.clear(),this.meshCache.clear(),this.glyphWidthCache.clear(),this.ctx=this.baseCtx,this.layerStack=[],this.applyCurrentTransform(),this.logDebug("render:start",{commandCount:e.length,async:true}),await this.preloadEmbeddedFonts(),await this.runCommandsAsync(e);this.layerStack.length>0;)this.popLayer();this.logDebug("render:end",{renderedCommands:e.length,capturedTextRuns:this.capturedTextRuns.length,finalTextMatrix:this.state.textMatrix,finalLineMatrix:this.state.textLineMatrix,finalCTM:this.state.ctm,stackDepth:this.stateStack.length,async:true});}async renderAnnotations(e){if(!e)return;let n=this.resolveObject(e.entries.get("Annots"));if(!n||!B(n))return;let r=this.state;this.state=Yt(),this.applyCurrentTransform();try{for(let i of n.items){let s=this.resolveObject(i);if(!(!s||!k(s)))try{await this.renderOneAnnotation(s);}catch(o){this.logDebug("annot:render-failed",{error:o instanceof Error?o.message:String(o)});}}}finally{this.state=r,this.applyCurrentTransform();}}async renderOneAnnotation(e){var l,u;let n=Y(e.entries.get("Subtype"));if(n==="Popup"||n==="Link"||n==="Widget")return;let r=Math.floor((l=A(e.entries.get("F")))!=null?l:0);if((r&2)!==0||(r&32)!==0)return;let i=this.resolveAppearanceStream(e);if(!i)return;let s=me(this.resolveObject(e.entries.get("Rect")));if(!s||s.length<4)return;let o=me(i.dict.entries.get("BBox"));if(!o||o.length<4)return;let a=(u=At(i.dict.entries.get("Matrix")))!=null?u:[1,0,0,1,0,0],c=va(s,o,a);if(c){this.execute({op:"save_state"}),this.execute({op:"set_ctm",matrix:c});try{await this.renderFormStreamInline(i);}finally{this.execute({op:"restore_state"});}}}resolveAppearanceStream(e){let n=this.resolveObject(e.entries.get("AP"));if(!n||!k(n))return null;let r=this.resolveObject(n.entries.get("N"));if(r&&k(r)){let i=Y(e.entries.get("AS"));r=i?this.resolveObject(r.entries.get(i)):void 0;}return r&&L(r)?r:null}async runCommandsAsync(e){let n=()=>typeof performance!="undefined"?performance.now():Date.now(),r=n();for(let i of e){let s=this.commandIndex++;this.debug&&this.logDebug("command",{index:s,op:i.op,payload:this.commandPayload(i)}),n()-r>12&&(await Pa(),r=n());let a=this.debugAtomic&&this.atomicLogCount<this.maxAtomicLogs?this.captureAtomicState():null;i.op==="xobject"?await this.renderXObject(i.name):i.op==="inline_image"?await this.renderInlineImage(i.params,i.data):(i.op==="set_fill_color"||i.op==="set_stroke_color")&&i.patternName&&!this.forcedColor&&(i.op==="set_fill_color"?this.state.fillColorSpace:this.state.strokeColorSpace)==="Pattern"?await this.applyPatternColor(i.op==="set_fill_color"?"fill":"stroke",i.patternName,i.values):i.op==="set_graphics_state"?(this.execute(i),await this.applySoftMaskFromExtGState(i.name)):this.execute(i),a&&this.logAtomic(s,i,a,this.captureAtomicState());}}getCapturedTextRuns(){return this.capturedTextRuns.map(e=>({...e,glyphs:e.glyphs.map(n=>({...n}))}))}getCapturedImages(){return this.capturedImages.map(e=>({...e,ctm:[...e.ctm]}))}getCapturedGraphics(){return zr(this.paintRecords,this.breakerIndices,this.canvas.width,this.canvas.height).map(e=>({canvasX:e.bbox.minX,canvasY:e.bbox.minY,canvasWidth:e.bbox.maxX-e.bbox.minX,canvasHeight:e.bbox.maxY-e.bbox.minY,operatorStart:e.operatorStart,operatorEnd:e.operatorEnd,paintOperatorIndices:e.paintOperatorIndices,ctmAtStart:e.ctmAtStart,fromXObject:e.fromXObject}))}extendPendingPath(e){if(this.captureSuppressed>0)return;this.pendingPath||(this.pendingPath={bbox:{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},startIndex:Math.max(0,this.commandIndex-1),ctmAtStart:[...this.state.ctm]});let n=X(this.deviceBase(),this.state.ctm),r=this.pendingPath.bbox;for(let[i,s]of e){let o=Q(n,i,s);o.x<r.minX&&(r.minX=o.x),o.x>r.maxX&&(r.maxX=o.x),o.y<r.minY&&(r.minY=o.y),o.y>r.maxY&&(r.maxY=o.y);}}recordPaintForCapture(){let e=this.pendingPath;this.pendingPath=null,!(this.captureSuppressed>0||!e)&&(e.bbox.minX>e.bbox.maxX||this.paintRecords.push({bbox:{...e.bbox},pathStartIndex:e.startIndex,paintIndex:Math.max(0,this.commandIndex-1),ctmAtStart:e.ctmAtStart,fromXObject:this.xobjectDepth>0}));}recordBreaker(){this.captureSuppressed>0||this.breakerIndices.push(Math.max(0,this.commandIndex-1));}captureImageBox(e,n){if(this.recordBreaker(),this.captureSuppressed>0)return;let r=X(this.deviceBase(),this.state.ctm),i=[Q(r,0,0),Q(r,1,0),Q(r,0,1),Q(r,1,1)],s=i.map(l=>l.x),o=i.map(l=>l.y),a=Math.min(...s),c=Math.min(...o);this.capturedImages.push({canvasX:a,canvasY:c,canvasWidth:Math.max(...s)-a,canvasHeight:Math.max(...o)-c,ctm:[...this.state.ctm],kind:e,xobjectName:n,streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0});}setFontContext(e,n){this.pageResources=e!=null?e:null,this.objectLoader=n!=null?n:null,this.fontCache.clear(),this.fontDiagnosticsLogged.clear(),this.rawByteDiagnosticsLogged.clear(),this.patternCache.clear();}execute(e){var n,r;switch(e.op){case "save_state":this.stateStack.push(Na(this.state)),this.resolverStack.push({fill:this.fillColorResolver,stroke:this.strokeColorResolver}),this.ctx.save();break;case "restore_state":for(;this.layerStack.length>0&&this.stateStack.length>0;){let i=this.layerStack[this.layerStack.length-1];if(i.kind==="smask"&&i.stateDepthAtPush>=this.stateStack.length)this.popLayer();else break}if(this.stateStack.length>0&&(this.state=this.stateStack.pop()),this.resolverStack.length>0){let i=this.resolverStack.pop();this.fillColorResolver=i.fill,this.strokeColorResolver=i.stroke;}this.ctx.restore();break;case "set_ctm":this.state.ctm=X(this.state.ctm,e.matrix),this.applyCurrentTransform(),this.logDebug("ctm:update",{ctm:this.state.ctm,cmd:e.matrix});break;case "set_line_width":this.state.lineWidth=e.width,this.ctx.lineWidth=e.width;break;case "set_line_cap":{let i=["butt","round","square"];this.state.lineCap=e.cap,this.ctx.lineCap=(n=i[e.cap])!=null?n:"butt";break}case "set_line_join":{let i=["miter","round","bevel"];this.state.lineJoin=e.join,this.ctx.lineJoin=(r=i[e.join])!=null?r:"miter";break}case "set_miter_limit":this.state.miterLimit=e.limit,this.ctx.miterLimit=e.limit;break;case "set_dash":this.state.dashArray=e.array,this.state.dashPhase=e.phase,this.ctx.setLineDash(e.array),this.ctx.lineDashOffset=e.phase;break;case "set_rendering_intent":break;case "set_graphics_state":this.applyExtGState(e.name);break;case "set_fill_color_rgb":if(this.forcedColor)break;this.state.fillColorSpace="DeviceRGB",this.state.fillColor={space:"rgb",r:e.r,g:e.g,b:e.b},this.state.fillPatternName=null,this.state.fillPattern=null,this.ctx.fillStyle=Pe(e.r,e.g,e.b);break;case "set_stroke_color_rgb":if(this.forcedColor)break;this.state.strokeColorSpace="DeviceRGB",this.state.strokeColor={space:"rgb",r:e.r,g:e.g,b:e.b},this.state.strokePatternName=null,this.state.strokePattern=null,this.ctx.strokeStyle=Pe(e.r,e.g,e.b);break;case "set_fill_gray":if(this.forcedColor)break;this.state.fillColorSpace="DeviceGray",this.state.fillColor={space:"gray",gray:e.gray},this.state.fillPatternName=null,this.state.fillPattern=null,this.ctx.fillStyle=Pe(e.gray,e.gray,e.gray);break;case "set_stroke_gray":if(this.forcedColor)break;this.state.strokeColorSpace="DeviceGray",this.state.strokeColor={space:"gray",gray:e.gray},this.state.strokePatternName=null,this.state.strokePattern=null,this.ctx.strokeStyle=Pe(e.gray,e.gray,e.gray);break;case "set_fill_cmyk":{if(this.forcedColor)break;this.state.fillColorSpace="DeviceCMYK",this.state.fillColor={space:"cmyk",c:e.c,m:e.m,y:e.y,k:e.k},this.state.fillPatternName=null,this.state.fillPattern=null;let i=sn(e.c,e.m,e.y,e.k);this.ctx.fillStyle=Pe(i.r,i.g,i.b);break}case "set_stroke_cmyk":{if(this.forcedColor)break;this.state.strokeColorSpace="DeviceCMYK",this.state.strokeColor={space:"cmyk",c:e.c,m:e.m,y:e.y,k:e.k},this.state.strokePatternName=null,this.state.strokePattern=null;let i=sn(e.c,e.m,e.y,e.k);this.ctx.strokeStyle=Pe(i.r,i.g,i.b);break}case "move_to":this.beginSubpathIfNeeded(),this.ctx.moveTo(e.x,e.y),this.currentPathX=e.x,this.currentPathY=e.y,this.pathStartX=e.x,this.pathStartY=e.y,this.extendPendingPath([[e.x,e.y]]);break;case "line_to":this.beginSubpathIfNeeded(),this.ctx.lineTo(e.x,e.y),this.currentPathX=e.x,this.currentPathY=e.y,this.extendPendingPath([[e.x,e.y]]);break;case "curve_to":this.beginSubpathIfNeeded(),this.ctx.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x3,e.y3),this.extendPendingPath([[e.x1,e.y1],[e.x2,e.y2],[e.x3,e.y3]]),this.currentPathX=e.x3,this.currentPathY=e.y3;break;case "curve_to_v":this.beginSubpathIfNeeded(),this.ctx.bezierCurveTo(this.currentPathX,this.currentPathY,e.x2,e.y2,e.x3,e.y3),this.extendPendingPath([[e.x2,e.y2],[e.x3,e.y3]]),this.currentPathX=e.x3,this.currentPathY=e.y3;break;case "rect":this.beginSubpathIfNeeded(),this.ctx.rect(e.x,e.y,e.w,e.h),this.currentPathX=e.x,this.currentPathY=e.y,this.pathStartX=e.x,this.pathStartY=e.y,this.extendPendingPath([[e.x,e.y],[e.x+e.w,e.y+e.h]]);break;case "close_path":this.ctx.closePath(),this.currentPathX=this.pathStartX,this.currentPathY=this.pathStartY;break;case "end_path":this.ctx.beginPath(),this.pathOpen=false,this.pendingPath=null;break;case "stroke":this.paintStroke(),this.recordPaintForCapture();break;case "close_stroke":this.ctx.closePath(),this.currentPathX=this.pathStartX,this.currentPathY=this.pathStartY,this.paintStroke(),this.recordPaintForCapture();break;case "fill":this.paintFill(),this.recordPaintForCapture();break;case "fill_stroke":this.paintFill(),this.paintStroke(),this.recordPaintForCapture();break;case "fill_even_odd":this.paintFill("evenodd"),this.recordPaintForCapture();break;case "fill_stroke_even_odd":this.paintFill("evenodd"),this.paintStroke(),this.recordPaintForCapture();break;case "close_fill_stroke":this.ctx.closePath(),this.paintFill(),this.paintStroke(),this.recordPaintForCapture();break;case "close_fill_stroke_even_odd":this.ctx.closePath(),this.paintFill("evenodd"),this.paintStroke(),this.recordPaintForCapture();break;case "clip":this.disableClip?this.logDebug("clip:skipped",{rule:"nonzero"}):this.ctx.clip();break;case "clip_even_odd":this.disableClip?this.logDebug("clip:skipped",{rule:"evenodd"}):this.ctx.clip("evenodd");break;case "begin_text":this.state.textMatrix=[1,0,0,1,0,0],this.state.textLineMatrix=[1,0,0,1,0,0];break;case "end_text":break;case "set_font":this.state.font=e.name,this.state.fontSize=e.size;break;case "set_text_matrix":this.state.textMatrix=[...e.matrix],this.state.textLineMatrix=[...e.matrix];break;case "move_text":this.state.textLineMatrix=X(this.state.textLineMatrix,[1,0,0,1,e.tx,e.ty]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "move_text_set_leading":this.state.leading=-e.ty,this.state.textLineMatrix=X(this.state.textLineMatrix,[1,0,0,1,e.tx,e.ty]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "next_line":this.state.textLineMatrix=X(this.state.textLineMatrix,[1,0,0,1,0,-this.state.leading]),this.state.textMatrix=[...this.state.textLineMatrix];break;case "set_char_spacing":this.state.charSpacing=e.spacing;break;case "set_word_spacing":this.state.wordSpacing=e.spacing;break;case "set_horiz_scale":this.state.horizScale=e.scale;break;case "set_leading":this.state.leading=e.leading;break;case "set_text_render":this.state.textRenderMode=e.mode;break;case "set_text_rise":this.state.textRise=e.rise;break;case "show_string":this.recordBreaker(),this.renderText(e.data);break;case "show_strings":this.recordBreaker();for(let i of e.items)if(i instanceof Uint8Array)this.renderText(i);else {let s=-(i/1e3)*this.state.fontSize*(this.state.horizScale/100);this.state.textMatrix=X(this.state.textMatrix,[1,0,0,1,s,0]);}break;case "next_line_show_string":this.recordBreaker(),this.moveToNextTextLine(),this.renderText(e.data);break;case "set_spacing_next_line_show_string":this.recordBreaker(),this.state.wordSpacing=e.wordSpacing,this.state.charSpacing=e.charSpacing,this.moveToNextTextLine(),this.renderText(e.data);break;case "xobject":case "inline_image":break;case "set_fill_color_space":this.state.fillColorSpace=this.resolveColorSpaceName(e.name),this.fillColorResolver=this.buildComplexColorResolver(e.name);break;case "set_stroke_color_space":this.state.strokeColorSpace=this.resolveColorSpaceName(e.name),this.strokeColorResolver=this.buildComplexColorResolver(e.name);break;case "set_fill_color":if(this.forcedColor)break;if(this.state.fillColorSpace==="Pattern"&&e.patternName){this.state.fillPatternName=e.patternName;let i=this.resolvePatternFillStyle(e.patternName,"fill");this.ctx.fillStyle=i;}else this.state.fillPatternName=null,this.state.fillPattern=null,this.state.fillColor=this.fillColorResolver?this.fillColorResolver(e.values):$e(this.state.fillColorSpace,e.values),this.ctx.fillStyle=Oe(this.state.fillColor);break;case "set_stroke_color":if(this.forcedColor)break;if(this.state.strokeColorSpace==="Pattern"&&e.patternName){this.state.strokePatternName=e.patternName;let i=this.resolvePatternFillStyle(e.patternName,"stroke");this.ctx.strokeStyle=i;}else this.state.strokePatternName=null,this.state.strokePattern=null,this.state.strokeColor=this.strokeColorResolver?this.strokeColorResolver(e.values):$e(this.state.strokeColorSpace,e.values),this.ctx.strokeStyle=Oe(this.state.strokeColor);break;case "shade":this.renderShadeOperator(e.name);break;}}moveToNextTextLine(){this.state.textLineMatrix=X(this.state.textLineMatrix,[1,0,0,1,0,-this.state.leading]),this.state.textMatrix=[...this.state.textLineMatrix];}renderText(e){var ht;if(e.length===0)return;let n=this.getCurrentFontInfo();if(n.isType3){this.renderType3Text(e,n);return}let r=this.decodeTextWithFont(e,n),i=Math.max(1,this.state.fontSize);this.ctx.font=Pi(n,i);let s=G=>this.measureGlyphWidthCached(G),o=Oa(e,r,n,i,this.state.charSpacing,this.state.wordSpacing,s),a=o.glyphs,c=a.map(G=>G.text).join("")||r;this.logDebug("text:before",{text:c,textLength:c.length,font:this.state.font,fontSize:i,textMatrix:this.state.textMatrix,fillColor:Oe(this.state.fillColor),textRise:this.state.textRise,horizScale:this.state.horizScale}),this.ctx.save();let l=this.state.textMatrix;this.ctx.transform(l[0],l[1],l[2],l[3],l[4],l[5]);let u=this.state.horizScale/100;u!==1&&this.ctx.scale(u,1);let d=this.state.textRise;this.ctx.font=Pi(n,i),this.ctx.fillStyle=Oe(this.state.fillColor),this.ctx.globalAlpha=this.state.fillAlpha;let f=this.ctx.measureText(c),m=Math.max(1e-4,f.width),h=o.hasPdfMetrics?a.reduce((G,pe)=>G+pe.advance,0)*u:null,p=h!=null?h:m*u,b=Math.max(1,f.actualBoundingBoxAscent||i*.8),g=Math.max(1,f.actualBoundingBoxDescent||i*.2);this.ctx.scale(1,-1);let x=o.hasPdfMetrics&&a.length>0,D=m*Math.max(1e-4,u),y=h?ja(p/D,.5,1.8):1;!x&&y!==1&&this.ctx.scale(y,1);let w=this.state.textRenderMode,v=w===0||w===2||w===4||w===6,S=w===1||w===2||w===5||w===6;v&&(this.ctx.fillStyle=Oe(this.state.fillColor)),S&&(this.ctx.strokeStyle=Oe(this.state.strokeColor),this.ctx.lineWidth=Math.max(.01,this.state.lineWidth/i));let P=(G,pe)=>{v&&(this.ctx.globalAlpha=this.state.fillAlpha,this.ctx.fillText(G,pe,-d)),S&&(this.ctx.globalAlpha=this.state.strokeAlpha,this.ctx.strokeText(G,pe,-d));};if(x){let G=0;for(let pe of a)pe.text&&P(pe.text,G),G+=pe.advance;}else P(c,0);this.ctx.restore();let M=[1,0,0,-1,0,this.pageHeight],C=X(X(M,this.state.ctm),l),F=p,R=Q(C,0,d),T=[Q(C,0,d+b),Q(C,F,d+b),Q(C,F,d-g),Q(C,0,d-g)],U=Math.min(...T.map(G=>G.x)),N=Math.max(...T.map(G=>G.x)),j=Math.min(...T.map(G=>G.y)),J=Math.max(...T.map(G=>G.y)),ce=U*this.scale,I=j*this.scale,_=Math.max(1,(N-U)*this.scale),W=Math.max(1,(J-j)*this.scale),K=Ne(this.state.fillColor),le=(ht=n.baseFontName)!=null?ht:this.state.font,ee=X(this.state.ctm,l),te=Math.hypot(ee[1],ee[3]),Fe=Math.max(1,i*(te>.01?te:1)),re=this.capturedTextRuns.length,ye=0,Be=a.map(G=>{let pe=o.hasPdfMetrics?G.advance:m>0?this.measureGlyphWidthCached(G.text)/m*(p/Math.max(1e-4,u)):0,Lt=Q(C,ye*u,d),H=Q(C,(ye+pe)*u,d),he=Math.min(Lt.x,H.x)*this.scale,we=Math.max(1,Math.abs(H.x-Lt.x)*this.scale);return ye+=pe,{canvasX:he,canvasY:I,canvasWidth:we,canvasHeight:W,canvasBaselineY:R.y*this.scale,char:G.text,charCode:G.code,runIndex:re}});this.capturedTextRuns.push({index:re,text:c,fontName:le,fontSize:Fe,canvasX:ce,canvasY:I,canvasWidth:_,canvasHeight:W,canvasBaselineX:R.x*this.scale,canvasBaselineY:R.y*this.scale,fillColor:K,streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0,glyphs:Be,fontFamily:Xn(n),textRenderMode:w,invisible:w===3||w===7,fontCapHeight:n.registeredFamily?this.measureRegisteredCapHeight(n.registeredFamily):void 0,fontWeight:n.fontWeight,fontStyle:n.fontStyle,registeredFamily:n.registeredFamily});let De=h!=null?h:p;this.state.textMatrix=X(this.state.textMatrix,[1,0,0,1,De,0]),this.logDebug("text:after",{text:c,measuredWidth:m,advance:De,needsTextFlip:true,bytesHexPreview:Array.from(e.slice(0,12)).map(G=>G.toString(16).padStart(2,"0")).join(" "),printableChars:Array.from(r).filter(G=>G>=" "&&G<="~").length,totalChars:r.length,nextTextMatrix:this.state.textMatrix});}renderType3Text(e,n){var v,S,P,M,C,F,R,T;let r=n.type3CharProcs,i=n.type3Encoding;if(!r)return;let s=Math.max(1,this.state.fontSize),o=this.state.horizScale/100,a=this.state.textRise,c=(v=n.fontMatrix)!=null?v:[.001,0,0,.001,0,0],l=this.capturedTextRuns.length,u="";for(let U=0;U<e.length;U++){let N=e[U],j=(S=n.encodingMap)==null?void 0:S.get(N);u+=j!=null?j:i&&(P=i.get(N))!=null?P:String.fromCharCode(N);}let d=[...this.state.textMatrix],f=[1,0,0,-1,0,this.pageHeight],m=this.pageResources;for(let U=0;U<e.length;U++){let N=e[U],j=(M=i==null?void 0:i.get(N))!=null?M:".notdef",ce=((R=(F=(C=n.widths)==null?void 0:C.get(N))!=null?F:n.defaultWidth)!=null?R:1e3)/1e3*s+this.state.charSpacing+(N===32?this.state.wordSpacing:0),I=r.entries.get(j),_=I?this.resolveObject(I):void 0;if(_&&L(_)){let W=this.state.textMatrix,K=[s*o,0,0,s,0,a],le=X(X(W,K),c),ee=[...this.state.textMatrix],te=[...this.state.textLineMatrix];this.execute({op:"save_state"}),this.execute({op:"set_ctm",matrix:le}),n.type3Resources&&(this.pageResources=n.type3Resources),this.captureSuppressed+=1;try{let Fe=$.decodeStreamSync(_),re=Ke(Fe);for(let ye of re)ye.op!=="type3_glyph_width"&&this.execute(ye);}catch{}finally{this.captureSuppressed-=1;}this.pageResources=m,this.execute({op:"restore_state"}),this.state.textMatrix=ee,this.state.textLineMatrix=te;}this.state.textMatrix=X(this.state.textMatrix,[1,0,0,1,ce,0]);}let h=X(X(f,this.state.ctm),d),p=Q(h,0,a),b=X(X(f,this.state.ctm),this.state.textMatrix),g=Q(b,0,a),x=Math.min(p.x,g.x)*this.scale,D=(Math.min(p.y,g.y)-s)*this.scale,y=Math.max(1,Math.abs(g.x-p.x)*this.scale),w=Math.max(1,s*this.scale);this.capturedTextRuns.push({index:l,text:u,fontName:(T=n.baseFontName)!=null?T:this.state.font,fontSize:s,canvasX:x,canvasY:D,canvasWidth:y,canvasHeight:w,canvasBaselineX:p.x*this.scale,canvasBaselineY:p.y*this.scale,fillColor:Ne(this.state.fillColor),streamOperatorIndex:Math.max(0,this.commandIndex-1),fromXObject:this.xobjectDepth>0,glyphs:[],fontFamily:Xn(n),textRenderMode:this.state.textRenderMode,invisible:this.state.textRenderMode===3||this.state.textRenderMode===7,fontCapHeight:n.registeredFamily?this.measureRegisteredCapHeight(n.registeredFamily):void 0,fontWeight:n.fontWeight,fontStyle:n.fontStyle,registeredFamily:n.registeredFamily});}commandPayload(e){return e.op==="show_string"?{text:this.decodeText(e.data),bytes:e.data.length}:e.op==="show_strings"?{items:e.items.map(n=>n instanceof Uint8Array?{type:"text",text:this.decodeText(n),bytes:n.length}:{type:"adjust",value:n})}:e}decodeText(e){return this.decodeTextWithFont(e,this.getCurrentFontInfo())}measureGlyphWidthCached(e){let n=`${this.ctx.font}|${e}`,r=this.glyphWidthCache.get(n);if(r!==void 0)return r;let i=this.ctx.measureText(e).width;return this.glyphWidthCache.set(n,i),i}measureRegisteredCapHeight(e){let n=mi.get(e);if(n!==void 0)return n||void 0;let r=0;try{let i=this.ctx.font;this.ctx.font=`1000px "${e}"`;let s=this.ctx.measureText("H").actualBoundingBoxAscent;this.ctx.font=i,Number.isFinite(s)&&s>0&&s<1200&&(r=s);}catch{r=0;}return mi.set(e,r),r||void 0}async preloadEmbeddedFonts(){if(this.embeddedFamilies.clear(),!this.pageResources)return;let e=this.resolveObject(this.pageResources.entries.get("Font"));if(!e||!k(e))return;let n=r=>this.resolveObject(r);for(let[r,i]of e.entries)try{let s=this.resolveObject(i);if(!s||!k(s))continue;let a=Y(s.entries.get("Subtype"))==="Type0"?Di(s,n):void 0,c=wi(s,a,n),l=ei(c,n);if(!l)continue;let u=await ti(l);u&&this.embeddedFamilies.set(r,u);let d=Tn(l);if(d&&!this.embeddedFontBytes.has(d.family)){let f=Y(s.entries.get("BaseFont"))||r;this.embeddedFontBytes.set(d.family,{bytes:d.bytes,baseName:f});}}catch{}}getEmbeddedFontPrograms(){return this.embeddedFontBytes}getCurrentFontInfo(){let e=this.state.font;if(!e)return en();let n=this.fontCache.get(e);if(n)return n;let r=this.loadFontInfo(e);return this.fontCache.set(e,r),r}loadFontInfo(e){var C,F,R,T,U,N,j,J,ce;if(!this.pageResources)return en();let n=this.resolveObject(this.pageResources.entries.get("Font"));if(!n||!k(n))return en();let r=n.entries.get(e),i=this.resolveObject(r);if(!i||!k(i))return en();let s=gi.get(i);if(s)return s;let o=i.entries.get("Subtype"),a=(C=Y(o))!=null?C:"Unknown",c=(F=Y(i.entries.get("BaseFont")))!=null?F:void 0,l=a==="Type0",u=Math.floor((R=A(i.entries.get("FirstChar")))!=null?R:0),d=l?Di(i,I=>this.resolveObject(I)):void 0,f=wi(i,d,I=>this.resolveObject(I)),m=l?ka(d):Ma(i,u),h=l?Ra(d):Ea(i),p=i.entries.get("ToUnicode"),b=i.entries.get("Encoding"),g=null,x=this.resolveObject(p);if(x&&L(x))try{let I=$.decodeStreamSync(x),_=new TextDecoder("latin1").decode(I),W=hc(_);this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Te(p),resolvedToUnicodeType:Te(x),encoding:Te(b),cmapRaw:W}),this.debug&&pi.has(e)&&!hi.has(e)&&(hi.add(e),console.log(`=== Raw CMap text for ${e} (first 500 chars) ===`),console.log(_.slice(0,500)),console.log("===")),g=$a(_),this.logDebug("font:cmap-parsed",{fontName:e,cmapType:g.cmapType,isUsable:g.isUsable,bfChar:g.bfChar.size,bfRange:g.bfRange.length,codeSpaceRanges:g.codeSpaceRanges.length}),this.debug&&g&&pi.has(e)&&Xa(g,e);}catch(I){this.logDebug("font:toUnicode-failed",{fontName:e,subtype:a,error:I instanceof Error?I.message:String(I)}),this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Te(p),resolvedToUnicodeType:Te(x),encoding:Te(b),toUnicodeError:I instanceof Error?I.message:String(I)});}else this.logFontDiagnostic(e,{subtype:a,isComposite:l,hasRawToUnicode:!!p,rawToUnicodeType:Te(p),resolvedToUnicodeType:Te(x),encoding:Te(b),note:l?"Composite font without resolved ToUnicode stream":"No ToUnicode stream"});if(!g&&l){let I=i.entries.get("Encoding");I&&I.type==="name"&&(I.value==="Identity-H"||I.value==="Identity-V")&&this.logDebug("font:identity-no-tounicode",{fontName:e,subtype:a,encoding:I.value});}let D;l||(D=La(b,I=>this.resolveObject(I)));let y=false,w,v,S,P;if(a==="Type3"){y=true;let I=this.resolveObject(i.entries.get("CharProcs"));I&&k(I)&&(w=I);let _=i.entries.get("FontMatrix");if(_&&B(_)){let K=_.items;S=[(T=A(K[0]))!=null?T:.001,(U=A(K[1]))!=null?U:0,(N=A(K[2]))!=null?N:0,(j=A(K[3]))!=null?j:.001,(J=A(K[4]))!=null?J:0,(ce=A(K[5]))!=null?ce:0];}let W=this.resolveObject(i.entries.get("Resources"));W&&k(W)&&(P=W),v=_a(b,K=>this.resolveObject(K));}let M={subtype:a,baseFontName:c,fontWeight:Ta(c,f),fontStyle:Ia(c,f),isComposite:l,firstChar:u,widths:m,defaultWidth:h,toUnicode:g,encodingMap:D,isType3:y,type3CharProcs:w,type3Encoding:v,fontMatrix:S,type3Resources:P,registeredFamily:this.embeddedFamilies.get(e)};return this.logDebug("font:loaded",{fontName:e,subtype:a,isComposite:l,hasToUnicode:!!g}),gi.set(i,M),M}logFontDiagnostic(e,n){if(!this.debug)return;let r=`${e}|${String(n.subtype)}|${String(n.rawToUnicodeType)}|${String(n.resolvedToUnicodeType)}`;this.fontDiagnosticsLogged.has(r)||(this.fontDiagnosticsLogged.add(r),console.info("[PageRenderer][FontDiag]",{font:e,...n}));}resolveObject(e){if(e){if(!Z(e))return e;if(this.objectLoader)try{return this.objectLoader(e)}catch{return}}}resolveColorSpaceName(e){var s;let n=Se(e);if(n)return n;if(!this.pageResources)return e;let r=this.resolveObject(this.pageResources.entries.get("ColorSpace"));if(!r||!k(r))return e;let i=this.resolveObject(r.entries.get(e));return (s=bi(i))!=null?s:e}buildComplexColorResolver(e){var m;if(Se(e))return null;let n=this.separationColorCache.get(e);if(n)return n;if(!this.pageResources||!this.objectLoader)return null;let r=this.resolveObject(this.pageResources.entries.get("ColorSpace"));if(!r||!k(r))return null;let i=this.resolveObject(r.entries.get(e));if(!i||!B(i)||i.items.length<2)return null;let s=Y(i.items[0]);if(s!=="Separation"&&s!=="DeviceN")return null;let o=2,a=3,c=i.items[o]?this.resolveObject(i.items[o]):void 0,l=(m=bi(c))!=null?m:"DeviceGray",u=i.items[a],d=this.objectLoader,f=h=>{var g;let p=(g=h[0])!=null?g:0,b=qt(u,p,d);return b&&b.length>0?$e(l,b):l==="DeviceCMYK"?{space:"cmyk",c:0,m:0,y:0,k:p}:{space:"gray",gray:1-p}};return this.separationColorCache.set(e,f),f}async renderXObject(e){if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("XObject"));if(!n||!k(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!L(r))return;let i=Y(r.dict.entries.get("Subtype"));if(i==="Image"){this.captureImageBox("xobject",e),await this.renderImageXObject(r);return}if(i==="Form")try{let s=r,o=this.resolveObject(s.dict.entries.get("Resources")),c=await(s.decode?s.decode():Promise.resolve($.decodeStreamSync(s))),l=Ke(c instanceof Uint8Array?c:new Uint8Array(await c)),u=this.pageResources,d=this.objectLoader,f=this.patternCache;this.patternCache=new Map,this.pageResources=o&&k(o)?o:this.pageResources;let m=this.resolveObject(s.dict.entries.get("Group")),b=!!m&&k(m)&&Y(m.entries.get("S"))==="Transparency"&&(this.state.fillAlpha<1||this.state.strokeAlpha<1||this.state.blendMode!=="Normal")&&this.pushLayer("group",this.state.fillAlpha,this.state.blendMode,null);this.execute({op:"save_state"}),b&&(this.state.fillAlpha=1,this.state.strokeAlpha=1,this.state.blendMode="Normal",this.ctx.globalAlpha=1,this.ctx.globalCompositeOperation="source-over");let g=s.dict.entries.get("Matrix");if(g&&Array.isArray(g.items))try{let D=g.items.map(y=>{var w;return Number((w=A(y))!=null?w:0)});this.execute({op:"set_ctm",matrix:D});}catch{}let x=this.commandIndex;this.xobjectDepth+=1;try{await this.runCommandsAsync(l);}finally{this.xobjectDepth-=1,this.commandIndex=x;}this.execute({op:"restore_state"}),b&&this.popLayer(),this.pageResources=u,this.objectLoader=d,this.patternCache=f;return}catch(s){this.logDebug("xobject:form-failed",{name:e,error:s instanceof Error?s.message:String(s)});return}}resolveImageColorSpace(e){var r,i,s;if(!e)return "DeviceRGB";let n=Y(e);if(n)return (r=Se(n))!=null?r:n;if(B(e)&&e.items.length>0){let o=Y(e.items[0]);if(o==="ICCBased"){let a=this.resolveObject(e.items[1]);if(a&&L(a)){let c=Math.floor((i=A(a.dict.entries.get("N")))!=null?i:3);return c===1?"DeviceGray":c===4?"DeviceCMYK":"DeviceRGB"}return "DeviceRGB"}if(o==="Indexed")return "Indexed";if(o==="CalRGB")return "DeviceRGB";if(o==="CalGray")return "DeviceGray";if(o)return (s=Se(o))!=null?s:o}return "DeviceRGB"}resolveDecodeParms(e){var r;let n=this.resolveObject((r=e.entries.get("DecodeParms"))!=null?r:e.entries.get("DP"));if(!n)return null;if(k(n))return n;if(B(n))for(let i of n.items){let s=this.resolveObject(i);if(s&&k(s))return s}return null}async decodeJbig2(e,n,r){var s;let i=(s=e.rawBytes)!=null?s:e.data;if(!i||i.length===0)return null;if(n>0&&r>0&&n*r>wa)return this.logDebug("xobject:jbig2-failed",{error:`JBIG2 image too large (${n}x${r}) \u2014 skipped to avoid OOM`}),null;try{let{Jbig2Image:o}=await Nn(),a,c=this.resolveDecodeParms(e.dict);if(c){let d=this.resolveObject(c.entries.get("JBIG2Globals"));if(d&&L(d))try{a=$.decodeStreamSync(d);}catch{}}let l=[];a&&a.length>0&&l.push({data:a,start:0,end:a.length}),l.push({data:i,start:0,end:i.length});let u=new o().parseChunks(l);for(let d=0;d<u.length;d++)u[d]^=255;return u}catch(o){return this.logDebug("xobject:jbig2-failed",{error:o instanceof Error?o.message:String(o)}),null}}async decodeCcitt(e,n,r){var s;let i=(s=e.rawBytes)!=null?s:e.data;if(!i||i.length===0)return null;try{let o=this.resolveDecodeParms(e.dict),a=(D,y)=>{var w;return o?Math.floor((w=A(o.entries.get(D)))!=null?w:y):y},c=(D,y)=>{let w=o==null?void 0:o.entries.get(D);return w&&typeof w=="object"&&"type"in w&&w.type==="boolean"?w.value:y},l=a("Columns",1728),u=a("Rows",r),d=0,f={next:()=>d<i.length?i[d++]:-1},m=new Qt(f,{K:a("K",0),EndOfLine:c("EndOfLine",!1),EncodedByteAlign:c("EncodedByteAlign",!1),Columns:l,Rows:u,EndOfBlock:c("EndOfBlock",!0),BlackIs1:c("BlackIs1",!1)}),p=(l+7>>3)*(u>0?u:r),b=new Uint8Array(p),g=0,x;for(;g<p&&(x=m.readNextChar())!==-1;)b[g++]=x;return g>0?b.subarray(0,g):null}catch(o){return this.logDebug("xobject:ccitt-failed",{error:o instanceof Error?o.message:String(o)}),null}}drawRgbaImageData(e,n,r){let i=document.createElement("canvas");i.width=n,i.height=r;let s=i.getContext("2d");s&&(s.putImageData(e,0,0),this.drawImageBitmapLike(i));}async renderImageXObject(e){var f,m,h,p;let n=e.dict,r=Math.floor((f=A(n.entries.get("Width")))!=null?f:0),i=Math.floor((m=A(n.entries.get("Height")))!=null?m:0);if(r<=0||i<=0)return;let s=yi(n.entries.get("Filter")),o=Math.floor((h=A(n.entries.get("BitsPerComponent")))!=null?h:8),a=n.entries.get("ImageMask"),c=a!=null&&typeof a=="object"&&"type"in a&&a.type==="boolean"&&a.value===true||Y(a)==="true",l=this.resolveImageColorSpace(n.entries.get("ColorSpace")),u=s.includes("JBIG2Decode"),d=s.includes("CCITTFaxDecode")||s.includes("CCF");try{let b=null;if(u?b=await this.decodeJbig2(e,r,i):d&&(b=await this.decodeCcitt(e,r,i)),(u||d)&&!b)return;if(c){await this.renderStencilMask(e,r,i,b);return}if(!u&&!d&&(s.includes("DCTDecode")||s.includes("DCT"))){let g=(p=e.rawBytes)!=null?p:e.data;if(!g)return;if(l==="DeviceCMYK"){await this.renderJpegViaPdfjs(e,g,r,i);return}let x=this.resolveObject(n.entries.get("SMask"));if(x&&L(x))await this.renderImageWithSMask(g,"image/jpeg",x,r,i);else {let D=await $n(g,"image/jpeg");this.drawImageBitmapLike(D),Wn(D);}return}if(!u&&!d&&s.includes("JPXDecode")){await this.renderJpxViaPdfjs(e,r,i);return}if(!b&&s.some(g=>!Fa.has(g)))return;if(o===1||o===2||o===4||o===8||o===16){let g=b!=null?b:$.decodeStreamSync(e),x=null;if(l==="Indexed"){let y=n.entries.get("ColorSpace"),w=S=>this.resolveObject(S),v=lt(g,r,i,1,o,!1);x=Ln(v,r,i,y&&B(y)?y.items:[],w);}else {let y=Bn(l),w=lt(g,r,i,y,o,!0);x=Un(w,r,i,l);}if(!x)return;_n(x,me(n.entries.get("Decode")),l);let D=this.resolveObject(n.entries.get("SMask"));if(D&&L(D))try{let y=await this.decodeSMaskAlpha(D,r,i);Ct(x,y,r,i);}catch{}this.drawRgbaImageData(x,r,i);}}catch(b){this.logDebug("xobject:image-failed",{width:r,height:i,colorSpace:l,bitsPerComponent:o,filters:s,error:b instanceof Error?b.message:String(b)});}}async renderJpegViaPdfjs(e,n,r,i){let{JpegImage:s}=await Nn(),o=new s;o.parse(n);let a=o.getData({width:r,height:i,forceRGBA:true,isSourcePDF:true});if(a.length<r*i*4)return;let c=new ImageData(new Uint8ClampedArray(a.subarray(0,r*i*4)),r,i),l=this.resolveObject(e.dict.entries.get("SMask"));if(l&&L(l))try{let u=await this.decodeSMaskAlpha(l,r,i);Ct(c,u,r,i);}catch{}this.drawRgbaImageData(c,r,i);}async renderJpxViaPdfjs(e,n,r){var p,b,g;let i=(p=e.rawBytes)!=null?p:e.data;if(!i)return;let{JpxImage:s}=await Nn(),o=new s;o.parse(i);let a=o.width||n,c=o.height||r,l=o.componentsCount||1,u=(g=(b=o.tiles)==null?void 0:b[0])==null?void 0:g.items;if(!u)return;let d=a*c,f=new Uint8ClampedArray(d*4);for(let x=0,D=0;x<d;x++,D+=4){let y=x*l;if(l>=4){let w=u[y],v=u[y+1],S=u[y+2],P=u[y+3];f[D]=255-Math.min(255,w+P),f[D+1]=255-Math.min(255,v+P),f[D+2]=255-Math.min(255,S+P);}else l===3?(f[D]=u[y],f[D+1]=u[y+1],f[D+2]=u[y+2]):f[D]=f[D+1]=f[D+2]=u[y];f[D+3]=255;}let m=new ImageData(f,a,c),h=this.resolveObject(e.dict.entries.get("SMask"));if(h&&L(h))try{let x=await this.decodeSMaskAlpha(h,a,c);Ct(m,x,a,c);}catch{}this.drawRgbaImageData(m,a,c);}async renderInlineImage(e,n){var l;this.captureImageBox("inline",null);let r={W:"Width",H:"Height",BPC:"BitsPerComponent",CS:"ColorSpace",F:"Filter",IM:"ImageMask",D:"Decode",DP:"DecodeParms",I:"Interpolate"},i={AHx:"ASCIIHexDecode",A85:"ASCII85Decode",LZW:"LZWDecode",Fl:"FlateDecode",RL:"RunLengthDecode",CCF:"CCITTFaxDecode",DCT:"DCTDecode"},s={G:"DeviceGray",RGB:"DeviceRGB",CMYK:"DeviceCMYK",I:"Indexed"},o=(u,d)=>u&&"type"in u&&u.type==="name"&&d[u.value]?{type:"name",value:d[u.value]}:u,a=new Map;for(let[u,d]of e.entries){let f=(l=r[u])!=null?l:u,m=d;if(f==="Filter")m=B(d)?{type:"array",items:d.items.map(h=>o(h,i))}:o(d,i);else if(f==="ColorSpace")if(d&&"type"in d&&d.type==="name"&&!s[d.value]&&!["DeviceGray","DeviceRGB","DeviceCMYK","Indexed"].includes(d.value)){let h=this.lookupResource("ColorSpace",d.value);m=h!=null?h:d;}else m=o(d,s);a.set(f,m);}let c={type:"stream",dict:{type:"dict",entries:a},data:n,rawBytes:n};await this.renderImageXObject(c);}lookupResource(e,n){if(!this.pageResources)return;let r=this.resolveObject(this.pageResources.entries.get(e));if(!(!r||!k(r)))return this.resolveObject(r.entries.get(n))}async decodeSMaskAlpha(e,n,r){var d,f,m,h;let i=yi(e.dict.entries.get("Filter")),s=i.includes("JPXDecode");if(i.includes("DCTDecode")||i.includes("DCT")||s){let p=(d=e.rawBytes)!=null?d:e.data;if(p&&p.length>0){let b=await $n(p,s?"image/jp2":"image/jpeg");try{let g=document.createElement("canvas");g.width=n,g.height=r;let x=g.getContext("2d");if(x){x.drawImage(b,0,0,n,r);let{data:D}=x.getImageData(0,0,n,r),y=new Uint8Array(n*r);for(let w=0;w<y.length;w++)y[w]=D[w*4];return y}}finally{Wn(b);}}}let a=$.decodeStreamSync(e),c=Math.floor((f=A(e.dict.entries.get("BitsPerComponent")))!=null?f:8);if(c===8)return a;let l=Math.floor((m=A(e.dict.entries.get("Width")))!=null?m:n),u=Math.floor((h=A(e.dict.entries.get("Height")))!=null?h:r);return lt(a,l,u,1,c,true)}async renderImageWithSMask(e,n,r,i,s){let o=await $n(e,n);try{let a=document.createElement("canvas");a.width=i,a.height=s;let c=a.getContext("2d");if(!c){this.drawImageBitmapLike(o);return}c.drawImage(o,0,0,i,s);let l=c.getImageData(0,0,i,s);try{let u=await this.decodeSMaskAlpha(r,i,s);Ct(l,u,i,s);}catch{}c.putImageData(l,0,0),this.drawImageBitmapLike(a);}finally{Wn(o);}}async renderStencilMask(e,n,r,i){try{let s=i!=null?i:$.decodeStreamSync(e),o=Ne(this.state.fillColor),a=Math.round(o.r*255),c=Math.round(o.g*255),l=Math.round(o.b*255),u=n*r,d=new Uint8ClampedArray(u*4),f=me(e.dict.entries.get("Decode")),m=!!f&&f.length>=2&&f[0]===1&&f[1]===0,h=0;for(let g=0;g<s.length&&h<u;g++){let x=s[g];for(let D=7;D>=0&&h<u;D--){let y=x>>D&1,w=h*4;y===1!==m&&(d[w]=a,d[w+1]=c,d[w+2]=l,d[w+3]=255),h++;}}let p=document.createElement("canvas");p.width=n,p.height=r;let b=p.getContext("2d");if(!b)return;b.putImageData(new ImageData(d,n,r),0,0),this.drawImageBitmapLike(p);}catch(s){this.logDebug("xobject:stencil-mask-failed",{error:s instanceof Error?s.message:String(s)});}}drawImageBitmapLike(e){this.ctx.save(),this.ctx.transform(1,0,0,-1,0,1),this.ctx.drawImage(e,0,0,1,1),this.ctx.restore();}decodeTextWithFont(e,n){var r;if(e.length===0)return "";if(this.debug){let i=String(this.state.font||"").toLowerCase();if(i==="f1"||i==="f2"){let s=Array.from(e.subarray(0,24)).map(a=>a.toString(16).padStart(2,"0")).join(" "),o=`${i}|${s}`;this.rawByteDiagnosticsLogged.has(o)||(this.rawByteDiagnosticsLogged.add(o),console.log(`[${i} RAW BYTES] ${s}`));}}if(n.toUnicode)return !n.toUnicode.isUsable&&n.isComposite?Ya(e,n.toUnicode):Ha(e,n.toUnicode,n.isComposite,this.state.font,this.debug);if(n.isComposite)return Ri(e);if(n.encodingMap&&n.encodingMap.size>0){let i=[];for(let s of e)i.push((r=n.encodingMap.get(s))!=null?r:String.fromCharCode(s));return i.join("")}return new TextDecoder("latin1").decode(e)}logDebug(e,n){this.debug&&console.debug(`[PageRenderer] ${e}`,n);}captureAtomicState(){return {transform:this.ctx.getTransform(),lineWidth:this.ctx.lineWidth,fillStyle:String(this.ctx.fillStyle),strokeStyle:String(this.ctx.strokeStyle),stackDepth:this.stateStack.length,samples:this.samplePixels()}}samplePixels(){let e=this.canvas.width,n=this.canvas.height;if(e<=0||n<=0)return [];let r=[[1,1],[Math.max(1,Math.floor(e/2)),Math.max(1,Math.floor(n/2))],[Math.max(1,e-2),Math.max(1,n-2)],[Math.max(1,Math.floor(e*.25)),Math.max(1,Math.floor(n*.25))],[Math.max(1,Math.floor(e*.75)),Math.max(1,Math.floor(n*.75))]],i=[],s=this.ctx.getTransform();this.ctx.setTransform(1,0,0,1,0,0);try{for(let[o,a]of r){let c=this.ctx.getImageData(Math.min(e-1,o),Math.min(n-1,a),1,1).data;i.push([c[0],c[1],c[2],c[3]]);}}finally{this.ctx.setTransform(s.a,s.b,s.c,s.d,s.e,s.f);}return i}logAtomic(e,n,r,i){if(!this.debugAtomic||this.atomicLogCount>=this.maxAtomicLogs)return;let s=JSON.stringify(r.samples),o=JSON.stringify(i.samples),a=s!==o;!(n.op==="stroke"||n.op==="fill"||n.op==="fill_even_odd"||n.op==="fill_stroke"||n.op==="show_string"||n.op==="show_strings")&&!a||(this.atomicLogCount+=1,console.debug("[PageRenderer][atomic]",{index:e,op:n.op,stackDepthBefore:r.stackDepth,stackDepthAfter:i.stackDepth,transformBefore:[r.transform.a,r.transform.b,r.transform.c,r.transform.d,r.transform.e,r.transform.f],transformAfter:[i.transform.a,i.transform.b,i.transform.c,i.transform.d,i.transform.e,i.transform.f],lineWidthBefore:r.lineWidth,lineWidthAfter:i.lineWidth,fillStyleBefore:r.fillStyle,fillStyleAfter:i.fillStyle,strokeStyleBefore:r.strokeStyle,strokeStyleAfter:i.strokeStyle,pixelChanged:a,samplesBefore:r.samples,samplesAfter:i.samples}));}applyExtGState(e){var h,p,b;if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("ExtGState"));if(!n||!k(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!k(r))return;let i=r,s=A(i.entries.get("LW"));s!==null&&(this.state.lineWidth=s,this.ctx.lineWidth=s);let o=A(i.entries.get("LC"));if(o!==null){let g=Math.floor(o),x=["butt","round","square"];this.state.lineCap=g,this.ctx.lineCap=(h=x[g])!=null?h:"butt";}let a=A(i.entries.get("LJ"));if(a!==null){let g=Math.floor(a),x=["miter","round","bevel"];this.state.lineJoin=g,this.ctx.lineJoin=(p=x[g])!=null?p:"miter";}let c=A(i.entries.get("ML"));c!==null&&(this.state.miterLimit=c,this.ctx.miterLimit=c);let l=i.entries.get("D");if(l&&B(l)&&l.items.length>=1){let g=l.items[0],x=(b=A(l.items[1]))!=null?b:0;if(B(g)){let D=g.items.map(y=>{var w;return (w=A(y))!=null?w:0});this.state.dashArray=D,this.state.dashPhase=x,this.ctx.setLineDash(D),this.ctx.lineDashOffset=x;}}let u=A(i.entries.get("CA"));u!==null&&(this.state.strokeAlpha=ie(u));let d=A(i.entries.get("ca"));d!==null&&(this.state.fillAlpha=ie(d));let f=i.entries.get("BM"),m=Y(f);m&&(this.state.blendMode=m,this.ctx.globalCompositeOperation=xi(m));}deviceBase(){if(this.initialTransform)return this.initialTransform;let e=this.scale;return [e,0,0,-e,0,e*this.pageHeight]}applyCurrentTransform(){let e=X(this.deviceBase(),this.state.ctm);this.ctx.setTransform(e[0],e[1],e[2],e[3],e[4],e[5]);}resolvePatternFillStyle(e,n){var r,i,s;try{if(!this.pageResources||!this.objectLoader)return "transparent";let o=this.resolveObject(this.pageResources.entries.get("Pattern"));if(!o||!k(o))return "transparent";let a=this.resolveObject(o.entries.get(e));if(!a||!k(a)||Math.floor((r=A(a.entries.get("PatternType")))!=null?r:0)!==2)return "transparent";let l=this.resolveObject(a.entries.get("Shading"));if(!l||!k(l))return "transparent";let u=(i=At(a.entries.get("Matrix")))!=null?i:[1,0,0,1,0,0];return (s=this.createCanvasGradient(l,u))!=null?s:"transparent"}catch{return "transparent"}}async resolvePattern(e,n){var o,a;let r=`${e}|${Oe(n)}`,i=this.patternCache.get(r);if(i!==void 0)return i;let s=null;try{if(this.pageResources&&this.objectLoader){let c=this.resolveObject(this.pageResources.entries.get("Pattern")),l=c&&k(c)?this.resolveObject(c.entries.get(e)):void 0,u=l?L(l)?l.dict:k(l)?l:null:null;if(u){let d=Math.floor((o=A(u.entries.get("PatternType")))!=null?o:0),f=(a=At(u.entries.get("Matrix")))!=null?a:[1,0,0,1,0,0];if(d===2){let m=this.resolveObject(u.entries.get("Shading")),h=m?L(m)?m.dict:k(m)?m:null:null;h&&(s={kind:"shading",shading:h,stream:m&&L(m)?m:null,matrix:f});}else d===1&&l&&L(l)&&(s=await this.renderTilingCell(l,u,f,n));}}}catch{s=null;}return this.patternCache.set(r,s),s}async applyPatternColor(e,n,r){let i=e==="fill"?this.state.fillColor:this.state.strokeColor,s=r.length>=4?{space:"cmyk",c:r[0],m:r[1],y:r[2],k:r[3]}:r.length===3?{space:"rgb",r:r[0],g:r[1],b:r[2]}:r.length===1?{space:"gray",gray:r[0]}:i,o=await this.resolvePattern(n,s);e==="fill"?(this.state.fillPatternName=n,this.state.fillPattern=o,o||(this.ctx.fillStyle="transparent")):(this.state.strokePatternName=n,this.state.strokePattern=o,o||(this.ctx.strokeStyle="transparent"));}async renderTilingCell(e,n,r,i){var v,S,P,M;if(this.patternDepth>=4)return null;let s=me(n.entries.get("BBox"));if(!s||s.length<4)return null;let o=[s[0],s[1],s[2],s[3]],a=o[2]-o[0],c=o[3]-o[1],l=(v=A(n.entries.get("XStep")))!=null?v:a,u=(S=A(n.entries.get("YStep")))!=null?S:c,d=Math.abs(l)<1e-9?a:l,f=Math.abs(u)<1e-9?c:u,m=Math.floor((P=A(n.entries.get("PaintType")))!=null?P:1),h=X(this.deviceBase(),r),p=Hr(o,d,f,h);if(!p)return null;let b=document.createElement("canvas"),g=new ut(b,p.cellPxW,p.cellPxH,1,{disableClip:this.disableClip,transparentBackground:true,initialTransform:p.contentTransform,forcedColor:m===2?i:void 0,patternDepth:this.patternDepth+1}),x=this.resolveObject(n.entries.get("Resources"));g.setFontContext(x&&k(x)?x:void 0,(M=this.objectLoader)!=null?M:void 0);let D=e.decode?await e.decode():$.decodeStreamSync(e),y=Ke(D),w=a>0&&c>0?[{op:"rect",x:o[0],y:o[1],w:a,h:c},{op:"clip"},{op:"end_path"}]:[];return await g.renderAsync([...w,...y]),{kind:"tiling",cell:b,layout:p,matrix:r}}beginSubpathIfNeeded(){this.pathOpen||(this.ctx.beginPath(),this.pathOpen=true);}paintFill(e){this.pathOpen=false;let n=this.state.fillPattern;if(!n){this.ctx.globalAlpha=this.state.fillAlpha,e?this.ctx.fill(e):this.ctx.fill();return}this.paintPatternThroughPath(n,this.state.fillAlpha,e!=null?e:"nonzero");}paintStroke(){this.pathOpen=false;let e=this.state.strokePattern;if(this.ctx.globalAlpha=this.state.strokeAlpha,e)if(e.kind==="tiling"){let c=this.ctx.createPattern(e.cell,"repeat");c&&(this.ctx.strokeStyle=c);}else {let c=this.createCanvasGradient(e.shading,e.matrix);c&&(this.ctx.strokeStyle=c);}let n=this.deviceBase(),r=Math.sqrt(Math.abs(n[0]*n[3]-n[1]*n[2]))||1,i=this.state.ctm,s=Math.sqrt(Math.abs(i[0]*i[3]-i[1]*i[2]))||1,o=r*s,a=this.state.lineWidth*o;this.ctx.lineWidth=this.state.lineWidth===0||a<1?1/o:this.state.lineWidth,this.ctx.stroke();}paintPatternThroughPath(e,n,r){this.ctx.save();try{this.ctx.globalAlpha=n,this.ctx.clip(r);let i=X(this.deviceBase(),e.matrix);if(e.kind==="tiling"){let s=this.ctx.createPattern(e.cell,"repeat");if(!s)return;let o=X(i,e.layout.paintTransform);this.ctx.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),this.ctx.fillStyle=s,this.floodCanvasExtent(o,Math.max(e.layout.cellPxW,e.layout.cellPxH));}else this.paintShadingBackground(e.shading,i),this.paintShadingWithBase(e.shading,e.stream,i);}finally{this.ctx.restore();}}paintShadingBackground(e,n){var a,c;let r=me(e.entries.get("Background"));if(!r||!r.length)return;let i=(a=Y(e.entries.get("ColorSpace")))!=null?a:"DeviceRGB",s=(c=Se(i))!=null?c:"DeviceRGB",o=Ne($e(s,r));this.ctx.save(),this.ctx.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),this.ctx.fillStyle=Pe(o.r,o.g,o.b),this.floodCanvasExtent(n,0),this.ctx.restore();}paintShadingWithBase(e,n,r){var s;let i=Math.floor((s=A(e.entries.get("ShadingType")))!=null?s:0);if(i===2||i===3){let o=this.createCanvasGradient(e);if(!o)return;this.ctx.save(),this.ctx.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),this.ctx.fillStyle=o,this.floodCanvasExtent(r,0),this.ctx.restore();return}if(i===1){this.paintFunctionShading(e,r);return}i>=4&&i<=7&&n&&this.paintMeshShading(i,e,n,r);}paintFunctionShading(e,n){var D,y,w,v,S,P,M,C;if(!this.objectLoader)return;let r=e.entries.get("Function");if(!r)return;let i=(D=me(e.entries.get("Domain")))!=null?D:[0,1,0,1],[s,o,a,c]=[(y=i[0])!=null?y:0,(w=i[1])!=null?w:1,(v=i[2])!=null?v:0,(S=i[3])!=null?S:1];if(!(o>s)||!(c>a))return;let l=(P=At(e.entries.get("Matrix")))!=null?P:[1,0,0,1,0,0],u=(M=Y(e.entries.get("ColorSpace")))!=null?M:"DeviceRGB",d=(C=Se(u))!=null?C:"DeviceRGB",f=128,m=128,h=new ImageData(f,m);for(let F=0;F<m;F++){let R=a+(F+.5)/m*(c-a);for(let T=0;T<f;T++){let U=s+(T+.5)/f*(o-s),N=Mn(r,[U,R],this.objectLoader);if(!N)continue;let j=Ne($e(d,N)),J=(F*f+T)*4;h.data[J]=Math.round(j.r*255),h.data[J+1]=Math.round(j.g*255),h.data[J+2]=Math.round(j.b*255),h.data[J+3]=255;}}let p=document.createElement("canvas");p.width=f,p.height=m;let b=p.getContext("2d");if(!b)return;b.putImageData(h,0,0);let g=[(o-s)/f,0,0,(c-a)/m,s,a],x=X(X(n,l),g);this.ctx.save(),this.ctx.setTransform(x[0],x[1],x[2],x[3],x[4],x[5]),this.ctx.drawImage(p,0,0),this.ctx.restore();}paintMeshShading(e,n,r,i){var g,x,D,y,w,v;if(!this.objectLoader)return;let s=this.objectLoader,o=this.meshCache.get(n);if(!o){try{let S=$.decodeStreamSync(r),P=(g=Y(n.entries.get("ColorSpace")))!=null?g:"DeviceRGB",M=(x=Se(P))!=null?x:"DeviceRGB",C=n.entries.get("Function"),F=C?1:Sa(M),R=me(n.entries.get("Decode"));if(!R)return;let T=U=>{var J;let N=C&&(J=Mn(C,U,s))!=null?J:U,j=Ne($e(M,N));return [j.r,j.g,j.b]};o=Yr(e,{bitsPerCoordinate:Math.floor((D=A(n.entries.get("BitsPerCoordinate")))!=null?D:16),bitsPerComponent:Math.floor((y=A(n.entries.get("BitsPerComponent")))!=null?y:8),bitsPerFlag:Math.floor((w=A(n.entries.get("BitsPerFlag")))!=null?w:8),decode:R,numColorComponents:F,verticesPerRow:(v=A(n.entries.get("VerticesPerRow")))!=null?v:void 0},S,T);}catch{o=[];}this.meshCache.set(n,o);}if(!o.length)return;let a=1/0,c=1/0,l=-1/0,u=-1/0;for(let S of o)for(let[P,M]of S.p){let C=Q(i,P,M);C.x<a&&(a=C.x),C.x>l&&(l=C.x),C.y<c&&(c=C.y),C.y>u&&(u=C.y);}a=Math.max(0,Math.floor(a)),c=Math.max(0,Math.floor(c)),l=Math.min(this.canvas.width,Math.ceil(l)),u=Math.min(this.canvas.height,Math.ceil(u));let d=Math.min(4096,l-a),f=Math.min(4096,u-c);if(d<=0||f<=0)return;let m=X([1,0,0,1,-a,-c],i),h=Kr(o,m,d,f),p=document.createElement("canvas");p.width=d,p.height=f;let b=p.getContext("2d");b&&(b.putImageData(new ImageData(h,d,f),0,0),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(p,a,c),this.ctx.restore());}floodCanvasExtent(e,n){let r=st(e);if(!r)return;let i=this.canvas.width,s=this.canvas.height,o=[Q(r,0,0),Q(r,i,0),Q(r,0,s),Q(r,i,s)],a=o.map(m=>m.x),c=o.map(m=>m.y),l=Math.min(...a)-n,u=Math.min(...c)-n,d=Math.max(...a)+n,f=Math.max(...c)+n;this.ctx.fillRect(l,u,d-l,f-u);}createCanvasGradient(e,n){var b,g,x,D;let r=Math.floor((b=A(e.entries.get("ShadingType")))!=null?b:0),i=(g=Y(e.entries.get("ColorSpace")))!=null?g:"DeviceRGB",s=(x=Se(i))!=null?x:"DeviceRGB",o=e.entries.get("Function"),a=(D=me(e.entries.get("Domain")))!=null?D:[0,1],[c,l]=Ca(e.entries.get("Extend")),u=y=>{var S,P;let w=a[0]+y*(((S=a[1])!=null?S:1)-a[0]),v=this.objectLoader?(P=qt(o,w,this.objectLoader))!=null?P:[0]:[0];return Ne($e(s,v))},d=y=>`rgb(${Math.round(y.r*255)},${Math.round(y.g*255)},${Math.round(y.b*255)})`,f=y=>`rgba(${Math.round(y.r*255)},${Math.round(y.g*255)},${Math.round(y.b*255)},0)`,m=me(e.entries.get("Coords"));if(!m)return null;let h=(y,w)=>n?[n[0]*y+n[2]*w+n[4],n[1]*y+n[3]*w+n[5]]:[y,w],p=y=>{let v=.000244140625,S=c?0:v,P=l?1:1-v;c||y.addColorStop(0,f(u(0)));for(let M=0;M<=64;M++){let C=M/64;y.addColorStop(S+C*(P-S),d(u(C)));}l||y.addColorStop(1,f(u(1)));};try{if(r===2){let[y,w,v,S]=m,[P,M]=h(y,w),[C,F]=h(v,S),R=this.ctx.createLinearGradient(P,M,C,F);return p(R),R}if(r===3){let[y,w,v,S,P,M]=m,[C,F]=h(y,w),[R,T]=h(S,P),U=n?(Math.hypot(n[0],n[1])+Math.hypot(n[2],n[3]))/2:1,N=this.ctx.createRadialGradient(C,F,Math.max(0,v*U),R,T,Math.max(0,M*U));return p(N),N}}catch{return null}return null}acquireLayerCanvas(){var n;let e=(n=this.layerPool.pop())!=null?n:document.createElement("canvas");if(e.width!==this.canvas.width||e.height!==this.canvas.height)e.width=this.canvas.width,e.height=this.canvas.height;else {let r=e.getContext("2d");if(!r)return null;r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore();}return e}releaseLayerCanvas(e){this.layerPool.length<ut.MAX_LAYER_DEPTH&&this.layerPool.push(e);}pushLayer(e,n,r,i){if(this.layerStack.length>=ut.MAX_LAYER_DEPTH)return false;let s=this.acquireLayerCanvas(),o=s==null?void 0:s.getContext("2d");return !s||!o?false:(o.setTransform(this.ctx.getTransform()),o.lineWidth=this.ctx.lineWidth,o.lineCap=this.ctx.lineCap,o.lineJoin=this.ctx.lineJoin,o.miterLimit=this.ctx.miterLimit,o.setLineDash(this.ctx.getLineDash()),o.lineDashOffset=this.ctx.lineDashOffset,o.fillStyle=this.ctx.fillStyle,o.strokeStyle=this.ctx.strokeStyle,o.globalAlpha=1,o.globalCompositeOperation="source-over",this.layerStack.push({savedCtx:this.ctx,canvas:s,alpha:n,blend:r,mask:i,kind:e,stateDepthAtPush:this.stateStack.length}),this.ctx=o,true)}popLayer(){let e=this.layerStack.pop();if(!e)return;let n=e.canvas.getContext("2d");n&&e.mask&&(n.save(),n.setTransform(1,0,0,1,0,0),n.globalAlpha=1,n.globalCompositeOperation="destination-in",n.drawImage(e.mask,0,0),n.restore(),this.releaseLayerCanvas(e.mask)),this.ctx=e.savedCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.globalAlpha=e.alpha,this.ctx.globalCompositeOperation=xi(e.blend),this.ctx.drawImage(e.canvas,0,0),this.ctx.restore(),this.releaseLayerCanvas(e.canvas);}async applySoftMaskFromExtGState(e){try{if(!this.pageResources)return;let n=this.resolveObject(this.pageResources.entries.get("ExtGState"));if(!n||!k(n))return;let r=this.resolveObject(n.entries.get(e));if(!r||!k(r))return;let i=r.entries.get("SMask");if(!i)return;if(Y(i)==="None"){for(;this.layerStack.length>0;){let a=this.layerStack[this.layerStack.length-1];if(a.kind==="smask"&&a.stateDepthAtPush===this.stateStack.length)this.popLayer();else break}return}let s=this.resolveObject(i);if(!s||!k(s))return;let o=await this.renderSMaskCanvas(s);if(!o)return;this.pushLayer("smask",1,"Normal",o);}catch{}}async renderSMaskCanvas(e){var d;let n=this.resolveObject(e.entries.get("G"));if(!n||!L(n))return null;let r=((d=Y(e.entries.get("S")))!=null?d:"Alpha")==="Luminosity",i=this.acquireLayerCanvas(),s=i==null?void 0:i.getContext("2d",{willReadFrequently:true});if(!i||!s)return null;if(r){let f=me(e.entries.get("BC"));if(s.save(),s.setTransform(1,0,0,1,0,0),f&&f.length){let m=Ne($e(f.length===1?"DeviceGray":f.length===4?"DeviceCMYK":"DeviceRGB",f));s.fillStyle=Pe(m.r,m.g,m.b);}else s.fillStyle="black";s.fillRect(0,0,i.width,i.height),s.restore();}s.setTransform(this.ctx.getTransform());let o=this.ctx,a=this.capturedTextRuns.length;this.ctx=s,this.captureSuppressed+=1;try{await this.renderFormStreamInline(n);}finally{this.captureSuppressed-=1,this.ctx=o,this.capturedTextRuns.length=a;}let c=e.entries.get("TR"),l=this.objectLoader,u=c&&l&&Y(c)!=="Identity"?f=>{let m=qt(c,f,l);return m&&m.length?Math.max(0,Math.min(1,m[0])):f}:null;try{let f=s.getImageData(0,0,i.width,i.height),m=f.data;for(let h=0;h<m.length;h+=4){let p=r?(.3*m[h]+.59*m[h+1]+.11*m[h+2])/255:m[h+3]/255,b=u?u(p):p;m[h+3]=Math.round(b*255);}s.putImageData(f,0,0);}catch{return this.releaseLayerCanvas(i),null}return i}async renderFormStreamInline(e){let n=e.decode?await e.decode():$.decodeStreamSync(e),r=Ke(n),i=this.pageResources,s=this.objectLoader,o=this.patternCache;this.patternCache=new Map;let a=this.resolveObject(e.dict.entries.get("Resources"));this.pageResources=a&&k(a)?a:this.pageResources,this.execute({op:"save_state"});let c=At(e.dict.entries.get("Matrix"));c&&this.execute({op:"set_ctm",matrix:c});let l=me(e.dict.entries.get("BBox"));l&&l.length>=4&&(this.ctx.beginPath(),this.ctx.rect(l[0],l[1],l[2]-l[0],l[3]-l[1]),this.ctx.clip());let u=this.commandIndex;this.xobjectDepth+=1;try{await this.runCommandsAsync(r);}finally{this.xobjectDepth-=1,this.commandIndex=u,this.execute({op:"restore_state"}),this.pageResources=i,this.objectLoader=s,this.patternCache=o;}}renderShadeOperator(e){try{if(!this.pageResources||!this.objectLoader)return;let n=this.resolveObject(this.pageResources.entries.get("Shading"));if(!n||!k(n))return;let r=this.resolveObject(n.entries.get(e)),i=r?L(r)?r.dict:k(r)?r:null:null;if(!i)return;let s=r&&L(r)?r:null;this.ctx.save();try{this.ctx.globalAlpha=this.state.fillAlpha;let o=me(i.entries.get("BBox"));o&&o.length>=4&&(this.ctx.beginPath(),this.ctx.rect(o[0],o[1],o[2]-o[0],o[3]-o[1]),this.ctx.clip());let a=X(this.deviceBase(),this.state.ctm);this.paintShadingWithBase(i,s,a);}finally{this.ctx.restore();}}catch{}}};ut.MAX_LAYER_DEPTH=6;var rn=ut,Sa=t=>t==="DeviceGray"||t==="CalGray"?1:t==="DeviceCMYK"?4:3,xi=t=>{switch(t){case "Normal":case "Compatible":return "source-over";case "Multiply":return "multiply";case "Screen":return "screen";case "Overlay":return "overlay";case "Darken":return "darken";case "Lighten":return "lighten";case "ColorDodge":return "color-dodge";case "ColorBurn":return "color-burn";case "HardLight":return "hard-light";case "SoftLight":return "soft-light";case "Difference":return "difference";case "Exclusion":return "exclusion";case "Hue":return "hue";case "Saturation":return "saturation";case "Color":return "color";case "Luminosity":return "luminosity";default:return "source-over"}},me=t=>!t||!B(t)?null:t.items.map(e=>{var n;return (n=A(e))!=null?n:0}),Fa=new Set(["FlateDecode","Fl","LZWDecode","LZW","ASCII85Decode","A85","ASCIIHexDecode","AHx","RunLengthDecode","RL","Crypt"]),At=t=>{let e=me(t);return !e||e.length<6?null:[e[0],e[1],e[2],e[3],e[4],e[5]]},va=(t,e,n)=>{let r=[Q(n,e[0],e[1]),Q(n,e[2],e[1]),Q(n,e[2],e[3]),Q(n,e[0],e[3])],i=r.map(x=>x.x),s=r.map(x=>x.y),o=Math.min(...i),a=Math.max(...i),c=Math.min(...s),l=Math.max(...s),u=Math.min(t[0],t[2]),d=Math.max(t[0],t[2]),f=Math.min(t[1],t[3]),m=Math.max(t[1],t[3]),h=a-o,p=l-c;if(!(h>1e-6)||!(p>1e-6))return null;let b=(d-u)/h,g=(m-f)/p;return [b,0,0,g,u-b*o,f-g*c]},Ca=t=>{if(!t||!B(t))return [false,false];let e=n=>!!n&&typeof n=="object"&&"type"in n&&n.type==="boolean"&&n.value;return [e(t.items[0]),e(t.items[1])]},Pe=(t,e,n)=>`rgb(${Math.round(ie(t)*255)},${Math.round(ie(e)*255)},${Math.round(ie(n)*255)})`,Oe=t=>{if(t.space==="rgb")return Pe(t.r,t.g,t.b);if(t.space==="gray")return Pe(t.gray,t.gray,t.gray);let e=sn(t.c,t.m,t.y,t.k);return Pe(e.r,e.g,e.b)},Ne=t=>{if(t.space==="rgb")return {r:ie(t.r),g:ie(t.g),b:ie(t.b)};if(t.space==="gray"){let e=ie(t.gray);return {r:e,g:e,b:e}}return sn(t.c,t.m,t.y,t.k)},Se=t=>{switch(t){case "DeviceRGB":case "RGB":return "DeviceRGB";case "DeviceGray":case "G":case "Gray":return "DeviceGray";case "DeviceCMYK":case "CMYK":return "DeviceCMYK";default:return null}},bi=t=>{var r;let e=Y(t),n=e?Se(e):null;if(n)return n;if(t&&B(t)&&t.items.length>0){let i=Y(t.items[0]),s=i?Se(i):null;if(s)return s;if(i==="ICCBased"){let o=t.items[1];if(o&&L(o)){let a=Math.floor((r=A(o.dict.entries.get("N")))!=null?r:0);if(a===1)return "DeviceGray";if(a===3)return "DeviceRGB";if(a===4)return "DeviceCMYK"}}if(i==="CalGray")return "DeviceGray";if(i==="CalRGB")return "DeviceRGB";if(i==="Lab")return "Lab";if(i==="Separation")return "Separation";if(i==="DeviceN")return "DeviceN";if(i==="Indexed")return "Indexed";if(i==="Pattern")return "Pattern"}return null},Aa=(t,e,n)=>{let r=(t+16)/116,i=e/500+r,s=r-n/200,o=h=>h>.206897?h*h*h:(h-16/116)/7.787,a=.9642*o(i),c=1*o(r),l=.8249*o(s),u=3.1338561*a-1.6168667*c-.4906146*l,d=-0.9787684*a+1.9161415*c+.033454*l,f=.0719453*a-.2289914*c+1.4052427*l,m=h=>h<=.0031308?12.92*h:1.055*Math.pow(Math.max(0,h),1/2.4)-.055;return {r:ie(m(u)),g:ie(m(d)),b:ie(m(f))}},$e=(t,e)=>{var r,i,s,o,a,c,l,u,d,f,m,h,p,b,g,x,D;let n=Se(t);if(n==="DeviceGray")return {space:"gray",gray:(r=e[0])!=null?r:0};if(n==="DeviceCMYK")return {space:"cmyk",c:(i=e[0])!=null?i:0,m:(s=e[1])!=null?s:0,y:(o=e[2])!=null?o:0,k:(a=e[3])!=null?a:0};if(n==="DeviceRGB"||!n&&e.length===3)return {space:"rgb",r:(c=e[0])!=null?c:0,g:(l=e[1])!=null?l:0,b:(u=e[2])!=null?u:0};if(t==="Lab"){let y=Aa((d=e[0])!=null?d:0,(f=e[1])!=null?f:0,(m=e[2])!=null?m:0);return {space:"rgb",r:y.r,g:y.g,b:y.b}}return t==="Separation"||t==="DeviceN"?{space:"gray",gray:1-((h=e[0])!=null?h:0)}:e.length>=4?{space:"cmyk",c:(p=e[0])!=null?p:0,m:(b=e[1])!=null?b:0,y:(g=e[2])!=null?g:0,k:(x=e[3])!=null?x:0}:{space:"gray",gray:(D=e[0])!=null?D:0}},yi=t=>{if(!t)return [];let e=Y(t);return e?[e]:B(t)?t.items.map(n=>Y(n)).filter(n=>n!==null):[]},$n=async(t,e)=>typeof createImageBitmap=="function"?createImageBitmap(new Blob([t.slice().buffer],{type:e})):new Promise((n,r)=>{let i=new Image,s=URL.createObjectURL(new Blob([t.slice().buffer],{type:e}));i.onload=()=>{URL.revokeObjectURL(s),n(i);},i.onerror=()=>{URL.revokeObjectURL(s),r(new Error(`Could not decode image ${e}`));},i.src=s;}),Wn=t=>{"close"in t&&typeof t.close=="function"&&t.close();},Ma=(t,e)=>{let n=t.entries.get("Widths");if(!n||!B(n))return;let r=new Map;return n.items.forEach((i,s)=>{let o=A(i);o!==null&&r.set(e+s,o);}),r.size>0?r:void 0},Di=(t,e)=>{let n=t.entries.get("DescendantFonts");if(!n||!B(n)||n.items.length===0)return;let r=e(n.items[0]);return r&&k(r)?r:void 0},wi=(t,e,n)=>{let r=n(t.entries.get("FontDescriptor"));if(r&&k(r))return r;let i=n(e==null?void 0:e.entries.get("FontDescriptor"));return i&&k(i)?i:void 0},ka=t=>{let e=t==null?void 0:t.entries.get("W");if(!e||!B(e))return;let n=new Map,r=e.items;for(let i=0;i<r.length;i+=1){let s=A(r[i]);if(s===null)continue;let o=r[i+1];if(o&&B(o)){o.items.forEach((l,u)=>{let d=A(l);d!==null&&n.set(s+u,d);}),i+=1;continue}let a=A(o),c=A(r[i+2]);if(!(a===null||c===null)){for(let l=s;l<=a;l+=1)n.set(l,c);i+=2;}}return n.size>0?n:void 0},Ra=t=>{let e=A(t==null?void 0:t.entries.get("DW"));return e!=null?e:void 0},Ea=t=>{let e=t.entries.get("FontDescriptor");if(!e||!k(e))return;let n=A(e.entries.get("MissingWidth"));return n!=null?n:void 0},Oa=(t,e,n,r,i,s,o)=>{let a=n.isComposite?Ba(t,n.toUnicode):Array.from(t).map((f,m)=>({code:f,bytes:t.slice(m,m+1)})),c=Array.from(e),l=!!n.widths||n.defaultWidth!==void 0,u=0;return {glyphs:a.map(f=>{var x,D,y;let m=n.toUnicode?Ie(f.code,n.toUnicode):null,h=(x=m!=null?m:c[u])!=null?x:"";u+=Math.max(1,Array.from(h).length);let p=(y=(D=n.widths)==null?void 0:D.get(f.code))!=null?y:n.defaultWidth,b;p!==void 0?b=p/1e3*r:o?b=o(h):b=(n.isComposite?1e3:500)/1e3*r,b>0||(b=o?Math.max(.01,o(h||" ")):r*.5);let g=i+(h===" "||f.code===32?s:0);return {text:h,code:f.code,bytes:f.bytes,glyphWidth:b,advance:b+g}}),hasPdfMetrics:l}},Xn=t=>{var r;let e=on((r=t.baseFontName)!=null?r:"").toLowerCase(),n=Mi(e);return t.registeredFamily?`"${t.registeredFamily}", ${n}`:n},Pi=(t,e)=>{var o,a,c;let r=on((o=t.baseFontName)!=null?o:"").toLowerCase(),i=(a=t.fontStyle)!=null?a:r.includes("italic")||r.includes("oblique")?"italic":"normal",s=String((c=t.fontWeight)!=null?c:r.includes("bold")||r.includes("black")?700:400);return t.registeredFamily?`${e}px ${Xn(t)}`:`${i} ${s} ${e}px ${Mi(r)}`},Ta=(t,e)=>{var o;let n=on(t!=null?t:"").toLowerCase(),r=A(e==null?void 0:e.entries.get("FontWeight"));if(r!==null)return Math.max(100,Math.min(900,Math.round(r/100)*100));let i=Math.floor((o=A(e==null?void 0:e.entries.get("Flags")))!=null?o:0),s=A(e==null?void 0:e.entries.get("StemV"));if(n.includes("bold")||n.includes("black")||n.includes("heavy")||(i&262144)!==0||s!==null&&s>=120)return 700},Ia=(t,e)=>{var s;let n=on(t!=null?t:"").toLowerCase(),r=Math.floor((s=A(e==null?void 0:e.entries.get("Flags")))!=null?s:0),i=A(e==null?void 0:e.entries.get("ItalicAngle"));if(n.includes("italic")||n.includes("oblique")||(r&64)!==0||i!==null&&i!==0)return "italic"},on=t=>/^[A-Z]{6}\+/.test(t)?t.slice(7):t,Mi=t=>t.includes("courier")?'"Courier New", Courier, monospace':t.includes("times")||t.includes("serif")?'"Times New Roman", Times, serif':t.includes("symbol")?'Symbol, "Times New Roman", serif':t.includes("zapfdingbats")||t.includes("dingbats")?'ZapfDingbats, "Times New Roman", serif':(t.includes("helvetica")||t.includes("arial"),"Helvetica, Arial, sans-serif"),Ba=(t,e)=>{var r,i;if(t.length===0)return [];if(e!=null&&e.codeSpaceRanges.length){let s=Array.from(new Set(e.codeSpaceRanges.map(a=>a.byteLength))).sort((a,c)=>c-a),o=[];for(let a=0;a<t.length;){let c=0,l=0;for(let u of s){if(a+u>t.length)continue;let d=ft(t,a,u);if(d!==null&&Ei(d,u,e.codeSpaceRanges)){c=u,l=d;break}}c===0&&(c=Math.min(2,t.length-a),l=(r=ft(t,a,c))!=null?r:t[a]),o.push({code:l,bytes:t.slice(a,a+c)}),a+=c;}return o}let n=[];for(let s=0;s<t.length;){let o=Math.min(2,t.length-s);n.push({code:(i=ft(t,s,o))!=null?i:t[s],bytes:t.slice(s,s+o)}),s+=o;}return n},Ua=t=>{var i;if(!t)return null;let e=t.match(/^uni([0-9A-Fa-f]{4,6})$/);if(e){let s=parseInt(e[1],16);try{return String.fromCodePoint(s)}catch{return null}}let n=t.match(/^u([0-9A-Fa-f]{5,6})$/);if(n){let s=parseInt(n[1],16);try{return String.fromCodePoint(s)}catch{return null}}return t.length===1?t:(i={space:" ",exclam:"!",quotedbl:'"',numbersign:"#",dollar:"$",percent:"%",ampersand:"&",quotesingle:"'",parenleft:"(",parenright:")",asterisk:"*",plus:"+",comma:",",hyphen:"-",period:".",slash:"/",zero:"0",one:"1",two:"2",three:"3",four:"4",five:"5",six:"6",seven:"7",eight:"8",nine:"9",colon:":",semicolon:";",less:"<",equal:"=",greater:">",question:"?",at:"@",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",bracketleft:"[",backslash:"\\",bracketright:"]",asciicircum:"^",underscore:"_",grave:"`",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z",braceleft:"{",bar:"|",braceright:"}",asciitilde:"~",exclamdown:"\xA1",cent:"\xA2",sterling:"\xA3",currency:"\xA4",yen:"\xA5",brokenbar:"\xA6",section:"\xA7",dieresis:"\xA8",copyright:"\xA9",ordfeminine:"\xAA",guillemotleft:"\xAB",logicalnot:"\xAC",minus:"\u2212",registered:"\xAE",macron:"\xAF",degree:"\xB0",plusminus:"\xB1",twosuperior:"\xB2",threesuperior:"\xB3",acute:"\xB4",mu:"\xB5",paragraph:"\xB6",periodcentered:"\xB7",cedilla:"\xB8",onesuperior:"\xB9",ordmasculine:"\xBA",guillemotright:"\xBB",onequarter:"\xBC",onehalf:"\xBD",threequarters:"\xBE",questiondown:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acircumflex:"\xC2",Atilde:"\xC3",Adieresis:"\xC4",Aring:"\xC5",AE:"\xC6",Ccedilla:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecircumflex:"\xCA",Edieresis:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icircumflex:"\xCE",Idieresis:"\xCF",Eth:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocircumflex:"\xD4",Otilde:"\xD5",Odieresis:"\xD6",multiply:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucircumflex:"\xDB",Udieresis:"\xDC",Yacute:"\xDD",Thorn:"\xDE",germandbls:"\xDF",agrave:"\xE0",aacute:"\xE1",acircumflex:"\xE2",atilde:"\xE3",adieresis:"\xE4",aring:"\xE5",ae:"\xE6",ccedilla:"\xE7",egrave:"\xE8",eacute:"\xE9",ecircumflex:"\xEA",edieresis:"\xEB",igrave:"\xEC",iacute:"\xED",icircumflex:"\xEE",idieresis:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocircumflex:"\xF4",otilde:"\xF5",odieresis:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucircumflex:"\xFB",udieresis:"\xFC",yacute:"\xFD",thorn:"\xFE",ydieresis:"\xFF",OE:"\u0152",oe:"\u0153",Scaron:"\u0160",scaron:"\u0161",Ydieresis:"\u0178",Zcaron:"\u017D",zcaron:"\u017E",florin:"\u0192",circumflex:"\u02C6",tilde:"\u02DC",endash:"\u2013",emdash:"\u2014",quotedblleft:"\u201C",quotedblright:"\u201D",quoteleft:"\u2018",quoteright:"\u2019",quotesinglbase:"\u201A",quotedblbase:"\u201E",dagger:"\u2020",daggerdbl:"\u2021",bullet:"\u2022",ellipsis:"\u2026",perthousand:"\u2030",guilsinglleft:"\u2039",guilsinglright:"\u203A",fraction:"\u2044",Euro:"\u20AC",trademark:"\u2122",fi:"\uFB01",fl:"\uFB02",ff:"\uFB00",ffi:"\uFB03",ffl:"\uFB04",lslash:"\u0142",Lslash:"\u0141",dotaccent:"\u02D9",ring:"\u02DA",caron:"\u02C7",breve:"\u02D8",dotlessi:"\u0131",hungarumlaut:"\u02DD",ogonek:"\u02DB",Delta:"\u2206",Omega:"\u03A9",pi:"\u03C0",infinity:"\u221E",lessequal:"\u2264",greaterequal:"\u2265",notequal:"\u2260",approxequal:"\u2248",radical:"\u221A",summation:"\u2211",product:"\u220F",integral:"\u222B",partialdiff:"\u2202",lozenge:"\u25CA",apple:"\uF8FF"}[t])!=null?i:null},Si=(()=>{let t=[[128,196],[129,197],[130,199],[131,201],[132,209],[133,214],[134,220],[135,225],[136,224],[137,226],[138,228],[139,227],[140,229],[141,231],[142,233],[143,232],[144,234],[145,235],[146,237],[147,236],[148,238],[149,239],[150,241],[151,243],[152,242],[153,244],[154,246],[155,250],[156,249],[157,251],[158,252],[159,8224],[160,176],[161,162],[162,163],[163,167],[164,8226],[165,182],[166,223],[167,174],[168,169],[169,8482],[170,180],[171,168],[172,8800],[173,198],[174,216],[175,8734],[176,177],[177,8804],[178,8805],[179,165],[180,181],[181,8706],[182,8721],[183,8719],[184,960],[185,8747],[186,170],[187,186],[188,937],[189,230],[190,248],[191,191],[192,161],[193,172],[194,8730],[195,402],[196,8776],[197,8710],[198,171],[199,187],[200,8230],[201,160],[202,192],[203,195],[204,213],[205,338],[206,339],[207,8211],[208,8212],[209,8220],[210,8221],[211,8216],[212,8217],[213,247],[214,9674],[215,255],[216,376],[217,8260],[218,8364],[219,8249],[220,8250],[221,64257],[222,64258],[223,8225],[224,183],[225,8218],[226,8222],[227,8240],[228,194],[229,202],[230,193],[231,203],[232,200],[233,205],[234,206],[235,207],[236,204],[237,211],[238,212],[239,210],[240,218],[241,219],[242,217],[243,305],[244,710],[245,732],[246,175],[247,728],[248,729],[249,730],[250,184],[251,733],[252,731],[253,711],[254,254],[255,255]],e=new Map;for(let[n,r]of t)e.set(n,String.fromCodePoint(r));return e})(),Fi=(()=>{let t=[[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]],e=new Map;for(let[n,r]of t)e.set(n,String.fromCodePoint(r));return e})(),La=(t,e)=>{if(!t)return;let n=e(t);if(!n)return;let r=Y(n);if(r)return r==="MacRomanEncoding"?new Map(Si):r==="WinAnsiEncoding"?new Map(Fi):void 0;if(!k(n))return;let i=n,s=Y(i.entries.get("BaseEncoding")),o;s==="MacRomanEncoding"?o=new Map(Si):s==="WinAnsiEncoding"?o=new Map(Fi):o=new Map;let a=i.entries.get("Differences");if(!a||!B(a))return o.size>0?o:void 0;let c=0;for(let l of a.items){let u=A(l);if(u!==null)c=Math.floor(u);else {let d=Y(l);if(d){let f=Ua(d);f&&o.set(c,f),c++;}}}return o.size>0?o:void 0},_a=(t,e)=>{let n=new Map;if(!t)return n;let r=e(t);if(!r||!k(r))return n;let i=r.entries.get("Differences");if(!i||!B(i))return n;let s=0;for(let o of i.items){let a=A(o);if(a!==null)s=Math.floor(a);else {let c=Y(o);c&&(n.set(s,c),s++);}}return n},sn=(t,e,n,r)=>({r:(1-ie(t))*(1-ie(r)),g:(1-ie(e))*(1-ie(r)),b:(1-ie(n))*(1-ie(r))}),ie=t=>!Number.isFinite(t)||t<0?0:t>1?1:t,ja=(t,e,n)=>Number.isFinite(t)?Math.min(n,Math.max(e,t)):e,Na=t=>({...t,ctm:[...t.ctm],textMatrix:[...t.textMatrix],textLineMatrix:[...t.textLineMatrix],fillColor:{...t.fillColor},strokeColor:{...t.strokeColor},dashArray:[...t.dashArray]}),Q=(t,e,n)=>({x:t[0]*e+t[2]*n+t[4],y:t[1]*e+t[3]*n+t[5]}),en=()=>({subtype:"Unknown",baseFontName:void 0,isComposite:false,firstChar:void 0,widths:void 0,defaultWidth:void 0,toUnicode:null}),$a=t=>{let e={bfChar:new Map,bfRange:[],codeSpaceRanges:[],cmapType:0,isUsable:true},n=t.match(/\/CMapType\s+(\d+)\s+def/);n&&(e.cmapType=Number.parseInt(n[1],10),e.isUsable=e.cmapType!==0);let r=t.replace(/\r\n/g,`
4
4
  `).replace(/\r/g,`
5
- `),i=Gs(r);for(let s=0;s<i.length;){let o=i[s];if(o==="usecmap"){let a=s>0?i[s-1]:"(unknown)";console.warn("[PageRenderer][CMap] usecmap reference not resolved",{inheritedName:a}),s+=1;continue}if(o==="begincmap"){for(s+=1;s<i.length&&i[s]!=="endcmap";){let a=i[s];if(Ys(a))break;let c=i[s+1];if(we(a)&&we(c)){e.bfChar.set(Et(a),Tt(Le(c))),s+=2;continue}s+=1;}continue}if(o==="beginbfchar"||o==="begincidchar"){for(s+=1;s<i.length&&i[s]!=="endbfchar"&&i[s]!=="endcidchar";){let a=i[s],c=i[s+1];if(we(a)&&we(c)){e.bfChar.set(Et(a),Tt(Le(c))),s+=2;continue}if(it(a)&&we(c)){e.bfChar.set(Number.parseInt(a,10),Tt(Le(c))),s+=2;continue}if(it(a)&&it(c)){let l=Number.parseInt(a,10),f=Number.parseInt(c,10);if(Number.isFinite(l)&&Number.isFinite(f))try{e.bfChar.set(l,String.fromCodePoint(f));}catch{e.bfChar.set(l,"\uFFFD");}s+=2;continue}s+=1;}s<i.length&&(s+=1);continue}if(o==="begincodespacerange"){for(s+=1;s<i.length&&i[s]!=="endcodespacerange";){let a=i[s],c=i[s+1];if(!we(a)||!we(c)){s+=1;continue}let l=Le(a),f=Le(c),d=Math.max(l.length,f.length)/2;d>0&&e.codeSpaceRanges.push({start:Number.parseInt(l,16),end:Number.parseInt(f,16),byteLength:d}),s+=2;}s<i.length&&(s+=1);continue}if(o==="beginbfrange"||o==="begincidrange"){for(s+=1;s<i.length&&i[s]!=="endbfrange"&&i[s]!=="endcidrange";){let a=i[s],c=i[s+1];if(!a||!c){s+=1;continue}let l=Mr(a),f=Mr(c);if(l===null||f===null){s+=1;continue}let d=i[s+2];if(!d){s+=2;continue}if(d==="["){let u=[],h=s+3;for(;h<i.length&&i[h]!=="]";)we(i[h])&&u.push(Tt(Le(i[h]))),h+=1;e.bfRange.push({start:l,end:f,mapped:u}),s=h<i.length?h+1:h;continue}if(we(d)){e.bfRange.push({start:l,end:f,unicodeStart:Et(d)}),s+=3;continue}if(it(d)){e.bfRange.push({start:l,end:f,unicodeStart:Number.parseInt(d,10)}),s+=3;continue}s+=1;}s<i.length&&(s+=1);continue}s+=1;}return e},Gs=t=>{let e=[],n=0;for(;n<t.length;){for(;n<t.length&&/\s/.test(t[n]);)n+=1;if(n>=t.length)break;if(t[n]==="%"){for(;n<t.length&&t[n]!==`
6
- `;)n+=1;continue}if(t[n]==="<"){let i=n;for(n+=1;n<t.length&&t[n]!==">";)n+=1;n<t.length&&(n+=1),e.push(t.slice(i,n));continue}if(t[n]==="["||t[n]==="]"){e.push(t[n]),n+=1;continue}let r=n;for(;n<t.length&&!/[\s<\[\]%]/.test(t[n]);)n+=1;if(r<n){let i=t.slice(r,n),s=Xs(i);s?(s.count&&e.push(s.count),e.push(s.keyword)):e.push(i);}}return e},Xs=t=>{let e=t.match(/^(\d+)?(begin\w+|end\w+|usecmap|begincmap|endcmap)$/i);return e?{count:e[1],keyword:e[2]}:null},Ys=t=>t?t==="beginbfchar"||t==="endbfchar"||t==="beginbfrange"||t==="endbfrange"||t==="begincidchar"||t==="endcidchar"||t==="begincidrange"||t==="endcidrange"||t==="begincodespacerange"||t==="endcodespacerange":false,we=t=>!!t&&t.startsWith("<")&&t.endsWith(">"),it=t=>!!t&&/^\d+$/.test(t),Le=t=>t.slice(1,-1),Et=t=>Number.parseInt(Le(t),16),Mr=t=>we(t)?Et(t):it(t)?Number.parseInt(t,10):null,Tt=t=>{let e=t.length%2===0?t:`0${t}`;if(e.length===0)return "";if(e.length<=4){let r=Number.parseInt(e,16);if(!Number.isFinite(r))return "\uFFFD";try{return String.fromCodePoint(r)}catch{return "\uFFFD"}}let n="";for(let r=0;r<e.length;r+=4){let i=e.slice(r,r+4).padStart(4,"0"),s=Number.parseInt(i,16);if(!Number.isFinite(s)){n+="\uFFFD";continue}try{n+=String.fromCodePoint(s);}catch{n+="\uFFFD";}}return n},Hs=(t,e)=>{var r;console.log(`=== CMap debug for font ${e} ===`),console.log(`cmapType: ${t.cmapType}`),console.log(`isUsable: ${t.isUsable}`),console.log(`bfChar entries: ${t.bfChar.size}`),console.log(`bfRange entries: ${t.bfRange.length}`),console.log(`codespace ranges: ${t.codeSpaceRanges.length}`);let n=0;for(let[i,s]of t.bfChar.entries()){if(n>=10)break;let o=s.codePointAt(0);console.log(` 0x${i.toString(16).padStart(4,"0")} -> "${s}" (U+${(r=o==null?void 0:o.toString(16).toUpperCase())!=null?r:"????"})`),n+=1;}for(let i of t.bfRange.slice(0,5))typeof i.unicodeStart=="number"?console.log(` range 0x${i.start.toString(16).padStart(4,"0")}-0x${i.end.toString(16).padStart(4,"0")} -> U+${i.unicodeStart.toString(16).toUpperCase()}`):i.mapped&&console.log(` range 0x${i.start.toString(16).padStart(4,"0")}-0x${i.end.toString(16).padStart(4,"0")} -> [mapped:${i.mapped.length}]`);for(let i of t.codeSpaceRanges.slice(0,5))console.log(` codespace ${i.byteLength}b 0x${i.start.toString(16).padStart(i.byteLength*2,"0")}-0x${i.end.toString(16).padStart(i.byteLength*2,"0")}`);},Ae=(t,e)=>{let n=e.bfChar.get(t);if(n!==void 0)return n;for(let r of e.bfRange)if(!(t<r.start||t>r.end)){if(r.mapped){let i=t-r.start;return i>=0&&i<r.mapped.length?r.mapped[i]:null}if(typeof r.unicodeStart=="number"){let i=r.unicodeStart+(t-r.start);return String.fromCodePoint(i)}}return null},Ks=(t,e,n,r,i=false)=>{var o,a;if(n){let c=oo(e),l=Js(e),d=(l?[{mode:"raw",bytes:t}]:qs(t)).map(x=>({mode:x.mode,attempt:zs(x.bytes,e,c)})),u=Zs(d),h=u.attempt,m=lo(h)?uo(t):null,p=fo(h,m);if(i&&console.debug("[PageRenderer][CMap] decode strategy",{font:r!=null?r:"?",mapped:h.mapped,unmapped:h.unmapped,utf16Score:(o=m==null?void 0:m.score)!=null?o:null,codespaceRanges:e.codeSpaceRanges.length,inferredCodeLengths:c,payloadMode:u.mode,sparseToUnicode:l,chosen:p===m?"utf16be":"cmap"}),i&&h.unmappedGlyphs.length>0){let x=h.unmappedGlyphs.slice(0,12).map(P=>`0x${P.toString(16).padStart(4,"0")}`),g=ao(h.unmappedGlyphs,c),b=l?`${r!=null?r:"?"}|sparse-tounicode`:`${r!=null?r:"?"}|${u.mode}`;xr.has(b)||(xr.add(b),console.warn("[PageRenderer][CMap] unmapped composite glyphs",{font:r!=null?r:"?",count:h.unmappedGlyphs.length,payloadMode:u.mode,sparseToUnicode:l,rootCause:l?`ToUnicode is too sparse (bfChar=${e.bfChar.size}, bfRange=${e.bfRange.length}); Unicode recovery is fundamentally limited for this font.`:void 0,sample:x,topMissing:g.topMissing,mappingHints:g.mappingHints,note:"Use mappingHints as candidate ToUnicode entries (<src> <dst>) for manual verification."}));}return (a=p==null?void 0:p.text)!=null?a:h.text}let s="";for(let c=0;c<t.length;c++){let l=Ae(t[c],e);s+=l!==null?l:String.fromCharCode(t[c]);}return s},Vs=(t,e)=>{let n="",r=0;for(;r+1<t.length;){let i=t[r],s=t[r+1],o=i<<8|s,a=Ae(o,e);if(a!==null){n+=a,r+=2;continue}if(s>=32&&s<=126){n+=String.fromCharCode(s),r+=2;continue}if(i>=32&&i<=126){n+=String.fromCharCode(i),r+=2;continue}r+=2;}if(r<t.length){let i=t[r];i>=32&&i<=126&&(n+=String.fromCharCode(i));}return n},zs=(t,e,n)=>e.codeSpaceRanges.length>0?io(t,e):so(t,e,n),qs=t=>{var o;let e=[{mode:"raw",bytes:t}],n=new Set([`raw:${t.length}:${(o=t[0])!=null?o:-1}`]),r=(a,c)=>{var f,d;if(!c||c.length===0)return;let l=`${a}:${c.length}:${(f=c[0])!=null?f:-1}:${(d=c[1])!=null?d:-1}`;n.has(l)||(n.add(l),e.push({mode:a,bytes:c}));},i=Qs(t);r("zero-stripped",i);let s=eo(t);return r("pair-swapped",s),r("ascii-hex",mn(t)),i&&r("zero-stripped+ascii-hex",mn(i)),s&&r("pair-swapped+ascii-hex",mn(s)),e},Js=t=>t.bfChar.size+t.bfRange.length<=2,Zs=t=>{let e=t[0],n=kr(e.attempt);for(let r=1;r<t.length;r+=1){let i=t[r],s=kr(i.attempt);s>n+1&&(e=i,n=s);}return e},Qs=t=>{if(t.length<4||t.length%2!==0)return null;let e=0,n=0;for(let a=0;a<t.length;a+=2)t[a]===0&&(e+=1),t[a+1]===0&&(n+=1);let r=t.length/2,i=e>=Math.floor(r*.7),s=n>=Math.floor(r*.7);if(!i&&!s)return null;let o=new Uint8Array(r);for(let a=0;a<r;a+=1)o[a]=i?t[a*2+1]:t[a*2];return o},eo=t=>{if(t.length<2||t.length%2!==0)return null;let e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=2)e[n]=t[n+1],e[n+1]=t[n];return e},kr=t=>t.mapped*2-t.unmapped,mn=t=>{if(t.length<8)return null;let e=0,n=0,r=0,i=[];for(let o of t)if(!to(o)){if(n+=1,!no(o))return null;(o>=65&&o<=70||o>=97&&o<=102)&&(r+=1),e+=1,i.push(String.fromCharCode(o));}if(n<8||e!==n||e%2!==0||r===0)return null;let s=new Uint8Array(e/2);for(let o=0;o<s.length;o+=1){let a=Rr(i[o*2]),c=Rr(i[o*2+1]);if(a<0||c<0)return null;s[o]=a<<4|c;}return s},to=t=>t===32||t===9||t===10||t===13,no=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,Rr=t=>t>="0"&&t<="9"?t.charCodeAt(0)-48:t>="a"&&t<="f"?t.charCodeAt(0)-97+10:t>="A"&&t<="F"?t.charCodeAt(0)-65+10:-1,ro=(t,e)=>{let n="",r=0,i=0,s=[];for(let o=0;o<t.length;){if(o+1<t.length){let c=t[o]<<8|t[o+1],l=Ae(c,e);if(l!==null){n+=l,r+=1,o+=2;continue}let f=Ae(t[o],e),d=Ae(t[o+1],e);if(f!==null||d!==null){n+="\uFFFD\uFFFD",i+=1,s.push(c),o+=2;continue}n+="\uFFFD",i+=1,s.push(c),o+=2;continue}let a=Ae(t[o],e);a!==null?(n+=a,r+=1):(n+="\uFFFD",i+=1,s.push(t[o])),o+=1;}return {text:n,mapped:r,unmapped:i,unmappedGlyphs:s}},io=(t,e)=>{let n=Array.from(new Set(e.codeSpaceRanges.map(a=>a.byteLength))).sort((a,c)=>c-a);if(n.length===0)return ro(t,e);let r="",i=0,s=0,o=[];for(let a=0;a<t.length;){let c=0,l=null;for(let d of n){if(a+d>t.length)continue;let u=ze(t,a,d);if(u!==null&&jr(u,d,e.codeSpaceRanges)){c=d,l=u;break}}if(c>0&&l!==null){let d=Ae(l,e);d!==null?(r+=d,i+=1):(r+="\uFFFD",s+=1,o.push(l)),a+=c;continue}let f=a+1<t.length?t[a]<<8|t[a+1]:t[a];r+="\uFFFD",s+=1,o.push(f),a+=1;}return {text:r,mapped:i,unmapped:s,unmappedGlyphs:o}},so=(t,e,n)=>{var c,l;let r=n.length>0?[...n].sort((f,d)=>d-f):[2,1],i="",s=0,o=0,a=[];for(let f=0;f<t.length;){let d=0,u=null;for(let p of r){if(f+p>t.length)continue;let x=ze(t,f,p);if(x===null)continue;let g=Ae(x,e);if(g!==null){u=g,d=p;break}}if(u!==null&&d>0){i+=u,s+=1,f+=d;continue}let h=(c=r[r.length-1])!=null?c:1,m=(l=ze(t,f,Math.min(h,t.length-f)))!=null?l:t[f];i+="\uFFFD",o+=1,a.push(m),f+=Math.min(h,t.length-f);}return {text:i,mapped:s,unmapped:o,unmappedGlyphs:a}},oo=t=>{let e=new Set;for(let r of t.codeSpaceRanges)r.byteLength>=1&&r.byteLength<=4&&e.add(r.byteLength);for(let r of t.bfChar.keys())e.add(pn(r));for(let r of t.bfRange)e.add(pn(r.start)),e.add(pn(r.end));let n=Array.from(e).filter(r=>r>=1&&r<=4);return n.length===0?[2,1]:n.sort((r,i)=>i-r)},pn=t=>t<=255?1:t<=65535?2:t<=16777215?3:4,ao=(t,e)=>{var c;let n=new Map;for(let l of t)n.set(l,((c=n.get(l))!=null?c:0)+1);let i=Array.from(n.entries()).sort((l,f)=>f[1]-l[1]).slice(0,8),s=i.map(([l,f])=>({glyph:`0x${l.toString(16).padStart(4,"0")}`,count:f})),o=e.length>0?e[e.length-1]:2,a=i.map(([l])=>co(l,o)).filter(l=>l!==null);return {topMissing:s,mappingHints:a}},co=(t,e)=>{let n=t.toString(16).padStart(Math.max(4,e*2),"0"),r=t&255;if(r>=32&&r<=126){let i=r.toString(16).toUpperCase().padStart(4,"0");return {glyph:`0x${n}`,candidateUnicode:`U+${i} (${String.fromCharCode(r)})`,reason:"Printable ASCII low-byte candidate",cmapLine:`<${n}> <${i}>`}}if(t>=32&&t<=126){let i=t.toString(16).toUpperCase().padStart(4,"0");return {glyph:`0x${n}`,candidateUnicode:`U+${i} (${String.fromCharCode(t)})`,reason:"Direct ASCII glyph code candidate",cmapLine:`<${n}> <${i}>`}}return null},lo=t=>t.text.length===0?false:t.mapped>0?t.unmapped>=t.mapped*3:t.unmapped>0,uo=t=>{var s;let e=Er(t),n=Tr(e),r=((s=e.match(/\uFFFD/g))!=null?s:[]).length,i=n-r*3;return {text:e,mapped:n,unmapped:r,unmappedGlyphs:[],printable:n,score:i}},fo=(t,e)=>{if(!e)return t;let n=ho(t.text);return mo(e.text)&&e.score>=n+8?e:t},ho=t=>{var r;let e=Tr(t),n=((r=t.match(/\uFFFD/g))!=null?r:[]).length;return e-n*3},Tr=t=>{var n;let e=0;for(let r of t){let i=(n=r.codePointAt(0))!=null?n:0;if(i===9||i===10||i===13){e+=1;continue}if(i>=32&&i<=126){e+=2;continue}if(i>=160&&i<=591){e+=1;continue}}return e},mo=t=>{var i,s;if(!t||((i=t.match(/\uFFFD/g))!=null?i:[]).length>Math.floor(t.length*.2))return false;let n=0,r=0;for(let o of t){let a=(s=o.codePointAt(0))!=null?s:0;if(a>=32&&a<=126){n+=1;continue}(a>=12288&&a<=12351||a>=8592&&a<=8703)&&(r+=1);}return n>=8&&n*2>=t.length?true:(r>0&&r*2>=t.length,false)},V=t=>t?typeof t=="string"?t:typeof t=="object"&&"type"in t&&t.type==="name"&&"value"in t?String(t.value):null:null,Er=t=>{if(t.length<2)return new TextDecoder("latin1").decode(t);let e="";for(let n=0;n+1<t.length;n+=2){let r=t[n]<<8|t[n+1];e+=String.fromCharCode(r);}return t.length%2!==0&&(e+="\uFFFD"),e},po=t=>{var e,n,r,i,s,o,a;return {length:t.length,beginbfchar:((e=t.match(/beginbfchar/g))!=null?e:[]).length,beginbfrange:((n=t.match(/beginbfrange/g))!=null?n:[]).length,begincidchar:((r=t.match(/begincidchar/g))!=null?r:[]).length,begincidrange:((i=t.match(/begincidrange/g))!=null?i:[]).length,begincodespacerange:((s=t.match(/begincodespacerange/g))!=null?s:[]).length,usecmap:((o=t.match(/usecmap/g))!=null?o:[]).length,hexTokens:((a=t.match(/<[0-9a-fA-F]+>/g))!=null?a:[]).length,preview:t.slice(0,220)}},Ce=t=>{var e,n,r;if(!t)return "undefined";if(typeof t=="string")return `string:${t}`;if(typeof t=="number")return "number";if(typeof t=="boolean")return "boolean";if(typeof t=="object"&&"type"in t){let i=String((e=t.type)!=null?e:"unknown");return i==="ref"&&"objectNumber"in t?`ref:${String((n=t.objectNumber)!=null?n:"?")}`:i==="name"&&"value"in t?`name:${String((r=t.value)!=null?r:"")}`:i}return typeof t},ze=(t,e,n)=>{if(n<1||n>4||e+n>t.length)return null;let r=0;for(let i=0;i<n;i+=1)r=r<<8|t[e+i];return r>>>0},jr=(t,e,n)=>{for(let r of n)if(r.byteLength===e&&t>=r.start&&t<=r.end)return true;return false};var xo=[[/times|serif|georgia|cambria|garamond|minion/,"Times"],[/courier|mono|consol/,"Courier"]],Ir=(t,e={})=>{let n=(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),r="Helvetica";for(let[s,o]of xo)if(s.test(n)){r=o;break}let i=`${e.bold?"Bold":""}${e.italic?"Italic":""}`;return i?`${r}-${i}`:r};var Br=(t,e)=>{let n=t.y+t.height,r=t.y,i=t.x+t.width;return e.maxY!==void 0&&e.maxY<n&&e.maxY>r&&(n=e.maxY),e.minY!==void 0&&e.minY>r&&e.minY<n&&(r=e.minY),e.maxRight!==void 0&&e.maxRight<i&&e.maxRight>t.x&&(i=e.maxRight),{x:t.x,y:r,width:Math.max(0,i-t.x),height:Math.max(0,n-r)}};var Bt=class{static getAllPages(e,n={}){let r=[],i=[];try{r.push("[TRAVERSE] Starting page tree traversal...");let s=e.rootRef;r.push(`[CATALOG] Root reference: ${s.objNum} ${s.genNum} R`);let o=`${s.objNum}.${s.genNum}`,a=e.objectCache.get(o);if((!a||!M(a))&&n.objectLoader)try{a=n.objectLoader(s),r.push("[CATALOG] Loaded root catalog from file");}catch(m){let p=m instanceof Error?m.message:String(m);r.push(`[WARN] Failed to load root catalog: ${p}`);}if(!a||!M(a))return r.push(`[ERROR] Root catalog not found in object cache at ${o}`),{pages:i,logs:r};let c=a;r.push("[CATALOG] \u2713 Found catalog in cache");let l=c.entries.get("Pages");if(!l)return r.push("[ERROR] /Pages reference not found in catalog"),{pages:i,logs:r};if(!q(l))return r.push("[ERROR] /Pages is not an indirect reference"),{pages:i,logs:r};let f=l;r.push(`[PAGES] Pages tree root: ${f.objNum} ${f.genNum} R`);let d=`${f.objNum}.${f.genNum}`,u=e.objectCache.get(d);if((!u||!M(u))&&n.objectLoader)try{u=n.objectLoader(f),r.push("[PAGES] Loaded pages tree root from file");}catch(m){let p=m instanceof Error?m.message:String(m);r.push(`[WARN] Failed to load pages tree root: ${p}`);}if(!u||!M(u))return r.push(`[ERROR] Pages tree object not in cache at ${d}`),r.push("[NOTE] Page tree object must be loaded before traversal can begin"),r.push("[NEXT STEP] Implement ObjectReader.resolveRef() to load from file"),{pages:i,logs:r};let h=u;return r.push("[PAGES] \u2713 Found pages tree root"),this.walkPageTree(h,f,e,i,r,n,1),r.push(`[TRAVERSE] \u2713 Complete. Found ${i.length} page(s)`),{pages:i,logs:r}}catch(s){let o=s instanceof Error?s.message:String(s);return r.push(`[ERROR] Traversal failed: ${o}`),{pages:i,logs:r}}}static walkPageTree(e,n,r,i,s,o,a){let c=e.entries.get("Type"),l=this.extractName(c);if(l==="Pages"){let f=e.entries.get("Kids");if(!f)return s.push(`[WARN] Pages node has no /Kids at ${n.objNum} ${n.genNum} R`),a;let d=this.extractArray(f);if(!d)return s.push("[WARN] /Kids is not an array"),a;s.push(`[NODE] Pages node with ${d.length} child(ren) at ${n.objNum}`);for(let u of d){if(!q(u)){s.push("[WARN] /Kids contains non-reference");continue}let h=u,m=`${h.objNum}.${h.genNum}`,p=r.objectCache.get(m);if((!p||!M(p))&&o.objectLoader)try{p=o.objectLoader(h),s.push(`[NODE] Loaded child page node ${h.objNum} ${h.genNum} R from file`);}catch(x){let g=x instanceof Error?x.message:String(x);s.push(`[WARN] Failed to load child node: ${g}`);}if(!p||!M(p)){s.push(`[SKIP] Child page node not in cache: ${h.objNum} ${h.genNum} R`),s.push("[NOTE] Would need ObjectReader to load from file");continue}if(a=this.walkPageTree(p,h,r,i,s,o,a),o.maxPages&&i.length>=o.maxPages)return a}return a}else if(l==="Page"){s.push(`[PAGE ${a}] Found at ${n.objNum} ${n.genNum} R`);let f=this.extractContentStreams(e,r,s,o);s.push(`[PAGE ${a}] \u2713 Found ${f.length} stream(s)`);let d=this.extractMediaBox(e),u=this.extractResources(e,r,s,o),h=this.extractNumber(e.entries.get("Rotate"));return i.push({pageNum:a,ref:n,dict:e,contentStreams:f,mediaBox:d||[0,0,612,792],resources:u,rotate:h||0}),a+1}else return s.push(`[WARN] Unknown node type: ${l}`),a}static extractContentStreams(e,n,r,i){let s=[];try{let o=e.entries.get("Contents");if(!o)return r.push("[WARN] Page has no /Contents"),s;if(U(o))s.push(o);else if(q(o)){let a=o,c=`${a.objNum}.${a.genNum}`,l=n.objectCache.get(c);if((!l||!U(l))&&i.objectLoader)try{l=i.objectLoader(a),r.push(`[STREAM] Loaded content stream ${a.objNum} ${a.genNum} R from file`);}catch(f){let d=f instanceof Error?f.message:String(f);r.push(`[WARN] Failed to load content stream ${a.objNum} ${a.genNum} R: ${d}`);}l&&U(l)?s.push(l):r.push(`[STREAM] Content stream reference not cached: ${a.objNum} ${a.genNum} R`);}else if(j(o)){let a=this.extractArray(o);if(a){for(let c of a)if(U(c))s.push(c);else if(q(c)){let l=c,f=`${l.objNum}.${l.genNum}`,d=n.objectCache.get(f);if((!d||!U(d))&&i.objectLoader)try{d=i.objectLoader(l),r.push(`[STREAM] Loaded content stream ${l.objNum} ${l.genNum} R from file`);}catch(u){let h=u instanceof Error?u.message:String(u);r.push(`[WARN] Failed to load content stream ${l.objNum} ${l.genNum} R: ${h}`);}d&&U(d)?s.push(d):r.push(`[STREAM] Content stream reference not cached: ${l.objNum} ${l.genNum} R`);}}}}catch(o){r.push(`[ERROR] Failed to extract content streams: ${o instanceof Error?o.message:String(o)}`);}return s}static extractMediaBox(e){let n=e.entries.get("MediaBox");if(n&&j(n)){let r=this.extractArray(n);if(r&&r.length>=4){let i=r.slice(0,4).map(s=>this.extractNumber(s));if(i.every(s=>s!==null))return i}}return null}static extractResources(e,n,r,i){let s=e.entries.get("Resources");if(s&&M(s))return s;if(s&&q(s)){let o=s,a=`${o.objNum}.${o.genNum}`,c=n.objectCache.get(a);if((!c||!M(c))&&i.objectLoader)try{c=i.objectLoader(o),r.push(`[RESOURCES] Loaded resources ${o.objNum} ${o.genNum} R from file`);}catch(l){let f=l instanceof Error?l.message:String(l);r.push(`[WARN] Failed to load resources ${o.objNum} ${o.genNum} R: ${f}`);}if(c&&M(c))return c;r.push(`[RESOURCES] Reference to resources not in cache: ${o.objNum} ${o.genNum} R`);}}static extractName(e){return !e||typeof e!="object"||!("type"in e)?null:e.type==="name"?e.value:null}static extractArray(e){return !e||typeof e!="object"||!("type"in e)?null:e.type==="array"?e.items||[]:null}static extractNumber(e){return A(e)}};var Ur=new Set(["show_string","show_strings","next_line_show_string"]),Lr=t=>t==="show_string"?"() Tj":t==="show_strings"?"[] TJ":"() '",$r=(t,e)=>{if(t.length!==e.length)return false;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return false;return true};async function gn(t,e){let n=new Te(t),r=n.parse(),s=Bt.getAllPages(r,{objectLoader:u=>n.loadObject(u)}).pages[e];if(!s)throw new Error(`Page ${e+1} not found`);let o=tt(s.dict.entries.get("Contents"));if(o.length===0)throw new Error("Page has no content streams");let a=[];for(let u of o){let h=n.loadObject(u);if(!U(h))continue;let m=h.decode?await h.decode():await _.decodeStream(h);a.push({objNum:u.objNum,genNum:u.genNum,bytes:m});}if(a.length===0)throw new Error("Page content streams could not be decoded");let c=a.reduce((u,h)=>u+h.bytes.length,0)+Math.max(0,a.length-1),l=new Uint8Array(c),f=[],d=0;for(let u=0;u<a.length;u++)l.set(a[u].bytes,d),f.push({start:d,end:d+a[u].bytes.length}),d+=a[u].bytes.length,u<a.length-1&&(l[d]=32,d+=1);return {chunks:a,pristine:l,chunkSpans:f}}var _r=(t,e)=>t.chunks.map((n,r)=>{let i=new Uint8Array(e.subarray(t.chunkSpans[r].start,t.chunkSpans[r].end));return {objNum:n.objNum,genNum:n.genNum,bytes:i,changed:!$r(i,n.bytes)}});async function Nr(t,e,n,r){let i=await gn(t,e);if(r&&r.length!==i.pristine.length)throw new Error("Stale rewrite state for page");let{commands:s,ranges:o}=Ye(i.pristine),a=new Uint8Array(r!=null?r:i.pristine);for(let c of n){let l=s[c],f=o[c];if(!l||!f)throw new Error(`No operator at index ${c}`);if(!Ur.has(l.op))throw new Error(`Operator ${l.op} at index ${c} is not rewritable`);if(!i.chunkSpans.some(h=>f.start>=h.start&&f.end<=h.end))throw new Error(`Operator at index ${c} spans multiple content streams`);let u=Lr(l.op);if(f.end-f.start<u.length)throw new Error(`Operator span too small at index ${c}`);a.fill(32,f.start,f.end);for(let h=0;h<u.length;h++)a[f.start+h]=u.charCodeAt(h);}return {streams:_r(i,a),combined:a}}var go=t=>{let e=t.toFixed(6).replace(/\.?0+$/,"");return e===""||e==="-"?"0":e};async function Wr(t,e,n,r,i){var b;let s=await gn(t,e);if(i&&i.length!==s.pristine.length)throw new Error("Stale rewrite state for page");if(!r.every(Number.isFinite))throw new Error("Non-finite transform matrix");let{commands:o,ranges:a}=Ye(s.pristine);if(n.start<0||n.end<n.start||n.end>=o.length)throw new Error(`Invalid operator span ${n.start}..${n.end}`);let c=0;for(let P=n.start;P<=n.end;P++){let y=(b=o[P])==null?void 0:b.op;if(y==="save_state")c+=1;else if(y==="restore_state"&&(c-=1,c<0))throw new Error("Span restores state it did not save")}if(c!==0)throw new Error("Span has unbalanced q/Q");let l=a[n.start].start,f=a[n.end].end,d=s.chunkSpans.findIndex(P=>l>=P.start&&f<=P.end);if(d<0)throw new Error("Span crosses content-stream chunk boundaries");let u=i!=null?i:s.pristine,h=new TextEncoder().encode(`
7
- q ${r.map(go).join(" ")} cm
8
- `),m=new TextEncoder().encode(`
5
+ `),i=Wa(r);for(let s=0;s<i.length;){let o=i[s];if(o==="usecmap"){let a=s>0?i[s-1]:"(unknown)";console.warn("[PageRenderer][CMap] usecmap reference not resolved",{inheritedName:a}),s+=1;continue}if(o==="begincmap"){for(s+=1;s<i.length&&i[s]!=="endcmap";){let a=i[s];if(Ga(a))break;let c=i[s+1];if(Me(a)&&Me(c)){e.bfChar.set(nn(a),tn(ze(c))),s+=2;continue}s+=1;}continue}if(o==="beginbfchar"||o==="begincidchar"){for(s+=1;s<i.length&&i[s]!=="endbfchar"&&i[s]!=="endcidchar";){let a=i[s],c=i[s+1];if(Me(a)&&Me(c)){e.bfChar.set(nn(a),tn(ze(c))),s+=2;continue}if(Mt(a)&&Me(c)){e.bfChar.set(Number.parseInt(a,10),tn(ze(c))),s+=2;continue}if(Mt(a)&&Mt(c)){let l=Number.parseInt(a,10),u=Number.parseInt(c,10);if(Number.isFinite(l)&&Number.isFinite(u))try{e.bfChar.set(l,String.fromCodePoint(u));}catch{e.bfChar.set(l,"\uFFFD");}s+=2;continue}s+=1;}s<i.length&&(s+=1);continue}if(o==="begincodespacerange"){for(s+=1;s<i.length&&i[s]!=="endcodespacerange";){let a=i[s],c=i[s+1];if(!Me(a)||!Me(c)){s+=1;continue}let l=ze(a),u=ze(c),d=Math.max(l.length,u.length)/2;d>0&&e.codeSpaceRanges.push({start:Number.parseInt(l,16),end:Number.parseInt(u,16),byteLength:d}),s+=2;}s<i.length&&(s+=1);continue}if(o==="beginbfrange"||o==="begincidrange"){for(s+=1;s<i.length&&i[s]!=="endbfrange"&&i[s]!=="endcidrange";){let a=i[s],c=i[s+1];if(!a||!c){s+=1;continue}let l=vi(a),u=vi(c);if(l===null||u===null){s+=1;continue}let d=i[s+2];if(!d){s+=2;continue}if(d==="["){let f=[],m=s+3;for(;m<i.length&&i[m]!=="]";)Me(i[m])&&f.push(tn(ze(i[m]))),m+=1;e.bfRange.push({start:l,end:u,mapped:f}),s=m<i.length?m+1:m;continue}if(Me(d)){e.bfRange.push({start:l,end:u,unicodeStart:nn(d)}),s+=3;continue}if(Mt(d)){e.bfRange.push({start:l,end:u,unicodeStart:Number.parseInt(d,10)}),s+=3;continue}s+=1;}s<i.length&&(s+=1);continue}s+=1;}return e},Wa=t=>{let e=[],n=0;for(;n<t.length;){for(;n<t.length&&/\s/.test(t[n]);)n+=1;if(n>=t.length)break;if(t[n]==="%"){for(;n<t.length&&t[n]!==`
6
+ `;)n+=1;continue}if(t[n]==="<"){let i=n;for(n+=1;n<t.length&&t[n]!==">";)n+=1;n<t.length&&(n+=1),e.push(t.slice(i,n));continue}if(t[n]==="["||t[n]==="]"){e.push(t[n]),n+=1;continue}let r=n;for(;n<t.length&&!/[\s<\[\]%]/.test(t[n]);)n+=1;if(r<n){let i=t.slice(r,n),s=Va(i);s?(s.count&&e.push(s.count),e.push(s.keyword)):e.push(i);}}return e},Va=t=>{let e=t.match(/^(\d+)?(begin\w+|end\w+|usecmap|begincmap|endcmap)$/i);return e?{count:e[1],keyword:e[2]}:null},Ga=t=>t?t==="beginbfchar"||t==="endbfchar"||t==="beginbfrange"||t==="endbfrange"||t==="begincidchar"||t==="endcidchar"||t==="begincidrange"||t==="endcidrange"||t==="begincodespacerange"||t==="endcodespacerange":false,Me=t=>!!t&&t.startsWith("<")&&t.endsWith(">"),Mt=t=>!!t&&/^\d+$/.test(t),ze=t=>t.slice(1,-1),nn=t=>Number.parseInt(ze(t),16),vi=t=>Me(t)?nn(t):Mt(t)?Number.parseInt(t,10):null,tn=t=>{let e=t.length%2===0?t:`0${t}`;if(e.length===0)return "";if(e.length<=4){let r=Number.parseInt(e,16);if(!Number.isFinite(r))return "\uFFFD";try{return String.fromCodePoint(r)}catch{return "\uFFFD"}}let n="";for(let r=0;r<e.length;r+=4){let i=e.slice(r,r+4).padStart(4,"0"),s=Number.parseInt(i,16);if(!Number.isFinite(s)){n+="\uFFFD";continue}try{n+=String.fromCodePoint(s);}catch{n+="\uFFFD";}}return n},Xa=(t,e)=>{var r;console.log(`=== CMap debug for font ${e} ===`),console.log(`cmapType: ${t.cmapType}`),console.log(`isUsable: ${t.isUsable}`),console.log(`bfChar entries: ${t.bfChar.size}`),console.log(`bfRange entries: ${t.bfRange.length}`),console.log(`codespace ranges: ${t.codeSpaceRanges.length}`);let n=0;for(let[i,s]of t.bfChar.entries()){if(n>=10)break;let o=s.codePointAt(0);console.log(` 0x${i.toString(16).padStart(4,"0")} -> "${s}" (U+${(r=o==null?void 0:o.toString(16).toUpperCase())!=null?r:"????"})`),n+=1;}for(let i of t.bfRange.slice(0,5))typeof i.unicodeStart=="number"?console.log(` range 0x${i.start.toString(16).padStart(4,"0")}-0x${i.end.toString(16).padStart(4,"0")} -> U+${i.unicodeStart.toString(16).toUpperCase()}`):i.mapped&&console.log(` range 0x${i.start.toString(16).padStart(4,"0")}-0x${i.end.toString(16).padStart(4,"0")} -> [mapped:${i.mapped.length}]`);for(let i of t.codeSpaceRanges.slice(0,5))console.log(` codespace ${i.byteLength}b 0x${i.start.toString(16).padStart(i.byteLength*2,"0")}-0x${i.end.toString(16).padStart(i.byteLength*2,"0")}`);},Ie=(t,e)=>{let n=e.bfChar.get(t);if(n!==void 0)return n;for(let r of e.bfRange)if(!(t<r.start||t>r.end)){if(r.mapped){let i=t-r.start;return i>=0&&i<r.mapped.length?r.mapped[i]:null}if(typeof r.unicodeStart=="number"){let i=r.unicodeStart+(t-r.start);return String.fromCodePoint(i)}}return null},Ha=(t,e,n,r,i=false)=>{var o,a;if(n){let c=sc(e),l=qa(e),d=(l?[{mode:"raw",bytes:t}]:za(t)).map(b=>({mode:b.mode,attempt:Ka(b.bytes,e,c)})),f=Ja(d),m=f.attempt,h=cc(m)?lc(t):null,p=uc(m,h);if(i&&console.debug("[PageRenderer][CMap] decode strategy",{font:r!=null?r:"?",mapped:m.mapped,unmapped:m.unmapped,utf16Score:(o=h==null?void 0:h.score)!=null?o:null,codespaceRanges:e.codeSpaceRanges.length,inferredCodeLengths:c,payloadMode:f.mode,sparseToUnicode:l,chosen:p===h?"utf16be":"cmap"}),i&&m.unmappedGlyphs.length>0){let b=m.unmappedGlyphs.slice(0,12).map(D=>`0x${D.toString(16).padStart(4,"0")}`),g=oc(m.unmappedGlyphs,c),x=l?`${r!=null?r:"?"}|sparse-tounicode`:`${r!=null?r:"?"}|${f.mode}`;di.has(x)||(di.add(x),console.warn("[PageRenderer][CMap] unmapped composite glyphs",{font:r!=null?r:"?",count:m.unmappedGlyphs.length,payloadMode:f.mode,sparseToUnicode:l,rootCause:l?`ToUnicode is too sparse (bfChar=${e.bfChar.size}, bfRange=${e.bfRange.length}); Unicode recovery is fundamentally limited for this font.`:void 0,sample:b,topMissing:g.topMissing,mappingHints:g.mappingHints,note:"Use mappingHints as candidate ToUnicode entries (<src> <dst>) for manual verification."}));}return (a=p==null?void 0:p.text)!=null?a:m.text}let s=[];for(let c=0;c<t.length;c++){let l=Ie(t[c],e);s.push(l!==null?l:String.fromCharCode(t[c]));}return s.join("")},Ya=(t,e)=>{let n=[],r=0;for(;r+1<t.length;){let i=t[r],s=t[r+1],o=i<<8|s,a=Ie(o,e);if(a!==null){n.push(a),r+=2;continue}if(s>=32&&s<=126){n.push(String.fromCharCode(s)),r+=2;continue}if(i>=32&&i<=126){n.push(String.fromCharCode(i)),r+=2;continue}r+=2;}if(r<t.length){let i=t[r];i>=32&&i<=126&&n.push(String.fromCharCode(i));}return n.join("")},Ka=(t,e,n)=>e.codeSpaceRanges.length>0?rc(t,e):ic(t,e,n),za=t=>{var o;let e=[{mode:"raw",bytes:t}],n=new Set([`raw:${t.length}:${(o=t[0])!=null?o:-1}`]),r=(a,c)=>{var u,d;if(!c||c.length===0)return;let l=`${a}:${c.length}:${(u=c[0])!=null?u:-1}:${(d=c[1])!=null?d:-1}`;n.has(l)||(n.add(l),e.push({mode:a,bytes:c}));},i=Za(t);r("zero-stripped",i);let s=Qa(t);return r("pair-swapped",s),r("ascii-hex",Vn(t)),i&&r("zero-stripped+ascii-hex",Vn(i)),s&&r("pair-swapped+ascii-hex",Vn(s)),e},qa=t=>t.bfChar.size+t.bfRange.length<=2,Ja=t=>{let e=t[0],n=Ci(e.attempt);for(let r=1;r<t.length;r+=1){let i=t[r],s=Ci(i.attempt);s>n+1&&(e=i,n=s);}return e},Za=t=>{if(t.length<4||t.length%2!==0)return null;let e=0,n=0;for(let a=0;a<t.length;a+=2)t[a]===0&&(e+=1),t[a+1]===0&&(n+=1);let r=t.length/2,i=e>=Math.floor(r*.7),s=n>=Math.floor(r*.7);if(!i&&!s)return null;let o=new Uint8Array(r);for(let a=0;a<r;a+=1)o[a]=i?t[a*2+1]:t[a*2];return o},Qa=t=>{if(t.length<2||t.length%2!==0)return null;let e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=2)e[n]=t[n+1],e[n+1]=t[n];return e},Ci=t=>t.mapped*2-t.unmapped,Vn=t=>{if(t.length<8)return null;let e=0,n=0,r=0,i=[];for(let o of t)if(!ec(o)){if(n+=1,!tc(o))return null;(o>=65&&o<=70||o>=97&&o<=102)&&(r+=1),e+=1,i.push(String.fromCharCode(o));}if(n<8||e!==n||e%2!==0||r===0)return null;let s=new Uint8Array(e/2);for(let o=0;o<s.length;o+=1){let a=Ai(i[o*2]),c=Ai(i[o*2+1]);if(a<0||c<0)return null;s[o]=a<<4|c;}return s},ec=t=>t===32||t===9||t===10||t===13,tc=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,Ai=t=>t>="0"&&t<="9"?t.charCodeAt(0)-48:t>="a"&&t<="f"?t.charCodeAt(0)-97+10:t>="A"&&t<="F"?t.charCodeAt(0)-65+10:-1,nc=(t,e)=>{let n=[],r=0,i=0,s=[];for(let o=0;o<t.length;){if(o+1<t.length){let c=t[o]<<8|t[o+1],l=Ie(c,e);if(l!==null){n.push(l),r+=1,o+=2;continue}let u=Ie(t[o],e),d=Ie(t[o+1],e);if(u!==null||d!==null){n.push("\uFFFD\uFFFD"),i+=1,s.push(c),o+=2;continue}n.push("\uFFFD"),i+=1,s.push(c),o+=2;continue}let a=Ie(t[o],e);a!==null?(n.push(a),r+=1):(n.push("\uFFFD"),i+=1,s.push(t[o])),o+=1;}return {text:n.join(""),mapped:r,unmapped:i,unmappedGlyphs:s}},rc=(t,e)=>{let n=Array.from(new Set(e.codeSpaceRanges.map(a=>a.byteLength))).sort((a,c)=>c-a);if(n.length===0)return nc(t,e);let r=[],i=0,s=0,o=[];for(let a=0;a<t.length;){let c=0,l=null;for(let d of n){if(a+d>t.length)continue;let f=ft(t,a,d);if(f!==null&&Ei(f,d,e.codeSpaceRanges)){c=d,l=f;break}}if(c>0&&l!==null){let d=Ie(l,e);d!==null?(r.push(d),i+=1):(r.push("\uFFFD"),s+=1,o.push(l)),a+=c;continue}let u=a+1<t.length?t[a]<<8|t[a+1]:t[a];r.push("\uFFFD"),s+=1,o.push(u),a+=1;}return {text:r.join(""),mapped:i,unmapped:s,unmappedGlyphs:o}},ic=(t,e,n)=>{var c,l;let r=n.length>0?[...n].sort((u,d)=>d-u):[2,1],i=[],s=0,o=0,a=[];for(let u=0;u<t.length;){let d=0,f=null;for(let p of r){if(u+p>t.length)continue;let b=ft(t,u,p);if(b===null)continue;let g=Ie(b,e);if(g!==null){f=g,d=p;break}}if(f!==null&&d>0){i.push(f),s+=1,u+=d;continue}let m=(c=r[r.length-1])!=null?c:1,h=(l=ft(t,u,Math.min(m,t.length-u)))!=null?l:t[u];i.push("\uFFFD"),o+=1,a.push(h),u+=Math.min(m,t.length-u);}return {text:i.join(""),mapped:s,unmapped:o,unmappedGlyphs:a}},sc=t=>{let e=new Set;for(let r of t.codeSpaceRanges)r.byteLength>=1&&r.byteLength<=4&&e.add(r.byteLength);for(let r of t.bfChar.keys())e.add(Gn(r));for(let r of t.bfRange)e.add(Gn(r.start)),e.add(Gn(r.end));let n=Array.from(e).filter(r=>r>=1&&r<=4);return n.length===0?[2,1]:n.sort((r,i)=>i-r)},Gn=t=>t<=255?1:t<=65535?2:t<=16777215?3:4,oc=(t,e)=>{var c;let n=new Map;for(let l of t)n.set(l,((c=n.get(l))!=null?c:0)+1);let i=Array.from(n.entries()).sort((l,u)=>u[1]-l[1]).slice(0,8),s=i.map(([l,u])=>({glyph:`0x${l.toString(16).padStart(4,"0")}`,count:u})),o=e.length>0?e[e.length-1]:2,a=i.map(([l])=>ac(l,o)).filter(l=>l!==null);return {topMissing:s,mappingHints:a}},ac=(t,e)=>{let n=t.toString(16).padStart(Math.max(4,e*2),"0"),r=t&255;if(r>=32&&r<=126){let i=r.toString(16).toUpperCase().padStart(4,"0");return {glyph:`0x${n}`,candidateUnicode:`U+${i} (${String.fromCharCode(r)})`,reason:"Printable ASCII low-byte candidate",cmapLine:`<${n}> <${i}>`}}if(t>=32&&t<=126){let i=t.toString(16).toUpperCase().padStart(4,"0");return {glyph:`0x${n}`,candidateUnicode:`U+${i} (${String.fromCharCode(t)})`,reason:"Direct ASCII glyph code candidate",cmapLine:`<${n}> <${i}>`}}return null},cc=t=>t.text.length===0?false:t.mapped>0?t.unmapped>=t.mapped*3:t.unmapped>0,lc=t=>{var s;let e=Ri(t),n=ki(e),r=((s=e.match(/\uFFFD/g))!=null?s:[]).length,i=n-r*3;return {text:e,mapped:n,unmapped:r,unmappedGlyphs:[],printable:n,score:i}},uc=(t,e)=>{if(!e)return t;let n=fc(t.text);return dc(e.text)&&e.score>=n+8?e:t},fc=t=>{var r;let e=ki(t),n=((r=t.match(/\uFFFD/g))!=null?r:[]).length;return e-n*3},ki=t=>{var n;let e=0;for(let r of t){let i=(n=r.codePointAt(0))!=null?n:0;if(i===9||i===10||i===13){e+=1;continue}if(i>=32&&i<=126){e+=2;continue}if(i>=160&&i<=591){e+=1;continue}}return e},dc=t=>{var i,s;if(!t||((i=t.match(/\uFFFD/g))!=null?i:[]).length>Math.floor(t.length*.2))return false;let n=0,r=0;for(let o of t){let a=(s=o.codePointAt(0))!=null?s:0;if(a>=32&&a<=126){n+=1;continue}(a>=12288&&a<=12351||a>=8592&&a<=8703)&&(r+=1);}return n>=8&&n*2>=t.length?true:(r>0&&r*2>=t.length,false)},Y=t=>t?typeof t=="string"?t:typeof t=="object"&&"type"in t&&t.type==="name"&&"value"in t?String(t.value):null:null,Ri=t=>{if(t.length<2)return new TextDecoder("latin1").decode(t);let e="";for(let n=0;n+1<t.length;n+=2){let r=t[n]<<8|t[n+1];e+=String.fromCharCode(r);}return t.length%2!==0&&(e+="\uFFFD"),e},hc=t=>{var e,n,r,i,s,o,a;return {length:t.length,beginbfchar:((e=t.match(/beginbfchar/g))!=null?e:[]).length,beginbfrange:((n=t.match(/beginbfrange/g))!=null?n:[]).length,begincidchar:((r=t.match(/begincidchar/g))!=null?r:[]).length,begincidrange:((i=t.match(/begincidrange/g))!=null?i:[]).length,begincodespacerange:((s=t.match(/begincodespacerange/g))!=null?s:[]).length,usecmap:((o=t.match(/usecmap/g))!=null?o:[]).length,hexTokens:((a=t.match(/<[0-9a-fA-F]+>/g))!=null?a:[]).length,preview:t.slice(0,220)}},Te=t=>{var e,n,r;if(!t)return "undefined";if(typeof t=="string")return `string:${t}`;if(typeof t=="number")return "number";if(typeof t=="boolean")return "boolean";if(typeof t=="object"&&"type"in t){let i=String((e=t.type)!=null?e:"unknown");return i==="ref"&&"objectNumber"in t?`ref:${String((n=t.objectNumber)!=null?n:"?")}`:i==="name"&&"value"in t?`name:${String((r=t.value)!=null?r:"")}`:i}return typeof t},ft=(t,e,n)=>{if(n<1||n>4||e+n>t.length)return null;let r=0;for(let i=0;i<n;i+=1)r=r<<8|t[e+i];return r>>>0},Ei=(t,e,n)=>{for(let r of n)if(r.byteLength===e&&t>=r.start&&t<=r.end)return true;return false};var mc=[[/times|serif|georgia|cambria|garamond|minion/,"Times"],[/courier|mono|consol/,"Courier"]],Hn=(t,e={})=>{let n=(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),r="Helvetica";for(let[s,o]of mc)if(s.test(n)){r=o;break}let i=`${e.bold?"Bold":""}${e.italic?"Italic":""}`;return i?`${r}-${i}`:r},Oi={Helvetica:718,Times:662,Courier:562},pc=t=>{var n;let e=Hn(t).split("-")[0];return (n=Oi[e])!=null?n:Oi.Helvetica},Ti=(t,e)=>{if(!t||!Number.isFinite(t)||t<=0)return 1;let n=pc(e),r=t/n;return !Number.isFinite(r)||r<=0?1:Math.min(1.5,Math.max(.5,r))};var Ii=(t,e)=>{let n=t.y+t.height,r=t.y,i=t.x+t.width;return e.maxY!==void 0&&e.maxY<n&&e.maxY>r&&(n=e.maxY),e.minY!==void 0&&e.minY>r&&e.minY<n&&(r=e.minY),e.maxRight!==void 0&&e.maxRight<i&&e.maxRight>t.x&&(i=e.maxRight),{x:t.x,y:r,width:Math.max(0,i-t.x),height:Math.max(0,n-r)}};var Bi=50,an=class{static getAllPages(e,n={}){let r=[],i=[];try{r.push("[TRAVERSE] Starting page tree traversal...");let s=e.rootRef;r.push(`[CATALOG] Root reference: ${s.objNum} ${s.genNum} R`);let o=`${s.objNum}.${s.genNum}`,a=e.objectCache.get(o);if((!a||!k(a))&&n.objectLoader)try{a=n.objectLoader(s),r.push("[CATALOG] Loaded root catalog from file");}catch(h){let p=h instanceof Error?h.message:String(h);r.push(`[WARN] Failed to load root catalog: ${p}`);}if(!a||!k(a))return r.push(`[ERROR] Root catalog not found in object cache at ${o}`),{pages:i,logs:r};let c=a;r.push("[CATALOG] \u2713 Found catalog in cache");let l=c.entries.get("Pages");if(!l)return r.push("[ERROR] /Pages reference not found in catalog"),{pages:i,logs:r};if(!Z(l))return r.push("[ERROR] /Pages is not an indirect reference"),{pages:i,logs:r};let u=l;r.push(`[PAGES] Pages tree root: ${u.objNum} ${u.genNum} R`);let d=`${u.objNum}.${u.genNum}`,f=e.objectCache.get(d);if((!f||!k(f))&&n.objectLoader)try{f=n.objectLoader(u),r.push("[PAGES] Loaded pages tree root from file");}catch(h){let p=h instanceof Error?h.message:String(h);r.push(`[WARN] Failed to load pages tree root: ${p}`);}if(!f||!k(f))return r.push(`[ERROR] Pages tree object not in cache at ${d}`),r.push("[NOTE] Page tree object must be loaded before traversal can begin"),r.push("[NEXT STEP] Implement ObjectReader.resolveRef() to load from file"),{pages:i,logs:r};let m=f;return r.push("[PAGES] \u2713 Found pages tree root"),this.walkPageTree(m,u,e,i,r,n,1,new Set([d]),0),r.push(`[TRAVERSE] \u2713 Complete. Found ${i.length} page(s)`),{pages:i,logs:r}}catch(s){let o=s instanceof Error?s.message:String(s);return r.push(`[ERROR] Traversal failed: ${o}`),{pages:i,logs:r}}}static walkPageTree(e,n,r,i,s,o,a,c,l){if(l>Bi)return s.push(`[WARN] Page tree too deep (>${Bi}) at ${n.objNum} ${n.genNum} R \u2014 stopping`),a;let u=e.entries.get("Type"),d=this.extractName(u);if(d==="Pages"){let f=e.entries.get("Kids");if(!f)return s.push(`[WARN] Pages node has no /Kids at ${n.objNum} ${n.genNum} R`),a;let m=this.extractArray(f);if(!m)return s.push("[WARN] /Kids is not an array"),a;s.push(`[NODE] Pages node with ${m.length} child(ren) at ${n.objNum}`);for(let h of m){if(!Z(h)){s.push("[WARN] /Kids contains non-reference");continue}let p=h,b=`${p.objNum}.${p.genNum}`;if(c.has(b)){s.push(`[WARN] Cycle detected in page tree at ${b} \u2014 skipping`);continue}c.add(b);let g=r.objectCache.get(b);if((!g||!k(g))&&o.objectLoader)try{g=o.objectLoader(p),s.push(`[NODE] Loaded child page node ${p.objNum} ${p.genNum} R from file`);}catch(x){let D=x instanceof Error?x.message:String(x);s.push(`[WARN] Failed to load child node: ${D}`);}if(!g||!k(g)){s.push(`[SKIP] Child page node not in cache: ${p.objNum} ${p.genNum} R`),s.push("[NOTE] Would need ObjectReader to load from file");continue}if(a=this.walkPageTree(g,p,r,i,s,o,a,c,l+1),o.maxPages&&i.length>=o.maxPages)return a}return a}else if(d==="Page"){s.push(`[PAGE ${a}] Found at ${n.objNum} ${n.genNum} R`);let f=this.extractContentStreams(e,r,s,o);s.push(`[PAGE ${a}] \u2713 Found ${f.length} stream(s)`);let m=this.extractMediaBox(e),h=this.extractResources(e,r,s,o),p=this.extractNumber(e.entries.get("Rotate"));return i.push({pageNum:a,ref:n,dict:e,contentStreams:f,mediaBox:m||[0,0,612,792],resources:h,rotate:p||0}),a+1}else return s.push(`[WARN] Unknown node type: ${d}`),a}static extractContentStreams(e,n,r,i){let s=[];try{let o=e.entries.get("Contents");if(!o)return r.push("[WARN] Page has no /Contents"),s;if(L(o))s.push(o);else if(Z(o)){let a=o,c=`${a.objNum}.${a.genNum}`,l=n.objectCache.get(c);if((!l||!L(l))&&i.objectLoader)try{l=i.objectLoader(a),r.push(`[STREAM] Loaded content stream ${a.objNum} ${a.genNum} R from file`);}catch(u){let d=u instanceof Error?u.message:String(u);r.push(`[WARN] Failed to load content stream ${a.objNum} ${a.genNum} R: ${d}`);}l&&L(l)?s.push(l):r.push(`[STREAM] Content stream reference not cached: ${a.objNum} ${a.genNum} R`);}else if(B(o)){let a=this.extractArray(o);if(a){for(let c of a)if(L(c))s.push(c);else if(Z(c)){let l=c,u=`${l.objNum}.${l.genNum}`,d=n.objectCache.get(u);if((!d||!L(d))&&i.objectLoader)try{d=i.objectLoader(l),r.push(`[STREAM] Loaded content stream ${l.objNum} ${l.genNum} R from file`);}catch(f){let m=f instanceof Error?f.message:String(f);r.push(`[WARN] Failed to load content stream ${l.objNum} ${l.genNum} R: ${m}`);}d&&L(d)?s.push(d):r.push(`[STREAM] Content stream reference not cached: ${l.objNum} ${l.genNum} R`);}}}}catch(o){r.push(`[ERROR] Failed to extract content streams: ${o instanceof Error?o.message:String(o)}`);}return s}static extractMediaBox(e){let n=e.entries.get("MediaBox");if(n&&B(n)){let r=this.extractArray(n);if(r&&r.length>=4){let i=r.slice(0,4).map(s=>this.extractNumber(s));if(i.every(s=>s!==null))return i}}return null}static extractResources(e,n,r,i){let s=e.entries.get("Resources");if(s&&k(s))return s;if(s&&Z(s)){let o=s,a=`${o.objNum}.${o.genNum}`,c=n.objectCache.get(a);if((!c||!k(c))&&i.objectLoader)try{c=i.objectLoader(o),r.push(`[RESOURCES] Loaded resources ${o.objNum} ${o.genNum} R from file`);}catch(l){let u=l instanceof Error?l.message:String(l);r.push(`[WARN] Failed to load resources ${o.objNum} ${o.genNum} R: ${u}`);}if(c&&k(c))return c;r.push(`[RESOURCES] Reference to resources not in cache: ${o.objNum} ${o.genNum} R`);}}static extractName(e){return !e||typeof e!="object"||!("type"in e)?null:e.type==="name"?e.value:null}static extractArray(e){return !e||typeof e!="object"||!("type"in e)?null:e.type==="array"?e.items||[]:null}static extractNumber(e){return A(e)}};var Ui=new Set(["show_string","show_strings","next_line_show_string"]),Li=t=>t==="show_string"?"() Tj":t==="show_strings"?"[] TJ":"() '",_i=(t,e)=>{if(t.length!==e.length)return false;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return false;return true};async function Yn(t,e){let n=new _e(t),r=n.parse(),s=an.getAllPages(r,{objectLoader:f=>n.loadObject(f)}).pages[e];if(!s)throw new Error(`Page ${e+1} not found`);let o=St(s.dict.entries.get("Contents"));if(o.length===0)throw new Error("Page has no content streams");let a=[];for(let f of o){let m=n.loadObject(f);if(!L(m))continue;let h=m.decode?await m.decode():await $.decodeStream(m);a.push({objNum:f.objNum,genNum:f.genNum,bytes:h});}if(a.length===0)throw new Error("Page content streams could not be decoded");let c=a.reduce((f,m)=>f+m.bytes.length,0)+Math.max(0,a.length-1),l=new Uint8Array(c),u=[],d=0;for(let f=0;f<a.length;f++)l.set(a[f].bytes,d),u.push({start:d,end:d+a[f].bytes.length}),d+=a[f].bytes.length,f<a.length-1&&(l[d]=32,d+=1);return {chunks:a,pristine:l,chunkSpans:u}}var ji=(t,e)=>t.chunks.map((n,r)=>{let i=new Uint8Array(e.subarray(t.chunkSpans[r].start,t.chunkSpans[r].end));return {objNum:n.objNum,genNum:n.genNum,bytes:i,changed:!_i(i,n.bytes)}});async function Ni(t,e,n,r){let i=await Yn(t,e);if(r&&r.length!==i.pristine.length)throw new Error("Stale rewrite state for page");let{commands:s,ranges:o}=it(i.pristine),a=new Uint8Array(r!=null?r:i.pristine);for(let c of n){let l=s[c],u=o[c];if(!l||!u)throw new Error(`No operator at index ${c}`);if(!Ui.has(l.op))throw new Error(`Operator ${l.op} at index ${c} is not rewritable`);if(!i.chunkSpans.some(m=>u.start>=m.start&&u.end<=m.end))throw new Error(`Operator at index ${c} spans multiple content streams`);let f=Li(l.op);if(u.end-u.start<f.length)throw new Error(`Operator span too small at index ${c}`);a.fill(32,u.start,u.end);for(let m=0;m<f.length;m++)a[u.start+m]=f.charCodeAt(m);}return {streams:ji(i,a),combined:a}}var gc=t=>{let e=t.toFixed(6).replace(/\.?0+$/,"");return e===""||e==="-"?"0":e};async function $i(t,e,n,r,i){var x;let s=await Yn(t,e);if(i&&i.length!==s.pristine.length)throw new Error("Stale rewrite state for page");if(!r.every(Number.isFinite))throw new Error("Non-finite transform matrix");let{commands:o,ranges:a}=it(s.pristine);if(n.start<0||n.end<n.start||n.end>=o.length)throw new Error(`Invalid operator span ${n.start}..${n.end}`);let c=0;for(let D=n.start;D<=n.end;D++){let y=(x=o[D])==null?void 0:x.op;if(y==="save_state")c+=1;else if(y==="restore_state"&&(c-=1,c<0))throw new Error("Span restores state it did not save")}if(c!==0)throw new Error("Span has unbalanced q/Q");let l=a[n.start].start,u=a[n.end].end,d=s.chunkSpans.findIndex(D=>l>=D.start&&u<=D.end);if(d<0)throw new Error("Span crosses content-stream chunk boundaries");let f=i!=null?i:s.pristine,m=new TextEncoder().encode(`
7
+ q ${r.map(gc).join(" ")} cm
8
+ `),h=new TextEncoder().encode(`
9
9
  Q
10
- `),p=new Uint8Array(u.length+h.length+m.length);p.set(u.subarray(0,l),0),p.set(h,l),p.set(u.subarray(l,f),l+h.length),p.set(m,l+h.length+(f-l)),p.set(u.subarray(f),l+h.length+(f-l)+m.length);let x=h.length+m.length;return {streams:s.chunks.map((P,y)=>{let D=s.chunkSpans[y].start,v=s.chunkSpans[y].end;y===d?v+=x:y>d&&(D+=x,v+=x);let S=new Uint8Array(p.subarray(D,v));return {objNum:P.objNum,genNum:P.genNum,bytes:S,changed:!$r(S,P.bytes)}}),combined:p,lengthChanged:true}}var bo=new Set(["save_state","restore_state","set_ctm","set_graphics_state","set_line_width","set_line_cap","set_line_join","set_miter_limit","set_dash","set_rendering_intent","set_fill_color_rgb","set_stroke_color_rgb","set_fill_gray","set_stroke_gray","set_fill_cmyk","set_stroke_cmyk","set_fill_color","set_stroke_color","set_fill_color_space","set_stroke_color_space","begin_text","end_text","set_font","move_text","move_text_set_leading","set_text_matrix","next_line","set_char_spacing","set_word_spacing","set_horiz_scale","set_leading","set_text_render","set_text_rise","begin_marked_content","end_marked_content","type3_glyph_width"]);async function Gr(t,e,n,r){let i=await gn(t,e);if(r&&r.length!==i.pristine.length)throw new Error("Stale rewrite state for page");let{commands:s,ranges:o}=Ye(i.pristine),a=new Uint8Array(r!=null?r:i.pristine),c=l=>{let f=o[l];if(!i.chunkSpans.some(u=>f.start>=u.start&&f.end<=u.end))throw new Error(`Operator at index ${l} spans multiple content streams`);a.fill(32,f.start,f.end);};for(let l of n){if(l.start<0||l.end<l.start||l.end>=s.length)throw new Error(`Invalid operator span ${l.start}..${l.end}`);let f=0;for(let d=l.start;d<=l.end;d++){let u=s[d],h=o[d];if(!u||!h)throw new Error(`No operator at index ${d}`);if(u.op==="save_state"){f+=1;continue}if(u.op==="restore_state"){f-=1;continue}if(!bo.has(u.op)){if(u.op==="clip"||u.op==="clip_even_odd"){if(f<=0)throw new Error("Span contains a clip that outlives it");c(d);continue}if(u.op==="set_spacing_next_line_show_string")throw new Error('Span contains a " operator (spacing side effects)');if(Ur.has(u.op)){let m=Lr(u.op);if(h.end-h.start<m.length)throw new Error(`Operator span too small at index ${d}`);c(d);for(let p=0;p<m.length;p++)a[h.start+p]=m.charCodeAt(p);continue}c(d);}}}return {streams:_r(i,a),combined:a}}var Xr=["view","annotate"],Yr=["view","annotate","edit-text","sign","redact","forms","export-clean"];var Hr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",st={};for(let t=0;t<Hr.length;t++)st[Hr[t]]=t;function Vr(t){return new TextDecoder().decode(t)}function zr(t){let e=t.trim(),n=new Uint8Array(e.length>>1);for(let r=0;r<n.length;r++)n[r]=parseInt(e.substr(r*2,2),16);return n}function Kr(t){let e=[];for(let n=0;n<t.length;n+=4){let r=st[t[n]],i=st[t[n+1]];if(r===void 0||i===void 0)break;e.push(r<<2|i>>4);let s=st[t[n+2]];if(s===void 0)break;e.push((i&15)<<4|s>>2);let o=st[t[n+3]];if(o===void 0)break;e.push((s&3)<<6|o);}return new Uint8Array(e)}function qr(t,e){let n=t.indexOf(".");if(n<0)return null;try{let r=Kr(t.slice(0,n)),i=Kr(t.slice(n+1));return ed25519.verify(i,r,e)?r:null}catch{return null}}var ot="bde297640169e8f75d2d9bd260e8eab78aa93c39e10c84a8f6abe565a19057e3";function Jr(t,e){if(!t||/^0+$/.test(e))return null;let n=qr(t,zr(e));if(!n)return null;try{return JSON.parse(Vr(n))}catch{return null}}function Ut(t,e=ot){let n=Jr(t,e);return !n||typeof n.lid!="string"||!Array.isArray(n.features)?null:n}function Lt(t,e=ot){let n=Jr(t,e);return !n||typeof n.lid!="string"||!Array.isArray(n.features)?null:n}function bn(t,e){return t===0||t*1e3>e}function Zr(t,e){if(!e||e==="localhost"||e==="127.0.0.1"||e==="::1")return true;let n=e.toLowerCase();return t.some(r=>{let i=r.trim().toLowerCase();return i==="*"||i===n?true:n.endsWith("."+i)})}var $t="NamahaPDF \xB7 Unlicensed SDK";function Qr(t,e,n,r=$t){t.save(),t.globalAlpha=.16,t.fillStyle="#C20E3A";let i=Math.max(14,Math.round(Math.min(e,n)/22));t.font=`600 ${i}px Inter, system-ui, sans-serif`,t.textAlign="center",t.textBaseline="middle";let s=i*9;t.translate(e/2,n/2),t.rotate(-28*Math.PI/180);for(let o=-n;o<n;o+=s*.5)for(let a=-e;a<e;a+=s)t.fillText(r,a,o);t.restore();}async function ei(t,e=$t){try{let{PDFDocument:n,StandardFonts:r,rgb:i,degrees:s}=await import('pdf-lib'),o=await n.load(t,{ignoreEncryption:!0}),a=await o.embedFont(r.HelveticaBold),c=i(.76,.055,.227);for(let l of o.getPages()){let{width:f,height:d}=l.getSize(),u=Math.max(16,Math.min(f,d)/26),h=u*6,m=a.widthOfTextAtSize(e,u)+u*4;for(let p=-d;p<d*2;p+=h)for(let x=-f;x<f*2;x+=m)l.drawText(e,{x,y:p,size:u,font:a,color:c,opacity:.14,rotate:s(28)});}return await o.save()}catch{return t}}var ni=5,Po=4320*60*1e3,Do=4320*60*1e3,wo="/api/license/activate",z={publicKeyHex:ot,now:()=>Date.now()},me=null,_t=[];function So(){let t=new Map;return {getItem:e=>{var n;return (n=t.get(e))!=null?n:null},setItem:(e,n)=>{t.set(e,n);}}}function Fo(t){if(t.storage)return t.storage;try{if(typeof localStorage!="undefined")return localStorage}catch{}return So()}function ri(t){if(t.host)return t.host;try{if(typeof location!="undefined")return location.hostname}catch{}return ""}function ii(t){return `namaha.lic.${t}`}function si(t){try{let e=me==null?void 0:me.getItem(ii(t));if(e)return JSON.parse(e)}catch{}return {failCount:0,firstSeen:z.now(),lastAttempt:0}}function Pn(t,e){try{me==null||me.setItem(ii(t),JSON.stringify(e));}catch{}}function vo(){if(z.deviceId)return z.deviceId;let t="namaha.lic.device";try{let n=me==null?void 0:me.getItem(t);if(n)return n}catch{}let e="dev_"+Math.random().toString(36).slice(2)+Date.now().toString(36);try{me==null||me.setItem(t,e);}catch{}return e}function $e(){let t=z.now();if(z.owner)return {status:"LICENSED",edition:"enterprise",features:Yr,watermark:false,reason:"owner"};if(!z.licenseKey)return c("UNLICENSED","no key");let e=Ut(z.licenseKey,z.publicKeyHex);if(!e)return c("INVALID","bad signature");if(!bn(e.exp,t))return c("INVALID","key expired");if(!Zr(e.domains,ri(z)))return c("INVALID","domain not allowed");let n=si(e.lid);if(n.revoked)return c("DEGRADED","revoked");let r=n.token?Lt(n.token,z.publicKeyHex):null;if(r&&r.lid===e.lid&&bn(r.exp,t))return l("LICENSED",r.edition,r.features,"active token");let i=r?r.exp*1e3:n.firstSeen,s=r?Do:Po,o=t-i<s,a=n.failCount<ni;if(o||a)return l("GRACE",e.edition,e.features,"grace");return c("DEGRADED","grace exhausted");function c(f,d){return {status:f,edition:null,features:Xr.slice(),watermark:true,reason:d}}function l(f,d,u,h){return {status:f,edition:d,features:u.slice(),watermark:false,reason:h}}}function Dn(){let t=$e();for(let e of _t)try{e(t);}catch{}}async function Co(){var o,a;if(z.owner||!z.licenseKey)return;let t=Ut(z.licenseKey,z.publicKeyHex);if(!t)return;let e=(o=z.activationUrl)!=null?o:wo,n=(a=z.fetchImpl)!=null?a:typeof fetch!="undefined"?fetch:null;if(!n)return;let r=ri(z),i=vo(),s=si(t.lid);try{let c=await n(e,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({licenseKey:z.licenseKey,origin:r,deviceId:i})}),l=await c.json().catch(()=>({}));if(l.status==="revoked"||l.status==="invalid"){Pn(t.lid,{...s,revoked:!0,lastAttempt:z.now()}),Dn();return}if(c.ok&&l.status==="active"&&l.token&&Lt(l.token,z.publicKeyHex)){Pn(t.lid,{...s,token:l.token,failCount:0,lastAttempt:z.now(),revoked:!1}),Dn();return}ti(t.lid,s);}catch{ti(t.lid,s);}}function ti(t,e){Pn(t,{...e,failCount:Math.min(ni,e.failCount+1),lastAttempt:z.now()}),Dn();}function Ao(t={}){z={publicKeyHex:ot,now:()=>Date.now(),...t},me=Fo(t);let e=$e();return Mo(),e}var yn=false;async function Mo(){var e;if(yn||z.owner||!z.licenseKey)return;yn=true;let t=(e=z.retryDelays)!=null?e:[0,2e3,6e3,2e4];try{for(let n=0;n<t.length;n++){t[n]>0&&await ko(t[n]);let r=$e();if(r.status==="LICENSED"&&r.reason==="active token"||r.status==="DEGRADED"||r.status==="INVALID"||r.status==="UNLICENSED")break;await Co();let i=$e();if(i.status==="LICENSED"||i.status==="DEGRADED")break}}finally{yn=false;}}function ko(t){return new Promise(e=>setTimeout(e,t))}function Ro(){return $e()}function oi(t){return $e().features.includes(t)}function wn(t){if(!oi(t))throw new Error(`NamahaPDF: feature "${t}" requires a license. See namahapdf.com/sdk.`)}function Oo(){return $e().watermark}function To(t){return _t.push(t),()=>{_t=_t.filter(e=>e!==t);}}var Eo=t=>t.kind==="highlight"||t.kind==="underline"||t.kind==="strikeout"||t.kind==="squiggly";var Sn=t=>{let e=t.map(s=>s.x),n=t.map(s=>s.y),r=Math.min(...e),i=Math.min(...n);return {x:r,y:i,width:Math.max(...e)-r,height:Math.max(...n)-i}},at=t=>{if(Eo(t)){let e=[];for(let n of t.quads)e.push({x:n.x,y:n.y},{x:n.x+n.width,y:n.y+n.height});return e.length?Sn(e):{x:0,y:0,width:0,height:0}}if(t.kind==="ink"){let e=t.strokes.flat();return e.length?Sn(e):{x:0,y:0,width:0,height:0}}return t.kind==="note"||t.kind==="freetext"?{...t.rect}:Sn(t.points)};var ct=1.5,R=t=>{let e=Math.round(t*1e3)/1e3;return Object.is(e,-0)?"0":String(e)},_e=t=>[Math.min(1,Math.max(0,t.r)),Math.min(1,Math.max(0,t.g)),Math.min(1,Math.max(0,t.b))],ci=t=>{let e=new Date(t),n=r=>String(r).padStart(2,"0");return `D:${e.getFullYear()}${n(e.getMonth()+1)}${n(e.getDate())}${n(e.getHours())}${n(e.getMinutes())}${n(e.getSeconds())}`},ui=(t,e)=>({x:t.x-e,y:t.y-e,width:t.width+e*2,height:t.height+e*2}),li=t=>[t.x,t.y,t.x+t.width,t.y+t.height],Je=t=>{var s;let[e,n,r]=_e(t.color),i=(s=t.strokeWidth)!=null?s:ct;return `${R(i)} w 1 J 1 j ${R(e)} ${R(n)} ${R(r)} RG`},Nt=t=>{let[e,n,r]=_e(t);return `${R(e)} ${R(n)} ${R(r)} rg`},Fn=t=>{var r;let e=!!t.fill,n=((r=t.strokeWidth)!=null?r:ct)>0;return e&&n?"B":e?"f":"S"},jo=t=>{let n=t.x+t.width/2,r=t.y+t.height/2,i=t.width/2,s=t.height/2;return [`${R(n+i)} ${R(r)} m`,`${R(n+i)} ${R(r+s*.5523)} ${R(n+i*.5523)} ${R(r+s)} ${R(n)} ${R(r+s)} c`,`${R(n-i*.5523)} ${R(r+s)} ${R(n-i)} ${R(r+s*.5523)} ${R(n-i)} ${R(r)} c`,`${R(n-i)} ${R(r-s*.5523)} ${R(n-i*.5523)} ${R(r-s)} ${R(n)} ${R(r-s)} c`,`${R(n+i*.5523)} ${R(r-s)} ${R(n+i)} ${R(r-s*.5523)} ${R(n+i)} ${R(r)} c`].join(`
11
- `)},vn=(t,e)=>{let n=t.map((r,i)=>`${R(r.x)} ${R(r.y)} ${i===0?"m":"l"}`);return e&&n.push("h"),n.join(`
12
- `)},Io=(t,e,n)=>{let r=Math.atan2(e.y-t.y,e.x-t.x),i=Math.PI/7,s={x:e.x-n*Math.cos(r-i),y:e.y-n*Math.sin(r-i)},o={x:e.x-n*Math.cos(r+i),y:e.y-n*Math.sin(r+i)};return `${R(s.x)} ${R(s.y)} m ${R(e.x)} ${R(e.y)} l ${R(o.x)} ${R(o.y)} l S`},Bo=(t,e)=>{let i=[`${R(t.x)} ${R(e)} m`],s=true;for(let o=t.x+4;o<=t.x+t.width;o+=4)i.push(`${R(o)} ${R(s?e+1.5:e-1.5)} l`),s=!s;return `${i.join(`
10
+ `),p=new Uint8Array(f.length+m.length+h.length);p.set(f.subarray(0,l),0),p.set(m,l),p.set(f.subarray(l,u),l+m.length),p.set(h,l+m.length+(u-l)),p.set(f.subarray(u),l+m.length+(u-l)+h.length);let b=m.length+h.length;return {streams:s.chunks.map((D,y)=>{let w=s.chunkSpans[y].start,v=s.chunkSpans[y].end;y===d?v+=b:y>d&&(w+=b,v+=b);let S=new Uint8Array(p.subarray(w,v));return {objNum:D.objNum,genNum:D.genNum,bytes:S,changed:!_i(S,D.bytes)}}),combined:p,lengthChanged:true}}var xc=new Set(["save_state","restore_state","set_ctm","set_graphics_state","set_line_width","set_line_cap","set_line_join","set_miter_limit","set_dash","set_rendering_intent","set_fill_color_rgb","set_stroke_color_rgb","set_fill_gray","set_stroke_gray","set_fill_cmyk","set_stroke_cmyk","set_fill_color","set_stroke_color","set_fill_color_space","set_stroke_color_space","begin_text","end_text","set_font","move_text","move_text_set_leading","set_text_matrix","next_line","set_char_spacing","set_word_spacing","set_horiz_scale","set_leading","set_text_render","set_text_rise","begin_marked_content","end_marked_content","type3_glyph_width"]);async function Wi(t,e,n,r){let i=await Yn(t,e);if(r&&r.length!==i.pristine.length)throw new Error("Stale rewrite state for page");let{commands:s,ranges:o}=it(i.pristine),a=new Uint8Array(r!=null?r:i.pristine),c=l=>{let u=o[l];if(!i.chunkSpans.some(f=>u.start>=f.start&&u.end<=f.end))throw new Error(`Operator at index ${l} spans multiple content streams`);a.fill(32,u.start,u.end);};for(let l of n){if(l.start<0||l.end<l.start||l.end>=s.length)throw new Error(`Invalid operator span ${l.start}..${l.end}`);let u=0;for(let d=l.start;d<=l.end;d++){let f=s[d],m=o[d];if(!f||!m)throw new Error(`No operator at index ${d}`);if(f.op==="save_state"){u+=1;continue}if(f.op==="restore_state"){u-=1;continue}if(!xc.has(f.op)){if(f.op==="clip"||f.op==="clip_even_odd"){if(u<=0)throw new Error("Span contains a clip that outlives it");c(d);continue}if(f.op==="set_spacing_next_line_show_string")throw new Error('Span contains a " operator (spacing side effects)');if(Ui.has(f.op)){let h=Li(f.op);if(m.end-m.start<h.length)throw new Error(`Operator span too small at index ${d}`);c(d);for(let p=0;p<h.length;p++)a[m.start+p]=h.charCodeAt(p);continue}c(d);}}}return {streams:ji(i,a),combined:a}}var Vi=["view","annotate"],Gi=["view","annotate","edit-text","sign","redact","forms","export-clean"];var Xi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",kt={};for(let t=0;t<Xi.length;t++)kt[Xi[t]]=t;function Yi(t){return new TextDecoder().decode(t)}function Ki(t){let e=t.trim(),n=new Uint8Array(e.length>>1);for(let r=0;r<n.length;r++)n[r]=parseInt(e.substr(r*2,2),16);return n}function Hi(t){let e=[];for(let n=0;n<t.length;n+=4){let r=kt[t[n]],i=kt[t[n+1]];if(r===void 0||i===void 0)break;e.push(r<<2|i>>4);let s=kt[t[n+2]];if(s===void 0)break;e.push((i&15)<<4|s>>2);let o=kt[t[n+3]];if(o===void 0)break;e.push((s&3)<<6|o);}return new Uint8Array(e)}function zi(t,e){let n=t.indexOf(".");if(n<0)return null;try{let r=Hi(t.slice(0,n)),i=Hi(t.slice(n+1));return ed25519.verify(i,r,e)?r:null}catch{return null}}var Rt="bde297640169e8f75d2d9bd260e8eab78aa93c39e10c84a8f6abe565a19057e3";function qi(t,e){if(!t||/^0+$/.test(e))return null;let n=zi(t,Ki(e));if(!n)return null;try{return JSON.parse(Yi(n))}catch{return null}}function cn(t,e=Rt){let n=qi(t,e);return !n||typeof n.lid!="string"||!Array.isArray(n.features)?null:n}function ln(t,e=Rt){let n=qi(t,e);return !n||typeof n.lid!="string"||!Array.isArray(n.features)?null:n}function Kn(t,e){return t===0||t*1e3>e}function Ji(t,e){if(!e||e==="localhost"||e==="127.0.0.1"||e==="::1")return true;let n=e.toLowerCase();return t.some(r=>{let i=r.trim().toLowerCase();return i==="*"||i===n?true:n.endsWith("."+i)})}var un="NamahaPDF \xB7 Unlicensed SDK";function Zi(t,e,n,r=un){t.save(),t.globalAlpha=.16,t.fillStyle="#C20E3A";let i=Math.max(14,Math.round(Math.min(e,n)/22));t.font=`600 ${i}px Inter, system-ui, sans-serif`,t.textAlign="center",t.textBaseline="middle";let s=i*9;t.translate(e/2,n/2),t.rotate(-28*Math.PI/180);for(let o=-n;o<n;o+=s*.5)for(let a=-e;a<e;a+=s)t.fillText(r,a,o);t.restore();}async function Qi(t,e=un){try{let{PDFDocument:n,StandardFonts:r,rgb:i,degrees:s}=await import('pdf-lib'),o=await n.load(t,{ignoreEncryption:!0}),a=await o.embedFont(r.HelveticaBold),c=i(.76,.055,.227);for(let l of o.getPages()){let{width:u,height:d}=l.getSize(),f=Math.max(16,Math.min(u,d)/26),m=f*6,h=a.widthOfTextAtSize(e,f)+f*4;for(let p=-d;p<d*2;p+=m)for(let b=-u;b<u*2;b+=h)l.drawText(e,{x:b,y:p,size:f,font:a,color:c,opacity:.14,rotate:s(28)});}return await o.save()}catch{return t}}var ts=5,yc=4320*60*1e3,Dc=4320*60*1e3,wc="/api/license/activate",z={publicKeyHex:Rt,now:()=>Date.now()},be=null,fn=[];function Pc(){let t=new Map;return {getItem:e=>{var n;return (n=t.get(e))!=null?n:null},setItem:(e,n)=>{t.set(e,n);}}}function Sc(t){if(t.storage)return t.storage;try{if(typeof localStorage!="undefined")return localStorage}catch{}return Pc()}function ns(t){if(t.host)return t.host;try{if(typeof location!="undefined")return location.hostname}catch{}return ""}function rs(t){return `namaha.lic.${t}`}function is(t){try{let e=be==null?void 0:be.getItem(rs(t));if(e)return JSON.parse(e)}catch{}return {failCount:0,firstSeen:z.now(),lastAttempt:0}}function qn(t,e){try{be==null||be.setItem(rs(t),JSON.stringify(e));}catch{}}function Fc(){if(z.deviceId)return z.deviceId;let t="namaha.lic.device";try{let n=be==null?void 0:be.getItem(t);if(n)return n}catch{}let e="dev_"+Math.random().toString(36).slice(2)+Date.now().toString(36);try{be==null||be.setItem(t,e);}catch{}return e}function qe(){let t=z.now();if(z.owner)return {status:"LICENSED",edition:"enterprise",features:Gi,watermark:false,reason:"owner"};if(!z.licenseKey)return c("UNLICENSED","no key");let e=cn(z.licenseKey,z.publicKeyHex);if(!e)return c("INVALID","bad signature");if(!Kn(e.exp,t))return c("INVALID","key expired");if(!Ji(e.domains,ns(z)))return c("INVALID","domain not allowed");let n=is(e.lid);if(n.revoked)return c("DEGRADED","revoked");let r=n.token?ln(n.token,z.publicKeyHex):null;if(r&&r.lid===e.lid&&Kn(r.exp,t))return l("LICENSED",r.edition,r.features,"active token");let i=r?r.exp*1e3:n.firstSeen,s=r?Dc:yc,o=t-i<s,a=n.failCount<ts;if(o||a)return l("GRACE",e.edition,e.features,"grace");return c("DEGRADED","grace exhausted");function c(u,d){return {status:u,edition:null,features:Vi.slice(),watermark:true,reason:d}}function l(u,d,f,m){return {status:u,edition:d,features:f.slice(),watermark:false,reason:m}}}function Jn(){let t=qe();for(let e of fn)try{e(t);}catch{}}async function vc(){var o,a;if(z.owner||!z.licenseKey)return;let t=cn(z.licenseKey,z.publicKeyHex);if(!t)return;let e=(o=z.activationUrl)!=null?o:wc,n=(a=z.fetchImpl)!=null?a:typeof fetch!="undefined"?fetch:null;if(!n)return;let r=ns(z),i=Fc(),s=is(t.lid);try{let c=await n(e,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({licenseKey:z.licenseKey,origin:r,deviceId:i})}),l=await c.json().catch(()=>({}));if(l.status==="revoked"||l.status==="invalid"){qn(t.lid,{...s,revoked:!0,lastAttempt:z.now()}),Jn();return}if(c.ok&&l.status==="active"&&l.token&&ln(l.token,z.publicKeyHex)){qn(t.lid,{...s,token:l.token,failCount:0,lastAttempt:z.now(),revoked:!1}),Jn();return}es(t.lid,s);}catch{es(t.lid,s);}}function es(t,e){qn(t,{...e,failCount:Math.min(ts,e.failCount+1),lastAttempt:z.now()}),Jn();}function Cc(t={}){z={publicKeyHex:Rt,now:()=>Date.now(),...t},be=Sc(t);let e=qe();return Ac(),e}var zn=false;async function Ac(){var e;if(zn||z.owner||!z.licenseKey)return;zn=true;let t=(e=z.retryDelays)!=null?e:[0,2e3,6e3,2e4];try{for(let n=0;n<t.length;n++){t[n]>0&&await Mc(t[n]);let r=qe();if(r.status==="LICENSED"&&r.reason==="active token"||r.status==="DEGRADED"||r.status==="INVALID"||r.status==="UNLICENSED")break;await vc();let i=qe();if(i.status==="LICENSED"||i.status==="DEGRADED")break}}finally{zn=false;}}function Mc(t){return new Promise(e=>setTimeout(e,t))}function kc(){return qe()}function ss(t){return qe().features.includes(t)}function Zn(t){if(!ss(t))throw new Error(`NamahaPDF: feature "${t}" requires a license. See namahapdf.com/sdk.`)}function Rc(){return qe().watermark}function Ec(t){return fn.push(t),()=>{fn=fn.filter(e=>e!==t);}}var Oc=t=>t.kind==="highlight"||t.kind==="underline"||t.kind==="strikeout"||t.kind==="squiggly";var Qn=t=>{let e=t.map(s=>s.x),n=t.map(s=>s.y),r=Math.min(...e),i=Math.min(...n);return {x:r,y:i,width:Math.max(...e)-r,height:Math.max(...n)-i}},Et=t=>{if(Oc(t)){let e=[];for(let n of t.quads)e.push({x:n.x,y:n.y},{x:n.x+n.width,y:n.y+n.height});return e.length?Qn(e):{x:0,y:0,width:0,height:0}}if(t.kind==="ink"){let e=t.strokes.flat();return e.length?Qn(e):{x:0,y:0,width:0,height:0}}return t.kind==="note"||t.kind==="freetext"?{...t.rect}:Qn(t.points)};var Ot=1.5,O=t=>{let e=Math.round(t*1e3)/1e3;return Object.is(e,-0)?"0":String(e)},Je=t=>[Math.min(1,Math.max(0,t.r)),Math.min(1,Math.max(0,t.g)),Math.min(1,Math.max(0,t.b))],as=t=>{let e=new Date(t),n=r=>String(r).padStart(2,"0");return `D:${e.getFullYear()}${n(e.getMonth()+1)}${n(e.getDate())}${n(e.getHours())}${n(e.getMinutes())}${n(e.getSeconds())}`},ls=(t,e)=>({x:t.x-e,y:t.y-e,width:t.width+e*2,height:t.height+e*2}),cs=t=>[t.x,t.y,t.x+t.width,t.y+t.height],dt=t=>{var s;let[e,n,r]=Je(t.color),i=(s=t.strokeWidth)!=null?s:Ot;return `${O(i)} w 1 J 1 j ${O(e)} ${O(n)} ${O(r)} RG`},dn=t=>{let[e,n,r]=Je(t);return `${O(e)} ${O(n)} ${O(r)} rg`},er=t=>{var r;let e=!!t.fill,n=((r=t.strokeWidth)!=null?r:Ot)>0;return e&&n?"B":e?"f":"S"},Tc=t=>{let n=t.x+t.width/2,r=t.y+t.height/2,i=t.width/2,s=t.height/2;return [`${O(n+i)} ${O(r)} m`,`${O(n+i)} ${O(r+s*.5523)} ${O(n+i*.5523)} ${O(r+s)} ${O(n)} ${O(r+s)} c`,`${O(n-i*.5523)} ${O(r+s)} ${O(n-i)} ${O(r+s*.5523)} ${O(n-i)} ${O(r)} c`,`${O(n-i)} ${O(r-s*.5523)} ${O(n-i*.5523)} ${O(r-s)} ${O(n)} ${O(r-s)} c`,`${O(n+i*.5523)} ${O(r-s)} ${O(n+i)} ${O(r-s*.5523)} ${O(n+i)} ${O(r)} c`].join(`
11
+ `)},tr=(t,e)=>{let n=t.map((r,i)=>`${O(r.x)} ${O(r.y)} ${i===0?"m":"l"}`);return e&&n.push("h"),n.join(`
12
+ `)},Ic=(t,e,n)=>{let r=Math.atan2(e.y-t.y,e.x-t.x),i=Math.PI/7,s={x:e.x-n*Math.cos(r-i),y:e.y-n*Math.sin(r-i)},o={x:e.x-n*Math.cos(r+i),y:e.y-n*Math.sin(r+i)};return `${O(s.x)} ${O(s.y)} m ${O(e.x)} ${O(e.y)} l ${O(o.x)} ${O(o.y)} l S`},Bc=(t,e)=>{let i=[`${O(t.x)} ${O(e)} m`],s=true;for(let o=t.x+4;o<=t.x+t.width;o+=4)i.push(`${O(o)} ${O(s?e+1.5:e-1.5)} l`),s=!s;return `${i.join(`
13
13
  `)}
14
- S`},Uo=t=>{var o,a,c;let e=Math.max((o=t.style.strokeWidth)!=null?o:ct,2)+1,n=ui(at(t),e);if(t.kind==="highlight"){let l=t.quads.map(f=>`${R(f.x)} ${R(f.y)} ${R(f.width)} ${R(f.height)} re`).join(`
14
+ S`},Uc=t=>{var o,a,c;let e=Math.max((o=t.style.strokeWidth)!=null?o:Ot,2)+1,n=ls(Et(t),e);if(t.kind==="highlight"){let l=t.quads.map(u=>`${O(u.x)} ${O(u.y)} ${O(u.width)} ${O(u.height)} re`).join(`
15
15
  `);return {content:`/GS0 gs
16
- ${Nt(t.style.color)}
16
+ ${dn(t.style.color)}
17
17
  ${l}
18
- f`,bbox:n,multiply:true}}if(t.kind==="underline"||t.kind==="strikeout"||t.kind==="squiggly"){let l=Math.max(.75,(a=t.style.strokeWidth)!=null?a:1),f=t.quads.map(m=>{let p=t.kind==="strikeout"?m.y+m.height*.5:m.baselineY-Math.max(1,m.height*.12);return t.kind==="squiggly"?Bo(m,m.y+1):`${R(m.x)} ${R(p)} m ${R(m.x+m.width)} ${R(p)} l S`}).join(`
19
- `),[d,u,h]=_e(t.style.color);return {content:`${R(l)} w ${R(d)} ${R(u)} ${R(h)} RG
20
- ${f}`,bbox:n,multiply:false}}if(t.kind==="ink"){let l=t.strokes.map(f=>vn(f,false)+`
18
+ f`,bbox:n,multiply:true}}if(t.kind==="underline"||t.kind==="strikeout"||t.kind==="squiggly"){let l=Math.max(.75,(a=t.style.strokeWidth)!=null?a:1),u=t.quads.map(h=>{let p=t.kind==="strikeout"?h.y+h.height*.5:h.baselineY-Math.max(1,h.height*.12);return t.kind==="squiggly"?Bc(h,h.y+1):`${O(h.x)} ${O(p)} m ${O(h.x+h.width)} ${O(p)} l S`}).join(`
19
+ `),[d,f,m]=Je(t.style.color);return {content:`${O(l)} w ${O(d)} ${O(f)} ${O(m)} RG
20
+ ${u}`,bbox:n,multiply:false}}if(t.kind==="ink"){let l=t.strokes.map(u=>tr(u,false)+`
21
21
  S`).join(`
22
- `);return {content:`${Je(t.style)}
23
- ${l}`,bbox:n,multiply:false}}if(t.kind==="rect"){let l=at(t),f=`${R(l.x)} ${R(l.y)} ${R(l.width)} ${R(l.height)} re`;return {content:`${(t.style.fill?Nt(t.style.fill)+`
24
- `:"")+Je(t.style)}
25
- ${f}
26
- ${Fn(t.style)}`,bbox:n,multiply:false}}if(t.kind==="ellipse")return {content:`${(t.style.fill?Nt(t.style.fill)+`
27
- `:"")+Je(t.style)}
28
- ${jo(at(t))}
29
- ${Fn(t.style)}`,bbox:n,multiply:false};if(t.kind==="polygon")return {content:`${(t.style.fill?Nt(t.style.fill)+`
30
- `:"")+Je(t.style)}
31
- ${vn(t.points,true)}
32
- ${Fn(t.style)}`,bbox:n,multiply:false};if(t.kind==="polyline")return {content:`${Je(t.style)}
33
- ${vn(t.points,false)}
34
- S`,bbox:n,multiply:false};let[r,i]=t.points,s=`${Je(t.style)}
35
- ${R(r.x)} ${R(r.y)} m ${R(i.x)} ${R(i.y)} l S`;if(t.kind==="arrow"){let l=Math.max(8,((c=t.style.strokeWidth)!=null?c:ct)*4);s+=`
36
- ${Io(r,i,l)}`;}return {content:s,bbox:n,multiply:false}},Lo=t=>({highlight:"Highlight",underline:"Underline",strikeout:"StrikeOut",squiggly:"Squiggly",rect:"Square",ellipse:"Circle",line:"Line",arrow:"Line",polygon:"Polygon",polyline:"PolyLine",ink:"Ink",note:"Text",freetext:"FreeText"})[t.kind],$o=t=>{let e=[];for(let n of t){let r=n.y+n.height;e.push(n.x,r,n.x+n.width,r,n.x,n.y,n.x+n.width,n.y);}return e},fi=(t,e)=>{var c,l,f;let n=t.getPageCount();if(e.pageIndex<0||e.pageIndex>=n)return;let r=t.getPage(e.pageIndex),i=t.context,s=at(e),o={Type:"Annot",Subtype:Lo(e),Rect:li(ui(s,Math.max((c=e.style.strokeWidth)!=null?c:ct,2)+1)),C:_e(e.style.color),CA:e.style.opacity,F:4,NM:PDFString.of(e.id),M:PDFString.of(ci(e.createdAt)),CreationDate:PDFString.of(ci(e.createdAt))};if(e.author&&(o.T=PDFString.of(e.author)),e.kind==="highlight"||e.kind==="underline"||e.kind==="strikeout"||e.kind==="squiggly")o.QuadPoints=$o(e.quads),e.text&&(o.Contents=PDFString.of(e.text));else if(e.kind==="line"||e.kind==="arrow"){let[d,u]=e.points;o.L=[d.x,d.y,u.x,u.y],e.kind==="arrow"&&(o.LE=["None","ClosedArrow"]),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});}else if(e.kind==="polygon"||e.kind==="polyline")o.Vertices=e.points.flatMap(d=>[d.x,d.y]),e.style.fill&&(o.IC=_e(e.style.fill)),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="rect"||e.kind==="ellipse")e.style.fill&&(o.IC=_e(e.style.fill)),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="ink")o.InkList=e.strokes.map(d=>d.flatMap(u=>[u.x,u.y])),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="note")o.Contents=PDFString.of((l=e.text)!=null?l:""),o.Name="Comment",o.Open=false;else if(e.kind==="freetext"){o.Contents=PDFString.of((f=e.text)!=null?f:"");let[d,u,h]=_e(e.style.color);o.DA=PDFString.of(`${R(d)} ${R(u)} ${R(h)} rg /Helv 12 Tf`),o.Q=0;}if(e.kind!=="note"){let{content:d,bbox:u,multiply:h}=Uo(e),m={Type:"XObject",Subtype:"Form",FormType:1,BBox:li(u),Resources:h?{ExtGState:{GS0:{Type:"ExtGState",BM:"Multiply",ca:1,CA:1}}}:{}},p=i.stream(d,m),x=i.register(p);o.AP={N:x};}let a=i.register(i.obj(o));r.node.addAnnot(a),r.node.get(PDFName.of("Annots"))||r.node.set(PDFName.of("Annots"),i.obj([a]));};var No={left:TextAlignment.Left,center:TextAlignment.Center,right:TextAlignment.Right},Wo={"insert-text":"edit-text","replace-text":"edit-text","delete-object":"edit-text","transform-object":"edit-text","insert-image":"edit-text","rotate-page":"edit-text","delete-page":"edit-text","redact-area":"redact","create-form-field":"forms","update-form-field":"forms","set-form-values":"forms","delete-form-field":"forms","flatten-form":"forms","add-annotation":"annotate"},ut=t=>({r:Math.min(1,Math.max(0,t.r)),g:Math.min(1,Math.max(0,t.g)),b:Math.min(1,Math.max(0,t.b))}),Go=t=>{let e=(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),n=e.includes("bold")||e.includes("black")||e.includes("heavy"),r=e.includes("italic")||e.includes("oblique");return e.includes("times")?n&&r?StandardFonts.TimesRomanBoldItalic:n?StandardFonts.TimesRomanBold:r?StandardFonts.TimesRomanItalic:StandardFonts.TimesRoman:e.includes("courier")?n&&r?StandardFonts.CourierBoldOblique:n?StandardFonts.CourierBold:r?StandardFonts.CourierOblique:StandardFonts.Courier:n&&r?StandardFonts.HelveticaBoldOblique:n?StandardFonts.HelveticaBold:r?StandardFonts.HelveticaOblique:StandardFonts.Helvetica},Wt=t=>{let e=[];for(let n=0;n<t.length;){let r=t.codePointAt(n);if(r===void 0)break;e.push(r),n+=r>65535?2:1;}return e},Xo=new Map([["\xAD",""],["\u200B",""],["\u200C",""],["\u200D",""],["\uFEFF",""],["\u2000"," "],["\u2001"," "],["\u2002"," "],["\u2003"," "],["\u2004"," "],["\u2005"," "],["\u2006"," "],["\u2007"," "],["\u2008"," "],["\u2009"," "],["\u200A"," "],["\u3000"," "],["\u2010","-"],["\u2011","-"],["\u2012","-"],["\u2015","-"],["\u2212","-"],["\u2024","."],["\u2032","'"],["\u2033",'"'],["\u02BC","'"],["\u2044","/"],["\u2215","/"],["\u2028",`
22
+ `);return {content:`${dt(t.style)}
23
+ ${l}`,bbox:n,multiply:false}}if(t.kind==="rect"){let l=Et(t),u=`${O(l.x)} ${O(l.y)} ${O(l.width)} ${O(l.height)} re`;return {content:`${(t.style.fill?dn(t.style.fill)+`
24
+ `:"")+dt(t.style)}
25
+ ${u}
26
+ ${er(t.style)}`,bbox:n,multiply:false}}if(t.kind==="ellipse")return {content:`${(t.style.fill?dn(t.style.fill)+`
27
+ `:"")+dt(t.style)}
28
+ ${Tc(Et(t))}
29
+ ${er(t.style)}`,bbox:n,multiply:false};if(t.kind==="polygon")return {content:`${(t.style.fill?dn(t.style.fill)+`
30
+ `:"")+dt(t.style)}
31
+ ${tr(t.points,true)}
32
+ ${er(t.style)}`,bbox:n,multiply:false};if(t.kind==="polyline")return {content:`${dt(t.style)}
33
+ ${tr(t.points,false)}
34
+ S`,bbox:n,multiply:false};let[r,i]=t.points,s=`${dt(t.style)}
35
+ ${O(r.x)} ${O(r.y)} m ${O(i.x)} ${O(i.y)} l S`;if(t.kind==="arrow"){let l=Math.max(8,((c=t.style.strokeWidth)!=null?c:Ot)*4);s+=`
36
+ ${Ic(r,i,l)}`;}return {content:s,bbox:n,multiply:false}},Lc=t=>({highlight:"Highlight",underline:"Underline",strikeout:"StrikeOut",squiggly:"Squiggly",rect:"Square",ellipse:"Circle",line:"Line",arrow:"Line",polygon:"Polygon",polyline:"PolyLine",ink:"Ink",note:"Text",freetext:"FreeText"})[t.kind],_c=t=>{let e=[];for(let n of t){let r=n.y+n.height;e.push(n.x,r,n.x+n.width,r,n.x,n.y,n.x+n.width,n.y);}return e},us=(t,e)=>{var c,l,u;let n=t.getPageCount();if(e.pageIndex<0||e.pageIndex>=n)return;let r=t.getPage(e.pageIndex),i=t.context,s=Et(e),o={Type:"Annot",Subtype:Lc(e),Rect:cs(ls(s,Math.max((c=e.style.strokeWidth)!=null?c:Ot,2)+1)),C:Je(e.style.color),CA:e.style.opacity,F:4,NM:PDFString.of(e.id),M:PDFString.of(as(e.createdAt)),CreationDate:PDFString.of(as(e.createdAt))};if(e.author&&(o.T=PDFString.of(e.author)),e.kind==="highlight"||e.kind==="underline"||e.kind==="strikeout"||e.kind==="squiggly")o.QuadPoints=_c(e.quads),e.text&&(o.Contents=PDFString.of(e.text));else if(e.kind==="line"||e.kind==="arrow"){let[d,f]=e.points;o.L=[d.x,d.y,f.x,f.y],e.kind==="arrow"&&(o.LE=["None","ClosedArrow"]),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});}else if(e.kind==="polygon"||e.kind==="polyline")o.Vertices=e.points.flatMap(d=>[d.x,d.y]),e.style.fill&&(o.IC=Je(e.style.fill)),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="rect"||e.kind==="ellipse")e.style.fill&&(o.IC=Je(e.style.fill)),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="ink")o.InkList=e.strokes.map(d=>d.flatMap(f=>[f.x,f.y])),e.style.strokeWidth&&(o.BS={W:e.style.strokeWidth,S:"S"});else if(e.kind==="note")o.Contents=PDFString.of((l=e.text)!=null?l:""),o.Name="Comment",o.Open=false;else if(e.kind==="freetext"){o.Contents=PDFString.of((u=e.text)!=null?u:"");let[d,f,m]=Je(e.style.color);o.DA=PDFString.of(`${O(d)} ${O(f)} ${O(m)} rg /Helv 12 Tf`),o.Q=0;}if(e.kind!=="note"){let{content:d,bbox:f,multiply:m}=Uc(e),h={Type:"XObject",Subtype:"Form",FormType:1,BBox:cs(f),Resources:m?{ExtGState:{GS0:{Type:"ExtGState",BM:"Multiply",ca:1,CA:1}}}:{}},p=i.stream(d,h),b=i.register(p);o.AP={N:b};}let a=i.register(i.obj(o));r.node.addAnnot(a),r.node.get(PDFName.of("Annots"))||r.node.set(PDFName.of("Annots"),i.obj([a]));};var Nc={left:TextAlignment.Left,center:TextAlignment.Center,right:TextAlignment.Right},$c={"insert-text":"edit-text","replace-text":"edit-text","delete-object":"edit-text","transform-object":"edit-text","insert-image":"edit-text","rotate-page":"edit-text","delete-page":"edit-text","redact-area":"redact","create-form-field":"forms","update-form-field":"forms","set-form-values":"forms","delete-form-field":"forms","flatten-form":"forms","add-annotation":"annotate"},It=t=>({r:Math.min(1,Math.max(0,t.r)),g:Math.min(1,Math.max(0,t.g)),b:Math.min(1,Math.max(0,t.b))}),Wc=t=>{let e=(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),n=e.includes("bold")||e.includes("black")||e.includes("heavy"),r=e.includes("italic")||e.includes("oblique");return e.includes("times")?n&&r?StandardFonts.TimesRomanBoldItalic:n?StandardFonts.TimesRomanBold:r?StandardFonts.TimesRomanItalic:StandardFonts.TimesRoman:e.includes("courier")?n&&r?StandardFonts.CourierBoldOblique:n?StandardFonts.CourierBold:r?StandardFonts.CourierOblique:StandardFonts.Courier:n&&r?StandardFonts.HelveticaBoldOblique:n?StandardFonts.HelveticaBold:r?StandardFonts.HelveticaOblique:StandardFonts.Helvetica},hn=t=>{let e=[];for(let n=0;n<t.length;){let r=t.codePointAt(n);if(r===void 0)break;e.push(r),n+=r>65535?2:1;}return e},Vc=new Map([["\xAD",""],["\u200B",""],["\u200C",""],["\u200D",""],["\uFEFF",""],["\u2000"," "],["\u2001"," "],["\u2002"," "],["\u2003"," "],["\u2004"," "],["\u2005"," "],["\u2006"," "],["\u2007"," "],["\u2008"," "],["\u2009"," "],["\u200A"," "],["\u3000"," "],["\u2010","-"],["\u2011","-"],["\u2012","-"],["\u2015","-"],["\u2212","-"],["\u2024","."],["\u2032","'"],["\u2033",'"'],["\u02BC","'"],["\u2044","/"],["\u2215","/"],["\u2028",`
37
37
  `],["\u2029",`
38
- `],["\uFB01","fi"],["\uFB02","fl"],["\uFB00","ff"],["\uFB03","ffi"],["\uFB04","ffl"]]),mi=t=>(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),Mn=t=>!t||typeof t!="object"||!("type"in t)?null:t.type==="name"?t.value:null,Ne=(t,e)=>{if(t){if(!q(t))return t;try{return e(t)}catch{return}}},Yo=t=>{if(!(!t||!j(t)))return t.items[0]},Ho=(t,e)=>{let n=Ne(t.entries.get("FontDescriptor"),e);if(n&&M(n))return n;let r=Ne(t.entries.get("DescendantFonts"),e),i=Ne(Yo(r),e);if(i&&M(i)){let s=Ne(i.entries.get("FontDescriptor"),e);if(s&&M(s))return s}},Ko=t=>{var a,c,l,f,d,u,h,m;let e=new Te(t),r=e.parse().xrefTables.get(0);if(!r)return [];let i=[],s=new Set,o=p=>e.loadObject(p);for(let[p,x]of r.entries()){if(!x.inUse)continue;let g;try{g=o({type:"ref",objNum:p,genNum:x.genNum});}catch{continue}if(!M(g))continue;let b=Mn(g.entries.get("Subtype"));if(!b||!["Type1","TrueType","Type0","CIDFontType0","CIDFontType2"].includes(b))continue;let P=Ho(g,o);if(!P)continue;let y=(c=(a=Ne(P.entries.get("FontFile2"),o))!=null?a:Ne(P.entries.get("FontFile3"),o))!=null?c:Ne(P.entries.get("FontFile"),o);if(!y||!U(y))continue;let D=(f=(l=Mn(g.entries.get("BaseFont")))!=null?l:Mn(P.entries.get("FontName")))!=null?f:`Font${p}`,v=mi(D),S=`${v}:${(m=(h=(d=y.rawBytes)==null?void 0:d.length)!=null?h:(u=y.data)==null?void 0:u.length)!=null?m:0}`;if(!s.has(S))try{let F=_.decodeStreamSync(y);if(F.length===0)continue;i.push({baseName:D,normalizedName:v,bytes:F}),s.add(S);}catch{continue}}return i},hi=(t,e,n,r)=>{let i=Math.max(0,t.x-e),s=Math.max(0,t.y-e),o=Math.min(n,t.x+t.width+e),a=Math.min(r,t.y+t.height+e);return {x:i,y:s,width:Math.max(0,o-i),height:Math.max(0,a-s)}},ft=class t{constructor(e,n){this.pdfDoc=e;this.pdfBytes=n;this.standardFontCache=new Map;this.embeddedFontCache=new Map;this.embeddedFonts=null;this.fontkitRegistered=false;this.rewrittenPages=new Map;this.indexInvalidPages=new Set;this.embeddedImageCache=new Map;this.currentBytes=n;}static async fromAvniDocument(e){let n=await e.blob.arrayBuffer(),r=new Uint8Array(n),i=await PDFDocument.load(r);return new t(i,r)}static async fromBytes(e){let n=e instanceof Uint8Array?e:new Uint8Array(e),r=await PDFDocument.load(n);return new t(r,n)}getPageCount(){return this.pdfDoc.getPageCount()}async applyOperations(e){var r,i,s,o,a,c,l,f,d,u,h,m,p,x,g,b,P,y,D,v,S,F;if(e.length===0)return;for(let w of e)wn(Wo[w.type]);let n=await this.getStandardFont(StandardFonts.Helvetica);for(let w of e){if(w.type==="create-form-field"||w.type==="set-form-values"||w.type==="delete-form-field"||w.type==="flatten-form")continue;if(w.type==="delete-page"){this.deletePage(w.pageIndex);continue}if(w.type==="delete-object"){if(!await this.tryNeutralizeSpans(w.pageIndex,w.spans))throw new Error("This object cannot be deleted safely.");continue}if(w.type==="transform-object"){if(!await this.tryWrapSpanWithTransform(w))throw new Error("This object cannot be moved safely.");continue}if(w.type==="add-annotation"){fi(this.pdfDoc,w.annotation);continue}let C=this.pdfDoc.getPage(w.pageIndex);if(w.type==="insert-image"){let O=await this.getEmbeddedImage(w.bytes,w.format);C.drawImage(O,{x:w.x,y:w.y,width:w.width,height:w.height});continue}if(w.type==="insert-text"){if((r=w.spans)!=null&&r.length){await this.drawStyledSpans(C,w.spans,w.x,w.y,(i=w.size)!=null?i:14,w.fontName);continue}let O=ut((s=w.color)!=null?s:{r:0,g:0,b:0}),E=this.fitTextToFont(n,w.text);if(E.length===0)continue;C.drawText(E,{x:w.x,y:w.y,size:(o=w.size)!=null?o:14,font:n,color:rgb(O.r,O.g,O.b)});continue}if(w.type==="redact-area"){let O=ut((a=w.color)!=null?a:{r:1,g:1,b:1}),{width:E,height:I}=C.getSize();(l=(c=w.removeOperators)==null?void 0:c.streamOperatorIndices)!=null&&l.length&&await this.tryRemoveTextOperators(w.pageIndex,w.removeOperators.streamOperatorIndices);let L=hi({x:w.x,y:w.y,width:w.width,height:w.height},(f=w.padding)!=null?f:1.75,E,I);C.drawRectangle({x:L.x,y:L.y,width:L.width,height:L.height,color:rgb(O.r,O.g,O.b)});continue}if(w.type==="replace-text"){let O=ut((d=w.backgroundColor)!=null?d:{r:1,g:1,b:1}),E=ut((m=(h=w.color)!=null?h:(u=w.font)==null?void 0:u.color)!=null?m:{r:0,g:0,b:0}),I=(g=(x=w.size)!=null?x:(p=w.font)==null?void 0:p.sizePt)!=null?g:Math.max(8,w.height*.8),L=(b=w.font)!=null&&b.pdfName?await this.getRenderableFont(w.font.pdfName,w.newText):n,$=this.fitTextToFont(L,w.newText),{width:H,height:Z}=C.getSize(),ae=$.trim().length>0?L.widthOfTextAtSize($,I):0;if(!((y=(P=w.removeOperators)==null?void 0:P.streamOperatorIndices)!=null&&y.length?await this.tryRemoveTextOperators(w.pageIndex,w.removeOperators.streamOperatorIndices):false)){let W=Math.min(H-w.x,Math.max(w.width,ae+I*.25)),G=hi({x:w.x,y:w.y,width:W,height:w.height},(D=w.erasePadding)!=null?D:1.75,H,Z);w.eraseClamp&&(G=Br(G,w.eraseClamp)),C.drawRectangle({x:G.x,y:G.y,width:G.width,height:G.height,color:rgb(O.r,O.g,O.b)});}let B=(v=w.baselineY)!=null?v:w.y+Math.max(0,(w.height-I)/2);if((S=w.spans)!=null&&S.length){await this.drawStyledSpans(C,w.spans,w.x,B,I,(F=w.font)==null?void 0:F.pdfName);continue}if($.length===0)continue;C.drawText($,{x:w.x,y:B,size:I,font:L,color:rgb(E.r,E.g,E.b)});continue}if(w.type==="rotate-page"){let O=C.getRotation().angle;C.setRotation(degrees(O+w.degrees));}}await this.applyFormOperations(e,n);}async applyFormOperations(e,n){let r=e.filter(a=>a.type==="create-form-field"||a.type==="update-form-field"||a.type==="set-form-values"||a.type==="delete-form-field"||a.type==="flatten-form");if(r.length===0)return;let i=this.pdfDoc.getForm(),s=false,o=false;for(let a of r)if(a.type==="create-form-field")this.createFormField(a,n),s=true;else if(a.type==="update-form-field"){try{let c=i.getField(a.oldName);c&&i.removeField(c);}catch{}this.createFormField(a,n),s=true;}else if(a.type==="set-form-values"){for(let c of a.values)this.setFieldValue(i,c.name,c.fieldType,c.value);s=true;}else if(a.type==="delete-form-field"){try{let c=i.getField(a.name);c&&i.removeField(c);}catch{}s=true;}else a.type==="flatten-form"&&(o=true);if(s)try{i.updateFieldAppearances(n);}catch{}if(o)try{i.flatten();}catch{}}createFormField(e,n){var f,d;let r=this.pdfDoc.getForm(),i=this.pdfDoc.getPage(e.pageIndex),{x:s,y:o,width:a,height:c}=e.rect,l=e.fontSize&&e.fontSize>0?e.fontSize:void 0;switch(e.fieldType){case "text":case "signature":{let u=r.createTextField(e.name);if(e.value&&u.setText(e.value),l)try{u.setFontSize(l);}catch{}if(e.multiline)try{u.enableMultiline();}catch{}if(e.maxLength&&e.maxLength>0)try{u.setMaxLength(e.maxLength);}catch{}if(e.align)try{u.setAlignment(No[e.align]);}catch{}u.addToPage(i,{x:s,y:o,width:a,height:c,font:n}),(e.fieldType==="signature"||e.readOnly)&&u.enableReadOnly(),e.required&&u.enableRequired();break}case "checkbox":{let u=r.createCheckBox(e.name);u.addToPage(i,{x:s,y:o,width:a,height:c}),e.value&&e.value!=="Off"?u.check():u.uncheck(),e.readOnly&&u.enableReadOnly(),e.required&&u.enableRequired();break}case "dropdown":{let u=r.createDropdown(e.name);if((f=e.options)!=null&&f.length&&u.addOptions(e.options),e.editable)try{u.enableEditing();}catch{}if(e.value)try{u.select(e.value);}catch{}if(l)try{u.setFontSize(l);}catch{}u.addToPage(i,{x:s,y:o,width:a,height:c,font:n}),e.readOnly&&u.enableReadOnly(),e.required&&u.enableRequired();break}case "radio":{let u=r.createRadioGroup(e.name);if(((d=e.options)!=null?d:[]).forEach((m,p)=>{var g,b;let x=(b=(g=e.optionRects)==null?void 0:g[p])!=null?b:{x:s,y:o-p*(c+4),width:a,height:c};u.addOptionToPage(m,i,{x:x.x,y:x.y,width:x.width,height:x.height});}),e.value)try{u.select(e.value);}catch{}e.readOnly&&u.enableReadOnly(),e.required&&u.enableRequired();break}}}setFieldValue(e,n,r,i){try{switch(r){case "text":case "signature":e.getTextField(n).setText(i!=null?i:"");break;case "checkbox":{let s=e.getCheckBox(n);i&&i!=="Off"&&i!=="false"?s.check():s.uncheck();break}case "dropdown":i?e.getDropdown(n).select(i):e.getDropdown(n).clear();break;case "radio":i&&i!=="Off"?e.getRadioGroup(n).select(i):e.getRadioGroup(n).clear();break}}catch{}}async toBlob(){let e=await this.pdfDoc.save({useObjectStreams:false}),n=e instanceof Uint8Array?e:Uint8Array.from(e),r=n.slice().buffer;this.currentBytes=n,this.rewrittenPages.clear(),this.indexInvalidPages.clear();for(let i of this.pdfDoc.getPages()){let s=i;s.contentStream=void 0,s.contentStreamRef=void 0;}return new Blob([r],{type:"application/pdf"})}async tryRemoveTextOperators(e,n){if(this.indexInvalidPages.has(e))return false;try{let{streams:r,combined:i}=await Nr(this.currentBytes,e,n,this.rewrittenPages.get(e)),s=r.filter(l=>l.changed);if(s.length===0)return !1;let o=s.map(l=>PDFRef.of(l.objNum,l.genNum));for(let l of o)if(!this.pdfDoc.context.lookup(l))return !1;s.forEach((l,f)=>{this.pdfDoc.context.assign(o[f],this.pdfDoc.context.flateStream(l.bytes));});let a=this.pdfDoc.getPage(e),c=a.contentStreamRef;return c&&o.some(l=>l.tag===c.tag)&&(a.contentStream=void 0),this.rewrittenPages.set(e,i),!0}catch{return false}}async tryNeutralizeSpans(e,n){if(!n.length||this.indexInvalidPages.has(e))return false;try{let{streams:r,combined:i}=await Gr(this.currentBytes,e,n,this.rewrittenPages.get(e)),s=r.filter(l=>l.changed);if(s.length===0)return !1;let o=s.map(l=>PDFRef.of(l.objNum,l.genNum));for(let l of o)if(!this.pdfDoc.context.lookup(l))return !1;s.forEach((l,f)=>{this.pdfDoc.context.assign(o[f],this.pdfDoc.context.flateStream(l.bytes));});let a=this.pdfDoc.getPage(e),c=a.contentStreamRef;return c&&o.some(l=>l.tag===c.tag)&&(a.contentStream=void 0),this.rewrittenPages.set(e,i),!0}catch{return false}}async tryWrapSpanWithTransform(e){if(this.indexInvalidPages.has(e.pageIndex))return false;try{let n=He(e.baseCtm);if(!n)return !1;let r=Y(Y(n,e.matrix),e.baseCtm),{streams:i,combined:s}=await Wr(this.currentBytes,e.pageIndex,e.span,r,this.rewrittenPages.get(e.pageIndex)),o=i.filter(f=>f.changed);if(o.length===0)return !1;let a=o.map(f=>PDFRef.of(f.objNum,f.genNum));for(let f of a)if(!this.pdfDoc.context.lookup(f))return !1;o.forEach((f,d)=>{this.pdfDoc.context.assign(a[d],this.pdfDoc.context.flateStream(f.bytes));});let c=this.pdfDoc.getPage(e.pageIndex),l=c.contentStreamRef;return l&&a.some(f=>f.tag===l.tag)&&(c.contentStream=void 0),this.rewrittenPages.set(e.pageIndex,s),this.indexInvalidPages.add(e.pageIndex),!0}catch{return false}}deletePage(e){if(this.pdfDoc.getPageCount()<=1)throw new Error("Cannot delete the last remaining page");this.pdfDoc.removePage(e);}getEmbeddedImage(e,n){let r=0;for(let a=0;a<e.length;a+=Math.max(1,e.length>>5))r=r*31+e[a]>>>0;let i=`${n}:${e.length}:${r}`,s=this.embeddedImageCache.get(i);if(s)return s;let o=n==="png"?this.pdfDoc.embedPng(e):this.pdfDoc.embedJpg(e);return this.embeddedImageCache.set(i,o),o}getStandardFont(e){let n=this.standardFontCache.get(e);if(n)return n;let r=this.pdfDoc.embedFont(e);return this.standardFontCache.set(e,r),r}async drawStyledSpans(e,n,r,i,s,o){var c,l;let a=r;for(let f of n){if(f.text.length===0)continue;let d=(c=f.style.sizePt)!=null?c:s,u=Ir(o,{bold:f.style.bold,italic:f.style.italic}),h=await this.getRenderableFont(u,f.text),m=this.fitTextToFont(h,f.text);if(m.length===0)continue;let p=ut((l=f.style.color)!=null?l:{r:0,g:0,b:0}),x=rgb(p.r,p.g,p.b),g=h.widthOfTextAtSize(m,d);if(e.drawText(m,{x:a,y:i,size:d,font:h,color:x}),f.style.underline||f.style.strikethrough){let b=Math.max(.5,d*.06);f.style.underline&&e.drawRectangle({x:a,y:i-d*.12,width:g,height:b,color:x}),f.style.strikethrough&&e.drawRectangle({x:a,y:i+d*.28,width:g,height:b,color:x});}a+=g;}}async getRenderableFont(e,n){let r=mi(e),i=await this.getStandardFont(Go(e));if(this.fontSupportsText(i,n))return i;let s=await this.getStandardFont(StandardFonts.Helvetica);if(this.fontSupportsText(s,n))return s;let o=await this.getEmbeddedFont(r);if(o&&this.fontSupportsText(o,n))return o;let a=o?[i,s,o]:[i,s],c=a[0],l=1/0;for(let f of a){let d=this.unsupportedCount(f,n);d<l&&(l=d,c=f);}return c}supportedCodePoints(e){try{return new Set(e.getCharacterSet())}catch{return new Set}}unsupportedCount(e,n){let r=this.supportedCodePoints(e);return Wt(n).filter(i=>{let s=String.fromCodePoint(i);return s!=="\r"&&s!==`
39
- `&&s!==" "&&!r.has(i)}).length}fitTextToFont(e,n){if(this.fontSupportsText(e,n))return n;let r=this.supportedCodePoints(e),i=[],s="";for(let o of Wt(n)){let a=String.fromCodePoint(o);if(a==="\r"||a===`
40
- `||a===" "||r.has(o)){s+=a;continue}let c=Xo.get(a);if(c!==void 0&&Wt(c).every(f=>String.fromCodePoint(f)===`
41
- `||r.has(f))){s+=c;continue}i.push(a);}i.length>0&&console.warn(`[PDFEditSession] Dropped ${i.length} character(s) the font cannot encode: ${[...new Set(i)].join(" ")}`);try{return e.encodeText(s),s}catch{return s.replace(/[^\x20-\x7E\r\n\t]/g,"")}}fontSupportsText(e,n){if(n.length===0)return true;try{let r=new Set(e.getCharacterSet());return Wt(n).filter(s=>{let o=String.fromCodePoint(s);return o!=="\r"&&o!==`
42
- `&&o!==" "}).some(s=>!r.has(s))?!1:(e.encodeText(n),!0)}catch{return false}}async getEmbeddedFont(e){let n=this.embeddedFontCache.get(e);if(n)return n;let r=(async()=>{var o;await this.ensureFontkitRegistered();let i=this.getEmbeddedFontPrograms(),s=(o=i.find(a=>a.normalizedName===e))!=null?o:i.find(a=>a.normalizedName.includes(e)||e.includes(a.normalizedName));if(!s)return null;try{return await this.pdfDoc.embedFont(s.bytes,{subset:!0})}catch{return null}})();return this.embeddedFontCache.set(e,r),r}getEmbeddedFontPrograms(){return this.embeddedFonts||(this.embeddedFonts=Ko(this.pdfBytes)),this.embeddedFonts}async ensureFontkitRegistered(){if(this.fontkitRegistered)return;let e=(await import('./fontkit.es-K7R5OPSY.js')).default;this.pdfDoc.registerFontkit(e),this.fontkitRegistered=true;}};function re(t,e){if(t){if(!q(t))return t;try{return e(t)}catch{return}}}function Vo(t,e){if(!t)return;let n=re(t.entries.get("AcroForm"),e);if(!(!n||!M(n)))return n}function zo(t,e){if(!t)return [];let n=re(t.entries.get("Annots"),e);if(!n)return [];let r=[];if(j(n))for(let i of n.items){let s=re(i,e);s&&M(s)&&r.push(s);}return r}var kn=t=>t&&typeof t=="object"&&"type"in t&&t.type==="name"?t.value:null,We=t=>{if(!t||typeof t!="object"||!("type"in t)||t.type!=="string")return null;let e=t.value;if(e.length>=2&&e[0]===254&&e[1]===255){let r="";for(let i=2;i+1<e.length;i+=2)r+=String.fromCharCode(e[i]<<8|e[i+1]);return r}let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return n},xi=t=>t&&typeof t=="object"&&"type"in t&&(t.type==="integer"||t.type==="real")?t.value:null,qo=1,Jo=2,Zo=4096,Qo=32768,ea=65536,ta=t=>{if(!t||!j(t)||t.items.length<4)return null;let e=t.items.slice(0,4).map(o=>xi(o));if(e.some(o=>o===null))return null;let[n,r,i,s]=e;return {x:Math.min(n,i),y:Math.min(r,s),width:Math.abs(i-n),height:Math.abs(s-r)}},pi=(t,e)=>{let n=re(t.entries.get("AP"),e);if(!n||!M(n))return [];let r=re(n.entries.get("N"),e);return !r||!M(r)?[]:Array.from(r.entries.keys()).filter(i=>i!=="Off")},na=(t,e)=>{var i,s,o;let n=re(t,e);if(!n||!j(n))return [];let r=[];for(let a of n.items){let c=re(a,e);c&&j(c)&&c.items.length>0?r.push((s=(i=We(c.items[0]))!=null?i:We(c.items[1]))!=null?s:""):r.push((o=We(c))!=null?o:"");}return r.filter(a=>a.length>0)},ra=t=>{if(!t)return;let e=t.match(/([\d.]+)\s+Tf/);if(!e)return;let n=parseFloat(e[1]);return Number.isFinite(n)?n:void 0},ia=(t,e)=>{switch(t){case "Tx":return "text";case "Ch":return "dropdown";case "Sig":return "signature";case "Btn":return e&ea?null:e&Qo?"radio":"checkbox";default:return null}},sa=(t,e)=>{let n=new Map;for(let[r,i]of t)for(let s of zo(i,e))n.has(s)||n.set(s,r);return n};function oa(t,e,n){let r=Vo(t,n);if(!r)return [];let i=re(r.entries.get("Fields"),n);if(!i||!j(i))return [];let s=We(r.entries.get("DA")),o=sa(e,n),a=[],c=(l,f)=>{var $,H,Z,ae,T;let d=We(l.entries.get("T")),u=d?f.namePrefix?`${f.namePrefix}.${d}`:d:f.namePrefix,h=xi(l.entries.get("Ff")),m=h!==null?h:f.flags,p=($=kn(l.entries.get("FT")))!=null?$:f.ft,x=(H=We(l.entries.get("DA")))!=null?H:f.da,g=(ae=(Z=We(l.entries.get("V")))!=null?Z:kn(l.entries.get("V")))!=null?ae:f.value,b={flags:m,namePrefix:u,ft:p,da:x,value:g!=null?g:void 0},P=re(l.entries.get("Kids"),n),y=P&&j(P)?P.items.map(B=>re(B,n)).filter(B=>!!B&&M(B)):[],v=kn(l.entries.get("Subtype"))==="Widget"||y.length===0&&l.entries.has("Rect"),S=y.some(B=>B.entries.has("T"));if(y.length>0&&S){for(let B of y)c(B,b);return}let F=ia(p,m);if(!F){for(let B of y)c(B,b);return}let w=ra(x!=null?x:s),C=(m&qo)!==0,O=(m&Jo)!==0,E=(m&Zo)!==0,I=F==="dropdown"?na(l.entries.get("Opt"),n):void 0,L=y.length>0?y:v?[l]:[];for(let B of L){let W=ta(re(B.entries.get("Rect"),n));if(!W)continue;let G=(T=o.get(B))!=null?T:0,ee=(F==="checkbox"||F==="radio"?pi(B,n):[])[0];a.push({id:`${u}__${a.length}`,name:u,type:F,pageIndex:G,rect:W,value:g!=null?g:void 0,options:F==="radio"?L.map(te=>pi(te,n)[0]).filter(te=>!!te):I,onState:ee,fontSize:w,multiline:E,readOnly:C,required:O});}};for(let l of i.items){let f=re(l,n);f&&M(f)&&c(f,{flags:0,namePrefix:""});}return a}var gi=t=>t&&typeof t=="object"&&"type"in t&&t.type==="name"?t.value:null,aa=t=>t&&typeof t=="object"&&"type"in t&&(t.type==="integer"||t.type==="real")?t.value:null,ca=t=>{if(!t||typeof t!="object"||!("type"in t)||t.type!=="string")return null;let e=t.value;if(e.length>=2&&e[0]===254&&e[1]===255){let r="";for(let i=2;i+1<e.length;i+=2)r+=String.fromCharCode(e[i]<<8|e[i+1]);return r}let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return n},la=t=>{if(!t||!j(t)||t.items.length<4)return null;let e=t.items.slice(0,4).map(o=>aa(o));if(e.some(o=>o===null))return null;let[n,r,i,s]=e;return {x:Math.min(n,i),y:Math.min(r,s),width:Math.abs(i-n),height:Math.abs(s-r)}},bi=(t,e,n)=>{let r=q(t)?t:re(t,n);if(!r||!j(r)||r.items.length===0)return;let i=r.items[0];if(q(i))return e.get(`${i.objNum}:${i.genNum}`)};function yi(t,e,n){var s;if(!t)return [];let r=re(t.entries.get("Annots"),n);if(!r||!j(r))return [];let i=[];for(let o of r.items){let a=re(o,n);if(!a||!M(a)||gi(a.entries.get("Subtype"))!=="Link")continue;let c=la(re(a.entries.get("Rect"),n));if(!c||c.width<1||c.height<1)continue;let l,f,d=re(a.entries.get("A"),n);if(d&&M(d)){let u=gi(d.entries.get("S"));u==="URI"?l=(s=ca(d.entries.get("URI")))!=null?s:void 0:u==="GoTo"&&(f=bi(d.entries.get("D"),e,n));}l===void 0&&f===void 0&&(f=bi(a.entries.get("Dest"),e,n)),(l||f!==void 0)&&i.push({rect:c,uri:l,destPageIndex:f});}return i}var Pi=new WeakMap,Rn=class{constructor(){this.name="pdf-editor-core";this.supportedTypes=["pdf"];}async process(e,n){var r,i;try{let s=(r=n.operations)!=null?r:[];if(s.length===0)return {success:!1,document:e,error:"No edit operations were provided."};let o=(i=Pi.get(e.blob))!=null?i:await ft.fromAvniDocument(e);await o.applyOperations(s);let a=await o.toBlob();Pi.set(a,o);let c={taskId:crypto.randomUUID(),processorName:this.name,timestamp:Date.now(),params:n};return {success:!0,document:{...e,blob:a,size:a.size,history:[...e.history,c]},metrics:{duration:0,originalSize:e.size,newSize:a.size}}}catch(s){return {success:false,document:e,error:s instanceof Error?s.message:"Unknown PDF edit failure"}}}};var Tn=class{constructor(){this.name="pdf-compressor";this.supportedTypes=["pdf"];}async process(e,n){try{let i=(n.level||50)/100,s=await e.blob.arrayBuffer(),o=await PDFDocument.load(s);o.setTitle(""),o.setAuthor(""),o.setSubject(""),o.setKeywords([]),o.setCreator(""),o.setProducer("");let a=o.context.enumerateIndirectObjects();for(let[,d]of a){if(!(d instanceof PDFRawStream))continue;let u=d.dict;if(u.get(PDFName.of("Subtype"))===PDFName.of("Image"))try{let m=u.get(PDFName.of("Width")),p=u.get(PDFName.of("Height")),x=m instanceof PDFNumber?m.asNumber():0,g=p instanceof PDFNumber?p.asNumber():0;if(x>500||g>500){let b=d.contents,P=await this.compressImageInBrowser(b,x,g,i);P&&P.length<b.length&&(d.contents=P,u.set(PDFName.of("Length"),PDFNumber.of(P.length)),u.set(PDFName.of("Filter"),PDFName.of("DCTDecode")));}}catch{}}if(i<.7){let d=o.getPages();for(let u of d)u.scale(i,i);}let c=await o.save({useObjectStreams:!0}),l=new Blob([c],{type:"application/pdf"}),f={taskId:crypto.randomUUID(),processorName:this.name,timestamp:Date.now(),params:n};return {success:!0,document:{...e,blob:l,size:l.size,history:[...e.history,f]},metrics:{duration:0,originalSize:e.size,newSize:l.size}}}catch(r){return console.error("Adobe-Level Compression error:",r),{success:false,document:e,error:r instanceof Error?r.message:"Unknown error"}}}async compressImageInBrowser(e,n,r,i){return new Promise(s=>{try{let o=new Blob([e]),a=URL.createObjectURL(o),c=new Image;c.onload=()=>{URL.revokeObjectURL(a);let l=document.createElement("canvas"),f=l.getContext("2d");if(!f)return s(null);l.width=Math.floor(n*i),l.height=Math.floor(r*i),f.drawImage(c,0,0,l.width,l.height),l.toBlob(d=>{if(!d)return s(null);let u=new FileReader;u.onloadend=()=>{s(new Uint8Array(u.result));},u.readAsArrayBuffer(d);},"image/jpeg",Math.max(.1,i));},c.onerror=()=>{URL.revokeObjectURL(a),s(null);},c.src=a;}catch{s(null);}})}};export{mt as AvniOrchestrator,Tn as PDFCompressor,Rn as PDFEditProcessor,ft as PDFEditSession,Te as PDFParser,jt as PageRenderer,$t as WATERMARK_TEXT,wn as assertFeature,Di as avniEngine,Ao as configureLicense,Qr as drawWatermarkOnCanvas,Ro as getLicenseState,oi as isFeatureEnabled,er as loadPageContentStream,To as onLicenseChange,Ue as parseContentStream,oa as parseFormFields,yi as parseLinkAnnotations,Oo as shouldWatermark,ei as stampWatermarkOnPdf};
38
+ `],["\uFB01","fi"],["\uFB02","fl"],["\uFB00","ff"],["\uFB03","ffi"],["\uFB04","ffl"]]),hs=t=>(t!=null?t:"").replace(/^[A-Z]{6}\+/,"").replace(/[#,\s]/g,"").toLowerCase(),sr=t=>!t||typeof t!="object"||!("type"in t)?null:t.type==="name"?t.value:null,Ze=(t,e)=>{if(t){if(!Z(t))return t;try{return e(t)}catch{return}}},Gc=t=>{if(!(!t||!B(t)))return t.items[0]},fs={liga:false,dlig:false,clig:false,hlig:false,calt:false},Xc=(t,e)=>{let n=Ze(t.entries.get("FontDescriptor"),e);if(n&&k(n))return n;let r=Ze(t.entries.get("DescendantFonts"),e),i=Ze(Gc(r),e);if(i&&k(i)){let s=Ze(i.entries.get("FontDescriptor"),e);if(s&&k(s))return s}},Hc=t=>{var a,c,l,u,d,f,m,h;let e=new _e(t),r=e.parse().xrefTables.get(0);if(!r)return [];let i=[],s=new Set,o=p=>e.loadObject(p);for(let[p,b]of r.entries()){if(!b.inUse)continue;let g;try{g=o({type:"ref",objNum:p,genNum:b.genNum});}catch{continue}if(!k(g))continue;let x=sr(g.entries.get("Subtype"));if(!x||!["Type1","TrueType","Type0","CIDFontType0","CIDFontType2"].includes(x))continue;let D=Xc(g,o);if(!D)continue;let y=(c=(a=Ze(D.entries.get("FontFile2"),o))!=null?a:Ze(D.entries.get("FontFile3"),o))!=null?c:Ze(D.entries.get("FontFile"),o);if(!y||!L(y))continue;let w=(u=(l=sr(g.entries.get("BaseFont")))!=null?l:sr(D.entries.get("FontName")))!=null?u:`Font${p}`,v=hs(w),S=`${v}:${(h=(m=(d=y.rawBytes)==null?void 0:d.length)!=null?m:(f=y.data)==null?void 0:f.length)!=null?h:0}`;if(!s.has(S))try{let P=$.decodeStreamSync(y);if(P.length===0)continue;i.push({baseName:w,normalizedName:v,bytes:P}),s.add(S);}catch{continue}}return i},ds=(t,e,n,r)=>{let i=Math.max(0,t.x-e),s=Math.max(0,t.y-e),o=Math.min(n,t.x+t.width+e),a=Math.min(r,t.y+t.height+e);return {x:i,y:s,width:Math.max(0,o-i),height:Math.max(0,a-s)}},Bt=class t{constructor(e,n){this.pdfDoc=e;this.pdfBytes=n;this.standardFontCache=new Map;this.embeddedFontCache=new Map;this.embeddedFonts=null;this.fontkitRegistered=false;this.rewrittenPages=new Map;this.indexInvalidPages=new Set;this.embeddedImageCache=new Map;this.currentBytes=n;}static async fromAvniDocument(e){let n=await e.blob.arrayBuffer(),r=new Uint8Array(n),i=await PDFDocument.load(r,{ignoreEncryption:true});return new t(i,r)}static async fromBytes(e){let n=e instanceof Uint8Array?e:new Uint8Array(e),r=await PDFDocument.load(n,{ignoreEncryption:true});return new t(r,n)}getPageCount(){return this.pdfDoc.getPageCount()}async applyOperations(e){var r,i,s,o,a,c,l,u,d,f,m,h,p,b,g,x,D,y,w,v,S,P,M,C;if(e.length===0)return;for(let F of e)Zn($c[F.type]);let n=await this.getStandardFont(StandardFonts.Helvetica);for(let F of e){if(F.type==="create-form-field"||F.type==="set-form-values"||F.type==="delete-form-field"||F.type==="flatten-form")continue;if(F.type==="delete-page"){this.deletePage(F.pageIndex);continue}if(F.type==="delete-object"){if(!await this.tryNeutralizeSpans(F.pageIndex,F.spans))throw new Error("This object cannot be deleted safely.");continue}if(F.type==="transform-object"){if(!await this.tryWrapSpanWithTransform(F))throw new Error("This object cannot be moved safely.");continue}if(F.type==="add-annotation"){us(this.pdfDoc,F.annotation);continue}let R=this.pdfDoc.getPage(F.pageIndex);if(F.type==="insert-image"){let T=await this.getEmbeddedImage(F.bytes,F.format);R.drawImage(T,{x:F.x,y:F.y,width:F.width,height:F.height});continue}if(F.type==="insert-text"){if((r=F.spans)!=null&&r.length){await this.drawStyledSpans(R,F.spans,F.x,F.y,(i=F.size)!=null?i:14,F.fontName);continue}let T=It((s=F.color)!=null?s:{r:0,g:0,b:0}),U=this.fitTextToFont(n,F.text);if(U.length===0)continue;this.safeDrawText(R,U,{x:F.x,y:F.y,size:(o=F.size)!=null?o:14,font:n,color:rgb(T.r,T.g,T.b)},n);continue}if(F.type==="redact-area"){let T=It((a=F.color)!=null?a:{r:1,g:1,b:1}),{width:U,height:N}=R.getSize();(l=(c=F.removeOperators)==null?void 0:c.streamOperatorIndices)!=null&&l.length&&await this.tryRemoveTextOperators(F.pageIndex,F.removeOperators.streamOperatorIndices);let j=ds({x:F.x,y:F.y,width:F.width,height:F.height},(u=F.padding)!=null?u:1.75,U,N);R.drawRectangle({x:j.x,y:j.y,width:j.width,height:j.height,color:rgb(T.r,T.g,T.b)});continue}if(F.type==="replace-text"){let T=It((d=F.backgroundColor)!=null?d:{r:1,g:1,b:1}),U=It((h=(m=F.color)!=null?m:(f=F.font)==null?void 0:f.color)!=null?h:{r:0,g:0,b:0}),N=(p=F.font)!=null&&p.pdfName?await this.getRenderableFont(F.font.pdfName,F.newText):{font:n,substituted:true},j=N.font,J=Ti((b=F.font)==null?void 0:b.capHeight,(g=F.font)==null?void 0:g.pdfName),ce=(y=(D=F.size)!=null?D:(x=F.font)==null?void 0:x.sizePt)!=null?y:Math.max(8,F.height*.8),I=ce*(N.substituted?J:1),_=this.fitTextToFont(j,F.newText),{width:W,height:K}=R.getSize(),le=_.trim().length>0?this.safeWidth(j,_,I):0;if(!((v=(w=F.removeOperators)==null?void 0:w.streamOperatorIndices)!=null&&v.length?await this.tryRemoveTextOperators(F.pageIndex,F.removeOperators.streamOperatorIndices):false)){let Fe=Math.min(W-F.x,Math.max(F.width,le+I*.25)),re=ds({x:F.x,y:F.y,width:Fe,height:F.height},(S=F.erasePadding)!=null?S:1.75,W,K);F.eraseClamp&&(re=Ii(re,F.eraseClamp)),R.drawRectangle({x:re.x,y:re.y,width:re.width,height:re.height,color:rgb(T.r,T.g,T.b)});}let te=(P=F.baselineY)!=null?P:F.y+Math.max(0,(F.height-I)/2);if((M=F.spans)!=null&&M.length){await this.drawStyledSpans(R,F.spans,F.x,te,ce*J,(C=F.font)==null?void 0:C.pdfName,J);continue}if(_.length===0)continue;this.safeDrawText(R,_,{x:F.x,y:te,size:I,font:j,color:rgb(U.r,U.g,U.b)},n);continue}if(F.type==="rotate-page"){let T=R.getRotation().angle;R.setRotation(degrees(T+F.degrees));}}await this.applyFormOperations(e,n);}async applyFormOperations(e,n){let r=e.filter(a=>a.type==="create-form-field"||a.type==="update-form-field"||a.type==="set-form-values"||a.type==="delete-form-field"||a.type==="flatten-form");if(r.length===0)return;let i=this.pdfDoc.getForm(),s=false,o=false;for(let a of r)if(a.type==="create-form-field")this.createFormField(a,n),s=true;else if(a.type==="update-form-field"){try{let c=i.getField(a.oldName);c&&i.removeField(c);}catch{}this.createFormField(a,n),s=true;}else if(a.type==="set-form-values"){for(let c of a.values)this.setFieldValue(i,c.name,c.fieldType,c.value);s=true;}else if(a.type==="delete-form-field"){try{let c=i.getField(a.name);c&&i.removeField(c);}catch{}s=true;}else a.type==="flatten-form"&&(o=true);if(s)try{i.updateFieldAppearances(n);}catch{}if(o)try{i.flatten();}catch{}}createFormField(e,n){var u,d;let r=this.pdfDoc.getForm(),i=this.pdfDoc.getPage(e.pageIndex),{x:s,y:o,width:a,height:c}=e.rect,l=e.fontSize&&e.fontSize>0?e.fontSize:void 0;switch(e.fieldType){case "text":case "signature":{let f=r.createTextField(e.name);if(e.value&&f.setText(e.value),l)try{f.setFontSize(l);}catch{}if(e.multiline)try{f.enableMultiline();}catch{}if(e.maxLength&&e.maxLength>0)try{f.setMaxLength(e.maxLength);}catch{}if(e.align)try{f.setAlignment(Nc[e.align]);}catch{}f.addToPage(i,{x:s,y:o,width:a,height:c,font:n}),(e.fieldType==="signature"||e.readOnly)&&f.enableReadOnly(),e.required&&f.enableRequired();break}case "checkbox":{let f=r.createCheckBox(e.name);f.addToPage(i,{x:s,y:o,width:a,height:c}),e.value&&e.value!=="Off"?f.check():f.uncheck(),e.readOnly&&f.enableReadOnly(),e.required&&f.enableRequired();break}case "dropdown":{let f=r.createDropdown(e.name);if((u=e.options)!=null&&u.length&&f.addOptions(e.options),e.editable)try{f.enableEditing();}catch{}if(e.value)try{f.select(e.value);}catch{}if(l)try{f.setFontSize(l);}catch{}f.addToPage(i,{x:s,y:o,width:a,height:c,font:n}),e.readOnly&&f.enableReadOnly(),e.required&&f.enableRequired();break}case "radio":{let f=r.createRadioGroup(e.name);if(((d=e.options)!=null?d:[]).forEach((h,p)=>{var g,x;let b=(x=(g=e.optionRects)==null?void 0:g[p])!=null?x:{x:s,y:o-p*(c+4),width:a,height:c};f.addOptionToPage(h,i,{x:b.x,y:b.y,width:b.width,height:b.height});}),e.value)try{f.select(e.value);}catch{}e.readOnly&&f.enableReadOnly(),e.required&&f.enableRequired();break}}}setFieldValue(e,n,r,i){try{switch(r){case "text":case "signature":e.getTextField(n).setText(i!=null?i:"");break;case "checkbox":{let s=e.getCheckBox(n);i&&i!=="Off"&&i!=="false"?s.check():s.uncheck();break}case "dropdown":i?e.getDropdown(n).select(i):e.getDropdown(n).clear();break;case "radio":i&&i!=="Off"?e.getRadioGroup(n).select(i):e.getRadioGroup(n).clear();break}}catch{}}async toBlob(){let e=await this.pdfDoc.save({useObjectStreams:false}),n=e instanceof Uint8Array?e:Uint8Array.from(e),r=n.slice().buffer;this.currentBytes=n,this.rewrittenPages.clear(),this.indexInvalidPages.clear();for(let i of this.pdfDoc.getPages()){let s=i;s.contentStream=void 0,s.contentStreamRef=void 0;}return new Blob([r],{type:"application/pdf"})}async tryRemoveTextOperators(e,n){if(this.indexInvalidPages.has(e))return false;try{let{streams:r,combined:i}=await Ni(this.currentBytes,e,n,this.rewrittenPages.get(e)),s=r.filter(l=>l.changed);if(s.length===0)return !1;let o=s.map(l=>PDFRef.of(l.objNum,l.genNum));for(let l of o)if(!this.pdfDoc.context.lookup(l))return !1;s.forEach((l,u)=>{this.pdfDoc.context.assign(o[u],this.pdfDoc.context.flateStream(l.bytes));});let a=this.pdfDoc.getPage(e),c=a.contentStreamRef;return c&&o.some(l=>l.tag===c.tag)&&(a.contentStream=void 0),this.rewrittenPages.set(e,i),!0}catch{return false}}async tryNeutralizeSpans(e,n){if(!n.length||this.indexInvalidPages.has(e))return false;try{let{streams:r,combined:i}=await Wi(this.currentBytes,e,n,this.rewrittenPages.get(e)),s=r.filter(l=>l.changed);if(s.length===0)return !1;let o=s.map(l=>PDFRef.of(l.objNum,l.genNum));for(let l of o)if(!this.pdfDoc.context.lookup(l))return !1;s.forEach((l,u)=>{this.pdfDoc.context.assign(o[u],this.pdfDoc.context.flateStream(l.bytes));});let a=this.pdfDoc.getPage(e),c=a.contentStreamRef;return c&&o.some(l=>l.tag===c.tag)&&(a.contentStream=void 0),this.rewrittenPages.set(e,i),!0}catch{return false}}async tryWrapSpanWithTransform(e){if(this.indexInvalidPages.has(e.pageIndex))return false;try{let n=st(e.baseCtm);if(!n)return !1;let r=X(X(n,e.matrix),e.baseCtm),{streams:i,combined:s}=await $i(this.currentBytes,e.pageIndex,e.span,r,this.rewrittenPages.get(e.pageIndex)),o=i.filter(u=>u.changed);if(o.length===0)return !1;let a=o.map(u=>PDFRef.of(u.objNum,u.genNum));for(let u of a)if(!this.pdfDoc.context.lookup(u))return !1;o.forEach((u,d)=>{this.pdfDoc.context.assign(a[d],this.pdfDoc.context.flateStream(u.bytes));});let c=this.pdfDoc.getPage(e.pageIndex),l=c.contentStreamRef;return l&&a.some(u=>u.tag===l.tag)&&(c.contentStream=void 0),this.rewrittenPages.set(e.pageIndex,s),this.indexInvalidPages.add(e.pageIndex),!0}catch{return false}}deletePage(e){if(this.pdfDoc.getPageCount()<=1)throw new Error("Cannot delete the last remaining page");this.pdfDoc.removePage(e);}getEmbeddedImage(e,n){let r=0;for(let a=0;a<e.length;a+=Math.max(1,e.length>>5))r=r*31+e[a]>>>0;let i=`${n}:${e.length}:${r}`,s=this.embeddedImageCache.get(i);if(s)return s;let o=n==="png"?this.pdfDoc.embedPng(e):this.pdfDoc.embedJpg(e);return this.embeddedImageCache.set(i,o),o}getStandardFont(e){let n=this.standardFontCache.get(e);if(n)return n;let r=this.pdfDoc.embedFont(e);return this.standardFontCache.set(e,r),r}async drawStyledSpans(e,n,r,i,s,o,a=1){var u;let c=r,l=await this.getStandardFont(StandardFonts.Helvetica);for(let d of n){if(d.text.length===0)continue;let f=d.style.sizePt!=null?d.style.sizePt*a:s,m=Hn(o,{bold:d.style.bold,italic:d.style.italic}),{font:h}=await this.getRenderableFont(m,d.text),p=this.fitTextToFont(h,d.text);if(p.length===0)continue;let b=It((u=d.style.color)!=null?u:{r:0,g:0,b:0}),g=rgb(b.r,b.g,b.b),x=this.safeDrawText(e,p,{x:c,y:i,size:f,font:h,color:g},l),D=this.safeWidth(x,p,f);if(d.style.underline||d.style.strikethrough){let y=Math.max(.5,f*.06);d.style.underline&&e.drawRectangle({x:c,y:i-f*.12,width:D,height:y,color:g}),d.style.strikethrough&&e.drawRectangle({x:c,y:i+f*.28,width:D,height:y,color:g});}c+=D;}}async getRenderableFont(e,n){let r=hs(e),i=await this.getEmbeddedFont(r);if(i&&this.fontSupportsText(i,n))return {font:i,substituted:false};let s=await this.getStandardFont(Wc(e));if(this.fontSupportsText(s,n))return {font:s,substituted:true};let o=await this.getStandardFont(StandardFonts.Helvetica);if(this.fontSupportsText(o,n))return {font:o,substituted:true};let a=i?[{font:i,substituted:false},{font:s,substituted:true},{font:o,substituted:true}]:[{font:s,substituted:true},{font:o,substituted:true}],c=a[0],l=1/0;for(let u of a){let d=this.unsupportedCount(u.font,n);d<l&&(l=d,c=u);}return c}supportedCodePoints(e){try{return new Set(e.getCharacterSet())}catch{return new Set}}unsupportedCount(e,n){let r=this.supportedCodePoints(e);return hn(n).filter(i=>{let s=String.fromCodePoint(i);return s!=="\r"&&s!==`
39
+ `&&s!==" "&&!r.has(i)}).length}fitTextToFont(e,n){if(this.fontSupportsText(e,n))return n;let r=this.supportedCodePoints(e),i=[],s="";for(let o of hn(n)){let a=String.fromCodePoint(o);if(a==="\r"||a===`
40
+ `||a===" "||r.has(o)){s+=a;continue}let c=Vc.get(a);if(c!==void 0&&hn(c).every(u=>String.fromCodePoint(u)===`
41
+ `||r.has(u))){s+=c;continue}i.push(a);}i.length>0&&console.warn(`[PDFEditSession] Dropped ${i.length} character(s) the font cannot encode: ${[...new Set(i)].join(" ")}`);try{return e.encodeText(s),s}catch{return s.replace(/[^\x20-\x7E\r\n\t]/g,"")}}fontSupportsText(e,n){if(n.length===0)return true;try{let r=new Set(e.getCharacterSet());if(hn(n).filter(s=>{let o=String.fromCodePoint(s);return o!=="\r"&&o!==`
42
+ `&&o!==" "}).some(s=>!r.has(s)))return !1;e.encodeText(n);}catch{return false}return this.fontCanLayout(e,n)}fontCanLayout(e,n){if(n.length===0)return true;try{return e.widthOfTextAtSize(n,12),!0}catch{return false}}safeWidth(e,n,r){try{return e.widthOfTextAtSize(n,r)}catch{return 0}}safeDrawText(e,n,r,i){try{return e.drawText(n,r),r.font}catch{let s=this.fitTextToFont(i,n);return s.length===0||e.drawText(s,{...r,font:i}),i}}async getEmbeddedFont(e){let n=this.embeddedFontCache.get(e);if(n)return n;let r=(async()=>{var o;await this.ensureFontkitRegistered();let i=this.getEmbeddedFontPrograms(),s=(o=i.find(a=>a.normalizedName===e))!=null?o:i.find(a=>a.normalizedName.includes(e)||e.includes(a.normalizedName));if(!s||!await this.embedSurvivesSave(s.bytes))return null;try{return await this.pdfDoc.embedFont(s.bytes,{subset:!1,features:fs})}catch{return null}})();return this.embeddedFontCache.set(e,r),r}async embedSurvivesSave(e){try{let n=await PDFDocument.create(),r=(await import('./fontkit.es-K7R5OPSY.js')).default;n.registerFontkit(r);let i=await n.embedFont(e,{subset:!1,features:fs});return n.addPage().drawText("Aa Bb Cc 0123 office efficient settling",{x:10,y:10,size:10,font:i}),await n.save(),!0}catch{return false}}getEmbeddedFontPrograms(){return this.embeddedFonts||(this.embeddedFonts=Hc(this.pdfBytes)),this.embeddedFonts}async ensureFontkitRegistered(){if(this.fontkitRegistered)return;let e=(await import('./fontkit.es-K7R5OPSY.js')).default;this.pdfDoc.registerFontkit(e),this.fontkitRegistered=true;}};function se(t,e){if(t){if(!Z(t))return t;try{return e(t)}catch{return}}}function Yc(t,e){if(!t)return;let n=se(t.entries.get("AcroForm"),e);if(!(!n||!k(n)))return n}function Kc(t,e){if(!t)return [];let n=se(t.entries.get("Annots"),e);if(!n)return [];let r=[];if(B(n))for(let i of n.items){let s=se(i,e);s&&k(s)&&r.push(s);}return r}var or=t=>t&&typeof t=="object"&&"type"in t&&t.type==="name"?t.value:null,Qe=t=>{if(!t||typeof t!="object"||!("type"in t)||t.type!=="string")return null;let e=t.value;if(e.length>=2&&e[0]===254&&e[1]===255){let r="";for(let i=2;i+1<e.length;i+=2)r+=String.fromCharCode(e[i]<<8|e[i+1]);return r}let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return n},ps=t=>t&&typeof t=="object"&&"type"in t&&(t.type==="integer"||t.type==="real")?t.value:null,zc=1,qc=2,Jc=4096,Zc=32768,Qc=65536,el=t=>{if(!t||!B(t)||t.items.length<4)return null;let e=t.items.slice(0,4).map(o=>ps(o));if(e.some(o=>o===null))return null;let[n,r,i,s]=e;return {x:Math.min(n,i),y:Math.min(r,s),width:Math.abs(i-n),height:Math.abs(s-r)}},ms=(t,e)=>{let n=se(t.entries.get("AP"),e);if(!n||!k(n))return [];let r=se(n.entries.get("N"),e);return !r||!k(r)?[]:Array.from(r.entries.keys()).filter(i=>i!=="Off")},tl=(t,e)=>{var i,s,o;let n=se(t,e);if(!n||!B(n))return [];let r=[];for(let a of n.items){let c=se(a,e);c&&B(c)&&c.items.length>0?r.push((s=(i=Qe(c.items[0]))!=null?i:Qe(c.items[1]))!=null?s:""):r.push((o=Qe(c))!=null?o:"");}return r.filter(a=>a.length>0)},nl=t=>{if(!t)return;let e=t.match(/([\d.]+)\s+Tf/);if(!e)return;let n=parseFloat(e[1]);return Number.isFinite(n)?n:void 0},rl=(t,e)=>{switch(t){case "Tx":return "text";case "Ch":return "dropdown";case "Sig":return "signature";case "Btn":return e&Qc?null:e&Zc?"radio":"checkbox";default:return null}},il=(t,e)=>{let n=new Map;for(let[r,i]of t)for(let s of Kc(i,e))n.has(s)||n.set(s,r);return n};function sl(t,e,n){let r=Yc(t,n);if(!r)return [];let i=se(r.entries.get("Fields"),n);if(!i||!B(i))return [];let s=Qe(r.entries.get("DA")),o=il(e,n),a=[],c=(l,u)=>{var N,j,J,ce,I;let d=Qe(l.entries.get("T")),f=d?u.namePrefix?`${u.namePrefix}.${d}`:d:u.namePrefix,m=ps(l.entries.get("Ff")),h=m!==null?m:u.flags,p=(N=or(l.entries.get("FT")))!=null?N:u.ft,b=(j=Qe(l.entries.get("DA")))!=null?j:u.da,g=(ce=(J=Qe(l.entries.get("V")))!=null?J:or(l.entries.get("V")))!=null?ce:u.value,x={flags:h,namePrefix:f,ft:p,da:b,value:g!=null?g:void 0},D=se(l.entries.get("Kids"),n),y=D&&B(D)?D.items.map(_=>se(_,n)).filter(_=>!!_&&k(_)):[],v=or(l.entries.get("Subtype"))==="Widget"||y.length===0&&l.entries.has("Rect"),S=y.some(_=>_.entries.has("T"));if(y.length>0&&S){for(let _ of y)c(_,x);return}let P=rl(p,h);if(!P){for(let _ of y)c(_,x);return}let M=nl(b!=null?b:s),C=(h&zc)!==0,F=(h&qc)!==0,R=(h&Jc)!==0,T=P==="dropdown"?tl(l.entries.get("Opt"),n):void 0,U=y.length>0?y:v?[l]:[];for(let _ of U){let W=el(se(_.entries.get("Rect"),n));if(!W)continue;let K=(I=o.get(_))!=null?I:0,ee=(P==="checkbox"||P==="radio"?ms(_,n):[])[0];a.push({id:`${f}__${a.length}`,name:f,type:P,pageIndex:K,rect:W,value:g!=null?g:void 0,options:P==="radio"?U.map(te=>ms(te,n)[0]).filter(te=>!!te):T,onState:ee,fontSize:M,multiline:R,readOnly:C,required:F});}};for(let l of i.items){let u=se(l,n);u&&k(u)&&c(u,{flags:0,namePrefix:""});}return a}var gs=t=>t&&typeof t=="object"&&"type"in t&&t.type==="name"?t.value:null,ol=t=>t&&typeof t=="object"&&"type"in t&&(t.type==="integer"||t.type==="real")?t.value:null,al=t=>{if(!t||typeof t!="object"||!("type"in t)||t.type!=="string")return null;let e=t.value;if(e.length>=2&&e[0]===254&&e[1]===255){let r="";for(let i=2;i+1<e.length;i+=2)r+=String.fromCharCode(e[i]<<8|e[i+1]);return r}let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return n},cl=t=>{if(!t||!B(t)||t.items.length<4)return null;let e=t.items.slice(0,4).map(o=>ol(o));if(e.some(o=>o===null))return null;let[n,r,i,s]=e;return {x:Math.min(n,i),y:Math.min(r,s),width:Math.abs(i-n),height:Math.abs(s-r)}},xs=(t,e,n)=>{let r=Z(t)?t:se(t,n);if(!r||!B(r)||r.items.length===0)return;let i=r.items[0];if(Z(i))return e.get(`${i.objNum}:${i.genNum}`)};function bs(t,e,n){var s;if(!t)return [];let r=se(t.entries.get("Annots"),n);if(!r||!B(r))return [];let i=[];for(let o of r.items){let a=se(o,n);if(!a||!k(a)||gs(a.entries.get("Subtype"))!=="Link")continue;let c=cl(se(a.entries.get("Rect"),n));if(!c||c.width<1||c.height<1)continue;let l,u,d=se(a.entries.get("A"),n);if(d&&k(d)){let f=gs(d.entries.get("S"));f==="URI"?l=(s=al(d.entries.get("URI")))!=null?s:void 0:f==="GoTo"&&(u=xs(d.entries.get("D"),e,n));}l===void 0&&u===void 0&&(u=xs(a.entries.get("Dest"),e,n)),(l||u!==void 0)&&i.push({rect:c,uri:l,destPageIndex:u});}return i}var ys=new WeakMap,ar=class{constructor(){this.name="pdf-editor-core";this.supportedTypes=["pdf"];}async process(e,n){var r,i;try{let s=(r=n.operations)!=null?r:[];if(s.length===0)return {success:!1,document:e,error:"No edit operations were provided."};let o=(i=ys.get(e.blob))!=null?i:await Bt.fromAvniDocument(e);await o.applyOperations(s);let a=await o.toBlob();ys.set(a,o);let c={taskId:crypto.randomUUID(),processorName:this.name,timestamp:Date.now(),params:n};return {success:!0,document:{...e,blob:a,size:a.size,history:[...e.history,c]},metrics:{duration:0,originalSize:e.size,newSize:a.size}}}catch(s){return {success:false,document:e,error:s instanceof Error?s.message:"Unknown PDF edit failure"}}}};var Ps=t=>(t.startsWith("/")?t.slice(1):t).replace(/#([0-9A-Fa-f]{2})/g,(n,r)=>String.fromCharCode(parseInt(r,16))),Ut=t=>{if(t){if(t instanceof PDFRef)return yt(t.objectNumber,t.generationNumber);if(t instanceof PDFName)return pt(Ps(t.asString()));if(t instanceof PDFNumber){let e=t.asNumber();return Number.isInteger(e)?xt(e):bt(e)}if(t instanceof PDFBool)return Le(t.asBoolean());if(t instanceof PDFHexString)return Xe(t.asBytes(),"hex");if(t instanceof PDFString)return Xe(t.asBytes(),"literal");if(t===PDFNull)return gt();if(t instanceof PDFRawStream)return {type:"stream",dict:Ds(t.dict),rawBytes:t.contents,decode:async()=>t.contents};if(t instanceof PDFArray){let e=[];for(let n=0;n<t.size();n++){let r=Ut(t.get(n));r&&e.push(r);}return {type:"array",items:e}}if(t instanceof PDFDict)return Ds(t)}},Ds=t=>{let e=new Map;for(let[n,r]of t.entries()){let i=Ps(n.asString()),s=Ut(r);s&&e.set(i,s);}return {type:"dict",entries:e}},Ss=t=>{let e=new Map;return r=>{if(!r||typeof r!="object"||!("type"in r))return r!=null?r:void 0;if(r.type!=="ref")return r;let i=`${r.objNum} ${r.genNum}`;if(e.has(i))return e.get(i);e.set(i,void 0);let s=t.lookup(PDFRef.of(r.objNum,r.genNum)),o=Ut(s!=null?s:void 0);return e.set(i,o),o}};var Pl=4096,Sl=.98,Fl=4,vl=(t,e)=>{let n=t.dict.lookup(PDFName.of(e));return n instanceof PDFName?n.asString():null},vs=(t,e)=>{let n=t.dict.lookup(PDFName.of(e));return n instanceof PDFNumber?n.asNumber():null},Cl=(t,e)=>{let n=t.dict.lookup(PDFName.of(e));return n instanceof PDFBool?n.asBoolean():false},Al=t=>{let e=t.dict.lookup(PDFName.of("Filter"));return e instanceof PDFName?[e.asString()]:e instanceof PDFArray?e.asArray().filter(n=>n instanceof PDFName).map(n=>n.asString()):[]},Ml=t=>{let e=2166136261,n=t.length>65536?Math.floor(t.length/65536):1;for(let r=0;r<t.length;r+=n)e^=t[r],e=Math.imul(e,16777619);return `${t.length}:${(e>>>0).toString(16)}`},kl=async(t,e,n,r)=>{if(typeof document=="undefined")return null;let i=document.createElement("canvas");i.width=t.width,i.height=t.height;let s=i.getContext("2d");if(!s)return null;s.putImageData(t,0,0);let o=i;if(e!==t.width||n!==t.height){let c=document.createElement("canvas");c.width=e,c.height=n;let l=c.getContext("2d");if(!l)return null;l.imageSmoothingEnabled=true,l.imageSmoothingQuality="high",l.drawImage(i,0,0,e,n),o=c;}let a=await new Promise(c=>o.toBlob(l=>c(l),"image/jpeg",r));return a?new Uint8Array(await a.arrayBuffer()):null},Cs=async(t,e,n)=>{if(typeof document=="undefined")return n==null||n(1),{reencoded:0,examined:0};let r=t.context,i=Ss(r),s=[];for(let[b,g]of r.enumerateIndirectObjects())g instanceof PDFRawStream&&vl(g,"Subtype")==="/Image"&&s.push({ref:b,stream:g});let o=new Set;for(let{stream:b}of s)for(let g of ["SMask","Mask"]){let x=b.dict.get(PDFName.of(g));x instanceof PDFRef&&o.add(x.objectNumber);}let a=s.filter(({ref:b})=>!o.has(b.objectNumber)),c={reencoded:0,examined:a.length};if(a.length===0)return n==null||n(1),c;let l=new Map;for(let b of a){let g=e.dedupeImages?Ml(b.stream.contents):`u:${b.ref.objectNumber}`,x=l.get(g);x?x.push(b):l.set(g,[b]);}let u=[...l.values()],d=0,f=a.length,m=async b=>{let{stream:g}=b[0],x=null;try{x=await Rl(g,e,i);}catch{x=null;}if(x){for(let D of b)if(x.bytes.length<D.stream.contents.length){let y=r.obj({Type:"XObject",Subtype:"Image",Width:x.w,Height:x.h,BitsPerComponent:8,ColorSpace:"DeviceRGB",Filter:"DCTDecode",Length:x.bytes.length});r.assign(D.ref,PDFRawStream.of(y,x.bytes)),c.reencoded+=1;}}d+=b.length,n==null||n(d/f);},h=0,p=Array.from({length:Math.min(Fl,u.length)},async()=>{for(;h<u.length;){let b=h++;await m(u[b]);}});return await Promise.all(p),n==null||n(1),c},Rl=async(t,e,n)=>{var m,h;if(t.contents.length<Pl||Cl(t,"ImageMask"))return null;let r=(m=vs(t,"Width"))!=null?m:0,i=(h=vs(t,"Height"))!=null?h:0;if(r<=0||i<=0)return null;let s=Al(t),o=s.includes("/DCTDecode")||s.includes("/DCT"),a=Math.min(1,e.maxEdge/Math.max(r,i));if(o&&a>Sl)return null;let c=await fi(Ut(t),n);if(!c||c.hasAlpha)return null;let l=Math.min(1,e.maxEdge/Math.max(c.width,c.height)),u=Math.max(1,Math.round(c.width*l)),d=Math.max(1,Math.round(c.height*l)),f=await kl(c.imageData,u,d,e.quality);return f?{bytes:f,w:u,h:d}:null};var Ms=t=>{try{t.setTitle("");}catch{}try{t.setAuthor("");}catch{}try{t.setSubject("");}catch{}try{t.setKeywords([]);}catch{}try{t.setProducer("");}catch{}try{t.setCreator("");}catch{}try{t.catalog.delete(PDFName.of("Metadata"));}catch{}},ks=t=>{let e=t.context,n=0;for(let[r,i]of e.enumerateIndirectObjects()){if(!(i instanceof PDFRawStream))continue;let s=i.dict;if(!(s.get(PDFName.of("Filter"))||i.contents.length<256||s.entries().some(([a])=>a.asString()!=="/Length")))try{e.assign(r,e.flateStream(i.contents)),n+=1;}catch{}}return n};var Ge={low:{id:"low",label:"Low",hint:"Lightest touch \u2014 near-original quality",maxEdge:2400,quality:.92,downsampleImages:true,dedupeImages:false},recommended:{id:"recommended",label:"Recommended",hint:"Best balance of size and quality",maxEdge:1600,quality:.8,downsampleImages:true,dedupeImages:true},high:{id:"high",label:"High",hint:"Smaller files, slight quality loss",maxEdge:1200,quality:.65,downsampleImages:true,dedupeImages:true},extreme:{id:"extreme",label:"Extreme",hint:"Smallest possible \u2014 visible softening on photos",maxEdge:900,quality:.45,downsampleImages:true,dedupeImages:true}},Rs="recommended";var Es=t=>typeof t=="string"&&t in Ge?Ge[t]:typeof t=="number"?t>=85?Ge.low:t>=60?Ge.recommended:t>=35?Ge.high:Ge.extreme:Ge[Rs];var Tl=t=>t instanceof Uint8Array?t:new Uint8Array(t),Os=async(t,e={})=>{let n=Es(e.level),r=Tl(t),i=r.length,s=await PDFDocument.load(r,{ignoreEncryption:true,updateMetadata:false});Ms(s);let o=await Cs(s,n,e.onProgress),a=ks(s),c=await s.save({useObjectStreams:true}),l=c.length<i?c:r;return {bytes:l,originalSize:i,compressedSize:l.length,reencodedImages:o.reencoded,recompressedStreams:a}};var cr=class{constructor(){this.name="pdf-compressor";this.supportedTypes=["pdf"];}async process(e,n){let r=Date.now();try{let i=n.level,s=await e.blob.arrayBuffer(),o=await Os(s,{level:i}),a=new Blob([o.bytes.slice().buffer],{type:"application/pdf"}),c={taskId:crypto.randomUUID(),processorName:this.name,timestamp:Date.now(),params:n};return {success:!0,document:{...e,blob:a,size:a.size,history:[...e.history,c]},metrics:{duration:Date.now()-r,originalSize:e.size,newSize:a.size}}}catch(i){return console.error("PDF compression error:",i),{success:false,document:e,error:i instanceof Error?i.message:"Unknown error"}}}};export{jt as AvniOrchestrator,cr as PDFCompressor,ar as PDFEditProcessor,Bt as PDFEditSession,_e as PDFParser,rn as PageRenderer,un as WATERMARK_TEXT,Zn as assertFeature,Ts as avniEngine,Cc as configureLicense,Zi as drawWatermarkOnCanvas,kc as getLicenseState,ss as isFeatureEnabled,Lr as loadPageContentStream,Ec as onLicenseChange,Ke as parseContentStream,sl as parseFormFields,bs as parseLinkAnnotations,Rc as shouldWatermark,Qi as stampWatermarkOnPdf};