@getflip/swirl-components 0.3.0 → 0.4.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/cjs/flip-action-list-item.cjs.entry.js +1 -1
- package/dist/cjs/flip-action-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-avatar-group.cjs.entry.js +11 -1
- package/dist/cjs/flip-avatar-group.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-avatar.cjs.entry.js +11 -1
- package/dist/cjs/flip-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-button-group.cjs.entry.js +9 -3
- package/dist/cjs/flip-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-button.cjs.entry.js +1 -1
- package/dist/cjs/flip-button.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/flip-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-date-picker_3.cjs.entry.js +20 -12
- package/dist/cjs/flip-date-picker_3.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-dialog.cjs.entry.js +1 -1
- package/dist/cjs/flip-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-file-uploader.cjs.entry.js +1 -1
- package/dist/cjs/flip-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-file-viewer-audio_6.cjs.entry.js +3 -3
- package/dist/cjs/flip-file-viewer-audio_6.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-file-viewer.cjs.entry.js +2 -1
- package/dist/cjs/flip-file-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-form-group.cjs.entry.js +1 -1
- package/dist/cjs/flip-form-group.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-icon-arrow-left_3.cjs.entry.js +50 -0
- package/dist/cjs/flip-icon-arrow-left_3.cjs.entry.js.map +1 -0
- package/dist/cjs/flip-lightbox.cjs.entry.js +205 -0
- package/dist/cjs/flip-lightbox.cjs.entry.js.map +1 -0
- package/dist/cjs/flip-modal.cjs.entry.js +14 -2
- package/dist/cjs/flip-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/flip-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-radio.cjs.entry.js +1 -1
- package/dist/cjs/flip-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-tabs.cjs.entry.js +3 -40
- package/dist/cjs/flip-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-text-input.cjs.entry.js +1 -1
- package/dist/cjs/flip-text-input.cjs.entry.js.map +1 -1
- package/dist/cjs/flip-toast.cjs.entry.js +1 -1
- package/dist/cjs/flip-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/swirl-components.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/flip-action-list-item/flip-action-list-item.css +4 -0
- package/dist/collection/components/flip-avatar/flip-avatar.js +11 -1
- package/dist/collection/components/flip-avatar/flip-avatar.js.map +1 -1
- package/dist/collection/components/flip-avatar-group/flip-avatar-group.js +11 -1
- package/dist/collection/components/flip-avatar-group/flip-avatar-group.js.map +1 -1
- package/dist/collection/components/flip-button/flip-button.css +10 -2
- package/dist/collection/components/flip-button-group/flip-button-group.css +57 -0
- package/dist/collection/components/flip-button-group/flip-button-group.js +27 -5
- package/dist/collection/components/flip-button-group/flip-button-group.js.map +1 -1
- package/dist/collection/components/flip-button-group/flip-button-group.stories.js +8 -2
- package/dist/collection/components/flip-button-group/flip-button-group.stories.js.map +1 -1
- package/dist/collection/components/flip-checkbox/flip-checkbox.css +1 -1
- package/dist/collection/components/flip-date-picker/flip-date-picker.css +0 -1
- package/dist/collection/components/flip-dialog/flip-dialog.css +1 -1
- package/dist/collection/components/flip-file-uploader/flip-file-uploader.css +3 -1
- package/dist/collection/components/flip-file-viewer/flip-file-viewer.js +20 -1
- package/dist/collection/components/flip-file-viewer/flip-file-viewer.js.map +1 -1
- package/dist/collection/components/flip-file-viewer/viewers/flip-file-viewer-csv/flip-file-viewer-csv.css +2 -0
- package/dist/collection/components/flip-file-viewer/viewers/flip-file-viewer-text/flip-file-viewer-text.css +2 -0
- package/dist/collection/components/flip-file-viewer/viewers/flip-file-viewer-video/flip-file-viewer-video.css +2 -2
- package/dist/collection/components/flip-form-group/flip-form-group.css +6 -2
- package/dist/collection/components/flip-lightbox/flip-lightbox.css +208 -0
- package/dist/collection/components/flip-lightbox/flip-lightbox.js +375 -0
- package/dist/collection/components/flip-lightbox/flip-lightbox.js.map +1 -0
- package/dist/collection/components/flip-lightbox/flip-lightbox.stories.js +44 -0
- package/dist/collection/components/flip-lightbox/flip-lightbox.stories.js.map +1 -0
- package/dist/collection/components/flip-modal/flip-modal.css +14 -3
- package/dist/collection/components/flip-modal/flip-modal.js +16 -2
- package/dist/collection/components/flip-modal/flip-modal.js.map +1 -1
- package/dist/collection/components/flip-popover/flip-popover.css +1 -1
- package/dist/collection/components/flip-popover/flip-popover.js +18 -10
- package/dist/collection/components/flip-popover/flip-popover.js.map +1 -1
- package/dist/collection/components/flip-radio/flip-radio.css +1 -1
- package/dist/collection/components/flip-radio-group/flip-radio-group.css +1 -1
- package/dist/collection/components/flip-tabs/flip-tabs.css +25 -36
- package/dist/collection/components/flip-tabs/flip-tabs.js +12 -59
- package/dist/collection/components/flip-tabs/flip-tabs.js.map +1 -1
- package/dist/collection/components/flip-text-input/flip-text-input.css +2 -0
- package/dist/collection/components/flip-toast/flip-toast.css +1 -1
- package/dist/components/flip-action-list-item.js +1 -1
- package/dist/components/flip-action-list-item.js.map +1 -1
- package/dist/components/flip-avatar-group.js +11 -1
- package/dist/components/flip-avatar-group.js.map +1 -1
- package/dist/components/flip-avatar.js +11 -1
- package/dist/components/flip-avatar.js.map +1 -1
- package/dist/components/flip-button-group2.js +9 -3
- package/dist/components/flip-button-group2.js.map +1 -1
- package/dist/components/flip-button2.js +1 -1
- package/dist/components/flip-button2.js.map +1 -1
- package/dist/components/flip-checkbox.js +1 -1
- package/dist/components/flip-checkbox.js.map +1 -1
- package/dist/components/flip-date-picker2.js +1 -1
- package/dist/components/flip-date-picker2.js.map +1 -1
- package/dist/components/flip-dialog.js +1 -1
- package/dist/components/flip-dialog.js.map +1 -1
- package/dist/components/flip-file-uploader.js +1 -1
- package/dist/components/flip-file-uploader.js.map +1 -1
- package/dist/components/flip-file-viewer-csv2.js +1 -1
- package/dist/components/flip-file-viewer-csv2.js.map +1 -1
- package/dist/components/flip-file-viewer-text2.js +1 -1
- package/dist/components/flip-file-viewer-text2.js.map +1 -1
- package/dist/components/flip-file-viewer-video2.js +1 -1
- package/dist/components/flip-file-viewer-video2.js.map +1 -1
- package/dist/components/flip-file-viewer.js +3 -1
- package/dist/components/flip-file-viewer.js.map +1 -1
- package/dist/components/flip-form-group.js +1 -1
- package/dist/components/flip-form-group.js.map +1 -1
- package/dist/components/flip-icon-arrow-left.js +1 -32
- package/dist/components/flip-icon-arrow-left.js.map +1 -1
- package/dist/{esm/flip-icon-arrow-left.entry.js → components/flip-icon-arrow-left2.js} +26 -8
- package/dist/components/flip-icon-arrow-left2.js.map +1 -0
- package/dist/components/flip-icon-arrow-right.js +1 -32
- package/dist/components/flip-icon-arrow-right.js.map +1 -1
- package/dist/{esm/flip-icon-arrow-right.entry.js → components/flip-icon-arrow-right2.js} +26 -8
- package/dist/components/flip-icon-arrow-right2.js.map +1 -0
- package/dist/components/flip-icon-download.js +1 -32
- package/dist/components/flip-icon-download.js.map +1 -1
- package/dist/{esm/flip-icon-download.entry.js → components/flip-icon-download2.js} +26 -8
- package/dist/components/flip-icon-download2.js.map +1 -0
- package/dist/components/flip-lightbox.d.ts +11 -0
- package/dist/components/flip-lightbox.js +255 -0
- package/dist/components/flip-lightbox.js.map +1 -0
- package/dist/components/flip-modal.js +16 -2
- package/dist/components/flip-modal.js.map +1 -1
- package/dist/components/flip-popover2.js +19 -11
- package/dist/components/flip-popover2.js.map +1 -1
- package/dist/components/flip-radio-group.js +1 -1
- package/dist/components/flip-radio-group.js.map +1 -1
- package/dist/components/flip-radio.js +1 -1
- package/dist/components/flip-radio.js.map +1 -1
- package/dist/components/flip-tabs.js +4 -42
- package/dist/components/flip-tabs.js.map +1 -1
- package/dist/components/flip-text-input.js +1 -1
- package/dist/components/flip-text-input.js.map +1 -1
- package/dist/components/flip-toast2.js +1 -1
- package/dist/components/flip-toast2.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/esm/flip-action-list-item.entry.js +1 -1
- package/dist/esm/flip-action-list-item.entry.js.map +1 -1
- package/dist/esm/flip-avatar-group.entry.js +11 -1
- package/dist/esm/flip-avatar-group.entry.js.map +1 -1
- package/dist/esm/flip-avatar.entry.js +11 -1
- package/dist/esm/flip-avatar.entry.js.map +1 -1
- package/dist/esm/flip-button-group.entry.js +9 -3
- package/dist/esm/flip-button-group.entry.js.map +1 -1
- package/dist/esm/flip-button.entry.js +1 -1
- package/dist/esm/flip-button.entry.js.map +1 -1
- package/dist/esm/flip-checkbox.entry.js +1 -1
- package/dist/esm/flip-checkbox.entry.js.map +1 -1
- package/dist/esm/flip-date-picker_3.entry.js +20 -12
- package/dist/esm/flip-date-picker_3.entry.js.map +1 -1
- package/dist/esm/flip-dialog.entry.js +1 -1
- package/dist/esm/flip-dialog.entry.js.map +1 -1
- package/dist/esm/flip-file-uploader.entry.js +1 -1
- package/dist/esm/flip-file-uploader.entry.js.map +1 -1
- package/dist/esm/flip-file-viewer-audio_6.entry.js +3 -3
- package/dist/esm/flip-file-viewer-audio_6.entry.js.map +1 -1
- package/dist/esm/flip-file-viewer.entry.js +2 -1
- package/dist/esm/flip-file-viewer.entry.js.map +1 -1
- package/dist/esm/flip-form-group.entry.js +1 -1
- package/dist/esm/flip-form-group.entry.js.map +1 -1
- package/dist/esm/flip-icon-arrow-left_3.entry.js +44 -0
- package/dist/esm/flip-icon-arrow-left_3.entry.js.map +1 -0
- package/dist/esm/flip-lightbox.entry.js +201 -0
- package/dist/esm/flip-lightbox.entry.js.map +1 -0
- package/dist/esm/flip-modal.entry.js +14 -2
- package/dist/esm/flip-modal.entry.js.map +1 -1
- package/dist/esm/flip-radio-group.entry.js +1 -1
- package/dist/esm/flip-radio-group.entry.js.map +1 -1
- package/dist/esm/flip-radio.entry.js +1 -1
- package/dist/esm/flip-radio.entry.js.map +1 -1
- package/dist/esm/flip-tabs.entry.js +3 -40
- package/dist/esm/flip-tabs.entry.js.map +1 -1
- package/dist/esm/flip-text-input.entry.js +1 -1
- package/dist/esm/flip-text-input.entry.js.map +1 -1
- package/dist/esm/flip-toast.entry.js +1 -1
- package/dist/esm/flip-toast.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/swirl-components.js +1 -1
- package/dist/swirl-components/p-013a1742.entry.js +2 -0
- package/dist/swirl-components/p-013a1742.entry.js.map +1 -0
- package/dist/swirl-components/{p-c8db8af8.entry.js → p-04eefcca.entry.js} +2 -2
- package/dist/swirl-components/p-04eefcca.entry.js.map +1 -0
- package/dist/swirl-components/p-1ff7b440.entry.js +2 -0
- package/dist/swirl-components/p-1ff7b440.entry.js.map +1 -0
- package/dist/swirl-components/p-3147334a.entry.js +2 -0
- package/dist/swirl-components/p-3147334a.entry.js.map +1 -0
- package/dist/swirl-components/p-5022e258.entry.js +2 -0
- package/dist/swirl-components/p-5022e258.entry.js.map +1 -0
- package/dist/swirl-components/p-6ddd889e.entry.js +2 -0
- package/dist/swirl-components/p-6ddd889e.entry.js.map +1 -0
- package/dist/swirl-components/p-6febfe15.entry.js +2 -0
- package/dist/swirl-components/p-6febfe15.entry.js.map +1 -0
- package/dist/swirl-components/p-8784a282.entry.js +2 -0
- package/dist/swirl-components/p-8784a282.entry.js.map +1 -0
- package/dist/swirl-components/p-8faa2889.entry.js +2 -0
- package/dist/swirl-components/p-8faa2889.entry.js.map +1 -0
- package/dist/swirl-components/p-95c9ef17.entry.js +2 -0
- package/dist/swirl-components/p-95c9ef17.entry.js.map +1 -0
- package/dist/swirl-components/p-a15a28d3.entry.js +2 -0
- package/dist/swirl-components/p-a15a28d3.entry.js.map +1 -0
- package/dist/swirl-components/p-a178d901.entry.js +2 -0
- package/dist/swirl-components/p-a178d901.entry.js.map +1 -0
- package/dist/swirl-components/p-ad92140f.entry.js +2 -0
- package/dist/swirl-components/p-ad92140f.entry.js.map +1 -0
- package/dist/swirl-components/p-b1532bdb.entry.js +2 -0
- package/dist/swirl-components/p-b1532bdb.entry.js.map +1 -0
- package/dist/swirl-components/{p-c4c5a7ca.entry.js → p-bb9a65d7.entry.js} +3 -3
- package/dist/swirl-components/p-bb9a65d7.entry.js.map +1 -0
- package/dist/swirl-components/{p-7c20748f.entry.js → p-d6bb9690.entry.js} +2 -2
- package/dist/swirl-components/{p-7c20748f.entry.js.map → p-d6bb9690.entry.js.map} +1 -1
- package/dist/swirl-components/p-d9dfcd01.entry.js +2 -0
- package/dist/swirl-components/p-d9dfcd01.entry.js.map +1 -0
- package/dist/swirl-components/{p-06a08b17.entry.js → p-e34707fb.entry.js} +2 -2
- package/dist/swirl-components/{p-06a08b17.entry.js.map → p-e34707fb.entry.js.map} +1 -1
- package/dist/swirl-components/{p-692cb3d7.entry.js → p-f6a8ea5d.entry.js} +2 -2
- package/dist/swirl-components/p-f6a8ea5d.entry.js.map +1 -0
- package/dist/swirl-components/p-f94fc675.entry.js +2 -0
- package/dist/swirl-components/p-f94fc675.entry.js.map +1 -0
- package/dist/swirl-components/swirl-components.css +1 -1
- package/dist/swirl-components/swirl-components.esm.js +1 -1
- package/dist/swirl-components/swirl-components.esm.js.map +1 -1
- package/dist/types/components/flip-avatar/flip-avatar.d.ts +3 -0
- package/dist/types/components/flip-avatar-group/flip-avatar-group.d.ts +3 -0
- package/dist/types/components/flip-button-group/flip-button-group.d.ts +4 -3
- package/dist/types/components/flip-button-group/flip-button-group.stories.d.ts +5 -0
- package/dist/types/components/flip-file-viewer/flip-file-viewer.d.ts +1 -0
- package/dist/types/components/flip-lightbox/flip-lightbox.d.ts +49 -0
- package/dist/types/components/flip-lightbox/flip-lightbox.stories.d.ts +16 -0
- package/dist/types/components/flip-modal/flip-modal.d.ts +2 -0
- package/dist/types/components/flip-popover/flip-popover.d.ts +2 -0
- package/dist/types/components/flip-tabs/flip-tabs.d.ts +0 -7
- package/dist/types/components.d.ts +43 -3
- package/package.json +1 -1
- package/vscode-data.json +37 -0
- package/dist/cjs/flip-icon-arrow-left.cjs.entry.js +0 -22
- package/dist/cjs/flip-icon-arrow-left.cjs.entry.js.map +0 -1
- package/dist/cjs/flip-icon-arrow-right.cjs.entry.js +0 -22
- package/dist/cjs/flip-icon-arrow-right.cjs.entry.js.map +0 -1
- package/dist/cjs/flip-icon-download.cjs.entry.js +0 -22
- package/dist/cjs/flip-icon-download.cjs.entry.js.map +0 -1
- package/dist/esm/flip-icon-arrow-left.entry.js.map +0 -1
- package/dist/esm/flip-icon-arrow-right.entry.js.map +0 -1
- package/dist/esm/flip-icon-download.entry.js.map +0 -1
- package/dist/swirl-components/p-273b12eb.entry.js +0 -2
- package/dist/swirl-components/p-273b12eb.entry.js.map +0 -1
- package/dist/swirl-components/p-4aafa158.entry.js +0 -2
- package/dist/swirl-components/p-4aafa158.entry.js.map +0 -1
- package/dist/swirl-components/p-529bace4.entry.js +0 -2
- package/dist/swirl-components/p-529bace4.entry.js.map +0 -1
- package/dist/swirl-components/p-692cb3d7.entry.js.map +0 -1
- package/dist/swirl-components/p-91ccf392.entry.js +0 -2
- package/dist/swirl-components/p-91ccf392.entry.js.map +0 -1
- package/dist/swirl-components/p-91cd33f9.entry.js +0 -2
- package/dist/swirl-components/p-91cd33f9.entry.js.map +0 -1
- package/dist/swirl-components/p-9ffa5f69.entry.js +0 -2
- package/dist/swirl-components/p-9ffa5f69.entry.js.map +0 -1
- package/dist/swirl-components/p-b65aec9d.entry.js +0 -2
- package/dist/swirl-components/p-b65aec9d.entry.js.map +0 -1
- package/dist/swirl-components/p-bada1dda.entry.js +0 -2
- package/dist/swirl-components/p-bada1dda.entry.js.map +0 -1
- package/dist/swirl-components/p-bc94ecde.entry.js +0 -2
- package/dist/swirl-components/p-bc94ecde.entry.js.map +0 -1
- package/dist/swirl-components/p-c4c5a7ca.entry.js.map +0 -1
- package/dist/swirl-components/p-c8db8af8.entry.js.map +0 -1
- package/dist/swirl-components/p-c9f5b33a.entry.js +0 -2
- package/dist/swirl-components/p-c9f5b33a.entry.js.map +0 -1
- package/dist/swirl-components/p-d9b3b617.entry.js +0 -2
- package/dist/swirl-components/p-d9b3b617.entry.js.map +0 -1
- package/dist/swirl-components/p-df639805.entry.js +0 -2
- package/dist/swirl-components/p-df639805.entry.js.map +0 -1
- package/dist/swirl-components/p-dfd81ceb.entry.js +0 -2
- package/dist/swirl-components/p-dfd81ceb.entry.js.map +0 -1
- package/dist/swirl-components/p-e1debe08.entry.js +0 -2
- package/dist/swirl-components/p-e1debe08.entry.js.map +0 -1
- package/dist/swirl-components/p-f9c75666.entry.js +0 -2
- package/dist/swirl-components/p-f9c75666.entry.js.map +0 -1
- package/dist/swirl-components/p-fefffb34.entry.js +0 -2
- package/dist/swirl-components/p-fefffb34.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/flip-file-viewer/viewers/flip-file-viewer-audio/flip-file-viewer-audio.css?tag=flip-file-viewer-audio&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-audio/flip-file-viewer-audio.tsx","../../node_modules/papaparse/papaparse.min.js","src/components/flip-file-viewer/viewers/flip-file-viewer-csv/flip-file-viewer-csv.css?tag=flip-file-viewer-csv&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-csv/flip-file-viewer-csv.tsx","src/components/flip-file-viewer/viewers/flip-file-viewer-image/flip-file-viewer-image.css?tag=flip-file-viewer-image&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-image/flip-file-viewer-image.tsx","../../node_modules/dommatrix/dist/dommatrix.js","../../node_modules/web-streams-polyfill/dist/ponyfill.js","../../node_modules/pdfjs-dist/legacy/build/pdf.js","src/components/flip-file-viewer/viewers/flip-file-viewer-pdf/flip-file-viewer-pdf.css?tag=flip-file-viewer-pdf&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-pdf/flip-file-viewer-pdf.tsx","src/components/flip-file-viewer/viewers/flip-file-viewer-text/flip-file-viewer-text.css?tag=flip-file-viewer-text&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-text/flip-file-viewer-text.tsx","src/components/flip-file-viewer/viewers/flip-file-viewer-video/flip-file-viewer-video.css?tag=flip-file-viewer-video&encapsulation=shadow","src/components/flip-file-viewer/viewers/flip-file-viewer-video/flip-file-viewer-video.tsx"],"names":["flipFileViewerAudioCss","FlipFileViewerAudio","[object Object]","h","Host","class","controls","src","this","file","type","e","t","module","exports","s","f","self","window","n","document","postMessage","o","test","location","protocol","a","b","parse","i","dynamicTyping","M","dynamicTypingFunction","transform","worker","WORKERS_SUPPORTED","r","URL","webkitURL","toString","BLOB_URL","createObjectURL","Blob","Worker","onmessage","_","id","userStep","step","userChunk","chunk","userComplete","complete","userError","error","input","config","workerId","download","l","p","readable","read","on","g","File","Object","c","stream","unparse","m","y","delimiter","BAD_DELIMITERS","filter","indexOf","length","quotes","Array","isArray","skipEmptyLines","newline","quoteChar","header","columns","Error","escapeChar","escapeFormulae","RegExp","j","JSON","u","keys","data","fields","meta","v","join","trim","d","push","constructor","Date","stringify","slice","replace","charAt","RECORD_SEP","String","fromCharCode","UNIT_SEP","BYTE_ORDER_MARK","NODE_STREAM_INPUT","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","E","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","fn","each","prop","toUpperCase","attr","toLowerCase","FileReader","files","inputElem","instanceConfig","extend","before","action","reason","name","splice","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","w","chunkSize","parseInt","streamer","_config","call","parseChunk","beforeFirstChunk","paused","aborted","cursor","substring","preview","results","WORKER_ID","finished","concat","_sendError","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","open","downloadRequestBody","downloadRequestHeaders","setRequestHeader","send","message","status","readyState","responseText","getResponseHeader","lastIndexOf","statusText","webkitSlice","mozSlice","FileReaderSync","Math","min","size","readAsText","encoding","target","result","pause","prototype","apply","arguments","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","shift","_streamCleanUp","removeListener","pow","abort","k","transformHeader","forEach","map","parseFloat","code","row","split","comments","abs","successful","bestDelimiter","delimitersToGuess","getCharIndex","setTimeout","S","O","x","I","T","D","A","fastMode","L","F","z","C","R","index","substr","linebreak","truncated","terminate","create","flipFileViewerCsvCss","FlipFileViewerCsv","hostRef","errorMessage","updateTable","loading","response","fetch","parsed","text","_a","tabIndex","key","cell","flipFileViewerImageCss","FlipFileViewerImage","description","onError","onLoad","alt","global","factory","fromArray","array","CSSMatrix","from","every","Number","isNaN","TypeError","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","M11","M12","M21","M22","M41","M42","fromMatrix","fromString","source","str","invalidStringError","tf","ref","value","components","includes","PI","xyz","xyza","undefined","values","multiply","translate","rotateAxisAngle","rotate","some","scale","nosy","sy","skew","axis","idx","def","axeValues","toArray","is2D","Translate","Rotate","rx","ry","rz","degToRad","radX","radY","radZ","cosx","cos","sinx","sin","cosy","siny","cosz","sinz","RotateAxisAngle","alpha","sqrt","X","Y","Z","angle","sinA","cosA","sinA2","x2","y2","z2","Scale","Skew","angleX","angleY","tX","tan","tY","SkewX","SkewY","Multiply","m1","m2","args","len","ARGS","setMatrixValue","prototypeAccessors","isIdentity","configurable","get","Float64Array","Float32Array","DOMMatrix","toFloat32Array","toFloat64Array","toJSON","assign","RX","RY","RZ","skewX","skewY","transformPoint","DOMPoint","defineProperties","version","Version","SymbolPolyfill","Symbol","iterator","noop","getGlobals","globals","typeIsObject","rethrowAssertionErrorRejection","originalPromise","Promise","originalPromiseThen","then","originalPromiseResolve","resolve","bind","originalPromiseReject","reject","newPromise","executor","promiseResolvedWith","promiseRejectedWith","PerformPromiseThen","promise","onFulfilled","onRejected","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","queueMicrotask","globalQueueMicrotask","resolvedPromise","reflectCall","V","Function","promiseCall","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","defineProperty","enumerable","element","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","elements","callback","node","peek","front","ReadableStreamReaderGenericInitialize","reader","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","AbortSteps","ErrorSteps","CancelSteps","PullSteps","NumberIsFinite","isFinite","MathTrunc","trunc","ceil","floor","isDictionary","assertDictionary","obj","context","assertFunction","isObject","assertObject","assertRequiredArgument","position","assertRequiredField","field","convertUnrestrictedDouble","censorNegativeZero","integerPart","convertUnsignedLongLongWithEnforceRange","lowerBound","upperBound","MAX_SAFE_INTEGER","assertReadableStream","IsReadableStream","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_readRequests","ReadableStreamFulfillReadRequest","done","_closeSteps","_chunkSteps","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","resolvePromise","rejectPromise","_errorSteps","ReadableStreamDefaultReaderRead","releaseLock","closed","toStringTag","hasOwnProperty","_disturbed","_readableStreamController","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorImpl","preventCancel","_ongoingPromise","_isFinished","_preventCancel","next","_this","nextSteps","_nextSteps","return","returnSteps","_returnSteps","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorImpl","setPrototypeOf","AcquireReadableStreamAsyncIterator","impl","NumberIsNaN","CreateArrayFromList","CopyDataBlockBytes","dest","destOffset","srcOffset","Uint8Array","set","TransferArrayBuffer","ArrayBufferSlice","buffer","begin","end","ArrayBuffer","IsNonNegativeNumber","CloneAsUint8Array","byteOffset","byteLength","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","Infinity","RangeError","PeekQueueValue","ResetQueue","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","isView","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","ReadableByteStreamControllerGetBYOBRequest","ReadableByteStreamControllerGetDesiredSize","close","_closeRequested","state","_controlledReadableByteStream","ReadableByteStreamControllerClose","enqueue","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearPendingPullIntos","_cancelAlgorithm","ReadableByteStreamControllerClearAlgorithms","entry","ReadableByteStreamControllerHandleQueueDrain","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","bufferByteLength","bytesFilled","elementSize","viewConstructor","readerType","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","byobRequest","desiredSize","controller","shouldPull","ReadableByteStreamControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","queue","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableStreamClose","_byobRequest","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","readIntoRequest","DataView","BYTES_PER_ELEMENT","ctor","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","firstDescriptor","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","descriptor","_started","firstPendingPullInto","transferredBuffer","transferredView","ReadableStreamError","SetUpReadableStreamBYOBRequest","_strategyHWM","viewByteLength","SetUpReadableByteStreamController","startAlgorithm","pullAlgorithm","cancelAlgorithm","highWaterMark","startResult","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","start","pull","request","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ExtractHighWaterMark","strategy","defaultHWM","ExtractSizeAlgorithm","convertQueuingStrategy","init","convertQueuingStrategySize","convertUnderlyingSink","original","write","convertUnderlyingSinkAbortCallback","convertUnderlyingSinkCloseCallback","convertUnderlyingSinkStartCallback","convertUnderlyingSinkWriteCallback","assertWritableStream","IsWritableStream","isAbortSignal","supportsAbortController","AbortController","createAbortController","WritableStream","rawUnderlyingSink","rawStrategy","underlyingSink","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","streamBrandCheckException$2","IsWritableStreamLocked","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","locked","WritableStreamDefaultWriter","CreateWritableStream","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_abortReason","_abortController","_promise","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","closeSentinel","IsWritableStreamDefaultController","defaultControllerBrandCheckException$2","signal","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","abortReason","_strategySizeAlgorithm","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","_readyPromise_resolve","_readyPromise_reject","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","captureStackTrace","writable","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","shuttingDown","currentWrite","actions","shutdownWithAction","all","addEventListener","pipeLoop","resolveLoop","rejectLoop","pipeStep","resolveRead","rejectRead","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException$1","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","ReadableByteStreamTee","ReadableStreamDefaultTee","reading","readAgain","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","chunk1","chunk2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","readAgainForBranch1","readAgainForBranch2","forwardReaderError","thisReader","pullWithDefaultReader","cloneE","pull1Algorithm","pull2Algorithm","pullWithBYOBReader","forBranch2","byobBranch","otherBranch","byobCanceled","otherCanceled","clonedChunk","CreateReadableByteStream","convertUnderlyingDefaultOrByteSource","convertUnderlyingSourceCancelCallback","convertUnderlyingSourcePullCallback","convertUnderlyingSourceStartCallback","convertReadableStreamType","convertReaderOptions","options","mode","convertReadableStreamReaderMode","convertIteratorOptions","Boolean","convertPipeOptions","assertAbortSignal","convertReadableWritablePair","ReadableStream","rawUnderlyingSource","InitializeReadableStream","streamBrandCheckException$1","getReader","rawOptions","pipeThrough","rawTransform","pipeTo","destination","tee","branches","sourceCancelPromise","convertQueuingStrategyInit","byteLengthSizeFunction","ByteLengthQueuingStrategy","_byteLengthQueuingStrategyHighWaterMark","IsByteLengthQueuingStrategy","byteLengthBrandCheckException","countSizeFunction","CountQueuingStrategy","_countQueuingStrategyHighWaterMark","IsCountQueuingStrategy","countBrandCheckException","convertTransformer","flush","readableType","writableType","convertTransformerFlushCallback","convertTransformerStartCallback","convertTransformerTransformCallback","TransformStream","rawTransformer","rawWritableStrategy","rawReadableStrategy","writableStrategy","readableStrategy","transformer","readableHighWaterMark","readableSizeAlgorithm","writableHighWaterMark","writableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","webpackUniversalModuleDefinition","root","globalThis","__webpack_modules__","__unused_webpack_module","__w_pdfjs_require__","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","UNSUPPORTED_FEATURES","TextRenderingMode","StreamType","RenderingIntentFlag","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMode","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","arrayByteLength","arraysToBytes","assert","bytesToString","createPromiseCapability","createValidAbsoluteUrl","escapeString","getModificationDate","getVerbosityLevel","info","isArrayBuffer","isArrayEqual","isAscii","objectFromMap","objectSize","setVerbosityLevel","shadow","string32","stringToBytes","stringToPDFString","stringToUTF16BEString","stringToUTF8String","unreachable","utf8StringToString","warn","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","INK","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","U","Fo","Bl","PO","PC","PV","K","WC","WS","DS","WP","DP","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","level","isInteger","msg","console","log","cond","_isValidProtocol","url","baseUrl","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","ex","absoluteUrl","BaseExceptionClosure","super","details","bytes","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","subarray","charCodeAt","arr","resultLength","pos","item","itemLength","isLittleEndian","buffer8","view32","Uint32Array","isEvalSupported","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","padStart","minMax","temp","xt","yt","p1","applyTransform","p2","p3","p4","max","transpose","first","second","sx","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x3","y3","tvalues","bounds","t1","t2","b2ac","sqrtb2ac","mt","jlen","PDFStringTranslateTable","decoder","TextDecoder","fatal","decode","ii","buf","char","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","__unused_webpack_exports","_is_node","_pdfjsCompatibilityChecked","checkNodeBtoa","btoa","isNodeJS","chars","Buffer","checkNodeAtob","atob","checkDOMMatrix","require$$0","checkReadableStream","require$$1","checkArrayAt","at","checkTypedArrayAt","checkStructuredClone","structuredClone","process","versions","nw","electron","entryUnbind","$","toObject","lengthOfArrayLike","toIntegerOrInfinity","addToUnscopables","proto","relativeIndex","getOwnPropertyDescriptor","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","dontCallGetSet","forced","sham","check","it","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","fails","exec","NATIVE_BIND","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","$Object","FunctionPrototype","stringSlice","$TypeError","toPrimitive","isSymbol","argument","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","pref","exoticToPrim","isCallable","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","aFunction","namespace","method","NATIVE_SYMBOL","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","v8","aCallable","func","tryToString","$String","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","IS_PURE","store","copyright","license","SHARED","postfix","random","createElement","EXISTS","definePropertyModule","object","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","makeBuiltIn","simple","unsafe","nonConfigurable","nonWritable","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","getDescriptor","PROPER","something","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","names","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","integer","number","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","UNSCOPABLES","ArrayPrototype","definePropertiesModule","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","contentWindow","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","props","CONSTRUCTOR","METHOD","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","NATIVE_ARRAY_BUFFER","getPrototypeOf","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","Prototype","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","klass","getTypedArrayConstructor","isTypedArray","aTypedArrayConstructor","KEY","property","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","CORRECT_PROTOTYPE_GETTER","aPossiblePrototype","CORRECT_SETTER","__proto__","path","Iterators","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TAG","collection","collectionStrong","Map","InternalMetadataModule","iterate","anInstance","checkCorrectnessOfIteration","inheritIfRequired","CONSTRUCTOR_NAME","wrapper","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","add","REPLACE","getConstructor","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","iterable","BUGGY_ZERO","$instance","dummy","that","AS_ENTRIES","clear","setStrong","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","$getOwnPropertyNames","arraySlice","windowNames","getWindowNames","createProperty","$Array","fin","propertyKey","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","preventExtensions","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","usingIterator","iteratorMethod","innerResult","innerError","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","Wrapper","NewTarget","NewTargetPrototype","defineBuiltIns","setSpecies","internalStateGetterFor","last","define","getEntry","previous","removed","delete","prev","callbackfn","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","SPECIES","Set","getBuiltin","isConstructor","validateArgumentsLength","getRegExpFlags","ERROR_STACK_INSTALLABLE","V8","IS_BROWSER","IS_DENO","IS_NODE","EvalError","ReferenceError","SyntaxError","URIError","PerformanceMark","WebAssembly","CompileError","LinkError","RuntimeError","MapPrototype","mapHas","mapGet","mapSet","setAdd","booleanValueOf","numberValueOf","stringValueOf","getTime","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","structuredCloneImplementation","set1","set2","checkErrorsCloning","$Error","stack","checkNewErrorsCloningSemantic","AggregateError","cause","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","detail","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","structuredCloneInternal","deep","cloned","dataTransfer","DOMQuad","DataTransfer","items","ImageData","width","height","colorSpace","setUint8","getUint8","fromPoint","fromRect","clone","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","getContext","transferFromImageBitmap","transferToImageBitmap","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","passed","required","regExpFlags","RegExpPrototype","flags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","build","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","getDocument","setPDFNetworkStreamFactory","_util","_annotation_storage","_display_utils","_font_loader","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_xfa_text","_classPrivateMethodInitSpec","privateSet","_checkPrivateRedeclaration","_classPrivateMethodGet","receiver","_classPrivateFieldInitSpec","privateMap","privateCollection","_classPrivateFieldSet","_classExtractFieldDescriptor","_classApplyDescriptorSet","_classPrivateFieldGet","_classApplyDescriptorGet","_classStaticPrivateFieldSpecSet","classConstructor","_classCheckPrivateStaticAccess","_classCheckPrivateStaticFieldDescriptor","_classStaticPrivateFieldSpecGet","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DOMCanvasFactory","DOMCMapReaderFactory","DOMStandardFontDataFactory","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","createPDFNetworkStream","pdfNetworkStreamFactory","task","range","params","rangeTransport","href","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","rangeChunkSize","docBaseUrl","isDataScheme","maxImageSize","cMapUrl","standardFontDataUrl","useWorkerFetch","disableFontFace","useSystemFonts","ownerDocument","disableRange","disableStream","disableAutoFetch","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","_ref","messageHandler","MessageHandler","transport","WorkerTransport","_transport","catch","_capability","async","pdfDataRangeTransport","sendWithPromise","apiVersion","password","_PDFDocumentLoadingTa","_PDFDocumentLoadingTa2","_docId","onPassword","onProgress","onUnsupportedFeature","_this$_transport","destroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","loaded","total","pdfInfo","_pdfInfo","deprecated","fingerprints","stats","streamTypes","fontTypes","annotationStorage","numPages","isPureXfa","_htmlForXfa","allXfaHtml","pageNumber","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","downloadInfoCapability","keepLoadedFonts","startCleanup","loadingTask","loadingParams","saveDocument","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_bitmaps","cleanupAfterRender","pendingCleanup","_intentStates","_annotationPromises","userUnit","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","intent","intentArgs","getRenderingIntent","cacheKey","getAnnotations","renderingIntent","annotations","annotation","titleObj","contentsObj","_jsActionsPromise","getPageJSActions","_this$_transport$_htm","children","_ref2","_arguments$","_arguments$2","_intentState","canvasContext","viewport","annotationMode","imageLayer","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","renderInteractiveForms","includeAnnotationStorage","time","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","_ref3","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","_intentState2","disableCombineTextItems","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","textContent","getXfa","xfa","XfaText","readableStream","streamTextContent","pump","_ref4","styles","_structTreePromise","getStructTree","waitOn","force","completed","resetStats","operatorListChunk","_ref5","annotationStorageMap","streamReader","_ref6","_renderPageChunk","_ref7","RenderingCancelledException","curCacheKey","curIntentState","cleanup","_listeners","_deferred","transfers","event","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","require","_document","_document$currentScri","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","_workerPorts","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","_mainThreadWorkerMessageHandler","workerSrc","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","_globalThis$pdfjsWork","pdfjsWorker","loader","mainWorkerMessageHandler","loadScript","getWorkerSrc","_docStats","_pageCache","_pagePromises","_metadataPromise","fontLoader","FontLoader","_onUnsupportedFeature","styleElement","_params","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","annotationMap","PrintAnnotationStorage","serializable","getHash","page","_destroy","resetModified","terminated","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","evt","onPull","_ref8","onCancel","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","_loadingTask$onProgre","_loadingTask$onProgre2","contentLength","rangeReader","getRangeReader","_ref9","_ref10","_numPages","htmlForXfa","exception","updatePassword","_loadingTask$onProgre3","_startRenderPage","_ref11","_globalThis$FontInspe","exportedData","exportedError","fontRegistry","FontInspector","enabled","fontAdded","FontFaceObject","finally","_ref12","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","_imageData$data","_loadingTask$onProgre4","freeze","_ref13","_this$loadingTask$onU","_this$loadingTask","featureId","cachedPromise","num","gen","_this$_fullReader$fil","_this$_fullReader","filename","OptionalContentConfig","_this$_fullReader$fil2","_this$_fullReader2","_this$_fullReader$con","_this$_fullReader3","Metadata","cleanupSuccessful","_objs","_ensureObj","WeakSet","objId","_ensureObj2","settled","_internalRenderTask","onContinue","form","_ref14","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_ref15","_globalThis$StepperMa","_canvasInUse","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","_editor","_murmurhash","_setModified","_storage","_modified","onSetModified","onResetModified","onAnnotationEditor","defaultValue","AnnotationEditor","modified","_setModified2","_type","print","serialized","serialize","hash","MurmurHash3_64","update","hexdigest","_serializable","parent","_tools","_defineProperty","_boundFocusin","_boundFocusout","_hasBeenSelected","_isEditing","_isInEditMode","_zIndex","parameters","focusin","focusout","div","viewportBaseDimensions","isAttachedToDOM","_defaultLineColor","_colorManager","getHexCode","zIndex","setSelected","relatedTarget","closest","preventDefault","isMultipleSelection","commitOrRemove","isEmpty","remove","commit","addToAnnotationStorage","getBoundingClientRect","startX","clientX","startY","clientY","setData","effectAllowed","tx","ty","screenToPageTranslation","left","top","parentWidth","parentHeight","setAttribute","className","setInForeground","getInitialTranslation","bindEvents","isMac","KeyboardManager","platform","button","ctrlKey","shiftKey","metaKey","toggleSelected","pageWidth","pageHeight","pageDimensions","shiftX","shiftY","_this$div","editor","getNextId","getRectInCurrentCoords","_this$div2","classList","_this$div3","propertiesToUpdate","contentDiv","isEditing","setActiveEditor","ColorManager","CommandManager","AnnotationEditorUIManager","opacityToHex","opacity","round","_id","IdManager","_this$id","_this$id2","_commands","_locked","_maxSize","_position","maxSize","cmd","undo","mustExec","NaN","overwriteIfSameType","keepUndo","_serialize","callbacks","allKeys","isMacKey","navigator","isWin","_serialize2","stopPropagation","altKey","ClipboardManager","_colors","colors","getColorValues","color","rgb","getRGB","matchMedia","matches","RGB","_colorsMapping","makeHexColor","_activeEditor","_allEditors","_allLayers","_clipboardManager","_commandManager","_currentPageIndex","_editorTypes","_eventBus","_idManager","_isEnabled","_mode","_selectedEditors","_boundKeydown","_boundOnEditingAction","_boundOnPageChanging","_previousStates","_container","_addKeyboardManager","_removeKeyboardManager","_dispatchUpdateStates","_dispatchUpdateUI","_enableAll","_disableAll","_addEditorToLayer","_isEmpty","_selectEditors","eventBus","keydown","onEditingAction","onPageChanging","hasEmptyClipboard","hasSomethingToUndo","hasSomethingToRedo","hasSelectedEditor","_on","_removeKeyboardManager2","_off","layer","focus","_this$getActive","getActive","shouldGetKeyboardEvents","_keyboardManager","_addKeyboardManager2","_dispatchUpdateStates2","_isEmpty2","types","editorType","_dispatchUpdateUI2","defaultPropertiesToUpdate","getId","disable","setEditingState","_disableAll2","_enableAll2","updateMode","dispatch","updateParams","updateDefaultParams","editors","unselect","hasSelection","select","ed","redo","_addEditorToLayer2","addCommands","copy","unselectAll","newEditors","paste","deserialize","_selectEditors2","hasChanged","addOrRebuild","addEditor","selectAll","cut","PixelsPerInch","PDFDateString","DOMSVGFactory","AnnotationPrefix","getCurrentTransform","getCurrentTransformInverse","getFilenameFromUrl","getPdfFilenameFromUrl","getXfaPageViewport","isPdfFile","isValidFetchUrl","_base_factory","SVG_NS","CSS","PDF","BaseCanvasFactory","fetchData","asTypedArray","baseURI","ok","arrayBuffer","responseType","onreadystatechange","DONE","BaseCMapReaderFactory","compressionType","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","createElementNS","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","applyInverseTransform","anchor","query","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","started","times","now","outBuf","longest","duration","padEnd","removeScriptElement","script","head","documentElement","append","pdfDateStringRegex","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","xfaPage","attributes","colorRGB","span","visibility","body","computedColor","getComputedStyle","ctx","getTransform","invertSelf","_createCanvas","canvasAndContext","_fetchData","skipDimensions","svg","_createSVG","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","BaseFontLoader","nativeFontFaces","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","_this$_document","hasFonts","_loadTestFont","rules","fontsToLoad","GenericFontLoader","loadingContext","requests","nextRequestId","loadTestFontId","supported","completeRequest","otherRequest","getLoadTestFont","int32","offset","spliceString","insert","isFontReady","fillText","getImageData","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","loadedName","fontFamily","translatedData","compiledGlyphs","cssFontInfo","FontFace","css","weight","fontWeight","italicAngle","registerFont","mimetype","character","cmds","_pattern_helper","_image_utils","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","Path2D","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","setTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","ctxSave","ctxRestore","ctxTranslate","ctxScale","ctxTransform","ctxSetTransform","ctxResetTransform","ctxRotate","cp1x","cp1y","cp2x","cp2y","CachedCanvases","cache","canvasEntry","reset","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","sign","drawImage","scaleX","hypot","scaleY","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","elem","mask","count","sum","steps","p0","pp","drawOutline","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","minX","minY","maxX","maxY","scaleMinMax","box","bezierBoundingBox","updateRectMinMax","pathType","PathType","singularValueDecompose2dScale","xStrokePad","yStrokePad","intersect","getPathBoundingBox","putBinaryImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","destPos","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","applyMaskImageData","copyCtxState","sourceCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","foregroundColor","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","PIXELS_TO_PROCESS","chunkHeight","composeSMask","layerBox","layerWidth","layerHeight","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","PDF_TO_CSS_UNITS","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_restoreInitialState","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","backgroundColor","foreground","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","fallback","defaultBackgroundColor","fg","bg","isValidDefaultBg","defaultBg","rB","gB","bB","newComp","lumB","selectColor","lumC","fillRect","transparentCanvas","getCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","fnId","breakIt","depObjId","objsPool","_restoreInitialState2","HTMLCanvasElement","endLayout","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","tmpCanvas","tmpCtx","newWidth","newHeight","clearRect","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","withoutTranslation","cachedImage","maskToCanvas","cord1","cord2","normalizeRect","drawnWidth","drawnHeight","fillCanvas","fillCtx","_scaleImage","imageSmoothingEnabled","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","checkSMaskState","inSMaskMode","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","dirtyBox","old","pop","ops","isScalingMatrix","minMaxForBezier","xw","yh","updatePathMinMax","updateCurvePathMinMax","updateScalingPathMinMax","setCurrentPoint","consumePath","rescaleAndStroke","getClippedPathBoundingBox","needRestore","paths","pendingTextPaths","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","glyph","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","paintChar","scaledAccentX","scaledAccentY","charWidth","compose","isTextInvisible","spacingLength","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","getColorN_Pattern","_this$selectColor","_this$selectColor2","matrix","getShadingPattern","SHADING","inv","bl","br","ul","ur","bbox","group","currentCtx","isolated","knockout","getAxialAlignedBoundingBox","canvasBounds","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","getObject","compiled","_createMaskCanvas","positions","trans","images","image","imgToPaint","HTMLElement","appendImage","visible","isVisible","isContentVisible","isEmptyClip","updateClipFromPath","absDet","normX","normY","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","getScaleForStroking","savedMatrix","savedDashes","savedDashOffset","op","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_r1","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","_createGradient","createPattern","domMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","_coords","_figures","_bounds","_background","combinedScale","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","_createMeshCanvas","DummyShadingPattern","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","bboxWidth","bboxHeight","cssColor","createPatternCanvas","inverseDecode","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","actionName","handler","ah","queueingStrategy","startCapability","startCall","pullCall","cancelCall","isClosed","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","streamController","_deleteStreamController","allSettled","_metadataMap","_data","parsedData","rawData","_classPrivateFieldGet2","INTERNAL","_visible","OptionalContentGroup","internal","_cachedHasInitialVisibility","_groups","_initialVisibility","_order","_evaluateVisibilityExpression","creator","order","groups","baseState","_setVisible","off","expression","_evaluateVisibilityExpression2","policy","ids","hasInitialVisibility","operator","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","found","_begin","_progressiveDataLength","_this$_fullRequestRea","_this$_fullRequestRea2","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","requestDataRange","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","requestsCapability","_removeRangeReader","output","walk","_node$attributes","shouldBuildText","child","fs","require$$2","readFile","Canvas","require$$3","createCanvas","AnnotationEditorLayer","_freetext","_ink","_accessibilityManager","_allowClick","_boundPointerup","_boundPointerdown","_editors","_hadPointerDown","_isCleaningUp","_uiManager","_changeParent","_createNewEditor","_createAndAddNewEditor","_cleanup","pointerup","pointerdown","_initialized","FreeTextEditor","initialize","l10n","InkEditor","uiManager","registerEditorTypes","accessibilityManager","addLayer","updateToolbar","getMode","_cleanup2","addInkEditorIfNeeded","disableClick","enableClick","isCommitting","setInBackground","_createAndAddNewEditor2","pointerEvents","enableEditing","disableEditing","currentActive","removePointerInTextLayer","removeEditor","detach","activeElement","focusMainContainer","_changeParent2","attach","render","moveEditorInDOM","onceAdded","_classPrivateFieldGet3","moveElementInDOM","setValue","needsToBeRebuilt","rebuild","annotationType","isSelected","getEditor","dropEffect","endX","endY","_classPrivateFieldGet4","_classPrivateFieldGet5","removeLayer","setDimensions","getEditors","scaleFactor","pageLLx","pageLLy","pageURx","pageURy","flipOrientation","widthStr","heightStr","_editor$parent","_createNewEditor2","_boundEditorDivBlur","_boundEditorDivFocus","_boundEditorDivKeydown","_color","_content","_hasAlreadyBeenCommitted","_fontSize","_updateFontSize","_updateColor","_extractText","_setEditorDimensions","editorDivBlur","editorDivFocus","editorDivKeydown","_defaultColor","_defaultFontSize","_l10nPromise","_internalPadding","getPropertyValue","_updateFontSize2","_updateColor2","isInEditMode","enableEditMode","overlayDiv","editorDiv","contentEditable","draggable","disableEditMode","innerText","addUndoableEditor","_extractText2","trimEnd","_setEditorDimensions2","removeAttribute","baseX","baseY","_this$editorDiv","_this$editorDiv2","setAt","line","createTextNode","padding","getRect","convert","setFontsize","savedFontsize","savedColor","divs","firstChild","nodeName","_pdfjsFitCurve","fitCurve","_classStaticPrivateMethodGet","RESIZER_SIZE","_aspectRatio","_baseHeight","_baseWidth","_boundCanvasPointermove","_boundCanvasPointerleave","_boundCanvasPointerup","_boundCanvasPointerdown","_disableEditing","_isCanvasInitialized","_lastPoint","_observer","_realWidth","_realHeight","_requestFrameCallback","_updateThickness","_updateOpacity","_getInitialBBox","_setStroke","_startDrawing","_draw","_stopDrawing","_redraw","_endDrawing","_createObserver","_setCanvasDims","_setScaleFactor","_updateTransform","_serializePaths","_extractPointsOnBezier","_isAlmostFlat","_getBbox","_getPadding","_fitToContent","_setMinDims","canvasPointermove","canvasPointerleave","canvasPointerup","canvasPointerdown","thickness","bezierPath2D","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","_updateThickness2","_updateOpacity2","_this$opacity","_createCanvas2","_createObserver2","_setCanvasDims2","_fitToContent2","disconnect","_startDrawing2","_draw2","_endDrawing2","_getInitialBBox2","setDims","_redraw2","_setMinDims2","roundedWidth","roundedHeight","_setScaleFactor2","bezier","p10","p11","p20","p21","p30","p31","path2D","_buildPath2D","_getBbox2","_serializePaths2","savedThickness","savedOpacity","_setStroke2","_this$opacity2","lastX","lastY","_stopDrawing2","xy","_updateTransform2","_this$canvas","ResizeObserver","contentRect","observe","_getPadding2","scaleFactorW","scaleFactorH","control1","control2","NUMBER_OF_POINTS_ON_BEZIER_CURVE","p40","p41","_extractPointsOnBezier2","_isAlmostFlat2","q10","q11","q20","q21","q30","q31","tol","ax","ay","bx","by","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","minHeight","minWidth","maxError","progressCallback","point","leftTangent","createTangent","rightTangent","fitCubic","MaxIterations","bezCurve","uPrime","prevErr","splitPoint","prevSplit","centerVector","toCenterTangent","fromCenterTangent","beziers","dist","maths","vectorLen","subtract","addArrays","mulItems","chordLengthParameterize","generateAndReport","reparameterize","errChange","paramsOrig","paramsPrime","generateBezier","computeMaxError","bez","maxErr","maxPoint","det_C0_C1","det_C0_X","det_X_C1","alpha_l","alpha_r","epsilon","segLength","ux","firstPoint","lastPoint","zeros_Xx2x2","dot","newtonRaphsonRootFind","qprime","numerator","mulMatrix","denominator","squareItems","qprimeprime","currU","prevU","prevP","maxDist","t_distMap","mapTtoRelativeDistances","find_t","B_parts","B_t_curr","B_t_dist","B_t_prev","sumLen","param","lenMax","lenMin","tMax","tMin","pointA","pointB","zs","multiplier","reduce","addition","divisor","divItems","ctrlPoly","pA","pB","pC","pD","AnnotationLayer","_scripting_utils","_xfa_layer","DEFAULT_TAB_INDEX","DEFAULT_FONT_SIZE","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","_createContainer","quadrilaterals","_createQuadrilaterals","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","setRotation","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","ColorConverters","hidden","preventScroll","userName","title","readonly","_setRequired","bgColor","fgColor","textColor","jsEvent","commonActions","storedData","getRawValue","eventProxy","quadPoints","savedRect","quadPoint","trigger","popupElement","PopupElement","modificationDate","richText","hideWrapper","popup","quadrilateral","skipId","fieldObj","exportValues","exportValue","domElement","querySelector","getElementsByName","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","_renderQuadrilaterals","linkElement","cloneNode","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","_this$linkService$eve","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","storage","allIds","dispatchEvent","Event","_this$linkService$eve2","_parameters$data$titl","_parameters$data$cont","_parameters$data$rich","hasPopup","dataset","l10nId","l10nArgs","_createPopup","alternativeText","baseName","eventName","valueGetter","_this$linkService$eve3","modifier","_getKeyModifier","_this$linkService$eve4","_this$data$actions","_setEventListener","TEXT_ALIGNMENT","fontColor","defaultAppearanceData","computedFontSize","multiLine","numberOfLines","lineHeight","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","keyInStorage","_getElementsByName","getValue","formattedValue","maxLen","charLimit","elementData","userValue","valueOnFocus","doNotScroll","overflowY","overflowX","disabled","readOnly","maxLength","setPropertyOnSiblings","_this$data$defaultFie","defaultFieldValue","blurListener","scrollLeft","_this$data$actions2","_event$detail$value","setSelectionRange","selRange","_this$linkService$eve5","willCommit","commitKey","selStart","selectionStart","selEnd","selectionEnd","_dispatchEventFromSandbox","_this$linkService$eve6","_blurListener","isDown","_this$linkService$eve7","Keystroke","_this$linkService$eve8","inputType","change","_setEventListeners","comb","fieldWidth","combWidth","letterSpacing","verticalAlign","_setTextStyle","_setBackgroundColor","_setDefaultPropertiesFromJS","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","prepend","isExport","selectedIndex","getItems","_removeEmptyEntry","findIndex","selectChild","indices","editable","_this$linkService$eve9","changeEx","keyDown","_parameters$data$titl2","_parameters$data$cont2","_parameters$data$rich2","IGNORE_TYPES","parentType","selector","parentId","parentElements","querySelectorAll","parentRect","popupLeft","popupTop","pinned","_this$richText","_this$contentsObj","BACKGROUND_ENLIGHT","hideElement","dir","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","XfaLayer","xfaHtml","contents","_formatContents","_toggle","_show","_hide","lines","pin","unpin","_parameters$data$titl3","_parameters$data$cont3","_parameters$data$rich3","lineSpan","_parameters$data$titl4","_parameters$data$cont4","_parameters$data$rich4","lineCoordinates","_parameters$data$titl5","_parameters$data$cont5","_parameters$data$rich5","square","_parameters$data$titl6","_parameters$data$cont6","_parameters$data$rich6","circle","_parameters$data$titl7","_parameters$data$cont7","_parameters$data$rich7","containerClassName","svgElementName","coordinate","vertices","polyline","_parameters$data$titl8","_parameters$data$cont8","_parameters$data$rich8","_parameters$data$titl9","_parameters$data$cont9","_parameters$data$rich9","inkList","inkLists","_parameters$data$titl10","_parameters$data$cont10","_parameters$data$rich10","_parameters$data$titl11","_parameters$data$cont11","_parameters$data$rich11","_parameters$data$titl12","_parameters$data$cont12","_parameters$data$rich12","_parameters$data$titl13","_parameters$data$cont13","_parameters$data$rich13","_parameters$data$titl14","_parameters$data$cont14","_parameters$data$rich14","_this$linkService$eve10","_this$data$titleObj","_this$data$contentsOb","_download","_this$downloadManager","openOrDownloadData","_setDimensions","rendered","renderedElement","_appendElement","_setAnnotationCanvasMap","contentElement","replaceWith","makeColorComp","G","B","CMYK_RGB","RGB_HTML","xfaOn","xfaOff","getAttribute","isHTMLAnchorElement","HTMLAnchorElement","dataId","setupStorage","rootHtml","setAttributes","rootDiv","textDivs","_child$attributes","childHtml","xmlns","TextLayerRenderTask","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_ASCENT","ascentCache","AllWhitespaceRegexp","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","appendText","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_viewport","atan2","fontName","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","right","bottom","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","jj","boxScale","boxes","x1New","x2New","expandBoundsLTR","sort","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_devicePixelRatio","styleCache","parentNode","timeout","textItems","textStyles","_processItems","expandDivs","transformBuf","paddingBuf","divProps","renderParameters","_render","SVGGraphics","SVG_DEFAULTS","fontStyle","XML_NS","XLINK_NS","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","require$$4","maxBlockLength","deflateBlocks","idat","pi","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListElement","pf","toFixed","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_current$txtElement","hasChildNodes","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","getAttributeNS","clipId","clipPath","clipElement","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","PDFNodeStream","_network_utils","http","require$$5","https","require$$6","require$$7","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","handleResponse","statusCode","_setReadableStream","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","contentDispositionStr","iter","quot","part","parts","quotindex","extvalue","encodingend","langvalue","charset","hex","PDFNetworkStream","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","NetworkManager_getXhr","currXhrId","pendingRequests","listeners","xhrId","pendingRequest","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","_pendingRequest$onPro","_pendingRequest$onErr","xhrStatus","ok_response_on_range_request","_pendingRequest$onErr2","rangeHeader","_pendingRequest$onErr3","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","_this$onProgress","lengthComputable","isPendingRequest","_requestId","requestRange","_this$onClosed","_close","_this$onProgress2","PDFFetchStream","createFetchOptions","abortController","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","_headers","__webpack_module_cache__","moduleId","cachedModule","__webpack_exports__","_annotation_editor_layer","_annotation_layer","_api","_svg","_text_layer","flipFileViewerPdfCss","pdf","FlipFileViewerPdf","zoom","visiblePages","pages","renderedPages","renderingPageNumbers","onScroll","updateVisiblePages","getPages","openPrintDialog","doc","forPrint","canvases","shadowRoot","textContainer","find","getScale","getViewport","renderContext","getVisibleHeight","scrollContainer","visiblePagesDidNotChanged","renderVisiblePages","getTextContent","toDataURL","win","clientWidth","showPagination","showSpinner","aria-describedby","aria-label","data-page-number","role","aria-current","flipFileViewerTextCss","FlipFileViewerText","updateText","flipFileViewerVideoCss","FlipFileViewerVideo"],"mappings":"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","sourcesContent":[":host {\n display: inline-flex;\n width: 100%;\n height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-audio__audio {\n width: 100%;\n height: 100%;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-audio.css\",\n tag: \"flip-file-viewer-audio\",\n})\nexport class FlipFileViewerAudio {\n @Prop() file!: string;\n @Prop() type!: string;\n\n render() {\n return (\n <Host class=\"file-viewer-audio\">\n <audio class=\"file-viewer-audio__audio\" controls>\n <source src={this.file} type={this.type}></source>\n </audio>\n </Host>\n );\n }\n}\n","/* @license\nPapa Parse\nv5.3.2\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var i=(t=t||{}).dynamicTyping||!1;M(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!M(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var r=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(i=f.URL||f.webkitURL||null,r=s.toString(),b.BLOB_URL||(b.BLOB_URL=i.createObjectURL(new Blob([\"(\",r,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var i,r;return t.onmessage=_,t.id=h++,a[t.id]=t}();return r.userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=M(t.step),t.chunk=M(t.chunk),t.complete=M(t.complete),t.error=M(t.error),delete t.worker,void r.postMessage({input:e,config:t,workerId:r.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&M(e.read)&&M(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,_=!0,m=\",\",y=\"\\r\\n\",s='\"',a=s+s,i=!1,r=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines);\"string\"==typeof t.newline&&(y=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);(\"boolean\"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(o=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\\-@\\t\\r].*$/)}();var h=new RegExp(j(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return u(null,e,i);if(\"object\"==typeof e[0])return u(r||Object.keys(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||r),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),u(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function u(e,t,i){var r=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&_){for(var a=0;a<e.length;a++)0<a&&(r+=m),r+=v(e[a],a);0<t.length&&(r+=y)}for(var o=0;o<t.length;o++){var h=n?e.length:t[o].length,u=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u=\"greedy\"===i?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===i&&n){for(var d=[],l=0;l<h;l++){var c=s?e[l]:l;d.push(t[o][c])}u=\"\"===d.join(\"\").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!f&&(r+=m);var g=n&&s?e[p]:p;r+=v(t[o][g],p)}o<t.length-1&&(!i||0<h&&!f)&&(r+=y)}}return r}function v(e,t){if(null==e)return\"\";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);var i=!1;o&&\"string\"==typeof e&&o.test(e)&&(e=\"'\"+e,i=!0);var r=e.toString().replace(h,a);return(i=i||!0===n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1}(r,b.BAD_DELIMITERS)||-1<r.indexOf(m)||\" \"===r.charAt(0)||\" \"===r.charAt(r.length-1))?s+r+s:r}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK=\"\\ufeff\",b.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=\",\",b.Parser=E,b.ParserHandle=i,b.NetworkStreamer=l,b.FileStreamer=c,b.StringStreamer=p,b.ReadableStreamStreamer=g,f.jQuery){var d=f.jQuery;d.fn.parse=function(o){var i=o.config||{},h=[];return this.each(function(e){if(!(\"INPUT\"===d(this).prop(\"tagName\").toUpperCase()&&\"file\"===d(this).attr(\"type\").toLowerCase()&&f.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)h.push({file:this.files[t],inputElem:this,instanceConfig:d.extend({},i)})}),e(),this;function e(){if(0!==h.length){var e,t,i,r,n=h[0];if(M(o.before)){var s=o.before(n.file,n.inputElem);if(\"object\"==typeof s){if(\"abort\"===s.action)return e=\"AbortError\",t=n.file,i=n.inputElem,r=s.reason,void(M(o.error)&&o.error({name:e},t,i,r));if(\"skip\"===s.action)return void u();\"object\"==typeof s.config&&(n.instanceConfig=d.extend(n.instanceConfig,s.config))}else if(\"skip\"===s)return void u()}var a=n.instanceConfig.complete;n.instanceConfig.complete=function(e){M(a)&&a(e,n.file,n.inputElem),u()},b.parse(n.file,n.instanceConfig)}else M(o.complete)&&o.complete()}function u(){h.splice(0,1),e()}}}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=w(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){if(this.isFirstChunk&&M(this._config.beforeFirstChunk)){var i=this._config.beforeFirstChunk(e);void 0!==i&&(e=i)}this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e;this._partialLine=\"\";var n=this._handle.parse(r,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var s=n.meta.cursor;this._finished||(this._partialLine=r.substring(s-this._baseIndex),this._baseIndex=s),n&&n.data&&(this._rowCount+=n.data.length);var a=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(M(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!M(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){M(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var r;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),u.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),n||(r.onload=v(this._chunkLoaded,this),r.onerror=v(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)r.setRequestHeader(t,e[t])}if(this._config.chunkSize){var i=this._start+this._config.chunkSize-1;r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i)}try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:r.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){var t=r.statusText||e;this._sendError(new Error(t))}}function c(e){var r,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),u.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((r=new FileReader).onload=v(this._chunkLoaded,this),r.onerror=v(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var t=Math.min(this._start+this._config.chunkSize,this._input.size);e=n.call(e,this._start,t)}var i=r.readAsText(e,this._config.encoding);s||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(r.error)}}function p(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=i.substring(0,t),i=i.substring(t)):(e=i,i=\"\"),this._finished=!i,this.parseChunk(e)}}}function g(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=v(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=v(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=v(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=v(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(m){var a,o,h,r=Math.pow(2,53),n=-r,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,u=/^(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))$/,t=this,i=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(M(m.step)){var p=m.step;m.step=function(e){if(c=e,_())g();else{if(g(),0===c.data.length)return;i+=e.data.length,m.preview&&i>m.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){return c&&h&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),h=!1),m.skipEmptyLines&&(c.data=c.data.filter(function(e){return!y(e)})),_()&&function(){if(!c)return;function e(e,t){M(m.transformHeader)&&(e=m.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;_()&&t<c.data.length;t++)c.data[t].forEach(e);c.data.splice(0,1)}else c.data.forEach(e)}(),function(){if(!c||!m.header&&!m.dynamicTyping&&!m.transform)return c;function e(e,t){var i,r=m.header?{}:[];for(i=0;i<e.length;i++){var n=i,s=e[i];m.header&&(n=i>=l.length?\"__parsed_extra\":l[i]),m.transform&&(s=m.transform(s,n)),s=v(n,s),\"__parsed_extra\"===n?(r[n]=r[n]||[],r[n].push(s)):r[n]=s}return m.header&&(i>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+i,f+t):i<l.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+l.length+\" fields but parsed \"+i,f+t)),r}var t=1;!c.data.length||Array.isArray(c.data[0])?(c.data=c.data.map(e),t=c.data.length):c.data=e(c.data,0);m.header&&c.meta&&(c.meta.fields=l);return f+=t,c}()}function _(){return m.header&&0===l.length}function v(e,t){return i=e,m.dynamicTypingFunction&&void 0===m.dynamicTyping[i]&&(m.dynamicTyping[i]=m.dynamicTypingFunction(i)),!0===(m.dynamicTyping[i]||m.dynamicTyping)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&(function(e){if(s.test(e)){var t=parseFloat(e);if(n<t&&t<r)return!0}return!1}(t)?parseFloat(t):u.test(t)?new Date(t):\"\"===t?null:t):t;var i}function k(e,t,i,r){var n={type:e,code:t,message:i};void 0!==r&&(n.row=r),c.errors.push(n)}this.parse=function(e,t,i){var r=m.quoteChar||'\"';if(m.newline||(m.newline=function(e,t){e=e.substring(0,1048576);var i=new RegExp(j(t)+\"([^]*?)\"+j(t),\"gm\"),r=(e=e.replace(i,\"\")).split(\"\\r\"),n=e.split(\"\\n\"),s=1<n.length&&n[0].length<r[0].length;if(1===r.length||s)return\"\\n\";for(var a=0,o=0;o<r.length;o++)\"\\n\"===r[o][0]&&a++;return a>=r.length/2?\"\\r\\n\":\"\\r\"}(e,r)),h=!1,m.delimiter)M(m.delimiter)&&(m.delimiter=m.delimiter(e),c.meta.delimiter=m.delimiter);else{var n=function(e,t,i,r,n){var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var u=0;u<n.length;u++){var f=n[u],d=0,l=0,c=0;o=void 0;for(var p=new E({comments:r,delimiter:f,newline:t,preview:10}).parse(e),g=0;g<p.data.length;g++)if(i&&y(p.data[g]))c++;else{var _=p.data[g].length;l+=_,void 0!==o?0<_&&(d+=Math.abs(_-o),o=_):o=_}0<p.data.length&&(l/=p.data.length-c),(void 0===a||d<=a)&&(void 0===h||h<l)&&1.99<l&&(a=d,s=f,h=l)}return{successful:!!(m.delimiter=s),bestDelimiter:s}}(e,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess);n.successful?m.delimiter=n.bestDelimiter:(h=!0,m.delimiter=b.DefaultDelimiter),c.meta.delimiter=m.delimiter}var s=w(m);return m.preview&&m.header&&s.preview++,a=e,o=new E(s),c=o.parse(a,t,i),g(),d?{meta:{paused:!0}}:c||{meta:{paused:!1}}},this.paused=function(){return d},this.pause=function(){d=!0,o.abort(),a=M(m.chunk)?\"\":a.substring(o.getCharIndex())},this.resume=function(){t.streamer._halted?(d=!1,t.streamer.parseChunk(a,!0)):setTimeout(t.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,o.abort(),c.meta.aborted=!0,M(m.complete)&&m.complete(c),a=\"\"}}function j(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(e){var S,O=(e=e||{}).delimiter,x=e.newline,I=e.comments,T=e.step,D=e.preview,A=e.fastMode,L=S=void 0===e.quoteChar||null===e.quoteChar?'\"':e.quoteChar;if(void 0!==e.escapeChar&&(L=e.escapeChar),(\"string\"!=typeof O||-1<b.BAD_DELIMITERS.indexOf(O))&&(O=\",\"),I===O)throw new Error(\"Comment character same as delimiter\");!0===I?I=\"#\":(\"string\"!=typeof I||-1<b.BAD_DELIMITERS.indexOf(I))&&(I=!1),\"\\n\"!==x&&\"\\r\"!==x&&\"\\r\\n\"!==x&&(x=\"\\n\");var F=0,z=!1;this.parse=function(r,t,i){if(\"string\"!=typeof r)throw new Error(\"Input must be a string\");var n=r.length,e=O.length,s=x.length,a=I.length,o=M(T),h=[],u=[],f=[],d=F=0;if(!r)return C();if(A||!1!==A&&-1===r.indexOf(S)){for(var l=r.split(x),c=0;c<l.length;c++){if(f=l[c],F+=f.length,c!==l.length-1)F+=x.length;else if(i)return C();if(!I||f.substring(0,a)!==I){if(o){if(h=[],k(f.split(O)),R(),z)return C()}else k(f.split(O));if(D&&D<=c)return h=h.slice(0,D),C(!0)}}return C()}for(var p=r.indexOf(O,F),g=r.indexOf(x,F),_=new RegExp(j(L)+j(S),\"g\"),m=r.indexOf(S,F);;)if(r[F]!==S)if(I&&0===f.length&&r.substring(F,F+a)===I){if(-1===g)return C();F=g+s,g=r.indexOf(x,F),p=r.indexOf(O,F)}else if(-1!==p&&(p<g||-1===g))f.push(r.substring(F,p)),F=p+e,p=r.indexOf(O,F);else{if(-1===g)break;if(f.push(r.substring(F,g)),w(g+s),o&&(R(),z))return C();if(D&&h.length>=D)return C(!0)}else for(m=F,F++;;){if(-1===(m=r.indexOf(S,m+1)))return i||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:F}),E();if(m===n-1)return E(r.substring(F,m).replace(_,S));if(S!==L||r[m+1]!==L){if(S===L||0===m||r[m-1]!==L){-1!==p&&p<m+1&&(p=r.indexOf(O,m+1)),-1!==g&&g<m+1&&(g=r.indexOf(x,m+1));var y=b(-1===g?p:Math.min(p,g));if(r.substr(m+1+y,e)===O){f.push(r.substring(F,m).replace(_,S)),r[F=m+1+y+e]!==S&&(m=r.indexOf(S,F)),p=r.indexOf(O,F),g=r.indexOf(x,F);break}var v=b(g);if(r.substring(m+1+v,m+1+v+s)===x){if(f.push(r.substring(F,m).replace(_,S)),w(m+1+v+s),p=r.indexOf(O,F),m=r.indexOf(S,F),o&&(R(),z))return C();if(D&&h.length>=D)return C(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:F}),m++}}else m++}return E();function k(e){h.push(e),d=F}function b(e){var t=0;if(-1!==e){var i=r.substring(m+1,e);i&&\"\"===i.trim()&&(t=i.length)}return t}function E(e){return i||(void 0===e&&(e=r.substring(F)),f.push(e),F=n,k(f),o&&R()),C()}function w(e){F=e,k(f),f=[],g=r.indexOf(x,F)}function C(e){return{data:h,errors:u,meta:{delimiter:O,linebreak:x,aborted:z,truncated:!!e,cursor:d+(t||0)}}}function R(){T(C()),h=[],u=[]}},this.abort=function(){z=!0},this.getCharIndex=function(){return F}}function _(e){var t=e.data,i=a[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(M(i.userStep)){for(var s=0;s<t.results.data.length&&(i.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!r);s++);delete t.results}else M(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&m(t.workerId,t.results)}function m(e,t){var i=a[e];M(i.userComplete)&&i.userComplete(t),i.terminate(),delete a[e]}function y(){throw new Error(\"Not implemented.\")}function w(e){if(\"object\"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var i in e)t[i]=w(e[i]);return t}function v(e,t){return function(){e.apply(t,arguments)}}function M(e){return\"function\"==typeof e}return o&&(f.onmessage=function(e){var t=e.data;void 0===b.WORKER_ID&&t&&(b.WORKER_ID=t.workerId);if(\"string\"==typeof t.input)f.postMessage({workerId:b.WORKER_ID,results:b.parse(t.input,t.config),finished:!0});else if(f.File&&t.input instanceof File||t.input instanceof Object){var i=b.parse(t.input,t.config);i&&f.postMessage({workerId:b.WORKER_ID,results:i,finished:!0})}}),(l.prototype=Object.create(u.prototype)).constructor=l,(c.prototype=Object.create(u.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(g.prototype=Object.create(u.prototype)).constructor=g,b});",":host {\n position: relative;\n display: inline-flex;\n width: 100%;\n max-height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-csv__csv {\n overflow: auto;\n width: 100%;\n max-height: 100%;\n padding: var(--s-space-16);\n background-color: var(--s-background-default);\n}\n\n.file-viewer-csv__table {\n margin-right: auto;\n margin-left: auto;\n border-collapse: collapse;\n}\n\n.file-viewer-csv__cell {\n padding: var(--s-space-8);\n border: var(--s-border-width-default) solid var(--s-border-default);\n}\n\n.file-viewer-csv__spinner {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.2);\n inset: 0;\n}\n\n.file-viewer-csv__error {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n","import { Component, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport { parse } from \"papaparse\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-csv.css\",\n tag: \"flip-file-viewer-csv\",\n})\nexport class FlipFileViewerCsv {\n @Prop() errorMessage?: string = \"File could not be loaded.\";\n @Prop() file!: string;\n\n @State() data: (boolean | number | string)[][];\n @State() error: boolean;\n @State() loading: boolean;\n\n componentWillLoad() {\n this.updateTable();\n }\n\n @Watch(\"file\")\n async updateTable() {\n this.error = false;\n this.loading = true;\n\n try {\n const response = await fetch(this.file);\n\n const parsed = parse<string[]>(await response.text(), {\n dynamicTyping: true,\n fastMode: false,\n skipEmptyLines: true,\n });\n\n if (parsed.errors?.length > 0) {\n this.error = true;\n this.loading = false;\n return;\n }\n\n this.data = parsed.data;\n\n this.loading = false;\n } catch (e) {\n this.loading = false;\n this.error = true;\n }\n }\n\n render() {\n return (\n <Host class=\"file-viewer-csv\">\n {this.error && (\n <flip-inline-error\n class=\"file-viewer-csv__error\"\n message={this.errorMessage}\n ></flip-inline-error>\n )}\n <div class=\"file-viewer-csv__csv\" tabIndex={0}>\n <table class=\"file-viewer-csv__table\">\n <tbody>\n {this.data?.map((row, index) => (\n <tr class=\"file-viewer-csv__row\" key={`row-${index}`}>\n {row.map((cell, i) => (\n <td\n class=\"file-viewer-csv__cell\"\n key={`cell-${index}-${i}`}\n >\n {cell}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {this.loading && (\n <div class=\"file-viewer-csv__spinner\">\n <flip-spinner></flip-spinner>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n position: relative;\n display: inline-flex;\n max-height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-image__image {\n max-width: 100%;\n object-fit: contain;\n}\n\n.file-viewer-image__spinner {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.2);\n inset: 0;\n}\n\n.file-viewer-image__error {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n","import { Component, h, Host, Prop, State, Watch } from \"@stencil/core\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-image.css\",\n tag: \"flip-file-viewer-image\",\n})\nexport class FlipFileViewerImage {\n @Prop() description?: string = \"\";\n @Prop() errorMessage?: string = \"File could not be loaded.\";\n @Prop() file!: string;\n\n @State() error: boolean;\n @State() loading: boolean = true;\n\n @Watch(\"file\")\n watchFile() {\n this.error = false;\n this.loading = true;\n }\n\n private onError = () => {\n this.error = true;\n this.loading = false;\n };\n\n private onLoad = () => {\n this.error = false;\n this.loading = false;\n };\n\n render() {\n return (\n <Host class=\"file-viewer-image\">\n {this.error && (\n <flip-inline-error\n class=\"file-viewer-image__error\"\n message={this.errorMessage}\n ></flip-inline-error>\n )}\n <img\n alt={this.description}\n class=\"file-viewer-image__image\"\n onError={this.onError}\n onLoad={this.onLoad}\n src={this.file}\n />\n {this.loading && (\n <div class=\"file-viewer-image__spinner\">\n <flip-spinner></flip-spinner>\n </div>\n )}\n </Host>\n );\n }\n}\n","/*!\n* DOMMatrix v1.0.3 (https://thednp.github.io/dommatrix/)\n* Copyright 2022 © thednp\n* Licensed under MIT (https://github.com/thednp/DOMMatrix/blob/master/LICENSE)\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CSSMatrix = factory());\n})(this, (function () { 'use strict';\n\n // DOMMatrix Static methods\n // * `fromArray` is a more simple implementation, should also accept Float[32/64]Array;\n // * `fromMatrix` load values from another CSSMatrix/DOMMatrix instance or JSON object;\n // * `fromString` parses and loads values from any valid CSS transform string (TransformList).\n\n /**\n * Creates a new mutable `CSSMatrix` instance given an array of 16/6 floating point values.\n * This static method invalidates arrays that contain non-number elements.\n *\n * If the array has six values, the result is a 2D matrix; if the array has 16 values,\n * the result is a 3D matrix. Otherwise, a TypeError exception is thrown.\n *\n * @param {CSSM.matrix | CSSM.matrix3d} array an `Array` to feed values from.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromArray(array) {\n var m = new CSSMatrix();\n var a = Array.from(array);\n\n if (!a.every(function (n) { return !Number.isNaN(n); })) {\n throw TypeError((\"CSSMatrix: \\\"\" + array + \"\\\" must only have numbers.\"));\n }\n if (a.length === 16) {\n var m11 = a[0];\n var m12 = a[1];\n var m13 = a[2];\n var m14 = a[3];\n var m21 = a[4];\n var m22 = a[5];\n var m23 = a[6];\n var m24 = a[7];\n var m31 = a[8];\n var m32 = a[9];\n var m33 = a[10];\n var m34 = a[11];\n var m41 = a[12];\n var m42 = a[13];\n var m43 = a[14];\n var m44 = a[15];\n\n m.m11 = m11;\n m.a = m11;\n\n m.m21 = m21;\n m.c = m21;\n\n m.m31 = m31;\n\n m.m41 = m41;\n m.e = m41;\n\n m.m12 = m12;\n m.b = m12;\n\n m.m22 = m22;\n m.d = m22;\n\n m.m32 = m32;\n\n m.m42 = m42;\n m.f = m42;\n\n m.m13 = m13;\n m.m23 = m23;\n m.m33 = m33;\n m.m43 = m43;\n m.m14 = m14;\n m.m24 = m24;\n m.m34 = m34;\n m.m44 = m44;\n } else if (a.length === 6) {\n var M11 = a[0];\n var M12 = a[1];\n var M21 = a[2];\n var M22 = a[3];\n var M41 = a[4];\n var M42 = a[5];\n\n m.m11 = M11;\n m.a = M11;\n\n m.m12 = M12;\n m.b = M12;\n\n m.m21 = M21;\n m.c = M21;\n\n m.m22 = M22;\n m.d = M22;\n\n m.m41 = M41;\n m.e = M41;\n\n m.m42 = M42;\n m.f = M42;\n } else {\n throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.');\n }\n return m;\n }\n\n /**\n * Creates a new mutable `CSSMatrix` instance given an existing matrix or a\n * `DOMMatrix` instance which provides the values for its properties.\n *\n * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromMatrix(m) {\n var keys = Object.keys(new CSSMatrix());\n if (typeof m === 'object' && keys.every(function (k) { return k in m; })) {\n return fromArray(\n [m.m11, m.m12, m.m13, m.m14,\n m.m21, m.m22, m.m23, m.m24,\n m.m31, m.m32, m.m33, m.m34,\n m.m41, m.m42, m.m43, m.m44]\n );\n }\n throw TypeError((\"CSSMatrix: \\\"\" + (JSON.stringify(m)) + \"\\\" is not a DOMMatrix / CSSMatrix / JSON compatible object.\"));\n }\n\n /**\n * Creates a new mutable `CSSMatrix` given any valid CSS transform string,\n * or what we call `TransformList`:\n *\n * * `matrix(a, b, c, d, e, f)` - valid matrix() transform function\n * * `matrix3d(m11, m12, m13, ...m44)` - valid matrix3d() transform function\n * * `translate(tx, ty) rotateX(alpha)` - any valid transform function(s)\n *\n * @copyright thednp © 2021\n *\n * @param {string} source valid CSS transform string syntax.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromString(source) {\n if (typeof source !== 'string') {\n throw TypeError((\"CSSMatrix: \\\"\" + source + \"\\\" is not a string.\"));\n }\n var str = String(source).replace(/\\s/g, '');\n var m = new CSSMatrix();\n var invalidStringError = \"CSSMatrix: invalid transform string \\\"\" + source + \"\\\"\";\n\n // const px = ['perspective'];\n // const length = ['translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\n // const deg = ['rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'skew', 'skewX', 'skewY'];\n // const abs = ['scale', 'scale3d', 'matrix', 'matrix3d'];\n // const transformFunctions = px.concat(length, deg, abs);\n\n str.split(')').filter(function (f) { return f; }).forEach(function (tf) {\n var ref = tf.split('(');\n var prop = ref[0];\n var value = ref[1];\n\n // invalidate empty string\n if (!value) { throw TypeError(invalidStringError); }\n\n var components = value.split(',')\n .map(function (n) { return (n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n)); });\n\n var x = components[0];\n var y = components[1];\n var z = components[2];\n var a = components[3];\n var xyz = [x, y, z];\n var xyza = [x, y, z, a];\n\n // single number value expected\n if (prop === 'perspective' && x && [y, z].every(function (n) { return n === undefined; })) {\n m.m34 = -1 / x;\n // 6/16 number values expected\n } else if (prop.includes('matrix') && [6, 16].includes(components.length)\n && components.every(function (n) { return !Number.isNaN(+n); })) {\n var values = components.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : n); });\n // @ts-ignore -- conditions should suffice\n m = m.multiply(fromArray(values));\n // 3 values expected\n } else if (prop === 'translate3d' && xyz.every(function (n) { return !Number.isNaN(+n); })) {\n m = m.translate(x, y, z);\n // single/double number value(s) expected\n } else if (prop === 'translate' && x && z === undefined) {\n m = m.translate(x, y || 0, 0);\n // all 4 values expected\n } else if (prop === 'rotate3d' && xyza.every(function (n) { return !Number.isNaN(+n); }) && a) {\n m = m.rotateAxisAngle(x, y, z, a);\n // single value expected\n } else if (prop === 'rotate' && x && [y, z].every(function (n) { return n === undefined; })) {\n m = m.rotate(0, 0, x);\n // 3 values expected\n } else if (prop === 'scale3d' && xyz.every(function (n) { return !Number.isNaN(+n); }) && xyz.some(function (n) { return n !== 1; })) {\n m = m.scale(x, y, z);\n // single value expected\n } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) {\n var nosy = Number.isNaN(+y);\n var sy = nosy ? x : y;\n m = m.scale(x, sy, 1);\n // single/double value expected\n } else if (prop === 'skew' && (x || (!Number.isNaN(x) && y)) && z === undefined) {\n m = m.skew(x, y || 0);\n } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) { return n === undefined; }) // a single value expected\n && ['translate', 'rotate', 'scale', 'skew'].some(function (p) { return prop.includes(p); })) {\n if (['skewX', 'skewY'].includes(prop)) {\n // @ts-ignore unfortunately\n m = m[prop](x);\n } else {\n var fn = prop.replace(/[XYZ]/, '');\n var axis = prop.replace(fn, '');\n var idx = ['X', 'Y', 'Z'].indexOf(axis);\n var def = fn === 'scale' ? 1 : 0;\n var axeValues = [\n idx === 0 ? x : def,\n idx === 1 ? x : def,\n idx === 2 ? x : def];\n // @ts-ignore unfortunately\n m = m[fn].apply(m, axeValues);\n }\n } else {\n throw TypeError(invalidStringError);\n }\n });\n\n return m;\n }\n\n /**\n * Returns an *Array* containing elements which comprise the matrix.\n * The method can return either the 16 elements or the 6 elements\n * depending on the value of the `is2D` parameter.\n *\n * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.\n * @param {boolean=} is2D *Array* representation of the matrix\n * @return {CSSM.matrix | CSSM.matrix3d} an *Array* representation of the matrix\n */\n function toArray(m, is2D) {\n if (is2D) {\n return [m.a, m.b, m.c, m.d, m.e, m.f];\n }\n return [m.m11, m.m12, m.m13, m.m14,\n m.m21, m.m22, m.m23, m.m24,\n m.m31, m.m32, m.m33, m.m34,\n m.m41, m.m42, m.m43, m.m44];\n }\n\n // Transform Functions\n // https://www.w3.org/TR/css-transforms-1/#transform-functions\n\n /**\n * Creates a new `CSSMatrix` for the translation matrix and returns it.\n * This method is equivalent to the CSS `translate3d()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d\n *\n * @param {number} x the `x-axis` position.\n * @param {number} y the `y-axis` position.\n * @param {number} z the `z-axis` position.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Translate(x, y, z) {\n var m = new CSSMatrix();\n m.m41 = x;\n m.e = x;\n m.m42 = y;\n m.f = y;\n m.m43 = z;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n *\n * http://en.wikipedia.org/wiki/Rotation_matrix\n *\n * @param {number} rx the `x-axis` rotation.\n * @param {number} ry the `y-axis` rotation.\n * @param {number} rz the `z-axis` rotation.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Rotate(rx, ry, rz) {\n var m = new CSSMatrix();\n var degToRad = Math.PI / 180;\n var radX = rx * degToRad;\n var radY = ry * degToRad;\n var radZ = rz * degToRad;\n\n // minus sin() because of right-handed system\n var cosx = Math.cos(radX);\n var sinx = -Math.sin(radX);\n var cosy = Math.cos(radY);\n var siny = -Math.sin(radY);\n var cosz = Math.cos(radZ);\n var sinz = -Math.sin(radZ);\n\n var m11 = cosy * cosz;\n var m12 = -cosy * sinz;\n\n m.m11 = m11;\n m.a = m11;\n\n m.m12 = m12;\n m.b = m12;\n\n m.m13 = siny;\n\n var m21 = sinx * siny * cosz + cosx * sinz;\n m.m21 = m21;\n m.c = m21;\n\n var m22 = cosx * cosz - sinx * siny * sinz;\n m.m22 = m22;\n m.d = m22;\n\n m.m23 = -sinx * cosy;\n\n m.m31 = sinx * sinz - cosx * siny * cosz;\n m.m32 = sinx * cosz + cosx * siny * sinz;\n m.m33 = cosx * cosy;\n\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n * This method is equivalent to the CSS `rotate3d()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\n *\n * @param {number} x the `x-axis` vector length.\n * @param {number} y the `y-axis` vector length.\n * @param {number} z the `z-axis` vector length.\n * @param {number} alpha the value in degrees of the rotation.\n * @return {CSSMatrix} the resulted matrix.\n */\n function RotateAxisAngle(x, y, z, alpha) {\n var m = new CSSMatrix();\n var length = Math.sqrt(x * x + y * y + z * z);\n\n if (length === 0) {\n // bad vector length, return identity\n return m;\n }\n\n var X = x / length;\n var Y = y / length;\n var Z = z / length;\n\n var angle = alpha * (Math.PI / 360);\n var sinA = Math.sin(angle);\n var cosA = Math.cos(angle);\n var sinA2 = sinA * sinA;\n var x2 = X * X;\n var y2 = Y * Y;\n var z2 = Z * Z;\n\n var m11 = 1 - 2 * (y2 + z2) * sinA2;\n m.m11 = m11;\n m.a = m11;\n\n var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA);\n m.m12 = m12;\n m.b = m12;\n\n m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA);\n\n var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA);\n m.m21 = m21;\n m.c = m21;\n\n var m22 = 1 - 2 * (z2 + x2) * sinA2;\n m.m22 = m22;\n m.d = m22;\n\n m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA);\n m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA);\n m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA);\n m.m33 = 1 - 2 * (x2 + y2) * sinA2;\n\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the scale matrix and returns it.\n * This method is equivalent to the CSS `scale3d()` function, except it doesn't\n * accept {x, y, z} transform origin parameters.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d\n *\n * @param {number} x the `x-axis` scale.\n * @param {number} y the `y-axis` scale.\n * @param {number} z the `z-axis` scale.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Scale(x, y, z) {\n var m = new CSSMatrix();\n m.m11 = x;\n m.a = x;\n\n m.m22 = y;\n m.d = y;\n\n m.m33 = z;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the shear of both the `x-axis` and`y-axis`\n * matrix and returns it. This method is equivalent to the CSS `skew()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew\n *\n * @param {number} angleX the X-angle in degrees.\n * @param {number} angleY the Y-angle in degrees.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Skew(angleX, angleY) {\n var m = new CSSMatrix();\n if (angleX) {\n var radX = (angleX * Math.PI) / 180;\n var tX = Math.tan(radX);\n m.m21 = tX;\n m.c = tX;\n }\n if (angleY) {\n var radY = (angleY * Math.PI) / 180;\n var tY = Math.tan(radY);\n m.m12 = tY;\n m.b = tY;\n }\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the shear of the `x-axis` rotation matrix and\n * returns it. This method is equivalent to the CSS `skewX()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX\n *\n * @param {number} angle the angle in degrees.\n * @return {CSSMatrix} the resulted matrix.\n */\n function SkewX(angle) {\n return Skew(angle, 0);\n }\n\n /**\n * Creates a new `CSSMatrix` for the shear of the `y-axis` rotation matrix and\n * returns it. This method is equivalent to the CSS `skewY()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY\n *\n * @param {number} angle the angle in degrees.\n * @return {CSSMatrix} the resulted matrix.\n */\n function SkewY(angle) {\n return Skew(0, angle);\n }\n\n /**\n * Creates a new `CSSMatrix` resulted from the multiplication of two matrixes\n * and returns it. Both matrixes are not changed.\n *\n * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m1 the first matrix.\n * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 the second matrix.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Multiply(m1, m2) {\n var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41;\n var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42;\n var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43;\n var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44;\n\n var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41;\n var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42;\n var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43;\n var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44;\n\n var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41;\n var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42;\n var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43;\n var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44;\n\n var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41;\n var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42;\n var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43;\n var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44;\n\n return fromArray(\n [m11, m12, m13, m14,\n m21, m22, m23, m24,\n m31, m32, m33, m34,\n m41, m42, m43, m44]\n );\n }\n\n /**\n * Creates and returns a new `DOMMatrix` compatible instance\n * with equivalent instance.\n * @class CSSMatrix\n *\n * @author thednp <https://github.com/thednp/DOMMatrix/>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n */\n\n var CSSMatrix = function CSSMatrix() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var m = this;\n // array 6\n m.a = 1; m.b = 0;\n m.c = 0; m.d = 1;\n m.e = 0; m.f = 0;\n // array 16\n m.m11 = 1; m.m12 = 0; m.m13 = 0; m.m14 = 0;\n m.m21 = 0; m.m22 = 1; m.m23 = 0; m.m24 = 0;\n m.m31 = 0; m.m32 = 0; m.m33 = 1; m.m34 = 0;\n m.m41 = 0; m.m42 = 0; m.m43 = 0; m.m44 = 1;\n\n if (args.length) {\n var ARGS = [16, 6].some(function (l) { return l === args.length; }) ? args : args[0];\n\n return m.setMatrixValue(ARGS);\n }\n return m;\n };\n\n var prototypeAccessors = { isIdentity: { configurable: true },is2D: { configurable: true } };\n\n /**\n * A `Boolean` whose value is `true` if the matrix is the identity matrix. The identity\n * matrix is one in which every value is 0 except those on the main diagonal from top-left\n * to bottom-right corner (in other words, where the offsets in each direction are equal).\n *\n * @return {boolean} the current property value\n */\n prototypeAccessors.isIdentity.get = function () {\n var m = this;\n return (m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0\n && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0\n && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0\n && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1);\n };\n\n /**\n * A `Boolean` flag whose value is `true` if the matrix was initialized as a 2D matrix\n * and `false` if the matrix is 3D.\n *\n * @return {boolean} the current property value\n */\n prototypeAccessors.is2D.get = function () {\n var m = this;\n return (m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1);\n };\n\n /**\n * The `setMatrixValue` method replaces the existing matrix with one computed\n * in the browser. EG: `matrix(1,0.25,-0.25,1,0,0)`\n *\n * The method accepts any *Array* values, the result of\n * `DOMMatrix` instance method `toFloat64Array()` / `toFloat32Array()` calls\n *or `CSSMatrix` instance method `toArray()`.\n *\n * This method expects valid *matrix()* / *matrix3d()* string values, as well\n * as other transform functions like *translateX(10px)*.\n *\n * @param {string | CSSM.matrix | CSSM.matrix3d | CSSMatrix | DOMMatrix | CSSM.JSONMatrix} source\n * @return {CSSMatrix} the matrix instance\n */\n CSSMatrix.prototype.setMatrixValue = function setMatrixValue (source) {\n var m = this;\n\n // CSS transform string source - TransformList first\n if (typeof source === 'string' && source.length && source !== 'none') {\n return fromString(source);\n }\n // [Arguments list | Array] come second\n if ([Array, Float64Array, Float32Array].some(function (a) { return source instanceof a; })) {\n // @ts-ignore\n return fromArray(source);\n }\n // new CSSMatrix(CSSMatrix | DOMMatrix | JSON) last\n if ([CSSMatrix, DOMMatrix, Object].some(function (a) { return source instanceof a; })) {\n // @ts-ignore\n return fromMatrix(source);\n }\n\n return m;\n };\n\n /**\n * Returns a *Float32Array* containing elements which comprise the matrix.\n * The method can return either the 16 elements or the 6 elements\n * depending on the value of the `is2D` parameter.\n *\n * @param {boolean=} is2D *Array* representation of the matrix\n * @return {Float32Array} an *Array* representation of the matrix\n */\n CSSMatrix.prototype.toFloat32Array = function toFloat32Array (is2D) {\n return Float32Array.from(toArray(this, is2D));\n };\n\n /**\n * Returns a *Float64Array* containing elements which comprise the matrix.\n * The method can return either the 16 elements or the 6 elements\n * depending on the value of the `is2D` parameter.\n *\n * @param {boolean=} is2D *Array* representation of the matrix\n * @return {Float64Array} an *Array* representation of the matrix\n */\n CSSMatrix.prototype.toFloat64Array = function toFloat64Array (is2D) {\n return Float64Array.from(toArray(this, is2D));\n };\n\n /**\n * Creates and returns a string representation of the matrix in `CSS` matrix syntax,\n * using the appropriate `CSS` matrix notation.\n *\n * matrix3d *matrix3d(m11, m12, m13, m14, m21, ...)*\n * matrix *matrix(a, b, c, d, e, f)*\n *\n * @return {string} a string representation of the matrix\n */\n CSSMatrix.prototype.toString = function toString () {\n var m = this;\n var is2D = m.is2D;\n var values = m.toFloat64Array(is2D).join(', ');\n var type = is2D ? 'matrix' : 'matrix3d';\n return (type + \"(\" + values + \")\");\n };\n\n /**\n * Returns a JSON representation of the `CSSMatrix` instance, a standard *Object*\n * that includes `{a,b,c,d,e,f}` and `{m11,m12,m13,..m44}` properties as well\n * as the `is2D` & `isIdentity` properties.\n *\n * The result can also be used as a second parameter for the `fromMatrix` static method\n * to load values into another matrix instance.\n *\n * @return {CSSM.JSONMatrix} an *Object* with all matrix values.\n */\n CSSMatrix.prototype.toJSON = function toJSON () {\n var m = this;\n var is2D = m.is2D;\n var isIdentity = m.isIdentity;\n return Object.assign({}, m, {is2D: is2D, isIdentity: isIdentity});\n };\n\n /**\n * The Multiply method returns a new CSSMatrix which is the result of this\n * matrix multiplied by the passed matrix, with the passed matrix to the right.\n * This matrix is not modified.\n *\n * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 CSSMatrix\n * @return {CSSMatrix} The resulted matrix.\n */\n CSSMatrix.prototype.multiply = function multiply (m2) {\n return Multiply(this, m2);\n };\n\n /**\n * The translate method returns a new matrix which is this matrix post\n * multiplied by a translation matrix containing the passed values. If the z\n * component is undefined, a 0 value is used in its place. This matrix is not\n * modified.\n *\n * @param {number} x X component of the translation value.\n * @param {number=} y Y component of the translation value.\n * @param {number=} z Z component of the translation value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.translate = function translate (x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n if (Y === undefined) { Y = 0; }\n if (Z === undefined) { Z = 0; }\n return Multiply(this, Translate(X, Y, Z));\n };\n\n /**\n * The scale method returns a new matrix which is this matrix post multiplied by\n * a scale matrix containing the passed values. If the z component is undefined,\n * a 1 value is used in its place. If the y component is undefined, the x\n * component value is used in its place. This matrix is not modified.\n *\n * @param {number} x The X component of the scale value.\n * @param {number=} y The Y component of the scale value.\n * @param {number=} z The Z component of the scale value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.scale = function scale (x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n if (Y === undefined) { Y = x; }\n if (Z === undefined) { Z = 1; } // Z must be 1 if undefined\n\n return Multiply(this, Scale(X, Y, Z));\n };\n\n /**\n * The rotate method returns a new matrix which is this matrix post multiplied\n * by each of 3 rotation matrices about the major axes, first X, then Y, then Z.\n * If the y and z components are undefined, the x value is used to rotate the\n * object about the z axis, as though the vector (0,0,x) were passed. All\n * rotation values are in degrees. This matrix is not modified.\n *\n * @param {number} rx The X component of the rotation, or Z if Y and Z are null.\n * @param {number=} ry The (optional) Y component of the rotation value.\n * @param {number=} rz The (optional) Z component of the rotation value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.rotate = function rotate (rx, ry, rz) {\n var RX = rx;\n var RY = ry || 0;\n var RZ = rz || 0;\n\n if (typeof rx === 'number' && ry === undefined && rz === undefined) {\n RZ = RX; RX = 0; RY = 0;\n }\n\n return Multiply(this, Rotate(RX, RY, RZ));\n };\n\n /**\n * The rotateAxisAngle method returns a new matrix which is this matrix post\n * multiplied by a rotation matrix with the given axis and `angle`. The right-hand\n * rule is used to determine the direction of rotation. All rotation values are\n * in degrees. This matrix is not modified.\n *\n * @param {number} x The X component of the axis vector.\n * @param {number} y The Y component of the axis vector.\n * @param {number} z The Z component of the axis vector.\n * @param {number} angle The angle of rotation about the axis vector, in degrees.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.rotateAxisAngle = function rotateAxisAngle (x, y, z, angle) {\n if ([x, y, z, angle].some(function (n) { return Number.isNaN(+n); })) {\n throw new TypeError('CSSMatrix: expecting 4 values');\n }\n return Multiply(this, RotateAxisAngle(x, y, z, angle));\n };\n\n /**\n * Specifies a skew transformation along the `x-axis` by the given angle.\n * This matrix is not modified.\n *\n * @param {number} angle The angle amount in degrees to skew.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.skewX = function skewX (angle) {\n return Multiply(this, SkewX(angle));\n };\n\n /**\n * Specifies a skew transformation along the `y-axis` by the given angle.\n * This matrix is not modified.\n *\n * @param {number} angle The angle amount in degrees to skew.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.skewY = function skewY (angle) {\n return Multiply(this, SkewY(angle));\n };\n\n /**\n * Specifies a skew transformation along both the `x-axis` and `y-axis`.\n * This matrix is not modified.\n *\n * @param {number} angleX The X-angle amount in degrees to skew.\n * @param {number} angleY The angle amount in degrees to skew.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.skew = function skew (angleX, angleY) {\n return Multiply(this, Skew(angleX, angleY));\n };\n\n /**\n * Transforms a specified vector using the matrix, returning a new\n * {x,y,z,w} Tuple *Object* comprising the transformed vector.\n * Neither the matrix nor the original vector are altered.\n *\n * The method is equivalent with `transformPoint()` method\n * of the `DOMMatrix` constructor.\n *\n * @param {CSSM.PointTuple | DOMPoint} t Tuple with `{x,y,z,w}` components\n * @return {CSSM.PointTuple | DOMPoint} the resulting Tuple\n */\n CSSMatrix.prototype.transformPoint = function transformPoint (t) {\n var m = this;\n\n var x = m.m11 * t.x + m.m21 * t.y + m.m31 * t.z + m.m41 * t.w;\n var y = m.m12 * t.x + m.m22 * t.y + m.m32 * t.z + m.m42 * t.w;\n var z = m.m13 * t.x + m.m23 * t.y + m.m33 * t.z + m.m43 * t.w;\n var w = m.m14 * t.x + m.m24 * t.y + m.m34 * t.z + m.m44 * t.w;\n\n return t instanceof DOMPoint\n ? new DOMPoint(x, y, z, w)\n : {\n x: x, y: y, z: z, w: w,\n };\n };\n\n Object.defineProperties( CSSMatrix.prototype, prototypeAccessors );\n\n // Add Transform Functions to CSSMatrix object\n // without creating a TypeScript namespace.\n Object.assign(CSSMatrix, {\n Translate: Translate,\n Rotate: Rotate,\n RotateAxisAngle: RotateAxisAngle,\n Scale: Scale,\n SkewX: SkewX,\n SkewY: SkewY,\n Skew: Skew,\n Multiply: Multiply,\n fromArray: fromArray,\n fromMatrix: fromMatrix,\n fromString: fromString,\n toArray: toArray,\n });\n\n var version = \"1.0.3\";\n\n /**\n * A global namespace for library version.\n * @type {string}\n */\n var Version = version;\n\n /** @typedef {import('../types/index')} */\n\n Object.assign(CSSMatrix, { Version: Version });\n\n return CSSMatrix;\n\n}));\n","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// <reference lib=\"es2015.symbol\" />\n var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n function (description) { return \"Symbol(\" + description + \")\"; };\n\n /// <reference lib=\"dom\" />\n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n var globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n var rethrowAssertionErrorRejection = noop;\n\n var originalPromise = Promise;\n var originalPromiseThen = Promise.prototype.then;\n var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n var originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n var queueMicrotask = (function () {\n var globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n var resolvedPromise = promiseResolvedWith(undefined);\n return function (fn) { return PerformPromiseThen(resolvedPromise, fn); };\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n var QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n var SimpleQueue = /** @class */ (function () {\n function SimpleQueue() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n SimpleQueue.prototype.push = function (element) {\n var oldBack = this._back;\n var newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n };\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n var oldFront = this._front;\n var newFront = oldFront;\n var oldCursor = this._cursor;\n var newCursor = oldCursor + 1;\n var elements = oldFront._elements;\n var element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n };\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n SimpleQueue.prototype.forEach = function (callback) {\n var i = this._cursor;\n var node = this._front;\n var elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n };\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n var front = this._front;\n var cursor = this._cursor;\n return front._elements[cursor];\n };\n return SimpleQueue;\n }());\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n var NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n var MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(context + \" is not a function.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(\"Parameter \" + position + \" is required in '\" + context + \"'.\");\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(field + \" is required in '\" + context + \"'.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n var lowerBound = 0;\n var upperBound = Number.MAX_SAFE_INTEGER;\n var x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(context + \" is not a finite number\");\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(context + \" is outside the accepted range of \" + lowerBound + \" to \" + upperBound + \", inclusive\");\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(context + \" is not a ReadableStream.\");\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamDefaultReader = /** @class */ (function () {\n function ReadableStreamDefaultReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamDefaultReader.prototype.read = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function () { return resolvePromise({ value: undefined, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamDefaultReader;\n }());\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var _a;\n var AsyncIteratorPrototype;\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n AsyncIteratorPrototype = (_a = {},\n // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n _a[SymbolPolyfill.asyncIterator] = function () {\n return this;\n },\n _a);\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var ReadableStreamAsyncIteratorImpl = /** @class */ (function () {\n function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n var _this = this;\n var nextSteps = function () { return _this._nextSteps(); };\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n };\n ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n var _this = this;\n var returnSteps = function () { return _this._returnSteps(value); };\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n };\n ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n var _this = this;\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) {\n _this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(function () { return resolvePromise({ value: chunk, done: false }); });\n },\n _closeSteps: function () {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: function (reason) {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n };\n ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n if (this._isFinished) {\n return Promise.resolve({ value: value, done: true });\n }\n this._isFinished = true;\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n var result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, function () { return ({ value: value, done: true }); });\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value: value, done: true });\n };\n return ReadableStreamAsyncIteratorImpl;\n }());\n var ReadableStreamAsyncIteratorPrototype = {\n next: function () {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return: function (value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n }\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n var NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n var length = end - begin;\n var slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n var buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n var pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n var ReadableStreamBYOBRequest = /** @class */ (function () {\n function ReadableStreamBYOBRequest() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get: function () {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n };\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n };\n return ReadableStreamBYOBRequest;\n }());\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableByteStreamController = /** @class */ (function () {\n function ReadableByteStreamController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableByteStreamController.prototype.close = function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n }\n ReadableByteStreamControllerClose(this);\n };\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableByteStreamController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n };\n /** @internal */\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n };\n return ReadableByteStreamController;\n }());\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n var done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue.peek();\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n var stream = controller._controlledReadableByteStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n // try {\n var buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n var stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n var viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n var controller = Object.create(ReadableByteStreamController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = function () { return underlyingByteSource.start(controller); };\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingByteSource.pull(controller); };\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingByteSource.cancel(reason); };\n }\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamBYOBReader = /** @class */ (function () {\n function ReadableStreamBYOBReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamBYOBReader.prototype.read = function (view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readIntoRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function (chunk) { return resolvePromise({ value: chunk, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamBYOBReader;\n }());\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n var highWaterMark = strategy.highWaterMark;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n var size = strategy.size;\n if (!size) {\n return function () { return 1; };\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n var size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, context + \" has member 'size' that\")\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return function (chunk) { return convertUnrestrictedDouble(fn(chunk)); };\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n var abort = original === null || original === void 0 ? void 0 : original.abort;\n var close = original === null || original === void 0 ? void 0 : original.close;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n var write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, context + \" has member 'abort' that\"),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, context + \" has member 'close' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, context + \" has member 'start' that\"),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, context + \" has member 'write' that\"),\n type: type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return function () { return promiseCall(fn, original, []); };\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(context + \" is not a WritableStream.\");\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n var supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n var WritableStream = /** @class */ (function () {\n function WritableStream(rawUnderlyingSink, rawStrategy) {\n if (rawUnderlyingSink === void 0) { rawUnderlyingSink = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n Object.defineProperty(WritableStream.prototype, \"locked\", {\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get: function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n WritableStream.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n };\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n WritableStream.prototype.close = function () {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n };\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n WritableStream.prototype.getWriter = function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n };\n return WritableStream;\n }());\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n var controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n var promise = newPromise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n }\n var promise = newPromise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n var writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n var promise = newPromise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n var controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n var storedError = stream._storedError;\n stream._writeRequests.forEach(function (writeRequest) {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n var WritableStreamDefaultWriter = /** @class */ (function () {\n function WritableStreamDefaultWriter(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n };\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n WritableStreamDefaultWriter.prototype.close = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n };\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n };\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n };\n return WritableStreamDefaultWriter;\n }());\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n var WritableStreamDefaultController = /** @class */ (function () {\n function WritableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(WritableStreamDefaultController.prototype, \"abortReason\", {\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultController.prototype, \"signal\", {\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n WritableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n var result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n ResetQueue(this);\n };\n return WritableStreamDefaultController;\n }());\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n var startResult = startAlgorithm();\n var startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, function () {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (r) {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(WritableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var writeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var closeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var abortAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSink.start !== undefined) {\n startAlgorithm = function () { return underlyingSink.start(controller); };\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = function (chunk) { return underlyingSink.write(chunk, controller); };\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = function () { return underlyingSink.close(); };\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = function (reason) { return underlyingSink.abort(reason); };\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n var sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(\"WritableStreamDefaultController.prototype.\" + name + \" can only be used on a WritableStreamDefaultController\");\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// <reference lib=\"dom\" />\n var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// <reference types=\"node\" />\n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n var ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n var reader = AcquireReadableStreamDefaultReader(source);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n var shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = promiseResolvedWith(undefined);\n return newPromise(function (resolve, reject) {\n var abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = function () {\n var error = new DOMException$1('Aborted', 'AbortError');\n var actions = [];\n if (!preventAbort) {\n actions.push(function () {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(function () {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise(function (resolveLoop, rejectLoop) {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, function () {\n return newPromise(function (resolveRead, rejectRead) {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: function (chunk) {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: function () { return resolveRead(true); },\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n if (!preventAbort) {\n shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, function () {\n if (!preventClose) {\n shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n }\n else {\n shutdown(true, destClosed_1);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableStreamDefaultController = /** @class */ (function () {\n function ReadableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableStreamDefaultController.prototype.close = function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n };\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n };\n return ReadableStreamDefaultController;\n }());\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n var chunkSize = void 0;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n var state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSource.start !== undefined) {\n startAlgorithm = function () { return underlyingSource.start(controller); };\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingSource.pull(controller); };\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingSource.cancel(reason); };\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgain = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var readRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgain = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, function (r) {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgainForBranch1 = false;\n var readAgainForBranch2 = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, function (r) {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n var readRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n var byobBranch = forBranch2 ? branch2 : branch1;\n var otherBranch = forBranch2 ? branch1 : branch2;\n var readIntoRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n var clonedChunk = void 0;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function (chunk) {\n reading = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n var original = source;\n var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n var pull = original === null || original === void 0 ? void 0 : original.pull;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, context + \" has member 'autoAllocateChunkSize' that\"),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, context + \" has member 'cancel' that\"),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, context + \" has member 'pull' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, context + \" has member 'start' that\"),\n type: type === undefined ? undefined : convertReadableStreamType(type, context + \" has member 'type' that\")\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertReadableStreamType(type, context) {\n type = \"\" + type;\n if (type !== 'bytes') {\n throw new TypeError(context + \" '\" + type + \"' is not a valid enumeration value for ReadableStreamType\");\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n var mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, context + \" has member 'mode' that\")\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = \"\" + mode;\n if (mode !== 'byob') {\n throw new TypeError(context + \" '\" + mode + \"' is not a valid enumeration value for ReadableStreamReaderMode\");\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n var signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, context + \" has member 'signal' that\");\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal: signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(context + \" is not an AbortSignal.\");\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, context + \" has member 'readable' that\");\n var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, context + \" has member 'writable' that\");\n return { readable: readable, writable: writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n var ReadableStream = /** @class */ (function () {\n function ReadableStream(rawUnderlyingSource, rawStrategy) {\n if (rawUnderlyingSource === void 0) { rawUnderlyingSource = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n var highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get: function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n ReadableStream.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n };\n ReadableStream.prototype.getReader = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n var options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n };\n ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n var options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n };\n ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n }\n var options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n };\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n ReadableStream.prototype.tee = function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n var branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n };\n ReadableStream.prototype.values = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n var options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n };\n return ReadableStream;\n }());\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n var reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n var byteLengthSizeFunction = function (chunk) {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n var ByteLengthQueuingStrategy = /** @class */ (function () {\n function ByteLengthQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return ByteLengthQueuingStrategy;\n }());\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(\"ByteLengthQueuingStrategy.prototype.\" + name + \" can only be used on a ByteLengthQueuingStrategy\");\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n var countSizeFunction = function () {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n var CountQueuingStrategy = /** @class */ (function () {\n function CountQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return CountQueuingStrategy;\n }());\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(\"CountQueuingStrategy.prototype.\" + name + \" can only be used on a CountQueuingStrategy\");\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n var flush = original === null || original === void 0 ? void 0 : original.flush;\n var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var transform = original === null || original === void 0 ? void 0 : original.transform;\n var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, context + \" has member 'flush' that\"),\n readableType: readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, context + \" has member 'start' that\"),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, context + \" has member 'transform' that\"),\n writableType: writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n var TransformStream = /** @class */ (function () {\n function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n if (rawTransformer === void 0) { rawTransformer = {}; }\n if (rawWritableStrategy === void 0) { rawWritableStrategy = {}; }\n if (rawReadableStrategy === void 0) { rawReadableStrategy = {}; }\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n var transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n var startPromise_resolve;\n var startPromise = newPromise(function (resolve) {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n Object.defineProperty(TransformStream.prototype, \"readable\", {\n /**\n * The readable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TransformStream.prototype, \"writable\", {\n /**\n * The writable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n },\n enumerable: false,\n configurable: true\n });\n return TransformStream;\n }());\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(function (resolve) {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n var TransformStreamDefaultController = /** @class */ (function () {\n function TransformStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get: function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n },\n enumerable: false,\n configurable: true\n });\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n TransformStreamDefaultController.prototype.error = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n };\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n TransformStreamDefaultController.prototype.terminate = function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n };\n return TransformStreamDefaultController;\n }());\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n var controller = Object.create(TransformStreamDefaultController.prototype);\n var transformAlgorithm = function (chunk) {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n var flushAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (transformer.transform !== undefined) {\n transformAlgorithm = function (chunk) { return transformer.transform(chunk, controller); };\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = function () { return transformer.flush(controller); };\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n var transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, function (r) {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n var error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n var controller = stream._transformStreamController;\n if (stream._backpressure) {\n var backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, function () {\n var writable = stream._writable;\n var state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n var readable = stream._readable;\n var controller = stream._transformStreamController;\n var flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, function () {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, function (r) {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(2);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url) {\n let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!url) {\n return null;\n }\n\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n\n for (const [key, value] of map) {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n return false;\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n static scaleMinMax(transform, minMax) {\n let temp;\n\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n if (xLow > xHigh) {\n return null;\n }\n\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n\n const strBuf = [];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate() {\n let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(3);\n\nif (!globalThis._pdfjsCompatibilityChecked) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n (function checkNodeBtoa() {\n if (globalThis.btoa || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.btoa = function (chars) {\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n (function checkNodeAtob() {\n if (globalThis.atob || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.atob = function (input) {\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.DOMMatrix = require(\"dommatrix/dist/dommatrix.js\");\n })();\n\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !_is_node.isNodeJS) {\n return;\n }\n\n globalThis.ReadableStream = require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n })();\n\n (function checkArrayAt() {\n if (Array.prototype.at) {\n return;\n }\n\n __w_pdfjs_require__(4);\n })();\n\n (function checkTypedArrayAt() {\n if (Uint8Array.prototype.at) {\n return;\n }\n\n __w_pdfjs_require__(76);\n })();\n\n (function checkStructuredClone() {\n if (globalThis.structuredClone) {\n return;\n }\n\n __w_pdfjs_require__(86);\n })();\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 4 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(5);\nvar entryUnbind = __w_pdfjs_require__(75);\nmodule.exports = entryUnbind('Array', 'at');\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar toObject = __w_pdfjs_require__(41);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar addToUnscopables = __w_pdfjs_require__(70);\n$({\n target: 'Array',\n proto: true\n}, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return k < 0 || k >= len ? undefined : O[k];\n }\n});\naddToUnscopables('at');\n\n/***/ }),\n/* 6 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar getOwnPropertyDescriptor = (__w_pdfjs_require__(8).f);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nvar copyConstructorProperties = __w_pdfjs_require__(57);\nvar isForced = __w_pdfjs_require__(69);\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target)\n for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else\n targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty)\n continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n/***/ }),\n/* 7 */\n/***/ ((module) => {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\nmodule.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || (function () {\n return this;\n}());\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar call = __w_pdfjs_require__(11);\nvar propertyIsEnumerableModule = __w_pdfjs_require__(13);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar hasOwn = __w_pdfjs_require__(40);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(43);\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE)\n try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n }\n if (hasOwn(O, P))\n return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n/***/ }),\n/* 9 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n get: function () {\n return 7;\n }\n })[1] != 7;\n});\n\n/***/ }),\n/* 10 */\n/***/ ((module) => {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n/***/ }),\n/* 11 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n/***/ }),\n/* 12 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n var test = function () {\n }.bind();\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n/***/ }),\n/* 14 */\n/***/ ((module) => {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n/***/ }),\n/* 15 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IndexedObject = __w_pdfjs_require__(16);\nvar requireObjectCoercible = __w_pdfjs_require__(19);\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n/***/ }),\n/* 16 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar classof = __w_pdfjs_require__(18);\nvar $Object = Object;\nvar split = uncurryThis(''.split);\nmodule.exports = fails(function () {\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n/***/ }),\n/* 17 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n\n/***/ }),\n/* 18 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n/***/ }),\n/* 19 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (it) {\n if (it == undefined)\n throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 20 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toPrimitive = __w_pdfjs_require__(21);\nvar isSymbol = __w_pdfjs_require__(24);\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n/***/ }),\n/* 21 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar isObject = __w_pdfjs_require__(22);\nvar isSymbol = __w_pdfjs_require__(24);\nvar getMethod = __w_pdfjs_require__(31);\nvar ordinaryToPrimitive = __w_pdfjs_require__(34);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input))\n return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined)\n pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result))\n return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined)\n pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n/***/ }),\n/* 22 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n/***/ }),\n/* 23 */\n/***/ ((module) => {\n\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n\n/***/ }),\n/* 24 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar isCallable = __w_pdfjs_require__(23);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(27);\nvar $Object = Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n/***/ }),\n/* 25 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n/***/ }),\n/* 26 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n/***/ }),\n/* 27 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_SYMBOL = __w_pdfjs_require__(28);\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n\n/***/ }),\n/* 28 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar V8_VERSION = __w_pdfjs_require__(29);\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n/***/ }),\n/* 29 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar userAgent = __w_pdfjs_require__(30);\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match)\n version = +match[1];\n }\n}\nmodule.exports = version;\n\n/***/ }),\n/* 30 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n/***/ }),\n/* 31 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar aCallable = __w_pdfjs_require__(32);\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n\n/***/ }),\n/* 32 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar tryToString = __w_pdfjs_require__(33);\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isCallable(argument))\n return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n/***/ }),\n/* 33 */\n/***/ ((module) => {\n\nvar $String = String;\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n/***/ }),\n/* 34 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar $TypeError = TypeError;\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input)))\n return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 35 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar shared = __w_pdfjs_require__(36);\nvar hasOwn = __w_pdfjs_require__(40);\nvar uid = __w_pdfjs_require__(42);\nvar NATIVE_SYMBOL = __w_pdfjs_require__(28);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(27);\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n return WellKnownSymbolsStore[name];\n};\n\n/***/ }),\n/* 36 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(37);\nvar store = __w_pdfjs_require__(38);\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n/***/ }),\n/* 37 */\n/***/ ((module) => {\n\nmodule.exports = false;\n\n/***/ }),\n/* 38 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\nmodule.exports = store;\n\n/***/ }),\n/* 39 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar defineProperty = Object.defineProperty;\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global[key] = value;\n }\n return value;\n};\n\n/***/ }),\n/* 40 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar toObject = __w_pdfjs_require__(41);\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n/***/ }),\n/* 41 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar requireObjectCoercible = __w_pdfjs_require__(19);\nvar $Object = Object;\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n/***/ }),\n/* 42 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n/***/ }),\n/* 43 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fails = __w_pdfjs_require__(10);\nvar createElement = __w_pdfjs_require__(44);\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 44 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isObject = __w_pdfjs_require__(22);\nvar document = global.document;\nvar EXISTS = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 45 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 46 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(43);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(47);\nvar anObject = __w_pdfjs_require__(48);\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar $TypeError = TypeError;\nvar $defineProperty = Object.defineProperty;\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n }\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE)\n try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n }\n if ('get' in Attributes || 'set' in Attributes)\n throw $TypeError('Accessors not supported');\n if ('value' in Attributes)\n O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 47 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = DESCRIPTORS && fails(function () {\n return Object.defineProperty(function () {\n }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n\n/***/ }),\n/* 48 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isObject = __w_pdfjs_require__(22);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isObject(argument))\n return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n\n/***/ }),\n/* 49 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar makeBuiltIn = __w_pdfjs_require__(50);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nmodule.exports = function (O, key, value, options) {\n if (!options)\n options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value))\n makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple)\n O[key] = value;\n else\n defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe)\n delete O[key];\n else if (O[key])\n simple = true;\n } catch (error) {\n }\n if (simple)\n O[key] = value;\n else\n definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n }\n return O;\n};\n\n/***/ }),\n/* 50 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar hasOwn = __w_pdfjs_require__(40);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(51).CONFIGURABLE);\nvar inspectSource = __w_pdfjs_require__(52);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar defineProperty = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () {\n }, 'length', { value: 8 }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter)\n name = 'get ' + name;\n if (options && options.setter)\n name = 'set ' + name;\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n if (DESCRIPTORS)\n defineProperty(value, 'name', {\n value: name,\n configurable: true\n });\n else\n value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS)\n defineProperty(value, 'prototype', { writable: false });\n } else if (value.prototype)\n value.prototype = undefined;\n } catch (error) {\n }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n return value;\n};\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n/***/ }),\n/* 51 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar hasOwn = __w_pdfjs_require__(40);\nvar FunctionPrototype = Function.prototype;\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\nvar PROPER = EXISTS && function something() {\n}.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n/***/ }),\n/* 52 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isCallable = __w_pdfjs_require__(23);\nvar store = __w_pdfjs_require__(38);\nvar functionToString = uncurryThis(Function.toString);\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\nmodule.exports = store.inspectSource;\n\n/***/ }),\n/* 53 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_WEAK_MAP = __w_pdfjs_require__(54);\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isObject = __w_pdfjs_require__(22);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar hasOwn = __w_pdfjs_require__(40);\nvar shared = __w_pdfjs_require__(38);\nvar sharedKey = __w_pdfjs_require__(55);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n return state;\n };\n};\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it))\n throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE))\n throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n/***/ }),\n/* 54 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar inspectSource = __w_pdfjs_require__(52);\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n/***/ }),\n/* 55 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar shared = __w_pdfjs_require__(36);\nvar uid = __w_pdfjs_require__(42);\nvar keys = shared('keys');\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n/***/ }),\n/* 56 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 57 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(40);\nvar ownKeys = __w_pdfjs_require__(58);\nvar getOwnPropertyDescriptorModule = __w_pdfjs_require__(8);\nvar definePropertyModule = __w_pdfjs_require__(46);\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n/***/ }),\n/* 58 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(59);\nvar getOwnPropertySymbolsModule = __w_pdfjs_require__(68);\nvar anObject = __w_pdfjs_require__(48);\nvar concat = uncurryThis([].concat);\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n/***/ }),\n/* 59 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(67);\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 60 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar hasOwn = __w_pdfjs_require__(40);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar indexOf = (__w_pdfjs_require__(61).indexOf);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar push = uncurryThis([].push);\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O)\n !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n while (names.length > i)\n if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n/***/ }),\n/* 61 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el)\n while (length > index) {\n value = O[index++];\n if (value != value)\n return true;\n }\n else\n for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el)\n return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\nmodule.exports = {\n includes: createMethod(true),\n indexOf: createMethod(false)\n};\n\n/***/ }),\n/* 62 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n/***/ }),\n/* 63 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar trunc = __w_pdfjs_require__(64);\nmodule.exports = function (argument) {\n var number = +argument;\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n/***/ }),\n/* 64 */\n/***/ ((module) => {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n/***/ }),\n/* 65 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toLength = __w_pdfjs_require__(66);\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n/***/ }),\n/* 66 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar min = Math.min;\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0;\n};\n\n/***/ }),\n/* 67 */\n/***/ ((module) => {\n\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n/***/ }),\n/* 68 */\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 69 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar replacement = /#|\\.prototype\\./;\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;\n\n/***/ }),\n/* 70 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar create = __w_pdfjs_require__(71);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 71 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(48);\nvar definePropertiesModule = __w_pdfjs_require__(72);\nvar enumBugKeys = __w_pdfjs_require__(67);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar html = __w_pdfjs_require__(74);\nvar documentCreateElement = __w_pdfjs_require__(44);\nvar sharedKey = __w_pdfjs_require__(55);\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function () {\n};\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null;\n return temp;\n};\nvar NullProtoObjectViaIFrame = function () {\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n }\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);\n var length = enumBugKeys.length;\n while (length--)\n delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else\n result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n/***/ }),\n/* 72 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(47);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar anObject = __w_pdfjs_require__(48);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar objectKeys = __w_pdfjs_require__(73);\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index)\n definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n/***/ }),\n/* 73 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(67);\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 74 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n/***/ }),\n/* 75 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n\n/***/ }),\n/* 76 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(77);\n\n/***/ }),\n/* 77 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __w_pdfjs_require__(78);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return k < 0 || k >= len ? undefined : O[k];\n});\n\n/***/ }),\n/* 78 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __w_pdfjs_require__(79);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar hasOwn = __w_pdfjs_require__(40);\nvar classof = __w_pdfjs_require__(80);\nvar tryToString = __w_pdfjs_require__(33);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar uid = __w_pdfjs_require__(42);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\nvar isView = function isView(it) {\n if (!isObject(it))\n return false;\n var klass = classof(it);\n return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto))\n return;\n var state = getInternalState(proto);\n return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\nvar isTypedArray = function (it) {\n if (!isObject(it))\n return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar aTypedArray = function (it) {\n if (isTypedArray(it))\n return it;\n throw TypeError('Target is not a typed array');\n};\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C)))\n return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS)\n return;\n if (forced)\n for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY))\n try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) {\n }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS)\n return;\n if (setPrototypeOf) {\n if (forced)\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY))\n try {\n delete TypedArrayConstructor[KEY];\n } catch (error) {\n }\n }\n if (!TypedArray[KEY] || forced) {\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) {\n }\n } else\n return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else\n NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME])\n setPrototypeOf(global[NAME], TypedArray);\n }\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME])\n setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList)\n if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n/***/ }),\n/* 79 */\n/***/ ((module) => {\n\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n/***/ }),\n/* 80 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar isCallable = __w_pdfjs_require__(23);\nvar classofRaw = __w_pdfjs_require__(18);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\nvar CORRECT_ARGUMENTS = classofRaw((function () {\n return arguments;\n}())) == 'Arguments';\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) {\n }\n};\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n/***/ }),\n/* 81 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';\n\n/***/ }),\n/* 82 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(40);\nvar isCallable = __w_pdfjs_require__(23);\nvar toObject = __w_pdfjs_require__(41);\nvar sharedKey = __w_pdfjs_require__(55);\nvar CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(83);\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO))\n return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n }\n return object instanceof $Object ? ObjectPrototype : null;\n};\n\n/***/ }),\n/* 83 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n function F() {\n }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n/***/ }),\n/* 84 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar anObject = __w_pdfjs_require__(48);\nvar aPossiblePrototype = __w_pdfjs_require__(85);\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER)\n setter(O, proto);\n else\n O.__proto__ = proto;\n return O;\n };\n}()) : undefined);\n\n/***/ }),\n/* 85 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument))\n return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n/***/ }),\n/* 86 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(87);\n__w_pdfjs_require__(93);\n__w_pdfjs_require__(95);\n__w_pdfjs_require__(117);\n__w_pdfjs_require__(119);\nvar path = __w_pdfjs_require__(128);\nmodule.exports = path.structuredClone;\n\n/***/ }),\n/* 87 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar addToUnscopables = __w_pdfjs_require__(70);\nvar Iterators = __w_pdfjs_require__(88);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar defineIterator = __w_pdfjs_require__(89);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n index: 0,\n kind: kind\n });\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n if (kind == 'keys')\n return {\n value: index,\n done: false\n };\n if (kind == 'values')\n return {\n value: target[index],\n done: false\n };\n return {\n value: [\n index,\n target[index]\n ],\n done: false\n };\n}, 'values');\nvar values = Iterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values')\n try {\n defineProperty(values, 'name', { value: 'values' });\n } catch (error) {\n }\n\n/***/ }),\n/* 88 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 89 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar call = __w_pdfjs_require__(11);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar FunctionName = __w_pdfjs_require__(51);\nvar isCallable = __w_pdfjs_require__(23);\nvar createIteratorConstructor = __w_pdfjs_require__(90);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar Iterators = __w_pdfjs_require__(88);\nvar IteratorsCore = __w_pdfjs_require__(91);\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator)\n return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)\n return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n return function () {\n return new IteratorConstructor(this);\n };\n };\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE)\n Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() {\n return call(nativeIterator, this);\n };\n }\n }\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED)\n for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n }\n else\n $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n return methods;\n};\n\n/***/ }),\n/* 90 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar IteratorPrototype = (__w_pdfjs_require__(91).IteratorPrototype);\nvar create = __w_pdfjs_require__(71);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar Iterators = __w_pdfjs_require__(88);\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n/***/ }),\n/* 91 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar create = __w_pdfjs_require__(71);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\nif ([].keys) {\n arrayIterator = [].keys();\n if (!('next' in arrayIterator))\n BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype)\n IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE)\n IteratorPrototype = {};\nelse if (IS_PURE)\n IteratorPrototype = create(IteratorPrototype);\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n/***/ }),\n/* 92 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar hasOwn = __w_pdfjs_require__(40);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC)\n target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n};\n\n/***/ }),\n/* 93 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar toString = __w_pdfjs_require__(94);\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n/***/ }),\n/* 94 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar classof = __w_pdfjs_require__(80);\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n/***/ }),\n/* 95 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(96);\n\n/***/ }),\n/* 96 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(97);\nvar collectionStrong = __w_pdfjs_require__(114);\ncollection('Map', function (init) {\n return function Map() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 97 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isForced = __w_pdfjs_require__(69);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar InternalMetadataModule = __w_pdfjs_require__(98);\nvar iterate = __w_pdfjs_require__(105);\nvar anInstance = __w_pdfjs_require__(111);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar fails = __w_pdfjs_require__(10);\nvar checkCorrectnessOfIteration = __w_pdfjs_require__(112);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar inheritIfRequired = __w_pdfjs_require__(113);\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n });\n };\n var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })));\n if (REPLACE) {\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n var THROWS_ON_PRIMITIVES = fails(function () {\n instance.has(1);\n });\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {\n new NativeConstructor(iterable);\n });\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--)\n $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined)\n iterate(iterable, that[ADDER], {\n that: that,\n AS_ENTRIES: IS_MAP\n });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING)\n fixMethod(ADDER);\n if (IS_WEAK && NativePrototype.clear)\n delete NativePrototype.clear;\n }\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({\n global: true,\n constructor: true,\n forced: Constructor != NativeConstructor\n }, exported);\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n if (!IS_WEAK)\n common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n return Constructor;\n};\n\n/***/ }),\n/* 98 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar $ = __w_pdfjs_require__(6);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar isObject = __w_pdfjs_require__(22);\nvar hasOwn = __w_pdfjs_require__(40);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(59);\nvar getOwnPropertyNamesExternalModule = __w_pdfjs_require__(99);\nvar isExtensible = __w_pdfjs_require__(102);\nvar uid = __w_pdfjs_require__(42);\nvar FREEZING = __w_pdfjs_require__(104);\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, {\n value: {\n objectID: 'O' + id++,\n weakData: {}\n }\n });\n};\nvar fastKey = function (it, create) {\n if (!isObject(it))\n return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n if (!isExtensible(it))\n return 'F';\n if (!create)\n return 'E';\n setMetadata(it);\n }\n return it[METADATA].objectID;\n};\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n if (!isExtensible(it))\n return true;\n if (!create)\n return false;\n setMetadata(it);\n }\n return it[METADATA].weakData;\n};\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA))\n setMetadata(it);\n return it;\n};\nvar enable = function () {\n meta.enable = function () {\n };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n }\n return result;\n };\n $({\n target: 'Object',\n stat: true,\n forced: true\n }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f });\n }\n};\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\nhiddenKeys[METADATA] = true;\n\n/***/ }),\n/* 99 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(18);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar $getOwnPropertyNames = (__w_pdfjs_require__(59).f);\nvar arraySlice = __w_pdfjs_require__(100);\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n/***/ }),\n/* 100 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar createProperty = __w_pdfjs_require__(101);\nvar $Array = Array;\nvar max = Math.max;\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++)\n createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n\n/***/ }),\n/* 101 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object)\n definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else\n object[propertyKey] = value;\n};\n\n/***/ }),\n/* 102 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isObject = __w_pdfjs_require__(22);\nvar classof = __w_pdfjs_require__(18);\nvar ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(103);\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () {\n $isExtensible(1);\n});\nmodule.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) {\n if (!isObject(it))\n return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer')\n return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n\n/***/ }),\n/* 103 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n if (Object.isExtensible(buffer))\n Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n\n/***/ }),\n/* 104 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n\n/***/ }),\n/* 105 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar bind = __w_pdfjs_require__(106);\nvar call = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(48);\nvar tryToString = __w_pdfjs_require__(33);\nvar isArrayIteratorMethod = __w_pdfjs_require__(107);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar getIterator = __w_pdfjs_require__(108);\nvar getIteratorMethod = __w_pdfjs_require__(109);\nvar iteratorClose = __w_pdfjs_require__(110);\nvar $TypeError = TypeError;\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\nvar ResultPrototype = Result.prototype;\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n var stop = function (condition) {\n if (iterator)\n iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n }\n return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn)\n throw $TypeError(tryToString(iterable) + ' is not iterable');\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result))\n return result;\n }\n return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result))\n return result;\n }\n return new Result(false);\n};\n\n/***/ }),\n/* 106 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar aCallable = __w_pdfjs_require__(32);\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar bind = uncurryThis(uncurryThis.bind);\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 107 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar Iterators = __w_pdfjs_require__(88);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n/***/ }),\n/* 108 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar aCallable = __w_pdfjs_require__(32);\nvar anObject = __w_pdfjs_require__(48);\nvar tryToString = __w_pdfjs_require__(33);\nvar getIteratorMethod = __w_pdfjs_require__(109);\nvar $TypeError = TypeError;\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod))\n return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n/***/ }),\n/* 109 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(80);\nvar getMethod = __w_pdfjs_require__(31);\nvar Iterators = __w_pdfjs_require__(88);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar ITERATOR = wellKnownSymbol('iterator');\nmodule.exports = function (it) {\n if (it != undefined)\n return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 110 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(48);\nvar getMethod = __w_pdfjs_require__(31);\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw')\n throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw')\n throw value;\n if (innerError)\n throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n/***/ }),\n/* 111 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar $TypeError = TypeError;\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it))\n return it;\n throw $TypeError('Incorrect invocation');\n};\n\n/***/ }),\n/* 112 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n} catch (error) {\n}\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING)\n return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) {\n }\n return ITERATION_SUPPORT;\n};\n\n/***/ }),\n/* 113 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype)\n setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n/***/ }),\n/* 114 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar create = __w_pdfjs_require__(71);\nvar defineBuiltIns = __w_pdfjs_require__(115);\nvar bind = __w_pdfjs_require__(106);\nvar anInstance = __w_pdfjs_require__(111);\nvar iterate = __w_pdfjs_require__(105);\nvar defineIterator = __w_pdfjs_require__(89);\nvar setSpecies = __w_pdfjs_require__(116);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fastKey = (__w_pdfjs_require__(98).fastKey);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS)\n that.size = 0;\n if (iterable != undefined)\n iterate(iterable, that[ADDER], {\n that: that,\n AS_ENTRIES: IS_MAP\n });\n });\n var Prototype = Constructor.prototype;\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n if (entry) {\n entry.value = value;\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first)\n state.first = entry;\n if (previous)\n previous.next = entry;\n if (DESCRIPTORS)\n state.size++;\n else\n that.size++;\n if (index !== 'F')\n state.index[index] = entry;\n }\n return that;\n };\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n var index = fastKey(key);\n var entry;\n if (index !== 'F')\n return state.index[index];\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key)\n return entry;\n }\n };\n defineBuiltIns(Prototype, {\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous)\n entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS)\n state.size = 0;\n else\n that.size = 0;\n },\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev)\n prev.next = next;\n if (next)\n next.previous = prev;\n if (state.first == entry)\n state.first = next;\n if (state.last == entry)\n state.last = prev;\n if (DESCRIPTORS)\n state.size--;\n else\n that.size--;\n }\n return !!entry;\n },\n forEach: function forEach(callbackfn) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n while (entry && entry.removed)\n entry = entry.previous;\n }\n },\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n defineBuiltIns(Prototype, IS_MAP ? {\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS)\n defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n while (entry && entry.removed)\n entry = entry.previous;\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n if (kind == 'keys')\n return {\n value: entry.key,\n done: false\n };\n if (kind == 'values')\n return {\n value: entry.value,\n done: false\n };\n return {\n value: [\n entry.key,\n entry.value\n ],\n done: false\n };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n\n/***/ }),\n/* 115 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineBuiltIn = __w_pdfjs_require__(49);\nmodule.exports = function (target, src, options) {\n for (var key in src)\n defineBuiltIn(target, key, src[key], options);\n return target;\n};\n\n/***/ }),\n/* 116 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar SPECIES = wellKnownSymbol('species');\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () {\n return this;\n }\n });\n }\n};\n\n/***/ }),\n/* 117 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(118);\n\n/***/ }),\n/* 118 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(97);\nvar collectionStrong = __w_pdfjs_require__(114);\ncollection('Set', function (init) {\n return function Set() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 119 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(37);\nvar $ = __w_pdfjs_require__(6);\nvar global = __w_pdfjs_require__(7);\nvar getBuiltin = __w_pdfjs_require__(25);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar uid = __w_pdfjs_require__(42);\nvar isCallable = __w_pdfjs_require__(23);\nvar isConstructor = __w_pdfjs_require__(120);\nvar isObject = __w_pdfjs_require__(22);\nvar isSymbol = __w_pdfjs_require__(24);\nvar iterate = __w_pdfjs_require__(105);\nvar anObject = __w_pdfjs_require__(48);\nvar classof = __w_pdfjs_require__(80);\nvar hasOwn = __w_pdfjs_require__(40);\nvar createProperty = __w_pdfjs_require__(101);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar validateArgumentsLength = __w_pdfjs_require__(121);\nvar getRegExpFlags = __w_pdfjs_require__(122);\nvar ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(124);\nvar V8 = __w_pdfjs_require__(29);\nvar IS_BROWSER = __w_pdfjs_require__(125);\nvar IS_DENO = __w_pdfjs_require__(126);\nvar IS_NODE = __w_pdfjs_require__(127);\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({\n a: error,\n b: error\n });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\nvar nativeStructuredClone = global.structuredClone;\nvar FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone);\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\nvar throwUnpolyfillable = function (type, kind) {\n throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value))\n throwUncloneable('Symbol');\n if (!isObject(value))\n return value;\n if (map) {\n if (mapHas(map, value))\n return mapGet(map, value);\n } else\n map = new Map();\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n if (!isObject(C))\n throwUnpolyfillable(type);\n cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map));\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else\n throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n C = global.DataTransfer;\n if (isConstructor(C)) {\n dataTransfer = new C();\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else\n throwUnpolyfillable(type);\n break;\n case 'ImageData':\n try {\n cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace });\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else\n throwUnpolyfillable(type);\n }\n break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else\n switch (type) {\n case 'BigInt':\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(booleanValueOf(value));\n break;\n case 'Number':\n cloned = Object(numberValueOf(value));\n break;\n case 'String':\n cloned = Object(stringValueOf(value));\n break;\n case 'Date':\n cloned = new Date(getTime(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n if (!C && typeof value.slice != 'function')\n throwUnpolyfillable(type);\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n break;\n case 'SharedArrayBuffer':\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n }\n break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n }\n break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n }\n break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone))\n throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n }\n break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n }\n break;\n case 'CryptoKey':\n case 'GPUCompilationMessage':\n case 'GPUCompilationInfo':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n default:\n throwUncloneable(type);\n }\n }\n mapSet(map, value, cloned);\n if (deep)\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n }\n break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n }\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n return cloned;\n};\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97)\n return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer))\n throw TypeError('Transfer option cannot be converted to a sequence');\n var transfer = [];\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length)\n mapSet(map, transfer[i], transferredArray[i++]);\n } else\n while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value))\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n type = classof(value);\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C))\n throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) {\n }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close))\n throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) {\n }\n break;\n case 'ArrayBuffer':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n if (transferred === undefined)\n throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n$({\n global: true,\n enumerable: true,\n sham: !PROPER_TRANSFER,\n forced: FORCED_REPLACEMENT\n}, {\n structuredClone: function structuredClone(value) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && arguments[1] != null ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n return structuredCloneInternal(value, map);\n }\n});\n\n/***/ }),\n/* 120 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar classof = __w_pdfjs_require__(80);\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar inspectSource = __w_pdfjs_require__(52);\nvar noop = function () {\n};\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument))\n return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument))\n return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n return false;\n }\n try {\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\nisConstructorLegacy.sham = true;\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n/***/ }),\n/* 121 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (passed, required) {\n if (passed < required)\n throw $TypeError('Not enough arguments');\n return passed;\n};\n\n/***/ }),\n/* 122 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar hasOwn = __w_pdfjs_require__(40);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar regExpFlags = __w_pdfjs_require__(123);\nvar RegExpPrototype = RegExp.prototype;\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags;\n};\n\n/***/ }),\n/* 123 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar anObject = __w_pdfjs_require__(48);\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices)\n result += 'd';\n if (that.global)\n result += 'g';\n if (that.ignoreCase)\n result += 'i';\n if (that.multiline)\n result += 'm';\n if (that.dotAll)\n result += 's';\n if (that.unicode)\n result += 'u';\n if (that.unicodeSets)\n result += 'v';\n if (that.sticky)\n result += 'y';\n return result;\n};\n\n/***/ }),\n/* 124 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error))\n return true;\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n\n/***/ }),\n/* 125 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_DENO = __w_pdfjs_require__(126);\nvar IS_NODE = __w_pdfjs_require__(127);\nmodule.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object';\n\n/***/ }),\n/* 126 */\n/***/ ((module) => {\n\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n\n/***/ }),\n/* 127 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(18);\nvar global = __w_pdfjs_require__(7);\nmodule.exports = classof(global.process) == 'process';\n\n/***/ }),\n/* 128 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nmodule.exports = global;\n\n/***/ }),\n/* 129 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _annotation_storage = __w_pdfjs_require__(130);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _font_loader = __w_pdfjs_require__(136);\n\nvar _canvas = __w_pdfjs_require__(137);\n\nvar _worker_options = __w_pdfjs_require__(140);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _message_handler = __w_pdfjs_require__(141);\n\nvar _metadata = __w_pdfjs_require__(142);\n\nvar _optional_content_config = __w_pdfjs_require__(143);\n\nvar _transport_stream = __w_pdfjs_require__(144);\n\nvar _xfa_text = __w_pdfjs_require__(145);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError(\"attempted to \" + action + \" private static field before its declaration\"); } }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory\n } = __w_pdfjs_require__(146);\n\n exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\" || src instanceof URL) {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, TypedArray, or parameter object.\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n (0, _util.warn)(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString();\n continue;\n }\n\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n case \"range\":\n rangeTransport = value;\n continue;\n\n case \"worker\":\n worker = value;\n continue;\n\n case \"data\":\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break;\n } else if (typeof value === \"string\") {\n params[key] = (0, _util.stringToBytes)(value);\n } else if (typeof value === \"object\" && value !== null && !isNaN(value.length)) {\n params[key] = new Uint8Array(value);\n } else if ((0, _util.isArrayBuffer)(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n }\n\n continue;\n }\n\n params[key] = value;\n }\n\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n\n if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n params.docBaseUrl = null;\n }\n\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _is_node.isNodeJS;\n }\n\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n }\n\n if (typeof params.ownerDocument !== \"object\" || params.ownerDocument === null) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) {\n let [workerId, networkStream] = _ref;\n\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n }\n\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.16.105',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n });\n\n if (source.data) {\n source.data = null;\n }\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n}\n\nclass PDFDocumentLoadingTask {\n constructor() {\n var _PDFDocumentLoadingTa, _PDFDocumentLoadingTa2;\n\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = `d${(_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n async destroy() {\n var _this$_transport;\n\n this.destroyed = true;\n await ((_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy());\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n }\n\n}\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nvar _docId = {\n writable: true,\n value: 0\n};\n\nclass PDFDataRangeTransport {\n constructor(length, initialData) {\n let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n return this.fingerprints[0];\n }\n\n });\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n return this.stats || {\n streamTypes: {},\n fontTypes: {}\n };\n }\n });\n }\n\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n get stats() {\n return this._transport.stats;\n }\n\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n cleanup() {\n let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n saveDocument() {\n if (this._transport.annotationStorage.size <= 0) {\n (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n\n return this._transport.saveDocument();\n }\n\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument) {\n let pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._bitmaps = new Set();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport() {\n let {\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations() {\n let {\n intent = \"display\"\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n if (!promise) {\n promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n return annotation.titleObj.str;\n }\n\n });\n }\n\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n return annotation.contentsObj.str;\n }\n\n });\n }\n }\n\n return annotations;\n });\n }\n\n return promise;\n }\n\n getJSActions() {\n return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex));\n }\n\n async getXfa() {\n var _this$_transport$_htm;\n\n return ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null;\n }\n\n render(_ref2) {\n var _arguments$, _arguments$2, _intentState;\n\n let {\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n } = _ref2;\n\n if (((_arguments$ = arguments[0]) === null || _arguments$ === void 0 ? void 0 : _arguments$.renderInteractiveForms) !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n }\n }\n\n if (((_arguments$2 = arguments[0]) === null || _arguments$2 === void 0 ? void 0 : _arguments$2.includeAnnotationStorage) !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(_ref3 => {\n let [transparency, optionalContentConfig] = _ref3;\n\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n let {\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n var _intentState2;\n\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent() {\n let {\n disableCombineTextItems = false,\n includeMarkedContent = false\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref4) {\n let {\n value,\n done\n } = _ref4;\n\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n getStructTree() {\n return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex));\n }\n\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intentState.opListReadCapability) {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup() {\n let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup() {\n let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList(_ref5) {\n let {\n renderingIntent,\n cacheKey,\n annotationStorageMap\n } = _ref5;\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap\n });\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(_ref6 => {\n let {\n value,\n done\n } = _ref6;\n\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList(_ref7) {\n let {\n intentState,\n reason,\n force = false\n } = _ref7;\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers)\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n var _document, _document$currentScri;\n\n const pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src;\n\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\nclass PDFWorker {\n constructor() {\n let {\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (port && _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).delete(this._port);\n\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!(params !== null && params !== void 0 && params.port)) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (_classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).has(params.port)) {\n return _classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n var _globalThis$pdfjsWork;\n\n return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null;\n } catch (ex) {\n return null;\n }\n }\n\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = require(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n\n}\n\nexports.PDFWorker = PDFWorker;\nvar _workerPorts = {\n writable: true,\n value: new WeakMap()\n};\n{\n PDFWorker.getWorkerSrc = function () {\n (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n return this.workerSrc;\n };\n}\n\nvar _docStats = /*#__PURE__*/new WeakMap();\n\nvar _pageCache = /*#__PURE__*/new WeakMap();\n\nvar _pagePromises = /*#__PURE__*/new WeakMap();\n\nvar _metadataPromise = /*#__PURE__*/new WeakMap();\n\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n _classPrivateFieldInitSpec(this, _docStats, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _pageCache, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _pagePromises, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _metadataPromise, {\n writable: true,\n value: null\n });\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n get stats() {\n return _classPrivateFieldGet(this, _docStats);\n }\n\n getRenderingIntent(intent) {\n let annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE;\n let printAnnotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n let isOpList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationMap = null;\n\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n\n case \"display\":\n break;\n\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n\n case _util.AnnotationMode.ENABLE:\n break;\n\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationMap = annotationStorage.serializable;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,\n annotationStorageMap: annotationMap\n };\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n\n for (const page of _classPrivateFieldGet(this, _pageCache).values()) {\n waitOn.push(page._destroy());\n }\n\n _classPrivateFieldGet(this, _pageCache).clear();\n\n _classPrivateFieldGet(this, _pagePromises).clear();\n\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n\n _classPrivateFieldSet(this, _metadataPromise, null);\n\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function (_ref8) {\n let {\n value,\n done\n } = _ref8;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n var _loadingTask$onProgre;\n\n (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n var _loadingTask$onProgre2;\n\n (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, {\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function (_ref9) {\n let {\n value,\n done\n } = _ref9;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", _ref10 => {\n let {\n pdfInfo\n } = _ref10;\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({\n password\n });\n }\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n var _loadingTask$onProgre3;\n\n (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, {\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = _classPrivateFieldGet(this, _pageCache).get(data.pageIndex);\n\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", _ref11 => {\n var _globalThis$FontInspe;\n\n let [id, type, exportedData] = _ref11;\n\n if (this.destroyed) {\n return;\n }\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", _ref12 => {\n let [id, pageIndex, type, imageData] = _ref12;\n\n if (this.destroyed) {\n return;\n }\n\n const pageProxy = _classPrivateFieldGet(this, _pageCache).get(pageIndex);\n\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData) {\n let length;\n\n if (imageData.bitmap) {\n const {\n bitmap,\n width,\n height\n } = imageData;\n length = width * height * 4;\n\n pageProxy._bitmaps.add(bitmap);\n } else {\n var _imageData$data;\n\n length = ((_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) || 0;\n }\n\n if (length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n }\n\n break;\n\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n var _loadingTask$onProgre4;\n\n if (this.destroyed) {\n return;\n }\n\n (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, {\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return;\n }\n\n _classPrivateFieldSet(this, _docStats, Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes)\n }));\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.CMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.CMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.StandardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature(_ref13) {\n var _this$loadingTask$onU, _this$loadingTask;\n\n let {\n featureId\n } = _ref13;\n\n if (this.destroyed) {\n return;\n }\n\n (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId);\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n\n const pageIndex = pageNumber - 1,\n cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex);\n\n if (cachedPromise) {\n return cachedPromise;\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n\n _classPrivateFieldGet(this, _pageCache).set(pageIndex, page);\n\n return page;\n });\n\n _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise);\n\n return promise;\n }\n\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument() {\n var _this$_fullReader$fil, _this$_fullReader;\n\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: (_this$_fullReader$fil = (_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) !== null && _this$_fullReader$fil !== void 0 ? _this$_fullReader$fil : null\n }).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n }\n\n hasJSActions() {\n return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise(\"HasJSActions\", null));\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n var _this$_fullReader$fil2, _this$_fullReader2, _this$_fullReader$con, _this$_fullReader3;\n\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: (_this$_fullReader$fil2 = (_this$_fullReader2 = this._fullReader) === null || _this$_fullReader2 === void 0 ? void 0 : _this$_fullReader2.filename) !== null && _this$_fullReader$fil2 !== void 0 ? _this$_fullReader$fil2 : null,\n contentLength: (_this$_fullReader$con = (_this$_fullReader3 = this._fullReader) === null || _this$_fullReader3 === void 0 ? void 0 : _this$_fullReader3.contentLength) !== null && _this$_fullReader$con !== void 0 ? _this$_fullReader$con : null\n };\n }));\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n async startCleanup() {\n let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return;\n }\n\n for (const page of _classPrivateFieldGet(this, _pageCache).values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n _classPrivateFieldSet(this, _metadataPromise, null);\n\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa\n });\n }\n\n}\n\nvar _objs = /*#__PURE__*/new WeakMap();\n\nvar _ensureObj = /*#__PURE__*/new WeakSet();\n\nclass PDFObjects {\n constructor() {\n _classPrivateMethodInitSpec(this, _ensureObj);\n\n _classPrivateFieldInitSpec(this, _objs, {\n writable: true,\n value: Object.create(null)\n });\n }\n\n get(objId) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (callback) {\n const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId);\n\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n\n const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n if (!(obj !== null && obj !== void 0 && obj.capability.settled)) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n return (obj === null || obj === void 0 ? void 0 : obj.capability.settled) || false;\n }\n\n resolve(objId) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId);\n\n obj.data = data;\n obj.capability.resolve();\n }\n\n clear() {\n _classPrivateFieldSet(this, _objs, Object.create(null));\n }\n\n}\n\nfunction _ensureObj2(objId) {\n const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n if (obj) {\n return obj;\n }\n\n return _classPrivateFieldGet(this, _objs)[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null\n };\n}\n\nvar _internalRenderTask = /*#__PURE__*/new WeakMap();\n\nclass RenderTask {\n constructor(internalRenderTask) {\n _classPrivateFieldInitSpec(this, _internalRenderTask, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldSet(this, _internalRenderTask, internalRenderTask);\n\n this.onContinue = null;\n }\n\n get promise() {\n return _classPrivateFieldGet(this, _internalRenderTask).capability.promise;\n }\n\n cancel() {\n _classPrivateFieldGet(this, _internalRenderTask).cancel();\n }\n\n get separateAnnots() {\n const {\n separateAnnots\n } = _classPrivateFieldGet(this, _internalRenderTask).operatorList;\n\n if (!separateAnnots) {\n return false;\n }\n\n const {\n annotationCanvasMap\n } = _classPrivateFieldGet(this, _internalRenderTask);\n\n return separateAnnots.form || separateAnnots.canvas && (annotationCanvasMap === null || annotationCanvasMap === void 0 ? void 0 : annotationCanvasMap.size) > 0;\n }\n\n}\n\nexports.RenderTask = RenderTask;\n\nclass InternalRenderTask {\n constructor(_ref14) {\n let {\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n } = _ref14;\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics(_ref15) {\n var _globalThis$StepperMa;\n\n let {\n transparency = false,\n optionalContentConfig\n } = _ref15;\n\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (_classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).add(this._canvas);\n }\n\n if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel() {\n let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n}\n\nvar _canvasInUse = {\n writable: true,\n value: new WeakSet()\n};\nconst version = '2.16.105';\nexports.version = version;\nconst build = '172ccdbe5';\nexports.build = build;\n\n/***/ }),\n/* 130 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(131);\n\nvar _murmurhash = __w_pdfjs_require__(135);\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nvar _setModified = /*#__PURE__*/new WeakSet();\n\nclass AnnotationStorage {\n constructor() {\n _classPrivateMethodInitSpec(this, _setModified);\n\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n getRawValue(key) {\n return this._storage.get(key);\n }\n\n remove(key) {\n this._storage.delete(key);\n\n if (this._storage.size === 0) {\n this.resetModified();\n }\n\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this._storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n\n this.onAnnotationEditor(null);\n }\n }\n\n setValue(key, value) {\n const obj = this._storage.get(key);\n\n let modified = false;\n\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n\n this._storage.set(key, value);\n }\n\n if (modified) {\n _classPrivateMethodGet(this, _setModified, _setModified2).call(this);\n }\n\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n\n has(key) {\n return this._storage.has(key);\n }\n\n getAll() {\n return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n get print() {\n return new PrintAnnotationStorage(this);\n }\n\n get serializable() {\n if (this._storage.size === 0) {\n return null;\n }\n\n const clone = new Map();\n\n for (const [key, val] of this._storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val;\n\n if (serialized) {\n clone.set(key, serialized);\n }\n }\n\n return clone;\n }\n\n static getHash(map) {\n if (!map) {\n return \"\";\n }\n\n const hash = new _murmurhash.MurmurHash3_64();\n\n for (const [key, val] of map) {\n hash.update(`${key}:${JSON.stringify(val)}`);\n }\n\n return hash.hexdigest();\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\nfunction _setModified2() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n}\n\nvar _serializable = /*#__PURE__*/new WeakMap();\n\nclass PrintAnnotationStorage extends AnnotationStorage {\n constructor(parent) {\n super();\n\n _classPrivateFieldInitSpec(this, _serializable, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldSet(this, _serializable, structuredClone(parent.serializable));\n }\n\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n\n get serializable() {\n return _classPrivateFieldGet(this, _serializable);\n }\n\n}\n\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 131 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nvar _boundFocusin = /*#__PURE__*/new WeakMap();\n\nvar _boundFocusout = /*#__PURE__*/new WeakMap();\n\nvar _hasBeenSelected = /*#__PURE__*/new WeakMap();\n\nvar _isEditing = /*#__PURE__*/new WeakMap();\n\nvar _isInEditMode = /*#__PURE__*/new WeakMap();\n\nvar _zIndex = /*#__PURE__*/new WeakMap();\n\nclass AnnotationEditor {\n constructor(parameters) {\n _classPrivateFieldInitSpec(this, _boundFocusin, {\n writable: true,\n value: this.focusin.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundFocusout, {\n writable: true,\n value: this.focusout.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _hasBeenSelected, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _isEditing, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _isInEditMode, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _zIndex, {\n writable: true,\n value: AnnotationEditor._zIndex++\n });\n\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n const [width, height] = this.parent.viewportBaseDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.rotation = this.parent.viewport.rotation;\n this.isAttachedToDOM = false;\n }\n\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n\n setInForeground() {\n this.div.style.zIndex = _classPrivateFieldGet(this, _zIndex);\n }\n\n focusin(event) {\n if (!_classPrivateFieldGet(this, _hasBeenSelected)) {\n this.parent.setSelected(this);\n } else {\n _classPrivateFieldSet(this, _hasBeenSelected, false);\n }\n }\n\n focusout(event) {\n if (!this.isAttachedToDOM) {\n return;\n }\n\n const target = event.relatedTarget;\n\n if (target !== null && target !== void 0 && target.closest(`#${this.id}`)) {\n return;\n }\n\n event.preventDefault();\n\n if (!this.parent.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n\n commit() {\n this.parent.addToAnnotationStorage(this);\n }\n\n dragstart(event) {\n const rect = this.parent.div.getBoundingClientRect();\n this.startX = event.clientX - rect.x;\n this.startY = event.clientY - rect.y;\n event.dataTransfer.setData(\"text/plain\", this.id);\n event.dataTransfer.effectAllowed = \"move\";\n }\n\n setAt(x, y, tx, ty) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n translate(x, y) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n screenToPageTranslation(x, y) {\n const {\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [y, -x];\n\n case 180:\n return [-x, -y];\n\n case 270:\n return [-y, x];\n\n default:\n return [x, y];\n }\n }\n\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.div.style.width = `${100 * width / parentWidth}%`;\n this.div.style.height = `${100 * height / parentHeight}%`;\n }\n\n getInitialTranslation() {\n return [0, 0];\n }\n\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n this.div.addEventListener(\"focusout\", _classPrivateFieldGet(this, _boundFocusout));\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"dragstart\", \"pointerdown\"]);\n return this.div;\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n\n _classPrivateFieldSet(this, _hasBeenSelected, true);\n }\n\n getRect(tx, ty) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const [pageWidth, pageHeight] = this.parent.pageDimensions;\n const shiftX = pageWidth * tx / parentWidth;\n const shiftY = pageHeight * ty / parentHeight;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n\n switch (this.rotation) {\n case 0:\n return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY];\n\n case 90:\n return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width];\n\n case 180:\n return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height];\n\n case 270:\n return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n\n case 90:\n return [x1, pageHeight - y1, height, width];\n\n case 180:\n return [x2, pageHeight - y1, width, height];\n\n case 270:\n return [x2, pageHeight - y2, height, width];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n onceAdded() {}\n\n isEmpty() {\n return false;\n }\n\n enableEditMode() {\n _classPrivateFieldSet(this, _isInEditMode, true);\n }\n\n disableEditMode() {\n _classPrivateFieldSet(this, _isInEditMode, false);\n }\n\n isInEditMode() {\n return _classPrivateFieldGet(this, _isInEditMode);\n }\n\n shouldGetKeyboardEvents() {\n return false;\n }\n\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n\n rebuild() {\n var _this$div;\n\n (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.addEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n }\n\n serialize() {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n\n static deserialize(data, parent) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId()\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n\n remove() {\n this.div.removeEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n this.div.removeEventListener(\"focusout\", _classPrivateFieldGet(this, _boundFocusout));\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.parent.remove(this);\n }\n\n select() {\n var _this$div2;\n\n (_this$div2 = this.div) === null || _this$div2 === void 0 ? void 0 : _this$div2.classList.add(\"selectedEditor\");\n }\n\n unselect() {\n var _this$div3;\n\n (_this$div3 = this.div) === null || _this$div3 === void 0 ? void 0 : _this$div3.classList.remove(\"selectedEditor\");\n }\n\n updateParams(type, value) {}\n\n disableEditing() {}\n\n enableEditing() {}\n\n get propertiesToUpdate() {\n return {};\n }\n\n get contentDiv() {\n return this.div;\n }\n\n get isEditing() {\n return _classPrivateFieldGet(this, _isEditing);\n }\n\n set isEditing(value) {\n _classPrivateFieldSet(this, _isEditing, value);\n\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n\n}\n\nexports.AnnotationEditor = AnnotationEditor;\n\n_defineProperty(AnnotationEditor, \"_colorManager\", new _tools.ColorManager());\n\n_defineProperty(AnnotationEditor, \"_zIndex\", 1);\n\n/***/ }),\n/* 132 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\n\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\n\nvar _id = /*#__PURE__*/new WeakMap();\n\nclass IdManager {\n constructor() {\n _classPrivateFieldInitSpec(this, _id, {\n writable: true,\n value: 0\n });\n }\n\n getId() {\n var _this$id, _this$id2;\n\n return `${_util.AnnotationEditorPrefix}${(_classPrivateFieldSet(this, _id, (_this$id = _classPrivateFieldGet(this, _id), _this$id2 = _this$id++, _this$id)), _this$id2)}`;\n }\n\n}\n\nvar _commands = /*#__PURE__*/new WeakMap();\n\nvar _locked = /*#__PURE__*/new WeakMap();\n\nvar _maxSize = /*#__PURE__*/new WeakMap();\n\nvar _position = /*#__PURE__*/new WeakMap();\n\nclass CommandManager {\n constructor() {\n let maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128;\n\n _classPrivateFieldInitSpec(this, _commands, {\n writable: true,\n value: []\n });\n\n _classPrivateFieldInitSpec(this, _locked, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _maxSize, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _position, {\n writable: true,\n value: -1\n });\n\n _classPrivateFieldSet(this, _maxSize, maxSize);\n }\n\n add(_ref) {\n let {\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n } = _ref;\n\n if (mustExec) {\n cmd();\n }\n\n if (_classPrivateFieldGet(this, _locked)) {\n return;\n }\n\n const save = {\n cmd,\n undo,\n type\n };\n\n if (_classPrivateFieldGet(this, _position) === -1) {\n if (_classPrivateFieldGet(this, _commands).length > 0) {\n _classPrivateFieldGet(this, _commands).length = 0;\n }\n\n _classPrivateFieldSet(this, _position, 0);\n\n _classPrivateFieldGet(this, _commands).push(save);\n\n return;\n }\n\n if (overwriteIfSameType && _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].type === type) {\n if (keepUndo) {\n save.undo = _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo;\n }\n\n _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)] = save;\n return;\n }\n\n const next = _classPrivateFieldGet(this, _position) + 1;\n\n if (next === _classPrivateFieldGet(this, _maxSize)) {\n _classPrivateFieldGet(this, _commands).splice(0, 1);\n } else {\n _classPrivateFieldSet(this, _position, next);\n\n if (next < _classPrivateFieldGet(this, _commands).length) {\n _classPrivateFieldGet(this, _commands).splice(next);\n }\n }\n\n _classPrivateFieldGet(this, _commands).push(save);\n }\n\n undo() {\n if (_classPrivateFieldGet(this, _position) === -1) {\n return;\n }\n\n _classPrivateFieldSet(this, _locked, true);\n\n _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo();\n\n _classPrivateFieldSet(this, _locked, false);\n\n _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) - 1);\n }\n\n redo() {\n if (_classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1) {\n _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) + 1);\n\n _classPrivateFieldSet(this, _locked, true);\n\n _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].cmd();\n\n _classPrivateFieldSet(this, _locked, false);\n }\n }\n\n hasSomethingToUndo() {\n return _classPrivateFieldGet(this, _position) !== -1;\n }\n\n hasSomethingToRedo() {\n return _classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1;\n }\n\n destroy() {\n _classPrivateFieldSet(this, _commands, null);\n }\n\n}\n\nexports.CommandManager = CommandManager;\n\nvar _serialize = /*#__PURE__*/new WeakSet();\n\nclass KeyboardManager {\n constructor(callbacks) {\n _classPrivateMethodInitSpec(this, _serialize);\n\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const isMac = KeyboardManager.platform.isMac;\n\n for (const [keys, callback] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n\n const callback = this.callbacks.get(_classPrivateMethodGet(this, _serialize, _serialize2).call(this, event));\n\n if (!callback) {\n return;\n }\n\n callback.bind(self)();\n event.stopPropagation();\n event.preventDefault();\n }\n\n}\n\nexports.KeyboardManager = KeyboardManager;\n\nfunction _serialize2(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n}\n\nvar _elements = /*#__PURE__*/new WeakMap();\n\nclass ClipboardManager {\n constructor() {\n _classPrivateFieldInitSpec(this, _elements, {\n writable: true,\n value: null\n });\n }\n\n copy(element) {\n if (!element) {\n return;\n }\n\n if (Array.isArray(element)) {\n _classPrivateFieldSet(this, _elements, element.map(el => el.serialize()));\n } else {\n _classPrivateFieldSet(this, _elements, [element.serialize()]);\n }\n\n _classPrivateFieldSet(this, _elements, _classPrivateFieldGet(this, _elements).filter(el => !!el));\n\n if (_classPrivateFieldGet(this, _elements).length === 0) {\n _classPrivateFieldSet(this, _elements, null);\n }\n }\n\n paste() {\n return _classPrivateFieldGet(this, _elements);\n }\n\n isEmpty() {\n return _classPrivateFieldGet(this, _elements) === null;\n }\n\n destroy() {\n _classPrivateFieldSet(this, _elements, null);\n }\n\n}\n\nclass ColorManager {\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n\n return rgb;\n }\n\n getHexCode(name) {\n const rgb = this._colors.get(name);\n\n if (!rgb) {\n return name;\n }\n\n return _util.Util.makeHexColor(...rgb);\n }\n\n}\n\nexports.ColorManager = ColorManager;\n\n_defineProperty(ColorManager, \"_colorsMapping\", new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]));\n\nvar _activeEditor = /*#__PURE__*/new WeakMap();\n\nvar _allEditors = /*#__PURE__*/new WeakMap();\n\nvar _allLayers = /*#__PURE__*/new WeakMap();\n\nvar _clipboardManager = /*#__PURE__*/new WeakMap();\n\nvar _commandManager = /*#__PURE__*/new WeakMap();\n\nvar _currentPageIndex = /*#__PURE__*/new WeakMap();\n\nvar _editorTypes = /*#__PURE__*/new WeakMap();\n\nvar _eventBus = /*#__PURE__*/new WeakMap();\n\nvar _idManager = /*#__PURE__*/new WeakMap();\n\nvar _isEnabled = /*#__PURE__*/new WeakMap();\n\nvar _mode = /*#__PURE__*/new WeakMap();\n\nvar _selectedEditors = /*#__PURE__*/new WeakMap();\n\nvar _boundKeydown = /*#__PURE__*/new WeakMap();\n\nvar _boundOnEditingAction = /*#__PURE__*/new WeakMap();\n\nvar _boundOnPageChanging = /*#__PURE__*/new WeakMap();\n\nvar _previousStates = /*#__PURE__*/new WeakMap();\n\nvar _container = /*#__PURE__*/new WeakMap();\n\nvar _addKeyboardManager = /*#__PURE__*/new WeakSet();\n\nvar _removeKeyboardManager = /*#__PURE__*/new WeakSet();\n\nvar _dispatchUpdateStates = /*#__PURE__*/new WeakSet();\n\nvar _dispatchUpdateUI = /*#__PURE__*/new WeakSet();\n\nvar _enableAll = /*#__PURE__*/new WeakSet();\n\nvar _disableAll = /*#__PURE__*/new WeakSet();\n\nvar _addEditorToLayer = /*#__PURE__*/new WeakSet();\n\nvar _isEmpty = /*#__PURE__*/new WeakSet();\n\nvar _selectEditors = /*#__PURE__*/new WeakSet();\n\nclass AnnotationEditorUIManager {\n constructor(container, eventBus) {\n _classPrivateMethodInitSpec(this, _selectEditors);\n\n _classPrivateMethodInitSpec(this, _isEmpty);\n\n _classPrivateMethodInitSpec(this, _addEditorToLayer);\n\n _classPrivateMethodInitSpec(this, _disableAll);\n\n _classPrivateMethodInitSpec(this, _enableAll);\n\n _classPrivateMethodInitSpec(this, _dispatchUpdateUI);\n\n _classPrivateMethodInitSpec(this, _dispatchUpdateStates);\n\n _classPrivateMethodInitSpec(this, _removeKeyboardManager);\n\n _classPrivateMethodInitSpec(this, _addKeyboardManager);\n\n _classPrivateFieldInitSpec(this, _activeEditor, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _allEditors, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _allLayers, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _clipboardManager, {\n writable: true,\n value: new ClipboardManager()\n });\n\n _classPrivateFieldInitSpec(this, _commandManager, {\n writable: true,\n value: new CommandManager()\n });\n\n _classPrivateFieldInitSpec(this, _currentPageIndex, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _editorTypes, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _eventBus, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _idManager, {\n writable: true,\n value: new IdManager()\n });\n\n _classPrivateFieldInitSpec(this, _isEnabled, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _mode, {\n writable: true,\n value: _util.AnnotationEditorType.NONE\n });\n\n _classPrivateFieldInitSpec(this, _selectedEditors, {\n writable: true,\n value: new Set()\n });\n\n _classPrivateFieldInitSpec(this, _boundKeydown, {\n writable: true,\n value: this.keydown.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundOnEditingAction, {\n writable: true,\n value: this.onEditingAction.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundOnPageChanging, {\n writable: true,\n value: this.onPageChanging.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _previousStates, {\n writable: true,\n value: {\n isEditing: false,\n isEmpty: true,\n hasEmptyClipboard: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n }\n });\n\n _classPrivateFieldInitSpec(this, _container, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldSet(this, _container, container);\n\n _classPrivateFieldSet(this, _eventBus, eventBus);\n\n _classPrivateFieldGet(this, _eventBus)._on(\"editingaction\", _classPrivateFieldGet(this, _boundOnEditingAction));\n\n _classPrivateFieldGet(this, _eventBus)._on(\"pagechanging\", _classPrivateFieldGet(this, _boundOnPageChanging));\n }\n\n destroy() {\n _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this);\n\n _classPrivateFieldGet(this, _eventBus)._off(\"editingaction\", _classPrivateFieldGet(this, _boundOnEditingAction));\n\n _classPrivateFieldGet(this, _eventBus)._off(\"pagechanging\", _classPrivateFieldGet(this, _boundOnPageChanging));\n\n for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n layer.destroy();\n }\n\n _classPrivateFieldGet(this, _allLayers).clear();\n\n _classPrivateFieldGet(this, _allEditors).clear();\n\n _classPrivateFieldSet(this, _activeEditor, null);\n\n _classPrivateFieldGet(this, _selectedEditors).clear();\n\n _classPrivateFieldGet(this, _clipboardManager).destroy();\n\n _classPrivateFieldGet(this, _commandManager).destroy();\n }\n\n onPageChanging(_ref2) {\n let {\n pageNumber\n } = _ref2;\n\n _classPrivateFieldSet(this, _currentPageIndex, pageNumber - 1);\n }\n\n focusMainContainer() {\n _classPrivateFieldGet(this, _container).focus();\n }\n\n keydown(event) {\n var _this$getActive;\n\n if (!((_this$getActive = this.getActive()) !== null && _this$getActive !== void 0 && _this$getActive.shouldGetKeyboardEvents())) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"cut\", \"copy\", \"paste\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n\n setEditingState(isEditing) {\n if (isEditing) {\n _classPrivateMethodGet(this, _addKeyboardManager, _addKeyboardManager2).call(this);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n isEditing: _classPrivateFieldGet(this, _mode) !== _util.AnnotationEditorType.NONE,\n isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this),\n hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(),\n hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(),\n hasSelectedEditor: false,\n hasEmptyClipboard: _classPrivateFieldGet(this, _clipboardManager).isEmpty()\n });\n } else {\n _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n isEditing: false\n });\n }\n }\n\n registerEditorTypes(types) {\n _classPrivateFieldSet(this, _editorTypes, types);\n\n for (const editorType of _classPrivateFieldGet(this, _editorTypes)) {\n _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editorType.defaultPropertiesToUpdate);\n }\n }\n\n getId() {\n return _classPrivateFieldGet(this, _idManager).getId();\n }\n\n addLayer(layer) {\n _classPrivateFieldGet(this, _allLayers).set(layer.pageIndex, layer);\n\n if (_classPrivateFieldGet(this, _isEnabled)) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n\n removeLayer(layer) {\n _classPrivateFieldGet(this, _allLayers).delete(layer.pageIndex);\n }\n\n updateMode(mode) {\n _classPrivateFieldSet(this, _mode, mode);\n\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n\n _classPrivateMethodGet(this, _disableAll, _disableAll2).call(this);\n } else {\n this.setEditingState(true);\n\n _classPrivateMethodGet(this, _enableAll, _enableAll2).call(this);\n\n for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n layer.updateMode(mode);\n }\n }\n }\n\n updateToolbar(mode) {\n if (mode === _classPrivateFieldGet(this, _mode)) {\n return;\n }\n\n _classPrivateFieldGet(this, _eventBus).dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n\n updateParams(type, value) {\n for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n editor.updateParams(type, value);\n }\n\n for (const editorType of _classPrivateFieldGet(this, _editorTypes)) {\n editorType.updateDefaultParams(type, value);\n }\n }\n\n getEditors(pageIndex) {\n const editors = [];\n\n for (const editor of _classPrivateFieldGet(this, _allEditors).values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n\n return editors;\n }\n\n getEditor(id) {\n return _classPrivateFieldGet(this, _allEditors).get(id);\n }\n\n addEditor(editor) {\n _classPrivateFieldGet(this, _allEditors).set(editor.id, editor);\n }\n\n removeEditor(editor) {\n _classPrivateFieldGet(this, _allEditors).delete(editor.id);\n\n this.unselect(editor);\n }\n\n setActiveEditor(editor) {\n if (_classPrivateFieldGet(this, _activeEditor) === editor) {\n return;\n }\n\n _classPrivateFieldSet(this, _activeEditor, editor);\n\n if (editor) {\n _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n }\n }\n\n toggleSelected(editor) {\n if (_classPrivateFieldGet(this, _selectedEditors).has(editor)) {\n _classPrivateFieldGet(this, _selectedEditors).delete(editor);\n\n editor.unselect();\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: this.hasSelection\n });\n\n return;\n }\n\n _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n editor.select();\n\n _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: true\n });\n }\n\n setSelected(editor) {\n for (const ed of _classPrivateFieldGet(this, _selectedEditors)) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n\n _classPrivateFieldGet(this, _selectedEditors).clear();\n\n _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n editor.select();\n\n _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: true\n });\n }\n\n isSelected(editor) {\n return _classPrivateFieldGet(this, _selectedEditors).has(editor);\n }\n\n unselect(editor) {\n editor.unselect();\n\n _classPrivateFieldGet(this, _selectedEditors).delete(editor);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: this.hasSelection\n });\n }\n\n get hasSelection() {\n return _classPrivateFieldGet(this, _selectedEditors).size !== 0;\n }\n\n undo() {\n _classPrivateFieldGet(this, _commandManager).undo();\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n });\n }\n\n redo() {\n _classPrivateFieldGet(this, _commandManager).redo();\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSomethingToUndo: true,\n hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(),\n isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n });\n }\n\n addCommands(params) {\n _classPrivateFieldGet(this, _commandManager).add(params);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n });\n }\n\n delete() {\n if (_classPrivateFieldGet(this, _activeEditor)) {\n _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n }\n\n if (!this.hasSelection) {\n return;\n }\n\n const editors = [..._classPrivateFieldGet(this, _selectedEditors)];\n\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n\n const undo = () => {\n for (const editor of editors) {\n _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor);\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n copy() {\n if (_classPrivateFieldGet(this, _activeEditor)) {\n _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n }\n\n if (this.hasSelection) {\n const editors = [];\n\n for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n if (!editor.isEmpty()) {\n editors.push(editor);\n }\n }\n\n if (editors.length === 0) {\n return;\n }\n\n _classPrivateFieldGet(this, _clipboardManager).copy(editors);\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasEmptyClipboard: false\n });\n }\n }\n\n cut() {\n this.copy();\n this.delete();\n }\n\n paste() {\n if (_classPrivateFieldGet(this, _clipboardManager).isEmpty()) {\n return;\n }\n\n this.unselectAll();\n\n const layer = _classPrivateFieldGet(this, _allLayers).get(_classPrivateFieldGet(this, _currentPageIndex));\n\n const newEditors = _classPrivateFieldGet(this, _clipboardManager).paste().map(data => layer.deserialize(data));\n\n const cmd = () => {\n for (const editor of newEditors) {\n _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor);\n }\n\n _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, newEditors);\n };\n\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n selectAll() {\n for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n editor.commit();\n }\n\n _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, _classPrivateFieldGet(this, _allEditors).values());\n }\n\n unselectAll() {\n if (_classPrivateFieldGet(this, _activeEditor)) {\n _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n\n return;\n }\n\n if (_classPrivateMethodGet(this, _selectEditors, _selectEditors2).size === 0) {\n return;\n }\n\n for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n editor.unselect();\n }\n\n _classPrivateFieldGet(this, _selectedEditors).clear();\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: false\n });\n }\n\n isActive(editor) {\n return _classPrivateFieldGet(this, _activeEditor) === editor;\n }\n\n getActive() {\n return _classPrivateFieldGet(this, _activeEditor);\n }\n\n getMode() {\n return _classPrivateFieldGet(this, _mode);\n }\n\n}\n\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\nfunction _addKeyboardManager2() {\n _classPrivateFieldGet(this, _container).addEventListener(\"keydown\", _classPrivateFieldGet(this, _boundKeydown));\n}\n\nfunction _removeKeyboardManager2() {\n _classPrivateFieldGet(this, _container).removeEventListener(\"keydown\", _classPrivateFieldGet(this, _boundKeydown));\n}\n\nfunction _dispatchUpdateStates2(details) {\n const hasChanged = Object.entries(details).some(_ref3 => {\n let [key, value] = _ref3;\n return _classPrivateFieldGet(this, _previousStates)[key] !== value;\n });\n\n if (hasChanged) {\n _classPrivateFieldGet(this, _eventBus).dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(_classPrivateFieldGet(this, _previousStates), details)\n });\n }\n}\n\nfunction _dispatchUpdateUI2(details) {\n _classPrivateFieldGet(this, _eventBus).dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n}\n\nfunction _enableAll2() {\n if (!_classPrivateFieldGet(this, _isEnabled)) {\n _classPrivateFieldSet(this, _isEnabled, true);\n\n for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n layer.enable();\n }\n }\n}\n\nfunction _disableAll2() {\n this.unselectAll();\n\n if (_classPrivateFieldGet(this, _isEnabled)) {\n _classPrivateFieldSet(this, _isEnabled, false);\n\n for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n layer.disable();\n }\n }\n}\n\nfunction _addEditorToLayer2(editor) {\n const layer = _classPrivateFieldGet(this, _allLayers).get(editor.pageIndex);\n\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n}\n\nfunction _isEmpty2() {\n if (_classPrivateFieldGet(this, _allEditors).size === 0) {\n return true;\n }\n\n if (_classPrivateFieldGet(this, _allEditors).size === 1) {\n for (const editor of _classPrivateFieldGet(this, _allEditors).values()) {\n return editor.isEmpty();\n }\n }\n\n return false;\n}\n\nfunction _selectEditors2(editors) {\n _classPrivateFieldGet(this, _selectedEditors).clear();\n\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n\n _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n editor.select();\n }\n\n _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n hasSelectedEditor: true\n });\n}\n\n_defineProperty(AnnotationEditorUIManager, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], AnnotationEditorUIManager.prototype.selectAll], [[\"ctrl+c\", \"mac+meta+c\"], AnnotationEditorUIManager.prototype.copy], [[\"ctrl+v\", \"mac+meta+v\"], AnnotationEditorUIManager.prototype.paste], [[\"ctrl+x\", \"mac+meta+x\"], AnnotationEditorUIManager.prototype.cut], [[\"ctrl+z\", \"mac+meta+z\"], AnnotationEditorUIManager.prototype.undo], [[\"ctrl+y\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], AnnotationEditorUIManager.prototype.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\"], AnnotationEditorUIManager.prototype.delete], [[\"Escape\", \"mac+Escape\"], AnnotationEditorUIManager.prototype.unselectAll]]));\n\n/***/ }),\n/* 133 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _base_factory = __w_pdfjs_require__(134);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\nclass PixelsPerInch {}\n\nexports.PixelsPerInch = PixelsPerInch;\n\n_defineProperty(PixelsPerInch, \"CSS\", 96.0);\n\n_defineProperty(PixelsPerInch, \"PDF\", 72.0);\n\n_defineProperty(PixelsPerInch, \"PDF_TO_CSS_UNITS\", PixelsPerInch.CSS / PixelsPerInch.PDF);\n\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor() {\n let {\n ownerDocument = globalThis.document\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n super();\n this._document = ownerDocument;\n }\n\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nasync function fetchData(url) {\n let asTypedArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let data;\n\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve(data);\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n\n}\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor(_ref) {\n let {\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = _ref;\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone() {\n let {\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url) {\n let defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"document.pdf\";\n\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n let removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n\n resolve(evt);\n };\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).append(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\nfunction getXfaPageViewport(xfaPage, _ref2) {\n let {\n scale = 1,\n rotation = 0\n } = _ref2;\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\n\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n\n span.remove();\n}\n\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\n\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\n\n/***/ }),\n/* 134 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._createCanvas(width, height);\n\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor(_ref) {\n let {\n baseUrl = null,\n isCompressed = false\n } = _ref;\n\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch(_ref2) {\n let {\n name\n } = _ref2;\n\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass BaseStandardFontDataFactory {\n constructor(_ref3) {\n let {\n baseUrl = null\n } = _ref3;\n\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n\n this.baseUrl = baseUrl;\n }\n\n async fetch(_ref4) {\n let {\n filename\n } = _ref4;\n\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height) {\n let skipDimensions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n\n const svg = this._createSVG(\"svg:svg\");\n\n svg.setAttribute(\"version\", \"1.1\");\n\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n\n return this._createSVG(type);\n }\n\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n\n}\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 135 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 136 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseFontLoader {\n constructor(_ref) {\n let {\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n styleElement = null\n } = _ref;\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n var _this$_document;\n\n const hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts);\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n\n this._document.body.append(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, _ref2) {\n let {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null\n } = _ref2;\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n let nativeFontFace;\n\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 137 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(138);\n\nvar _image_utils = __w_pdfjs_require__(139);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = _is_node.isNodeJS && typeof Path2D === \"undefined\" ? -1 : 1000;\nconst FULL_CHUNK_HEIGHT = 16;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n\n this.__originalBeginPath();\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height) {\n let canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n return canvasEntry;\n }\n\n delete(id) {\n delete this.cache[id];\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n}\n\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n\n for (const elem of imgData.data) {\n let mask = 128;\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n let count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n\n do {\n const step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n path.lineTo(p % width1, p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n --i;\n }\n\n data = null;\n points = null;\n\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n\n this.updateRectMinMax(transform, box);\n }\n\n getPathBoundingBox() {\n let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n\n return box;\n }\n\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n isEmptyClip() {\n return this.minX === Infinity;\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox() {\n let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n\n}\n\nfunction putBinaryImageData(ctx, imgData) {\n let transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n let white = 0xffffffff;\n let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.applyMaskImageData)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx, foregroundColor) {\n ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\n\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n let composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nvar _restoreInitialState = /*#__PURE__*/new WeakSet();\n\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) {\n _classPrivateMethodInitSpec(this, _restoreInitialState);\n\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.backgroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.background) || null;\n this.foregroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.foreground) || null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n\n getObject(data) {\n let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n\n return fallback;\n }\n\n beginDrawing(_ref) {\n let {\n transform,\n viewport,\n transparency = false,\n background = null\n } = _ref;\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const defaultBackgroundColor = background || \"#ffffff\";\n this.ctx.save();\n\n if (this.foregroundColor && this.backgroundColor) {\n this.ctx.fillStyle = this.foregroundColor;\n const fg = this.foregroundColor = this.ctx.fillStyle;\n this.ctx.fillStyle = this.backgroundColor;\n const bg = this.backgroundColor = this.ctx.fillStyle;\n let isValidDefaultBg = true;\n let defaultBg = defaultBackgroundColor;\n this.ctx.fillStyle = defaultBackgroundColor;\n defaultBg = this.ctx.fillStyle;\n isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n\n if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n this.foregroundColor = this.backgroundColor = null;\n } else {\n const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg);\n\n const newComp = x => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n };\n\n const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n\n this.selectColor = (r, g, b) => {\n const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n return Math.round(lumC) === lumB ? bg : fg;\n };\n }\n }\n\n this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n if (this.imageLayer) {\n (0, _display_utils.deprecated)(\"The `imageLayer` functionality will be removed in the future.\");\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n }\n\n endDrawing() {\n _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this);\n\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n\n cache.clear();\n }\n\n this._cachedBitmapsMap.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n const withoutTranslation = currentTransform.slice(0, 4);\n cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n\n if (!cache) {\n cache = new Map();\n\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n\n const cachedImage = cache.get(cacheKey);\n\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n\n scaled = cachedImage;\n }\n\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n\n this.ctx._removeMirroring();\n\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n let x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n this.compose();\n return undefined;\n }\n\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n }\n\n setCharWidth(xWidth, yWidth) {}\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n\n getColorN_Pattern(IR) {\n let pattern;\n\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n var _this$selectColor;\n\n const color = ((_this$selectColor = this.selectColor) === null || _this$selectColor === void 0 ? void 0 : _this$selectColor.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n var _this$selectColor2;\n\n const color = ((_this$selectColor2 = this.selectColor) === null || _this$selectColor2 === void 0 ? void 0 : _this$selectColor2.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n _getPattern(objId) {\n let matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n let pattern;\n\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n\n if (matrix) {\n pattern.matrix = matrix;\n }\n\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n this.save();\n\n const pattern = this._getPattern(objId);\n\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n\n const currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this);\n\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.save();\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx, this.foregroundColor);\n } else {\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n\n const mask = this._createMaskCanvas(img);\n\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(img, scaleX) {\n let skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n let skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let scaleY = arguments.length > 4 ? arguments[4] : undefined;\n let positions = arguments.length > 5 ? arguments[5] : undefined;\n\n if (!this.contentVisible) {\n return;\n }\n\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n const mask = this._createMaskCanvas(img);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n\n ctx.drawImage(mask.canvas, x, y);\n }\n\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n const [left, top] = _util.Util.applyTransform([0, -height], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n this.imageLayer.appendImage({\n imgData,\n left,\n top,\n width: rWidth,\n height: rHeight\n });\n }\n\n this.compose();\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n const [left, top] = _util.Util.applyTransform([entry.x, entry.y], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n this.imageLayer.appendImage({\n imgData,\n left,\n top,\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n\n markPoint(tag) {}\n\n markPointProps(tag, properties) {}\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n beginCompat() {}\n\n endCompat() {}\n\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n\n const ctx = this.ctx;\n\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n\n this.pendingClip = null;\n }\n\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getScaleForStroking() {\n if (!this._cachedScaleForStroking) {\n const {\n lineWidth\n } = this.current;\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n let scaleX, scaleY;\n\n if (m[1] === 0 && m[2] === 0) {\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n\n return this._cachedScaleForStroking;\n }\n\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n\n let savedMatrix, savedDashes, savedDashOffset;\n\n if (saveRestore) {\n savedMatrix = (0, _display_utils.getCurrentTransform)(ctx);\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n\n ctx.scale(scaleX, scaleY);\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n ctx.stroke();\n\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CanvasGraphics = CanvasGraphics;\n\nfunction _restoreInitialState2() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n}\n\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 138 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || _is_node.isNodeJS) {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n\n _createGradient(ctx) {\n let grad;\n\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n\n return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`RadialAxialShadingPattern.getPattern: \"${ex === null || ex === void 0 ? void 0 : ex.message}\".`);\n }\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n\n return pattern;\n }\n\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n const bytes = data.data;\n\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\n\nclass TilingPattern {\n static get MAX_PATTERN_SIZE() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n }\n\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`TilingPattern.getPattern: \"${ex === null || ex === void 0 ? void 0 : ex.message}\".`);\n }\n\n return pattern;\n }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 139 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction applyMaskImageData(_ref) {\n let {\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false\n } = _ref;\n const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n\n if (widthRemainder === 0) {\n continue;\n }\n\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n\n return {\n srcPos,\n destPos\n };\n}\n\n/***/ }),\n/* 140 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 141 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n let transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.isClosed = true;\n streamController.controller.close();\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 142 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar _metadataMap = /*#__PURE__*/new WeakMap();\n\nvar _data = /*#__PURE__*/new WeakMap();\n\nclass Metadata {\n constructor(_ref) {\n let {\n parsedData,\n rawData\n } = _ref;\n\n _classPrivateFieldInitSpec(this, _metadataMap, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _data, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldSet(this, _metadataMap, parsedData);\n\n _classPrivateFieldSet(this, _data, rawData);\n }\n\n getRaw() {\n return _classPrivateFieldGet(this, _data);\n }\n\n get(name) {\n var _classPrivateFieldGet2;\n\n return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _metadataMap).get(name)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;\n }\n\n getAll() {\n return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap));\n }\n\n has(name) {\n return _classPrivateFieldGet(this, _metadataMap).has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 143 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nvar _visible = /*#__PURE__*/new WeakMap();\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n _classPrivateFieldInitSpec(this, _visible, {\n writable: true,\n value: true\n });\n\n this.name = name;\n this.intent = intent;\n }\n\n get visible() {\n return _classPrivateFieldGet(this, _visible);\n }\n\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n\n _classPrivateFieldSet(this, _visible, visible);\n }\n\n}\n\nvar _cachedHasInitialVisibility = /*#__PURE__*/new WeakMap();\n\nvar _groups = /*#__PURE__*/new WeakMap();\n\nvar _initialVisibility = /*#__PURE__*/new WeakMap();\n\nvar _order = /*#__PURE__*/new WeakMap();\n\nvar _evaluateVisibilityExpression = /*#__PURE__*/new WeakSet();\n\nclass OptionalContentConfig {\n constructor(data) {\n _classPrivateMethodInitSpec(this, _evaluateVisibilityExpression);\n\n _classPrivateFieldInitSpec(this, _cachedHasInitialVisibility, {\n writable: true,\n value: true\n });\n\n _classPrivateFieldInitSpec(this, _groups, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _initialVisibility, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _order, {\n writable: true,\n value: null\n });\n\n this.name = null;\n this.creator = null;\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n\n _classPrivateFieldSet(this, _order, data.order);\n\n for (const group of data.groups) {\n _classPrivateFieldGet(this, _groups).set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of _classPrivateFieldGet(this, _groups).values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n\n for (const on of data.on) {\n _classPrivateFieldGet(this, _groups).get(on)._setVisible(INTERNAL, true);\n }\n\n for (const off of data.off) {\n _classPrivateFieldGet(this, _groups).get(off)._setVisible(INTERNAL, false);\n }\n\n _classPrivateFieldSet(this, _initialVisibility, new Map());\n\n for (const [id, group] of _classPrivateFieldGet(this, _groups)) {\n _classPrivateFieldGet(this, _initialVisibility).set(id, group.visible);\n }\n }\n\n isVisible(group) {\n if (_classPrivateFieldGet(this, _groups).size === 0) {\n return true;\n }\n\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n\n if (group.type === \"OCG\") {\n if (!_classPrivateFieldGet(this, _groups).has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return _classPrivateFieldGet(this, _groups).get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, group.expression);\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!_classPrivateFieldGet(this, _groups).has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (_classPrivateFieldGet(this, _groups).get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!_classPrivateFieldGet(this, _groups).has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!_classPrivateFieldGet(this, _groups).get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!_classPrivateFieldGet(this, _groups).has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!_classPrivateFieldGet(this, _groups).get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!_classPrivateFieldGet(this, _groups).has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (_classPrivateFieldGet(this, _groups).get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id) {\n let visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!_classPrivateFieldGet(this, _groups).has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n _classPrivateFieldGet(this, _groups).get(id)._setVisible(INTERNAL, !!visible);\n\n _classPrivateFieldSet(this, _cachedHasInitialVisibility, null);\n }\n\n get hasInitialVisibility() {\n if (_classPrivateFieldGet(this, _cachedHasInitialVisibility) !== null) {\n return _classPrivateFieldGet(this, _cachedHasInitialVisibility);\n }\n\n for (const [id, group] of _classPrivateFieldGet(this, _groups)) {\n const visible = _classPrivateFieldGet(this, _initialVisibility).get(id);\n\n if (group.visible !== visible) {\n return _classPrivateFieldSet(this, _cachedHasInitialVisibility, false);\n }\n }\n\n return _classPrivateFieldSet(this, _cachedHasInitialVisibility, true);\n }\n\n getOrder() {\n if (!_classPrivateFieldGet(this, _groups).size) {\n return null;\n }\n\n if (_classPrivateFieldGet(this, _order)) {\n return _classPrivateFieldGet(this, _order).slice();\n }\n\n return [..._classPrivateFieldGet(this, _groups).keys()];\n }\n\n getGroups() {\n return _classPrivateFieldGet(this, _groups).size > 0 ? (0, _util.objectFromMap)(_classPrivateFieldGet(this, _groups)) : null;\n }\n\n getGroup(id) {\n return _classPrivateFieldGet(this, _groups).get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\nfunction _evaluateVisibilityExpression2(array) {\n const length = array.length;\n\n if (length < 2) {\n return true;\n }\n\n const operator = array[0];\n\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n\n if (Array.isArray(element)) {\n state = _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, element);\n } else if (_classPrivateFieldGet(this, _groups).has(element)) {\n state = _classPrivateFieldGet(this, _groups).get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n\n break;\n\n case \"Or\":\n if (state) {\n return true;\n }\n\n break;\n\n case \"Not\":\n return !state;\n\n default:\n return true;\n }\n }\n\n return operator === \"And\";\n}\n\n/***/ }),\n/* 144 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename = params.contentDispositionFilename || null;\n const initialData = params.initialData;\n\n if ((initialData === null || initialData === void 0 ? void 0 : initialData.length) > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader !== null && firstReader !== void 0 && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader !== null && fullReader !== void 0 && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks) {\n let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 145 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\n\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n\n function walk(node) {\n var _node$attributes;\n\n if (!node) {\n return;\n }\n\n let str = null;\n const name = node.name;\n\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n\n if (str !== null) {\n items.push({\n str\n });\n }\n\n if (!node.children) {\n return;\n }\n\n for (const child of node.children) {\n walk(child);\n }\n }\n\n walk(xfa);\n return output;\n }\n\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n\n}\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 146 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(134);\n\n;\n\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve(new Uint8Array(data));\n });\n });\n};\n\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n\n return Canvas.createCanvas(width, height);\n }\n\n}\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n\n}\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 147 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _freetext = __w_pdfjs_require__(148);\n\nvar _ink = __w_pdfjs_require__(149);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar _accessibilityManager = /*#__PURE__*/new WeakMap();\n\nvar _allowClick = /*#__PURE__*/new WeakMap();\n\nvar _boundPointerup = /*#__PURE__*/new WeakMap();\n\nvar _boundPointerdown = /*#__PURE__*/new WeakMap();\n\nvar _editors = /*#__PURE__*/new WeakMap();\n\nvar _hadPointerDown = /*#__PURE__*/new WeakMap();\n\nvar _isCleaningUp = /*#__PURE__*/new WeakMap();\n\nvar _uiManager = /*#__PURE__*/new WeakMap();\n\nvar _changeParent = /*#__PURE__*/new WeakSet();\n\nvar _createNewEditor = /*#__PURE__*/new WeakSet();\n\nvar _createAndAddNewEditor = /*#__PURE__*/new WeakSet();\n\nvar _cleanup = /*#__PURE__*/new WeakSet();\n\nclass AnnotationEditorLayer {\n constructor(options) {\n _classPrivateMethodInitSpec(this, _cleanup);\n\n _classPrivateMethodInitSpec(this, _createAndAddNewEditor);\n\n _classPrivateMethodInitSpec(this, _createNewEditor);\n\n _classPrivateMethodInitSpec(this, _changeParent);\n\n _classPrivateFieldInitSpec(this, _accessibilityManager, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _allowClick, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _boundPointerup, {\n writable: true,\n value: this.pointerup.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundPointerdown, {\n writable: true,\n value: this.pointerdown.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _editors, {\n writable: true,\n value: new Map()\n });\n\n _classPrivateFieldInitSpec(this, _hadPointerDown, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _isCleaningUp, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _uiManager, {\n writable: true,\n value: void 0\n });\n\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n\n _freetext.FreeTextEditor.initialize(options.l10n);\n\n _ink.InkEditor.initialize(options.l10n);\n\n options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]);\n }\n\n _classPrivateFieldSet(this, _uiManager, options.uiManager);\n\n this.annotationStorage = options.annotationStorage;\n this.pageIndex = options.pageIndex;\n this.div = options.div;\n\n _classPrivateFieldSet(this, _accessibilityManager, options.accessibilityManager);\n\n _classPrivateFieldGet(this, _uiManager).addLayer(this);\n }\n\n updateToolbar(mode) {\n _classPrivateFieldGet(this, _uiManager).updateToolbar(mode);\n }\n\n updateMode() {\n let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _uiManager).getMode();\n\n _classPrivateMethodGet(this, _cleanup, _cleanup2).call(this);\n\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n\n _classPrivateFieldGet(this, _uiManager).unselectAll();\n }\n\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && _classPrivateFieldGet(this, _uiManager).getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n\n if (!isCommitting) {\n for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n\n const editor = _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, {\n offsetX: 0,\n offsetY: 0\n });\n\n editor.setInBackground();\n }\n\n setEditingState(isEditing) {\n _classPrivateFieldGet(this, _uiManager).setEditingState(isEditing);\n }\n\n addCommands(params) {\n _classPrivateFieldGet(this, _uiManager).addCommands(params);\n }\n\n enable() {\n this.div.style.pointerEvents = \"auto\";\n\n for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n editor.enableEditing();\n }\n }\n\n disable() {\n this.div.style.pointerEvents = \"none\";\n\n for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n editor.disableEditing();\n }\n }\n\n setActiveEditor(editor) {\n const currentActive = _classPrivateFieldGet(this, _uiManager).getActive();\n\n if (currentActive === editor) {\n return;\n }\n\n _classPrivateFieldGet(this, _uiManager).setActiveEditor(editor);\n }\n\n enableClick() {\n this.div.addEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundPointerdown));\n this.div.addEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundPointerup));\n }\n\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundPointerdown));\n this.div.removeEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundPointerup));\n }\n\n attach(editor) {\n _classPrivateFieldGet(this, _editors).set(editor.id, editor);\n }\n\n detach(editor) {\n var _classPrivateFieldGet2;\n\n _classPrivateFieldGet(this, _editors).delete(editor.id);\n\n (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.removePointerInTextLayer(editor.contentDiv);\n }\n\n remove(editor) {\n _classPrivateFieldGet(this, _uiManager).removeEditor(editor);\n\n this.detach(editor);\n this.annotationStorage.remove(editor.id);\n editor.div.style.display = \"none\";\n setTimeout(() => {\n editor.div.style.display = \"\";\n editor.div.remove();\n editor.isAttachedToDOM = false;\n\n if (document.activeElement === document.body) {\n _classPrivateFieldGet(this, _uiManager).focusMainContainer();\n }\n }, 0);\n\n if (!_classPrivateFieldGet(this, _isCleaningUp)) {\n this.addInkEditorIfNeeded(false);\n }\n }\n\n add(editor) {\n _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor);\n\n _classPrivateFieldGet(this, _uiManager).addEditor(editor);\n\n this.attach(editor);\n\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n\n this.moveEditorInDOM(editor);\n editor.onceAdded();\n this.addToAnnotationStorage(editor);\n }\n\n moveEditorInDOM(editor) {\n var _classPrivateFieldGet3;\n\n (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) {\n this.annotationStorage.setValue(editor.id, editor);\n }\n }\n\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n\n addANewEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n addUndoableEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n\n getNextId() {\n return _classPrivateFieldGet(this, _uiManager).getId();\n }\n\n deserialize(data) {\n switch (data.annotationType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this);\n\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this);\n }\n\n return null;\n }\n\n setSelected(editor) {\n _classPrivateFieldGet(this, _uiManager).setSelected(editor);\n }\n\n toggleSelected(editor) {\n _classPrivateFieldGet(this, _uiManager).toggleSelected(editor);\n }\n\n isSelected(editor) {\n return _classPrivateFieldGet(this, _uiManager).isSelected(editor);\n }\n\n unselect(editor) {\n _classPrivateFieldGet(this, _uiManager).unselect(editor);\n }\n\n pointerup(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n if (!_classPrivateFieldGet(this, _hadPointerDown)) {\n return;\n }\n\n _classPrivateFieldSet(this, _hadPointerDown, false);\n\n if (!_classPrivateFieldGet(this, _allowClick)) {\n _classPrivateFieldSet(this, _allowClick, true);\n\n return;\n }\n\n _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, event);\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n _classPrivateFieldSet(this, _hadPointerDown, true);\n\n const editor = _classPrivateFieldGet(this, _uiManager).getActive();\n\n _classPrivateFieldSet(this, _allowClick, !editor || editor.isEmpty());\n }\n\n drop(event) {\n const id = event.dataTransfer.getData(\"text/plain\");\n\n const editor = _classPrivateFieldGet(this, _uiManager).getEditor(id);\n\n if (!editor) {\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n\n _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor);\n\n const rect = this.div.getBoundingClientRect();\n const endX = event.clientX - rect.x;\n const endY = event.clientY - rect.y;\n editor.translate(endX - editor.startX, endY - editor.startY);\n this.moveEditorInDOM(editor);\n editor.div.focus();\n }\n\n dragover(event) {\n event.preventDefault();\n }\n\n destroy() {\n var _classPrivateFieldGet4;\n\n if (((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _uiManager).getActive()) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.parent) === this) {\n _classPrivateFieldGet(this, _uiManager).setActiveEditor(null);\n }\n\n for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n var _classPrivateFieldGet5;\n\n (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.removePointerInTextLayer(editor.contentDiv);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n editor.parent = null;\n }\n\n this.div = null;\n\n _classPrivateFieldGet(this, _editors).clear();\n\n _classPrivateFieldGet(this, _uiManager).removeLayer(this);\n }\n\n render(parameters) {\n this.viewport = parameters.viewport;\n (0, _tools.bindEvents)(this, this.div, [\"dragover\", \"drop\"]);\n this.setDimensions();\n\n for (const editor of _classPrivateFieldGet(this, _uiManager).getEditors(this.pageIndex)) {\n this.add(editor);\n }\n\n this.updateMode();\n }\n\n update(parameters) {\n this.viewport = parameters.viewport;\n this.setDimensions();\n this.updateMode();\n }\n\n get scaleFactor() {\n return this.viewport.scale;\n }\n\n get pageDimensions() {\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const width = pageURx - pageLLx;\n const height = pageURy - pageLLy;\n return [width, height];\n }\n\n get viewportBaseDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n return rotation % 180 === 0 ? [width, height] : [height, width];\n }\n\n setDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n this.div.style.width = flipOrientation ? heightStr : widthStr;\n this.div.style.height = flipOrientation ? widthStr : heightStr;\n this.div.setAttribute(\"data-main-rotation\", rotation);\n }\n\n}\n\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\nfunction _changeParent2(editor) {\n var _editor$parent;\n\n if (editor.parent === this) {\n return;\n }\n\n this.attach(editor);\n editor.pageIndex = this.pageIndex;\n (_editor$parent = editor.parent) === null || _editor$parent === void 0 ? void 0 : _editor$parent.detach(editor);\n editor.parent = this;\n\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n}\n\nfunction _createNewEditor2(params) {\n switch (_classPrivateFieldGet(this, _uiManager).getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n }\n\n return null;\n}\n\nfunction _createAndAddNewEditor2(event) {\n const id = this.getNextId();\n\n const editor = _classPrivateMethodGet(this, _createNewEditor, _createNewEditor2).call(this, {\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY\n });\n\n if (editor) {\n this.add(editor);\n }\n\n return editor;\n}\n\nfunction _cleanup2() {\n _classPrivateFieldSet(this, _isCleaningUp, true);\n\n for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n\n _classPrivateFieldSet(this, _isCleaningUp, false);\n}\n\n_defineProperty(AnnotationEditorLayer, \"_initialized\", false);\n\n/***/ }),\n/* 148 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _editor = __w_pdfjs_require__(131);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar _boundEditorDivBlur = /*#__PURE__*/new WeakMap();\n\nvar _boundEditorDivFocus = /*#__PURE__*/new WeakMap();\n\nvar _boundEditorDivKeydown = /*#__PURE__*/new WeakMap();\n\nvar _color = /*#__PURE__*/new WeakMap();\n\nvar _content = /*#__PURE__*/new WeakMap();\n\nvar _hasAlreadyBeenCommitted = /*#__PURE__*/new WeakMap();\n\nvar _fontSize = /*#__PURE__*/new WeakMap();\n\nvar _updateFontSize = /*#__PURE__*/new WeakSet();\n\nvar _updateColor = /*#__PURE__*/new WeakSet();\n\nvar _extractText = /*#__PURE__*/new WeakSet();\n\nvar _setEditorDimensions = /*#__PURE__*/new WeakSet();\n\nclass FreeTextEditor extends _editor.AnnotationEditor {\n constructor(params) {\n super({ ...params,\n name: \"freeTextEditor\"\n });\n\n _classPrivateMethodInitSpec(this, _setEditorDimensions);\n\n _classPrivateMethodInitSpec(this, _extractText);\n\n _classPrivateMethodInitSpec(this, _updateColor);\n\n _classPrivateMethodInitSpec(this, _updateFontSize);\n\n _classPrivateFieldInitSpec(this, _boundEditorDivBlur, {\n writable: true,\n value: this.editorDivBlur.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundEditorDivFocus, {\n writable: true,\n value: this.editorDivFocus.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundEditorDivKeydown, {\n writable: true,\n value: this.editorDivKeydown.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _color, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _content, {\n writable: true,\n value: \"\"\n });\n\n _classPrivateFieldInitSpec(this, _hasAlreadyBeenCommitted, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _fontSize, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldSet(this, _color, params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor);\n\n _classPrivateFieldSet(this, _fontSize, params.fontSize || FreeTextEditor._defaultFontSize);\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"free_text_default_content\", \"editor_free_text_aria_label\"].map(str => [str, l10n.get(str)]));\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n _classPrivateMethodGet(this, _updateFontSize, _updateFontSize2).call(this, value);\n\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value);\n\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, _classPrivateFieldGet(this, _fontSize)], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, _classPrivateFieldGet(this, _color)]];\n }\n\n getInitialTranslation() {\n return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor];\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.enableEditing();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this.div.draggable = false;\n this.editorDiv.addEventListener(\"keydown\", _classPrivateFieldGet(this, _boundEditorDivKeydown));\n this.editorDiv.addEventListener(\"focus\", _classPrivateFieldGet(this, _boundEditorDivFocus));\n this.editorDiv.addEventListener(\"blur\", _classPrivateFieldGet(this, _boundEditorDivBlur));\n }\n\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.disableEditing();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.draggable = true;\n this.editorDiv.removeEventListener(\"keydown\", _classPrivateFieldGet(this, _boundEditorDivKeydown));\n this.editorDiv.removeEventListener(\"focus\", _classPrivateFieldGet(this, _boundEditorDivFocus));\n this.editorDiv.removeEventListener(\"blur\", _classPrivateFieldGet(this, _boundEditorDivBlur));\n this.div.focus();\n this.isEditing = false;\n }\n\n focusin(event) {\n super.focusin(event);\n\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n\n onceAdded() {\n if (this.width) {\n return;\n }\n\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n\n remove() {\n this.isEditing = false;\n this.parent.setEditingState(true);\n super.remove();\n }\n\n commit() {\n super.commit();\n\n if (!_classPrivateFieldGet(this, _hasAlreadyBeenCommitted)) {\n _classPrivateFieldSet(this, _hasAlreadyBeenCommitted, true);\n\n this.parent.addUndoableEditor(this);\n }\n\n this.disableEditMode();\n\n _classPrivateFieldSet(this, _content, _classPrivateMethodGet(this, _extractText, _extractText2).call(this).trimEnd());\n\n _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this);\n }\n\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n\n dblclick(event) {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n }\n\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n\n editorDivFocus(event) {\n this.isEditing = true;\n }\n\n editorDivBlur(event) {\n this.isEditing = false;\n }\n\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", `${this.id}-editor`);\n this.enableEditing();\n\n FreeTextEditor._l10nPromise.get(\"editor_free_text_aria_label\").then(msg => {\n var _this$editorDiv;\n\n return (_this$editorDiv = this.editorDiv) === null || _this$editorDiv === void 0 ? void 0 : _this$editorDiv.setAttribute(\"aria-label\", msg);\n });\n\n FreeTextEditor._l10nPromise.get(\"free_text_default_content\").then(msg => {\n var _this$editorDiv2;\n\n return (_this$editorDiv2 = this.editorDiv) === null || _this$editorDiv2 === void 0 ? void 0 : _this$editorDiv2.setAttribute(\"default-content\", msg);\n });\n\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${_classPrivateFieldGet(this, _fontSize)}px * var(--scale-factor))`;\n style.color = _classPrivateFieldGet(this, _color);\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n\n for (const line of _classPrivateFieldGet(this, _content).split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n\n this.div.draggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this.div.draggable = false;\n this.editorDiv.contentEditable = true;\n }\n\n return this.div;\n }\n\n get contentDiv() {\n return this.editorDiv;\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n\n _classPrivateFieldSet(editor, _fontSize, data.fontSize);\n\n _classPrivateFieldSet(editor, _color, _util.Util.makeHexColor(...data.color));\n\n _classPrivateFieldSet(editor, _content, data.value);\n\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor;\n const rect = this.getRect(padding, padding);\n\n const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color);\n\n return {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: _classPrivateFieldGet(this, _fontSize),\n value: _classPrivateFieldGet(this, _content),\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.FreeTextEditor = FreeTextEditor;\n\nfunction _updateFontSize2(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor);\n\n _classPrivateFieldSet(this, _fontSize, size);\n\n _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this);\n };\n\n const savedFontsize = _classPrivateFieldGet(this, _fontSize);\n\n this.parent.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n}\n\nfunction _updateColor2(color) {\n const savedColor = _classPrivateFieldGet(this, _color);\n\n this.parent.addCommands({\n cmd: () => {\n _classPrivateFieldSet(this, _color, color);\n\n this.editorDiv.style.color = color;\n },\n undo: () => {\n _classPrivateFieldSet(this, _color, savedColor);\n\n this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n}\n\nfunction _extractText2() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n\n const buffer = [];\n\n for (let i = 0, ii = divs.length; i < ii; i++) {\n const div = divs[i];\n const first = div.firstChild;\n\n if ((first === null || first === void 0 ? void 0 : first.nodeName) === \"#text\") {\n buffer.push(first.data);\n } else {\n buffer.push(\"\");\n }\n }\n\n return buffer.join(\"\\n\");\n}\n\nfunction _setEditorDimensions2() {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const rect = this.div.getBoundingClientRect();\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n}\n\n_defineProperty(FreeTextEditor, \"_freeTextDefaultContent\", \"\");\n\n_defineProperty(FreeTextEditor, \"_l10nPromise\", void 0);\n\n_defineProperty(FreeTextEditor, \"_internalPadding\", 0);\n\n_defineProperty(FreeTextEditor, \"_defaultColor\", null);\n\n_defineProperty(FreeTextEditor, \"_defaultFontSize\", 10);\n\n_defineProperty(FreeTextEditor, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], FreeTextEditor.prototype.commitOrRemove]]));\n\n_defineProperty(FreeTextEditor, \"_type\", \"freetext\");\n\n/***/ }),\n/* 149 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nObject.defineProperty(exports, \"fitCurve\", ({\n enumerable: true,\n get: function () {\n return _pdfjsFitCurve.fitCurve;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(131);\n\nvar _pdfjsFitCurve = __w_pdfjs_require__(150);\n\nvar _tools = __w_pdfjs_require__(132);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nconst RESIZER_SIZE = 16;\n\nvar _aspectRatio = /*#__PURE__*/new WeakMap();\n\nvar _baseHeight = /*#__PURE__*/new WeakMap();\n\nvar _baseWidth = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointermove = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerleave = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerup = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerdown = /*#__PURE__*/new WeakMap();\n\nvar _disableEditing = /*#__PURE__*/new WeakMap();\n\nvar _isCanvasInitialized = /*#__PURE__*/new WeakMap();\n\nvar _lastPoint = /*#__PURE__*/new WeakMap();\n\nvar _observer = /*#__PURE__*/new WeakMap();\n\nvar _realWidth = /*#__PURE__*/new WeakMap();\n\nvar _realHeight = /*#__PURE__*/new WeakMap();\n\nvar _requestFrameCallback = /*#__PURE__*/new WeakMap();\n\nvar _updateThickness = /*#__PURE__*/new WeakSet();\n\nvar _updateColor = /*#__PURE__*/new WeakSet();\n\nvar _updateOpacity = /*#__PURE__*/new WeakSet();\n\nvar _getInitialBBox = /*#__PURE__*/new WeakSet();\n\nvar _setStroke = /*#__PURE__*/new WeakSet();\n\nvar _startDrawing = /*#__PURE__*/new WeakSet();\n\nvar _draw = /*#__PURE__*/new WeakSet();\n\nvar _stopDrawing = /*#__PURE__*/new WeakSet();\n\nvar _redraw = /*#__PURE__*/new WeakSet();\n\nvar _endDrawing = /*#__PURE__*/new WeakSet();\n\nvar _createCanvas = /*#__PURE__*/new WeakSet();\n\nvar _createObserver = /*#__PURE__*/new WeakSet();\n\nvar _setCanvasDims = /*#__PURE__*/new WeakSet();\n\nvar _setScaleFactor = /*#__PURE__*/new WeakSet();\n\nvar _updateTransform = /*#__PURE__*/new WeakSet();\n\nvar _serializePaths = /*#__PURE__*/new WeakSet();\n\nvar _extractPointsOnBezier = /*#__PURE__*/new WeakSet();\n\nvar _isAlmostFlat = /*#__PURE__*/new WeakSet();\n\nvar _getBbox = /*#__PURE__*/new WeakSet();\n\nvar _getPadding = /*#__PURE__*/new WeakSet();\n\nvar _fitToContent = /*#__PURE__*/new WeakSet();\n\nvar _setMinDims = /*#__PURE__*/new WeakSet();\n\nclass InkEditor extends _editor.AnnotationEditor {\n constructor(params) {\n super({ ...params,\n name: \"inkEditor\"\n });\n\n _classPrivateMethodInitSpec(this, _setMinDims);\n\n _classPrivateMethodInitSpec(this, _fitToContent);\n\n _classPrivateMethodInitSpec(this, _getPadding);\n\n _classPrivateMethodInitSpec(this, _getBbox);\n\n _classPrivateMethodInitSpec(this, _isAlmostFlat);\n\n _classPrivateMethodInitSpec(this, _extractPointsOnBezier);\n\n _classPrivateMethodInitSpec(this, _serializePaths);\n\n _classPrivateMethodInitSpec(this, _updateTransform);\n\n _classPrivateMethodInitSpec(this, _setScaleFactor);\n\n _classPrivateMethodInitSpec(this, _setCanvasDims);\n\n _classPrivateMethodInitSpec(this, _createObserver);\n\n _classPrivateMethodInitSpec(this, _createCanvas);\n\n _classPrivateMethodInitSpec(this, _endDrawing);\n\n _classPrivateMethodInitSpec(this, _redraw);\n\n _classPrivateMethodInitSpec(this, _stopDrawing);\n\n _classPrivateMethodInitSpec(this, _draw);\n\n _classPrivateMethodInitSpec(this, _startDrawing);\n\n _classPrivateMethodInitSpec(this, _setStroke);\n\n _classPrivateMethodInitSpec(this, _getInitialBBox);\n\n _classPrivateMethodInitSpec(this, _updateOpacity);\n\n _classPrivateMethodInitSpec(this, _updateColor);\n\n _classPrivateMethodInitSpec(this, _updateThickness);\n\n _classPrivateFieldInitSpec(this, _aspectRatio, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _baseHeight, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _baseWidth, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _boundCanvasPointermove, {\n writable: true,\n value: this.canvasPointermove.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundCanvasPointerleave, {\n writable: true,\n value: this.canvasPointerleave.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundCanvasPointerup, {\n writable: true,\n value: this.canvasPointerup.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _boundCanvasPointerdown, {\n writable: true,\n value: this.canvasPointerdown.bind(this)\n });\n\n _classPrivateFieldInitSpec(this, _disableEditing, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _isCanvasInitialized, {\n writable: true,\n value: false\n });\n\n _classPrivateFieldInitSpec(this, _lastPoint, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _observer, {\n writable: true,\n value: null\n });\n\n _classPrivateFieldInitSpec(this, _realWidth, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _realHeight, {\n writable: true,\n value: 0\n });\n\n _classPrivateFieldInitSpec(this, _requestFrameCallback, {\n writable: true,\n value: null\n });\n\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"editor_ink_canvas_aria_label\", \"editor_ink_aria_label\"].map(str => [str, l10n.get(str)]));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n _classPrivateMethodGet(this, _updateThickness, _updateThickness2).call(this, value);\n\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value);\n\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n _classPrivateMethodGet(this, _updateOpacity, _updateOpacity2).call(this, value);\n\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n\n get propertiesToUpdate() {\n var _this$opacity;\n\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * ((_this$opacity = this.opacity) !== null && _this$opacity !== void 0 ? _this$opacity : InkEditor._defaultOpacity))]];\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.canvas) {\n _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n\n _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n }\n\n _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n }\n\n remove() {\n if (this.canvas === null) {\n return;\n }\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n\n _classPrivateFieldGet(this, _observer).disconnect();\n\n _classPrivateFieldSet(this, _observer, null);\n\n super.remove();\n }\n\n enableEditMode() {\n if (_classPrivateFieldGet(this, _disableEditing) || this.canvas === null) {\n return;\n }\n\n super.enableEditMode();\n this.div.draggable = false;\n this.canvas.addEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundCanvasPointerdown));\n this.canvas.addEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundCanvasPointerup));\n }\n\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n\n super.disableEditMode();\n this.div.draggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundCanvasPointerdown));\n this.canvas.removeEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundCanvasPointerup));\n }\n\n onceAdded() {\n this.div.draggable = !this.isEmpty();\n }\n\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n\n commit() {\n if (_classPrivateFieldGet(this, _disableEditing)) {\n return;\n }\n\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n\n _classPrivateFieldSet(this, _disableEditing, true);\n\n this.div.classList.add(\"disabled\");\n\n _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this, true);\n\n this.parent.addInkEditorIfNeeded(true);\n this.parent.moveEditorInDOM(this);\n this.div.focus();\n }\n\n focusin(event) {\n super.focusin(event);\n this.enableEditMode();\n }\n\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || _classPrivateFieldGet(this, _disableEditing)) {\n return;\n }\n\n this.setInForeground();\n\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n\n event.stopPropagation();\n this.canvas.addEventListener(\"pointerleave\", _classPrivateFieldGet(this, _boundCanvasPointerleave));\n this.canvas.addEventListener(\"pointermove\", _classPrivateFieldGet(this, _boundCanvasPointermove));\n\n _classPrivateMethodGet(this, _startDrawing, _startDrawing2).call(this, event.offsetX, event.offsetY);\n }\n\n canvasPointermove(event) {\n event.stopPropagation();\n\n _classPrivateMethodGet(this, _draw, _draw2).call(this, event.offsetX, event.offsetY);\n }\n\n canvasPointerup(event) {\n if (event.button !== 0) {\n return;\n }\n\n if (this.isInEditMode() && this.currentPath.length !== 0) {\n event.stopPropagation();\n\n _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event);\n\n this.setInBackground();\n }\n }\n\n canvasPointerleave(event) {\n _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event);\n\n this.setInBackground();\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n\n InkEditor._l10nPromise.get(\"editor_ink_aria_label\").then(msg => {\n var _this$div;\n\n return (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.setAttribute(\"aria-label\", msg);\n });\n\n const [x, y, w, h] = _classPrivateMethodGet(this, _getInitialBBox, _getInitialBBox2).call(this);\n\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n\n _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n\n _classPrivateFieldSet(this, _isCanvasInitialized, true);\n\n _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this);\n\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n\n _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n\n return this.div;\n }\n\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n\n if (_classPrivateFieldGet(this, _realWidth) === roundedWidth && _classPrivateFieldGet(this, _realHeight) === roundedHeight) {\n return;\n }\n\n _classPrivateFieldSet(this, _realWidth, roundedWidth);\n\n _classPrivateFieldSet(this, _realHeight, roundedHeight);\n\n this.canvas.style.visibility = \"hidden\";\n\n if (_classPrivateFieldGet(this, _aspectRatio) && Math.abs(_classPrivateFieldGet(this, _aspectRatio) - width / height) > 1e-2) {\n height = Math.ceil(width / _classPrivateFieldGet(this, _aspectRatio));\n this.setDims(width, height);\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n\n if (_classPrivateFieldGet(this, _disableEditing)) {\n _classPrivateMethodGet(this, _setScaleFactor, _setScaleFactor2).call(this, width, height);\n }\n\n _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n this.canvas.style.visibility = \"visible\";\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = parent.scaleFactor;\n const padding = data.thickness / 2;\n\n _classPrivateFieldSet(editor, _aspectRatio, width / height);\n\n _classPrivateFieldSet(editor, _disableEditing, true);\n\n _classPrivateFieldSet(editor, _realWidth, Math.round(width));\n\n _classPrivateFieldSet(editor, _realHeight, Math.round(height));\n\n for (const {\n bezier\n } of data.paths) {\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (height - bezier[1] - padding);\n\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (height - bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (height - bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (height - bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n\n const path2D = _classStaticPrivateMethodGet(this, InkEditor, _buildPath2D).call(this, path);\n\n editor.bezierPath2D.push(path2D);\n }\n\n const bbox = _classPrivateMethodGet(editor, _getBbox, _getBbox2).call(editor);\n\n _classPrivateFieldSet(editor, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0]));\n\n _classPrivateFieldSet(editor, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1]));\n\n _classPrivateMethodGet(editor, _setScaleFactor, _setScaleFactor2).call(editor, width, height);\n\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const rect = this.getRect(0, 0);\n const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0];\n\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: _classPrivateMethodGet(this, _serializePaths, _serializePaths2).call(this, this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height),\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.InkEditor = InkEditor;\n\nfunction _updateThickness2(thickness) {\n const savedThickness = this.thickness;\n this.parent.addCommands({\n cmd: () => {\n this.thickness = thickness;\n\n _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n },\n undo: () => {\n this.thickness = savedThickness;\n\n _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n}\n\nfunction _updateColor2(color) {\n const savedColor = this.color;\n this.parent.addCommands({\n cmd: () => {\n this.color = color;\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n },\n undo: () => {\n this.color = savedColor;\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n}\n\nfunction _updateOpacity2(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.parent.addCommands({\n cmd: () => {\n this.opacity = opacity;\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n },\n undo: () => {\n this.opacity = savedOpacity;\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n}\n\nfunction _getInitialBBox2() {\n const {\n width,\n height,\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [0, width, width, height];\n\n case 180:\n return [width, height, width, height];\n\n case 270:\n return [height, 0, width, height];\n\n default:\n return [0, 0, width, height];\n }\n}\n\nfunction _setStroke2() {\n this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor;\n this.ctx.lineCap = \"round\";\n this.ctx.lineJoin = \"round\";\n this.ctx.miterLimit = 10;\n this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`;\n}\n\nfunction _startDrawing2(x, y) {\n this.isEditing = true;\n\n if (!_classPrivateFieldGet(this, _isCanvasInitialized)) {\n var _this$opacity2;\n\n _classPrivateFieldSet(this, _isCanvasInitialized, true);\n\n _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n this.thickness || (this.thickness = InkEditor._defaultThickness);\n this.color || (this.color = InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor);\n (_this$opacity2 = this.opacity) !== null && _this$opacity2 !== void 0 ? _this$opacity2 : this.opacity = InkEditor._defaultOpacity;\n }\n\n this.currentPath.push([x, y]);\n\n _classPrivateFieldSet(this, _lastPoint, null);\n\n _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this);\n\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n\n _classPrivateFieldSet(this, _requestFrameCallback, () => {\n if (!_classPrivateFieldGet(this, _requestFrameCallback)) {\n return;\n }\n\n if (_classPrivateFieldGet(this, _lastPoint)) {\n if (this.isEmpty()) {\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n } else {\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n }\n\n this.ctx.lineTo(..._classPrivateFieldGet(this, _lastPoint));\n\n _classPrivateFieldSet(this, _lastPoint, null);\n\n this.ctx.stroke();\n }\n\n window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback));\n });\n\n window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback));\n}\n\nfunction _draw2(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x === lastX && y === lastY) {\n return;\n }\n\n this.currentPath.push([x, y]);\n\n _classPrivateFieldSet(this, _lastPoint, [x, y]);\n}\n\nfunction _stopDrawing2(x, y) {\n this.ctx.closePath();\n\n _classPrivateFieldSet(this, _requestFrameCallback, null);\n\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x !== lastX || y !== lastY) {\n this.currentPath.push([x, y]);\n }\n\n let bezier;\n\n if (this.currentPath.length !== 1) {\n bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null);\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n\n const path2D = _classStaticPrivateMethodGet(InkEditor, InkEditor, _buildPath2D).call(InkEditor, bezier);\n\n this.currentPath.length = 0;\n\n const cmd = () => {\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n\n const undo = () => {\n this.paths.pop();\n this.bezierPath2D.pop();\n\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n }\n\n _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n }\n };\n\n this.parent.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n}\n\nfunction _redraw2() {\n if (this.isEmpty()) {\n _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n\n return;\n }\n\n _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this);\n\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n}\n\nfunction _endDrawing2(event) {\n _classPrivateMethodGet(this, _stopDrawing, _stopDrawing2).call(this, event.offsetX, event.offsetY);\n\n this.canvas.removeEventListener(\"pointerleave\", _classPrivateFieldGet(this, _boundCanvasPointerleave));\n this.canvas.removeEventListener(\"pointermove\", _classPrivateFieldGet(this, _boundCanvasPointermove));\n this.parent.addToAnnotationStorage(this);\n}\n\nfunction _createCanvas2() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n\n InkEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => {\n var _this$canvas;\n\n return (_this$canvas = this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.setAttribute(\"aria-label\", msg);\n });\n\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n}\n\nfunction _createObserver2() {\n _classPrivateFieldSet(this, _observer, new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n }));\n\n _classPrivateFieldGet(this, _observer).observe(this.div);\n}\n\nfunction _setCanvasDims2() {\n if (!_classPrivateFieldGet(this, _isCanvasInitialized)) {\n return;\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n\n _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n}\n\nfunction _setScaleFactor2(width, height) {\n const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this);\n\n const scaleFactorW = (width - padding) / _classPrivateFieldGet(this, _baseWidth);\n\n const scaleFactorH = (height - padding) / _classPrivateFieldGet(this, _baseHeight);\n\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n}\n\nfunction _updateTransform2() {\n const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this) / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n}\n\nfunction _buildPath2D(bezier) {\n const path2D = new Path2D();\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n\n if (i === 0) {\n path2D.moveTo(...first);\n }\n\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n\n return path2D;\n}\n\nfunction _serializePaths2(s, tx, ty, h) {\n const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4;\n const paths = [];\n const padding = this.thickness / 2;\n let buffer, points;\n\n for (const bezier of this.paths) {\n buffer = [];\n points = [];\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n const p10 = s * (first[0] + tx) + padding;\n const p11 = h - s * (first[1] + ty) - padding;\n const p20 = s * (control1[0] + tx) + padding;\n const p21 = h - s * (control1[1] + ty) - padding;\n const p30 = s * (control2[0] + tx) + padding;\n const p31 = h - s * (control2[1] + ty) - padding;\n const p40 = s * (second[0] + tx) + padding;\n const p41 = h - s * (second[1] + ty) - padding;\n\n if (i === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n\n buffer.push(p20, p21, p30, p31, p40, p41);\n\n _classPrivateMethodGet(this, _extractPointsOnBezier, _extractPointsOnBezier2).call(this, p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points);\n }\n\n paths.push({\n bezier: buffer,\n points\n });\n }\n\n return paths;\n}\n\nfunction _extractPointsOnBezier2(p10, p11, p20, p21, p30, p31, p40, p41, n, points) {\n if (_classPrivateMethodGet(this, _isAlmostFlat, _isAlmostFlat2).call(this, p10, p11, p20, p21, p30, p31, p40, p41)) {\n points.push(p40, p41);\n return;\n }\n\n for (let i = 1; i < n - 1; i++) {\n const t = i / n;\n const mt = 1 - t;\n let q10 = t * p10 + mt * p20;\n let q11 = t * p11 + mt * p21;\n let q20 = t * p20 + mt * p30;\n let q21 = t * p21 + mt * p31;\n const q30 = t * p30 + mt * p40;\n const q31 = t * p31 + mt * p41;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n q20 = t * q20 + mt * q30;\n q21 = t * q21 + mt * q31;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n points.push(q10, q11);\n }\n\n points.push(p40, p41);\n}\n\nfunction _isAlmostFlat2(p10, p11, p20, p21, p30, p31, p40, p41) {\n const tol = 10;\n const ax = (3 * p20 - 2 * p10 - p40) ** 2;\n const ay = (3 * p21 - 2 * p11 - p41) ** 2;\n const bx = (3 * p30 - p10 - 2 * p40) ** 2;\n const by = (3 * p31 - p11 - 2 * p41) ** 2;\n return Math.max(ax, bx) + Math.max(ay, by) <= tol;\n}\n\nfunction _getBbox2() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n\n return [xMin, yMin, xMax, yMax];\n}\n\nfunction _getPadding2() {\n return _classPrivateFieldGet(this, _disableEditing) ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0;\n}\n\nfunction _fitToContent2() {\n let firstTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.isEmpty()) {\n return;\n }\n\n if (!_classPrivateFieldGet(this, _disableEditing)) {\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n return;\n }\n\n const bbox = _classPrivateMethodGet(this, _getBbox, _getBbox2).call(this);\n\n const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this);\n\n _classPrivateFieldSet(this, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0]));\n\n _classPrivateFieldSet(this, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1]));\n\n const width = Math.ceil(padding + _classPrivateFieldGet(this, _baseWidth) * this.scaleFactor);\n const height = Math.ceil(padding + _classPrivateFieldGet(this, _baseHeight) * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n\n _classPrivateFieldSet(this, _aspectRatio, width / height);\n\n _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this);\n\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n\n _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n _classPrivateFieldSet(this, _realWidth, width);\n\n _classPrivateFieldSet(this, _realHeight, height);\n\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n}\n\nfunction _setMinDims2() {\n const {\n style\n } = this.div;\n\n if (_classPrivateFieldGet(this, _aspectRatio) >= 1) {\n style.minHeight = `${RESIZER_SIZE}px`;\n style.minWidth = `${Math.round(_classPrivateFieldGet(this, _aspectRatio) * RESIZER_SIZE)}px`;\n } else {\n style.minWidth = `${RESIZER_SIZE}px`;\n style.minHeight = `${Math.round(RESIZER_SIZE / _classPrivateFieldGet(this, _aspectRatio))}px`;\n }\n}\n\n_defineProperty(InkEditor, \"_defaultColor\", null);\n\n_defineProperty(InkEditor, \"_defaultOpacity\", 1);\n\n_defineProperty(InkEditor, \"_defaultThickness\", 1);\n\n_defineProperty(InkEditor, \"_l10nPromise\", void 0);\n\n_defineProperty(InkEditor, \"_type\", \"ink\");\n\n/***/ }),\n/* 150 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.fitCurve = void 0;\n\nconst fitCurve = __w_pdfjs_require__(151);\n\nexports.fitCurve = fitCurve;\n\n/***/ }),\n/* 151 */\n/***/ ((module) => {\n\n\"use strict\";\n\n\nfunction fitCurve(points, maxError, progressCallback) {\n if (!Array.isArray(points)) {\n throw new TypeError(\"First argument should be an array\");\n }\n\n points.forEach(point => {\n if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) {\n throw Error(\"Each point should be an array of numbers. Each point should have the same amount of numbers.\");\n }\n });\n points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j]));\n\n if (points.length < 2) {\n return [];\n }\n\n const len = points.length;\n const leftTangent = createTangent(points[1], points[0]);\n const rightTangent = createTangent(points[len - 2], points[len - 1]);\n return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback);\n}\n\nfunction fitCubic(points, leftTangent, rightTangent, error, progressCallback) {\n const MaxIterations = 20;\n var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i;\n\n if (points.length === 2) {\n dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0;\n bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]];\n return [bezCurve];\n }\n\n u = chordLengthParameterize(points);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback);\n\n if (maxError === 0 || maxError < error) {\n return [bezCurve];\n }\n\n if (maxError < error * error) {\n uPrime = u;\n prevErr = maxError;\n prevSplit = splitPoint;\n\n for (i = 0; i < MaxIterations; i++) {\n uPrime = reparameterize(bezCurve, points, uPrime);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback);\n\n if (maxError < error) {\n return [bezCurve];\n } else if (splitPoint === prevSplit) {\n let errChange = maxError / prevErr;\n\n if (errChange > .9999 && errChange < 1.0001) {\n break;\n }\n }\n\n prevErr = maxError;\n prevSplit = splitPoint;\n }\n }\n\n beziers = [];\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]);\n\n if (centerVector.every(val => val === 0)) {\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]);\n [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]];\n }\n\n toCenterTangent = maths.normalize(centerVector);\n fromCenterTangent = maths.mulItems(toCenterTangent, -1);\n beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback));\n beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback));\n return beziers;\n}\n\n;\n\nfunction generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) {\n var bezCurve, maxError, splitPoint;\n bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback);\n [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig);\n\n if (progressCallback) {\n progressCallback({\n bez: bezCurve,\n points: points,\n params: paramsOrig,\n maxErr: maxError,\n maxPoint: splitPoint\n });\n }\n\n return [bezCurve, maxError, splitPoint];\n}\n\nfunction generateBezier(points, parameters, leftTangent, rightTangent) {\n var bezCurve,\n A,\n a,\n C,\n X,\n det_C0_C1,\n det_C0_X,\n det_X_C1,\n alpha_l,\n alpha_r,\n epsilon,\n segLength,\n i,\n len,\n tmp,\n u,\n ux,\n firstPoint = points[0],\n lastPoint = points[points.length - 1];\n bezCurve = [firstPoint, null, null, lastPoint];\n A = maths.zeros_Xx2x2(parameters.length);\n\n for (i = 0, len = parameters.length; i < len; i++) {\n u = parameters[i];\n ux = 1 - u;\n a = A[i];\n a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux));\n a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u));\n }\n\n C = [[0, 0], [0, 0]];\n X = [0, 0];\n\n for (i = 0, len = points.length; i < len; i++) {\n u = parameters[i];\n a = A[i];\n C[0][0] += maths.dot(a[0], a[0]);\n C[0][1] += maths.dot(a[0], a[1]);\n C[1][0] += maths.dot(a[0], a[1]);\n C[1][1] += maths.dot(a[1], a[1]);\n tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u));\n X[0] += maths.dot(a[0], tmp);\n X[1] += maths.dot(a[1], tmp);\n }\n\n det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];\n det_C0_X = C[0][0] * X[1] - C[1][0] * X[0];\n det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];\n alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1;\n alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1;\n segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint));\n epsilon = 1.0e-6 * segLength;\n\n if (alpha_l < epsilon || alpha_r < epsilon) {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0));\n } else {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r));\n }\n\n return bezCurve;\n}\n\n;\n\nfunction reparameterize(bezier, points, parameters) {\n return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p));\n}\n\n;\n\nfunction newtonRaphsonRootFind(bez, point, u) {\n var d = maths.subtract(bezier.q(bez, u), point),\n qprime = bezier.qprime(bez, u),\n numerator = maths.mulMatrix(d, qprime),\n denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u));\n\n if (denominator === 0) {\n return u;\n } else {\n return u - numerator / denominator;\n }\n}\n\n;\n\nfunction chordLengthParameterize(points) {\n var u = [],\n currU,\n prevU,\n prevP;\n points.forEach((p, i) => {\n currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0;\n u.push(currU);\n prevU = currU;\n prevP = p;\n });\n u = u.map(x => x / prevU);\n return u;\n}\n\n;\n\nfunction computeMaxError(points, bez, parameters) {\n var dist, maxDist, splitPoint, v, i, count, point, t;\n maxDist = 0;\n splitPoint = Math.floor(points.length / 2);\n const t_distMap = mapTtoRelativeDistances(bez, 10);\n\n for (i = 0, count = points.length; i < count; i++) {\n point = points[i];\n t = find_t(bez, parameters[i], t_distMap, 10);\n v = maths.subtract(bezier.q(bez, t), point);\n dist = v[0] * v[0] + v[1] * v[1];\n\n if (dist > maxDist) {\n maxDist = dist;\n splitPoint = i;\n }\n }\n\n return [maxDist, splitPoint];\n}\n\n;\n\nvar mapTtoRelativeDistances = function (bez, B_parts) {\n var B_t_curr;\n var B_t_dist = [0];\n var B_t_prev = bez[0];\n var sumLen = 0;\n\n for (var i = 1; i <= B_parts; i++) {\n B_t_curr = bezier.q(bez, i / B_parts);\n sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev));\n B_t_dist.push(sumLen);\n B_t_prev = B_t_curr;\n }\n\n B_t_dist = B_t_dist.map(x => x / sumLen);\n return B_t_dist;\n};\n\nfunction find_t(bez, param, t_distMap, B_parts) {\n if (param < 0) {\n return 0;\n }\n\n if (param > 1) {\n return 1;\n }\n\n var lenMax, lenMin, tMax, tMin, t;\n\n for (var i = 1; i <= B_parts; i++) {\n if (param <= t_distMap[i]) {\n tMin = (i - 1) / B_parts;\n tMax = i / B_parts;\n lenMin = t_distMap[i - 1];\n lenMax = t_distMap[i];\n t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin;\n break;\n }\n }\n\n return t;\n}\n\nfunction createTangent(pointA, pointB) {\n return maths.normalize(maths.subtract(pointA, pointB));\n}\n\nclass maths {\n static zeros_Xx2x2(x) {\n var zs = [];\n\n while (x--) {\n zs.push([0, 0]);\n }\n\n return zs;\n }\n\n static mulItems(items, multiplier) {\n return items.map(x => x * multiplier);\n }\n\n static mulMatrix(m1, m2) {\n return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0);\n }\n\n static subtract(arr1, arr2) {\n return arr1.map((x1, i) => x1 - arr2[i]);\n }\n\n static addArrays(arr1, arr2) {\n return arr1.map((x1, i) => x1 + arr2[i]);\n }\n\n static addItems(items, addition) {\n return items.map(x => x + addition);\n }\n\n static sum(items) {\n return items.reduce((sum, x) => sum + x);\n }\n\n static dot(m1, m2) {\n return maths.mulMatrix(m1, m2);\n }\n\n static vectorLen(v) {\n return Math.hypot(...v);\n }\n\n static divItems(items, divisor) {\n return items.map(x => x / divisor);\n }\n\n static squareItems(items) {\n return items.map(x => x * x);\n }\n\n static normalize(v) {\n return this.divItems(v, this.vectorLen(v));\n }\n\n}\n\nclass bezier {\n static q(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx),\n pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t),\n pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t),\n pD = maths.mulItems(ctrlPoly[3], t * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD));\n }\n\n static qprime(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx),\n pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t),\n pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), pC);\n }\n\n static qprimeprime(ctrlPoly, t) {\n return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t));\n }\n\n}\n\nmodule.exports = fitCurve;\nmodule.exports.fitCubic = fitCubic;\nmodule.exports.createTangent = createTangent;\n\n/***/ }),\n/* 152 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _annotation_storage = __w_pdfjs_require__(130);\n\nvar _scripting_utils = __w_pdfjs_require__(153);\n\nvar _xfa_layer = __w_pdfjs_require__(154);\n\nfunction _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters) {\n let {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n _createContainer() {\n let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n const {\n width,\n height\n } = getRectDims(data.rect);\n const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n const borderColor = data.borderColor || null;\n\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`;\n const {\n rotation\n } = data;\n\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n\n return container;\n }\n\n setRotation(angle) {\n let container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.container;\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n };\n\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print\n });\n },\n hidden: event => {\n this.container.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n\n if (action) {\n action(jsEvent);\n }\n }\n }\n\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n\n if (!storedData) {\n return;\n }\n\n const commonActions = this._commonActions;\n\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n\n _createQuadrilaterals() {\n let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n _createPopup(trigger, data) {\n let container = this.container;\n\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n container.append(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = \"100%\";\n container.append(popup);\n }\n\n _renderQuadrilaterals(className) {\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n\n return this.quadrilaterals;\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n _getElementsByName(name) {\n let skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n\n if (id === skipId) {\n continue;\n }\n\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n\n return fields;\n }\n\n for (const domElement of document.getElementsByName(name)) {\n const {\n id,\n exportValue\n } = domElement;\n\n if (id === skipId) {\n continue;\n }\n\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder),\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n\n isBound = true;\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n\n isBound = true;\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.append(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n\n if (isBound) {\n this.container.append(link);\n }\n\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n\n return false;\n };\n\n if (destination || destination === \"\") {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n\n if (!jsName) {\n continue;\n }\n\n link[jsName] = () => {\n var _this$linkService$eve;\n\n (_this$linkService$eve = this.linkService.eventBus) === null || _this$linkService$eve === void 0 ? void 0 : _this$linkService$eve.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n\n if (!link.onclick) {\n link.onclick = () => false;\n }\n\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n default:\n continue;\n }\n\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n var _this$linkService$eve2;\n\n (_this$linkService$eve2 = this.linkService.eventBus) === null || _this$linkService$eve2 === void 0 ? void 0 : _this$linkService$eve2.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n\n return false;\n };\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.append(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = AnnotationElement.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n var _this$linkService$eve3;\n\n (_this$linkService$eve3 = this.linkService.eventBus) === null || _this$linkService$eve3 === void 0 ? void 0 : _this$linkService$eve3.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n var _this$linkService$eve4;\n\n (_this$linkService$eve4 = this.linkService.eventBus) === null || _this$linkService$eve4 === void 0 ? void 0 : _this$linkService$eve4.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n var _this$data$actions;\n\n if (eventName === \"Action\" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, Math.round(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n computedFontSize = Math.min(fontSize, Math.round(height / _util.LINE_FACTOR));\n }\n\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n\n element.setAttribute(\"aria-required\", isRequired);\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.formattedValue || storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n\n const elementData = {\n userValue: textContent,\n formattedValue: null,\n valueOnFocus: \"\"\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n this._setRequired(element, this.data.required);\n\n if (maxLen) {\n element.maxLength = maxLen;\n }\n\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n element.addEventListener(\"resetform\", event => {\n var _this$data$defaultFie;\n\n const defaultValue = (_this$data$defaultFie = this.data.defaultFieldValue) !== null && _this$data$defaultFie !== void 0 ? _this$data$defaultFie : \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n\n event.target.scrollLeft = 0;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n var _this$data$actions2;\n\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n\n elementData.valueOnFocus = event.target.value;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n var _event$detail$value;\n\n elementData.userValue = (_event$detail$value = event.detail.value) !== null && _event$detail$value !== void 0 ? _event$detail$value : \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue\n });\n },\n\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n\n charLimit: event => {\n var _this$linkService$eve5;\n\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n\n if (!value || value.length <= charLimit) {\n return;\n }\n\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n (_this$linkService$eve5 = this.linkService.eventBus) === null || _this$linkService$eve5 === void 0 ? void 0 : _this$linkService$eve5.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n var _this$linkService$eve6;\n\n let commitKey = -1;\n\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n\n if (commitKey === -1) {\n return;\n }\n\n const {\n value\n } = event.target;\n\n if (elementData.valueOnFocus === value) {\n return;\n }\n\n elementData.userValue = value;\n (_this$linkService$eve6 = this.linkService.eventBus) === null || _this$linkService$eve6 === void 0 ? void 0 : _this$linkService$eve6.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n const {\n value\n } = event.target;\n elementData.userValue = value;\n\n if (this._mouseState.isDown && elementData.valueOnFocus !== value) {\n var _this$linkService$eve7;\n\n (_this$linkService$eve7 = this.linkService.eventBus) === null || _this$linkService$eve7 === void 0 ? void 0 : _this$linkService$eve7.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n\n _blurListener(event);\n });\n\n if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n var _this$linkService$eve8;\n\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n\n if (match) {\n selStart -= match[0].length;\n }\n\n break;\n }\n\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n\n if (match) {\n selEnd += match[0].length;\n }\n\n break;\n }\n\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n\n break;\n\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n\n break;\n }\n\n event.preventDefault();\n (_this$linkService$eve8 = this.linkService.eventBus) === null || _this$linkService$eve8 === void 0 ? void 0 : _this$linkService$eve8.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"checkbox\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n const linkElement = container.lastChild;\n\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n\n this._setRequired(selectElement, this.data.required);\n\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n\n selectElement.append(optionElement);\n }\n\n let removeEmptyEntry = null;\n\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n\n if (!event.target.multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n var _removeEmptyEntry;\n\n (_removeEmptyEntry = removeEmptyEntry) === null || _removeEmptyEntry === void 0 ? void 0 : _removeEmptyEntry();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n\n if (i === -1) {\n options[0].selected = true;\n }\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n storage.setValue(id, {\n value: null,\n items: []\n });\n },\n\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n items(event) {\n const {\n items\n } = event.detail;\n\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n indices(event) {\n const indices = new Set(event.detail.indices);\n\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n var _this$linkService$eve9;\n\n const exportValue = getValue(event, true);\n const value = getValue(event, false);\n storage.setValue(id, {\n value: exportValue\n });\n (_this$linkService$eve9 = this.linkService.eventBus) === null || _this$linkService$eve9 === void 0 ? void 0 : _this$linkService$eve9.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], event => event.target.checked);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(event, true)\n });\n });\n }\n\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n\n this._setBackgroundColor(selectElement);\n\n this._setDefaultPropertiesFromJS(selectElement);\n\n this.container.append(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2;\n\n const isRenderable = !!((_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\n });\n const page = this.page;\n\n const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`;\n this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`;\n this.container.append(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n var _this$richText, _this$contentsObj;\n\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.append(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.append(modificationDate);\n }\n\n if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n\n popup.append(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.append(popup);\n return wrapper;\n }\n\n _formatContents(_ref) {\n let {\n str,\n dir\n } = _ref;\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show() {\n let pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex = parseInt(this.container.style.zIndex) + 1000;\n }\n }\n\n _hide() {\n let unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex = parseInt(this.container.style.zIndex) - 1000;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.className = \"annotationTextContent\";\n content.setAttribute(\"role\", \"comment\");\n\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n\n this.container.append(content);\n }\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl4, _parameters$data$cont4, _parameters$data$rich4;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n\n this._createPopup(line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl5, _parameters$data$cont5, _parameters$data$rich5;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n\n this._createPopup(square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl6, _parameters$data$cont6, _parameters$data$rich6;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n\n this._createPopup(circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl7, _parameters$data$cont7, _parameters$data$rich7;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n\n this._createPopup(polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl9, _parameters$data$cont9, _parameters$data$rich9;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n this._createPopup(polyline, data);\n\n svg.append(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _parameters$data$titl14, _parameters$data$cont14, _parameters$data$rich14;\n\n const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl14 = parameters.data.titleObj) !== null && _parameters$data$titl14 !== void 0 && _parameters$data$titl14.str || (_parameters$data$cont14 = parameters.data.contentsObj) !== null && _parameters$data$cont14 !== void 0 && _parameters$data$cont14.str || (_parameters$data$rich14 = parameters.data.richText) !== null && _parameters$data$rich14 !== void 0 && _parameters$data$rich14.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n var _this$linkService$eve10;\n\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n (_this$linkService$eve10 = this.linkService.eventBus) === null || _this$linkService$eve10 === void 0 ? void 0 : _this$linkService$eve10.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n\n render() {\n var _this$data$titleObj, _this$data$contentsOb;\n\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.append(trigger);\n return this.container;\n }\n\n _download() {\n var _this$downloadManager;\n\n (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, this.content, this.filename);\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const {\n annotations,\n div,\n viewport,\n accessibilityManager\n } = parameters;\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport);\n\n let zIndex = 0;\n\n for (const data of annotations) {\n if (data.annotationType !== _util.AnnotationType.POPUP) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n\n if (width <= 0 || height <= 0) {\n continue;\n }\n }\n\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || {\n isDown: false\n }\n });\n\n if (element.isRenderable) {\n const rendered = element.render();\n\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n renderedElement.style.zIndex = zIndex++;\n\n _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, renderedElement, data.id, div, accessibilityManager);\n }\n } else {\n rendered.style.zIndex = zIndex++;\n\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, rendered, data.id, div, accessibilityManager);\n }\n }\n }\n }\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap);\n }\n\n static update(parameters) {\n const {\n annotationCanvasMap,\n div,\n viewport\n } = parameters;\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport);\n\n _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap);\n\n div.hidden = false;\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\nfunction _appendElement(element, id, div, accessibilityManager) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_display_utils.AnnotationPrefix}${id}`;\n div.append(element);\n accessibilityManager === null || accessibilityManager === void 0 ? void 0 : accessibilityManager.moveElementInDOM(div, element, contentElement, false);\n}\n\nfunction _setDimensions(div, _ref2) {\n let {\n width,\n height,\n rotation\n } = _ref2;\n const {\n style\n } = div;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n style.width = flipOrientation ? heightStr : widthStr;\n style.height = flipOrientation ? widthStr : heightStr;\n div.setAttribute(\"data-main-rotation\", rotation);\n}\n\nfunction _setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n\n if (!element) {\n continue;\n }\n\n const {\n firstChild\n } = element;\n\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n\n annotationCanvasMap.clear();\n}\n\n/***/ }),\n/* 153 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nclass ColorConverters {\n static CMYK_G(_ref) {\n let [c, y, m, k] = _ref;\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK(_ref2) {\n let [g] = _ref2;\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB(_ref3) {\n let [g] = _ref3;\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML(_ref4) {\n let [g] = _ref4;\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G(_ref5) {\n let [r, g, b] = _ref5;\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML(_ref6) {\n let [r, g, b] = _ref6;\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB(_ref7) {\n let [c, y, m, k] = _ref7;\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n\n static RGB_CMYK(_ref8) {\n let [r, g, b] = _ref8;\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n\n}\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 154 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _xfa_text = __w_pdfjs_require__(145);\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n\n break;\n\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n\n static setAttributes(_ref) {\n let {\n html,\n element,\n storage = null,\n intent,\n linkService\n } = _ref;\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n\n break;\n\n case \"dataId\":\n break;\n\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n\n case \"style\":\n Object.assign(html.style, value);\n break;\n\n case \"textContent\":\n html.textContent = value;\n break;\n\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n\n }\n }\n\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n const textDivs = [];\n\n while (stack.length > 0) {\n var _child$attributes;\n\n const [parent, i, html] = stack.at(-1);\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack.at(-1)[1]];\n\n if (child === null) {\n continue;\n }\n\n const {\n name\n } = child;\n\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n\n let childHtml;\n\n if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.append(childHtml);\n\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n\n childHtml.append(node);\n }\n }\n\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs\n };\n }\n\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n\n}\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 155 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = task._enhanceTextSelection ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n fontSize: 0\n } : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n\n task._textDivs.push(textDiv);\n\n const tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n let m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n\n const divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = _util.Util.applyTransform(points[j], m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n const expanded = new Array(boxes.length);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n }\n\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n const horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n\n for (const boundary of bounds) {\n let i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n let j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n const changedHorizon = [];\n let lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon.at(-1).end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon.at(-1).end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n let used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1, ...changedHorizon]);\n }\n\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor(_ref) {\n var _globalThis$FontInspe;\n\n let {\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n } = _ref;\n\n if (enhanceTextSelection) {\n (0, _display_utils.deprecated)(\"The `enhanceTextSelection` functionality will be removed in the future.\");\n }\n\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!((_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n this._devicePixelRatio = globalThis.devicePixelRatio || 1;\n\n this._capability.promise.finally(() => {\n if (!this._enhanceTextSelection) {\n this._textDivProperties = null;\n }\n\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n\n this._container.classList.add(\"markedContent\");\n\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n\n parent.append(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n\n continue;\n }\n\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const {\n fontFamily\n } = textDiv.style;\n const {\n fontSize\n } = textDivProperties;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n const scale = this._devicePixelRatio * textDivProperties.canvasWidth / width;\n\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n\n transform = `scaleX(${scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.append(br);\n }\n }\n\n _render() {\n let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(_ref2 => {\n let {\n value,\n done\n } = _ref2;\n\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\" parameters specified.');\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n expandTextDivs() {\n let expandDivs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n\n}\n\nexports.TextLayerRenderTask = TextLayerRenderTask;\n\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n}\n\n/***/ }),\n/* 156 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nlet SVGGraphics = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n }\n\n};\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const createObjectURL = function (data) {\n let contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class {\n constructor(commonObjs, objs) {\n let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n\n this._ensureTransformGroup().append(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n var _current$txtElement;\n\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().append(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().append(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element) {\n let lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().append(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n\n this._ensureTransformGroup().append(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 157 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 158 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(159);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nfunction validateRangeRequestCapabilities(_ref) {\n let {\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n } = _ref;\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 159 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {}\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 160 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url) {\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n var _pendingRequest$onPro;\n\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt);\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n var _pendingRequest$onErr;\n\n (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status);\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n var _pendingRequest$onErr2;\n\n (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status);\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n var _pendingRequest$onErr3;\n\n (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n var _this$_fullRequestRea;\n\n (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n this._headersReceivedCapability.reject(this._storedError);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n var _this$onProgress;\n\n (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, {\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n var _this$onClosed;\n\n (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this);\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._close();\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n var _this$onProgress2;\n\n (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, {\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 161 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n this._abortController.abort();\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n this._abortController.abort();\n }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(129);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _annotation_editor_layer = __w_pdfjs_require__(147);\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _annotation_layer = __w_pdfjs_require__(152);\n\nvar _worker_options = __w_pdfjs_require__(140);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _text_layer = __w_pdfjs_require__(155);\n\nvar _svg = __w_pdfjs_require__(156);\n\nvar _xfa_layer = __w_pdfjs_require__(154);\n\nconst pdfjsVersion = '2.16.105';\nconst pdfjsBuild = '172ccdbe5';\n{\n if (_is_node.isNodeJS) {\n const {\n PDFNodeStream\n } = __w_pdfjs_require__(157);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const {\n PDFNetworkStream\n } = __w_pdfjs_require__(160);\n\n const {\n PDFFetchStream\n } = __w_pdfjs_require__(161);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if ((0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map",":host {\n position: relative;\n display: inline-flex;\n width: 100%;\n height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-pdf__pages {\n overflow: auto;\n width: 100%;\n height: 100%;\n padding: var(--s-space-16);\n}\n\n.file-viewer-pdf__page {\n position: relative;\n margin-right: auto;\n margin-left: auto;\n\n &:not(:last-of-type) {\n margin-bottom: var(--s-space-8);\n }\n}\n\n.file-viewer-pdf__canvas {\n width: 100%;\n height: 100%;\n margin-right: auto;\n margin-left: auto;\n box-shadow: 0.125rem 0.25rem 1rem rgba(0, 0, 0, 0.08);\n}\n\n.file-viewer-pdf__text-container {\n position: absolute;\n overflow: hidden;\n line-height: 1;\n text-align: initial;\n inset: 0;\n text-size-adjust: none;\n forced-color-adjust: none;\n\n & > * {\n position: absolute;\n color: transparent;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n\n &.markedContent {\n top: 0;\n height: 0;\n }\n\n &.highlight {\n margin: -1px;\n padding: 1px;\n border-radius: 4px;\n background-color: rgba(180, 0, 170, 1);\n }\n\n &.highlight.appended {\n position: initial;\n }\n\n &.highlight.begin {\n border-radius: 4px 0 0 4px;\n }\n\n &.highlight.end {\n border-radius: 0 4px 4px 0;\n }\n\n &.highlight.middle {\n border-radius: 0;\n }\n\n &.highlight.selected {\n background-color: rgba(0, 100, 0, 1);\n }\n\n &.endOfContent {\n position: absolute;\n z-index: -1;\n top: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n &.endOfContent.active {\n top: 0;\n }\n }\n\n & > br {\n &::-moz-selection {\n background: transparent;\n }\n &::selection {\n background: transparent;\n }\n }\n}\n\n.file-viewer-pdf__spinner {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.2);\n inset: 0;\n}\n\n.file-viewer-pdf__error {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n.file-viewer-pdf__pagination {\n position: absolute;\n bottom: var(--s-space-32);\n left: 50%;\n padding: var(--s-space-4) var(--s-space-12);\n border-radius: var(--s-border-radius-base);\n color: var(--s-text-on-image);\n background-color: rgba(0, 0, 0, 0.6);\n font-weight: var(--s-font-weight-medium);\n line-height: var(--s-line-height-base);\n transform: translateX(-50%);\n pointer-events: none;\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport pdf, {\n getDocument,\n PDFDocumentProxy,\n PDFPageProxy,\n renderTextLayer,\n} from \"pdfjs-dist/legacy/build/pdf.js\";\nimport { getVisibleHeight } from \"../../../../utils\";\n\npdf.GlobalWorkerOptions.workerSrc = \"/pdfjs/pdf.worker.min.js\";\n\nexport type FlipFileViewerPdfZoom = number | \"auto\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-pdf.css\",\n tag: \"flip-file-viewer-pdf\",\n})\nexport class FlipFileViewerPdf {\n @Element() el: HTMLElement;\n\n @Prop() errorMessage?: string = \"File could not be loaded.\";\n @Prop() file!: string;\n @Prop() zoom?: FlipFileViewerPdfZoom = 1;\n\n @State() doc: PDFDocumentProxy;\n @State() error: boolean;\n @State() loading: boolean = true;\n @State() visiblePages: number[] = [];\n\n private pages: PDFPageProxy[] = [];\n private renderedPages: number[] = [];\n private renderingPageNumbers: number[] = [];\n private scrollContainer: HTMLDivElement;\n\n async componentWillLoad() {\n await this.getPages();\n }\n\n async componentDidLoad() {\n await this.updateVisiblePages();\n }\n\n @Listen(\"resize\", { target: \"window\" })\n async onWindowResize() {\n this.visiblePages = [];\n this.renderedPages = [];\n await this.updateVisiblePages();\n }\n\n @Watch(\"file\")\n async watchProps() {\n await this.getPages();\n await this.updateVisiblePages();\n }\n\n /**\n * Print the file.\n */\n @Method()\n async print() {\n this.loading = true;\n\n await this.updateVisiblePages(true);\n await this.openPrintDialog();\n\n this.loading = false;\n }\n\n private async getPages() {\n this.error = false;\n this.loading = true;\n\n try {\n this.doc = await getDocument(this.file).promise;\n\n for (let i = 1; i <= this.doc.numPages; i++) {\n const page = await this.doc.getPage(i);\n this.pages[i] = page;\n }\n\n this.loading = false;\n } catch (e) {\n this.error = true;\n this.loading = false;\n }\n }\n\n private async renderVisiblePages(forPrint?: boolean) {\n const canvases = Array.from(this.el.shadowRoot.querySelectorAll(\"canvas\"));\n const renderedPages = [];\n\n for (const canvas of canvases) {\n const container = canvas.closest<HTMLDivElement>(\n \".file-viewer-pdf__page\"\n );\n\n const textContainer = container?.querySelector<HTMLDivElement>(\n \".file-viewer-pdf__text-container\"\n );\n\n const page = this.pages.find(\n (page) => page?.pageNumber === +container?.dataset.pageNumber\n );\n\n if (\n !Boolean(page) ||\n !this.visiblePages.includes(page.pageNumber) ||\n this.renderingPageNumbers.includes(page.pageNumber)\n ) {\n continue;\n }\n\n if (this.renderedPages.includes(page.pageNumber) && !forPrint) {\n renderedPages.push(page.pageNumber);\n continue;\n }\n\n this.renderingPageNumbers = [\n ...this.renderingPageNumbers,\n page.pageNumber,\n ];\n\n const scale = forPrint ? 4 : this.getScale(page);\n\n const viewport = page.getViewport({\n scale,\n });\n\n const context = canvas.getContext(\"2d\");\n\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n await page.render(renderContext).promise;\n\n this.renderTextLayer(page, textContainer);\n\n renderedPages.push(page.pageNumber);\n\n this.renderingPageNumbers = this.renderingPageNumbers.filter(\n (pageNumber) => pageNumber !== page.pageNumber\n );\n }\n\n this.renderedPages = renderedPages;\n }\n\n private async updateVisiblePages(forPrint?: boolean) {\n const pages = Array.from(\n this.el.shadowRoot.querySelectorAll<HTMLDivElement>(\n \".file-viewer-pdf__page\"\n )\n );\n\n let visiblePages = forPrint\n ? pages.map((page) => +page.dataset.pageNumber)\n : pages\n .filter((page) => getVisibleHeight(page, this.scrollContainer) > 0)\n .map((page) => +page.dataset.pageNumber);\n\n if (visiblePages.length === 0) {\n visiblePages = [1, 2, 3, 4];\n }\n\n const visiblePagesDidNotChanged =\n this.visiblePages.length === visiblePages.length &&\n this.visiblePages.every((pageNumber) =>\n visiblePages.includes(pageNumber)\n );\n\n if (visiblePagesDidNotChanged) {\n return;\n }\n\n this.visiblePages = visiblePages;\n\n await this.renderVisiblePages(forPrint);\n }\n\n private async renderTextLayer(page: PDFPageProxy, container: HTMLElement) {\n renderTextLayer({\n container,\n textContent: await page.getTextContent(),\n viewport: page.getViewport({\n scale:\n this.zoom === \"auto\" ? this.getScale(page) : this.getScale(page) / 2,\n }),\n });\n }\n\n private async openPrintDialog() {\n const canvases = Array.from(\n this.scrollContainer.querySelectorAll(\"canvas\")\n );\n\n let styles = `\n *, *:before, *:after {\n margin: 0;\n padding: 0;\n }\n\n img {\n display: block;\n width: 100%;\n }\n `;\n\n let html = `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${this.file}</title>\n <style>${styles}</style>\n </head>\n <body>\n `;\n\n for (const canvas of canvases) {\n html += `<img src=\"${canvas.toDataURL()}\">`;\n }\n\n html += `\n </body>\n </html>\n `;\n\n const win = window.open(\" \");\n\n win.document.write(html);\n win.document.close();\n win.focus();\n\n await new Promise((resolve) => setTimeout(resolve));\n\n win.print();\n win.close();\n }\n\n private getScale(page: PDFPageProxy) {\n return this.zoom === \"auto\"\n ? (this.scrollContainer?.clientWidth - 32) / page.view[2]\n : isNaN(this.zoom)\n ? 2\n : this.zoom * 2;\n }\n\n private onScroll = () => {\n this.updateVisiblePages();\n };\n\n render() {\n const showPagination =\n !this.error && !this.loading && this.visiblePages.length > 0;\n\n const showSpinner = this.loading;\n\n return (\n <Host class=\"file-viewer-pdf\">\n {this.error && (\n <flip-inline-error\n class=\"file-viewer-pdf__error\"\n message={this.errorMessage}\n ></flip-inline-error>\n )}\n <div\n aria-describedby=\"pagination\"\n class=\"file-viewer-pdf__pages\"\n onScroll={this.onScroll}\n ref={(el) => (this.scrollContainer = el)}\n >\n {this.pages.map((page) => {\n const viewport = page.getViewport({\n scale: this.getScale(page) / 2,\n });\n\n return (\n <div\n aria-label={page.pageNumber}\n class=\"file-viewer-pdf__page\"\n data-page-number={page.pageNumber}\n id={`page-${page.pageNumber}`}\n key={page.pageNumber}\n role=\"region\"\n style={{\n width:\n this.zoom === \"auto\" ? undefined : `${viewport.width}px`,\n height:\n this.zoom === \"auto\" ? undefined : `${viewport.height}px`,\n }}\n tabIndex={0}\n >\n <canvas class=\"file-viewer-pdf__canvas\"></canvas>\n <div class=\"file-viewer-pdf__text-container\"></div>\n </div>\n );\n })}\n </div>\n {showPagination && (\n <span class=\"file-viewer-pdf__pagination\" id=\"pagination\">\n <span aria-current=\"page\">{this.visiblePages[0]}</span> /{\" \"}\n {this.doc.numPages}\n </span>\n )}\n {showSpinner && (\n <div class=\"file-viewer-pdf__spinner\">\n <flip-spinner></flip-spinner>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n position: relative;\n display: inline-flex;\n width: 100%;\n max-height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-text__text {\n overflow: auto;\n width: 100%;\n max-height: 100%;\n margin: 0;\n padding: 0;\n padding: var(--s-space-16);\n background-color: var(--s-background-default);\n font-family: var(--s-font-family-code);\n}\n\n.file-viewer-text__spinner {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.2);\n inset: 0;\n}\n\n.file-viewer-text__error {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n","import { Component, h, Host, Prop, State, Watch } from \"@stencil/core\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-text.css\",\n tag: \"flip-file-viewer-text\",\n})\nexport class FlipFileViewerText {\n @Prop() errorMessage?: string = \"File could not be loaded.\";\n @Prop() file!: string;\n\n @State() error: boolean;\n @State() loading: boolean;\n @State() text: string;\n\n componentWillLoad() {\n this.updateText();\n }\n\n @Watch(\"file\")\n async updateText() {\n this.error = false;\n this.loading = true;\n\n try {\n const response = await fetch(this.file);\n\n this.text = await response.text();\n this.loading = false;\n } catch (e) {\n this.loading = false;\n this.error = true;\n }\n }\n\n render() {\n return (\n <Host class=\"file-viewer-text\">\n {this.error && (\n <flip-inline-error\n class=\"file-viewer-text__error\"\n message={this.errorMessage}\n ></flip-inline-error>\n )}\n <pre class=\"file-viewer-text__text\" tabIndex={0}>\n {this.text}\n </pre>\n {this.loading && (\n <div class=\"file-viewer-text__spinner\">\n <flip-spinner></flip-spinner>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: inline-flex;\n width: 100%;\n max-height: 100%;\n\n & * {\n box-sizing: border-box;\n }\n}\n\n.file-viewer-video__video {\n width: 100%;\n background-color: rgba(0, 0, 0, 1);\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\";\n\n@Component({\n shadow: true,\n styleUrl: \"flip-file-viewer-video.css\",\n tag: \"flip-file-viewer-video\",\n})\nexport class FlipFileViewerVideo {\n @Prop() file!: string;\n @Prop() type!: string;\n\n render() {\n return (\n <Host class=\"file-viewer-video\">\n <video class=\"file-viewer-video__video\" controls>\n <source src={this.file} type={this.type}></source>\n </video>\n </Host>\n );\n }\n}\n"]}
|