| 288 | `),e}}class Qe{static open(e,a,t,r){let i;if("string"==typeof a){if(He.isStandardFont(a))return new He(e,a,r);a=Y.readFileSync(a)}if(n.isBuffer(a)?i=L.create(a,t):a instanceof Uint8Array?i=L.create(new n(a),t):a instanceof ArrayBuffer&&(i=L.create(new n(new Uint8Array(a)),t)),null==i)throw new Error("Not a supported font format or standard PDF font.");return new Ze(e,i,r)}}class $e extends D.EventEmitter{constructor(e,a){super(),this.document=e,this.indent=a.indent||0,this.characterSpacing=a.characterSpacing||0,this.wordSpacing=0===a.wordSpacing,this.columns=a.columns||1,this.columnGap=null==a.columnGap?18:a.columnGap,this.lineWidth=(a.width-this.columnGap*(this.columns-1))/this.columns,this.spaceLeft=this.lineWidth,this.startX=this.document.x,this.startY=this.document.y,this.column=1,this.ellipsis=a.ellipsis,this.continuedX=0,this.features=a.features,null==a.height?this.maxY=this.document.page.maxY():(this.height=a.height,this.maxY=this.startY+a.height),this.on("firstLine",e=>{const a=this.continuedX||this.indent;return this.document.x+=a,this.lineWidth-=a,this.once("line",()=>{if(this.document.x-=a,this.lineWidth+=a,e.continued&&!this.continuedX&&(this.continuedX=this.indent),!e.continued)return this.continuedX=0})}),this.on("lastLine",e=>{const{align:a}=e;return"justify"===a&&(e.align="left"),this.lastLine=!0,this.once("line",()=>(this.document.y+=e.paragraphGap||0,e.align=a,this.lastLine=!1))})}wordWidth(e){return this.document.widthOfString(e,this)+this.characterSpacing+this.wordSpacing}eachWord(e,a){let t;const r=new M(e);let n=null;for(const s=Object.create(null);t=r.nextBreak();){var i;let r=e.slice((null==n?void 0:n.position)||0,t.position),l=null==s[r]?s[r]=this.wordWidth(r):s[r];if(l>this.lineWidth+this.continuedX){let e=n;for(const n={};r.length;){var o,c;l>this.spaceLeft?(o=K(this.spaceLeft/(l/r.length)),l=this.wordWidth(r.slice(0,o)),c=l<=this.spaceLeft&&o<r.length):o=r.length;for(let e=l>this.spaceLeft&&0<o;e||c;)e?(l=this.wordWidth(r.slice(0,--o)),e=l>this.spaceLeft&&0<o):(l=this.wordWidth(r.slice(0,++o)),e=l>this.spaceLeft&&0<o,c=l<=this.spaceLeft&&o<r.length);if(0===o&&this.spaceLeft===this.lineWidth&&(o=1),n.required=t.required||o<r.length,i=a(r.slice(0,o),l,n,e),e={required:!1},r=r.slice(o),l=this.wordWidth(r),!1===i)break}}else i=a(r,l,t,n);if(!1===i)break;n=t}}wrap(e,a){null!=a.indent&&(this.indent=a.indent),null!=a.characterSpacing&&(this.characterSpacing=a.characterSpacing),null!=a.wordSpacing&&(this.wordSpacing=a.wordSpacing),null!=a.ellipsis&&(this.ellipsis=a.ellipsis);const t=this.document.y+this.document.currentLineHeight(!0);(this.document.y>this.maxY||t>this.maxY)&&this.nextSection();let r="",n=0,i=0,o=0,{y:c}=this.document;const s=()=>(a.textWidth=n+this.wordSpacing*(i-1),a.wordCount=i,a.lineWidth=this.lineWidth,({y:c}=this.document),this.emit("line",r,a,this),o++);return this.emit("sectionStart",a,this),this.eachWord(e,(e,t,o,c)=>{if((null==c||c.required)&&(this.emit("firstLine",a,this),this.spaceLeft=this.lineWidth),t<=this.spaceLeft&&(r+=e,n+=t,i++),o.required||t>this.spaceLeft){const c=this.document.currentLineHeight(!0);if(null!=this.height&&this.ellipsis&&this.document.y+2*c>this.maxY&&this.column>=this.columns){for(!0===this.ellipsis&&(this.ellipsis="\u2026"),r=r.replace(/\s+$/,""),n=this.wordWidth(r+this.ellipsis);r&&n>this.lineWidth;)r=r.slice(0,-1).replace(/\s+$/,""),n=this.wordWidth(r+this.ellipsis);n<=this.lineWidth&&(r+=this.ellipsis),n=this.wordWidth(r)}if(o.required&&(t>this.spaceLeft&&(s(),r=e,n=t,i=1),this.emit("lastLine",a,this)),s(),this.document.y+c>this.maxY){const e=this.nextSection();if(!e)return i=0,r="",!1}return o.required?(this.spaceLeft=this.lineWidth,r="",n=0,i=0):(this.spaceLeft=this.lineWidth-t,r=e,n=t,i=1)}return this.spaceLeft-=t}),0<i&&(this.emit("lastLine",a,this),s()),this.emit("sectionEnd",a,this),!0===a.continued?(1<o&&(this.continuedX=0),this.continuedX+=a.textWidth||0,this.document.y=c):this.document.x=this.startX}nextSection(e){if(this.emit("sectionEnd",e,this),++this.column>this.columns){if(null!=this.height)return!1;this.document.addPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&this.document.fillColor(...this.document._fillColor),this.emit("pageBreak",e,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",e,this);return this.emit("sectionStart",e,this),!0}}const{number:ea}=J;const aa=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],ta={1:"DeviceGray",3:"DeviceRGB",4:"DeviceCMYK"};class ra{constructor(e,a){let t;if(this.data=e,this.label=a,65496!==this.data.readUInt16BE(0))throw"SOI not found in JPEG";let r=2;for(;r<this.data.length&&(t=this.data.readUInt16BE(r),r+=2,!aa.includes(t));)r+=this.data.readUInt16BE(r);if(!aa.includes(t))throw"Invalid JPEG.";r+=2,this.bits=this.data[r++],this.height=this.data.readUInt16BE(r),r+=2,this.width=this.data.readUInt16BE(r),r+=2;const n=this.data[r++];this.colorSpace=ta[n],this.obj=null}embed(e){if(!this.obj)return this.obj=e.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.bits,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode"}),"DeviceCMYK"===this.colorSpace&&(this.obj.data.Decode=[1,0,1,0,1,0,1,0]),this.obj.end(this.data),this.data=null}}class na{constructor(e,a){this.label=a,this.image=new F(e),this.width=this.image.width,this.height=this.image.height,this.imgData=this.image.imgData,this.obj=null}embed(e){let a=!1;if(this.document=e,this.obj)return;const t=this.image.hasAlphaChannel,r=1===this.image.interlaceMethod;if(this.obj=this.document.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:t?8:this.image.bits,Width:this.width,Height:this.height,Filter:"FlateDecode"}),!t){const e=this.document.ref({Predictor:r?1:15,Colors:this.image.colors,BitsPerComponent:this.image.bits,Columns:this.width});this.obj.data.DecodeParms=e,e.end()}if(0===this.image.palette.length)this.obj.data.ColorSpace=this.image.colorSpace;else{const e=this.document.ref();e.end(new n(this.image.palette)),this.obj.data.ColorSpace=["Indexed","DeviceRGB",this.image.palette.length/3-1,e]}if(null!=this.image.transparency.grayscale){const e=this.image.transparency.grayscale;this.obj.data.Mask=[e,e]}else if(this.image.transparency.rgb){const{rgb:e}=this.image.transparency,a=[];for(let t of e)a.push(t,t);this.obj.data.Mask=a}else{if(this.image.transparency.indexed)return a=!0,this.loadIndexedAlphaChannel();if(t)return a=!0,this.splitAlphaChannel()}return r&&!a?this.decodeData():void this.finalize()}finalize(){if(this.alphaChannel){const e=this.document.ref({Type:"XObject",Subtype:"Image",Height:this.height,Width:this.width,BitsPerComponent:8,Filter:"FlateDecode",ColorSpace:"DeviceGray",Decode:[0,1]});e.end(this.alphaChannel),this.obj.data.SMask=e}return this.obj.end(this.imgData),this.image=null,this.imgData=null}splitAlphaChannel(){return this.image.decodePixels(e=>{let t,r;const o=this.image.colors,c=this.width*this.height,s=new n(c*o),l=new n(c);let u=r=t=0;const d=e.length,X=16===this.image.bits?1:0;for(;u<d;){for(let a=0;a<o;a++)s[r++]=e[u++],u+=X;l[t++]=e[u++],u+=X}return this.imgData=I.deflateSync(s),this.alphaChannel=I.deflateSync(l),this.finalize()})}loadIndexedAlphaChannel(){const e=this.image.transparency.indexed;return this.image.decodePixels(a=>{const t=new n(this.width*this.height);let r=0;for(let n=0,i=a.length;n<i;n++)t[r++]=e[a[n]];return this.alphaChannel=I.deflateSync(t),this.finalize()})}decodeData(){this.image.decodePixels(e=>{this.imgData=I.deflateSync(e),this.finalize()})}}class ia{static open(e,a){let t;if(n.isBuffer(e))t=e;else if(e instanceof ArrayBuffer)t=new n(new Uint8Array(e));else{let a;if(a=/^data:.+;base64,(.*)$/.exec(e))t=new n(a[1],"base64");else if(t=Y.readFileSync(e),!t)return}if(255===t[0]&&216===t[1])return new ra(t,a);if(137===t[0]&&"PNG"===t.toString("ascii",1,4))return new na(t,a);throw new Error("Unknown image format.")}}class oa{constructor(e,a,t,r,n={expanded:!1}){this.document=e,this.options=n,this.outlineData={},null!==r&&(this.outlineData.Dest=[r.dictionary,"Fit"]),null!==a&&(this.outlineData.Parent=a),null!==t&&(this.outlineData.Title=new String(t)),this.dictionary=this.document.ref(this.outlineData),this.children=[]}addItem(e,a={expanded:!1}){const t=new oa(this.document,this.dictionary,e,this.document.page,a);return this.children.push(t),t}endOutline(){if(0<this.children.length){this.options.expanded&&(this.outlineData.Count=this.children.length);const e=this.children[0],a=this.children[this.children.length-1];this.outlineData.First=e.dictionary,this.outlineData.Last=a.dictionary;for(let e=0,a=this.children.length;e<a;e++){const a=this.children[e];0<e&&(a.outlineData.Prev=this.children[e-1].dictionary),e<this.children.length-1&&(a.outlineData.Next=this.children[e+1].dictionary),a.endOutline()}}return this.dictionary.end()}}const ca={readOnly:1,required:2,noExport:4,multiline:4096,password:8192,toggleToOffButton:16384,radioButton:32768,pushButton:65536,combo:131072,edit:262144,sort:524288,multiSelect:2097152,noSpell:4194304},sa={left:0,center:1,right:2},la={value:"V",defaultValue:"DV"},ua={zip:"0",zipPlus4:"1",zip4:"1",phone:"2",ssn:"3"},da={number:{nDec:0,sepComma:!1,negStyle:"MinusBlack",currency:"",currencyPrepend:!0},percent:{nDec:0,sepComma:!1}};class Xa extends R.Readable{constructor(e={}){switch(super(e),this.options=e,e.pdfVersion){case"1.4":this.version=1.4;break;case"1.5":this.version=1.5;break;case"1.6":this.version=1.6;break;case"1.7":case"1.7ext3":this.version=1.7;break;default:this.version=1.3;}this.compress=null==this.options.compress||this.options.compress,this._pageBuffer=[],this._pageBufferStart=0,this._offsets=[],this._waiting=0,this._ended=!1,this._offset=0;const a=this.ref({Type:"Pages",Count:0,Kids:[]}),t=this.ref({Dests:new j});if(this._root=this.ref({Type:"Catalog",Pages:a,Names:t}),this.page=null,this.initColor(),this.initVector(),this.initFonts(e.font),this.initText(),this.initImages(),this.initOutline(),this.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},this.options.info)for(let e in this.options.info){const a=this.options.info[e];this.info[e]=a}this._id=fe.generateFileID(this.info),this._security=fe.create(this,e),this._write(`%PDF-${this.version}`),this._write("%\xFF\xFF\xFF\xFF"),!1!==this.options.autoFirstPage&&this.addPage()}addPage(e){null==e&&({options:e}=this),this.options.bufferPages||this.flushPages(),this.page=new ee(this,e),this._pageBuffer.push(this.page);const a=this._root.data.Pages.data;return a.Kids.push(this.page.dictionary),a.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this.emit("pageAdded"),this}bufferedPageRange(){return{start:this._pageBufferStart,count:this._pageBuffer.length}}switchToPage(e){let a;if(!(a=this._pageBuffer[e-this._pageBufferStart]))throw new Error(`switchToPage(${e}) out of bounds, current buffer covers pages ${this._pageBufferStart} to ${this._pageBufferStart+this._pageBuffer.length-1}`);return this.page=a}flushPages(){const e=this._pageBuffer;this._pageBuffer=[],this._pageBufferStart+=e.length;for(let a of e)a.end()}addNamedDestination(e,...a){0===a.length&&(a=["XYZ",null,null,null]),"XYZ"===a[0]&&null!==a[2]&&(a[2]=this.page.height-a[2]),a.unshift(this.page.dictionary),this._root.data.Names.data.Dests.add(e,a)}addNamedJavaScript(e,a){this._root.data.Names.data.JavaScript||(this._root.data.Names.data.JavaScript=new j);let t={JS:new String(a),S:"JavaScript"};this._root.data.Names.data.JavaScript.add(e,t)}ref(e){const a=new Z(this,this._offsets.length+1,e);return this._offsets.push(null),this._waiting++,a}_read(){}_write(e){return n.isBuffer(e)||(e=new n(e+"\n","binary")),this.push(e),this._offset+=e.length}addContent(e){return this.page.write(e),this}_refEnd(e){if(this._offsets[e.id-1]=e.offset,0==--this._waiting&&this._ended)return this._finalize(),this._ended=!1}write(e,a){const t=new Error(`\ |