@leftoff/cli 0.9.8-beta.8 → 0.9.8

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.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @licstart The following is the entire license notice for the
3
+ * JavaScript code in this page
4
+ *
5
+ * Copyright 2024 Mozilla Foundation
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * @licend The above is the entire license notice for the
19
+ * JavaScript code in this page
20
+ */
21
+ /**
22
+ * pdfjsVersion = 6.4.299
23
+ * pdfjsBuild = d0991a0d5
24
+ */var t={463(t){var e=TypeError;t.exports=function(t){if("string"==typeof t)return t;throw new e("Argument is not a string")}},804(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=e+"+/",n=e+"-_",inverse=function(t){for(var e={},i=0;i<64;i++)e[t.charAt(i)]=i;return e};t.exports={i2c:i,c2i:inverse(i),i2cUrl:n,c2iUrl:inverse(n)}},529(t){t.exports=function(t,e){return{value:t,done:e}}},837(t){var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw new e("Maximum allowed index exceeded");return t}},2(t){t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},944(t){var e=TypeError;t.exports=function(t){var i=t&&t.alphabet;if(void 0===i||"base64"===i||"base64url"===i)return i||"base64";throw new e("Incorrect `alphabet` option")}},767(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},117(t){t.exports=function(t){return null==t}},859(t){t.exports=function(t){t.iterator=t.next=t.nextHandler=t.mapper=t.predicate=t.inner=t.iterables=t.iters=t.openIters=t.padding=t.finishResults=t.buffer=null}},684(t){t.exports=function(t,e){var i="function"==typeof Iterator&&Iterator.prototype[t];if(i)try{i.call({next:null},e).next()}catch(t){return!0}}},269(t){t.exports=Object.create?Object.create(null):{}},741(t){var e=Math.ceil,i=Math.floor;t.exports=Math.trunc||function trunc(t){var n=+t;return(n>0?i:e)(n)}},149(t){var e=RangeError;t.exports=function(t){if(t==t)return t;throw new e("NaN is not allowed")}},717(t,e){e.f=Object.getOwnPropertySymbols},103(t){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},750(t,e,i){var n=i(117),r=TypeError;t.exports=function(t){if(n(t))throw new r("Can't call method on "+t);return t}},835(t){t.exports=function(t){try{var e=new Set,i={size:0,has:function(){return!0},keys:function(){return Object.defineProperty({},"next",{get:function(){e.clear();e.add(4);return function(){return{done:!0}}}})}},n=e[t](i);return 1===n.size&&4===n.values().next().value}catch(t){return!1}}},291(t,e,i){var n=i(741);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},14(t,e,i){var n=i(291),r=Math.min;t.exports=function(t){var e=n(t);return e>0?r(e,9007199254740991):0}},981(t,e,i){var n=i(750),r=Object;t.exports=function(t){return r(n(t))}},590(t,e,i){var n=i(291),r=RangeError;t.exports=function(t){var e=n(t);if(e<0)throw new r("The argument can't be less than 0");return e}},812(t){var e=TypeError;t.exports=function(t,i){if(t<i)throw new e("Not enough arguments");return t}}};const e={};function __webpack_require__(i){const n=e[i];if(void 0!==n)return n.exports;const r=e[i]={exports:{}};t[i](r,r.exports,__webpack_require__);return r.exports}__webpack_require__.cw=t=>{var e;return()=>{if(t){var i=t;t=0;e={exports:{}};i.call(e.exports,e,e.exports)}return e.exports}};__webpack_require__.d=(t,e)=>{for(var i in e)__webpack_require__.o(e,i)&&!__webpack_require__.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})};__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i=__webpack_require__.cw(function(t,e){var i=ft(),n=ve(),r=TypeError;t.exports=function(t){if(i(t))return t;throw new r(n(t)+" is not a function")}}),n=__webpack_require__.cw(function(t,e){var i=yt(),n=String,r=TypeError;t.exports=function(t){if(i(t))return t;throw new r("Can't set "+n(t)+" as a prototype")}}),r=__webpack_require__.cw(function(t,e){var i=Qt().has;t.exports=function(t){i(t);return t}}),a_string_namespaceFn=()=>__webpack_require__(463),s=__webpack_require__.cw(function(t,e){var i=ke(),n=new i.WeakMap,r=i.set,s=i.remove;t.exports=function(t){r(n,t,1);s(n,t);return t}}),a=__webpack_require__.cw(function(t,e){var i=ke().has;t.exports=function(t){i(t);return t}}),o=__webpack_require__.cw(function(t,e){var i=De(),n=Rt(),r=Lt().f,s=i("unscopables"),a=Array.prototype;void 0===a[s]&&r(a,s,{configurable:!0,value:n(null)});t.exports=function(t){a[s][t]=!0}}),l=__webpack_require__.cw(function(t,e){var i=zt(),n=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw new n("Incorrect invocation")}}),c=__webpack_require__.cw(function(t,e){var i=bt(),n=String,r=TypeError;t.exports=function(t){if(void 0===t||i(t))return t;throw new r(n(t)+" is not an object or undefined")}}),h=__webpack_require__.cw(function(t,e){var i=bt(),n=String,r=TypeError;t.exports=function(t){if(i(t))return t;throw new r(n(t)+" is not an object")}}),d=__webpack_require__.cw(function(t,e){var i=x(),n=TypeError;t.exports=function(t){if("Uint8Array"===i(t))return t;throw new n("Argument is not an Uint8Array")}}),u=__webpack_require__.cw(function(t,e){t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView}),p=__webpack_require__.cw(function(t,e){var i=it(),n=q(),r=A(),s=i.ArrayBuffer,a=i.TypeError;t.exports=s&&n(s.prototype,"byteLength","get")||function(t){if("ArrayBuffer"!==r(t))throw new a("ArrayBuffer expected");return t.byteLength}}),g=__webpack_require__.cw(function(t,e){var i=it(),n=u(),r=p(),s=i.DataView;t.exports=function(t){if(!n||0!==r(t))return!1;try{new s(t);return!1}catch(t){return!0}}}),f=__webpack_require__.cw(function(t,e){var i=g(),n=TypeError;t.exports=function(t){if(i(t))throw new n("ArrayBuffer is detached");return t}}),m=__webpack_require__.cw(function(t,e){var i,n,r,s=u(),a=O(),o=it(),l=ft(),c=bt(),h=nt(),d=x(),p=ve(),g=S(),f=P(),m=D(),b=zt(),y=Ht(),w=Vt(),v=De(),_=_e(),A=dt(),E=A.enforce,C=A.get,T=o.Int8Array,k=T&&T.prototype,M=o.Uint8ClampedArray,I=M&&M.prototype,R=T&&y(T),B=k&&y(k),L=Object.prototype,N=o.TypeError,U=v("toStringTag"),H=_("TYPED_ARRAY_TAG"),z="TypedArrayConstructor",G=s&&!!w&&"Opera"!==d(o.opera),j=!1,W={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},V={BigInt64Array:8,BigUint64Array:8},getTypedArrayConstructor=function(t){var e=y(t);if(c(e)){var i=C(e);return i&&h(i,z)?i[z]:getTypedArrayConstructor(e)}},isTypedArray=function(t){if(!c(t))return!1;var e=d(t);return h(W,e)||h(V,e)};for(i in W)(r=(n=o[i])&&n.prototype)?E(r)[z]=n:G=!1;for(i in V)(r=(n=o[i])&&n.prototype)&&(E(r)[z]=n);if(!G||!l(R)||R===Function.prototype){R=function TypedArray(){throw new N("Incorrect invocation")};if(G)for(i in W)o[i]&&w(o[i],R)}if(!G||!B||B===L){B=R.prototype;if(G)for(i in W)o[i]&&w(o[i].prototype,B)}G&&y(I)!==B&&w(I,B);if(a&&!h(B,U)){j=!0;m(B,U,{configurable:!0,get:function(){return c(this)?this[H]:void 0}});for(i in W)o[i]&&g(o[i].prototype,H,i)}t.exports={NATIVE_ARRAY_BUFFER_VIEWS:G,TYPED_ARRAY_TAG:j&&H,aTypedArray:function(t){if(isTypedArray(t))return t;throw new N("Target is not a typed array")},aTypedArrayConstructor:function(t){if(l(t)&&(!w||b(R,t)))return t;throw new N(p(t)+" is not a typed array constructor")},exportTypedArrayMethod:function(t,e,i,n){if(a){if(i)for(var r in W){var s=o[r];if(s&&h(s.prototype,t))try{delete s.prototype[t]}catch(i){try{s.prototype[t]=e}catch(t){}}}B[t]&&!i||f(B,t,i?e:G&&k[t]||e,n)}},exportTypedArrayStaticMethod:function(t,e,i){var n,r;if(a){if(w){if(i)for(n in W)if((r=o[n])&&h(r,t))try{delete r[t]}catch(t){}if(R[t]&&!i)return;try{return f(R,t,i?e:G&&R[t]||e)}catch(t){}}for(n in W)!(r=o[n])||r[t]&&!i||f(r,t,e)}},getTypedArrayConstructor,isView:function isView(t){if(!c(t))return!1;var e=d(t);return"DataView"===e||h(W,e)||h(V,e)},isTypedArray,TypedArray:R,TypedArrayPrototype:B}}),b=__webpack_require__.cw(function(t,e){var i=Dt();t.exports=function(t,e,n){for(var r=0,s=arguments.length>2?n:i(e),a=new t(s);s>r;)a[r]=e[r++];return a}}),y=__webpack_require__.cw(function(t,e){var i=fe(),n=pe(),r=Dt(),createMethod=function(t){return function(e,s,a){var o=i(e),l=r(o);if(0===l)return!t&&-1;var c,h=n(a,l);if(t&&s!=s){for(;l>h;)if((c=o[h++])!=c)return!0}else for(;l>h;h++)if((t||h in o)&&o[h]===s)return t||h||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}),w=__webpack_require__.cw(function(t,e){var i=O(),n=pt(),r=TypeError,s=Object.getOwnPropertyDescriptor,a=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(n(t)&&!s(t,"length").writable)throw new r("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}}),v=__webpack_require__.cw(function(t,e){var i=K();t.exports=i([].slice)}),base64_map_namespaceFn=()=>__webpack_require__(804),_=__webpack_require__.cw(function(t,e){var i=h(),n=Ct();t.exports=function(t,e,r,s){try{return s?e(i(r)[0],r[1]):e(r)}catch(e){n(t,"throw",e)}}}),A=__webpack_require__.cw(function(t,e){var i=K(),n=i({}.toString),r=i("".slice);t.exports=function(t){return r(n(t),8,-1)}}),x=__webpack_require__.cw(function(t,e){var i=ye(),n=ft(),r=A(),s=De()("toStringTag"),a=Object,o="Arguments"===r(function(){return arguments}());t.exports=i?r:function(t){var e,i,l;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=function(t,e){try{return t[e]}catch(t){}}(e=a(t),s))?i:o?r(e):"Object"===(l=r(e))&&n(e.callee)?"Arguments":l}}),E=__webpack_require__.cw(function(t,e){var i=nt(),n=qt(),r=Nt(),s=Lt();t.exports=function(t,e,a){for(var o=n(e),l=s.f,c=r.f,h=0;h<o.length;h++){var d=o[h];i(t,d)||a&&i(a,d)||l(t,d,c(e,d))}}}),C=__webpack_require__.cw(function(t,e){var i=z();t.exports=!i(function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype})}),S=__webpack_require__.cw(function(t,e){var i=O(),n=Lt(),r=T();t.exports=i?function(t,e,i){return n.f(t,e,r(1,i))}:function(t,e,i){t[e]=i;return t}}),T=__webpack_require__.cw(function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}}),k=__webpack_require__.cw(function(t,e){var i=O(),n=Lt(),r=T();t.exports=function(t,e,s){i?n.f(t,e,r(0,s)):t[e]=s}}),D=__webpack_require__.cw(function(t,e){var i=Pt(),n=Lt();t.exports=function(t,e,r){r.get&&i(r.get,e,{getter:!0});r.set&&i(r.set,e,{setter:!0});return n.f(t,e,r)}}),P=__webpack_require__.cw(function(t,e){var i=ft(),n=Lt(),r=Pt(),s=I();t.exports=function(t,e,a,o){o||(o={});var l=o.enumerable,c=void 0!==o.name?o.name:e;i(a)&&r(a,c,o);if(o.global)l?t[e]=a:s(e,a);else{try{o.unsafe?t[e]&&(l=!0):delete t[e]}catch(t){}l?t[e]=a:n.f(t,e,{value:a,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t}}),M=__webpack_require__.cw(function(t,e){var i=P();t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}}),I=__webpack_require__.cw(function(t,e){var i=it(),n=Object.defineProperty;t.exports=function(t,e){try{n(i,t,{value:e,configurable:!0,writable:!0})}catch(n){i[t]=e}return e}}),O=__webpack_require__.cw(function(t,e){var i=z();t.exports=!i(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})}),R=__webpack_require__.cw(function(t,e){var i=it(),n=bt(),r=i.document,s=n(r)&&n(r.createElement);t.exports=function(t){return s?r.createElement(t):{}}}),B=__webpack_require__.cw(function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}),L=__webpack_require__.cw(function(t,e){var i=it().navigator,n=i&&i.userAgent;t.exports=n?String(n):""}),N=__webpack_require__.cw(function(t,e){var i,n,r=it(),s=L(),a=r.process,o=r.Deno,l=a&&a.versions||o&&o.version,c=l&&l.v8;c&&(n=(i=c.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1]));!n&&s&&(!(i=s.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=s.match(/Chrome\/(\d+)/))&&(n=+i[1]);t.exports=n}),U=__webpack_require__.cw(function(t,e){var i=K(),n=Error,r=i("".replace),s=String(new n("zxcasd").stack),a=/\n\s*at [^:]*:[^\n]*/,o=a.test(s);t.exports=function(t,e){if(o&&"string"==typeof t&&!n.prepareStackTrace)for(;e--;)t=r(t,a,"");return t}}),H=__webpack_require__.cw(function(t,e){var i=it(),n=Nt().f,r=S(),s=P(),a=I(),o=E(),l=mt();t.exports=function(t,e){var c,h,d,u,p,g=t.target,f=t.global,m=t.stat;if(c=f?i:m?i[g]||a(g,{}):i[g]&&i[g].prototype)for(h in e){u=e[h];d=t.dontCallGetSet?(p=n(c,h))&&p.value:c[h];if(!l(f?h:g+(m?".":"#")+h,t.forced)&&void 0!==d){if(typeof u==typeof d)continue;o(u,d)}(t.sham||d&&d.sham)&&r(u,"sham",!0);s(c,h,u,t)}}}),z=__webpack_require__.cw(function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}}),G=__webpack_require__.cw(function(t,e){var i=W(),n=Function.prototype,r=n.apply,s=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?s.bind(r):function(){return s.apply(r,arguments)})}),j=__webpack_require__.cw(function(t,e){var n=X(),r=i(),s=W(),a=n(n.bind);t.exports=function(t,e){r(t);return void 0===e?t:s?a(t,e):function(){return t.apply(e,arguments)}}}),W=__webpack_require__.cw(function(t,e){var i=z();t.exports=!i(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})}),V=__webpack_require__.cw(function(t,e){var i=W(),n=Function.prototype.call;t.exports=i?n.bind(n):function(){return n.apply(n,arguments)}}),$=__webpack_require__.cw(function(t,e){var i=O(),n=nt(),r=Function.prototype,s=i&&Object.getOwnPropertyDescriptor,a=n(r,"name"),o=a&&(!i||i&&s(r,"name").configurable);t.exports={CONFIGURABLE:o}}),q=__webpack_require__.cw(function(t,e){var n=K(),r=i();t.exports=function(t,e,i){try{return n(r(Object.getOwnPropertyDescriptor(t,e)[i]))}catch(t){}}}),X=__webpack_require__.cw(function(t,e){var i=A(),n=K();t.exports=function(t){if("Function"===i(t))return n(t)}}),K=__webpack_require__.cw(function(t,e){var i=W(),n=Function.prototype,r=n.call,s=i&&n.bind.bind(r,r);t.exports=i?s:function(t){return function(){return r.apply(t,arguments)}}}),get_alphabet_option_namespaceFn=()=>__webpack_require__(944),Y=__webpack_require__.cw(function(t,e){var i=it(),n=ft();t.exports=function(t,e){return arguments.length<2?(r=i[t],n(r)?r:void 0):i[t]&&i[t][e];var r}}),get_iterator_direct_namespaceFn=()=>__webpack_require__(767),J=__webpack_require__.cw(function(t,e){var i=V(),n=h(),r=get_iterator_direct_namespaceFn(),s=Z();t.exports=function(t,e){e&&"string"==typeof t||n(t);var a=s(t);return r(n(void 0!==a?i(a,t):t))}}),Q=__webpack_require__.cw(function(t,e){var i=V(),n=ft(),r=h(),s=ve(),a=Z(),o=TypeError;t.exports=function(t,e){var l=arguments.length<2?a(t):e;if(n(l))return r(i(l,t));throw new o(s(t)+" is not iterable")}}),Z=__webpack_require__.cw(function(t,e){var i=A(),n=is_null_or_undefined_namespaceFn(),r=tt(),s=De()("iterator"),a=Array.prototype;t.exports=function(t){if(!n(t))return r(t,s)||r(t,"@@iterator")||("Arguments"===i(t)?a[s]:void 0)}}),tt=__webpack_require__.cw(function(t,e){var n=i(),r=is_null_or_undefined_namespaceFn();t.exports=function(t,e){var i=t[e];return r(i)?void 0:n(i)}}),et=__webpack_require__.cw(function(t,e){var n=i(),r=h(),s=V(),a=to_integer_or_infinity_namespaceFn(),o=get_iterator_direct_namespaceFn(),l="Invalid size",c=RangeError,d=TypeError,u=Math.max,SetRecord=function(t,e){this.set=t;this.size=u(e,0);this.has=n(t.has);this.keys=n(t.keys)};SetRecord.prototype={getIterator:function(){return o(r(s(this.keys,this.set)))},includes:function(t){return s(this.has,this.set,t)}};t.exports=function(t){r(t);var e=+t.size;if(e!=e)throw new d(l);var i=a(e);if(i<0)throw new c(l);return new SetRecord(t,i)}}),it=__webpack_require__.cw(function(t,e){var check=function(t){return t&&t.Math===Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||check("object"==typeof this&&this)||function(){return this}()||Function("return this")()}),nt=__webpack_require__.cw(function(t,e){var i=K(),n=to_object_namespaceFn(),r=i({}.hasOwnProperty);t.exports=Object.hasOwn||function hasOwn(t,e){return r(n(t),e)}}),rt=__webpack_require__.cw(function(t,e){t.exports={}}),st=__webpack_require__.cw(function(t,e){var i=Y();t.exports=i("document","documentElement")}),ot=__webpack_require__.cw(function(t,e){var i=O(),n=z(),r=R();t.exports=!i&&!n(function(){return 7!==Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a})}),lt=__webpack_require__.cw(function(t,e){var i=K(),n=z(),r=A(),s=Object,a=i("".split);t.exports=n(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===r(t)?a(t,""):s(t)}:s}),ct=__webpack_require__.cw(function(t,e){var i=ft(),n=bt(),r=Vt();t.exports=function(t,e,s){var a,o;r&&i(a=e.constructor)&&a!==s&&n(o=a.prototype)&&o!==s.prototype&&r(t,o);return t}}),ht=__webpack_require__.cw(function(t,e){var i=K(),n=ft(),r=ce(),s=i(Function.toString);n(r.inspectSource)||(r.inspectSource=function(t){return s(t)});t.exports=r.inspectSource}),dt=__webpack_require__.cw(function(t,e){var i,n,r,s=Te(),a=it(),o=bt(),l=S(),c=nt(),h=ce(),d=le(),u=rt(),p="Object already initialized",g=a.TypeError,f=a.WeakMap;if(s||h.state){var m=h.state||(h.state=new f);m.get=m.get;m.has=m.has;m.set=m.set;i=function(t,e){if(m.has(t))throw new g(p);e.facade=t;m.set(t,e);return e};n=function(t){return m.get(t)||{}};r=function(t){return m.has(t)}}else{var b=d("state");u[b]=!0;i=function(t,e){if(c(t,b))throw new g(p);e.facade=t;l(t,b,e);return e};n=function(t){return c(t,b)?t[b]:{}};r=function(t){return c(t,b)}}t.exports={set:i,get:n,has:r,enforce:function(t){return r(t)?n(t):i(t,{})},getterFor:function(t){return function(e){var i;if(!o(e)||(i=n(e)).type!==t)throw new g("Incompatible receiver, "+t+" required");return i}}}}),ut=__webpack_require__.cw(function(t,e){var i=De(),n=iterators_namespaceFn(),r=i("iterator"),s=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||s[r]===t)}}),pt=__webpack_require__.cw(function(t,e){var i=A();t.exports=Array.isArray||function isArray(t){return"Array"===i(t)}}),gt=__webpack_require__.cw(function(t,e){var i=x();t.exports=function(t){var e=i(t);return"BigInt64Array"===e||"BigUint64Array"===e}}),ft=__webpack_require__.cw(function(t,e){var i="object"==typeof document&&document.all;t.exports=void 0===i&&void 0!==i?function(t){return"function"==typeof t||t===i}:function(t){return"function"==typeof t}}),mt=__webpack_require__.cw(function(t,e){var i=z(),n=ft(),r=/#|\.prototype\./,isForced=function(t,e){var r=a[s(t)];return r===l||r!==o&&(n(e)?i(e):!!e)},s=isForced.normalize=function(t){return String(t).replace(r,".").toLowerCase()},a=isForced.data={},o=isForced.NATIVE="N",l=isForced.POLYFILL="P";t.exports=isForced}),is_null_or_undefined_namespaceFn=()=>__webpack_require__(117),bt=__webpack_require__.cw(function(t,e){var i=ft();t.exports=function(t){return"object"==typeof t?null!==t:i(t)}}),yt=__webpack_require__.cw(function(t,e){var i=bt();t.exports=function(t){return i(t)||null===t}}),wt=__webpack_require__.cw(function(t,e){t.exports=!1}),vt=__webpack_require__.cw(function(t,e){var i=bt(),n=dt().get;t.exports=function isRawJSON(t){if(!i(t))return!1;var e=n(t);return!!e&&"RawJSON"===e.type}}),_t=__webpack_require__.cw(function(t,e){var i=Y(),n=ft(),r=zt(),s=Ce(),a=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return n(e)&&r(e.prototype,a(t))}}),At=__webpack_require__.cw(function(t,e){var i=V();t.exports=function(t,e,n){for(var r,s,a=n?t:t.iterator,o=t.next;!(r=i(o,a)).done;)if(void 0!==(s=e(r.value)))return s}}),xt=__webpack_require__.cw(function(t,e){var i=j(),n=V(),r=h(),s=ve(),a=ut(),o=Dt(),l=zt(),c=Q(),d=Z(),u=Ct(),p=TypeError,Result=function(t,e){this.stopped=t;this.result=e},g=Result.prototype;t.exports=function(t,e,h){var f,m,b,y,w,v,_,A=h&&h.that,x=!(!h||!h.AS_ENTRIES),E=!(!h||!h.IS_RECORD),C=!(!h||!h.IS_ITERATOR),S=!(!h||!h.INTERRUPTED),T=i(e,A),stop=function(t){var e=f;f=void 0;e&&u(e,"normal");return new Result(!0,t)},callFn=function(t){if(x){r(t);return S?T(t[0],t[1],stop):T(t[0],t[1])}return S?T(t,stop):T(t)};if(E)f=t.iterator;else if(C)f=t;else{if(!(m=d(t)))throw new p(s(t)+" is not iterable");if(a(m)){for(b=0,y=o(t);y>b;b++)if((w=callFn(t[b]))&&l(g,w))return w;return new Result(!1)}f=c(t,m)}v=E?t.next:f.next;for(;!(_=n(v,f)).done;){var k=_.value;try{w=callFn(k)}catch(t){if(!f)throw t;u(f,"throw",t)}if("object"==typeof w&&w&&l(g,w))return w}return new Result(!1)}}),Et=__webpack_require__.cw(function(t,e){var i=Ct();t.exports=function(t,e,n){for(var r=t.length-1;r>=0;r--)if(void 0!==t[r])try{n=i(t[r].iterator,e,n)}catch(t){e="throw";n=t}if("throw"===e)throw n;return n}}),Ct=__webpack_require__.cw(function(t,e){var i=V(),n=h(),r=tt();t.exports=function(t,e,s){var a,o;n(t);try{if(!(a=r(t,"return"))){if("throw"===e)throw s;return s}a=i(a,t)}catch(t){o=!0;a=t}if("throw"===e)throw s;if(o)throw a;n(a);return s}}),St=__webpack_require__.cw(function(t,e){var i=V(),n=Rt(),r=S(),s=M(),a=De(),o=dt(),l=tt(),c=kt().IteratorPrototype,h=__webpack_require__(529),d=Ct(),u=Et(),p=__webpack_require__(859),g=a("toStringTag"),f="IteratorHelper",m="WrapForValidIterator",b="normal",y="throw",w=o.set,createIteratorProxyPrototype=function(t){var e=o.getterFor(t?m:f);return s(n(c),{next:function next(){var i=e(this);if(t)return i.nextHandler();if(i.done)return h(void 0,!0);try{var n=i.nextHandler();i.done&&p(i);return i.returnHandlerResult?n:h(n,i.done)}catch(t){i.done=!0;p(i);throw t}},return:function(){var n=e(this),r=n.iterator,s=n.inner,a=n.openIters,o=n.done;n.done=!0;if(t){var c=l(r,"return");return c?i(c,r):h(void 0,!0)}p(n);if(o)return h(void 0,!0);if(s)try{d(s.iterator,b)}catch(t){return d(r,y,t)}if(a)try{u(a,b)}catch(t){if(r)return d(r,y,t);throw t}r&&d(r,b);return h(void 0,!0)}})},v=createIteratorProxyPrototype(!0),_=createIteratorProxyPrototype(!1);r(_,g,"Iterator Helper");t.exports=function(t,e,i){var n=function Iterator(n,r){if(r){r.iterator=n.iterator;r.next=n.next}else r=n;r.type=e?m:f;r.returnHandlerResult=!!i;r.nextHandler=t;r.counter=0;r.done=!1;w(this,r)};n.prototype=e?v:_;return n}}),iterator_helper_throws_on_invalid_iterator_namespaceFn=()=>__webpack_require__(684),Tt=__webpack_require__.cw(function(t,e){var i=it();t.exports=function(t,e){var n=i.Iterator,r=n&&n.prototype,s=r&&r[t],a=!1;if(s)try{s.call({next:function(){return{done:!0}},return:function(){a=!0}},-1)}catch(t){t instanceof e||(a=!1)}if(!a)return s}}),kt=__webpack_require__.cw(function(t,e){var i,n,r,s=z(),a=ft(),o=bt(),l=Rt(),c=Ht(),h=P(),d=De(),u=wt(),p=d("iterator");[].keys&&("next"in(r=[].keys())?(n=c(c(r)))!==Object.prototype&&(i=n):!0);!o(i)||s(function(){var t={};return i[p].call(t)!==t})?i={}:u&&(i=l(i));a(i[p])||h(i,p,function(){return this});t.exports={IteratorPrototype:i}}),iterators_namespaceFn=()=>__webpack_require__(269),Dt=__webpack_require__.cw(function(t,e){var i=to_length_namespaceFn();t.exports=function(t){return i(t.length)}}),Pt=__webpack_require__.cw(function(t,e){var i=K(),n=z(),r=ft(),s=nt(),a=O(),o=$().CONFIGURABLE,l=ht(),c=dt(),h=c.enforce,d=c.get,u=String,p=Object.defineProperty,g=i("".slice),f=i("".replace),m=i([].join),b=a&&!n(function(){return 8!==p(function(){},"length",{value:8}).length}),y=String(String).split("String"),w=t.exports=function(t,e,i){"Symbol("===g(u(e),0,7)&&(e="["+f(u(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]");i&&i.getter&&(e="get "+e);i&&i.setter&&(e="set "+e);(!s(t,"name")||o&&t.name!==e)&&(a?p(t,"name",{value:e,configurable:!0}):t.name=e);b&&i&&s(i,"arity")&&t.length!==i.arity&&p(t,"length",{value:i.arity});try{i&&s(i,"constructor")&&i.constructor?a&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=h(t);s(n,"source")||(n.source=m(y,"string"==typeof e?e:""));return t};Function.prototype.toString=w(function toString(){return r(this)&&d(this).source||l(this)},"toString")}),Mt=__webpack_require__.cw(function(t,e){var i=K(),n=Map.prototype;t.exports={Map,set:i(n.set),get:i(n.get),has:i(n.has),remove:i(n.delete),proto:n}}),It=__webpack_require__.cw(function(t,e){var i=z();t.exports=!i(function(){var t="9007199254740993",e=JSON.rawJSON(t);return!JSON.isRawJSON(e)||JSON.stringify(e)!==t})}),Ft=__webpack_require__.cw(function(t,e){var n=i(),r=TypeError,PromiseCapability=function(t){var e,i;this.promise=new t(function(t,n){if(void 0!==e||void 0!==i)throw new r("Bad Promise constructor");e=t;i=n});this.resolve=n(e);this.reject=n(i)};t.exports.f=function(t){return new PromiseCapability(t)}}),Ot=__webpack_require__.cw(function(t,e){var i=we();t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:i(t)}}),not_a_nan_namespaceFn=()=>__webpack_require__(149),Rt=__webpack_require__.cw(function(t,e){var i,n=h(),r=Bt(),s=B(),a=rt(),o=st(),l=R(),c=le(),d="prototype",u="script",p=c("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<"+u+">"+t+"</"+u+">"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var e=t.parentWindow.Object;t=null;return e},NullProtoObject=function(){try{i=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&i?NullProtoObjectViaActiveX(i):function(){var t,e=l("iframe"),i="java"+u+":";e.style.display="none";o.appendChild(e);e.src=String(i);(t=e.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(i);for(var t=s.length;t--;)delete NullProtoObject[d][s[t]];return NullProtoObject()};a[p]=!0;t.exports=Object.create||function create(t,e){var i;if(null!==t){EmptyConstructor[d]=n(t);i=new EmptyConstructor;EmptyConstructor[d]=null;i[p]=t}else i=NullProtoObject();return void 0===e?i:r.f(i,e)}}),Bt=__webpack_require__.cw(function(t,e){var i=O(),n=Se(),r=Lt(),s=h(),a=fe(),o=jt();e.f=i&&!n?Object.defineProperties:function defineProperties(t,e){s(t);for(var i,n=a(e),l=o(e),c=l.length,h=0;c>h;)r.f(t,i=l[h++],n[i]);return t}}),Lt=__webpack_require__.cw(function(t,e){var i=O(),n=ot(),r=Se(),s=h(),a=be(),o=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d="enumerable",u="configurable",p="writable";e.f=i?r?function defineProperty(t,e,i){s(t);e=a(e);s(i);if("function"==typeof t&&"prototype"===e&&"value"in i&&p in i&&!i[p]){var n=c(t,e);if(n&&n[p]){t[e]=i.value;i={configurable:u in i?i[u]:n[u],enumerable:d in i?i[d]:n[d],writable:!1}}}return l(t,e,i)}:l:function defineProperty(t,e,i){s(t);e=a(e);s(i);if(n)try{return l(t,e,i)}catch(t){}if("get"in i||"set"in i)throw new o("Accessors not supported");"value"in i&&(t[e]=i.value);return t}}),Nt=__webpack_require__.cw(function(t,e){var i=O(),n=V(),r=Wt(),s=T(),a=fe(),o=be(),l=nt(),c=ot(),h=Object.getOwnPropertyDescriptor;e.f=i?h:function getOwnPropertyDescriptor(t,e){t=a(t);e=o(e);if(c)try{return h(t,e)}catch(t){}if(l(t,e))return s(!n(r.f,t,e),t[e])}}),Ut=__webpack_require__.cw(function(t,e){var i=Gt(),n=B().concat("length","prototype");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return i(t,n)}}),Ht=__webpack_require__.cw(function(t,e){var i=nt(),n=ft(),r=to_object_namespaceFn(),s=le(),a=C(),o=s("IE_PROTO"),l=Object,c=l.prototype;t.exports=a?l.getPrototypeOf:function(t){var e=r(t);if(i(e,o))return e[o];var s=e.constructor;return n(s)&&e instanceof s?s.prototype:e instanceof l?c:null}}),zt=__webpack_require__.cw(function(t,e){var i=K();t.exports=i({}.isPrototypeOf)}),Gt=__webpack_require__.cw(function(t,e){var i=K(),n=nt(),r=fe(),s=y().indexOf,a=rt(),o=i([].push);t.exports=function(t,e){var i,l=r(t),c=0,h=[];for(i in l)!n(a,i)&&n(l,i)&&o(h,i);for(;e.length>c;)n(l,i=e[c++])&&(~s(h,i)||o(h,i));return h}}),jt=__webpack_require__.cw(function(t,e){var i=Gt(),n=B();t.exports=Object.keys||function keys(t){return i(t,n)}}),Wt=__webpack_require__.cw(function(t,e){var i={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,r=n&&!i.call({1:2},1);e.f=r?function propertyIsEnumerable(t){var e=n(this,t);return!!e&&e.enumerable}:i}),Vt=__webpack_require__.cw(function(t,e){var i=q(),r=bt(),s=require_object_coercible_namespaceFn(),a=n();t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=i(Object.prototype,"__proto__","set"))(n,[]);e=n instanceof Array}catch(t){}return function setPrototypeOf(i,n){s(i);a(n);if(!r(i))return i;e?t(i,n):i.__proto__=n;return i}}():void 0)}),$t=__webpack_require__.cw(function(t,e){var i=V(),n=ft(),r=bt(),s=TypeError;t.exports=function(t,e){var a,o;if("string"===e&&n(a=t.toString)&&!r(o=i(a,t)))return o;if(n(a=t.valueOf)&&!r(o=i(a,t)))return o;if("string"!==e&&n(a=t.toString)&&!r(o=i(a,t)))return o;throw new s("Can't convert object to primitive value")}}),qt=__webpack_require__.cw(function(t,e){var i=Y(),n=K(),r=Ut(),s=__webpack_require__(717),a=h(),o=n([].concat);t.exports=i("Reflect","ownKeys")||function ownKeys(t){var e=r.f(a(t)),i=s.f;return i?o(e,i(t)):e}}),Xt=__webpack_require__.cw(function(t,e){var i=K(),n=nt(),r=SyntaxError,s=parseInt,a=String.fromCharCode,o=i("".charAt),l=i("".slice),c=i(/./.exec),h={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":"\t"},d=/^[\da-f]{4}$/i,u=/^[\u0000-\u001F]$/;t.exports=function(t,e){for(var i=!0,p="";e<t.length;){var g=o(t,e);if("\\"===g){var f=l(t,e,e+2);if(n(h,f)){p+=h[f];e+=2}else{if("\\u"!==f)throw new r('Unknown escape sequence: "'+f+'"');var m=l(t,e+=2,e+4);if(!c(d,m))throw new r("Bad Unicode escape at: "+e);p+=a(s(m,16));e+=4}}else{if('"'===g){i=!1;e++;break}if(c(u,g))throw new r("Bad control character in string literal at: "+e);p+=g;e++}}if(i)throw new r("Unterminated string at: "+e);return{value:p,end:e}}}),Kt=__webpack_require__.cw(function(t,e){var i=h(),n=bt(),r=Ft();t.exports=function(t,e){i(t);if(n(e)&&e.constructor===t)return e;var s=r.f(t);(0,s.resolve)(e);return s.promise}}),require_object_coercible_namespaceFn=()=>__webpack_require__(750),Yt=__webpack_require__.cw(function(t,e){var i=Qt(),n=ne(),r=i.Set,s=i.add;t.exports=function(t){var e=new r;n(t,function(t){s(e,t)});return e}}),Jt=__webpack_require__.cw(function(t,e){var i=r(),n=Qt(),s=Yt(),a=se(),o=et(),l=ne(),c=At(),h=n.has,d=n.remove;t.exports=function difference(t){var e=i(this),n=o(t),r=s(e);a(r)<=n.size?l(r,function(t){n.includes(t)&&d(r,t)}):c(n.getIterator(),function(t){h(r,t)&&d(r,t)});return r}}),Qt=__webpack_require__.cw(function(t,e){var i=K(),n=Set.prototype;t.exports={Set,add:i(n.add),has:i(n.has),remove:i(n.delete),proto:n}}),Zt=__webpack_require__.cw(function(t,e){var i=r(),n=Qt(),s=se(),a=et(),o=ne(),l=At(),c=n.Set,h=n.add,d=n.has;t.exports=function intersection(t){var e=i(this),n=a(t),r=new c;s(e)>n.size?l(n.getIterator(),function(t){d(e,t)&&h(r,t)}):o(e,function(t){n.includes(t)&&h(r,t)});return r}}),te=__webpack_require__.cw(function(t,e){var i=r(),n=Qt().has,s=se(),a=et(),o=ne(),l=At(),c=Ct();t.exports=function isDisjointFrom(t){var e=i(this),r=a(t);if(s(e)<=r.size)return!1!==o(e,function(t){if(r.includes(t))return!1},!0);var h=r.getIterator();return!1!==l(h,function(t){if(n(e,t))return c(h.iterator,"normal",!1)})}}),ee=__webpack_require__.cw(function(t,e){var i=r(),n=se(),s=ne(),a=et();t.exports=function isSubsetOf(t){var e=i(this),r=a(t);return!(n(e)>r.size)&&!1!==s(e,function(t){if(!r.includes(t))return!1},!0)}}),ie=__webpack_require__.cw(function(t,e){var i=r(),n=Qt().has,s=se(),a=et(),o=At(),l=Ct();t.exports=function isSupersetOf(t){var e=i(this),r=a(t);if(s(e)<r.size)return!1;var c=r.getIterator();return!1!==o(c,function(t){if(!n(e,t))return l(c.iterator,"normal",!1)})}}),ne=__webpack_require__.cw(function(t,e){var i=K(),n=At(),r=Qt(),s=r.Set,a=r.proto,o=i(a.forEach),l=i(a.keys),c=l(new s).next;t.exports=function(t,e,i){return i?n({iterator:l(t),next:c},e):o(t,e)}}),re=__webpack_require__.cw(function(t,e){var i=Y(),createSetLike=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},createSetLikeWithInfinitySize=function(t){return{size:t,has:function(){return!0},keys:function(){throw new Error("e")}}};t.exports=function(t,e){var n=i("Set");try{(new n)[t](createSetLike(0));try{(new n)[t](createSetLike(-1));return!1}catch(i){if(!e)return!0;try{(new n)[t](createSetLikeWithInfinitySize(-1/0));return!1}catch(i){return e(new n([1,2])[t](createSetLikeWithInfinitySize(1/0)))}}}catch(t){return!1}}}),set_method_get_keys_before_cloning_detection_namespaceFn=()=>__webpack_require__(835),se=__webpack_require__.cw(function(t,e){var i=q(),n=Qt();t.exports=i(n.proto,"size","get")||function(t){return t.size}}),ae=__webpack_require__.cw(function(t,e){var i=r(),n=Qt(),s=Yt(),a=et(),o=At(),l=n.add,c=n.has,h=n.remove;t.exports=function symmetricDifference(t){var e=i(this),n=a(t).getIterator(),r=s(e);o(n,function(t){c(e,t)?h(r,t):l(r,t)});return r}}),oe=__webpack_require__.cw(function(t,e){var i=r(),n=Qt().add,s=Yt(),a=et(),o=At();t.exports=function union(t){var e=i(this),r=a(t).getIterator(),l=s(e);o(r,function(t){n(l,t)});return l}}),le=__webpack_require__.cw(function(t,e){var i=he(),n=_e(),r=i("keys");t.exports=function(t){return r[t]||(r[t]=n(t))}}),ce=__webpack_require__.cw(function(t,e){var i=wt(),n=it(),r=I(),s="__core-js_shared__",a=t.exports=n[s]||r(s,{});(a.versions||(a.versions=[])).push({version:"3.50.0",mode:i?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE",source:"https://github.com/zloirock/core-js"})}),he=__webpack_require__.cw(function(t,e){var i=ce(),n=Object.create||Object;t.exports=function(t,e){return i[t]||(i[t]=e||n(null))}}),de=__webpack_require__.cw(function(t,e){var i=N(),n=z(),r=it().String;t.exports=!!Object.getOwnPropertySymbols&&!n(function(){var t=Symbol("symbol detection");return!r(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41})}),ue=__webpack_require__.cw(function(t,e){var i=K();t.exports=i(1.1.valueOf)}),pe=__webpack_require__.cw(function(t,e){var i=to_integer_or_infinity_namespaceFn(),n=Math.max,r=Math.min;t.exports=function(t,e){var s=i(t);return s<0?n(s+e,0):r(s,e)}}),ge=__webpack_require__.cw(function(t,e){var i=me(),n=TypeError;t.exports=function(t){var e=i(t,"number");if("number"==typeof e)throw new n("Can't convert number to bigint");return BigInt(e)}}),fe=__webpack_require__.cw(function(t,e){var i=lt(),n=require_object_coercible_namespaceFn();t.exports=function(t){return i(n(t))}}),to_integer_or_infinity_namespaceFn=()=>__webpack_require__(291),to_length_namespaceFn=()=>__webpack_require__(14),to_object_namespaceFn=()=>__webpack_require__(981),to_positive_integer_namespaceFn=()=>__webpack_require__(590),me=__webpack_require__.cw(function(t,e){var i=V(),n=bt(),r=_t(),s=tt(),a=$t(),o=De(),l=TypeError,c=o("toPrimitive");t.exports=function(t,e){if(!n(t)||r(t))return t;var o,h=s(t,c);if(h){void 0===e&&(e="default");o=i(h,t,e);if(!n(o)||r(o))return o;throw new l("Can't convert object to primitive value")}void 0===e&&(e="number");return a(t,e)}}),be=__webpack_require__.cw(function(t,e){var i=me(),n=_t();t.exports=function(t){var e=i(t,"string");return n(e)?e:e+""}}),ye=__webpack_require__.cw(function(t,e){var i={};i[De()("toStringTag")]="z";t.exports="[object z]"===String(i)}),we=__webpack_require__.cw(function(t,e){var i=x(),n=String;t.exports=function(t){if("Symbol"===i(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}}),ve=__webpack_require__.cw(function(t,e){var i=String;t.exports=function(t){try{return i(t)}catch(t){return"Object"}}}),_e=__webpack_require__.cw(function(t,e){var i=K(),n=0,r=Math.random(),s=i(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++n+r,36)}}),Ae=__webpack_require__.cw(function(t,e){var i=it(),n=K(),r=c(),s=a_string_namespaceFn(),a=nt(),o=base64_map_namespaceFn(),l=get_alphabet_option_namespaceFn(),h=f(),d=o.c2i,u=o.c2iUrl,p=i.SyntaxError,g=i.TypeError,m=i.Array,b=n("".charAt),y=Math.floor,skipAsciiWhitespace=function(t,e){for(var i=t.length;e<i;e++){var n=b(t,e);if(" "!==n&&"\t"!==n&&"\n"!==n&&"\f"!==n&&"\r"!==n)break}return e},decodeBase64Chunk=function(t,e,i){var n=t.length;n<4&&(t+=2===n?"AA":"A");var r=(e[b(t,0)]<<18)+(e[b(t,1)]<<12)+(e[b(t,2)]<<6)+e[b(t,3)],s=[r>>16&255,r>>8&255,255&r];if(2===n){if(i&&0!==s[1])throw new p("Extra bits");return[s[0]]}if(3===n){if(i&&0!==s[2])throw new p("Extra bits");return[s[0],s[1]]}return s},writeBytes=function(t,e,i){for(var n=e.length,r=0;r<n;r++)t[i+r]=e[r];return i+n};t.exports=function(t,e,i,n){s(t);r(e);var o="base64"===l(e)?d:u,c=e?e.lastChunkHandling:void 0;void 0===c&&(c="loose");if("loose"!==c&&"strict"!==c&&"stop-before-partial"!==c)throw new g("Incorrect `lastChunkHandling` option");i&&h(i.buffer);var f=t.length,w=i||m(y(3*f/4)),v=0,_=0,A="",x=0;if(n)for(;;){if((x=skipAsciiWhitespace(t,x))===f){if(A.length>0){if("stop-before-partial"===c)break;if("loose"!==c)throw new p("Missing padding");if(1===A.length)throw new p("Malformed padding: exactly one additional character");v=writeBytes(w,decodeBase64Chunk(A,o,!1),v)}_=f;break}var E=b(t,x);++x;if("="===E){if(A.length<2)throw new p("Padding is too early");x=skipAsciiWhitespace(t,x);if(2===A.length){if(x===f){if("stop-before-partial"===c)break;throw new p("Malformed padding: only one =")}if("="===b(t,x)){++x;x=skipAsciiWhitespace(t,x)}}if(x<f)throw new p("Unexpected character after padding");v=writeBytes(w,decodeBase64Chunk(A,o,"strict"===c),v);_=f;break}if(!a(o,E))throw new p("Unexpected character");var C=n-v;if(1===C&&2===A.length||2===C&&3===A.length)break;if(4===(A+=E).length){v=writeBytes(w,decodeBase64Chunk(A,o,!1),v);A="";_=x;if(v===n)break}}i||(w.length=v);return{bytes:w,read:_,written:v}}}),xe=__webpack_require__.cw(function(t,e){var i=it(),n=K(),r=i.Uint8Array,s=i.SyntaxError,a=Math.min,o=n("".match);t.exports=function(t,e){var i=t.length;if(i%2!=0)throw new s("String should be an even number of characters");for(var n=e?a(e.length,i/2):i/2,l=e||new r(n),c=o(t,/[\S\s]{2}/g),h=0;h<n;h++){var d=+("0x"+c[h]+"0");if(d!=d)throw new s("String should only contain hex characters");l[h]=d>>4}return{bytes:l,read:h<<1}}}),Ee=__webpack_require__.cw(function(t,e){var i=z(),n=De(),r=O(),s=wt(),a=n("iterator");t.exports=!i(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,i=new URLSearchParams("a=1&a=2&b=3"),n="";t.pathname="c%20d";e.forEach(function(t,i){e.delete("b");n+=i+t});i.delete("a",2);i.delete("b",void 0);return s&&(!t.toJSON||!i.has("a",1)||i.has("a",2)||!i.has("a",void 0)||i.has("b"))||!e.size&&(s||!r)||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host})}),Ce=__webpack_require__.cw(function(t,e){var i=de();t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}),Se=__webpack_require__.cw(function(t,e){var i=O(),n=z();t.exports=i&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})}),Te=__webpack_require__.cw(function(t,e){var i=it(),n=ft(),r=i.WeakMap;t.exports=n(r)&&/native code/.test(String(r))}),ke=__webpack_require__.cw(function(t,e){var i=K(),n=WeakMap.prototype;t.exports={WeakMap,set:i(n.set),get:i(n.get),has:i(n.has),remove:i(n.delete)}}),De=__webpack_require__.cw(function(t,e){var i=it(),n=he(),r=nt(),s=_e(),a=de(),o=Ce(),l=i.Symbol,c=n("wks"),h=o?l.for||l:l&&l.withoutSetter||s;t.exports=function(t){r(c,t)||(c[t]=a&&r(l,t)?l[t]:h("Symbol."+t));return c[t]}}),Pe=__webpack_require__.cw(function(t,e){var i=H(),n=y().includes,r=z(),s=o(),a=r(function(){return!Array(1).includes()}),l=r(function(){return[,1].includes(void 0,1)});i({target:"Array",proto:!0,forced:a||l},{includes:function includes(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}});s("includes")}),Me=__webpack_require__.cw(function(t,e){var i=H(),n=to_object_namespaceFn(),r=Dt(),s=w(),a=__webpack_require__(837);i({target:"Array",proto:!0,arity:1,forced:z()(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function push(t){var e=n(this),i=r(e),o=arguments.length;a(i+o);for(var l=0;l<o;l++){e[i]=arguments[l];i++}s(e,i);return i}})}),Ie=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=l(),s=h(),a=ft(),o=Ht(),c=D(),d=k(),u=z(),p=nt(),g=De(),f=kt().IteratorPrototype,m=O(),b=wt(),y="constructor",w="Iterator",v=g("toStringTag"),_=TypeError,A=n[w],x=b||!a(A)||A.prototype!==f||!u(function(){A({})}),E=function Iterator(){r(this,f);if(o(this)===f)throw new _("Abstract class Iterator not directly constructable")},defineIteratorPrototypeAccessor=function(t,e){m?c(f,t,{configurable:!0,get:function(){return e},set:function(e){s(this);if(this===f)throw new _("You can't redefine this property");p(this,t)?this[t]=e:d(this,t,e)}}):f[t]=e};p(f,v)||defineIteratorPrototypeAccessor(v,w);!x&&p(f,y)&&f[y]!==Object||defineIteratorPrototypeAccessor(y,E);E.prototype=f;i({global:!0,constructor:!0,forced:x},{Iterator:E})}),Fe=__webpack_require__.cw(function(t,e){var i=H(),n=V(),r=h(),s=get_iterator_direct_namespaceFn(),a=not_a_nan_namespaceFn(),o=to_positive_integer_namespaceFn(),l=Ct(),c=St(),d=iterator_helper_throws_on_invalid_iterator_namespaceFn(),u=Tt(),p=wt(),g=RangeError,f=1/0,m=!p&&!d("drop",0),b=!p&&!m&&u("drop",RangeError),y=p||m||b||!function(){try{Iterator.prototype.drop.call({next:function(){return{done:!0}}},9007199254740992)}catch(t){return t instanceof g}}(),w=c(function(){for(var t,e=this.iterator,i=this.next;this.remaining;){this.remaining--;t=r(n(i,e));if(this.done=!!t.done)return}t=r(n(i,e));if(!(this.done=!!t.done))return t.value});i({target:"Iterator",proto:!0,real:!0,forced:y},{drop:function drop(t){r(this);var e;try{if((e=o(a(+t)))>9007199254740991&&e!==f)throw new g("The argument should be a safe integer")}catch(t){l(this,"throw",t)}return b?n(b,this,e):new w(s(this),{remaining:e})}})}),Oe=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=xt(),a=i(),o=h(),l=get_iterator_direct_namespaceFn(),c=Ct(),d=Tt()("every",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:d},{every:function every(t){o(this);try{a(t)}catch(t){c(this,"throw",t)}if(d)return r(d,this,t);var e=l(this),i=0;return!s(e,function(e,n){if(!t(e,i++))return n()},{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}),Re=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=i(),a=h(),o=get_iterator_direct_namespaceFn(),l=St(),c=_(),d=wt(),u=Ct(),p=iterator_helper_throws_on_invalid_iterator_namespaceFn(),g=Tt(),f=!d&&!p("filter",function(){}),m=!d&&!f&&g("filter",TypeError),b=d||f||m,y=l(function(){for(var t,e,i=this.iterator,n=this.predicate,s=this.next;;){t=a(r(s,i));if(this.done=!!t.done)return;e=t.value;if(c(i,n,[e,this.counter++],!0))return e}});n({target:"Iterator",proto:!0,real:!0,forced:b},{filter:function filter(t){a(this);try{s(t)}catch(t){u(this,"throw",t)}return m?r(m,this,t):new y(o(this),{predicate:t})}})}),Be=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=xt(),a=i(),o=h(),l=get_iterator_direct_namespaceFn(),c=Ct(),d=Tt()("find",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:d},{find:function find(t){o(this);try{a(t)}catch(t){c(this,"throw",t)}if(d)return r(d,this,t);var e=l(this),i=0;return s(e,function(e,n){if(t(e,i++))return n(e)},{IS_RECORD:!0,INTERRUPTED:!0}).result}})}),Le=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=i(),a=h(),o=get_iterator_direct_namespaceFn(),l=J(),c=St(),d=Ct(),u=z(),p=wt(),g=iterator_helper_throws_on_invalid_iterator_namespaceFn(),f=Tt(),m=!p&&u(function(){return 1!==[1].values().flatMap(function(){return[1]}).find(function(){return!0})}),b=!p&&!m&&!g("flatMap",function(){}),y=!p&&!m&&!b&&f("flatMap",TypeError),w=p||m||b||y,v=c(function(){for(var t,e,i=this.iterator,n=this.mapper;;){if(e=this.inner)try{if(!(t=a(r(e.next,e.iterator))).done)return t.value;this.inner=null}catch(t){d(i,"throw",t)}t=a(r(this.next,i));if(this.done=!!t.done)return;try{this.inner=l(n(t.value,this.counter++),!1)}catch(t){d(i,"throw",t)}}});n({target:"Iterator",proto:!0,real:!0,forced:w},{flatMap:function flatMap(t){a(this);try{s(t)}catch(t){d(this,"throw",t)}return y?r(y,this,t):new v(o(this),{mapper:t,inner:null})}})}),Ne=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=xt(),a=i(),o=h(),l=get_iterator_direct_namespaceFn(),c=Ct(),d=Tt()("forEach",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:d},{forEach:function forEach(t){o(this);try{a(t)}catch(t){c(this,"throw",t)}if(d)return r(d,this,t);var e=l(this),i=0;s(e,function(e){t(e,i++)},{IS_RECORD:!0})}})}),Ue=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=i(),a=h(),o=get_iterator_direct_namespaceFn(),l=St(),c=_(),d=Ct(),u=iterator_helper_throws_on_invalid_iterator_namespaceFn(),p=Tt(),g=wt(),f=!g&&!u("map",function(){}),m=!g&&!f&&p("map",TypeError),b=g||f||m,y=l(function(){var t=this.iterator,e=a(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)});n({target:"Iterator",proto:!0,real:!0,forced:b},{map:function map(t){a(this);try{s(t)}catch(t){d(this,"throw",t)}return m?r(m,this,t):new y(o(this),{mapper:t})}})}),He=__webpack_require__.cw(function(t,e){var n=H(),r=V(),s=xt(),a=i(),o=h(),l=get_iterator_direct_namespaceFn(),c=Ct(),d=Tt()("some",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:d},{some:function some(t){o(this);try{a(t)}catch(t){c(this,"throw",t)}if(d)return r(d,this,t);var e=l(this),i=0;return s(e,function(e,n){if(t(e,i++))return n()},{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}),ze=__webpack_require__.cw(function(t,e){var i=H(),n=V(),r=h(),s=get_iterator_direct_namespaceFn(),a=not_a_nan_namespaceFn(),o=to_positive_integer_namespaceFn(),l=St(),c=Ct(),d=iterator_helper_throws_on_invalid_iterator_namespaceFn(),u=Tt(),p=wt(),g=RangeError,f=1/0,m=!p&&!d("take",1),b=!p&&!m&&u("take",RangeError),y=p||m||b||!function(){try{Iterator.prototype.take.call({next:function(){return{done:!0}}},9007199254740992)}catch(t){return t instanceof g}}(),w=l(function(){var t=this.iterator;if(!this.remaining--){this.done=!0;return c(t,"normal",void 0)}var e=r(n(this.next,t));if(!(this.done=!!e.done))return e.value});i({target:"Iterator",proto:!0,real:!0,forced:y},{take:function take(t){r(this);var e;try{if((e=o(a(+t)))>9007199254740991&&e!==f)throw new g("The argument should be a safe integer")}catch(t){c(this,"throw",t)}return b?n(b,this,e):new w(s(this),{remaining:e})}})}),Ge=__webpack_require__.cw(function(t,e){var i=H(),n=h(),r=k(),s=xt(),a=get_iterator_direct_namespaceFn();i({target:"Iterator",proto:!0,real:!0},{toArray:function toArray(){var t=[],e=0;s(a(n(this)),function(i){r(t,e++,i)},{IS_RECORD:!0});return t}})}),je=__webpack_require__.cw(function(t,e){var i=H(),n=O(),r=it(),s=Y(),a=K(),o=V(),l=ft(),c=bt(),h=pt(),d=nt(),u=we(),p=Dt(),g=k(),f=z(),m=Xt(),b=de(),y=r.JSON,w=r.Number,v=r.SyntaxError,_=y&&y.parse,A=s("Object","keys"),x=Object.getOwnPropertyDescriptor,E=a("".charAt),C=a("".slice),S=a(/./.exec),T=a([].push),D=/^\d$/,P=/^[1-9]$/,M=/^[\d-]$/,I=/^[\t\n\r ]$/,internalize=function(t,e,i,n){var r,s,a,l,u,g=t[e],f=n&&g===n.value,m=f&&"string"==typeof n.source?{source:n.source}:{};if(c(g)){var b=h(g),y=f?n.nodes:b?[]:{};if(b){r=y.length;a=p(g);for(l=0;l<a;l++)internalizeProperty(g,l,internalize(g,""+l,i,l<r?y[l]:void 0))}else{s=A(g);a=p(s);for(l=0;l<a;l++){u=s[l];internalizeProperty(g,u,internalize(g,u,i,d(y,u)?y[u]:void 0))}}}return o(i,t,e,g,m)},internalizeProperty=function(t,e,i){if(n){var r=x(t,e);if(r&&!r.configurable)return}void 0===i?delete t[e]:g(t,e,i)},Node=function(t,e,i,n){this.value=t;this.end=e;this.source=i;this.nodes=n},Context=function(t,e){this.source=t;this.index=e};Context.prototype={fork:function(t){return new Context(this.source,t)},parse:function(){var t=this.source,e=this.skip(I,this.index),i=this.fork(e),n=E(t,e);if(S(M,n))return i.number();switch(n){case"{":return i.object();case"[":return i.array();case'"':return i.string();case"t":return i.keyword(!0);case"f":return i.keyword(!1);case"n":return i.keyword(null)}throw new v('Unexpected character: "'+n+'" at: '+e)},node:function(t,e,i,n,r){return new Node(e,n,t?null:C(this.source,i,n),r)},object:function(){for(var t=this.source,e=this.index+1,i=!1,n={},r={},s=!1;e<t.length;){e=this.until(['"',"}"],e);if("}"===E(t,e)&&!i){e++;s=!0;break}var a=this.fork(e).string(),o=a.value;e=a.end;e=this.until([":"],e)+1;e=this.skip(I,e);a=this.fork(e).parse();g(r,o,a);g(n,o,a.value);e=this.until([",","}"],a.end);var l=E(t,e);if(","===l){i=!0;e++}else if("}"===l){e++;s=!0;break}}if(!s)throw new v("Unterminated object at: "+e);return this.node(1,n,this.index,e,r)},array:function(){for(var t=this.source,e=this.index+1,i=!1,n=[],r=[],s=!1;e<t.length;){e=this.skip(I,e);if("]"===E(t,e)&&!i){e++;s=!0;break}var a=this.fork(e).parse();T(r,a);T(n,a.value);e=this.until([",","]"],a.end);if(","===E(t,e)){i=!0;e++}else if("]"===E(t,e)){e++;s=!0;break}}if(!s)throw new v("Unterminated array at: "+e);return this.node(1,n,this.index,e,r)},string:function(){var t=this.index,e=m(this.source,this.index+1);return this.node(0,e.value,t,e.end)},number:function(){var t=this.source,e=this.index,i=e;"-"===E(t,i)&&i++;if("0"===E(t,i))i++;else{if(!S(P,E(t,i)))throw new v("Failed to parse number at: "+i);i=this.skip(D,i+1)}if("."===E(t,i)){var n=i+1;if(n===(i=this.skip(D,n)))throw new v("Failed to parse number's fraction at: "+i)}if("e"===E(t,i)||"E"===E(t,i)){i++;"+"!==E(t,i)&&"-"!==E(t,i)||i++;if(i===(i=this.skip(D,i)))throw new v("Failed to parse number's exponent value at: "+i)}return this.node(0,w(C(t,e,i)),e,i)},keyword:function(t){var e=""+t,i=this.index,n=i+e.length;if(C(this.source,i,n)!==e)throw new v("Failed to parse value at: "+i);return this.node(0,t,i,n)},skip:function(t,e){for(var i=this.source;e<i.length&&S(t,E(i,e));e++);return e},until:function(t,e){e=this.skip(I,e);for(var i=E(this.source,e),n=0;n<t.length;n++)if(t[n]===i)return e;throw new v('Unexpected character: "'+i+'" at: '+e)}};var R=f(function(){var t,e="9007199254740993";_(e,function(e,i,n){t=n.source});return t!==e}),B=b&&!f(function(){return 1/_("-0 \t")!=-1/0});i({target:"JSON",stat:!0,forced:R},{parse:function parse(t,e){return B&&!l(e)?_(t):function(t,e){t=u(t);var i=new Context(t,0),n=i.parse(),r=n.value,s=i.skip(I,n.end);if(s<t.length)throw new v('Unexpected extra character: "'+E(t,s)+'" after the parsed data at: '+s);return l(e)?internalize({"":r},"",e,n):r}(t,e)}})}),We=__webpack_require__.cw(function(t,e){var i=H(),n=Y(),r=V(),s=K(),a=z(),o=pt(),l=ft(),c=bt(),h=Rt(),d=vt(),u=_t(),p=A(),g=ue(),f=y().includes,m=nt(),b=we(),w=Xt(),v=_e(),_=de(),x=It(),E=String,C=TypeError,S=n("JSON","stringify"),T=n("BigInt"),k=s("".valueOf),D=s((!0).valueOf),P=T&&s(T.prototype.valueOf),M=s(/./.exec),I=s("".charAt),O=s("".charCodeAt),R=s("".replace),B=s("".slice),L=s([].push),N=s([].pop),U=s(1.1.toString),G=/[\uD800-\uDFFF]/g,j=/^[\uD800-\uDBFF]$/,W=/^[\uDC00-\uDFFF]$/,$=/^\d+$/,q=v(),X=v(),J=v(),Q=q.length,Z=X.length,tt=!_||a(function(){var t=n("Symbol")("stringify detection");return"[null]"!==S([t])||"{}"!==S({a:t})||"{}"!==S(Object(t))}),et=a(function(){return'"\\udf06\\ud834"'!==S("\udf06\ud834")||'"\\udead"'!==S("\udead")}),it=x?n("JSON","isRawJSON"):d,rt=tt?function(t,e,i){return S(t,function(t,i){var n=r(e,this,t,i);if(!u(n))return n},i)}:S,fixIllFormedJSON=function(t,e,i){var n=I(i,e-1),r=I(i,e+1);return M(j,t)&&!M(W,r)||M(W,t)&&!M(j,n)?"\\u"+U(O(t,0),16):t},hasInternalSlot=function(t,e){try{t(e);return!0}catch(t){return!1}},isSerializedAsObject=function(t){if(!c(t)||l(t)||o(t))return!1;try{return!function(t){var e=p(t);return"Number"===e&&hasInternalSlot(g,t)||"String"===e&&hasInternalSlot(k,t)||"Boolean"===e&&hasInternalSlot(D,t)||!!P&&"BigInt"===e&&hasInternalSlot(P,t)}(t)}catch(t){return!0}},createElementHolder=function(t,e){return{toJSON:function(){var i=t[e];if(c(i)||"bigint"==typeof i){var n=i.toJSON;l(n)&&(i=r(n,i,e))}return i}}};S&&i({target:"JSON",stat:!0,arity:3,forced:tt||et||!x},{stringify:function stringify(t,e,i){var n,s=l(e)?e:void 0,a=s?void 0:function(t){if(o(t)){for(var e=t.length,i=[],n=h(null),r=0;r<e;r++){var s,a=t[r];if("string"==typeof a)s=a;else{if("number"!=typeof a&&"Number"!==p(a)&&"String"!==p(a))continue;s=b(a)}if(!m(n,s)){n[s]=!0;L(i,s)}}return i}}(e),c=a&&function(t){for(var e=0,i=t.length;e<i;e++)if(M($,t[e]))return X;return""}(a),d=[],u=[],g=[],y=!1,v=!0,_=rt(t,function(t,e){t=E(t);if(a){if(t===J){N(u);n=N(g);return}if(v)v=!1;else if(this!==n&&!o(this)&&!f(a,t))return}else s&&(e=r(s,this,t,e));if(it(e)){if(x)return e;y=!0;return q+(L(d,e.rawJSON)-1)}if(a&&isSerializedAsObject(e)){if(f(u,e))throw new C("Converting circular structure to JSON");var i=function(t,e,i){for(var n=h(null),r=0,s=e.length;r<s;r++){var a=e[r];n[i+a]=createElementHolder(t,a)}n[J]=null;return n}(e,a,c);L(u,e);L(g,n);n=i;c&&(y=!0);return i}return e},i);if("string"!=typeof _)return _;et&&(_=R(_,G,fixIllFormedJSON));if(!y)return _;for(var A="",S=_.length,T=0;T<S;T++){var k=I(_,T);if('"'===k){var D=w(_,++T).end-1,P=B(_,T,D);B(P,0,Q)===q?A+=d[B(P,Q)]:B(P,0,Z)===X?A+='"'+B(P,Z)+'"':A+='"'+P+'"';T=D}else A+=k}return A}})}),Ve=__webpack_require__.cw(function(t,e){var n=H(),r=i(),s=Mt(),a=wt(),o=s.get,l=s.has,c=s.set;n({target:"Map",proto:!0,real:!0,forced:a},{getOrInsertComputed:function getOrInsertComputed(t,e){var i=l(this,t);r(e);if(i)return o(this,t);0===t&&1/t==-1/0&&(t=0);var n=e(t);c(this,t,n);return n}})}),$e=__webpack_require__.cw(function(t,e){var i=H(),n=Mt(),r=wt(),s=n.get,a=n.has,o=n.set;i({target:"Map",proto:!0,real:!0,forced:r},{getOrInsert:function getOrInsert(t,e){if(a(this,t))return s(this,t);o(this,t,e);return e}})}),qe=__webpack_require__.cw(function(t,e){var i=H(),n=K(),r=xt(),s=RangeError,a=TypeError,o=1/0,l=Math.abs,c=Math.pow,h=n([].push),d=c(2,1023),u=c(2,53)-1,p=Number.MAX_VALUE,g=c(2,971),f={},m={},b={},y={},w={},twosum=function(t,e){var i=t+e;return{hi:i,lo:e-(i-t)}};i({target:"Math",stat:!0},{sumPrecise:function sumPrecise(t){var e=[],i=0,n=y;r(t,function(t){if(++i>u)throw new s("Maximum allowed index exceeded");if("number"!=typeof t)throw new a("Value is not a number");if(n!==f)if(t!=t)n=f;else if(t===o)n=n===m?f:b;else if(t===-1/0)n=n===b?f:m;else if(!(0===t&&1/t!==o||n!==y&&n!==w)){n=w;h(e,t)}});switch(n){case f:return NaN;case m:return-1/0;case b:return o;case y:return-0}for(var c,v,_,A,x,E,C=[],S=0,T=0;T<e.length;T++){c=e[T];for(var k=0,D=0;D<C.length;D++){v=C[D];if(l(c)<l(v)){E=c;c=v;v=E}A=(_=twosum(c,v)).hi;x=_.lo;if(l(A)===o){var P=A===o?1:-1;S+=P;if(l(c=c-P*d-P*d)<l(v)){E=c;c=v;v=E}A=(_=twosum(c,v)).hi;x=_.lo}0!==x&&(C[k++]=x);c=A}C.length=k;0!==c&&h(C,c)}var M=C.length-1;A=0;x=0;if(0!==S){var I=M>=0?C[M]:0;M--;if(l(S)>1||S>0&&I>0||S<0&&I<0)return S>0?o:-1/0;A=(_=twosum(S*d,I/2)).hi;x=_.lo;x*=2;if(l(2*A)===o)return A>0?A===d&&x===-g/2&&M>=0&&C[M]<0?p:o:A===-d&&x===g/2&&M>=0&&C[M]>0?-p:-1/0;if(0!==x){C[++M]=x;x=0}A*=2}for(;M>=0;){A=(_=twosum(A,C[M--])).hi;if(0!==(x=_.lo))break}M>=0&&(x<0&&C[M]<0||x>0&&C[M]>0)&&(v=2*x)===(c=A+v)-A&&(A=c);return A}})}),Xe=__webpack_require__.cw(function(t,e){var n=H(),r=it(),s=G(),a=v(),o=Kt(),l=Ft(),c=i(),h=__webpack_require__(103),d=z(),u=r.Promise,p=!1;n({target:"Promise",stat:!0,forced:!u||!u.try||d(function(){var t=u.resolve();return u.try(function(e){p=8===e;return t},8)!==t})||!p},{try:function(t){var e=arguments.length>1?a(arguments,1):[],i=h(function(){return s(c(t),void 0,e)});if(!i.error)return o(this,i.value);var n=l.f(this);(0,n.reject)(i.value);return n.promise}})}),Ke=__webpack_require__.cw(function(t,e){var i=H(),n=Jt(),r=z();i({target:"Set",proto:!0,real:!0,forced:!re()("difference",function(t){return 0===t.size})||r(function(){var t={size:1,has:function(){return!0},keys:function(){var t=0;return{next:function(){var i=t++>1;e.has(1)&&e.clear();return{done:i,value:2}}}}},e=new Set([1,2,3,4]);return 3!==e.difference(t).size})},{difference:n})}),Ye=__webpack_require__.cw(function(t,e){var i=H(),n=z(),r=Zt();i({target:"Set",proto:!0,real:!0,forced:!re()("intersection",function(t){return 2===t.size&&t.has(1)&&t.has(2)})||n(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:r})}),Je=__webpack_require__.cw(function(t,e){var i=H(),n=te();i({target:"Set",proto:!0,real:!0,forced:!re()("isDisjointFrom",function(t){return!t})},{isDisjointFrom:n})}),Qe=__webpack_require__.cw(function(t,e){var i=H(),n=ee();i({target:"Set",proto:!0,real:!0,forced:!re()("isSubsetOf",function(t){return t})},{isSubsetOf:n})}),Ze=__webpack_require__.cw(function(t,e){var i=H(),n=ie();i({target:"Set",proto:!0,real:!0,forced:!re()("isSupersetOf",function(t){return!t})},{isSupersetOf:n})}),ti=__webpack_require__.cw(function(t,e){var i=H(),n=ae(),r=set_method_get_keys_before_cloning_detection_namespaceFn();i({target:"Set",proto:!0,real:!0,forced:!re()("symmetricDifference")||!r("symmetricDifference")},{symmetricDifference:n})}),ei=__webpack_require__.cw(function(t,e){var i=H(),n=oe(),r=set_method_get_keys_before_cloning_detection_namespaceFn();i({target:"Set",proto:!0,real:!0,forced:!re()("union")||!r("union")},{union:n})}),ii=__webpack_require__.cw(function(t,e){var i=m(),n=gt(),r=Dt(),s=to_integer_or_infinity_namespaceFn(),a=ge(),o=i.aTypedArray,l=i.getTypedArrayConstructor,c=i.exportTypedArrayMethod,h=RangeError,d=function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(t){return 8===t}}(),u=d&&function(){try{new Int8Array(1).with(-.5,1)}catch(t){return!0}}();c("with",{with:function(t,e){var i=o(this),c=r(i),d=s(t),u=d<0?c+d:d,p=n(i)?a(e):+e;if(u>=c||u<0)throw new h("Incorrect index");for(var g=new(l(i))(c),f=0;f<c;f++)g[f]=f===u?p:i[f];return g}}.with,!d||u)}),ni=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=b(),s=Ae(),a=n.Uint8Array,o=!a||!a.fromBase64||!function(){try{a.fromBase64("a");return}catch(t){}try{a.fromBase64("",null)}catch(t){return!0}}();a&&i({target:"Uint8Array",stat:!0,forced:o},{fromBase64:function fromBase64(t){var e=s(t,arguments.length>1?arguments[1]:void 0,null,9007199254740991);return r(a,e.bytes)}})}),ri=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=Ae(),s=d(),a=n.Uint8Array,o=!a||!a.prototype.setFromBase64||!function(){var t=new a([255,255,255,255,255]);try{t.setFromBase64("",null);return}catch(t){}try{t.setFromBase64("a");return}catch(t){}try{t.setFromBase64("MjYyZg===")}catch(e){return 50===t[0]&&54===t[1]&&50===t[2]&&255===t[3]&&255===t[4]}}();a&&i({target:"Uint8Array",proto:!0,forced:o},{setFromBase64:function setFromBase64(t){s(this);var e=r(t,arguments.length>1?arguments[1]:void 0,this,this.length);return{read:e.read,written:e.written}}})}),si=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=a_string_namespaceFn(),s=d(),a=f(),o=xe();n.Uint8Array&&i({target:"Uint8Array",proto:!0,forced:function throwsOnLengthTrackingView(){try{var t=new ArrayBuffer(16,{maxByteLength:1024});new Uint8Array(t).setFromHex("cafed00d")}catch(t){return!0}}()},{setFromHex:function setFromHex(t){s(this);r(t);a(this.buffer);var e=o(t,this).read;return{read:e,written:e/2}}})}),ai=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=K(),s=c(),a=d(),o=f(),l=base64_map_namespaceFn(),h=get_alphabet_option_namespaceFn(),u=l.i2c,p=l.i2cUrl,g=Math.floor,m=Math.ceil,b=r("".charAt),y=n.Uint8Array,w=n.Array,v=r([].join),_=!y||!y.prototype.toBase64||!function(){try{(new y).toBase64(null)}catch(t){return!0}}();y&&i({target:"Uint8Array",proto:!0,forced:_},{toBase64:function toBase64(){var t=a(this),e=arguments.length?s(arguments[0]):void 0,i="base64"===h(e)?u:p,n=!!e&&!!e.omitPadding;o(this.buffer);for(var r,l=0,c=t.length,d=w(n?4*g(c/3)+(c%3?c%3+1:0):4*m(c/3)),f=0,at=function(t){return b(i,r>>6*t&63)};l+2<c;l+=3){r=(t[l]<<16)+(t[l+1]<<8)+t[l+2];d[f++]=at(3);d[f++]=at(2);d[f++]=at(1);d[f++]=at(0)}if(l+2===c){r=(t[l]<<16)+(t[l+1]<<8);d[f++]=at(3);d[f++]=at(2);d[f++]=at(1);n||(d[f++]="=")}else if(l+1===c){r=t[l]<<16;d[f++]=at(3);d[f++]=at(2);if(!n){d[f++]="=";d[f++]="="}}return v(d,"")}})}),oi=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=K(),s=d(),a=f(),o=r(1.1.toString),l=r([].join),c=Array,h=n.Uint8Array,u=!h||!h.prototype.toHex||!function(){try{return"ffffffffffffffff"===new h([255,255,255,255,255,255,255,255]).toHex()}catch(t){return!1}}();h&&i({target:"Uint8Array",proto:!0,forced:u},{toHex:function toHex(){s(this);a(this.buffer);for(var t=c(this.length),e=0,i=this.length;e<i;e++){var n=o(this[e],16);t[e]=1===n.length?"0"+n:n}return l(t,"")}})}),li=__webpack_require__.cw(function(t,e){var n=H(),r=i(),o=a(),l=s(),c=ke(),h=wt(),d=c.get,u=c.has,p=c.set;n({target:"WeakMap",proto:!0,real:!0,forced:h||!function(){try{WeakMap.prototype.getOrInsertComputed&&(new WeakMap).getOrInsertComputed(1,function(){throw 1})}catch(t){return t instanceof TypeError}}()},{getOrInsertComputed:function getOrInsertComputed(t,e){h||o(this);l(t);r(e);if(u(this,t))return d(this,t);var i=e(t);p(this,t,i);return i}})}),ci=__webpack_require__.cw(function(t,e){var i=H(),n=ke(),r=wt(),s=n.get,a=n.has,o=n.set;i({target:"WeakMap",proto:!0,real:!0,forced:r},{getOrInsert:function getOrInsert(t,e){if(a(this,t))return s(this,t);o(this,t,e);return e}})}),hi=__webpack_require__.cw(function(t,e){var i=H(),n=it(),r=Y(),s=T(),a=Lt().f,o=nt(),c=l(),h=ct(),d=Ot(),u=__webpack_require__(2),p=U(),g=O(),f=wt(),m="DOMException",b=r("Error"),y=r(m),w=function DOMException(){c(this,v);var t=arguments.length,e=d(t<1?void 0:arguments[0]),i=d(t<2?void 0:arguments[1],"Error"),n=new y(e,i),r=new b(e);r.name=m;a(n,"stack",s(1,p(r.stack,1)));h(n,this,w);return n},v=w.prototype=y.prototype,_="stack"in new b(m),A="stack"in new y(1,2),x=y&&g&&Object.getOwnPropertyDescriptor(n,m),E=!(!x||x.writable&&x.configurable),C=_&&!E&&!A;i({global:!0,constructor:!0,forced:f||C},{DOMException:C?w:y});var S=r(m),k=S.prototype;if(k.constructor!==S){f||a(k,"constructor",s(1,S));for(var D in u)if(o(u,D)){var P=u[D],M=P.s;o(S,M)||a(S,M,s(6,P.c))}}}),di=__webpack_require__.cw(function(t,e){var i=H(),n=Y(),r=__webpack_require__(812),s=we(),a=Ee(),o=n("URL");i({target:"URL",stat:!0,forced:!a},{parse:function parse(t){var e=r(arguments.length,1),i=s(t),n=e<2||void 0===arguments[1]?void 0:s(arguments[1]);try{return new o(i,n)}catch(t){return null}}})});Pe();Me();Ie();Re();$e();Ve();Ke();Ye();Je();Qe();Ze();ti();ei();ii();ri();si();ai();oi();di();const ui=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),pi=[1/0,1/0,-1/0,-1/0],gi=new Float32Array(pi),fi=[.001,0,0,.001,0,0],mi="http://www.w3.org/2000/svg",bi=1,yi=2,wi=4,vi=16,_i=32,Ai=64,xi=128,Ei=256,Ci={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Si="pdfjs_internal_id_",Ti="pdfjs_internal_editor_",ki={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,POPUP:16,SIGNATURE:101,COMMENT:102},Di={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,INK_COLOR_AND_OPACITY:24,HIGHLIGHT_COLOR:31,HIGHLIGHT_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},Pi={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Mi=0,Ii=1,Fi=2,Oi=3,Ri=3,Bi=4,Li={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},Ni={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26,RICHMEDIA:27},Ui=1,Hi=2,zi=3,Gi=4,ji=5,Wi={ERRORS:0,WARNINGS:1,INFOS:5},Vi={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},$i=0,qi=1,Xi=2,Ki=3,Yi=4,Ji={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let Qi=Wi.WARNINGS;function setVerbosityLevel(t){Number.isInteger(t)&&(Qi=t)}function getVerbosityLevel(){return Qi}function info(t){Qi>=Wi.INFOS&&console.info(`Info: ${t}`)}function warn(t){Qi>=Wi.WARNINGS&&console.warn(`Warning: ${t}`)}function unreachable(t){throw new Error(t)}function util_assert(t,e){t||unreachable(e)}function createValidAbsoluteUrl(t,e=null,i=null){if(!t)return null;if(i&&"string"==typeof t){if(i.addDefaultProtocol&&t.startsWith("www.")){const e=t.match(/\./g);e?.length>=2&&(t=`http://${t}`)}if(i.tryConvertEncoding)try{t=function stringToUTF8String(t){return decodeURIComponent(escape(t))}(t)}catch{}}const n=e?URL.parse(t,e):URL.parse(t);return function _isValidProtocol(t){switch(t?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(n)?n:null}function updateUrlHash(t,e,i=!1){const n=URL.parse(t);if(n){n.hash=e;return n.href}return i&&createValidAbsoluteUrl(t,"http://example.com")?t.split("#",1)[0]+""+(e?`#${e}`:""):""}function stripPath(t){return t.substring(t.lastIndexOf("/")+1)}function util_shadow(t,e,i,n=!1){Object.defineProperty(t,e,{value:i,enumerable:!n,configurable:!0,writable:!1});return i}const Zi=function BaseExceptionClosure(){function BaseException(t,e){this.message=t;this.name=e}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();class PasswordException extends Zi{constructor(t,e){super(t,"PasswordException");this.code=e}}class UnknownErrorException extends Zi{constructor(t,e){super(t,"UnknownErrorException");this.details=e}}class InvalidPDFException extends Zi{constructor(t){super(t,"InvalidPDFException")}}class ResponseException extends Zi{constructor(t,e,i){super(t,"ResponseException");this.status=e;this.missing=i}}class FormatError extends Zi{constructor(t){super(t,"FormatError")}}class AbortException extends Zi{constructor(t){super(t,"AbortException")}}function stringToBytes(t){"string"!=typeof t&&unreachable("Invalid argument for stringToBytes");const e=t.length,i=new Uint8Array(e);for(let n=0;n<e;++n)i[n]=255&t.charCodeAt(n);return i}class FeatureTest{static get isLittleEndian(){const t=new Uint8Array(4);t[0]=1;return util_shadow(this,"isLittleEndian",1===new Uint32Array(t.buffer,0,1)[0])}static get isOffscreenCanvasSupported(){return util_shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return util_shadow(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get isFloat16ArraySupported(){return util_shadow(this,"isFloat16ArraySupported","undefined"!=typeof Float16Array)}static get isSanitizerSupported(){return util_shadow(this,"isSanitizerSupported","undefined"!=typeof Sanitizer)}static get platform(){const{platform:t,userAgent:e}=navigator;return util_shadow(this,"platform",{isAndroid:e.includes("Android"),isLinux:t.includes("Linux"),isMac:t.includes("Mac"),isWindows:t.includes("Win"),isFirefox:e.includes("Firefox")})}static get isCanvasFilterSupported(){let t;this.isOffscreenCanvasSupported?t=new OffscreenCanvas(1,1).getContext("2d"):"undefined"!=typeof document&&(t=document.createElement("canvas").getContext("2d"));return util_shadow(this,"isCanvasFilterSupported",void 0!==t?.filter)}static get isAlphaColorInputSupported(){if("undefined"==typeof document)return util_shadow(this,"isAlphaColorInputSupported",!1);const t=document.createElement("input");t.type="color";t.setAttribute("alpha","");t.value="#ff000080";return util_shadow(this,"isAlphaColorInputSupported","#ff0000"!==t.value)}static get isBackdropFilterSupported(){return util_shadow(this,"isBackdropFilterSupported","undefined"!=typeof CSS&&CSS.supports("backdrop-filter","blur(1px)"))}}class Util{static get hexNums(){return util_shadow(this,"hexNums",Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0")))}static makeHexColor(t,e,i){return`#${this.hexNums[t]}${this.hexNums[e]}${this.hexNums[i]}`}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,i=0){const n=t[i],r=t[i+1];t[i]=n*e[0]+r*e[2]+e[4];t[i+1]=n*e[1]+r*e[3]+e[5]}static applyTransformToBezier(t,e,i=0){const n=e[0],r=e[1],s=e[2],a=e[3],o=e[4],l=e[5];for(let e=0;e<6;e+=2){const c=t[i+e],h=t[i+e+1];t[i+e]=c*n+h*s+o;t[i+e+1]=c*r+h*a+l}}static applyInverseTransform(t,e){const i=t[0],n=t[1],r=e[0]*e[3]-e[1]*e[2];t[0]=(i*e[3]-n*e[2]+e[2]*e[5]-e[4]*e[3])/r;t[1]=(-i*e[1]+n*e[0]+e[4]*e[1]-e[5]*e[0])/r}static axialAlignedBoundingBox(t,e,i){const n=e[0],r=e[1],s=e[2],a=e[3],o=e[4],l=e[5],c=t[0],h=t[1],d=t[2],u=t[3];let p=n*c+o,g=p,f=n*d+o,m=f,b=a*h+l,y=b,w=a*u+l,v=w;if(0!==r||0!==s){const t=r*c,e=r*d,i=s*h,n=s*u;p+=i;m+=i;f+=n;g+=n;b+=t;v+=t;w+=e;y+=e}i[0]=Math.min(i[0],p,f,g,m);i[1]=Math.min(i[1],b,w,y,v);i[2]=Math.max(i[2],p,f,g,m);i[3]=Math.max(i[3],b,w,y,v)}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],a=i**2+n**2,o=i*r+n*s,l=r**2+s**2,c=(a+l)/2,h=Math.sqrt(c**2-(a*l-o**2));e[0]=Math.sqrt(c+h||1);e[1]=Math.sqrt(c-h||1)}static normalizeRect(t){const e=t.slice(0);if(t[0]>t[2]){e[0]=t[2];e[2]=t[0]}if(t[1]>t[3]){e[1]=t[3];e[3]=t[1]}return e}static intersect(t,e){const i=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),n=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(i>n)return null;const r=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),s=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return r>s?null:[i,r,n,s]}static pointBoundingBox(t,e,i){i[0]=Math.min(i[0],t);i[1]=Math.min(i[1],e);i[2]=Math.max(i[2],t);i[3]=Math.max(i[3],e)}static rectBoundingBox(t,e,i,n,r){r[0]=Math.min(r[0],t,i);r[1]=Math.min(r[1],e,n);r[2]=Math.max(r[2],t,i);r[3]=Math.max(r[3],e,n)}static#t(t,e,i,n,r,s,a,o,l,c){if(l<=0||l>=1)return;const h=1-l,d=l*l,u=d*l,p=h*(h*(h*t+3*l*e)+3*d*i)+u*n,g=h*(h*(h*r+3*l*s)+3*d*a)+u*o;c[0]=Math.min(c[0],p);c[1]=Math.min(c[1],g);c[2]=Math.max(c[2],p);c[3]=Math.max(c[3],g)}static#e(t,e,i,n,r,s,a,o,l,c,h,d){if(Math.abs(l)<1e-12){Math.abs(c)>=1e-12&&this.#t(t,e,i,n,r,s,a,o,-h/c,d);return}const u=c**2-4*h*l;if(u<0)return;const p=Math.sqrt(u),g=2*l;this.#t(t,e,i,n,r,s,a,o,(-c+p)/g,d);this.#t(t,e,i,n,r,s,a,o,(-c-p)/g,d)}static bezierBoundingBox(t,e,i,n,r,s,a,o,l){l[0]=Math.min(l[0],t,a);l[1]=Math.min(l[1],e,o);l[2]=Math.max(l[2],t,a);l[3]=Math.max(l[3],e,o);this.#e(t,i,r,a,e,n,s,o,3*(3*(i-r)-t+a),6*(t-2*i+r),3*(i-t),l);this.#e(t,i,r,a,e,n,s,o,3*(3*(n-s)-e+o),6*(e-2*n+s),3*(n-e),l)}}let tn=null,en=null;function normalizeUnicode(t){if(!tn){tn=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;en=new Map([["ſt","ſt"]])}return t.replaceAll(tn,(t,e,i)=>e?e.normalize("NFKC"):en.get(i))}function getUuid(){if("function"==typeof crypto.randomUUID)return crypto.randomUUID();const t=new Uint8Array(32);crypto.getRandomValues(t);return function bytesToString(t){"object"==typeof t&&void 0!==t?.length||unreachable("Invalid argument for bytesToString");const e=t.length,i=8192;if(e<i)return String.fromCharCode.apply(null,t);const n=[];for(let r=0;r<e;r+=i){const s=Math.min(r+i,e),a=t.subarray(r,s);n.push(String.fromCharCode.apply(null,a))}return n.join("")}(t)}const makeArr=()=>[],makeMap=()=>new Map,makeObj=()=>Object.create(null),makeSet=()=>new Set;"function"!=typeof Blob.prototype.bytes&&(Blob.prototype.bytes=async function(){return new Uint8Array(await this.arrayBuffer())});"function"!=typeof Response.prototype.bytes&&(Response.prototype.bytes=async function(){return new Uint8Array(await this.arrayBuffer())});"function"!=typeof Iterator.prototype.join&&(Iterator.prototype.join=function(t){return[...this].join(t)});Ue();function MathClamp(t,e,i){return Math.min(Math.max(t,e),i)}class PageViewport{constructor({viewBox:t,userUnit:e,scale:i,rotation:n,offsetX:r=0,offsetY:s=0,dontFlip:a=!1}){this.viewBox=t;this.userUnit=e;this.scale=i;this.rotation=n;this.offsetX=r;this.offsetY=s;i*=e;const o=(t[2]+t[0])/2,l=(t[3]+t[1])/2;let c,h,d,u,p,g,f,m;(n%=360)<0&&(n+=360);switch(n){case 180:c=-1;h=0;d=0;u=1;break;case 90:c=0;h=1;d=1;u=0;break;case 270:c=0;h=-1;d=-1;u=0;break;case 0:c=1;h=0;d=0;u=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}if(a){d=-d;u=-u}if(0===c){p=Math.abs(l-t[1])*i+r;g=Math.abs(o-t[0])*i+s;f=(t[3]-t[1])*i;m=(t[2]-t[0])*i}else{p=Math.abs(o-t[0])*i+r;g=Math.abs(l-t[1])*i+s;f=(t[2]-t[0])*i;m=(t[3]-t[1])*i}this.transform=[c*i,h*i,d*i,u*i,p-c*i*o-d*i*l,g-h*i*o-u*i*l];this.width=f;this.height=m}get rawDims(){const t=this.viewBox;return util_shadow(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}clone({scale:t=this.scale,rotation:e=this.rotation,offsetX:i=this.offsetX,offsetY:n=this.offsetY,dontFlip:r=!1}={}){return new PageViewport({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:t,rotation:e,offsetX:i,offsetY:n,dontFlip:r})}convertToViewportPoint(t,e){const i=[t,e];Util.applyTransform(i,this.transform);return i}convertToPdfPoint(t,e){const i=[t,e];Util.applyInverseTransform(i,this.transform);return i}}class XfaText{static textContent(t){const e=[],i={items:e,styles:Object.create(null)};!function walk(t){if(!t)return;let i=null;const n=t.name;if("#text"===n)i=t.value;else{if(!XfaText.shouldBuildText(n))return;t?.attributes?.textContent?i=t.attributes.textContent:t.value&&(i=t.value)}null!==i&&e.push({str:i});if(t.children)for(const e of t.children)walk(e)}(t);return i}static shouldBuildText(t){return!("textarea"===t||"input"===t||"option"===t||"select"===t)}}const nn=/url\(|image-set\(/i,rn=/^on/i;class XfaLayer{static get _allowedHtmlElements(){return util_shadow(this,"_allowedHtmlElements",new Set(["a","b","br","button","div","i","img","input","label","li","ol","option","p","select","span","sub","sup","textarea","ul"]))}static get _allowedSvgElements(){return util_shadow(this,"_allowedSvgElements",new Set(["ellipse","line","path","rect","svg"]))}static get _allowedRichTextElements(){return util_shadow(this,"_allowedRichTextElements",new Set(["a","b","br","div","i","li","ol","p","span","sub","sup","ul"]))}static get _allowedRichTextAttributes(){return util_shadow(this,"_allowedRichTextAttributes",new Set(["class","dir","style"]))}static get _allowedRichTextStyles(){return util_shadow(this,"_allowedRichTextStyles",new Set(["color","font","fontFamily","fontSize","fontStretch","fontStyle","fontWeight","kerningMode","letterSpacing","lineHeight","margin","marginBottom","marginLeft","marginRight","marginTop","orphans","paddingLeft","paddingRight","breakAfter","breakBefore","breakInside","tabInterval","tabStop","textAlign","textDecoration","textIndent","transform","verticalAlign","widows"]))}static setupStorage(t,e,i,n,r){const s=n.getValue(e,{value:null});switch(i.name){case"textarea":null!==s.value&&(t.textContent=s.value);if("print"===r)break;t.addEventListener("input",t=>{n.setValue(e,{value:t.target.value})});break;case"input":if("radio"===i.attributes.type||"checkbox"===i.attributes.type){s.value===i.attributes.xfaOn?t.setAttribute("checked",!0):s.value===i.attributes.xfaOff&&t.removeAttribute("checked");if("print"===r)break;t.addEventListener("change",t=>{n.setValue(e,{value:t.target.checked?t.target.getAttribute("xfaOn"):t.target.getAttribute("xfaOff")})})}else{null!==s.value&&t.setAttribute("value",s.value);if("print"===r)break;t.addEventListener("input",t=>{n.setValue(e,{value:t.target.value})})}break;case"select":if(null!==s.value){t.setAttribute("value",s.value);for(const t of i.children)t.attributes.value===s.value?t.attributes.selected=!0:Object.hasOwn(t.attributes,"selected")&&delete t.attributes.selected}t.addEventListener("input",t=>{const i=t.target.options,r=-1===i.selectedIndex?"":i[i.selectedIndex].value;n.setValue(e,{value:r})})}}static setAttributes({html:t,element:e,storage:i=null,intent:n,linkService:r}){const{attributes:s}=e,a=t instanceof HTMLAnchorElement;"radio"===s.type&&(s.name=`${s.name}-${n}`);for(const[e,i]of Object.entries(s))if(null!=i&&!rn.test(e)&&("richText"!==n||this._allowedRichTextAttributes.has(e)))switch(e){case"class":i.length&&t.setAttribute(e,i.join(" "));break;case"dataId":break;case"id":t.setAttribute("data-element-id",i);break;case"style":if("richText"===n){const e=this._allowedRichTextStyles;for(const[n,r]of Object.entries(i))e.has(n)&&!nn.test(r)&&(t.style[n]=r)}else Object.assign(t.style,i);break;case"textContent":t.textContent=i;break;default:(!a||"href"!==e&&"newWindow"!==e)&&t.setAttribute(e,i)}a&&r?.addLinkAttributes(t,s.href,s.newWindow);i&&s.dataId&&this.setupStorage(t,s.dataId,e,i)}static#i(t,e,i){return"richText"===i?!e&&this._allowedRichTextElements.has(t)?document.createElement(t):null:e?e===mi&&this._allowedSvgElements.has(t)?document.createElementNS(mi,t):null:this._allowedHtmlElements.has(t)?document.createElement(t):null}static render(t){const e=t.annotationStorage,i=t.linkService,n=t.xfaHtml,r=t.intent||"display",s=this.#i(n.name,n.attributes?.xmlns,r)??document.createElement("div");n.attributes&&this.setAttributes({html:s,element:n,intent:r,linkService:i});const a="richText"!==r,o=t.div;o.append(s);if(t.viewport){const e=`matrix(${t.viewport.transform.join(",")})`;o.style.transform=e}a&&o.setAttribute("class","xfaLayer xfaFont");const l=[];if(0===n.children.length){if(n.value){const t=document.createTextNode(n.value);s.append(t);a&&XfaText.shouldBuildText(n.name)&&l.push(t)}return{textDivs:l}}const c=[[n,-1,s]];for(;c.length>0;){const[t,n,s]=c.at(-1);if(n+1===t.children.length){c.pop();continue}const o=t.children[++c.at(-1)[1]];if(null===o)continue;const{name:h}=o;if("#text"===h){const t=document.createTextNode(o.value);l.push(t);s.append(t);continue}const d=this.#i(h,o.attributes?.xmlns,r);if(d){s.append(d);o.attributes&&this.setAttributes({html:d,element:o,storage:e,intent:r,linkService:i});if(o.children?.length>0)c.push([o,-1,d]);else if(o.value){const t=document.createTextNode(o.value);a&&XfaText.shouldBuildText(h)&&l.push(t);d.append(t)}}}for(const t of o.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))t.setAttribute("readOnly",!0);return{textDivs:l}}static update(t){const e=`matrix(${t.viewport.transform.join(",")})`;t.div.style.transform=e;t.div.hidden=!1}static getPageViewport(t,{scale:e=1,rotation:i=0}){const{width:n,height:r}=t.attributes.style;return new PageViewport({viewBox:[0,0,parseInt(n,10),parseInt(r,10)],userUnit:1,scale:e,rotation:i})}}class PixelsPerInch{static CSS=96;static PDF=72;static PDF_TO_CSS_UNITS=this.CSS/this.PDF}async function fetchData(t,e="text"){if(isValidFetchUrl(t,document.baseURI)){const i=await fetch(t);if(!i.ok)throw new Error(i.statusText);switch(e){case"blob":return i.blob();case"bytes":return i.bytes();case"json":return i.json()}return i.text()}return new Promise((i,n)=>{const r=new XMLHttpRequest;r.open("GET",t,!0);r.responseType="bytes"===e?"arraybuffer":e;r.onreadystatechange=()=>{if(r.readyState===XMLHttpRequest.DONE)if(200!==r.status&&0!==r.status)n(new Error(r.statusText));else{switch(e){case"bytes":i(new Uint8Array(r.response));return;case"blob":case"json":i(r.response);return}i(r.responseText)}};r.send(null)})}class RenderingCancelledException extends Zi{constructor(t,e=0){super(t,"RenderingCancelledException");this.extraDelay=e}}function isDataScheme(t){const e=t.length;let i=0;for(;i<e&&""===t[i].trim();)i++;return"data:"===t.substring(i,i+5).toLowerCase()}function isPdfFile(t){return"string"==typeof t&&/\.pdf$/i.test(t)}function getFilenameFromUrl(t){[t]=t.split(/[#?]/,1);return stripPath(t)}function getPdfFilenameFromUrl(t,e="document.pdf"){if("string"!=typeof t)return e;if(isDataScheme(t)){warn('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');return e}const i=(t=>{try{return new URL(t)}catch{}try{return new URL(decodeURIComponent(t))}catch{}try{return new URL(t,"https://foo.bar")}catch{}try{return new URL(decodeURIComponent(t),"https://foo.bar")}catch{}return null})(t);if(!i)return e;const decode=t=>{try{let e=decodeURIComponent(t);if(e.includes("/")){e=stripPath(e);if(4===e.length&&n.test(e))return t}return e}catch{return t}},n=/\.pdf$/i,r=stripPath(i.pathname);if(n.test(r))return decode(r);if(i.searchParams.size>0){const getLast=t=>[...t].findLast(t=>n.test(t)),t=getLast(i.searchParams.values())??getLast(i.searchParams.keys());if(t)return decode(t)}if(i.hash){const{hash:t}=i;let e=-1;for(const{index:i}of t.matchAll(/\.pdf\b/gi))e=i;if(e>0){let i=e;for(;i>0&&!"/?#=".includes(t[i-1]);)i--;if(i<e)return decode(t.slice(i,e+4))}}return e}class StatTimer{#n=new Map;times=[];time(t){this.#n.has(t)&&warn(`Timer is already running for ${t}`);this.#n.set(t,Date.now())}timeEnd(t){this.#n.has(t)||warn(`Timer has not been started for ${t}`);this.times.push({name:t,start:this.#n.get(t),end:Date.now()});this.#n.delete(t)}toString(){const t=Math.max(...this.times.map(t=>t.name.length));return this.times.map(e=>`${e.name.padEnd(t)} ${e.end-e.start}ms\n`).join("")}}function isValidFetchUrl(t,e){const i=e?URL.parse(t,e):URL.parse(t);return/https?:/.test(i?.protocol??"")}function noContextMenu(t){t.preventDefault()}function stopEvent(t){t.preventDefault();t.stopPropagation()}class PDFDateString{static#r;static toDateObject(t){if(t instanceof Date)return t;if(!t||"string"!=typeof t)return null;this.#r||=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+\\-])?(\\d{2})?'?(\\d{2})?'?");const e=this.#r.exec(t);if(!e)return null;const i=parseInt(e[1],10);let n=parseInt(e[2],10);n=n>=1&&n<=12?n-1:0;let r=parseInt(e[3],10);r=r>=1&&r<=31?r:1;let s=parseInt(e[4],10);s=s>=0&&s<=23?s:0;let a=parseInt(e[5],10);a=a>=0&&a<=59?a:0;let o=parseInt(e[6],10);o=o>=0&&o<=59?o:0;const l=e[7]||"Z";let c=parseInt(e[8],10);c=c>=0&&c<=23?c:0;let h=parseInt(e[9],10)||0;h=h>=0&&h<=59?h:0;if("-"===l){s+=c;a+=h}else if("+"===l){s-=c;a-=h}return new Date(Date.UTC(i,n,r,s,a,o))}}function getRGBA(t){if(t.startsWith("#")){const e=t.slice(1);return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16),e.length>=8?parseInt(e.slice(6,8),16)/255:1]}if(t.startsWith("rgb(")){const[e,i,n]=t.slice(4,-1).split(",").map(t=>parseInt(t,10));return[e,i,n,1]}if(t.startsWith("rgba(")){const e=t.slice(5,-1).split(",");return[parseInt(e[0],10),parseInt(e[1],10),parseInt(e[2],10),parseFloat(e[3])]}const e=t.match(/^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+|none))?\)$/);return e?[Math.round(255*parseFloat(e[1])),Math.round(255*parseFloat(e[2])),Math.round(255*parseFloat(e[3])),void 0!==e[4]&&"none"!==e[4]?parseFloat(e[4]):1]:null}function getRGB(t){const e=getRGBA(t);if(!e){warn(`Not a valid color format: "${t}"`);return[0,0,0]}return e.slice(0,3)}function getCurrentTransform(t){const{a:e,b:i,c:n,d:r,e:s,f:a}=t.getTransform();return[e,i,n,r,s,a]}function getCurrentTransformInverse(t){const{a:e,b:i,c:n,d:r,e:s,f:a}=t.getTransform().invertSelf();return[e,i,n,r,s,a]}function setLayerDimensions(t,e,i=!1,n=!0){if(e instanceof PageViewport){const{pageWidth:n,pageHeight:r}=e.rawDims,{style:s}=t,a=`round(down, var(--total-scale-factor) * ${n}px, var(--scale-round-x))`,o=`round(down, var(--total-scale-factor) * ${r}px, var(--scale-round-y))`;if(i&&e.rotation%180!=0){s.width=o;s.height=a}else{s.width=a;s.height=o}}n&&t.setAttribute("data-main-rotation",e.rotation)}class OutputScale{constructor(){const{pixelRatio:t}=OutputScale;this.sx=t;this.sy=t}get scaled(){return 1!==this.sx||1!==this.sy}get symmetric(){return this.sx===this.sy}limitCanvas(t,e,i,n,r=-1){let s=1/0,a=1/0,o=1/0;(i=OutputScale.capPixels(i,r))>0&&(s=Math.sqrt(i/(t*e)));if(-1!==n){a=n/t;o=n/e}const l=Math.min(s,a,o);if(this.sx>l||this.sy>l){this.sx=l;this.sy=l;return!0}return!1}static get pixelRatio(){return globalThis.devicePixelRatio||1}static capPixels(t,e){if(e>=0){const i=Math.ceil(window.screen.availWidth*window.screen.availHeight*this.pixelRatio**2*(1+e/100));return t>0?Math.min(t,i):i}return t}}const sn=new Set(["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"]);class ColorScheme{static get isDarkMode(){return util_shadow(this,"isDarkMode",!!window?.matchMedia?.("(prefers-color-scheme: dark)").matches)}}class CSSConstants{static get commentForegroundColor(){const t=document.createElement("span");t.classList.add("comment","sidebar");const{style:e}=t;e.width=e.height="0";e.display="none";e.color="var(--comment-fg-color)";document.body.append(t);const{color:i}=window.getComputedStyle(t);t.remove();return util_shadow(this,"commentForegroundColor",getRGB(i))}}function applyOpacity(t,e){const i=255*(1-(e=MathClamp(e??1,0,1)));return t.map(t=>Math.round(t*e+i))}function RGBToHSL(t,e){const i=t[0]/255,n=t[1]/255,r=t[2]/255,s=Math.max(i,n,r),a=Math.min(i,n,r),o=(s+a)/2;if(s===a)e[0]=e[1]=0;else{const t=s-a;e[1]=o<.5?t/(s+a):t/(2-s-a);switch(s){case i:e[0]=60*((n-r)/t+(n<r?6:0));break;case n:e[0]=60*((r-i)/t+2);break;case r:e[0]=60*((i-n)/t+4)}}e[2]=o}function HSLToRGB(t,e){const i=t[0],n=t[1],r=t[2],s=(1-Math.abs(2*r-1))*n,a=s*(1-Math.abs(i/60%2-1)),o=r-s/2;switch(Math.floor(i/60)){case 0:e[0]=s+o;e[1]=a+o;e[2]=o;break;case 1:e[0]=a+o;e[1]=s+o;e[2]=o;break;case 2:e[0]=o;e[1]=s+o;e[2]=a+o;break;case 3:e[0]=o;e[1]=a+o;e[2]=s+o;break;case 4:e[0]=a+o;e[1]=o;e[2]=s+o;break;case 5:case 6:e[0]=s+o;e[1]=o;e[2]=a+o}}function computeLuminance(t){return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function contrastRatio(t,e,i){HSLToRGB(t,i);i.map(computeLuminance);const n=.2126*i[0]+.7152*i[1]+.0722*i[2];HSLToRGB(e,i);i.map(computeLuminance);const r=.2126*i[0]+.7152*i[1]+.0722*i[2];return n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)}const an=new Map;function findContrastColor(t,e){const i=t[0]+256*t[1]+65536*t[2]+16777216*e[0]+4294967296*e[1]+1099511627776*e[2];let n=an.get(i);if(n)return n;const r=new Float32Array(9),s=r.subarray(0,3),a=r.subarray(3,6);RGBToHSL(t,a);const o=r.subarray(6,9);RGBToHSL(e,o);const l=o[2]<.5,c=l?12:4.5;a[2]=l?Math.sqrt(a[2]):1-Math.sqrt(1-a[2]);if(contrastRatio(a,o,s)<c){let t,e;if(l){t=a[2];e=1}else{t=0;e=a[2]}const i=.005;for(;e-t>i;){const i=a[2]=(t+e)/2;l===contrastRatio(a,o,s)<c?t=i:e=i}a[2]=l?e:t}HSLToRGB(a,s);n=Util.makeHexColor(Math.round(255*s[0]),Math.round(255*s[1]),Math.round(255*s[2]));an.set(i,n);return n}function renderRichText({html:t,dir:e,className:i},n){const r=document.createDocumentFragment();if("string"==typeof t){const i=document.createElement("p");i.dir=e||"auto";const n=t.split(/\r\n?|\n/);for(let t=0,e=n.length;t<e;++t){const r=n[t];i.append(document.createTextNode(r));t<e-1&&i.append(document.createElement("br"))}r.append(i)}else XfaLayer.render({xfaHtml:t,div:r,intent:"richText"});r.firstElementChild.classList.add("richText",i);n.append(r)}function makePathFromDrawOPS(t){const e=new Path2D;if(!t)return e;for(let i=0,n=t.length;i<n;)switch(t[i++]){case $i:e.moveTo(t[i++],t[i++]);break;case qi:e.lineTo(t[i++],t[i++]);break;case Xi:e.bezierCurveTo(t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;case Ki:e.quadraticCurveTo(t[i++],t[i++],t[i++],t[i++]);break;case Yi:e.closePath();break;default:warn(`Unrecognized drawing path operator: ${t[i-1]}`)}return e}ze();ci();li();hi();He();We();Fe();Oe();Be();je();class EditorToolbar{#s=null;#a=null;#o;#l=null;#c=null;#h=null;#d=null;#u=null;static#p=null;constructor(t){this.#o=t;EditorToolbar.#p||=Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button",signature:"pdfjs-editor-remove-signature-button"})}render(){const t=this.#s=document.createElement("div");t.classList.add("editToolbar","hidden");t.setAttribute("role","toolbar");const e=this.#o._uiManager._signal;if(e instanceof AbortSignal&&!e.aborted){t.addEventListener("contextmenu",noContextMenu,{signal:e});t.addEventListener("pointerdown",EditorToolbar.#g,{signal:e})}const i=this.#l=document.createElement("div");i.className="buttons";t.append(i);const n=this.#o.toolbarPosition;if(n){const{style:e}=t,i="ltr"===this.#o._uiManager.direction?1-n[0]:n[0];e.insetInlineEnd=100*i+"%";e.top=`calc(${100*n[1]}% + var(--editor-toolbar-vert-offset))`}return t}get div(){return this.#s}static#g(t){t.stopPropagation()}#f(t){this.#o._focusEventsAllowed=!1;stopEvent(t)}#m(t){this.#o._focusEventsAllowed=!0;stopEvent(t)}#b(t){const e=this.#o._uiManager._signal;if(!(e instanceof AbortSignal)||e.aborted)return!1;t.addEventListener("focusin",this.#f.bind(this),{capture:!0,signal:e});t.addEventListener("focusout",this.#m.bind(this),{capture:!0,signal:e});t.addEventListener("contextmenu",noContextMenu,{signal:e});return!0}hide(){this.#s.classList.add("hidden");this.#a?.hideDropdown()}show(){this.#s.classList.remove("hidden");this.#c?.shown();this.#h?.shown()}addDeleteButton(){const{editorType:t,_uiManager:e}=this.#o,i=document.createElement("button");i.classList.add("basic","deleteButton");i.tabIndex=0;i.setAttribute("data-l10n-id",EditorToolbar.#p[t]);this.#b(i)&&i.addEventListener("click",t=>{e.delete()},{signal:e._signal});this.#l.append(i)}get#y(){const t=document.createElement("div");t.className="divider";return t}async addAltText(t){const e=await t.render();this.#b(e);this.#l.append(e,this.#y);this.#c=t}addComment(t,e=null){if(this.#h)return;const i=t.renderForToolbar();if(!i)return;this.#b(i);const n=this.#d=this.#y;if(e){this.#l.insertBefore(i,e);this.#l.insertBefore(n,e)}else this.#l.append(i,n);this.#h=t;t.toolbar=this}addColorPicker(t){if(this.#a)return;this.#a=t;const e=t.renderButton();this.#b(e);this.#l.append(e,this.#y)}async addEditSignatureButton(t){const e=this.#u=await t.renderEditButton(this.#o);if(e){this.#b(e);this.#l.append(e,this.#y)}}removeButton(t){if("comment"===t){this.#h?.removeToolbarCommentButton();this.#h=null;this.#d?.remove();this.#d=null}}async addButton(t,e){switch(t){case"colorPicker":e&&this.addColorPicker(e);break;case"altText":e&&await this.addAltText(e);break;case"editSignature":e&&await this.addEditSignatureButton(e);break;case"delete":this.addDeleteButton();break;case"comment":e&&this.addComment(e)}}async addButtonBefore(t,e,i){if(!e&&"comment"===t)return;const n=this.#l.querySelector(i);n&&"comment"===t&&this.addComment(e,n)}updateEditSignatureButton(t){this.#u&&(this.#u.title=t)}remove(){this.#s.remove();this.#a?.destroy();this.#a=null}}class FloatingToolbar{#l=null;#s=null;#w;constructor(t){this.#w=t}#v(){const t=this.#s=document.createElement("div");t.className="editToolbar";t.setAttribute("role","toolbar");t.dir=this.#w.direction;const e=this.#w._signal;e instanceof AbortSignal&&!e.aborted&&t.addEventListener("contextmenu",noContextMenu,{signal:e});const i=this.#l=document.createElement("div");i.className="buttons";t.append(i);this.#w.hasCommentManager()&&this.#_("commentButton","pdfjs-comment-floating-button","pdfjs-comment-floating-button-label",()=>{this.#w.commentSelection("floating_button")});this.#_("highlightButton","pdfjs-highlight-floating-button1","pdfjs-highlight-floating-button-label",()=>{this.#w.highlightSelection("floating_button")});return t}#A(t,e){let i=0,n=0;for(const r of t){const t=r.y+r.height;if(t<i)continue;const s=r.x+(e?r.width:0);if(t>i){n=s;i=t}else e?s>n&&(n=s):s<n&&(n=s)}return[e?1-n:n,i]}show(t,e,i){const[n,r]=this.#A(e,i),{style:s}=this.#s||=this.#v();t.append(this.#s);s.insetInlineEnd=100*n+"%";s.top=`calc(${100*r}% + var(--editor-toolbar-vert-offset))`}hide(){this.#s.remove()}#_(t,e,i,n){const r=document.createElement("button");r.classList.add("basic",t);r.tabIndex=0;r.setAttribute("data-l10n-id",e);const s=document.createElement("span");r.append(s);s.className="visuallyHidden";s.setAttribute("data-l10n-id",i);const a=this.#w._signal;if(a instanceof AbortSignal&&!a.aborted){r.addEventListener("contextmenu",noContextMenu,{signal:a});r.addEventListener("click",n,{signal:a})}this.#l.append(r)}}const on=Object.freeze({internal:"2837668c-d334-48d1-ba74-aa7deba483da"});function bindEvents(t,e,i){for(const n of i)e.addEventListener(n,t[n].bind(t))}class CurrentPointers{static#x=NaN;static#E=null;static#C=NaN;static#S=null;static initializeAndAddPointerId(t){(CurrentPointers.#E||=new Set).add(t)}static setPointer(t,e){CurrentPointers.#x||=e;CurrentPointers.#S??=t}static setTimeStamp(t){CurrentPointers.#C=t}static isSamePointerId(t){return CurrentPointers.#x===t}static isSamePointerIdOrRemove(t){if(CurrentPointers.#x===t)return!0;CurrentPointers.#E?.delete(t);return!1}static isSamePointerType(t){return CurrentPointers.#S===t}static isInitializedAndDifferentPointerType(t){return null!==CurrentPointers.#S&&!CurrentPointers.isSamePointerType(t)}static isSameTimeStamp(t){return CurrentPointers.#C===t}static isUsingMultiplePointers(){return CurrentPointers.#E?.size>=1}static clearPointerType(){CurrentPointers.#S=null}static clearPointerIds(){CurrentPointers.#x=NaN;CurrentPointers.#E=null}static clearTimeStamp(){CurrentPointers.#C=NaN}}class IdManager{#T=0;get id(){return`${Ti}${this.#T++}`}}class ImageManager{#k=getUuid();#T=0;#D=null;static get _isSVGFittingCanvas(){const t=`data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="${mi}"><rect width="1" height="1" style="fill:red;"/></svg>`,e=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),i=new Image;i.src=t;return util_shadow(this,"_isSVGFittingCanvas",i.decode().then(()=>{e.drawImage(i,0,0,1,1,0,0,1,3);return 0===new Uint32Array(e.getImageData(0,0,1,1).data.buffer)[0]}))}async#P(t,e){this.#D||=new Map;let i=this.#D.get(t);if(null===i)return null;if(i?.bitmap){i.refCounter+=1;return i}try{i||={bitmap:null,id:`image_${this.#k}_${this.#T++}`,refCounter:0,isSvg:!1};let t;if("string"==typeof e){i.url=e;t=await fetchData(e,"blob")}else e instanceof File?t=i.file=e:e instanceof Blob&&(t=e);if("image/svg+xml"===t.type){const e=ImageManager._isSVGFittingCanvas,n=new FileReader,r=new Image,s=new Promise((t,s)=>{r.onload=()=>{i.bitmap=r;i.isSvg=!0;t()};n.onload=async()=>{const t=i.svgUrl=n.result;r.src=await e?`${t}#svgView(preserveAspectRatio(none))`:t};r.onerror=n.onerror=s});n.readAsDataURL(t);await s}else i.bitmap=await createImageBitmap(t);i.refCounter=1}catch(t){warn(t);i=null}this.#D.set(t,i);i&&this.#D.set(i.id,i);return i}async getFromFile(t){const{lastModified:e,name:i,size:n,type:r}=t;return this.#P(`${e}_${i}_${n}_${r}`,t)}async getFromUrl(t){return this.#P(t,t)}async getFromBlob(t,e){const i=await e;return this.#P(t,i)}async getFromId(t){this.#D||=new Map;const e=this.#D.get(t);if(!e)return null;if(e.bitmap){e.refCounter+=1;return e}if(e.file)return this.getFromFile(e.file);if(e.blobPromise){const{blobPromise:t}=e;delete e.blobPromise;return this.getFromBlob(e.id,t)}return this.getFromUrl(e.url)}getFromCanvas(t,e){this.#D||=new Map;let i=this.#D.get(t);if(i?.bitmap){i.refCounter+=1;return i}const n=new OffscreenCanvas(e.width,e.height);n.getContext("2d").drawImage(e,0,0);i={bitmap:n.transferToImageBitmap(),id:`image_${this.#k}_${this.#T++}`,refCounter:1,isSvg:!1};this.#D.set(t,i);this.#D.set(i.id,i);return i}getSvgUrl(t){const e=this.#D.get(t);return e?.isSvg?e.svgUrl:null}deleteId(t){this.#D||=new Map;const e=this.#D.get(t);if(!e)return;e.refCounter-=1;if(0!==e.refCounter)return;const{bitmap:i}=e;if(!e.url&&!e.file){const t=new OffscreenCanvas(i.width,i.height);t.getContext("bitmaprenderer").transferFromImageBitmap(i);e.blobPromise=t.convertToBlob()}i.close?.();e.bitmap=null}isValidId(t){return t.startsWith(`image_${this.#k}_`)}}class CommandManager{#M=[];#I=!1;#F;#O=-1;constructor(t=128){this.#F=t}add({cmd:t,undo:e,post:i,mustExec:n,type:r=NaN,overwriteIfSameType:s=!1,keepUndo:a=!1}){n&&t();if(this.#I)return;const o={cmd:t,undo:e,post:i,type:r};if(-1===this.#O){this.#M.length>0&&(this.#M.length=0);this.#O=0;this.#M.push(o);return}if(s&&this.#M[this.#O].type===r){a&&(o.undo=this.#M[this.#O].undo);this.#M[this.#O]=o;return}const l=this.#O+1;if(l===this.#F)this.#M.splice(0,1);else{this.#O=l;l<this.#M.length&&this.#M.splice(l)}this.#M.push(o)}undo(){if(-1===this.#O)return;this.#I=!0;const{undo:t,post:e}=this.#M[this.#O];t();e?.();this.#I=!1;this.#O-=1}redo(){if(this.#O<this.#M.length-1){this.#O+=1;this.#I=!0;const{cmd:t,post:e}=this.#M[this.#O];t();e?.();this.#I=!1}}hasSomethingToUndo(){return-1!==this.#O}hasSomethingToRedo(){return this.#O<this.#M.length-1}cleanType(t){if(-1!==this.#O){for(let e=this.#O;e>=0;e--)if(this.#M[e].type!==t){this.#M.splice(e+1,this.#O-e);this.#O=e;return}this.#M.length=0;this.#O=-1}}destroy(){this.#M=null}}class KeyboardManager{static ALT=1;static CTRL=2;static META=4;static SHIFT=8;constructor(t){this.callbacks=new Map;const{isMac:e}=FeatureTest.platform;for(const[i,n,r={}]of t){const t=i.some(t=>t.startsWith("mac+"));for(const s of i){let i=s;if(t){const t=s.startsWith("mac+");if(e!==t)continue;t&&(i=s.slice(4))}const[a,o]=KeyboardManager.#R(i);null!==a&&this.callbacks.getOrInsertComputed(a,makeArr).push({callback:n,options:r,modifiers:o})}}}static#R(t){let e=null,i=0;for(let n of t.split("+")){n=n.trim();if(!n)continue;const r=n.toUpperCase(),s=KeyboardManager[r];if(s)i|=s;else{if(null!==e){warn(`KeyboardManager: multiple keys in shortcut "${t}"`);break}e="SPACE"===r?" ":n}}null===e&&warn(`KeyboardManager: no key found in shortcut "${t}"`);return[e,i]}static#B(t){const e=/^(?:Key([A-Z])|(?:Digit|Numpad)(\d))$/.exec(t);return e?e[1]?.toLowerCase()??e[2]:null}exec(t,e){let i=this.callbacks.get(e.key);if(!i){if(/^[a-z]$/i.test(e.key))return;const t=KeyboardManager.#B(e.code);if(null===t||t===e.key)return;i=this.callbacks.get(t);if(!i)return}const n=(e.altKey?KeyboardManager.ALT:0)|(e.ctrlKey?KeyboardManager.CTRL:0)|(e.metaKey?KeyboardManager.META:0)|(e.shiftKey?KeyboardManager.SHIFT:0),r=i.find(t=>t.modifiers===n);if(!r)return;const{callback:s,options:{bubbles:a=!1,args:o=[],checker:l=null}}=r;if(!l||l(t,e)){s.bind(t,...o,e)();a||stopEvent(e)}}}class ColorManager{static _colorsMapping=new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]);get _colors(){const t=new Map([["CanvasText",null],["Canvas",null]]);!function getColorValues(t){const e=document.createElement("span");e.style.visibility="hidden";e.style.colorScheme="only light";document.body.append(e);for(const i of t.keys()){e.style.color=i;const n=window.getComputedStyle(e).color;t.set(i,getRGB(n))}e.remove()}(t);return util_shadow(this,"_colors",t)}convert(t){const e=getRGB(t);if(!window.matchMedia("(forced-colors: active)").matches)return e;for(const[t,i]of this._colors)if(i.every((t,i)=>t===e[i]))return ColorManager._colorsMapping.get(t);return e}getHexCode(t){const e=this._colors.get(t);return e?Util.makeHexColor(...e):t}}class AnnotationEditorUIManager{#L=new AbortController;#N=null;#U=null;#H=new Map;#z=new Map;#G=null;#j=null;#W=null;#V=null;#$=null;#q=new CommandManager;#X=null;#K=null;#Y=null;#J=0;#Q=new Set;#Z=null;#tt=null;#et=new Set;_editorUndoBar=null;#it=!1;#nt=!1;#rt=!1;#st=null;#at=null;#ot=null;#lt=null;#ct=!1;#ht=null;#dt=new IdManager;#ut=!1;#pt=!1;#gt=!1;#ft=null;#mt=null;#bt=null;#yt=null;#wt=null;#vt=ki.NONE;#_t=new Set;#At=null;#xt=null;#Et=null;#Ct=null;#St=null;#Tt={isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1};#kt=[0,0];#Dt=null;#Pt=null;#Mt=null;#It=null;#Ft=null;static TRANSLATE_SMALL=1;static TRANSLATE_BIG=10;static get _keyboardManager(){const t=AnnotationEditorUIManager.prototype,arrowChecker=t=>t.#Pt.contains(document.activeElement)&&"BUTTON"!==document.activeElement.tagName&&t.hasSomethingToControl(),textInputChecker=(t,{target:e})=>{if(e instanceof HTMLInputElement){const{type:t}=e;return"text"!==t&&"number"!==t}return!0},e=this.TRANSLATE_SMALL,i=this.TRANSLATE_BIG;return util_shadow(this,"_keyboardManager",new KeyboardManager([[["ctrl+a","mac+meta+a"],t.selectAll,{checker:textInputChecker}],[["ctrl+z","mac+meta+z"],t.undo,{checker:textInputChecker}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],t.redo,{checker:textInputChecker}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],t.delete,{checker:textInputChecker}],[["Enter"],t.addNewEditorFromKeyboard,{checker:(t,{target:e})=>!(e instanceof HTMLButtonElement)&&t.#Pt.contains(e)&&!t.isEnterHandled}],[["Space"],t.addNewEditorFromKeyboard,{checker:(t,{target:e})=>!(e instanceof HTMLButtonElement)&&t.#Pt.contains(document.activeElement)}],[["Escape"],t.unselectAll],[["ArrowLeft"],t.translateSelectedEditors,{args:[-e,0],checker:arrowChecker}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t.translateSelectedEditors,{args:[-i,0],checker:arrowChecker}],[["ArrowRight"],t.translateSelectedEditors,{args:[e,0],checker:arrowChecker}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t.translateSelectedEditors,{args:[i,0],checker:arrowChecker}],[["ArrowUp"],t.translateSelectedEditors,{args:[0,-e],checker:arrowChecker}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t.translateSelectedEditors,{args:[0,-i],checker:arrowChecker}],[["ArrowDown"],t.translateSelectedEditors,{args:[0,e],checker:arrowChecker}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t.translateSelectedEditors,{args:[0,i],checker:arrowChecker}]]))}constructor(t,e,i,n,r,s,a,o,l,c,h,d,u,p,g,f){const m=this._signal=this.#L.signal;this.#Pt=t;this.#Mt=e;this.#It=i;this.#W=n;this.#X=r;this.#xt=s;this.#St=o;this._eventBus=a;const b={signal:m,...on};a.on("editingaction",this.onEditingAction.bind(this),b);a.on("pagechanging",this.onPageChanging.bind(this),b);a.on("scalechanging",this.onScaleChanging.bind(this),b);a.on("rotationchanging",this.onRotationChanging.bind(this),b);a.on("setpreference",this.onSetPreference.bind(this),b);a.on("switchannotationeditorparams",t=>this.updateParams(t.type,t.value),b);window.addEventListener("pointerdown",()=>{this.#pt=!0},{capture:!0,signal:m});window.addEventListener("pointerup",()=>{this.#pt=!1},{capture:!0,signal:m});window.addEventListener("beforeunload",this.endCurrentEditing.bind(this),{capture:!0,signal:m});this.#Ot();this.#Rt();this.#Bt();this.#V=o.annotationStorage;this.#st=o.filterFactory;this.#Et=l;this.#lt=c||null;this.#it=h;this.#nt=d;this.#rt=u;this.#wt=p||null;this.viewParameters={realScale:PixelsPerInch.PDF_TO_CSS_UNITS,rotation:0};this.isShiftKeyDown=!1;this._editorUndoBar=g||null;this._supportsPinchToZoom=!1!==f;r?.setSidebarUiManager(this)}destroy(){this.#Ft?.resolve();this.#Ft=null;this.#L?.abort();this.#L=null;this._signal=null;for(const t of this.#z.values())t.destroy();this.#z.clear();this.#H.clear();this.#et.clear();this.#yt?.clear();this.#N=null;this.#_t.clear();this.#q.destroy();this.#W?.destroy();this.#X?.destroy();this.#xt?.destroy();this.#ht?.hide();this.#ht=null;this.#bt?.destroy();this.#bt=null;this.#U=null;if(this.#at){clearTimeout(this.#at);this.#at=null}if(this.#Dt){clearTimeout(this.#Dt);this.#Dt=null}this._editorUndoBar?.destroy();this.#St=null}combinedSignal(t){return AbortSignal.any([this._signal,t.signal])}get mlManager(){return this.#wt}get useNewAltTextFlow(){return this.#nt}get useNewAltTextWhenAddingImage(){return this.#rt}get hcmFilter(){return util_shadow(this,"hcmFilter",this.#Et?this.#st.addHCMFilter(this.#Et.foreground,this.#Et.background):"none")}get direction(){return util_shadow(this,"direction",getComputedStyle(this.#Pt).direction)}get _highlightColors(){return util_shadow(this,"_highlightColors",this.#lt?new Map(this.#lt.split(",").map(t=>{(t=t.split("=").map(t=>t.trim()))[1]=t[1].toUpperCase();return t})):null)}get highlightColors(){const{_highlightColors:t}=this;if(!t)return util_shadow(this,"highlightColors",null);const e=new Map,i=!!this.#Et;for(const[n,r]of t){const t=n.endsWith("_HCM");i&&t?e.set(n.replace("_HCM",""),r):i||t||e.set(n,r)}return util_shadow(this,"highlightColors",e)}get highlightColorNames(){return util_shadow(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,t=>t.reverse())):null)}getNonHCMColor(t){if(!this._highlightColors)return t;const e=this.highlightColorNames.get(t);return this._highlightColors.get(e)||t}getNonHCMColorName(t){return this.highlightColorNames.get(t)||t}setCurrentDrawingSession(t){if(t){this.unselectAll();this.disableUserSelect(!0)}else this.disableUserSelect(!1);this.#Y=t}setMainHighlightColorPicker(t){this.#bt=t}editAltText(t,e=!1){this.#W?.editAltText(this,t,e)}hasCommentManager(){return!!this.#X}editComment(t,e,i,n){this.#X?.showDialog(this,t,e,i,n)}selectComment(t,e){const i=this.#z.get(t),n=i?.getEditorByUID(e);n?.toggleComment(!0,!0)}updateComment(t){this.#X?.updateComment(t.getData())}updatePopupColor(t){this.#X?.updatePopupColor(t)}removeComment(t){this.#X?.removeComments([t.uid])}deleteComment(t,e){const undo=()=>{t.comment=e};this.addCommands({cmd:()=>{this._editorUndoBar?.show(undo,"comment");this.toggleComment(null);t.comment=null},undo,mustExec:!0})}toggleComment(t,e,i=void 0){this.#X?.toggleCommentPopup(t,e,i)}makeCommentColor(t,e){return t&&this.#X?.makeCommentColor(t,e)||null}getCommentDialogElement(){return this.#X?.dialogElement||null}async waitForEditorsRendered(t){if(this.#z.has(t-1))return;const{resolve:e,promise:i}=Promise.withResolvers(),onEditorsRendered=i=>{if(i.pageNumber===t){this._eventBus.off("editorsrendered",onEditorsRendered);e()}};this._eventBus.on("editorsrendered",onEditorsRendered,on);await i}getSignature(t){this.#xt?.getSignature({uiManager:this,editor:t})}get signatureManager(){return this.#xt}switchToMode(t,e){this._eventBus.on("annotationeditormodechanged",e,{once:!0,signal:this._signal,...on});this._eventBus.dispatch("showannotationeditorui",{source:this,mode:t})}setPreference(t,e){this._eventBus.dispatch("setpreference",{source:this,name:t,value:e})}onSetPreference({name:t,value:e}){if("enableNewAltTextWhenAddingImage"===t)this.#rt=e}onPageChanging({pageNumber:t}){this.#J=t-1}deletePage(t){for(const e of this.getEditors(t))e.remove();this.#z.delete(t);this.#J===t&&(this.#J=0)}focusMainContainer(){this.#Pt.focus()}findParent(t,e){for(const i of this.#z.values()){const{x:n,y:r,width:s,height:a}=i.div.getBoundingClientRect();if(t>=n&&t<=n+s&&e>=r&&e<=r+a)return i}return null}disableUserSelect(t=!1){this.#Mt.classList.toggle("noUserSelect",t)}addShouldRescale(t){this.#et.add(t)}removeShouldRescale(t){this.#et.delete(t)}onScaleChanging({scale:t}){this.commitOrRemove();this.viewParameters.realScale=t*PixelsPerInch.PDF_TO_CSS_UNITS;for(const t of this.#et)t.onScaleChanging();this.#Y?.onScaleChanging()}onRotationChanging({pagesRotation:t}){this.commitOrRemove();this.viewParameters.rotation=t}#Lt({anchorNode:t}){return t.nodeType===Node.TEXT_NODE?t.parentElement:t}#Nt(t){const{currentLayer:e}=this;if(e.hasTextLayer(t))return e;for(const e of this.#z.values())if(e.hasTextLayer(t))return e;return null}highlightSelection(t="",e=!1){const i=document.getSelection();if(!i||i.isCollapsed)return;const{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:a}=i,o=i.toString(),l=this.#Lt(i).closest(".textLayer"),c=this.getSelectionBoxes(l);if(!c)return;i.empty();const h=this.#Nt(l),d=this.#vt===ki.NONE,callback=()=>{const i=h?.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:t,boxes:c,anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:a,text:o});d&&this.showAllEditors("highlight",!0,!0);e&&i?.editComment()};d?this.switchToMode(ki.HIGHLIGHT,callback):callback()}commentSelection(t=""){this.highlightSelection(t,!0)}endCurrentEditing(){this.commitOrRemove();this.currentLayer?.endDrawingSession(!1)}#Ut(){const t=document.getSelection();if(!t||t.isCollapsed)return;const e=this.#Lt(t).closest(".textLayer"),i=this.getSelectionBoxes(e);if(i){this.#ht||=new FloatingToolbar(this);this.#ht.show(e,i,"ltr"===this.direction)}}getAndRemoveDataFromAnnotationStorage(t){if(!this.#V)return null;const e=`${Ti}${t}`,i=this.#V.getRawValue(e);i&&this.#V.remove(e);return i}addToAnnotationStorage(t){t.isEmpty()||!this.#V||this.#V.has(t.id)||this.#V.setValue(t.id,t)}a11yAlert(t,e=null){const i=this.#It;if(i){i.setAttribute("data-l10n-id",t);e?i.setAttribute("data-l10n-args",JSON.stringify(e)):i.removeAttribute("data-l10n-args")}}#Ht(){const t=document.getSelection();if(!t||t.isCollapsed){if(this.#At){this.#ht?.hide();this.#At=null;this.#zt({hasSelectedText:!1})}return}const{anchorNode:e}=t;if(e===this.#At)return;const i=this.#Lt(t).closest(".textLayer");if(i){this.#ht?.hide();this.#At=e;this.#zt({hasSelectedText:!0});if(this.#vt===ki.HIGHLIGHT||this.#vt===ki.NONE){this.#vt===ki.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0);this.#ct=this.isShiftKeyDown;if(!this.isShiftKeyDown){const t=this.#vt===ki.HIGHLIGHT?this.#Nt(i):null;t?.toggleDrawing();if(this.#pt){const e=new AbortController,i=this.combinedSignal(e),pointerup=i=>{if("pointerup"!==i.type||0===i.button){e.abort();t?.toggleDrawing(!0);"pointerup"===i.type&&this.#Gt("main_toolbar")}};window.addEventListener("pointerup",pointerup,{signal:i});window.addEventListener("blur",pointerup,{signal:i})}else{t?.toggleDrawing(!0);this.#Gt("main_toolbar")}}}}else if(this.#At){this.#ht?.hide();this.#At=null;this.#zt({hasSelectedText:!1})}}#Gt(t=""){this.#vt===ki.HIGHLIGHT?this.highlightSelection(t):this.#it&&this.#Ut()}#Ot(){document.addEventListener("selectionchange",this.#Ht.bind(this),{signal:this._signal})}#jt(){if(this.#ot)return;this.#ot=new AbortController;const t=this.combinedSignal(this.#ot);window.addEventListener("focus",this.focus.bind(this),{signal:t});window.addEventListener("blur",this.blur.bind(this),{signal:t})}#Wt(){this.#ot?.abort();this.#ot=null}blur(){this.isShiftKeyDown=!1;if(this.#ct){this.#ct=!1;this.#Gt("main_toolbar")}if(!this.hasSelection)return;const{activeElement:t}=document;for(const e of this.#_t)if(e.div.contains(t)){this.#mt=[e,t];e._focusEventsAllowed=!1;break}}focus(){if(!this.#mt)return;const[t,e]=this.#mt;this.#mt=null;e.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:this._signal});e.focus()}#Bt(){if(this.#ft)return;this.#ft=new AbortController;const t=this.combinedSignal(this.#ft);window.addEventListener("keydown",this.keydown.bind(this),{signal:t});window.addEventListener("keyup",this.keyup.bind(this),{signal:t})}#Vt(){this.#ft?.abort();this.#ft=null}#$t(){if(this.#K)return;this.#K=new AbortController;const t=this.combinedSignal(this.#K);document.addEventListener("copy",this.copy.bind(this),{signal:t});document.addEventListener("cut",this.cut.bind(this),{signal:t});document.addEventListener("paste",this.paste.bind(this),{signal:t})}#qt(){this.#K?.abort();this.#K=null}#Rt(){const t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t});document.addEventListener("drop",this.drop.bind(this),{signal:t})}addEditListeners(){this.#Bt();this.setEditingState(!0)}removeEditListeners(){this.#Vt();this.setEditingState(!1)}dragOver(t){for(const{type:e}of t.dataTransfer.items)for(const i of this.#tt)if(i.isHandlingMimeForPasting(e)){t.dataTransfer.dropEffect="copy";t.preventDefault();return}}drop(t){for(const e of t.dataTransfer.items)for(const i of this.#tt)if(i.isHandlingMimeForPasting(e.type)){i.paste(e,this.currentLayer);t.preventDefault();return}}copy(t){t.preventDefault();this.#N?.commitOrRemove();if(!this.hasSelection)return;const e=[];for(const t of this.#_t){const i=t.serialize(!0);i&&e.push(i)}0!==e.length&&t.clipboardData.setData("application/pdfjs",JSON.stringify(e))}cut(t){this.copy(t);this.delete()}async paste(t){t.preventDefault();const{clipboardData:e}=t;for(const t of e.items)for(const e of this.#tt)if(e.isHandlingMimeForPasting(t.type)){e.paste(t,this.currentLayer);return}let i=e.getData("application/pdfjs");if(!i)return;try{i=JSON.parse(i)}catch(t){warn(`paste: "${t.message}".`);return}if(!Array.isArray(i))return;this.unselectAll();const n=this.currentLayer;try{const t=[];for(const e of i){const i=await n.deserialize(e);if(!i)return;t.push(i)}const cmd=()=>{for(const e of t)this.#Xt(e);this.#Kt(t)},undo=()=>{for(const e of t)e.remove()};this.addCommands({cmd,undo,mustExec:!0})}catch(t){warn(`paste: "${t.message}".`)}}keydown(t){this.isShiftKeyDown||"Shift"!==t.key||(this.isShiftKeyDown=!0);this.#vt===ki.NONE||this.isEditorHandlingKeyboard||AnnotationEditorUIManager._keyboardManager.exec(this,t)}keyup(t){if(this.isShiftKeyDown&&"Shift"===t.key){this.isShiftKeyDown=!1;if(this.#ct){this.#ct=!1;this.#Gt("main_toolbar")}}}onEditingAction({name:t}){switch(t){case"undo":case"redo":case"delete":case"selectAll":this[t]();break;case"highlightSelection":this.highlightSelection("context_menu");break;case"commentSelection":this.commentSelection("context_menu")}}updatePageIndex(t,e){for(const i of this.#j.get(t)||[])i.pageIndex=e;const i=this.#G.get(t);if(i){i.pageIndex=e;this.#z.set(e,i);this.#ut?i.enable():i.disable()}}startUpdatePages(){this.#G=new Map(this.#z);this.#z.clear();const t=this.#j=new Map,saveEditor=e=>{t.getOrInsertComputed(e.pageIndex,makeArr).push(e)};for(const t of this.#H.values())saveEditor(t);for(const[t,e]of this.#V)t.startsWith(Ti)&&!this.#H.has(t)&&Number.isInteger(e?.pageIndex)&&saveEditor(e)}endUpdatePages(){this.#G=null;this.#j=null}clonePage(t,e){for(const i of this.getEditors(t)){const t=i.serialize(i.mode!==ki.HIGHLIGHT);if(t){t.pageIndex=e;t.id=this.getId();t.isClone=!0;delete t.popupRef;this.#V.setValue(t.id,t)}}}findClonesForPage(t){const e=[],{pageIndex:i}=t;for(const[n,r]of this.#V)if(r.pageIndex===i&&r.isClone){this.#V.remove(n);e.push(t.deserialize(r).then(e=>{if(e){e.isClone=!0;t.addOrRebuild(e)}}))}return Promise.all(e)}#zt(t){if(Object.entries(t).some(([t,e])=>this.#Tt[t]!==e)){this._eventBus.dispatch("editingstateschanged",{source:this,details:Object.assign(this.#Tt,t)});this.#vt===ki.HIGHLIGHT&&!1===t.hasSelectedEditor&&this.#Yt([[Di.HIGHLIGHT_FREE,!0]])}}#Yt(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})}setEditingState(t){if(t){this.#jt();this.#$t();this.#zt({isEditing:this.#vt!==ki.NONE,isEmpty:this.#Jt(),hasSomethingToUndo:this.#q.hasSomethingToUndo(),hasSomethingToRedo:this.#q.hasSomethingToRedo(),hasSelectedEditor:!1})}else{this.#Wt();this.#qt();this.#zt({isEditing:!1});this.disableUserSelect(!1)}}registerEditorTypes(t){if(!this.#tt){this.#tt=t;for(const t of this.#tt)this.#Yt(t.defaultPropertiesToUpdate)}}getId(){return this.#dt.id}get currentLayer(){return this.#z.get(this.#J)}getLayer(t){return this.#z.get(t)}get currentPageIndex(){return this.#J}addLayer(t){this.#z.set(t.pageIndex,t);this.#ut?t.enable():t.disable()}removeLayer(t){this.#z.delete(t.pageIndex)}async updateMode(t,e=null,i=!1,n=!1,r=!1,s=!1){if(this.#vt!==t){if(this.#Ft){await this.#Ft.promise;if(!this.#Ft)return}this.#Ft=Promise.withResolvers();this.#Y?.commitOrRemove();this.#vt===ki.POPUP&&this.#X?.hideSidebar();this.#X?.destroyPopup();this.#vt=t;if(t!==ki.NONE){for(const t of this.#H.values())t.addStandaloneCommentButton();t===ki.SIGNATURE&&await(this.#xt?.loadSignatures());i&&CurrentPointers.clearPointerType();this.setEditingState(!0);await this.#Qt();this.unselectAll();for(const e of this.#z.values())e.updateMode(t);if(t===ki.POPUP){this.#U||=await this.#St.getAnnotationsByType(new Set(this.#tt.map(t=>t._editorType)));const t=new Set,e=[];for(const i of this.#H.values()){const{annotationElementId:n,hasComment:r,deleted:s}=i;n&&t.add(n);r&&!s&&e.push(i.getData())}for(const i of this.#U){const{id:n,popupRef:r,contentsObj:s}=i;r&&s?.str&&!t.has(n)&&!this.#Q.has(n)&&e.push(i)}this.#X?.showSidebar(e)}if(e){for(const t of this.#H.values())if(t.uid===e){this.setSelected(t);s?t.editComment():r?t.enterInEditMode():t.focus()}else t.unselect();this.#Ft.resolve()}else{n&&this.addNewEditorFromKeyboard();this.#Ft.resolve()}}else{this.setEditingState(!1);this.#Zt();for(const t of this.#H.values())t.hideStandaloneCommentButton();this._editorUndoBar?.hide();this.toggleComment(null);this.#Ft.resolve()}}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(t){t.mode!==this.#vt&&this._eventBus.dispatch("switchannotationeditormode",{source:this,...t})}updateParams(t,e){if(this.#tt){switch(t){case Di.CREATE:this.currentLayer.addNewEditor(e);return;case Di.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}});(this.#Ct||=new Map).set(t,e);this.showAllEditors("highlight",e)}if(this.hasSelection)for(const i of this.#_t)i.updateParams(t,e);else for(const i of this.#tt)i.updateDefaultParams(t,e)}}showAllEditors(t,e,i=!1){for(const i of this.#H.values())i.editorType===t&&i.show(e);(this.#Ct?.get(Di.HIGHLIGHT_SHOW_ALL)??!0)!==e&&this.#Yt([[Di.HIGHLIGHT_SHOW_ALL,e]])}enableWaiting(t=!1){if(this.#gt!==t){this.#gt=t;for(const e of this.#z.values()){t?e.disableClick():e.enableClick();e.div.classList.toggle("waiting",t)}}}async#Qt(){if(!this.#ut){this.#ut=!0;const t=[];for(const e of this.#z.values())t.push(e.enable());await Promise.all(t);for(const t of this.#H.values())t.enable()}}#Zt(){this.unselectAll();if(this.#ut){this.#ut=!1;for(const t of this.#z.values())t.disable();for(const t of this.#H.values())t.disable()}}*getEditors(t){for(const e of this.#H.values())e.pageIndex===t&&(yield e)}getEditor(t){return this.#H.get(t)}addEditor(t){this.#H.set(t.id,t)}removeEditor(t){if(t.div.contains(document.activeElement)){this.#at&&clearTimeout(this.#at);this.#at=setTimeout(()=>{this.focusMainContainer();this.#at=null},0)}this.#H.delete(t.id);t.annotationElementId&&this.#yt?.delete(t.annotationElementId);this.unselect(t);t.annotationElementId&&this.#Q.has(t.annotationElementId)||this.#V?.remove(t.id)}addDeletedAnnotationElement(t){this.#Q.add(t.annotationElementId);this.addChangedExistingAnnotation(t);t.deleted=!0}isDeletedAnnotationElement(t){return this.#Q.has(t)}removeDeletedAnnotationElement(t){this.#Q.delete(t.annotationElementId);this.removeChangedExistingAnnotation(t);t.deleted=!1}#Xt(t){const e=this.#z.get(t.pageIndex);if(e)e.addOrRebuild(t);else{this.addEditor(t);this.addToAnnotationStorage(t)}}setActiveEditor(t){if(this.#N!==t){this.#N=t;t&&this.#Yt(t.propertiesToUpdate)}}get#te(){let t=null;for(t of this.#_t);return t}updateUI(t){this.#te===t&&this.#Yt(t.propertiesToUpdate)}updateUIForDefaultProperties(t){this.#Yt(t.defaultPropertiesToUpdate)}toggleSelected(t){if(this.#_t.has(t)){this.#_t.delete(t);t.unselect();this.#zt({hasSelectedEditor:this.hasSelection})}else{this.#_t.add(t);t.select();this.#Yt(t.propertiesToUpdate);this.#zt({hasSelectedEditor:!0})}}setSelected(t){this.updateToolbar({mode:t.mode,editId:t.uid});this.#Y?.commitOrRemove();for(const e of this.#_t)e!==t&&e.unselect();this.#X?.destroyPopup();this.#_t.clear();this.#_t.add(t);t.select();this.#Yt(t.propertiesToUpdate);this.#zt({hasSelectedEditor:!0})}get firstSelectedEditor(){return this.#_t.values().next().value}unselect(t){t.unselect();this.#_t.delete(t);this.#zt({hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==this.#_t.size}get isEnterHandled(){return 1===this.#_t.size&&this.firstSelectedEditor.isEnterHandled}undo(){this.#q.undo();this.#zt({hasSomethingToUndo:this.#q.hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:this.#Jt()});this._editorUndoBar?.hide()}redo(){this.#q.redo();this.#zt({hasSomethingToUndo:!0,hasSomethingToRedo:this.#q.hasSomethingToRedo(),isEmpty:this.#Jt()})}addCommands(t){this.#q.add(t);this.#zt({hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:this.#Jt()})}cleanUndoStack(t){this.#q.cleanType(t)}#Jt(){if(0===this.#H.size)return!0;if(1===this.#H.size)for(const t of this.#H.values())return t.isEmpty();return!1}delete(){this.commitOrRemove();const t=this.currentLayer?.endDrawingSession(!0);if(!this.hasSelection&&!t)return;const e=t?[t]:[...this.#_t],undo=()=>{for(const t of e)this.#Xt(t)};this.addCommands({cmd:()=>{this._editorUndoBar?.show(undo,1===e.length?e[0].editorType:e.length);for(const t of e)t.remove()},undo,mustExec:!0})}commitOrRemove(){this.#N?.commitOrRemove()}hasSomethingToControl(){return this.#N||this.hasSelection}#Kt(t){for(const t of this.#_t)t.unselect();this.#_t.clear();for(const e of t)if(!e.isEmpty()){this.#_t.add(e);e.select()}this.#zt({hasSelectedEditor:this.hasSelection})}selectAll(){for(const t of this.#_t)t.commit();this.#Kt(this.#H.values())}unselectAll(){if(this.#N){this.#N.commitOrRemove();if(this.#vt!==ki.NONE)return}if(!this.#Y?.commitOrRemove()){this.#X?.destroyPopup();if(this.hasSelection){for(const t of this.#_t)t.unselect();this.#_t.clear();this.#zt({hasSelectedEditor:!1})}}}translateSelectedEditors(t,e,i=!1){i||this.commitOrRemove();if(!this.hasSelection)return;this.#kt[0]+=t;this.#kt[1]+=e;const[n,r]=this.#kt,s=[...this.#_t];this.#Dt&&clearTimeout(this.#Dt);this.#Dt=setTimeout(()=>{this.#Dt=null;this.#kt[0]=this.#kt[1]=0;this.addCommands({cmd:()=>{for(const t of s)if(this.#H.has(t.id)){t.translateInPage(n,r);t.translationDone()}},undo:()=>{for(const t of s)if(this.#H.has(t.id)){t.translateInPage(-n,-r);t.translationDone()}},mustExec:!1})},1e3);for(const i of s){i.translateInPage(t,e);i.translationDone()}}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0);this.#Z=new Map;for(const t of this.#_t)this.#Z.set(t,{savedX:t.x,savedY:t.y,savedPageIndex:t.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!this.#Z)return!1;this.disableUserSelect(!1);const t=this.#Z;this.#Z=null;let e=!1;for(const[{x:i,y:n,pageIndex:r},s]of t){s.newX=i;s.newY=n;s.newPageIndex=r;e||=i!==s.savedX||n!==s.savedY||r!==s.savedPageIndex}if(!e)return!1;const move=(t,e,i,n)=>{if(this.#H.has(t.id)){const r=this.#z.get(n);if(r)t._setParentAndPosition(r,e,i);else{t.pageIndex=n;t.x=e;t.y=i}}};this.addCommands({cmd:()=>{for(const[e,{newX:i,newY:n,newPageIndex:r}]of t)move(e,i,n,r)},undo:()=>{for(const[e,{savedX:i,savedY:n,savedPageIndex:r}]of t)move(e,i,n,r)},mustExec:!0});return!0}dragSelectedEditors(t,e){if(this.#Z)for(const i of this.#Z.keys())i.drag(t,e)}rebuild(t){if(null===t.parent){const e=this.getLayer(t.pageIndex);if(e){e.changeParent(t);e.addOrRebuild(t)}else{this.addEditor(t);this.addToAnnotationStorage(t);t.rebuild()}}else t.parent.addOrRebuild(t)}get isEditorHandlingKeyboard(){return this.getActive()?.shouldGetKeyboardEvents()||1===this.#_t.size&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(t){return this.#N===t}getActive(){return this.#N}getMode(){return this.#vt}isEditingMode(){return this.#vt!==ki.NONE}get imageManager(){return util_shadow(this,"imageManager",new ImageManager)}getSelectionBoxes(t){if(!t)return null;const e=document.getSelection();for(let i=0,n=e.rangeCount;i<n;i++)if(!t.contains(e.getRangeAt(i).commonAncestorContainer))return null;const{x:i,y:n,width:r,height:s}=t.getBoundingClientRect();let a;switch(t.getAttribute("data-main-rotation")){case"90":a=(t,e,a,o)=>({x:(e-n)/s,y:1-(t+a-i)/r,width:o/s,height:a/r});break;case"180":a=(t,e,a,o)=>({x:1-(t+a-i)/r,y:1-(e+o-n)/s,width:a/r,height:o/s});break;case"270":a=(t,e,a,o)=>({x:1-(e+o-n)/s,y:(t-i)/r,width:o/s,height:a/r});break;default:a=(t,e,a,o)=>({x:(t-i)/r,y:(e-n)/s,width:a/r,height:o/s})}const o=[];for(let t=0,i=e.rangeCount;t<i;t++){const i=e.getRangeAt(t);if(!i.collapsed)for(const{x:t,y:e,width:n,height:r}of i.getClientRects())0!==n&&0!==r&&o.push(a(t,e,n,r))}return 0===o.length?null:o}addChangedExistingAnnotation({annotationElementId:t,id:e}){(this.#$||=new Map).set(t,e)}removeChangedExistingAnnotation({annotationElementId:t}){this.#$?.delete(t)}renderAnnotationElement(t){const e=this.#$?.get(t.data.id);if(!e)return;const i=this.#V.getRawValue(e);i&&(this.#vt!==ki.NONE||i.hasBeenModified)&&i.renderAnnotationElement(t)}setMissingCanvas(t,e,i){const n=this.#yt?.get(t);if(n){n.setCanvas(e,i);this.#yt.delete(t)}}addMissingCanvas(t,e){(this.#yt||=new Map).set(t,e)}}class AltText{#c=null;#ee=!1;#ie=null;#ne=null;#re=null;#se=null;#ae=!1;#oe=null;#o=null;#le=null;#ce=null;#he=!1;static#de=null;static _l10n=null;constructor(t){this.#o=t;this.#he=t._uiManager.useNewAltTextFlow;AltText.#de||=Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"})}static initialize(t){AltText._l10n??=t}async render(){const t=this.#ie=document.createElement("button");t.className="altText";t.tabIndex="0";const e=this.#ne=document.createElement("span");t.append(e);if(this.#he){t.classList.add("new");t.setAttribute("data-l10n-id",AltText.#de.missing);e.setAttribute("data-l10n-id",AltText.#de["missing-label"])}else{t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button");e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label")}const i=this.#o._uiManager._signal;t.addEventListener("contextmenu",noContextMenu,{signal:i});t.addEventListener("pointerdown",t=>t.stopPropagation(),{signal:i});const onClick=t=>{t.preventDefault();this.#o._uiManager.editAltText(this.#o);this.#he&&this.#o._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:this.#ue}})};t.addEventListener("click",onClick,{capture:!0,signal:i});t.addEventListener("keydown",e=>{if(e.target===t&&"Enter"===e.key){this.#ae=!0;onClick(e)}},{signal:i});await this.#pe();return t}get#ue(){return(this.#c?"added":null===this.#c&&this.guessedText&&"review")||"missing"}finish(){if(this.#ie){this.#ie.focus({focusVisible:this.#ae});this.#ae=!1}}isEmpty(){return this.#he?null===this.#c:!this.#c&&!this.#ee}hasData(){return this.#he?null!==this.#c||!!this.#le:this.isEmpty()}get guessedText(){return this.#le}async setGuessedText(t){if(null===this.#c){this.#le=t;this.#ce=await AltText._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:t});this.#pe()}}toggleAltTextBadge(t=!1){if(this.#he&&!this.#c){if(!this.#oe){const t=this.#oe=document.createElement("div");t.className="noAltTextBadge";this.#o.div.append(t)}this.#oe.classList.toggle("hidden",!t)}else{this.#oe?.remove();this.#oe=null}}serialize(t){let e=this.#c;t||this.#le!==e||(e=this.#ce);return{altText:e,decorative:this.#ee,guessedText:this.#le,textWithDisclaimer:this.#ce}}get data(){return{altText:this.#c,decorative:this.#ee}}set data({altText:t,decorative:e,guessedText:i,textWithDisclaimer:n,cancel:r=!1}){if(i){this.#le=i;this.#ce=n}if(this.#c!==t||this.#ee!==e){if(!r){this.#c=t;this.#ee=e}this.#pe()}}toggle(t=!1){if(this.#ie){if(!t&&this.#se){clearTimeout(this.#se);this.#se=null}this.#ie.disabled=!t}}shown(){this.#o._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:this.#ue}})}destroy(){this.#ie?.remove();this.#ie=null;this.#ne=null;this.#re=null;this.#oe?.remove();this.#oe=null}async#pe(){const t=this.#ie;if(!t)return;if(this.#he){t.classList.toggle("done",!!this.#c);t.setAttribute("data-l10n-id",AltText.#de[this.#ue]);this.#ne?.setAttribute("data-l10n-id",AltText.#de[`${this.#ue}-label`]);if(!this.#c){this.#re?.remove();return}}else{if(!this.#c&&!this.#ee){t.classList.remove("done");this.#re?.remove();return}t.classList.add("done");t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let e=this.#re;if(!e){this.#re=e=document.createElement("span");e.className="tooltip";e.setAttribute("role","tooltip");e.id=`alt-text-tooltip-${this.#o.id}`;const i=100,n=this.#o._uiManager._signal;n.addEventListener("abort",()=>{clearTimeout(this.#se);this.#se=null},{once:!0});t.addEventListener("mouseenter",()=>{this.#se=setTimeout(()=>{this.#se=null;this.#re.classList.add("show");this.#o._reportTelemetry({action:"alt_text_tooltip"})},i)},{signal:n});t.addEventListener("mouseleave",()=>{if(this.#se){clearTimeout(this.#se);this.#se=null}this.#re?.classList.remove("show")},{signal:n})}if(this.#ee)e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip");else{e.removeAttribute("data-l10n-id");e.textContent=this.#c}e.parentNode||t.append(e);const i=this.#o.getElementForAltText();i?.setAttribute("aria-describedby",e.id)}}class Comment{#ge=null;#fe=null;#me=!1;#o=null;#be=null;#ye=null;#we=null;#ve=null;#_e=!1;#Ae=null;constructor(t){this.#o=t}renderForToolbar(){const t=this.#fe=document.createElement("button");t.className="comment";return this.#v(t,!1)}renderForStandalone(){const t=this.#ge=document.createElement("button");t.className="annotationCommentButton";const e=this.#o.commentButtonPosition;if(e){const{style:i}=t;i.insetInlineEnd=`calc(${100*("ltr"===this.#o._uiManager.direction?1-e[0]:e[0])}% - var(--comment-button-dim))`;i.top=`calc(${100*e[1]}% - var(--comment-button-dim))`;const n=this.#o.commentButtonColor;n&&(i.backgroundColor=n)}return this.#v(t,!0)}focusButton(){setTimeout(()=>{(this.#ge??this.#fe)?.focus()},0)}onUpdatedColor(){if(!this.#ge)return;const t=this.#o.commentButtonColor;t&&(this.#ge.style.backgroundColor=t);this.#o._uiManager.updatePopupColor(this.#o)}get commentButtonWidth(){return(this.#ge?.getBoundingClientRect().width??0)/this.#o.parent.boundingClientRect.width}get commentPopupPositionInLayer(){if(this.#Ae)return this.#Ae;if(!this.#ge)return null;const{x:t,y:e,height:i}=this.#ge.getBoundingClientRect(),{x:n,y:r,width:s,height:a}=this.#o.parent.boundingClientRect;return[(t-n)/s,(e+i-r)/a]}set commentPopupPositionInLayer(t){this.#Ae=t}hasDefaultPopupPosition(){return null===this.#Ae}removeStandaloneCommentButton(){this.#ge?.remove();this.#ge=null}removeToolbarCommentButton(){this.#fe?.remove();this.#fe=null}setCommentButtonStates({selected:t,hasPopup:e}){if(this.#ge){this.#ge.classList.toggle("selected",t);this.#ge.ariaExpanded=e}}#v(t,e){if(!this.#o._uiManager.hasCommentManager())return null;t.tabIndex="0";t.ariaHasPopup="dialog";if(e){t.ariaControls="commentPopup";t.setAttribute("data-l10n-id","pdfjs-show-comment-button")}else{t.ariaControlsElements=[this.#o._uiManager.getCommentDialogElement()];t.setAttribute("data-l10n-id","pdfjs-editor-add-comment-button")}const i=this.#o._uiManager._signal;if(!(i instanceof AbortSignal)||i.aborted)return t;t.addEventListener("contextmenu",noContextMenu,{signal:i});if(e){t.addEventListener("focusin",t=>{this.#o._focusEventsAllowed=!1;stopEvent(t)},{capture:!0,signal:i});t.addEventListener("focusout",t=>{this.#o._focusEventsAllowed=!0;stopEvent(t)},{capture:!0,signal:i})}t.addEventListener("pointerdown",t=>t.stopPropagation(),{signal:i});const onClick=e=>{e.preventDefault();t===this.#fe?this.edit():this.#o.toggleComment(!0)};t.addEventListener("click",onClick,{capture:!0,signal:i});t.addEventListener("keydown",e=>{if(e.target===t&&"Enter"===e.key){this.#me=!0;onClick(e)}},{signal:i});t.addEventListener("pointerenter",()=>{this.#o.toggleComment(!1,!0)},{signal:i});t.addEventListener("pointerleave",()=>{this.#o.toggleComment(!1,!1)},{signal:i});return t}edit(t){const e=this.commentPopupPositionInLayer;let i,n;if(e)[i,n]=e;else{[i,n]=this.#o.commentButtonPosition;const{width:t,height:e,x:r,y:s}=this.#o;i=r+i*t;n=s+n*e}const r=this.#o.parent.boundingClientRect,{x:s,y:a,width:o,height:l}=r;this.#o._uiManager.editComment(this.#o,s+i*o,a+n*l,{...t,parentDimensions:r})}finish(){if(this.#fe){this.#fe.focus({focusVisible:this.#me});this.#me=!1}}isDeleted(){return this.#_e||""===this.#we}isEmpty(){return null===this.#we}hasBeenEdited(){return this.isDeleted()||this.#we!==this.#be}serialize(){return this.data}get data(){return{text:this.#we,richText:this.#ye,date:this.#ve,deleted:this.isDeleted()}}set data(t){t!==this.#we&&(this.#ye=null);if(null!==t){this.#we=t;this.#ve=new Date;this.#_e=!1}else{this.#we="";this.#_e=!0}}restoreData({text:t,richText:e,date:i}){this.#we=t;this.#ye=e;this.#ve=i;this.#_e=!1}setInitialText(t,e=null){this.#be=t;this.data=t;this.#ve=null;this.#ye=e}shown(){}destroy(){this.#fe?.remove();this.#fe=null;this.#ge?.remove();this.#ge=null;this.#we="";this.#ye=null;this.#ve=null;this.#o=null;this.#me=!1;this.#_e=!1}}function preventDefault(t){t.preventDefault()}const ln=1e-4;function stopTouchEvent(t){if(t.cancelable){stopEvent(t);return!0}t.stopPropagation();return!1}class TouchManager{#Pt;#xe=!1;#Ee=null;#Ce;#Se;#Te;#ke;#De;#Pe=!1;#Me=null;#Ie;#Fe=new Set;#Oe=null;#Re;#Be=null;#Le=0;constructor({container:t,isPinchingDisabled:e=null,isPinchingStopped:i=null,onPinchStart:n=null,onPinching:r=null,onPinchEnd:s=null,onPanning:a=null,signal:o}){this.#Pt=t;this.#Ee=i;this.#Ce=e;this.#Se=n;this.#Te=r;this.#ke=s;this.#De=a;this.#Re=new AbortController;this.#Ie=AbortSignal.any([o,this.#Re.signal]);t.addEventListener("touchstart",this.#Ne.bind(this),{passive:!1,signal:this.#Ie})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return 35/OutputScale.pixelRatio}get MIN_TOUCH_DISTANCE_TO_SCALE(){return 4/OutputScale.pixelRatio}#Ne(t){if(this.#Ce?.())return;this.#Ue(t);const e=this.#Fe;for(const{identifier:i}of t.changedTouches)e.add(i);if(1!==e.size){if(!this.#Be){this.#Be=new AbortController;const t=AbortSignal.any([this.#Ie,this.#Be.signal]),e=this.#Pt,i={signal:t,capture:!1,passive:!1};e.addEventListener("touchmove",this.#He.bind(this),i);const n=this.#ze.bind(this);e.addEventListener("touchend",n,i);e.addEventListener("touchcancel",n,i);i.capture=!0;e.addEventListener("pointerdown",stopEvent,i);e.addEventListener("pointermove",stopEvent,i);e.addEventListener("pointercancel",preventDefault,i);e.addEventListener("pointerup",preventDefault,i);this.#Se?.()}this.#Pe=stopTouchEvent(t);this.#Ge(t)}else this.#je()}#je(){if(this.#Me)return;const t=this.#Me=new AbortController,e=AbortSignal.any([this.#Ie,t.signal]),i=this.#Pt,n={capture:!0,signal:e,passive:!1},cancelPointerDown=t=>{if("touch"===t.pointerType){this.#Me?.abort();this.#Me=null}};i.addEventListener("pointerdown",t=>{if("touch"===t.pointerType){stopEvent(t);cancelPointerDown(t)}},n);i.addEventListener("pointerup",cancelPointerDown,n);i.addEventListener("pointercancel",cancelPointerDown,n)}#Ue(t){const e=this.#Fe;if(0===e.size)return;const i=this.#Fe=new Set;for(const{identifier:n}of t.touches)e.has(n)&&i.add(n)}#We(t){const e=this.#Fe,i=[];for(const n of t.touches)e.has(n.identifier)&&i.push(n);return i}#Ge(t){const e=this.#We(t);if(2!==e.length||this.#Ee?.()){this.#Oe=null;return}const[i,n]=e;this.#Oe={touch0X:i.screenX,touch0Y:i.screenY,touch1X:n.screenX,touch1Y:n.screenY,panX:(i.clientX+n.clientX)/2,panY:(i.clientY+n.clientY)/2,screenPanX:(i.screenX+n.screenX)/2,screenPanY:(i.screenY+n.screenY)/2}}#He(t){if(!this.#Oe)return;const e=this.#We(t);if(2!==e.length)return;const i=this.#Pe;this.#Pe=stopTouchEvent(t);if(!this.#Pe)return;if(!i){this.#Ge(t);return}const[n,r]=e,{screenX:s,screenY:a}=n,{screenX:o,screenY:l}=r,c=this.#Oe,{touch0X:h,touch0Y:d,touch1X:u,touch1Y:p,panX:g,panY:f}=c,m=u-h,b=p-d,y=o-s,w=l-a,v=(n.clientX+r.clientX)/2,_=(n.clientY+r.clientY)/2;c.panX=v;c.panY=_;const A=v-g,x=_-f,E=(s+o)/2,C=(a+l)/2,S=Math.hypot(E-c.screenPanX,C-c.screenPanY);c.screenPanX=E;c.screenPanY=C;const T=Math.hypot(y,w),k=Math.hypot(m,b),D=this.#xe?this.MIN_TOUCH_DISTANCE_TO_SCALE:this.MIN_TOUCH_DISTANCE_TO_PINCH+2*S;if(T<ln||k<ln||Math.abs(k-T)<=D){(A||x)&&this.#De?.(A,x);return}c.touch0X=s;c.touch0Y=a;c.touch1X=o;c.touch1Y=l;const P=Math.sign(T-k);if(this.#xe){if(this.#Le){const t=this.#Le;this.#Le=0;if(P!==t&&Math.abs(T-k)<=2*S){this.#xe=!1;(A||x)&&this.#De?.(A,x);return}}this.#Te?.([g,f],k,T,A,x)}else{this.#xe=!0;this.#Le=P;(A||x)&&this.#De?.(A,x)}}#ze(t){this.#Ue(t);if(this.#Fe.size>=2){this.#Ge(t);return}const e=!!this.#Oe;this.#Ve();1===this.#Fe.size&&this.#je();e&&stopTouchEvent(t)}#Ve(){this.#Oe=null;this.#xe=!1;this.#Le=0;this.#Pe=!1;if(this.#Be){this.#Be.abort();this.#Be=null;this.#ke?.()}}destroy(){this.#Ve();this.#Fe.clear();this.#Re?.abort();this.#Re=null;this.#Me?.abort();this.#Me=null}}class AnnotationEditor{#$e=null;#qe=null;#c=null;#h=null;#ge=null;#Xe=!1;#Ke=null;#Ye="";#Je=null;#Qe=null;#Ze=null;#ti=null;#ei=null;#ii="";#ni=!1;#ri=null;#si=!1;#ai=!1;#oi=!1;#li=null;#ci=0;#hi=0;#di=null;#ui=null;isSelected=!1;_isCopy=!1;_editToolbar=null;_initialOptions=Object.create(null);_initialData=null;_isVisible=!0;_uiManager=null;_focusEventsAllowed=!0;static _l10n=null;static _l10nAlert=null;static _l10nResizer=null;#pi=!1;#gi=AnnotationEditor._zIndex++;static _borderLineWidth=-1;static _colorManager=new ColorManager;static _zIndex=1;static _telemetryTimeout=1e3;static get _resizerKeyboardManager(){const t=AnnotationEditor.prototype._resizeWithKeyboard,e=AnnotationEditorUIManager.TRANSLATE_SMALL,i=AnnotationEditorUIManager.TRANSLATE_BIG;return util_shadow(this,"_resizerKeyboardManager",new KeyboardManager([[["ArrowLeft"],t,{args:[-e,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t,{args:[-i,0]}],[["ArrowRight"],t,{args:[e,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t,{args:[i,0]}],[["ArrowUp"],t,{args:[0,-e]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t,{args:[0,-i]}],[["ArrowDown"],t,{args:[0,e]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t,{args:[0,i]}],[["Escape"],AnnotationEditor.prototype._stopResizingWithKeyboard]]))}constructor(t){this.parent=t.parent;this.id=t.id;this.width=this.height=null;this.pageIndex=t.parent.pageIndex;this.name=t.name;this.div=null;this._uiManager=t.uiManager;this.annotationElementId=null;this._willKeepAspectRatio=!1;this._initialOptions.isCentered=t.isCentered;this._structTreeParentId=null;this.annotationElementId=t.annotationElementId||null;this.creationDate=t.creationDate||new Date;this.modificationDate=t.modificationDate||null;this.canAddComment=!0;const{rotation:e,rawDims:{pageWidth:i,pageHeight:n,pageX:r,pageY:s}}=this.parent.viewport;this.rotation=e;this.pageRotation=(360+e-this._uiManager.viewParameters.rotation)%360;this.pageDimensions=[i,n];this.pageTranslation=[r,s];const[a,o]=this.parentDimensions;this.x=t.x/a;this.y=t.y/o;this.isAttachedToDOM=!1;this.deleted=!1}updatePageIndex(t){this.pageIndex=t}get editorType(){return Object.getPrototypeOf(this).constructor._type}get mode(){return Object.getPrototypeOf(this).constructor._editorType}static get isDrawer(){return!1}static get _defaultLineColor(){return util_shadow(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(t){const e=new FakeEditor({id:t._uiManager.getId(),parent:t.parent,uiManager:t._uiManager});e.annotationElementId=t.annotationElementId;e.deleted=!0;e._uiManager.addToAnnotationStorage(e)}static initialize(t,e){AnnotationEditor._l10n??=t;AnnotationEditor._l10nAlert??=Object.freeze({highlight:"pdfjs-editor-highlight-added-alert",freetext:"pdfjs-editor-freetext-added-alert",ink:"pdfjs-editor-ink-added-alert",stamp:"pdfjs-editor-stamp-added-alert",signature:"pdfjs-editor-signature-added-alert"});AnnotationEditor._l10nResizer??=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"});if(-1!==AnnotationEditor._borderLineWidth)return;const i=getComputedStyle(document.documentElement);AnnotationEditor._borderLineWidth=parseFloat(i.getPropertyValue("--outline-width"))||0}static updateDefaultParams(t,e){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(t){return!1}static paste(t,e){unreachable("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return this.#pi}set _isDraggable(t){this.#pi=t;this.div?.classList.toggle("draggable",t)}get uid(){return this.annotationElementId||this.id}get isEnterHandled(){return!0}center(){const[t,e]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*e/(2*t);this.y+=this.width*t/(2*e);break;case 180:this.x+=this.width/2;this.y+=this.height/2;break;case 270:this.x+=this.height*e/(2*t);this.y-=this.width*t/(2*e);break;default:this.x-=this.width/2;this.y-=this.height/2}this.fixAndSetPosition()}addCommands(t){this._uiManager.addCommands(t)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=this.#gi}setParent(t){if(null!==t){this.pageIndex=t.pageIndex;this.pageDimensions=t.pageDimensions}else{this.#fi();this.#ti?.remove();this.#ti=null}this.parent=t}focusin(t){this._focusEventsAllowed&&(this.#ni?this.#ni=!1:this.parent.setSelected(this))}focusout(t){if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const e=t.relatedTarget;if(!e?.closest(`#${this.id}`)){t.preventDefault();this.parent?.isMultipleSelection||this.commitOrRemove()}}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.isInEditMode()&&this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(t,e,i,n){const[r,s]=this.parentDimensions;[i,n]=this.screenToPageTranslation(i,n);this.x=(t+i)/r;this.y=(e+n)/s;this.fixAndSetPosition()}_moveAfterPaste(t,e){if(this.isClone){delete this.isClone;return}const[i,n]=this.parentDimensions;this.setAt(t*i,e*n,this.width*i,this.height*n);this._onTranslated()}#mi([t,e],i,n){[i,n]=this.screenToPageTranslation(i,n);this.x+=i/t;this.y+=n/e;this._onTranslating(this.x,this.y);this.fixAndSetPosition()}translate(t,e){this.#mi(this.parentDimensions,t,e)}translateInPage(t,e){this.#ri||=[this.x,this.y,this.width,this.height];this.#mi(this.pageDimensions,t,e);this.div.scrollIntoView({block:"nearest"})}translationDone(){this._onTranslated(this.x,this.y)}drag(t,e){this.#ri||=[this.x,this.y,this.width,this.height];const{div:i,parentDimensions:[n,r]}=this;this.x+=t/n;this.y+=e/r;if(this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:t,y:e}=this.div.getBoundingClientRect();if(this.parent.findNewParent(this,t,e)){this.x-=Math.floor(this.x);this.y-=Math.floor(this.y)}}let{x:s,y:a}=this;const[o,l]=this.getBaseTranslation();s+=o;a+=l;const{style:c}=i;c.left=`${(100*s).toFixed(2)}%`;c.top=`${(100*a).toFixed(2)}%`;this._onTranslating(s,a)}_onTranslating(t,e){}_onTranslated(t,e){}get _hasBeenMoved(){return!!this.#ri&&(this.#ri[0]!==this.x||this.#ri[1]!==this.y)}get _hasBeenResized(){return!!this.#ri&&(this.#ri[2]!==this.width||this.#ri[3]!==this.height)}getBaseTranslation(){const[t,e]=this.parentDimensions,{_borderLineWidth:i}=AnnotationEditor,n=i/t,r=i/e;switch(this.rotation){case 90:return[-n,r];case 180:return[n,r];case 270:return[n,-r];default:return[-n,-r]}}get _mustFixPosition(){return!0}fixAndSetPosition(t=this.rotation){const{div:{style:e},pageDimensions:[i,n]}=this;let{x:r,y:s,width:a,height:o}=this;a*=i;o*=n;r*=i;s*=n;if(this._mustFixPosition)switch(t){case 0:r=MathClamp(r,0,i-a);s=MathClamp(s,0,n-o);break;case 90:r=MathClamp(r,0,i-o);s=MathClamp(s,a,n);break;case 180:r=MathClamp(r,a,i);s=MathClamp(s,o,n);break;case 270:r=MathClamp(r,o,i);s=MathClamp(s,0,n-a)}this.x=r/=i;this.y=s/=n;const[l,c]=this.getBaseTranslation();r+=l;s+=c;e.left=`${(100*r).toFixed(2)}%`;e.top=`${(100*s).toFixed(2)}%`;this.moveInDOM()}static#bi(t,e,i){switch(i){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}}screenToPageTranslation(t,e){return AnnotationEditor.#bi(t,e,this.parentRotation)}pageTranslationToScreen(t,e){return AnnotationEditor.#bi(t,e,360-this.parentRotation)}#yi(t){switch(t){case 90:{const[t,e]=this.pageDimensions;return[0,-t/e,e/t,0]}case 180:return[-1,0,0,-1];case 270:{const[t,e]=this.pageDimensions;return[0,t/e,-e/t,0]}default:return[1,0,0,1]}}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:t,pageDimensions:[e,i]}=this;return[e*t,i*t]}setDims(){const{div:{style:t},width:e,height:i}=this;t.width=`${(100*e).toFixed(2)}%`;t.height=`${(100*i).toFixed(2)}%`}getInitialTranslation(){return[0,0]}#wi(){if(this.#Je)return;this.#Je=document.createElement("div");this.#Je.classList.add("resizers");const t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],e=this._uiManager._signal;for(const i of t){const t=document.createElement("div");this.#Je.append(t);t.classList.add("resizer",i);t.setAttribute("data-resizer-name",i);t.addEventListener("pointerdown",this.#vi.bind(this,i),{signal:e});t.addEventListener("contextmenu",noContextMenu,{signal:e});t.tabIndex=-1}this.div.prepend(this.#Je)}#vi(t,e){e.preventDefault();const{isMac:i}=FeatureTest.platform;if(0!==e.button||e.ctrlKey&&i)return;this.#c?.toggle(!1);const n=this._isDraggable;this._isDraggable=!1;this.#Qe=[e.screenX,e.screenY];const r=new AbortController,s=this._uiManager.combinedSignal(r);this.parent.togglePointerEvents(!1);window.addEventListener("pointermove",this.#_i.bind(this,t),{passive:!0,capture:!0,signal:s});window.addEventListener("touchmove",stopEvent,{passive:!1,signal:s});window.addEventListener("contextmenu",noContextMenu,{signal:s});this.#Ze={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};const a=this.parent.div.style.cursor,o=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(e.target).cursor;const pointerUpCallback=()=>{r.abort();this.parent.togglePointerEvents(!0);this.#c?.toggle(!0);this._isDraggable=n;this.parent.div.style.cursor=a;this.div.style.cursor=o;this.#Ai()};window.addEventListener("pointerup",pointerUpCallback,{signal:s});window.addEventListener("blur",pointerUpCallback,{signal:s})}#xi(t,e,i,n){this.width=i;this.height=n;this.x=t;this.y=e;this.setDims();this.fixAndSetPosition();this._onResized()}_onResized(){}#Ai(){if(!this.#Ze)return;const{savedX:t,savedY:e,savedWidth:i,savedHeight:n}=this.#Ze;this.#Ze=null;const r=this.x,s=this.y,a=this.width,o=this.height;r===t&&s===e&&a===i&&o===n||this.addCommands({cmd:this.#xi.bind(this,r,s,a,o),undo:this.#xi.bind(this,t,e,i,n),mustExec:!0})}static _round(t){return Math.round(1e4*t)/1e4}#_i(t,e){const[i,n]=this.parentDimensions,r=this.x,s=this.y,a=this.width,o=this.height,l=AnnotationEditor.MIN_SIZE/i,c=AnnotationEditor.MIN_SIZE/n,h=this.#yi(this.rotation),transf=(t,e)=>[h[0]*t+h[2]*e,h[1]*t+h[3]*e],d=this.#yi(360-this.rotation);let u,p,g=!1,f=!1;switch(t){case"topLeft":g=!0;u=(t,e)=>[0,0];p=(t,e)=>[t,e];break;case"topMiddle":u=(t,e)=>[t/2,0];p=(t,e)=>[t/2,e];break;case"topRight":g=!0;u=(t,e)=>[t,0];p=(t,e)=>[0,e];break;case"middleRight":f=!0;u=(t,e)=>[t,e/2];p=(t,e)=>[0,e/2];break;case"bottomRight":g=!0;u=(t,e)=>[t,e];p=(t,e)=>[0,0];break;case"bottomMiddle":u=(t,e)=>[t/2,e];p=(t,e)=>[t/2,0];break;case"bottomLeft":g=!0;u=(t,e)=>[0,e];p=(t,e)=>[t,0];break;case"middleLeft":f=!0;u=(t,e)=>[0,e/2];p=(t,e)=>[t,e/2]}const m=u(a,o),b=p(a,o);let y=transf(...b);const w=AnnotationEditor._round(r+y[0]),v=AnnotationEditor._round(s+y[1]);let _,A,x=1,E=1;if(e.fromKeyboard)({deltaX:_,deltaY:A}=e);else{const{screenX:t,screenY:i}=e,[n,r]=this.#Qe;[_,A]=this.screenToPageTranslation(t-n,i-r);this.#Qe[0]=t;this.#Qe[1]=i}[_,A]=(C=_/i,S=A/n,[d[0]*C+d[2]*S,d[1]*C+d[3]*S]);var C,S;if(g){const t=Math.hypot(a,o);x=E=Math.max(Math.min(Math.hypot(b[0]-m[0]-_,b[1]-m[1]-A)/t,1/a,1/o),l/a,c/o)}else f?x=MathClamp(Math.abs(b[0]-m[0]-_),l,1)/a:E=MathClamp(Math.abs(b[1]-m[1]-A),c,1)/o;const T=AnnotationEditor._round(a*x),k=AnnotationEditor._round(o*E);y=transf(...p(T,k));const D=w-y[0],P=v-y[1];this.#ri||=[this.x,this.y,this.width,this.height];this.width=T;this.height=k;this.x=D;this.y=P;this.setDims();this.fixAndSetPosition();this._onResizing()}_onResizing(){}altTextFinish(){this.#c?.finish()}get toolbarButtons(){return null}async addEditToolbar(){if(this._editToolbar||this.#ai)return this._editToolbar;this._editToolbar=new EditorToolbar(this);this.div.append(this._editToolbar.render());const{toolbarButtons:t}=this;if(t)for(const[e,i]of t)await this._editToolbar.addButton(e,i);this.hasComment||this._editToolbar.addButton("comment",this.addCommentButton());this._editToolbar.addButton("delete");return this._editToolbar}addCommentButtonInToolbar(){this._editToolbar?.addButtonBefore("comment",this.addCommentButton(),".deleteButton")}removeCommentButtonFromToolbar(){this._editToolbar?.removeButton("comment")}removeEditToolbar(){this._editToolbar?.remove();this._editToolbar=null;this.#c?.destroy()}addContainer(t){const e=this._editToolbar?.div;e?e.before(t):this.div.append(t)}getClientDimensions(){return this.div.getBoundingClientRect()}createAltText(){if(!this.#c){AltText.initialize(AnnotationEditor._l10n);this.#c=new AltText(this);if(this.#$e){this.#c.data=this.#$e;this.#$e=null}}return this.#c}get altTextData(){return this.#c?.data}set altTextData(t){this.#c&&(this.#c.data=t)}get guessedAltText(){return this.#c?.guessedText}async setGuessedAltText(t){await(this.#c?.setGuessedText(t))}serializeAltText(t){return this.#c?.serialize(t)}hasAltText(){return!!this.#c&&!this.#c.isEmpty()}hasAltTextData(){return this.#c?.hasData()??!1}focusCommentButton(){this.#h?.focusButton()}addCommentButton(){return this.canAddComment?this.#h||=new Comment(this):null}addStandaloneCommentButton(){if(this._uiManager.hasCommentManager())if(this.#ge)this._uiManager.isEditingMode()&&this.#ge.classList.remove("hidden");else if(this.hasComment){this.#ge=this.#h.renderForStandalone();this.div.append(this.#ge)}}removeStandaloneCommentButton(){this.#h.removeStandaloneCommentButton();this.#ge=null}hideStandaloneCommentButton(){this.#ge?.classList.add("hidden")}get comment(){if(!this.#h)return null;const{data:{richText:t,text:e,date:i,deleted:n}}=this.#h;return{text:e,richText:t,date:i,deleted:n,color:this.getNonHCMColor(),opacity:this.opacity??1}}set comment(t){this.#h||=new Comment(this);"object"==typeof t&&null!==t?this.#h.restoreData(t):this.#h.data=t;if(this.hasComment){this.removeCommentButtonFromToolbar();this.addStandaloneCommentButton();this._uiManager.updateComment(this)}else{this.addCommentButtonInToolbar();this.removeStandaloneCommentButton();this._uiManager.removeComment(this)}}setCommentData({comment:t,popupRef:e,richText:i}){if(!e)return;this.#h||=new Comment(this);this.#h.setInitialText(t,i);if(!this.annotationElementId)return;const n=this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);n&&this.updateFromAnnotationLayer(n)}get hasEditedComment(){return this.#h?.hasBeenEdited()}get hasDeletedComment(){return this.#h?.isDeleted()}get hasComment(){return!!this.#h&&!this.#h.isEmpty()&&!this.#h.isDeleted()}async editComment(t){this.#h||=new Comment(this);this.#h.edit(t)}toggleComment(t,e=void 0){this.hasComment&&this._uiManager.toggleComment(this,t,e)}setSelectedCommentButton(t){this.#h.setSelectedButton(t)}addComment(t){if(this.hasEditedComment){const e=180,i=100,[,,,n]=t.rect,[r]=this.pageDimensions,[s]=this.pageTranslation,a=s+r+1,o=n-i,l=a+e;t.popup={contents:this.comment.text,deleted:this.comment.deleted,rect:[a,o,l,n]}}}updateFromAnnotationLayer({popup:{contents:t,deleted:e}}){this.#h.data=e?null:t}get parentBoundingClientRect(){return this.parent.boundingClientRect}render(){const t=this.div=document.createElement("div");t.setAttribute("data-editor-rotation",(360-this.rotation)%360);t.className=this.name;t.setAttribute("id",this.id);t.tabIndex=this.#Xe?-1:0;t.setAttribute("role","application");this.defaultL10nId&&t.setAttribute("data-l10n-id",this.defaultL10nId);this._isVisible||t.classList.add("hidden");this.setInForeground();this.#Ei();const[e,i]=this.parentDimensions;if(this.parentRotation%180!=0){t.style.maxWidth=`${(100*i/e).toFixed(2)}%`;t.style.maxHeight=`${(100*e/i).toFixed(2)}%`}const[n,r]=this.getInitialTranslation();this.translate(n,r);bindEvents(this,t,["keydown","pointerdown","dblclick"]);this.#Ci();this.addStandaloneCommentButton();this._uiManager._editorUndoBar?.hide();return t}#Si(){this.#Ze={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};this.#c?.toggle(!1);this.parent.togglePointerEvents(!1)}#Ti(t,e,i){let n=i/e*.7+1-.7;if(1===n)return;const r=this.#yi(this.rotation),transf=(t,e)=>[r[0]*t+r[2]*e,r[1]*t+r[3]*e],[s,a]=this.parentDimensions,o=this.x,l=this.y,c=this.width,h=this.height,d=AnnotationEditor.MIN_SIZE/s,u=AnnotationEditor.MIN_SIZE/a;n=Math.max(Math.min(n,1/c,1/h),d/c,u/h);const p=AnnotationEditor._round(c*n),g=AnnotationEditor._round(h*n);if(p===c&&g===h)return;this.#ri||=[o,l,c,h];const f=transf(c/2,h/2),m=AnnotationEditor._round(o+f[0]),b=AnnotationEditor._round(l+f[1]),y=transf(p/2,g/2);this.x=m-y[0];this.y=b-y[1];this.width=p;this.height=g;this.setDims();this.fixAndSetPosition();this._onResizing()}#ki(){this.#c?.toggle(!0);this.parent.togglePointerEvents(!0);this.#Ai()}pointerdown(t){const{isMac:e}=FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)t.preventDefault();else{this.#ni=!0;this._isDraggable?this.#Di(t):this.#Pi(t)}}#Pi(t){const{isMac:e}=FeatureTest.platform;t.ctrlKey&&!e||t.shiftKey||t.metaKey&&e?this.parent.toggleSelected(this):this.parent.setSelected(this)}#Di(t){const{isSelected:e}=this;this._uiManager.setUpDragSession();let i=!1;const n=new AbortController,r=this._uiManager.combinedSignal(n),s={capture:!0,passive:!1,signal:r},cancelDrag=t=>{n.abort();this.#Ke=null;this.#ni=!1;this._uiManager.endDragSession()||this.#Pi(t);i&&this._onStopDragging()};if(e){this.#ci=t.clientX;this.#hi=t.clientY;this.#Ke=t.pointerId;this.#Ye=t.pointerType;window.addEventListener("pointermove",t=>{if(!i){i=!0;this._uiManager.toggleComment(this,!0,!1);this._onStartDragging()}const{clientX:e,clientY:n,pointerId:r}=t;if(r!==this.#Ke){stopEvent(t);return}const[s,a]=this.screenToPageTranslation(e-this.#ci,n-this.#hi);this.#ci=e;this.#hi=n;this._uiManager.dragSelectedEditors(s,a);this.div.scrollIntoView({block:"nearest"})},s);window.addEventListener("touchmove",stopEvent,s);window.addEventListener("pointerdown",t=>{t.pointerType===this.#Ye&&(this.#ui||t.isPrimary)&&cancelDrag(t);stopEvent(t)},s)}const pointerUpCallback=t=>{this.#Ke&&this.#Ke!==t.pointerId?stopEvent(t):cancelDrag(t)};window.addEventListener("pointerup",pointerUpCallback,{signal:r});window.addEventListener("blur",pointerUpCallback,{signal:r})}_onStartDragging(){}_onStopDragging(){}moveInDOM(){this.#li&&clearTimeout(this.#li);this.#li=setTimeout(()=>{this.#li=null;this.parent?.moveEditorInDOM(this)},0)}_setParentAndPosition(t,e,i){t.changeParent(this);this.x=e;this.y=i;this.fixAndSetPosition();this._onTranslated()}getRect(t,e,i=this.rotation){const n=this.parentScale,[r,s]=this.pageDimensions,[a,o]=this.pageTranslation,l=t/n,c=e/n,h=this.x*r,d=this.y*s,u=this.width*r,p=this.height*s;switch(i){case 0:return[h+l+a,s-d-c-p+o,h+l+u+a,s-d-c+o];case 90:return[h+c+a,s-d+l+o,h+c+p+a,s-d+l+u+o];case 180:return[h-l-u+a,s-d+c+o,h-l+a,s-d+c+p+o];case 270:return[h-c-p+a,s-d-l-u+o,h-c+a,s-d-l+o];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(t,e){const[i,n,r,s]=t,a=r-i,o=s-n;switch(this.rotation){case 0:return[i,e-s,a,o];case 90:return[i,e-n,o,a];case 180:return[r,e-n,a,o];case 270:return[r,e-s,o,a];default:throw new Error("Invalid rotation")}}getPDFRect(){return this.getRect(0,0)}getNonHCMColor(){return this.color&&AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color))}onUpdatedColor(){this.#h?.onUpdatedColor()}getData(){const{comment:{text:t,color:e,date:i,opacity:n,deleted:r,richText:s},uid:a,pageIndex:o,creationDate:l,modificationDate:c}=this;return{id:a,pageIndex:o,rect:this.getPDFRect(),richText:s,contentsObj:{str:t},creationDate:l,modificationDate:i||c,popupRef:!r,color:e,opacity:n}}onceAdded(t){}isEmpty(){return!1}enableEditMode(){if(this.isInEditMode())return!1;this.parent.setEditingState(!1);this.#ai=!0;return!0}disableEditMode(){if(!this.isInEditMode())return!1;this.parent.setEditingState(!0);this.#ai=!1;return!0}isInEditMode(){return this.#ai}shouldGetKeyboardEvents(){return this.#oi}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:t,left:e,bottom:i,right:n}=this.getClientDimensions(),{innerHeight:r,innerWidth:s}=window;return e<s&&n>0&&t<r&&i>0}#Ei(){if(this.#ei||!this.div)return;this.#ei=new AbortController;const t=this._uiManager.combinedSignal(this.#ei);this.div.addEventListener("focusin",this.focusin.bind(this),{signal:t});this.div.addEventListener("focusout",this.focusout.bind(this),{signal:t})}#Ci(){!this.#ui&&this.div&&this.isResizable&&this._uiManager._supportsPinchToZoom&&(this.#ui=new TouchManager({container:this.div,isPinchingDisabled:()=>!this.isSelected,onPinchStart:this.#Si.bind(this),onPinching:this.#Ti.bind(this),onPinchEnd:this.#ki.bind(this),signal:this._uiManager._signal}))}rebuild(){this.#Ei();this.#Ci()}rotate(t){}resize(){}serializeDeleted(){return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:this._initialData?.popupRef||""}}serialize(t=!1,e=null){return{annotationType:this.mode,pageIndex:this.pageIndex,rect:this.getPDFRect(),rotation:this.rotation,structTreeParentId:this._structTreeParentId,popupRef:this._initialData?.popupRef||""}}static async deserialize(t,e,i){const n=new this.prototype.constructor({parent:e,id:i.getId(),uiManager:i,annotationElementId:t.annotationElementId,creationDate:t.creationDate,modificationDate:t.modificationDate});n.rotation=t.rotation;n.#$e=t.accessibilityData;n._isCopy=t.isCopy||!1;const[r,s]=n.pageDimensions,[a,o,l,c]=n.getRectInCurrentCoords(t.rect,s);n.x=a/r;n.y=o/s;n.width=l/r;n.height=c/s;return n}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||null!==this.serialize())}remove(){this.#ei?.abort();this.#ei=null;this.isEmpty()||this.commit();this.#ui?.destroy();this.#ui=null;this.parent?this.parent.remove(this):this._uiManager.removeEditor(this);this.hideCommentPopup();if(this.#li){clearTimeout(this.#li);this.#li=null}this.#fi();this.removeEditToolbar();if(this.#di){for(const t of this.#di.values())clearTimeout(t);this.#di=null}this.parent=null;this.#ti?.remove();this.#ti=null}get isResizable(){return!1}makeResizable(){if(this.isResizable){this.#wi();this.#Je.classList.remove("hidden")}}get toolbarPosition(){return null}get commentButtonPosition(){return"ltr"===this._uiManager.direction?[1,0]:[0,0]}get commentButtonPositionInPage(){const{commentButtonPosition:[t,e]}=this,[i,n,r,s]=this.getPDFRect();return[AnnotationEditor._round(i+(r-i)*t),AnnotationEditor._round(n+(s-n)*(1-e))]}get commentButtonColor(){return this._uiManager.makeCommentColor(this.getNonHCMColor(),this.opacity)}get commentPopupPosition(){return this.#h.commentPopupPositionInLayer}set commentPopupPosition(t){this.#h.commentPopupPositionInLayer=t}hasDefaultPopupPosition(){return this.#h.hasDefaultPopupPosition()}get commentButtonWidth(){return this.#h.commentButtonWidth}get elementBeforePopup(){return this.div}setCommentButtonStates(t){this.#h?.setCommentButtonStates(t)}keydown(t){if(!this.isResizable||t.target!==this.div||"Enter"!==t.key)return;this._uiManager.setSelected(this);this.#Ze={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};const e=this.#Je.children;if(!this.#qe){this.#qe=Array.from(e);const t=this.#Mi.bind(this),i=this.#Ii.bind(this),n=this._uiManager._signal;for(const e of this.#qe){const r=e.getAttribute("data-resizer-name");e.setAttribute("role","spinbutton");e.addEventListener("keydown",t,{signal:n});e.addEventListener("blur",i,{signal:n});e.addEventListener("focus",this.#Fi.bind(this,r),{signal:n});e.setAttribute("data-l10n-id",AnnotationEditor._l10nResizer[r])}}const i=this.#qe[0];let n=0;for(const t of e){if(t===i)break;n++}const r=(360-this.rotation+this.parentRotation)%360/90*(this.#qe.length/4);if(r!==n){if(r<n)for(let t=0;t<n-r;t++)this.#Je.append(this.#Je.firstElementChild);else if(r>n)for(let t=0;t<r-n;t++)this.#Je.firstElementChild.before(this.#Je.lastElementChild);let t=0;for(const i of e){const e=this.#qe[t++].getAttribute("data-resizer-name");i.setAttribute("data-l10n-id",AnnotationEditor._l10nResizer[e])}}this.#Oi(0);this.#oi=!0;this.#Je.firstElementChild.focus({focusVisible:!0});t.preventDefault();t.stopImmediatePropagation()}#Mi(t){AnnotationEditor._resizerKeyboardManager.exec(this,t)}#Ii(t){this.#oi&&t.relatedTarget?.parentNode!==this.#Je&&this.#fi()}#Fi(t){this.#ii=this.#oi?t:""}#Oi(t){if(this.#qe)for(const e of this.#qe)e.tabIndex=t}_resizeWithKeyboard(t,e){this.#oi&&this.#_i(this.#ii,{deltaX:t,deltaY:e,fromKeyboard:!0})}#fi(){this.#oi=!1;this.#Oi(-1);this.#Ai()}_stopResizingWithKeyboard(){this.#fi();this.div.focus()}select(){if(this.isSelected&&this._editToolbar)this._editToolbar.show();else{this.isSelected=!0;this.makeResizable();this.div?.classList.add("selectedEditor");if(this._editToolbar){this._editToolbar?.show();this.#c?.toggleAltTextBadge(!1)}else this.addEditToolbar().then(()=>{this.div?.classList.contains("selectedEditor")&&this._editToolbar?.show()})}}focus(){this.div&&!this.div.contains(document.activeElement)&&setTimeout(()=>this.div?.focus({preventScroll:!0}),0)}unselect(){if(this.isSelected){this.isSelected=!1;this.#Je?.classList.add("hidden");this.div?.classList.remove("selectedEditor");this.div?.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0});this._editToolbar?.hide();this.#c?.toggleAltTextBadge(!0);this.hideCommentPopup()}}hideCommentPopup(){this.hasComment&&this._uiManager.toggleComment(null)}updateParams(t,e){}disableEditing(){}enableEditing(){}get canChangeContent(){return!1}enterInEditMode(){if(this.canChangeContent){this.enableEditMode();this.div.focus()}}dblclick(t){if("BUTTON"!==t.target.nodeName){this.enterInEditMode();this.parent.updateToolbar({mode:this.constructor._editorType,editId:this.uid})}}getElementForAltText(){return this.div}get contentDiv(){return this.div}get isEditing(){return this.#si}set isEditing(t){this.#si=t;if(this.parent)if(t){this.parent.setSelected(this);this.parent.setActiveEditor(this)}else this.parent.setActiveEditor(null)}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(t,e=!1){if(e){this.#di||=new Map;const{action:e}=t;let i=this.#di.get(e);i&&clearTimeout(i);i=setTimeout(()=>{this._reportTelemetry(t);this.#di.delete(e);0===this.#di.size&&(this.#di=null)},AnnotationEditor._telemetryTimeout);this.#di.set(e,i);return}t.type||=this.editorType;this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:t}})}show(t=this._isVisible){this.div.classList.toggle("hidden",!t);this._isVisible=t}enable(){this.div&&(this.div.tabIndex=0);this.#Xe=!1}disable(){this.div&&(this.div.tabIndex=-1);this.#Xe=!0}updateFakeAnnotationElement(t){if(this.#ti||this.deleted)if(this.deleted){this.#ti.remove();this.#ti=null}else(this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized)&&this.#ti.updateEdited({rect:this.getPDFRect(),popup:this.comment});else this.#ti=t.addFakeAnnotation(this)}renderAnnotationElement(t){if(this.deleted){t.hide();return null}let e=t.container.querySelector(".annotationContent");if(e){if("CANVAS"===e.nodeName){const t=e;e=document.createElement("div");e.classList.add("annotationContent",this.editorType);t.before(e)}}else{e=document.createElement("div");e.classList.add("annotationContent",this.editorType);t.container.prepend(e)}return e}resetAnnotationElement(t){const{firstElementChild:e}=t.container;"DIV"===e?.nodeName&&e.classList.contains("annotationContent")&&e.remove()}}class FakeEditor extends AnnotationEditor{constructor(t){super(t);this.annotationElementId=t.annotationElementId;this.deleted=!0}serialize(){return this.serializeDeleted()}}const cn=3285377520,hn=4294901760,dn=65535;class MurmurHash3_64{constructor(t){this.h1=t?4294967295&t:cn;this.h2=t?4294967295&t:cn}update(t){let e,i;if("string"==typeof t){e=new Uint8Array(2*t.length);i=0;for(let n=0,r=t.length;n<r;n++){const r=t.charCodeAt(n);if(r<=255)e[i++]=r;else{e[i++]=r>>>8;e[i++]=255&r}}}else{if(!ArrayBuffer.isView(t))throw new Error("Invalid data format, must be a string or TypedArray.");e=t.slice();i=e.byteLength}const n=i>>2,r=i-4*n,s=new Uint32Array(e.buffer,0,n);let a=0,o=0,l=this.h1,c=this.h2;const h=3432918353,d=461845907,u=11601,p=13715;for(let t=0;t<n;t++)if(1&t){a=s[t];a=a*h&hn|a*u&dn;a=a<<15|a>>>17;a=a*d&hn|a*p&dn;l^=a;l=l<<13|l>>>19;l=5*l+3864292196}else{o=s[t];o=o*h&hn|o*u&dn;o=o<<15|o>>>17;o=o*d&hn|o*p&dn;c^=o;c=c<<13|c>>>19;c=5*c+3864292196}a=0;switch(r){case 3:a^=e[4*n+2]<<16;case 2:a^=e[4*n+1]<<8;case 1:a^=e[4*n];a=a*h&hn|a*u&dn;a=a<<15|a>>>17;a=a*d&hn|a*p&dn;1&n?l^=a:c^=a}this.h1=l;this.h2=c}hexdigest(){let t=this.h1,e=this.h2;t^=e>>>1;t=3981806797*t&hn|36045*t&dn;e=4283543511*e&hn|(2950163797*(e<<16|t>>>16)&hn)>>>16;t^=e>>>1;t=444984403*t&hn|60499*t&dn;e=3301882366*e&hn|(3120437893*(e<<16|t>>>16)&hn)>>>16;t^=e>>>1;return(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}}const un=Object.freeze({map:null,hash:"",transfer:void 0});class AnnotationStorage{#Ri=!1;#Bi=null;#Li=null;#Ni=new Map;onSetModified=null;onResetModified=null;onAnnotationEditor=null;getValue(t,e){const i=this.#Ni.get(t);return void 0===i?e:Object.assign(e,i)}getRawValue(t){return this.#Ni.get(t)}remove(t){const e=this.#Ni.get(t);if(void 0!==e){e instanceof AnnotationEditor&&this.#Li.delete(e.annotationElementId);this.#Ni.delete(t);0===this.#Ni.size&&this.resetModified();this.#Ni.values().some(t=>t instanceof AnnotationEditor)||this.onAnnotationEditor?.(null)}}setValue(t,e){const i=this.#Ni.get(t);let n=!1;if(void 0!==i){for(const[t,r]of Object.entries(e))if(i[t]!==r){n=!0;i[t]=r}}else{n=!0;this.#Ni.set(t,e)}n&&this.#Ui();if(e instanceof AnnotationEditor){(this.#Li||=new Map).set(e.annotationElementId,e);this.onAnnotationEditor?.(e.constructor._type)}}has(t){return this.#Ni.has(t)}get size(){return this.#Ni.size}#Ui(){if(!this.#Ri){this.#Ri=!0;this.onSetModified?.()}}resetModified(){if(this.#Ri){this.#Ri=!1;this.onResetModified?.()}}get print(){return new PrintAnnotationStorage(this)}get serializable(){if(0===this.#Ni.size)return un;const t=new Map,e=new MurmurHash3_64,i=[],n=Object.create(null);let r=!1;for(const[i,s]of this.#Ni){const a=s instanceof AnnotationEditor?s.serialize(!1,n):s;if(s.page){s.pageIndex=s.page._pageIndex;delete s.page}if(a){t.set(i,a);e.update(`${i}:${JSON.stringify(a)}`);r||=!!a.bitmap}}if(r)for(const e of t.values())e.bitmap&&i.push(e.bitmap);return t.size>0?{map:t,hash:e.hexdigest(),transfer:i}:un}get editorStats(){let t=null;const e=new Map;let i=0,n=0;for(const r of this.#Ni.values()){if(!(r instanceof AnnotationEditor)){r.popup&&(r.popup.deleted?n+=1:i+=1);continue}r.isCommentDeleted?n+=1:r.hasEditedComment&&(i+=1);const s=r.telemetryFinalData;if(!s)continue;const{type:a}=s;e.getOrInsertComputed(a,()=>Object.getPrototypeOf(r).constructor);t||=Object.create(null);const o=t[a]||=new Map;for(const[t,e]of Object.entries(s)){if("type"===t)continue;const i=o.getOrInsertComputed(t,makeMap);i.set(e,(i.get(e)??0)+1)}}if(n>0||i>0){t||=Object.create(null);t.comments={deleted:n,edited:i}}if(!t)return null;for(const[i,n]of e)t[i]=n.computeTelemetryFinalData(t[i]);return t}resetModifiedIds(){this.#Bi=null}updateEditor(t,e){const i=this.#Li?.get(t);if(i){i.updateFromAnnotationLayer(e);return!0}return!1}getEditor(t){return this.#Li?.get(t)||null}get modifiedIds(){if(this.#Bi)return this.#Bi;const t=[];if(this.#Li)for(const e of this.#Li.values())e.serialize()&&t.push(e.annotationElementId);let e="";if(t.length){const i=new MurmurHash3_64;i.update(t.join(","));e=i.hexdigest()}return this.#Bi={ids:new Set(t),hash:e}}[Symbol.iterator](){return this.#Ni.entries()}}class PrintAnnotationStorage extends AnnotationStorage{#Hi=un;constructor(t){super();const{serializable:e}=t;if(e===un)return;const{map:i,hash:n,transfer:r}=e,s=structuredClone(i,r?{transfer:r}:null);this.#Hi={map:s,hash:n,transfer:[]}}get print(){unreachable("Should not call PrintAnnotationStorage.print")}get serializable(){return this.#Hi}get modifiedIds(){return util_shadow(this,"modifiedIds",{ids:new Set,hash:""})}}Ne();const pn="__forcedDependency",{floor:gn,ceil:fn}=Math;function expandBBox(t,e,i,n,r,s){t[4*e+0]=Math.min(t[4*e+0],i);t[4*e+1]=Math.min(t[4*e+1],n);t[4*e+2]=Math.max(t[4*e+2],r);t[4*e+3]=Math.max(t[4*e+3],s)}const mn=new Uint32Array(new Uint8Array([255,255,0,0]).buffer)[0];class BBoxReader{#zi;#Gi;constructor(t,e){this.#zi=t;this.#Gi=e}get length(){return this.#zi.length}isEmpty(t){return this.#zi[t]===mn}minX(t){return this.#Gi[4*t+0]/256}minY(t){return this.#Gi[4*t+1]/256}maxX(t){return(this.#Gi[4*t+2]+1)/256}maxY(t){return(this.#Gi[4*t+3]+1)/256}}const ensureDebugMetadata=(t,e)=>t?.getOrInsertComputed(e,()=>({dependencies:new Set,isRenderingOperation:!1}));class CanvasBBoxTracker{#ji=[[1,0,0,1,0,0]];#Wi=[-1/0,-1/0,1/0,1/0];#Vi=new Float64Array(pi);_pendingBBoxIdx=-1;#$i;#qi;#Xi;#zi;_savesStack=[];_markedContentStack=[];constructor(t,e){this.#$i=t.width;this.#qi=t.height;this.#Ki(e)}growOperationsCount(t){t>=this.#zi.length&&this.#Ki(t,this.#zi)}#Ki(t,e){const i=new ArrayBuffer(4*t);this.#Xi=new Uint8ClampedArray(i);this.#zi=new Uint32Array(i);if(e&&e.length>0){this.#zi.set(e);this.#zi.fill(mn,e.length)}else this.#zi.fill(mn)}get clipBox(){return this.#Wi}save(t){this.#Wi={__proto__:this.#Wi};this._savesStack.push(t);return this}restore(t,e){const i=Object.getPrototypeOf(this.#Wi);if(null===i)return this;this.#Wi=i;const n=this._savesStack.pop();if(void 0!==n){e?.(n,t);this.#zi[t]=this.#zi[n]}return this}recordOpenMarker(t){this._savesStack.push(t);return this}getOpenMarker(){return 0===this._savesStack.length?null:this._savesStack.at(-1)}recordCloseMarker(t,e){const i=this._savesStack.pop();if(void 0!==i){e?.(i,t);this.#zi[t]=this.#zi[i]}return this}beginMarkedContent(t){this._markedContentStack.push(t);return this}endMarkedContent(t,e){const i=this._markedContentStack.pop();if(void 0!==i){e?.(i,t);this.#zi[t]=this.#zi[i]}return this}pushBaseTransform(t){this.#ji.push(Util.multiplyByDOMMatrix(this.#ji.at(-1),t.getTransform()));return this}popBaseTransform(){this.#ji.length>1&&this.#ji.pop();return this}resetBBox(t){if(this._pendingBBoxIdx!==t){this._pendingBBoxIdx=t;this.#Vi.set(pi,0)}return this}recordClipBox(t,e,i,n,r,s){const a=Util.multiplyByDOMMatrix(this.#ji.at(-1),e.getTransform()),o=pi.slice();Util.axialAlignedBoundingBox([i,r,n,s],a,o);const l=Util.intersect(this.#Wi,o);if(l){this.#Wi[0]=l[0];this.#Wi[1]=l[1];this.#Wi[2]=l[2];this.#Wi[3]=l[3]}else{this.#Wi[0]=this.#Wi[1]=1/0;this.#Wi[2]=this.#Wi[3]=-1/0}return this}recordBBox(t,e,i,n,r,s){const a=this.#Wi;if(a[0]===1/0)return this;const o=Util.multiplyByDOMMatrix(this.#ji.at(-1),e.getTransform());if(a[0]===-1/0){Util.axialAlignedBoundingBox([i,r,n,s],o,this.#Vi);return this}const l=pi.slice();Util.axialAlignedBoundingBox([i,r,n,s],o,l);this.#Vi[0]=MathClamp(l[0],a[0],this.#Vi[0]);this.#Vi[1]=MathClamp(l[1],a[1],this.#Vi[1]);this.#Vi[2]=MathClamp(l[2],this.#Vi[2],a[2]);this.#Vi[3]=MathClamp(l[3],this.#Vi[3],a[3]);return this}recordFullPageBBox(t){this.#Vi[0]=Math.max(0,this.#Wi[0]);this.#Vi[1]=Math.max(0,this.#Wi[1]);this.#Vi[2]=Math.min(this.#$i,this.#Wi[2]);this.#Vi[3]=Math.min(this.#qi,this.#Wi[3]);return this}recordOperation(t,e=!1,i){if(this._pendingBBoxIdx!==t)return this;const n=gn(256*this.#Vi[0]/this.#$i),r=gn(256*this.#Vi[1]/this.#qi),s=fn(256*this.#Vi[2]/this.#$i),a=fn(256*this.#Vi[3]/this.#qi);expandBBox(this.#Xi,t,n,r,s,a);if(i)for(const e of i)for(const i of e)i!==t&&expandBBox(this.#Xi,i,n,r,s,a);e||(this._pendingBBoxIdx=-1);return this}bboxToClipBoxDropOperation(t){if(this._pendingBBoxIdx===t){this._pendingBBoxIdx=-1;this.#Wi[0]=Math.max(this.#Wi[0],this.#Vi[0]);this.#Wi[1]=Math.max(this.#Wi[1],this.#Vi[1]);this.#Wi[2]=Math.min(this.#Wi[2],this.#Vi[2]);this.#Wi[3]=Math.min(this.#Wi[3],this.#Vi[3])}return this}take(){return new BBoxReader(this.#zi,this.#Xi)}takeDebugMetadata(){throw new Error("Unreachable")}recordSimpleData(t,e){return this}recordIncrementalData(t,e){return this}resetIncrementalData(t,e){return this}recordNamedData(t,e){return this}recordSimpleDataFromNamed(t,e,i){return this}recordFutureForcedDependency(t,e){return this}inheritSimpleDataAsFutureForcedDependencies(t){return this}inheritPendingDependenciesAsFutureForcedDependencies(){return this}recordCharacterBBox(t,e,i,n=1,r=0,s=0,a){return this}getSimpleIndex(t){}recordDependencies(t,e){return this}recordNamedDependency(t,e){return this}recordShowTextOperation(t,e=!1){return this}}class CanvasDependencyTracker{#Yi={__proto__:null};#Ji={__proto__:null,transform:[],moveText:[],sameLineText:[],[pn]:[]};#Qi=new Map;#Zi=new Set;#tn=new Map;#en;#in;#nn;constructor(t,e=!1){this.#nn=t;if(e){this.#en=new Map;this.#in=(t,e)=>{ensureDebugMetadata(this.#en,e).dependencies.add(t)}}}get clipBox(){return this.#nn.clipBox}growOperationsCount(t){this.#nn.growOperationsCount(t)}save(t){this.#Yi={__proto__:this.#Yi};this.#Ji={__proto__:this.#Ji,transform:{__proto__:this.#Ji.transform},moveText:{__proto__:this.#Ji.moveText},sameLineText:{__proto__:this.#Ji.sameLineText},[pn]:{__proto__:this.#Ji[pn]}};this.#nn.save(t);return this}restore(t){this.#nn.restore(t,this.#in);const e=Object.getPrototypeOf(this.#Yi);if(null===e)return this;this.#Yi=e;this.#Ji=Object.getPrototypeOf(this.#Ji);return this}recordOpenMarker(t){this.#nn.recordOpenMarker(t,this.#in);return this}getOpenMarker(){return this.#nn.getOpenMarker()}recordCloseMarker(t){this.#nn.recordCloseMarker(t,this.#in);return this}beginMarkedContent(t){this.#nn.beginMarkedContent(t);return this}endMarkedContent(t){this.#nn.endMarkedContent(t,this.#in);return this}pushBaseTransform(t){this.#nn.pushBaseTransform(t);return this}popBaseTransform(){this.#nn.popBaseTransform();return this}recordSimpleData(t,e){this.#Yi[t]=e;return this}recordIncrementalData(t,e){this.#Ji[t].push(e);return this}resetIncrementalData(t,e){this.#Ji[t].length=0;return this}recordNamedData(t,e){this.#Qi.set(t,e);return this}recordSimpleDataFromNamed(t,e,i){this.#Yi[t]=this.#Qi.get(e)??i}recordFutureForcedDependency(t,e){this.recordIncrementalData(pn,e);return this}inheritSimpleDataAsFutureForcedDependencies(t){for(const e of t)e in this.#Yi&&this.recordFutureForcedDependency(e,this.#Yi[e]);return this}inheritPendingDependenciesAsFutureForcedDependencies(){for(const t of this.#Zi)this.recordFutureForcedDependency(pn,t);return this}resetBBox(t){this.#nn.resetBBox(t);return this}recordClipBox(t,e,i,n,r,s){this.#nn.recordClipBox(t,e,i,n,r,s);return this}recordBBox(t,e,i,n,r,s){this.#nn.recordBBox(t,e,i,n,r,s);return this}recordCharacterBBox(t,e,i,n=1,r=0,s=0,a){const o=i.bbox;let l,c;if(o){l=o[2]!==o[0]&&o[3]!==o[1]&&this.#tn.get(i);if(!1!==l){c=[0,0,0,0];Util.axialAlignedBoundingBox(o,i.fontMatrix,c);1===n&&0===r&&0===s||function scaleCharBBox(t,e,i,n,r){let s;if(t){if(t<0){s=r[0];r[0]=r[2];r[2]=s}r[0]*=t;r[2]*=t;if(e<0){s=r[1];r[1]=r[3];r[3]=s}r[1]*=e;r[3]*=e}else r.fill(0);r[0]+=i;r[1]+=n;r[2]+=i;r[3]+=n}(n,-n,r,s,c);if(l)return this.recordBBox(t,e,c[0],c[2],c[1],c[3])}}if(!a)return this.recordFullPageBBox(t);const h=a();if(o&&c&&void 0===l){l=c[0]<=r-h.actualBoundingBoxLeft&&c[2]>=r+h.actualBoundingBoxRight&&c[1]<=s-h.actualBoundingBoxAscent&&c[3]>=s+h.actualBoundingBoxDescent;this.#tn.set(i,l);if(l)return this.recordBBox(t,e,c[0],c[2],c[1],c[3])}return this.recordBBox(t,e,r-h.actualBoundingBoxLeft,r+h.actualBoundingBoxRight,s-h.actualBoundingBoxAscent,s+h.actualBoundingBoxDescent)}recordFullPageBBox(t){this.#nn.recordFullPageBBox(t);return this}getSimpleIndex(t){return this.#Yi[t]}recordDependencies(t,e){const i=this.#Zi,n=this.#Yi,r=this.#Ji;for(const t of e)t in this.#Yi?i.add(n[t]):t in r&&r[t].forEach(i.add,i);return this}recordNamedDependency(t,e){this.#Qi.has(e)&&this.#Zi.add(this.#Qi.get(e));return this}recordOperation(t,e=!1){this.recordDependencies(t,[pn]);if(this.#en){const e=ensureDebugMetadata(this.#en,t),{dependencies:i}=e;this.#Zi.forEach(i.add,i);this.#nn._savesStack.forEach(i.add,i);this.#nn._markedContentStack.forEach(i.add,i);i.delete(t);e.isRenderingOperation=!0}const i=!e&&t===this.#nn._pendingBBoxIdx;this.#nn.recordOperation(t,e,[this.#Zi,this.#nn._savesStack,this.#nn._markedContentStack]);i&&this.#Zi.clear();return this}recordShowTextOperation(t,e=!1){const i=Array.from(this.#Zi);this.recordOperation(t,e);this.recordIncrementalData("sameLineText",t);for(const t of i)this.recordIncrementalData("sameLineText",t);return this}bboxToClipBoxDropOperation(t,e=!1){const i=!e&&t===this.#nn._pendingBBoxIdx;this.#nn.bboxToClipBoxDropOperation(t);i&&this.#Zi.clear();return this}take(){this.#tn.clear();return this.#nn.take()}takeDebugMetadata(){return this.#en}}class CanvasNestedDependencyTracker{#rn;#sn;#an;#on=0;#ln=0;constructor(t,e,i){if(t instanceof CanvasNestedDependencyTracker&&t.#an===!!i)return t;this.#rn=t;this.#sn=e;this.#an=!!i}get clipBox(){return this.#rn.clipBox}growOperationsCount(){throw new Error("Unreachable")}save(t){this.#ln++;this.#rn.save(this.#sn);return this}restore(t){if(this.#ln>0){this.#rn.restore(this.#sn);this.#ln--}return this}recordOpenMarker(t){this.#on++;return this}getOpenMarker(){return this.#on>0?this.#sn:this.#rn.getOpenMarker()}recordCloseMarker(t){this.#on--;return this}beginMarkedContent(t){return this}endMarkedContent(t){return this}pushBaseTransform(t){this.#rn.pushBaseTransform(t);return this}popBaseTransform(){this.#rn.popBaseTransform();return this}recordSimpleData(t,e){this.#rn.recordSimpleData(t,this.#sn);return this}recordIncrementalData(t,e){this.#rn.recordIncrementalData(t,this.#sn);return this}resetIncrementalData(t,e){this.#rn.resetIncrementalData(t,this.#sn);return this}recordNamedData(t,e){return this}recordSimpleDataFromNamed(t,e,i){this.#rn.recordSimpleDataFromNamed(t,e,this.#sn);return this}recordFutureForcedDependency(t,e){this.#rn.recordFutureForcedDependency(t,this.#sn);return this}inheritSimpleDataAsFutureForcedDependencies(t){this.#rn.inheritSimpleDataAsFutureForcedDependencies(t);return this}inheritPendingDependenciesAsFutureForcedDependencies(){this.#rn.inheritPendingDependenciesAsFutureForcedDependencies();return this}resetBBox(t){this.#an||this.#rn.resetBBox(this.#sn);return this}recordClipBox(t,e,i,n,r,s){this.#an||this.#rn.recordClipBox(this.#sn,e,i,n,r,s);return this}recordBBox(t,e,i,n,r,s){this.#an||this.#rn.recordBBox(this.#sn,e,i,n,r,s);return this}recordCharacterBBox(t,e,i,n,r,s,a){this.#an||this.#rn.recordCharacterBBox(this.#sn,e,i,n,r,s,a);return this}recordFullPageBBox(t){this.#an||this.#rn.recordFullPageBBox(this.#sn);return this}getSimpleIndex(t){return this.#rn.getSimpleIndex(t)}recordDependencies(t,e){this.#rn.recordDependencies(this.#sn,e);return this}recordNamedDependency(t,e){this.#rn.recordNamedDependency(this.#sn,e);return this}recordOperation(t){this.#rn.recordOperation(this.#sn,!0);return this}recordShowTextOperation(t){this.#rn.recordShowTextOperation(this.#sn,!0);return this}bboxToClipBoxDropOperation(t){this.#an||this.#rn.bboxToClipBoxDropOperation(this.#sn,!0);return this}take(){throw new Error("Unreachable")}takeDebugMetadata(){throw new Error("Unreachable")}}const bn=["path","transform","filter","strokeColor","strokeAlpha","lineWidth","lineCap","lineJoin","miterLimit","dash"],yn=["path","transform","filter","fillColor","fillAlpha","globalCompositeOperation","SMask"],wn=["transform","SMask","filter","fillAlpha","strokeAlpha","globalCompositeOperation"],vn=["filter","fillColor","fillAlpha"],_n=["transform","leading","charSpacing","wordSpacing","hScale","textRise","moveText","textMatrix","font","fontObj","filter","fillColor","textRenderingMode","SMask","fillAlpha","strokeAlpha","globalCompositeOperation","sameLineText"],An=["transform"],xn=["transform","filter","fillColor"];class CanvasImagesTracker{#$i;#qi;#cn=4;#hn=0;#Gi=new CanvasImagesTracker.#dn(6*this.#cn);static#dn=FeatureTest.isFloat16ArraySupported?Float16Array:Float32Array;constructor(t){this.#$i=t.width;this.#qi=t.height}record(t,e,i,n){if(this.#hn===this.#cn){this.#cn*=2;const t=new CanvasImagesTracker.#dn(6*this.#cn);t.set(this.#Gi);this.#Gi=t}const r=getCurrentTransform(t);let s;if(n[0]!==1/0){const t=pi.slice();Util.axialAlignedBoundingBox([0,-i,e,0],r,t);const a=Util.intersect(n,t);if(!a)return;const[o,l,c,h]=a;if(o!==t[0]||l!==t[1]||c!==t[2]||h!==t[3]){const t=Math.atan2(r[1],r[0]),e=Math.abs(Math.sin(t)),i=Math.abs(Math.cos(t));if(e<1e-6||i<1e-6||Math.abs(e-i)<1e-6)s=[o,l,o,h,c,l];else{const t=c-o,n=h-l,r=e*e,a=i*i,d=i*e,u=a-r,p=(n*a-t*d)/u;s=[o+(n*d-t*r)/u,l,o,l+p,c,h-p]}}}if(!s){s=[0,-i,0,0,e,-i];Util.applyTransform(s,r,0);Util.applyTransform(s,r,2);Util.applyTransform(s,r,4)}s[0]/=this.#$i;s[1]/=this.#qi;s[2]/=this.#$i;s[3]/=this.#qi;s[4]/=this.#$i;s[5]/=this.#qi;this.#Gi.set(s,6*this.#hn);this.#hn++}take(){return this.#Gi.subarray(0,6*this.#hn)}}const En=/\p{Cc}/u;function serializeFontFamily(t){if(function isCSSString(t){const e=t[0];if(t.length<2||'"'!==e&&"'"!==e||t.at(-1)!==e)return!1;const i=t.length-1;for(let n=1;n<i;n++){const r=t[n];if(r===e||En.test(r))return!1;if("\\"===r&&(++n>=i||En.test(t[n])))return!1}return!0}(t))return t;return`"${t.replaceAll(/["\\\p{Cc}]/gu,t=>'"'===t||"\\"===t?`\\${t}`:`\\${t.codePointAt(0).toString(16)} `)}"`}class FontLoader{#un=new Set;#pn=new Set;#gn=null;constructor({ownerDocument:t=globalThis.document,styleElement:e=null}){this._document=t;this.styleElement=null;this.loadingRequests=[];this.loadTestFontId=0}addNativeFontFace(t){this.#un.add(t);this._document.fonts.add(t)}removeNativeFontFace(t){this.#un.delete(t);this._document.fonts.delete(t)}insertRule(t){const e=this.#fn();e.insertRule(t,e.cssRules.length)}#fn(){if(this.#gn)return this.#gn;const t=this._document.defaultView?.CSSStyleSheet||globalThis.CSSStyleSheet;if(!this.styleElement&&t){const{adoptedStyleSheets:e}=this._document;if(e){const i=new t;e.push(i);return this.#gn=i}}if(!this.styleElement){this.styleElement=this._document.createElement("style");this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement)}return this.#gn=this.styleElement.sheet}clear(){for(const t of this.#un)this._document.fonts.delete(t);this.#un.clear();this.#pn.clear();if(this.#gn){const{adoptedStyleSheets:t}=this._document;t?.includes(this.#gn)&&(this._document.adoptedStyleSheets=t.filter(t=>t!==this.#gn));this.#gn=null}this.styleElement?.remove();this.styleElement=null}async loadSystemFont({systemFontInfo:t,disableFontFace:e,_inspectFont:i}){if(t&&!this.#pn.has(t.loadedName)){util_assert(!e,"loadSystemFont shouldn't be called when `disableFontFace` is set.");if(this.isFontLoadingAPISupported){const{loadedName:e,src:n,style:r}=t,s=new FontFace(e,n,r);this.addNativeFontFace(s);try{await s.load();this.#pn.add(e);i?.(t)}catch{warn(`Cannot load system font: ${t.baseFontName}, installing it could help to improve PDF rendering.`);this.removeNativeFontFace(s)}return}unreachable("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(t){if(t.attached||t.missingFile&&!t.systemFontInfo)return;t.attached=!0;if(t.systemFontInfo){await this.loadSystemFont(t);return}if(this.isFontLoadingAPISupported){const e=t.createNativeFontFace();if(e){this.addNativeFontFace(e);try{await e.loaded}catch(i){warn(`Failed to load font '${e.family}': '${i}'.`);t.disableFontFace=!0;throw i}}return}const e=t.createFontFaceRule();if(e){this.insertRule(e);if(this.isSyncFontLoadingSupported)return;await this.#mn(t)}}get isFontLoadingAPISupported(){return util_shadow(this,"isFontLoadingAPISupported",!!this._document?.fonts)}get isSyncFontLoadingSupported(){return util_shadow(this,"isSyncFontLoadingSupported",ui||FeatureTest.platform.isFirefox)}#mn(t){const{loadingRequests:e}=this,{promise:i,resolve:n}=Promise.withResolvers(),r={done:!1,resolve:n};e.push(r);this._loadTestFont??=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");function int32(t,e){return t.charCodeAt(e)<<24|t.charCodeAt(e+1)<<16|t.charCodeAt(e+2)<<8|255&t.charCodeAt(e+3)}function spliceString(t,e,i,n){return t.substring(0,e)+n+t.substring(e+i)}let s,a;const o=this._document.createElement("canvas");o.width=1;o.height=1;const l=o.getContext("2d");let c=0;const h=`lt${Date.now()}${this.loadTestFontId++}`;let d=this._loadTestFont;d=spliceString(d,976,h.length,h);const u=1482184792;let p=int32(d,16);for(s=0,a=h.length-3;s<a;s+=4)p=p-u+int32(h,s)|0;s<h.length&&(p=p-u+int32(h+"XXX",s)|0);d=spliceString(d,16,4,function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)}(p));const g=`@font-face {font-family:"${h}";src:${`url(data:font/opentype;base64,${btoa(d)});`}}`;this.insertRule(g);const f=this._document.createElement("div");f.style.visibility="hidden";f.style.width=f.style.height="10px";f.style.position="absolute";f.style.top=f.style.left="0px";for(const e of[t.loadedName,h]){const t=this._document.createElement("span");t.textContent="Hi";t.style.fontFamily=e;f.append(t)}this._document.body.append(f);!function isFontReady(t,e){if(++c>30){warn("Load test font never loaded.");e();return}l.font="30px "+t;l.fillText(".",0,20);l.getImageData(0,0,1,1).data[3]>0?e():setTimeout(isFontReady.bind(null,t,e))}(h,()=>{f.remove();!function completeRequest(){util_assert(!r.done,"completeRequest() cannot be called twice.");r.done=!0;for(;e.length>0&&e[0].done;){const t=e.shift();setTimeout(t.resolve,0)}}()});return i}}class FontFaceObject{#bn=new Map;#yn;constructor(t,e=null,i,n){this.#yn=t;this._inspectFont=e;i&&(this.charProcOperatorList=i);n&&Object.assign(this,n)}createNativeFontFace(){const{data:t}=this;if(!t||this.disableFontFace)return null;let e;if(this.cssFontInfo){const i={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(i.style=`oblique ${this.cssFontInfo.italicAngle}deg`);e=new FontFace(serializeFontFamily(this.cssFontInfo.fontFamily),t,i)}else e=new FontFace(this.loadedName,t,{});this._inspectFont?.(this);return e}createFontFaceRule(){const{data:t}=this;if(!t||this.disableFontFace)return null;const e=`url(data:${this.mimetype};base64,${t.toBase64()});`;let i;if(this.cssFontInfo){let t=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(t+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`);i=`@font-face {font-family:${serializeFontFamily(this.cssFontInfo.fontFamily)};${t}src:${e}}`}else i=`@font-face {font-family:"${this.loadedName}";src:${e}}`;this._inspectFont?.(this,e);return i}getPathGenerator(t,e){let i=this.#bn.get(e);if(i)return i;const n=`${this.loadedName}_path_${e}`;let r;try{r=t.get(n)}catch(t){warn(`getPathGenerator - ignoring character: "${t}".`)}i=makePathFromDrawOPS(r?.path);this.fontExtraProperties||t.delete(n);this.#bn.set(e,i);return i}get black(){return this.#yn.black}get bold(){return this.#yn.bold}get disableFontFace(){return this.#yn.disableFontFace}set disableFontFace(t){util_shadow(this,"disableFontFace",!!t)}get fontExtraProperties(){return this.#yn.fontExtraProperties}get isInvalidPDFjsFont(){return this.#yn.isInvalidPDFjsFont}get isType3Font(){return this.#yn.isType3Font}get italic(){return this.#yn.italic}get missingFile(){return this.#yn.missingFile}get remeasure(){return this.#yn.remeasure}get vertical(){return this.#yn.vertical}get bbox(){return this.#yn.bbox}get fontMatrix(){return this.#yn.fontMatrix}get fallbackName(){return this.#yn.fallbackName}get loadedName(){return this.#yn.loadedName}get mimetype(){return this.missingFile?null:"font/opentype"}get data(){return this.#yn.data}clearData(){this.#yn.clearData()}get cssFontInfo(){return this.#yn.cssFontInfo}get systemFontInfo(){return this.#yn.systemFontInfo}}class CSS_FONT_INFO{static strings=["fontFamily","fontWeight","italicAngle"]}class SYSTEM_FONT_INFO{static strings=["css","loadedName","baseFontName","src"]}class FONT_INFO{static bools=["black","bold","disableFontFace","fontExtraProperties","isInvalidPDFjsFont","isType3Font","italic","missingFile","remeasure","vertical"];static strings=["fallbackName","loadedName"];static OFFSET_BBOX=Math.ceil(2*this.bools.length/8);static OFFSET_FONT_MATRIX=this.OFFSET_BBOX+1+8;static OFFSET_STRINGS=this.OFFSET_FONT_MATRIX+1+48}class PATTERN_INFO{static KIND=0;static HAS_BBOX=1;static HAS_BACKGROUND=2;static SHADING_TYPE=3;static N_COORD=4;static N_COLOR=8;static N_STOP=12;static N_FIGURES=16}class InfoUtils{static get decoder(){return util_shadow(this,"decoder",new TextDecoder)}static get encoder(){return util_shadow(this,"encoder",new TextEncoder)}}function readString(t,e,i,n=0){const{decoder:r}=InfoUtils;for(let t=0;t<i;t++)n+=e.getUint32(n)+4;const s=e.getUint32(n);return r.decode(new Uint8Array(t,n+4,s))}class CssFontInfo{#wn;#vn;constructor(t){this.#wn=t;this.#vn=new DataView(t)}#_n(t){util_assert(t<CSS_FONT_INFO.strings.length,"Invalid string index");return readString(this.#wn,this.#vn,t)}get fontFamily(){return util_shadow(this,"fontFamily",this.#_n(0))}get fontWeight(){return util_shadow(this,"fontWeight",this.#_n(1))}get italicAngle(){return util_shadow(this,"italicAngle",this.#_n(2))}}class SystemFontInfo{#wn;#vn;constructor(t){this.#wn=t;this.#vn=new DataView(t)}#_n(t){util_assert(t<SYSTEM_FONT_INFO.strings.length,"Invalid string index");return readString(this.#wn,this.#vn,t,4)}get css(){return util_shadow(this,"css",this.#_n(0))}get loadedName(){return util_shadow(this,"loadedName",this.#_n(1))}get baseFontName(){return util_shadow(this,"baseFontName",this.#_n(2))}get src(){return util_shadow(this,"src",this.#_n(3))}get style(){let t=0;t+=4+this.#vn.getUint32(t);return util_shadow(this,"style",{style:readString(this.#wn,this.#vn,0,t),weight:readString(this.#wn,this.#vn,1,t)})}}class FontInfo{#wn;#vn;constructor(t){this.#wn=t;this.#vn=new DataView(t)}#An(t){util_assert(t<FONT_INFO.bools.length,"Invalid boolean index");const e=Math.floor(t/4),i=2*t%8,n=this.#vn.getUint8(e)>>i&3;return 0===n?void 0:2===n}get black(){return util_shadow(this,"black",this.#An(0))}get bold(){return util_shadow(this,"bold",this.#An(1))}get disableFontFace(){return util_shadow(this,"disableFontFace",this.#An(2))}get fontExtraProperties(){return util_shadow(this,"fontExtraProperties",this.#An(3))}get isInvalidPDFjsFont(){return util_shadow(this,"isInvalidPDFjsFont",this.#An(4))}get isType3Font(){return util_shadow(this,"isType3Font",this.#An(5))}get italic(){return util_shadow(this,"italic",this.#An(6))}get missingFile(){return util_shadow(this,"missingFile",this.#An(7))}get remeasure(){return util_shadow(this,"remeasure",this.#An(8))}get vertical(){return util_shadow(this,"vertical",this.#An(9))}#xn(t,e,i,n){const r=this.#vn.getUint8(t++);if(0===r)return;util_assert(r===e,"Invalid array length.");const s=new Array(r);for(let e=0;e<r;e++){s[e]=this.#vn[i](t,!0);t+=n}return s}get bbox(){return util_shadow(this,"bbox",this.#xn(FONT_INFO.OFFSET_BBOX,4,"getInt16",2))}get fontMatrix(){return util_shadow(this,"fontMatrix",this.#xn(FONT_INFO.OFFSET_FONT_MATRIX,6,"getFloat64",8))}#_n(t){util_assert(t<FONT_INFO.strings.length,"Invalid string index");return readString(this.#wn,this.#vn,t,FONT_INFO.OFFSET_STRINGS+4)}get fallbackName(){return util_shadow(this,"fallbackName",this.#_n(0))}get loadedName(){return util_shadow(this,"loadedName",this.#_n(1))}#En(t){let e=FONT_INFO.OFFSET_STRINGS;for(let i=0;i<=t;i++)e+=4+this.#vn.getUint32(e);return{offset:e,length:this.#vn.getUint32(e)}}get data(){const{offset:t,length:e}=this.#En(2);return e?new Uint8Array(this.#wn,t+4,e):void 0}clearData(){const{offset:t,length:e}=this.#En(2);if(e){this.#vn.setUint32(t,0);this.#wn=new Uint8Array(this.#wn,0,t+4).slice().buffer;this.#vn=new DataView(this.#wn)}}get cssFontInfo(){const{offset:t,length:e}=this.#En(1);let i=null;if(e){const n=new Uint8Array(this.#wn,t+4,e).slice();i=new CssFontInfo(n.buffer)}return util_shadow(this,"cssFontInfo",i)}get systemFontInfo(){const{offset:t,length:e}=this.#En(0);let i=null;if(e){const n=new Uint8Array(this.#wn,t+4,e).slice();i=new SystemFontInfo(n.buffer)}return util_shadow(this,"systemFontInfo",i)}}class PatternInfo{constructor(t){this.buffer=t;this.view=new DataView(t);this.data=new Uint8Array(t)}getIR(){const t=this.view,e=this.data[PATTERN_INFO.KIND],i=!!this.data[PATTERN_INFO.HAS_BBOX],n=!!this.data[PATTERN_INFO.HAS_BACKGROUND],r=t.getUint32(PATTERN_INFO.N_COORD,!0),s=t.getUint32(PATTERN_INFO.N_COLOR,!0),a=t.getUint32(PATTERN_INFO.N_STOP,!0);let o=20;const l=new Float32Array(this.buffer,o,2*r);o+=8*r;const c=new Uint8Array(this.buffer,o,4*s);o+=4*s;const h=[];for(let e=0;e<a;++e){const e=t.getFloat32(o,!0);o+=4;const i=t.getUint32(o,!0);o+=4;h.push([e,`#${i.toString(16).padStart(6,"0")}`])}let d=null;if(i){d=[];for(let e=0;e<4;++e){d.push(t.getFloat32(o,!0));o+=4}}let u=null;if(n){u=new Uint8Array(this.buffer,o,3);o+=3}if(1===e)return["RadialAxial","axial",d,h,[l[0],l[1]],[l[2],l[3]],null,null];if(2===e)return["RadialAxial","radial",d,h,[l[0],l[1]],[l[3],l[4]],l[2],l[5]];if(3===e){const t=this.data[PATTERN_INFO.SHADING_TYPE];let e=null;if(l.length>0){e=pi.slice();for(let t=0,i=l.length;t<i;t+=2)Util.pointBoundingBox(l[t],l[t+1],e)}return["Mesh",t,l,c,r,e,d,u]}throw new Error(`Unsupported pattern kind: ${e}`)}}class FontPathInfo{#wn;constructor(t){this.#wn=t}get path(){return FeatureTest.isFloat16ArraySupported?new Float16Array(this.#wn):new Float32Array(this.#wn)}}function getFactoryUrlProp(t){if("string"!=typeof t)return null;if(t.endsWith("/"))return t;throw new Error(`Invalid factory url: "${t}" must include trailing slash.`)}const isRefProxy=t=>"object"==typeof t&&Number.isInteger(t?.num)&&t.num>=0&&Number.isInteger(t?.gen)&&t.gen>=0,Cn=function _isValidExplicitDest(t,e,i){if(!Array.isArray(i)||i.length<2)return!1;const[n,r,...s]=i;if(!t(n)&&!Number.isInteger(n))return!1;if(!e(r))return!1;const a=s.length;let o=!0;switch(r.name){case"XYZ":if(a<2||a>3)return!1;break;case"Fit":case"FitB":return 0===a;case"FitH":case"FitBH":case"FitV":case"FitBV":if(a>1)return!1;break;case"FitR":if(4!==a)return!1;o=!1;break;default:return!1}for(const t of s)if(!("number"==typeof t||o&&null===t))return!1;return!0}.bind(null,isRefProxy,t=>"object"==typeof t&&"string"==typeof t?.name);class LoopbackPort{#Cn=new Map;#Sn=Promise.resolve();postMessage(t,e){const i={data:structuredClone(t,e?{transfer:e}:null)};this.#Sn.then(()=>{for(const[t]of this.#Cn)t.call(this,i)})}addEventListener(t,e,i=null){let n=null;if(i?.signal instanceof AbortSignal){const{signal:r}=i;if(r.aborted){warn("LoopbackPort - cannot use an `aborted` signal.");return}const onAbort=()=>this.removeEventListener(t,e);n=()=>r.removeEventListener("abort",onAbort);r.addEventListener("abort",onAbort)}this.#Cn.set(e,n)}removeEventListener(t,e){const i=this.#Cn.get(e);i?.();this.#Cn.delete(e)}terminate(){for(const[,t]of this.#Cn)t?.();this.#Cn.clear()}}Xe();const Sn=1,Tn=2,kn=1,Dn=2,Pn=3,Mn=4,In=5,Fn=6,On=7,Rn=8;function onFn(){}function wrapReason(t){if(t instanceof AbortException||t instanceof InvalidPDFException||t instanceof PasswordException||t instanceof ResponseException||t instanceof UnknownErrorException)return t;t instanceof Error||"object"==typeof t&&null!==t||unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(t.name){case"AbortException":return new AbortException(t.message);case"InvalidPDFException":return new InvalidPDFException(t.message);case"PasswordException":return new PasswordException(t.message,t.code);case"ResponseException":return new ResponseException(t.message,t.status,t.missing);case"UnknownErrorException":return new UnknownErrorException(t.message,t.details)}return new UnknownErrorException(t.message,t.toString())}class MessageHandler{#Tn=new Map;#kn=new Map;#Dn=1;#Pn;#Mn=new AbortController;#In;#Fn=new Map;#On=1;#Rn=new Map;#Bn;constructor(t,e,i){this.#In=t;this.#Bn=e;this.#Pn=i;i.addEventListener("message",this.#Ln.bind(this),{signal:this.#Mn.signal})}#Ln({data:t}){if(t.targetName!==this.#In)return;if(t.stream){this.#Nn(t);return}if(t.callback){const{callbackId:e,callback:i}=t,n=this.#kn.get(e);if(!n)throw new Error(`Cannot resolve callback ${e}`);this.#kn.delete(e);if(i===Sn)n.resolve(t.data);else{if(i!==Tn)throw new Error("Unexpected callback case");n.reject(wrapReason(t.reason))}return}const e=this.#Tn.get(t.action);if(!e)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const i=this.#In,n=t.sourceName,r=this.#Pn;Promise.try(e,t.data).then(e=>{r.postMessage({sourceName:i,targetName:n,callback:Sn,callbackId:t.callbackId,data:e})},e=>{r.postMessage({sourceName:i,targetName:n,callback:Tn,callbackId:t.callbackId,reason:wrapReason(e)})});return}t.streamId?this.#Un(t):e(t.data)}on(t,e){const i=this.#Tn;if(i.has(t))throw new Error(`There is already a "${t}" handler.`);i.set(t,e)}send(t,e,i){this.#Pn.postMessage({sourceName:this.#In,targetName:this.#Bn,action:t,data:e},i)}sendWithPromise(t,e,i){const n=this.#Dn++,r=Promise.withResolvers();this.#kn.set(n,r);try{this.#Pn.postMessage({sourceName:this.#In,targetName:this.#Bn,action:t,callbackId:n,data:e},i)}catch(t){r.reject(t)}return r.promise}sendWithStream(t,e,i,n){const r=this.#On++,s=this.#In,a=this.#Bn,o=this.#Pn;return new ReadableStream({start:i=>{const l=Promise.withResolvers();this.#Fn.set(r,{controller:i,startCall:l,pullCall:null,cancelCall:null,isClosed:!1});o.postMessage({sourceName:s,targetName:a,action:t,streamId:r,data:e,desiredSize:i.desiredSize},n);return l.promise},pull:t=>{const e=Promise.withResolvers();this.#Fn.get(r).pullCall=e;o.postMessage({sourceName:s,targetName:a,stream:Fn,streamId:r,desiredSize:t.desiredSize});return e.promise},cancel:t=>{util_assert(t instanceof Error,"cancel must have a valid reason");const e=Promise.withResolvers();this.#Fn.get(r).cancelCall=e;this.#Fn.get(r).isClosed=!0;o.postMessage({sourceName:s,targetName:a,stream:kn,streamId:r,reason:wrapReason(t)});return e.promise}},i)}#Un(t){const e=t.streamId,i=this.#In,n=t.sourceName,r=this.#Pn,s=this.#Rn,a=this.#Tn.get(t.action),o={enqueue(t,s=1,a){if(this.isCancelled)return;const o=this.desiredSize;this.desiredSize-=s;if(o>0&&this.desiredSize<=0){this.sinkCapability=Promise.withResolvers();this.ready=this.sinkCapability.promise}r.postMessage({sourceName:i,targetName:n,stream:Mn,streamId:e,chunk:t},a)},close(){if(!this.isCancelled){this.isCancelled=!0;r.postMessage({sourceName:i,targetName:n,stream:Pn,streamId:e});s.delete(e)}},error(t){util_assert(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;r.postMessage({sourceName:i,targetName:n,stream:In,streamId:e,reason:wrapReason(t)})}},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};o.sinkCapability.resolve();o.ready=o.sinkCapability.promise;s.set(e,o);Promise.try(a,t.data,o).then(()=>{r.postMessage({sourceName:i,targetName:n,stream:Rn,streamId:e,success:!0})},t=>{r.postMessage({sourceName:i,targetName:n,stream:Rn,streamId:e,reason:wrapReason(t)})})}#Nn(t){const e=t.streamId,i=this.#In,n=t.sourceName,r=this.#Pn,s=this.#Fn.get(e),a=this.#Rn.get(e);switch(t.stream){case Rn:t.success?s.startCall.resolve():s.startCall.reject(wrapReason(t.reason));break;case On:t.success?s.pullCall.resolve():s.pullCall.reject(wrapReason(t.reason));break;case Fn:if(!a){r.postMessage({sourceName:i,targetName:n,stream:On,streamId:e,success:!0});break}a.desiredSize<=0&&t.desiredSize>0&&a.sinkCapability.resolve();a.desiredSize=t.desiredSize;Promise.try(a.onPull||onFn).then(()=>{r.postMessage({sourceName:i,targetName:n,stream:On,streamId:e,success:!0})},t=>{r.postMessage({sourceName:i,targetName:n,stream:On,streamId:e,reason:wrapReason(t)})});break;case Mn:util_assert(s,"enqueue should have stream controller");if(s.isClosed)break;s.controller.enqueue(t.chunk);break;case Pn:util_assert(s,"close should have stream controller");if(s.isClosed)break;s.isClosed=!0;s.controller.close();this.#Hn(s,e);break;case In:util_assert(s,"error should have stream controller");s.controller.error(wrapReason(t.reason));this.#Hn(s,e);break;case Dn:t.success?s.cancelCall.resolve():s.cancelCall.reject(wrapReason(t.reason));this.#Hn(s,e);break;case kn:if(!a)break;const o=wrapReason(t.reason);Promise.try(a.onCancel||onFn,o).then(()=>{r.postMessage({sourceName:i,targetName:n,stream:Dn,streamId:e,success:!0})},t=>{r.postMessage({sourceName:i,targetName:n,stream:Dn,streamId:e,reason:wrapReason(t)})});a.sinkCapability.reject(o);a.isCancelled=!0;this.#Rn.delete(e);break;default:throw new Error("Unexpected stream case")}}async#Hn(t,e){await Promise.allSettled([t.startCall?.promise,t.pullCall?.promise,t.cancelCall?.promise]);this.#Fn.delete(e)}destroy(){this.#Mn?.abort();this.#Mn=null}}class BaseBinaryDataFactory{#zn=Object.freeze({cMapUrl:"CMap",standardFontDataUrl:"font",wasmUrl:"wasm"});constructor({cMapUrl:t=null,standardFontDataUrl:e=null,wasmUrl:i=null}){this.cMapUrl=t;this.standardFontDataUrl=e;this.wasmUrl=i}async fetch({kind:t,filename:e}){switch(t){case"cMapUrl":case"standardFontDataUrl":case"wasmUrl":break;default:unreachable(`Not implemented: ${t}`)}const i=this[t];if(!i)throw new Error(`Ensure that the \`${t}\` API parameter is provided.`);const n=`${i}${e}`;return this._fetch(n,t).catch(e=>{throw new Error(`Unable to load ${this.#zn[t]} data at: ${n}`)})}async _fetch(t,e){unreachable("Abstract method `_fetch` called.")}}class DOMBinaryDataFactory extends BaseBinaryDataFactory{async _fetch(t,e){const i="cMapUrl"!==e||t.endsWith(".bcmap")?"bytes":"text",n=await fetchData(t,i);return n instanceof Uint8Array?n:stringToBytes(n)}}class BaseCanvasFactory{#Gn=!1;constructor({enableHWA:t=!1}){this.#Gn=t}create(t,e){if(t<=0||e<=0)throw new Error("Invalid canvas size");const i=this._createCanvas(t,e);return{canvas:i,context:i.getContext("2d",{willReadFrequently:!this.#Gn})}}reset({canvas:t},e,i){if(!t)throw new Error("Canvas is not specified");if(e<=0||i<=0)throw new Error("Invalid canvas size");t.width=e;t.height=i}destroy(t){const{canvas:e}=t;if(!e)throw new Error("Canvas is not specified");e.width=e.height=0;t.canvas=null;t.context=null}_createCanvas(t,e){unreachable("Abstract method `_createCanvas` called.")}}class DOMCanvasFactory extends BaseCanvasFactory{constructor({ownerDocument:t=globalThis.document,enableHWA:e=!1}){super({enableHWA:e});this._document=t}_createCanvas(t,e){const i=this._document.createElement("canvas");i.width=t;i.height=e;return i}}class BaseFilterFactory{addFilter(t){return"none"}addHCMFilter(t,e){return"none"}addAlphaFilter(t){return"none"}addLuminosityFilter(t){return"none"}addKnockoutFilter(t=0){return"none"}addHighlightHCMFilter(t,e,i,n,r){return"none"}addSelectionHCMFilter(t,e){return"none"}addSelectionFilter(){return"none"}createSelectionStyle(t=null){return null}destroy(t=!1){}}class DOMFilterFactory extends BaseFilterFactory{#jn;#Wn;#Vn;#$n;#qn;#Xn;#T=0;constructor({docId:t,ownerDocument:e=globalThis.document}){super();this.#$n=t;this.#qn=e}get#D(){return this.#Wn||=new Map}get#Kn(){return this.#Xn||=new Map}get#Yn(){if(!this.#Vn){const t=this.#qn.createElement("div"),{style:e}=t;e.colorScheme="only light";e.visibility="hidden";e.contain="strict";e.width=e.height=0;e.position="absolute";e.top=e.left=0;e.zIndex=-1;const i=this.#qn.createElementNS(mi,"svg");i.setAttribute("width",0);i.setAttribute("height",0);this.#Vn=this.#qn.createElementNS(mi,"defs");t.append(i);i.append(this.#Vn);this.#qn.body.append(t)}return this.#Vn}#Jn(t){const toTable=t=>t&&Array.from(t,t=>t/255).join(",");if(1===t.length){const e=toTable(t[0]);return[e,e,e]}const[e,i,n]=t;return[toTable(e),toTable(i),toTable(n)]}#Qn(t){if(void 0===this.#jn){this.#jn="";const t=this.#qn.URL;t!==this.#qn.baseURI&&(isDataScheme(t)?warn('#createUrl: ignore "data:"-URL for performance reasons.'):this.#jn=updateUrlHash(t,""))}return`url(${this.#jn}#${t})`}addFilter(t){if(!t)return"none";let e=this.#D.get(t);if(e)return e;const[i,n,r]=this.#Jn(t),s=1===t.length?i:`${i}${n}${r}`;e=this.#D.get(s);if(e){this.#D.set(t,e);return e}const a=`g_${this.#$n}_transfer_map_${this.#T++}`,o=this.#Qn(a);this.#D.set(t,o);this.#D.set(s,o);const l=this.#Zn(a);this.#tr(i,n,r,l);return o}addHCMFilter(t,e){const i=`${t}-${e}`,n="base";let r=this.#Kn.get(n);if(r?.key===i)return r.url;if(r){r.filter?.remove();r.key=i;r.url="none";r.filter=null}else{r={key:i,url:"none",filter:null};this.#Kn.set(n,r)}if(!t||!e)return r.url;const s=this.#er(t);t=Util.makeHexColor(...s);const a=this.#er(e);e=Util.makeHexColor(...a);this.#ir();if("#000000"===t&&"#ffffff"===e||t===e)return r.url;const o=Array.from({length:256},(t,e)=>computeLuminance(e/255)).join(","),l=`g_${this.#$n}_hcm_filter`,c=r.filter=this.#Zn(l);this.#tr(o,o,o,c);this.#nr(c);const getSteps=(t,e)=>{const i=s[t]/255,n=a[t]/255,r=new Array(e+1);for(let t=0;t<=e;t++)r[t]=i+t/e*(n-i);return r.join(",")};this.#tr(getSteps(0,5),getSteps(1,5),getSteps(2,5),c);r.url=this.#Qn(l);return r.url}addSelectionHCMFilter(t,e){return this.addHighlightHCMFilter("selection",t,e,"HighlightText","Highlight")}addSelectionFilter(){return this.addHighlightHCMFilter("selection_default","black","white","HighlightText","Highlight")}createSelectionStyle(t=null){const e=t?this.addSelectionHCMFilter(t.foreground,t.background):this.addSelectionFilter();return"none"!==e&&FeatureTest.platform.isFirefox?{"backdrop-filter":e,"background-color":"transparent"}:null}addAlphaFilter(t){let e=this.#D.get(t);if(e)return e;const[i]=this.#Jn([t]),n=`alpha_${i}`;e=this.#D.get(n);if(e){this.#D.set(t,e);return e}const r=`g_${this.#$n}_alpha_map_${this.#T++}`,s=this.#Qn(r);this.#D.set(t,s);this.#D.set(n,s);const a=this.#Zn(r);this.#rr(i,a);return s}addLuminosityFilter(t){let e,i,n=this.#D.get(t||"luminosity");if(n)return n;if(t){[e]=this.#Jn([t]);i=`luminosity_${e}`}else i="luminosity";n=this.#D.get(i);if(n){this.#D.set(t,n);return n}const r=`g_${this.#$n}_luminosity_map_${this.#T++}`,s=this.#Qn(r);this.#D.set(t,s);this.#D.set(i,s);const a=this.#Zn(r);this.#sr(a);t&&this.#rr(e,a);return s}addKnockoutFilter(t=0){const e=t>0?Math.min(1/t,1e6):1e6,i=`knockout_${e}`,n=this.#D.get(i);if(n)return n;const r=`g_${this.#$n}_knockout_filter_${this.#T++}`,s=this.#Qn(r);this.#D.set(i,s);const a=this.#Zn(r),o=this.#qn.createElementNS(mi,"feComponentTransfer");a.append(o);const l=this.#qn.createElementNS(mi,"feFuncA");l.setAttribute("type","linear");l.setAttribute("slope",`${e}`);l.setAttribute("intercept","0");o.append(l);return s}addHighlightHCMFilter(t,e,i,n,r){const s=`${e}-${i}-${n}-${r}`;let a=this.#Kn.get(t);if(a?.key===s)return a.url;if(a){a.filter?.remove();a.key=s;a.url="none";a.filter=null}else{a={key:s,url:"none",filter:null};this.#Kn.set(t,a)}if(!e||!i)return a.url;const[o,l]=[e,i].map(this.#er.bind(this));let c=Math.round(.2126*o[0]+.7152*o[1]+.0722*o[2]),h=Math.round(.2126*l[0]+.7152*l[1]+.0722*l[2]),[d,u]=[n,r].map(this.#ar.bind(this));h<c&&([c,h,d,u]=[h,c,u,d]);this.#ir();const getSteps=(t,e,i)=>{const n=new Array(256),r=(h-c)/i,s=t/255,a=(e-t)/(255*i);let o=0;for(let t=0;t<=i;t++){const e=Math.round(c+t*r),i=s+t*a;for(let t=o;t<=e;t++)n[t]=i;o=e+1}for(let t=o;t<256;t++)n[t]=n[o-1];return n.join(",")},p=`g_${this.#$n}_hcm_${t}_filter`,g=a.filter=this.#Zn(p);this.#nr(g);this.#tr(getSteps(d[0],u[0],5),getSteps(d[1],u[1],5),getSteps(d[2],u[2],5),g);a.url=this.#Qn(p);return a.url}destroy(t=!1){if(!t||!this.#Xn?.size){this.#Vn?.parentNode.parentNode.remove();this.#Vn=null;this.#Wn?.clear();this.#Wn=null;this.#Xn?.clear();this.#Xn=null;this.#T=0}}#sr(t){const e=this.#qn.createElementNS(mi,"feColorMatrix");e.setAttribute("type","matrix");e.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0");t.append(e)}#nr(t){const e=this.#qn.createElementNS(mi,"feColorMatrix");e.setAttribute("type","matrix");e.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0");t.append(e)}#Zn(t){const e=this.#qn.createElementNS(mi,"filter");e.setAttribute("color-interpolation-filters","sRGB");e.setAttribute("id",t);this.#Yn.append(e);return e}#or(t,e,i){if(!i)return;const n=this.#qn.createElementNS(mi,e);n.setAttribute("type","discrete");n.setAttribute("tableValues",i);t.append(n)}#tr(t,e,i,n){const r=this.#qn.createElementNS(mi,"feComponentTransfer");n.append(r);this.#or(r,"feFuncR",t);this.#or(r,"feFuncG",e);this.#or(r,"feFuncB",i)}#rr(t,e){const i=this.#qn.createElementNS(mi,"feComponentTransfer");e.append(i);this.#or(i,"feFuncA",t)}#er(t){this.#Yn.style.color="CanvasText";this.#Yn.style.backgroundColor=t;return getRGB(getComputedStyle(this.#Yn).getPropertyValue("background-color"))}#lr(t){this.#Yn.style.color="CanvasText";this.#Yn.style.backgroundColor=t;return getRGBA(getComputedStyle(this.#Yn).getPropertyValue("background-color"))}#ir(){this.#Yn.style.color="";this.#Yn.style.backgroundColor=""}#ar(t){const[e,i,n,r]=this.#lr(t);if(1===r)return[e,i,n];const[s,a,o]=this.#er("Canvas");return[blend(e,s,r),blend(i,a,r),blend(n,o,r)]}}function blend(t,e,i){return Math.round(i*t+(1-i)*e)}if(ui){let t;try{const e=process.getBuiltinModule("module").createRequire(import.meta.url);try{t=e("@napi-rs/canvas")}catch(t){warn(`Cannot load "@napi-rs/canvas" package: "${t}".`)}}catch(t){warn(`Cannot access the \`require\` function: "${t}".`)}globalThis.DOMMatrix||(t?.DOMMatrix?globalThis.DOMMatrix=t.DOMMatrix:warn("Cannot polyfill `DOMMatrix`, rendering may be broken."));globalThis.Path2D||(t?.Path2D?globalThis.Path2D=t.Path2D:warn("Cannot polyfill `Path2D`, rendering may be broken."));globalThis.navigator?.language||(globalThis.navigator={language:"en-US",platform:"",userAgent:""})}class NodeFilterFactory extends BaseFilterFactory{}class NodeCanvasFactory extends BaseCanvasFactory{_createCanvas(t,e){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(t,e)}}class NodeBinaryDataFactory extends BaseBinaryDataFactory{async _fetch(t,e){return async function node_utils_fetchData(t){const e=process.getBuiltinModule("fs/promises"),i=await e.readFile(t);return new Uint8Array(i)}(t)}}function convertBlackAndWhiteToRGBA({src:t,srcPos:e=0,dest:i,width:n,height:r,nonBlackColor:s=4294967295,inverseDecode:a=!1}){const o=FeatureTest.isLittleEndian?4278190080:255,[l,c]=a?[s,o]:[o,s],h=n>>3,d=7&n,u=l^c,p=t.length;i=new Uint32Array(i.buffer);let g=0;for(let n=0;n<r;++n){for(const n=e+h;e<n;++e,g+=8){const n=t[e];i[g]=l^-(n>>7&1)&u;i[g+1]=l^-(n>>6&1)&u;i[g+2]=l^-(n>>5&1)&u;i[g+3]=l^-(n>>4&1)&u;i[g+4]=l^-(n>>3&1)&u;i[g+5]=l^-(n>>2&1)&u;i[g+6]=l^-(n>>1&1)&u;i[g+7]=l^-(1&n)&u}if(0===d)continue;const n=e<p?t[e++]:255;for(let t=0;t<d;++t,++g)i[g]=l^-(n>>7-t&1)&u}return{srcPos:e,destPos:g}}function convertRGBToRGBA({src:t,srcPos:e=0,dest:i,destPos:n=0,width:r,height:s}){let a=0;const o=r*s*3,l=o>>2,c=new Uint32Array(t.buffer,e,l),h=FeatureTest.isLittleEndian?4278190080:255;if(FeatureTest.isLittleEndian){for(;a<l-2;a+=3,n+=4){const t=c[a],e=c[a+1],r=c[a+2];i[n]=t|h;i[n+1]=t>>>24|e<<8|h;i[n+2]=e>>>16|r<<16|h;i[n+3]=r>>>8|h}for(let r=e+4*a,s=e+o;r<s;r+=3)i[n++]=t[r]|t[r+1]<<8|t[r+2]<<16|h}else{for(;a<l-2;a+=3,n+=4){const t=c[a],e=c[a+1],r=c[a+2];i[n]=t|h;i[n+1]=t<<24|e>>>8|h;i[n+2]=e<<16|r>>>16|h;i[n+3]=r<<8|h}for(let r=e+4*a,s=e+o;r<s;r+=3)i[n++]=t[r]<<24|t[r+1]<<16|t[r+2]<<8|h}return{srcPos:e+o,destPos:n}}const Bn=new class WebGPU{#cr=null;#hr=null;#dr=null;#ur=null;async#pr(){if(!globalThis.navigator?.gpu)return!1;try{const t=await navigator.gpu.requestAdapter();if(!t)return!1;this.#ur=navigator.gpu.getPreferredCanvasFormat();this.#hr=await t.requestDevice();return!0}catch{return!1}}init(){return this.#cr||=this.#pr()}get isReady(){return null!==this.#hr}loadMeshShader(){if(!this.#hr||this.#dr)return;const t=this.#hr.createShaderModule({code:"\nstruct Uniforms {\n offsetX : f32,\n offsetY : f32,\n scaleX : f32,\n scaleY : f32,\n paddedWidth : f32,\n paddedHeight : f32,\n borderSize : f32,\n _pad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n\nstruct VertexInput {\n @location(0) position : vec2<f32>,\n @location(1) color : vec4<f32>,\n};\n\nstruct VertexOutput {\n @builtin(position) position : vec4<f32>,\n @location(0) color : vec3<f32>,\n};\n\n@vertex\nfn vs_main(in : VertexInput) -> VertexOutput {\n var out : VertexOutput;\n let cx = (in.position.x + u.offsetX) * u.scaleX;\n let cy = (in.position.y + u.offsetY) * u.scaleY;\n out.position = vec4<f32>(\n ((cx + u.borderSize) / u.paddedWidth) * 2.0 - 1.0,\n 1.0 - ((cy + u.borderSize) / u.paddedHeight) * 2.0,\n 0.0,\n 1.0\n );\n out.color = in.color.rgb;\n return out;\n}\n\n@fragment\nfn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {\n return vec4<f32>(in.color, 1.0);\n}\n"});this.#dr=this.#hr.createRenderPipeline({layout:"auto",vertex:{module:t,entryPoint:"vs_main",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"unorm8x4"}]}]},fragment:{module:t,entryPoint:"fs_main",targets:[{format:this.#ur}]},primitive:{topology:"triangle-list"}})}draw(t,e,i,n,r,s,a,o){this.loadMeshShader();const l=this.#hr,{offsetX:c,offsetY:h,scaleX:d,scaleY:u}=n,p=l.createBuffer({size:Math.max(t.byteLength,4),usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});t.byteLength>0&&l.queue.writeBuffer(p,0,t);const g=l.createBuffer({size:Math.max(e.byteLength,4),usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.byteLength>0&&l.queue.writeBuffer(g,0,e);const f=l.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});l.queue.writeBuffer(f,0,new Float32Array([c,h,d,u,s,a,o,0]));const m=l.createBindGroup({layout:this.#dr.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:f}}]}),b=new OffscreenCanvas(s,a),y=b.getContext("webgpu");y.configure({device:l,format:this.#ur,alphaMode:r?"opaque":"premultiplied"});const w=r?{r:r[0]/255,g:r[1]/255,b:r[2]/255,a:1}:{r:0,g:0,b:0,a:0},v=l.createCommandEncoder(),_=v.beginRenderPass({colorAttachments:[{view:y.getCurrentTexture().createView(),clearValue:w,loadOp:"clear",storeOp:"store"}]});if(i>0){_.setPipeline(this.#dr);_.setBindGroup(0,m);_.setVertexBuffer(0,p);_.setVertexBuffer(1,g);_.draw(i)}_.end();l.queue.submit([v.finish()]);p.destroy();g.destroy();f.destroy();return b.transferToImageBitmap()}};const Ln="Fill",Nn="Stroke",Un="Shading";function applyBoundingBox(t,e){if(!e)return;const i=e[2]-e[0],n=e[3]-e[1],r=new Path2D;r.rect(e[0],e[1],i,n);t.clip(r)}class BaseShadingPattern{matrix=null;isModifyingCurrentTransform(){return!1}getPattern(){unreachable("Abstract method `getPattern` called.")}}class RadialAxialShadingPattern extends BaseShadingPattern{constructor(t){super();this._type=t[1];this._bbox=t[2];this._colorStops=t[3];this._p0=t[4];this._p1=t[5];this._r0=t[6];this._r1=t[7]}isOriginBased(){return 0===this._p0[0]&&0===this._p0[1]&&(!this.isRadial()||0===this._p1[0]&&0===this._p1[1])}isRadial(){return"radial"===this._type}areConic(){if(!this.isRadial())return!1;const t=Math.hypot(this._p0[0]-this._p1[0],this._p0[1]-this._p1[1]);return t+this._r1>this._r0&&t+this._r0>this._r1}_createGradient(t,e=null){let i,n=this._p0,r=this._p1;if(e){n=n.slice();r=r.slice();Util.applyTransform(n,e);Util.applyTransform(r,e)}if("axial"===this._type)i=t.createLinearGradient(n[0],n[1],r[0],r[1]);else if("radial"===this._type){let s=this._r0,a=this._r1;if(e){const t=new Float32Array(2);Util.singularValueDecompose2dScale(e,t);s*=t[0];a*=t[0]}i=t.createRadialGradient(n[0],n[1],s,r[0],r[1],a)}for(const t of this._colorStops)i.addColorStop(t[0],t[1]);return i}_createReversedGradient(t,e=null){let i=this._p1,n=this._p0;if(e){i=i.slice();n=n.slice();Util.applyTransform(i,e);Util.applyTransform(n,e)}let r=this._r1,s=this._r0;if(e){const t=new Float32Array(2);Util.singularValueDecompose2dScale(e,t);r*=t[0];s*=t[0]}const a=t.createRadialGradient(i[0],i[1],r,n[0],n[1],s),o=this._colorStops.map(([t,e])=>[1-t,e]).reverse();for(const[t,e]of o)a.addColorStop(t,e);return a}_createRasterPattern(t,e,i,n,r,s){const a=Math.ceil(n[2]-n[0])||1,o=Math.ceil(n[3]-n[1])||1,l=e.canvasFactory.create(a,o),c=l.context;c.clearRect(0,0,a,o);c.beginPath();c.rect(0,0,a,o);c.translate(-n[0],-n[1]);i=Util.transform(i,[1,0,0,1,n[0],n[1]]);c.transform(...r);applyBoundingBox(c,this._bbox);if(this.areConic()){c.fillStyle=this._createReversedGradient(c);c.fill()}c.fillStyle=this._createGradient(c);c.fill();s?.applyToCanvas(c);const h=t.createPattern(l.canvas,"no-repeat");e.canvasFactory.destroy(l);h.setTransform(new DOMMatrix(i));return h}getPattern(t,e,i,n){const r=e.current.transferMapsFallback;if(n===Nn||n===Ln){if(this.isOriginBased()&&!r){let n=Util.transform(i,e.baseTransform);this.matrix&&(n=Util.transform(n,this.matrix));const r=.001,s=Math.hypot(n[0],n[1]),a=Math.hypot(n[2],n[3]),o=(n[0]*n[2]+n[1]*n[3])/(s*a);if(Math.abs(o)<r){if(!this.isRadial())return this._createGradient(t,n);if(Math.abs(s-a)<r)return this._createGradient(t,n)}}const s=e.current.getClippedPathBoundingBox(n,getCurrentTransform(t))||[0,0,0,0],a=this.matrix?Util.transform(e.baseTransform,this.matrix):e.baseTransform;return this._createRasterPattern(t,e,i,s,a,r)}if(r&&i)return this._createRasterPattern(t,e,i,e.current.clipBox,getCurrentTransform(t),r);if(this.areConic()){t.save();applyBoundingBox(t,this._bbox);t.fillStyle=this._createReversedGradient(t);t.fillRect(-1e10,-1e10,2e10,2e10);t.restore()}applyBoundingBox(t,this._bbox);return this._createGradient(t)}}function drawTriangle(t,e,i,n,r,s,a,o){const l=e.coords,c=e.colors,h=t.data,d=4*t.width;let u;if(l[2*i+1]>l[2*n+1]){u=i;i=n;n=u;u=s;s=a;a=u}if(l[2*n+1]>l[2*r+1]){u=n;n=r;r=u;u=a;a=o;o=u}if(l[2*i+1]>l[2*n+1]){u=i;i=n;n=u;u=s;s=a;a=u}const p=(l[2*i]+e.offsetX)*e.scaleX,g=(l[2*i+1]+e.offsetY)*e.scaleY,f=(l[2*n]+e.offsetX)*e.scaleX,m=(l[2*n+1]+e.offsetY)*e.scaleY,b=(l[2*r]+e.offsetX)*e.scaleX,y=(l[2*r+1]+e.offsetY)*e.scaleY;if(g>=y)return;const w=c[4*s],v=c[4*s+1],_=c[4*s+2],A=c[4*a],x=c[4*a+1],E=c[4*a+2],C=c[4*o],S=c[4*o+1],T=c[4*o+2],k=Math.round(g),D=Math.round(y);let P,M,I,O,R,B,L,N;for(let t=k;t<=D;t++){if(t<m){const e=t<g?0:(g-t)/(g-m);P=p-(p-f)*e;M=w-(w-A)*e;I=v-(v-x)*e;O=_-(_-E)*e}else{let e;e=t>y?1:m===y?0:(m-t)/(m-y);P=f-(f-b)*e;M=A-(A-C)*e;I=x-(x-S)*e;O=E-(E-T)*e}let e;e=t<g?0:t>y?1:(g-t)/(g-y);R=p-(p-b)*e;B=w-(w-C)*e;L=v-(v-S)*e;N=_-(_-T)*e;const i=Math.round(Math.min(P,R)),n=Math.round(Math.max(P,R));let r=d*t+4*i;for(let t=i;t<=n;t++){e=(P-t)/(P-R);e<0?e=0:e>1&&(e=1);h[r++]=M-(M-B)*e|0;h[r++]=I-(I-L)*e|0;h[r++]=O-(O-N)*e|0;h[r++]=255}}}class MeshShadingPattern extends BaseShadingPattern{constructor(t){super();this._posData=t[2];this._colData=t[3];this._vertexCount=t[4];this._bounds=t[5];this._bbox=t[6];this._background=t[7];!function loadMeshShader(){Bn.loadMeshShader()}()}_createMeshCanvas(t,e,i,n=null){const r=Math.floor(this._bounds[0]),s=Math.floor(this._bounds[1]),a=Math.ceil(this._bounds[2])-r,o=Math.ceil(this._bounds[3])-s,l=Math.min(Math.ceil(Math.abs(a*t[0]*1.1)),3e3)||1,c=Math.min(Math.ceil(Math.abs(o*t[1]*1.1)),3e3)||1,h=a?a/l:1,d=o?o/c:1,u={coords:this._posData,colors:this._colData,offsetX:-r,offsetY:-s,scaleX:1/h,scaleY:1/d},p=l+4,g=c+4,f=i.create(p,g);if(function isGPUReady(){return Bn.isReady}()&&this._vertexCount>48)f.context.drawImage(function drawMeshWithGPU(t,e,i,n,r,s,a,o){return Bn.draw(t,e,i,n,r,s,a,o)}(this._posData,this._colData,this._vertexCount,u,e,p,g,2),0,0);else{const t=f.context.createImageData(l,c);if(e){const i=t.data;for(let t=0,n=i.length;t<n;t+=4){i[t]=e[0];i[t+1]=e[1];i[t+2]=e[2];i[t+3]=255}}for(let e=0,i=this._vertexCount;e<i;e+=3)drawTriangle(t,u,e,e+1,e+2,e,e+1,e+2);f.context.putImageData(t,2,2)}n?.applyToCanvas(f.context);return{canvas:f.canvas,offsetX:r-2*h,offsetY:s-2*d,scaleX:h,scaleY:d}}isModifyingCurrentTransform(){return!0}getPattern(t,e,i,n){applyBoundingBox(t,this._bbox);const r=new Float32Array(2);if(n===Un)Util.singularValueDecompose2dScale(getCurrentTransform(t),r);else if(this.matrix){Util.singularValueDecompose2dScale(this.matrix,r);const[t,i]=r;Util.singularValueDecompose2dScale(e.baseTransform,r);r[0]*=t;r[1]*=i}else Util.singularValueDecompose2dScale(e.baseTransform,r);const s=this._createMeshCanvas(r,n===Un?null:this._background,e.canvasFactory,e.current.transferMapsFallback);if(n!==Un){t.setTransform(...e.baseTransform);this.matrix&&t.transform(...this.matrix)}t.translate(s.offsetX,s.offsetY);t.scale(s.scaleX,s.scaleY);const a=t.createPattern(s.canvas,"no-repeat");e.canvasFactory.destroy(s);return a}}class DummyShadingPattern extends BaseShadingPattern{getPattern(){return"hotpink"}}const Hn=1,zn=2;class TilingPattern{static MAX_PATTERN_SIZE=3e3;constructor(t,e,i,n){this.color=t[1];this.operatorList=t[2];this.matrix=t[3];this.bbox=t[4];this.xstep=t[5];this.ystep=t[6];this.paintType=t[7];this.tilingType=t[8];this.needsIsolation=t[9]??!0;this.ctx=e;this.canvasGraphicsFactory=i;this.baseTransform=n;this.patternBaseMatrix=this.matrix?Util.transform(n,this.matrix):n}canSkipPatternCanvas([t,e,i,n]){const[r,s,a,o]=this.bbox,l=Math.abs(this.xstep),c=Math.abs(this.ystep);if(t>l+1e-6||e>c+1e-6)return null;const h=Math.floor((i-a)/l)+1,d=Math.ceil((i+t-r)/l)-1,u=Math.floor((n-o)/c)+1,p=Math.ceil((n+e-s)/c)-1;return d<=h&&p<=u?[h,u]:null}updatePatternDims(t,e){const i=pi.slice();Util.axialAlignedBoundingBox(t,Util.inverseTransform(this.patternBaseMatrix),i);e[0]=i[2]-i[0];e[1]=i[3]-i[1];e[2]=i[0];e[3]=i[1]}_renderTileCanvas(t,e,i,n){const[r,s,a,o]=this.bbox,l=t.canvasFactory.create(i.size,n.size),c=l.context,h=this.canvasGraphicsFactory.createCanvasGraphics(c,e);h.groupLevel=t.groupLevel;h.current.transferMapsFallback=t.current.transferMapsFallback;this.setFillAndStrokeStyleToContext(h,this.paintType,this.color);c.translate(-i.scale*r,-n.scale*s);h.transform(0,i.scale,0,0,n.scale,0,0);c.save();h.dependencyTracker?.save();this.clipBbox(h,r,s,a,o);h.baseTransform=getCurrentTransform(h.ctx);h.executeOperatorList(this.operatorList);h.endDrawing();h.dependencyTracker?.restore();c.restore();return l}_getCombinedScales(){const t=new Float32Array(2);Util.singularValueDecompose2dScale(this.matrix,t);const[e,i]=t;Util.singularValueDecompose2dScale(this.baseTransform,t);return[e*t[0],i*t[1]]}drawPattern(t,e,i=!1,[n,r],s){const[a,o,l,c]=this.bbox,h=t.dependencyTracker;h&&(t.dependencyTracker=new CanvasNestedDependencyTracker(h,s));t.save();i?t.ctx.clip(e,"evenodd"):t.ctx.clip(e);t.ctx.setTransform(...this.patternBaseMatrix);t.ctx.translate(n*this.xstep,r*this.ystep);if(this.needsIsolation||1!==t.ctx.globalAlpha||"source-over"!==t.ctx.globalCompositeOperation||t.inSMaskMode){const e=l-a,i=c-o,[n,r]=this._getCombinedScales(),h=this.getSizeAndScale(e,this.ctx.canvas.width,n),d=this.getSizeAndScale(i,this.ctx.canvas.height,r),u=this._renderTileCanvas(t,s,h,d);t.ctx.drawImage(u.canvas,a,o,e,i);t.canvasFactory.destroy(u)}else{this.setFillAndStrokeStyleToContext(t,this.paintType,this.color);this.clipBbox(t,a,o,l,c);t.baseTransformStack.push(t.baseTransform);t.baseTransform=getCurrentTransform(t.ctx);t.executeOperatorList(this.operatorList);t.baseTransform=t.baseTransformStack.pop()}t.restore();h&&(t.dependencyTracker=h)}createPatternCanvas(t,e){const[i,n,r,s]=this.bbox,a=r-i,o=s-n;let{xstep:l,ystep:c}=this;l=Math.abs(l);c=Math.abs(c);info("TilingType: "+this.tilingType);const[h,d]=this._getCombinedScales();let u=a,p=o,g=!1,f=!1;Math.ceil(l*h)>=Math.ceil(a*h)?u=l:g=!0;Math.ceil(c*d)>=Math.ceil(o*d)?p=c:f=!0;const m=this.getSizeAndScale(u,this.ctx.canvas.width,h),b=this.getSizeAndScale(p,this.ctx.canvas.height,d),y=this._renderTileCanvas(t,e,m,b);if(g||f){const e=y.canvas;g&&(u=l);f&&(p=c);const r=this.getSizeAndScale(u,this.ctx.canvas.width,h),s=this.getSizeAndScale(p,this.ctx.canvas.height,d),m=r.size,b=s.size,w=t.canvasFactory.create(m,b),v=w.context,_=g?Math.min(Math.floor(a/l),Math.ceil(e.width/m)):0,A=f?Math.min(Math.floor(o/c),Math.ceil(e.height/b)):0;let x=e,E=null;if(f){E=t.canvasFactory.create(e.width,b);const i=E.context;for(let t=A;t>=0;t--)i.drawImage(e,0,b*t,e.width,b,0,0,e.width,b);x=E.canvas}for(let t=_;t>=0;t--)v.drawImage(x,m*t,0,m,b,0,0,m,b);E&&t.canvasFactory.destroy(E);t.canvasFactory.destroy(y);return{canvas:w.canvas,canvasEntry:w,scaleX:r.scale,scaleY:s.scale,offsetX:i,offsetY:n}}return{canvas:y.canvas,canvasEntry:y,scaleX:m.scale,scaleY:b.scale,offsetX:i,offsetY:n}}getSizeAndScale(t,e,i){const n=Math.max(TilingPattern.MAX_PATTERN_SIZE,e);let r=Math.ceil(t*i);r>=n?r=n:i=r/t;return{scale:i,size:r}}clipBbox(t,e,i,n,r){const s=n-e,a=r-i,o=new Path2D;o.rect(e,i,s,a);Util.axialAlignedBoundingBox([e,i,n,r],getCurrentTransform(t.ctx),t.current.minMax);t.ctx.clip(o);t.current.updateClipFromPath()}setFillAndStrokeStyleToContext(t,e,i){switch(e){case Hn:i="#000000";break;case zn:break;default:throw new FormatError(`Unsupported paint type: ${e}`)}const{ctx:n,current:r}=t;r.patternFill=r.patternStroke=!1;n.fillStyle=n.strokeStyle=r.transferMapsFallback?.applyToColor(i)??i;r.fillColor=r.strokeColor=i}isModifyingCurrentTransform(){return!1}getPattern(t,e,i,n,r){const s=n!==Un?Util.transform(i,this.patternBaseMatrix):i,a=this.createPatternCanvas(e,r);let o=new DOMMatrix(s);o=o.translate(a.offsetX,a.offsetY);o=o.scale(1/a.scaleX,1/a.scaleY);const l=t.createPattern(a.canvas,"repeat");e.canvasFactory.destroy(a.canvasEntry);l.setTransform(o);return l}}const Gn=16,jn=new Float32Array(2);function mirrorContextOperations(t,e){if(t._removeMirroring)throw new Error("Context is already forwarding operations.");const i=new Map;for(const n of["save","restore","rotate","scale","translate","transform","setTransform","resetTransform","clip","moveTo","lineTo","bezierCurveTo","quadraticCurveTo","arc","arcTo","ellipse","rect","roundRect","closePath","beginPath"]){const r=t[n];if("function"==typeof r&&"function"==typeof e[n]){i.set(n,r);t[n]=function(...t){e[n](...t);return r.apply(this,t)}}}t._removeMirroring=()=>{for(const[e,n]of i)t[e]=n;delete t._removeMirroring}}function drawImageAtIntegerCoords(t,e,i,n,r,s,a,o,l,c){const[h,d,u,p,g,f]=getCurrentTransform(t);if(0===d&&0===u){const m=a*h+g,b=Math.round(m),y=o*p+f,w=Math.round(y),v=(a+l)*h+g,_=Math.abs(Math.round(v)-b)||1,A=(o+c)*p+f,x=Math.abs(Math.round(A)-w)||1;t.setTransform(Math.sign(h),0,0,Math.sign(p),b,w);t.drawImage(e,i,n,r,s,0,0,_,x);t.setTransform(h,d,u,p,g,f);return[_,x]}if(0===h&&0===p){const m=o*u+g,b=Math.round(m),y=a*d+f,w=Math.round(y),v=(o+c)*u+g,_=Math.abs(Math.round(v)-b)||1,A=(a+l)*d+f,x=Math.abs(Math.round(A)-w)||1;t.setTransform(0,Math.sign(d),Math.sign(u),0,b,w);t.drawImage(e,i,n,r,s,0,0,x,_);t.setTransform(h,d,u,p,g,f);return[x,_]}t.drawImage(e,i,n,r,s,a,o,l,c);return[Math.hypot(h,d)*l,Math.hypot(u,p)*c]}class CanvasExtraState{alphaIsShape=!1;fontSize=0;fontSizeScale=1;textMatrix=null;textMatrixScale=1;fontMatrix=fi;leading=0;x=0;y=0;lineX=0;lineY=0;charSpacing=0;wordSpacing=0;textHScale=1;textRenderingMode=Mi;textRise=0;fillColor="#000000";strokeColor="#000000";tilingPatternDims=null;patternFill=!1;patternStroke=!1;fillAlpha=1;strokeAlpha=1;lineWidth=1;activeSMask=null;transferMaps="none";transferMapsFallback=null;minMax=gi.slice();constructor(t,e){this.clipBox=new Float32Array([0,0,t,e])}clone(){const t=Object.create(this);t.clipBox=this.clipBox.slice();t.minMax=this.minMax.slice();t.tilingPatternDims=this.tilingPatternDims?.slice();return t}getPathBoundingBox(t=Ln,e=null){const i=this.minMax.slice();if(t===Nn){e||unreachable("Stroke bounding box must include transform.");Util.singularValueDecompose2dScale(e,jn);const t=jn[0]*this.lineWidth/2,n=jn[1]*this.lineWidth/2;i[0]-=t;i[1]-=n;i[2]+=t;i[3]+=n}return i}updateClipFromPath(){const t=Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}isEmptyClip(){return this.minMax[0]===1/0}startNewPathAndClipBox(t){this.clipBox.set(t,0);this.minMax.set(gi,0)}getClippedPathBoundingBox(t=Ln,e=null){return Util.intersect(this.clipBox,this.getPathBoundingBox(t,e))}}function putBinaryImageData(t,e){const{width:i,height:n,kind:r}=e,s=n%Gn,a=(n-s)/Gn,o=0===s?a:a+1,l=t.createImageData(i,Gn);let c=0;const h=e.data,d=l.data;let u;if(r===Li.GRAYSCALE_1BPP)for(u=0;u<o;u++){({srcPos:c}=convertBlackAndWhiteToRGBA({src:h,srcPos:c,dest:d,width:i,height:u<a?Gn:s}));t.putImageData(l,0,u*Gn)}else if(r===Li.RGBA_32BPP){let e=0,n=i*Gn*4;for(u=0;u<a;u++){d.set(h.subarray(c,c+n));c+=n;t.putImageData(l,0,e);e+=Gn}if(u<o){n=i*s*4;d.set(h.subarray(c,c+n));t.putImageData(l,0,e)}}else{if(r!==Li.RGB_24BPP)throw new Error(`bad image kind: ${r}`);for(u=0;u<o;u++){({srcPos:c}=convertRGBToRGBA({src:h,srcPos:c,dest:new Uint32Array(d.buffer),width:i,height:u<a?Gn:s}));t.putImageData(l,0,u*Gn)}}}function putBinaryImageMask(t,e){if(e.bitmap){t.drawImage(e.bitmap,0,0);return}const{width:i,height:n}=e,r=n%Gn,s=(n-r)/Gn,a=0===r?s:s+1,o=t.createImageData(i,Gn);let l=0;const c=e.data,h=o.data;for(let e=0;e<a;e++){({srcPos:l}=convertBlackAndWhiteToRGBA({src:c,srcPos:l,dest:h,width:i,height:e<s?Gn:r,nonBlackColor:0}));t.putImageData(o,0,e*Gn)}}function copyCtxState(t,e){const i=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font","filter"];for(const n of i)void 0!==t[n]&&(e[n]=t[n]);if(void 0!==t.setLineDash){e.setLineDash(t.getLineDash());e.lineDashOffset=t.lineDashOffset}}function resetCtxToDefault(t){t.strokeStyle=t.fillStyle="#000000";t.fillRule="nonzero";t.globalAlpha=1;t.lineWidth=1;t.lineCap="butt";t.lineJoin="miter";t.miterLimit=10;t.globalCompositeOperation="source-over";t.font="10px sans-serif";if(void 0!==t.setLineDash){t.setLineDash([]);t.lineDashOffset=0}const{filter:e}=t;"none"!==e&&""!==e&&(t.filter="none")}class TransferMapsFallback{#gr;constructor(t){const[e,i=e,n=e]=t,{identityMap:r}=TransferMapsFallback;this.#gr=[e||r,i||r,n||r]}static get identityMap(){return util_shadow(this,"identityMap",Uint8Array.from({length:256},(t,e)=>e))}applyToColor(t){if("string"!=typeof t||!t.startsWith("#"))return t;const[e,i,n]=getRGBA(t),[r,s,a]=this.#gr;return Util.makeHexColor(r[e],s[i],a[n])}applyToImageData({data:t}){const[e,i,n]=this.#gr;for(let r=0,s=t.length;r<s;r+=4){t[r]=e[t[r]];t[r+1]=i[t[r+1]];t[r+2]=n[t[r+2]]}}applyToCanvas(t){const{width:e,height:i}=t.canvas,n=t.getImageData(0,0,e,i);this.applyToImageData(n);t.putImageData(n,0,0)}}function getImageSmoothingEnabled(t,e){if(e)return!0;Util.singularValueDecompose2dScale(t,jn);const i=Math.fround(OutputScale.pixelRatio*PixelsPerInch.PDF_TO_CSS_UNITS);return jn[0]<=i&&jn[1]<=i}const Wn=["butt","round","square"],Vn=["miter","round","bevel"],$n={},qn={};class CanvasGraphics{static#fr=null;#mr=0;#br=0;#yr=null;#wr=null;#vr=null;#_r=null;#Ar=1;#xr;#Er=null;#Cr=[];constructor(t,e,i,n,r,{optionalContentConfig:s,markedContentStack:a=null},o,l,c,h){this.ctx=t;this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height);this.stateStack=[];this.pendingClip=null;this.pendingEOFill=!1;this.commonObjs=e;this.objs=i;this.canvasFactory=n;this.filterFactory=r;this.groupStack=[];this.baseTransform=null;this.baseTransformStack=[];this.groupLevel=0;this.smaskStack=[];this.tempSMask=null;this.smaskGroupCanvases=[];this.smaskPreparedEntry=null;this.smaskPreparedFor=null;this.smaskPreparedOffsetX=0;this.smaskPreparedOffsetY=0;this.smaskPreparedOOBAlpha=null;this.suspendedCtx=null;this.contentVisible=!0;this.markedContentStack=a||[];this.optionalContentConfig=s;this.cachedPatterns=new Map;this.annotationCanvasMap=o;this.viewportScale=1;this.outputScaleX=1;this.outputScaleY=1;this.pageColors=l;this._cachedScaleForStroking=[-1,0];this._cachedBitmapsMap=new Map;this.dependencyTracker=c??null;this.imagesTracker=h??null}getObject(t,e,i=null){if("string"==typeof e){this.dependencyTracker?.recordNamedDependency(t,e);return e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e)}return i}beginDrawing({transform:t,viewport:e,transparency:i=!1,background:n=null}){const r=this.ctx.canvas.width,s=this.ctx.canvas.height,a=this.ctx.fillStyle;this.ctx.fillStyle=n||"#ffffff";this.ctx.fillRect(0,0,r,s);this.ctx.fillStyle=a;if(i){const t=this.transparentCanvasEntry=this.canvasFactory.create(r,s);this.compositeCtx=this.ctx;({canvas:this.transparentCanvas,context:this.ctx}=t);this.ctx.save();this.ctx.transform(...getCurrentTransform(this.compositeCtx))}this.ctx.save();resetCtxToDefault(this.ctx);if(t){this.ctx.transform(...t);this.outputScaleX=t[0];this.outputScaleY=t[3]}this.ctx.transform(...e.transform);this.viewportScale=e.scale;this.baseTransform=getCurrentTransform(this.ctx)}executeOperatorList(t,e,i,n,r){const s=t.argsArray,a=t.fnArray;let o=e||0;const l=s.length;if(l===o)return o;const c=l-o>10&&"function"==typeof i,h=c?Date.now()+15:0;let d=0;const u=this.commonObjs,p=this.objs;let g,f;for(;;){if(void 0!==n){if(o===n.nextBreakPoint){n.breakIt(o,i);return o}if(n.shouldSkip(o)){if(++o===l)return o;continue}}if(!r||r(o,t)){g=a[o];f=s[o]??null;if(g!==Vi.dependency)null===f?this[g](o):this[g](o,...f);else for(const t of f){this.dependencyTracker?.recordNamedData(t,o);const e=t.startsWith("g_")?u:p;if(!e.has(t)){e.get(t,i);return o}}}o++;if(o===l)return o;if(c&&++d>10){if(Date.now()>h){i();return o}d=0}}}#Sr(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null;this.ctx.restore();if(this.transparentCanvas){this.ctx=this.compositeCtx;this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.drawImage(this.transparentCanvas,0,0);this.ctx.restore();this.canvasFactory.destroy(this.transparentCanvasEntry);this.transparentCanvas=null;this.transparentCanvasEntry=null}}endDrawing(){this.#Sr();for(const t of this.smaskGroupCanvases)this.canvasFactory.destroy(t);this.smaskGroupCanvases.length=0;this._clearPreparedSMask();this.tempSMask=null;this.smaskStack.length=0;for(const t of this.#Cr)this.#Tr(t);this.#Cr.length=0;this.#yr=null;this.#wr=null;this.#vr=null;this.#_r=null;this.#Ar=1;this.#Er=null;this.#br=0;this.#mr=0;this.cachedPatterns.clear();for(const t of this._cachedBitmapsMap.values()){for(const e of t.values())"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&(e.width=e.height=0);t.clear()}this._cachedBitmapsMap.clear();this.#kr()}#kr(){if(this.pageColors){const t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==t){const e=this.ctx.filter;this.ctx.filter=t;this.ctx.drawImage(this.ctx.canvas,0,0);this.ctx.filter=e}}}_scaleImage(t,e){const i=t.width??t.displayWidth,n=t.height??t.displayHeight,r=[];let s=Math.max(Math.hypot(e[0],e[1]),1),a=Math.max(Math.hypot(e[2],e[3]),1),o=i,l=n;for(;s>2&&o>1||a>2&&l>1;){let t=o,e=l;if(s>2&&o>1){t=Math.ceil(o/2);s/=o/t}if(a>2&&l>1){e=Math.ceil(l/2);a/=l/e}r.push({newWidth:t,newHeight:e});o=t;l=e}if(0===r.length)return{img:t,paintWidth:i,paintHeight:n,tmpCanvas:null};if(1===r.length){const{newWidth:e,newHeight:s}=r[0],a=this.canvasFactory.create(e,s);a.context.drawImage(t,0,0,i,n,0,0,e,s);return{img:a.canvas,paintWidth:e,paintHeight:s,tmpCanvas:a}}let c=this.canvasFactory.create(1,1),h=this.canvasFactory.create(1,1),d=i,u=n,p=t;for(const{newWidth:t,newHeight:e}of r){this.canvasFactory.reset(h,t,e);h.context.drawImage(p,0,0,d,u,0,0,t,e);[c,h]=[h,c];p=c.canvas;d=t;u=e}this.canvasFactory.destroy(h);return{img:c.canvas,paintWidth:d,paintHeight:u,tmpCanvas:c}}_createMaskCanvas(t,e){const i=this.ctx,{width:n,height:r}=e,s=this.current.patternFill,a=s?this.current.fillColor:i.fillStyle,o=getCurrentTransform(i);let l,c,h,d;if((e.bitmap||e.data)&&e.count>1){const i=e.bitmap||e.data.buffer;c=JSON.stringify(s?o:[o.slice(0,4),a]);l=this._cachedBitmapsMap.getOrInsertComputed(i,makeMap);const n=l.get(c);if(n&&!s){const e=Math.round(Math.min(o[0],o[2])+o[4]),i=Math.round(Math.min(o[1],o[3])+o[5]);this.dependencyTracker?.recordDependencies(t,xn);return{canvas:n,offsetX:e,offsetY:i}}h=n}if(!h){d=this.canvasFactory.create(n,r);putBinaryImageMask(d.context,e)}let u=Util.transform(o,[1/n,0,0,-1/r,0,0]);u=Util.transform(u,[1,0,0,1,0,-r]);const p=gi.slice();Util.axialAlignedBoundingBox([0,0,n,r],u,p);const[g,f,m,b]=p,y=Math.round(m-g)||1,w=Math.round(b-f)||1,v=this.canvasFactory.create(y,w),_=v.context,A=g,x=f;_.translate(-A,-x);_.transform(...u);let E=null;if(!h){const t=this._scaleImage(d.canvas,getCurrentTransformInverse(_));h=t.img;E=t.tmpCanvas;if(h!==d.canvas){this.canvasFactory.destroy(d);d=null}if(l&&s){l.set(c,h);E=null;d=null}}_.imageSmoothingEnabled=getImageSmoothingEnabled(getCurrentTransform(_),e.interpolate);drawImageAtIntegerCoords(_,h,0,0,h.width,h.height,0,0,n,r);E&&this.canvasFactory.destroy(E);d&&this.canvasFactory.destroy(d);_.globalCompositeOperation="source-in";const C=Util.transform(getCurrentTransformInverse(_),[1,0,0,1,-A,-x]);_.fillStyle=s?a.getPattern(i,this,C,Ln,t):a;_.fillRect(0,0,n,r);l&&!s&&l.set(c,v.canvas);this.dependencyTracker?.recordDependencies(t,xn);return{canvas:v.canvas,canvasEntry:l&&!s?null:v,offsetX:Math.round(A),offsetY:Math.round(x)}}setLineWidth(t,e){this.dependencyTracker?.recordSimpleData("lineWidth",t);e!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1);this.current.lineWidth=e;this.ctx.lineWidth=e}setLineCap(t,e){this.dependencyTracker?.recordSimpleData("lineCap",t);this.ctx.lineCap=Wn[e]}setLineJoin(t,e){this.dependencyTracker?.recordSimpleData("lineJoin",t);this.ctx.lineJoin=Vn[e]}setMiterLimit(t,e){this.dependencyTracker?.recordSimpleData("miterLimit",t);this.ctx.miterLimit=e}setDash(t,e,i){this.dependencyTracker?.recordSimpleData("dash",t);const n=this.ctx;if(void 0!==n.setLineDash){n.setLineDash(e);n.lineDashOffset=i}}setRenderingIntent(t,e){}setFlatness(t,e){}setGState(t,e){for(const[i,n]of e)switch(i){case"LW":this.setLineWidth(t,n);break;case"LC":this.setLineCap(t,n);break;case"LJ":this.setLineJoin(t,n);break;case"ML":this.setMiterLimit(t,n);break;case"D":this.setDash(t,n[0],n[1]);break;case"RI":this.setRenderingIntent(t,n);break;case"FL":this.setFlatness(t,n);break;case"Font":this.setFont(t,n[0],n[1]);break;case"CA":this.dependencyTracker?.recordSimpleData("strokeAlpha",t);this.current.strokeAlpha=n;break;case"ca":this.dependencyTracker?.recordSimpleData("fillAlpha",t);this.ctx.globalAlpha=this.current.fillAlpha=n;break;case"BM":this.dependencyTracker?.recordSimpleData("globalCompositeOperation",t);this.ctx.globalCompositeOperation=n;break;case"SMask":this.dependencyTracker?.recordSimpleData("SMask",t);this.current.activeSMask=n?this.tempSMask:null;this.current.activeSMask&&(this.current.activeSMask.blendMode=this.ctx.globalCompositeOperation);this.tempSMask=null;this.checkSMaskState(t);break;case"TR":{this.dependencyTracker?.recordSimpleData("filter",t);let e=this.filterFactory.addFilter(n);this.ctx.filter=e;let i=null;if(n&&("none"===e||!FeatureTest.isCanvasFilterSupported||"none"===this.ctx.filter||""===this.ctx.filter)){this.ctx.filter=e="none";i=new TransferMapsFallback(n)}this.current.transferMaps=e;if(i||this.current.transferMapsFallback){this.current.transferMapsFallback=i;this.current.patternFill||(this.ctx.fillStyle=this.#Dr(this.current.fillColor));this.current.patternStroke||(this.ctx.strokeStyle=this.#Dr(this.current.strokeColor))}break}}}get inSMaskMode(){return!!this.suspendedCtx}_clearPreparedSMask(){if(this.smaskPreparedEntry){this.canvasFactory.destroy(this.smaskPreparedEntry);this.smaskPreparedEntry=null}this.smaskPreparedFor=null;this.smaskPreparedOffsetX=0;this.smaskPreparedOffsetY=0;this.smaskPreparedOOBAlpha=null}_ensurePreparedSMask(t){if(t!==this.smaskPreparedFor){this._clearPreparedSMask();this._prepareSMaskCanvas(t)}}checkSMaskState(t){const e=this.inSMaskMode;this.current.activeSMask&&!e?this.beginSMaskMode(t):!this.current.activeSMask&&e?this.endSMaskMode():this.current.activeSMask&&e&&this._ensurePreparedSMask(this.current.activeSMask)}_prepareSMaskCanvas(t){const{canvas:e,subtype:i,backdrop:n,transferMap:r}=t,s="Luminosity"===i||"Alpha"===i&&r;if(!(s||"Luminosity"===i&&n)){this.smaskPreparedFor=t;return}let a;if("Luminosity"===i&&n){const[t,e,i]=getRGBA(n),s=Math.round(.3*t+.59*e+.11*i);a=r?.[s]??s}else a=r?.[0]??0;const{width:o,height:l}=this.ctx.canvas,c=o*l<4*(e.width*e.height),h=s?{url:"Alpha"===i?this.filterFactory.addAlphaFilter(r):this.filterFactory.addLuminosityFilter(r),subtype:i,transferMap:r}:null,d="Luminosity"===i?n:null;let u,p,g;if(c){u=this._bakeSMaskCanvas(e,t.offsetX,t.offsetY,o,l,d,h);p=0;g=0}else{u=this._bakeSMaskCanvas(e,0,0,e.width,e.height,d,h);p=t.offsetX;g=t.offsetY}this.smaskPreparedEntry=u;this.smaskPreparedFor=t;this.smaskPreparedOffsetX=p;this.smaskPreparedOffsetY=g;this.smaskPreparedOOBAlpha=c||0===a?null:a}_bakeSMaskCanvas(t,e,i,n,r,s,a){s||a||unreachable("_bakeSMaskCanvas with neither backdrop nor filter");const o=this.canvasFactory.create(n,r),l=o.context;l.drawImage(t,e,i);if(s){l.globalCompositeOperation="destination-atop";l.fillStyle=s;l.fillRect(0,0,n,r)}if(!a)return o;const c=this.canvasFactory.create(n,r),h=c.context;h.filter=a.url;const d=FeatureTest.isCanvasFilterSupported&&"none"!==h.filter&&""!==h.filter;h.drawImage(o.canvas,0,0);FeatureTest.isCanvasFilterSupported&&(h.filter="none");if(!d){const t=h.getImageData(0,0,n,r),{data:e}=t,{transferMap:i}=a;if("Luminosity"===a.subtype)for(let t=0,n=e.length;t<n;t+=4){const n=.3*e[t]+.59*e[t+1]+.11*e[t+2]+.5|0;e[t]=e[t+1]=e[t+2]=0;e[t+3]=i?.[n]??n}else for(let t=3,n=e.length;t<n;t+=4)e[t]=i[e[t]];h.putImageData(t,0,0)}this.canvasFactory.destroy(o);return c}beginSMaskMode(t){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const{width:e,height:i}=this.ctx.canvas,n=this.canvasFactory.create(e,i);this.smaskScratchCanvas=n;this.suspendedCtx=this.ctx;const r=this.ctx=n.context;r.setTransform(this.suspendedCtx.getTransform());copyCtxState(this.suspendedCtx,r);mirrorContextOperations(r,this.suspendedCtx);this._ensurePreparedSMask(this.current.activeSMask);this.setGState(t,[["BM","source-over"]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring();copyCtxState(this.ctx,this.suspendedCtx);this.ctx=this.suspendedCtx;this.suspendedCtx=null;this.canvasFactory.destroy(this.smaskScratchCanvas);this.smaskScratchCanvas=null;this._clearPreparedSMask()}#Pr(t,e=null,i=1){const{width:n,height:r}=t,s=e??this.canvasFactory.create(n,r),a=s.context,o=(i=Math.round(255*i)/255)<1;o&&void 0===this.#xr&&(this.#xr=FeatureTest.isCanvasFilterSupported?new Map:"none");let l="none";o&&this.#xr instanceof Map&&(l=this.#xr.getOrInsertComputed(i,()=>this.filterFactory.addKnockoutFilter(i)));if(!o||"none"!==l){if(e){a.save();a.setTransform(1,0,0,1,0,0);a.clearRect(0,0,n,r);a.restore()}a.filter=l;a.drawImage(t,0,0);a.filter="none";return s}const c=t.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,n,r),h=a.createImageData(n,r),d=c.data,u=h.data,p=i>0?1/i:1e6;for(let t=3,e=d.length;t<e;t+=4)u[t]=Math.min(Math.round(d[t]*p),255);a.putImageData(h,0,0);return s}#Mr(t,e,i,n){let r=t?.[e]??null;if(r&&(r.canvas.width!==i||r.canvas.height!==n)){this.canvasFactory.destroy(r);r=null}if(!r){r=this.canvasFactory.create(i,n);t&&(t[e]=r);return r}const s=r.context;s.save();s.setTransform(1,0,0,1,0,0);s.clearRect(0,0,i,n);s.restore();return r}#Ir(t,e,i={}){const{backdropCanvas:n=null,destTransform:r=[1,0,0,1,0,0],backdropOffset:s=[0,0],reuseMaskEntry:a=null,poolMeta:o=null,sourceAlpha:l=1,sourceFilter:c="none",knockoutAlpha:h=1}=i,{width:d,height:u}=e,p=this.#Pr(e,a,h),g=t.globalCompositeOperation;t.save();t.setTransform(...r);t.globalAlpha=1;FeatureTest.isCanvasFilterSupported&&(t.filter="none");t.globalCompositeOperation="destination-out";t.drawImage(p.canvas,0,0);if(n){const[e,i]=s,r=this.#Mr(o,"knockoutBackdropEntry",d,u),a=r.context;a.drawImage(n,e,i,d,u,0,0,d,u);a.globalCompositeOperation="destination-in";a.drawImage(p.canvas,0,0);a.globalCompositeOperation="source-over";t.globalCompositeOperation="destination-over";t.drawImage(r.canvas,0,0);o||this.canvasFactory.destroy(r)}t.globalCompositeOperation=g;t.globalAlpha=l;FeatureTest.isCanvasFilterSupported&&(t.filter=c??"none");t.drawImage(e,0,0);t.restore();a||this.canvasFactory.destroy(p)}#Fr(t=1){if(0===this.#mr||this.#br>0||!this.contentVisible)return!1;this.#br++;this.#Ar=t;const e=this.#Cr.at(-1),{canvas:i}=this.ctx,n=this.#Mr(e,"knockoutTempEntry",i.width,i.height);this.#yr=n;const r=n.context;r.save();r.setTransform(this.ctx.getTransform());copyCtxState(this.ctx,r);this.#_r=r.globalCompositeOperation;r.globalCompositeOperation="source-over";mirrorContextOperations(r,this.ctx);this.#Er=e;this.#wr=this.ctx;this.#vr=this.suspendedCtx;this.ctx=r;this.inSMaskMode&&(this.suspendedCtx=r);return!0}#Or(t){if(!t)return;const e=this.#yr,i=this.#wr,n=this.#vr,r=e.context;this.#yr=null;this.#wr=null;this.#vr=null;this.inSMaskMode&&this.suspendedCtx===r&&this.ctx!==r&&this.endSMaskMode();this.inSMaskMode&&(this.suspendedCtx=n);this.ctx._removeMirroring();this.ctx.globalCompositeOperation=this.#_r;this.#_r=null;copyCtxState(this.ctx,i);this.ctx=i;const s=this.#Er;this.#Er=null;const a=this.#Ar;this.#Ar=1;try{this.#Ir(n??i,e.canvas,{backdropCanvas:s?.backdropCtx?.canvas??null,backdropOffset:s?.backdropCtx?[s.offsetX,s.offsetY]:[0,0],reuseMaskEntry:s?.knockoutMaskEntry??null,poolMeta:s,knockoutAlpha:a})}finally{r.restore();this.#br--;s||this.canvasFactory.destroy(e)}}compose(t){if(!this.current.activeSMask)return;t=t?[Math.floor(t[0]),Math.floor(t[1]),Math.ceil(t[2]),Math.ceil(t[3])]:[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const e=this.current.activeSMask,i=this.suspendedCtx,n=this.#br>0&&i===this.ctx;this.composeSMask(n?null:i,e,this.ctx,t);if(!n){this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height);this.ctx.restore()}}composeSMask(t,e,i,n){const r=n[0],s=n[1],a=n[2]-r,o=n[3]-s;if(0===a||0===o)return;const l=this.smaskPreparedEntry;if(l){let t=r,n=s,c=a,h=o;const d=this.smaskPreparedOOBAlpha,u=null!==d;if(u){t=Math.max(r,e.offsetX);n=Math.max(s,e.offsetY);c=Math.min(r+a,e.offsetX+e.canvas.width)-t;h=Math.min(s+o,e.offsetY+e.canvas.height)-n}if(c>0&&h>0){const e=t-this.smaskPreparedOffsetX,r=n-this.smaskPreparedOffsetY;i.save();i.globalAlpha=1;i.setTransform(1,0,0,1,0,0);const s=new Path2D;s.rect(t,n,c,h);i.clip(s);i.globalCompositeOperation="destination-in";i.drawImage(l.canvas,e,r,c,h,t,n,c,h);i.restore()}u&&d<255&&this._applySMaskOOBAlpha(i,r,s,a,o,t,n,t+c,n+h,d)}else this.genericComposeSMask(e,i,a,o,r,s);if(t){t.save();t.globalAlpha=1;t.globalCompositeOperation=e.blendMode||"source-over";t.setTransform(1,0,0,1,0,0);t.drawImage(i.canvas,r,s,a,o,r,s,a,o);t.restore()}}_applySMaskOOBAlpha(t,e,i,n,r,s,a,o,l,c){const h=s<o&&a<l;if(h&&s===e&&a===i&&o===e+n&&l===i+r)return;const d=new Path2D;d.rect(e,i,n,r);h&&d.rect(s,a,o-s,l-a);t.save();t.globalAlpha=c/255;t.setTransform(1,0,0,1,0,0);t.clip(d,"evenodd");t.globalCompositeOperation="destination-in";t.fillStyle="#000000";t.fillRect(e,i,n,r);t.restore()}genericComposeSMask(t,e,i,n,r,s){const{context:a,offsetX:o,offsetY:l}=t;e.save();e.globalAlpha=1;e.setTransform(1,0,0,1,0,0);const c=new Path2D;c.rect(r,s,i,n);e.clip(c);e.globalCompositeOperation="destination-in";e.drawImage(a.canvas,r-o,s-l,i,n,r,s,i,n);e.restore()}save(t){this.inSMaskMode&&copyCtxState(this.ctx,this.suspendedCtx);this.ctx.save();const e=this.current;this.stateStack.push(e);this.current=e.clone();this.dependencyTracker?.save(t)}restore(t){this.dependencyTracker?.restore(t);if(0!==this.stateStack.length){this.current=this.stateStack.pop();this.ctx.restore();if(this.inSMaskMode){copyCtxState(this.suspendedCtx,this.ctx);this.ctx.setTransform(this.suspendedCtx.getTransform())}this.checkSMaskState(t);this.pendingClip=null;this._cachedScaleForStroking[0]=-1}else this.inSMaskMode&&this.endSMaskMode()}transform(t,e,i,n,r,s,a){this.dependencyTracker?.recordIncrementalData("transform",t);this.ctx.transform(e,i,n,r,s,a);this._cachedScaleForStroking[0]=-1}constructPath(t,e,i,n){let[r]=i;if(!n){r||=i[0]=new Path2D;e!==Vi.stroke&&e!==Vi.closeStroke&&(this.current.tilingPatternDims=null);this[e](t,r);return}if(null!==this.dependencyTracker){const i=e===Vi.stroke?this.current.lineWidth/2:0;this.dependencyTracker.resetBBox(t).recordBBox(t,this.ctx,n[0]-i,n[2]+i,n[1]-i,n[3]+i).recordDependencies(t,["transform"])}r instanceof Path2D||(r=i[0]=makePathFromDrawOPS(r));Util.axialAlignedBoundingBox(n,getCurrentTransform(this.ctx),this.current.minMax);const s=this.current.tilingPatternDims;if(s&&e!==Vi.stroke&&e!==Vi.closeStroke&&this.current.fillColor instanceof TilingPattern){const t=Util.intersect(this.current.clipBox,this.current.minMax);t?this.current.fillColor.updatePatternDims(t,s):this.current.tilingPatternDims=null}this[e](t,r);this._pathStartIdx=t}closePath(t){this.ctx.closePath()}stroke(t,e,i=!0){const n=i&&this.#Fr(this.current.strokeAlpha),r=this.ctx,s=this.current.strokeColor;r.globalAlpha=this.current.strokeAlpha;if(this.contentVisible)if("object"==typeof s&&s?.getPattern){const i=s.isModifyingCurrentTransform()?r.getTransform():null;r.save();r.strokeStyle=s.getPattern(r,this,getCurrentTransformInverse(r),Nn,t);if(i){const t=new Path2D;t.addPath(e,r.getTransform().invertSelf().multiplySelf(i));e=t}this.rescaleAndStroke(e,!1);r.restore()}else this.rescaleAndStroke(e,!0);this.dependencyTracker?.recordDependencies(t,bn);i&&this.consumePath(t,e,this.current.getClippedPathBoundingBox(Nn,getCurrentTransform(this.ctx)));r.globalAlpha=this.current.fillAlpha;this.#Or(n)}closeStroke(t,e){this.stroke(t,e)}fill(t,e,i=!0){const n=i&&this.#Fr(this.current.fillAlpha),r=this.ctx,s=this.current.fillColor,a=this.current.patternFill;let o=!1;const l=this.current.getClippedPathBoundingBox();this.dependencyTracker?.recordDependencies(t,yn);if(a){const a=this.current.tilingPatternDims,c=a&&s.canSkipPatternCanvas(a);if(c){s.drawPattern(this,e,this.pendingEOFill,c,t);this.pendingEOFill=!1;i&&this.consumePath(t,e,l);this.current.tilingPatternDims=null;this.#Or(n);return}const h=s.isModifyingCurrentTransform()?r.getTransform():null;this.dependencyTracker?.save(t);r.save();r.fillStyle=s.getPattern(r,this,getCurrentTransformInverse(r),Ln,t);if(h){const t=new Path2D;t.addPath(e,r.getTransform().invertSelf().multiplySelf(h));e=t}o=!0}if(this.contentVisible&&null!==l)if(this.pendingEOFill){r.fill(e,"evenodd");this.pendingEOFill=!1}else r.fill(e);if(o){r.restore();this.dependencyTracker?.restore(t)}i&&this.consumePath(t,e,l);this.#Or(n)}eoFill(t,e){this.pendingEOFill=!0;this.fill(t,e)}fillStroke(t,e){const i=this.#Fr(Math.min(this.current.fillAlpha,this.current.strokeAlpha));this.fill(t,e,!1);this.stroke(t,e,!1);this.consumePath(t,e);this.#Or(i)}eoFillStroke(t,e){this.pendingEOFill=!0;this.fillStroke(t,e)}closeFillStroke(t,e){this.fillStroke(t,e)}closeEOFillStroke(t,e){this.pendingEOFill=!0;this.fillStroke(t,e)}endPath(t,e){this.consumePath(t,e)}rawFillPath(t,e){const i=this.#Fr(this.current.fillAlpha);this.ctx.fill(e);this.dependencyTracker?.recordDependencies(t,vn).recordOperation(t);this.#Or(i)}clip(t){this.dependencyTracker?.recordFutureForcedDependency("clipMode",t);this.pendingClip=$n}eoClip(t){this.dependencyTracker?.recordFutureForcedDependency("clipMode",t);this.pendingClip=qn}beginText(t){this.current.textMatrix=null;this.current.textMatrixScale=1;this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0;this.dependencyTracker?.recordOpenMarker(t).resetIncrementalData("sameLineText").resetIncrementalData("moveText",t)}endText(t){const e=this.pendingTextPaths,i=this.ctx;if(this.dependencyTracker){const{dependencyTracker:i}=this;void 0!==e&&i.recordFutureForcedDependency("textClip",i.getOpenMarker()).recordFutureForcedDependency("textClip",t);i.recordCloseMarker(t)}if(void 0!==e){const t=new Path2D,n=i.getTransform().invertSelf();for(const{transform:i,x:r,y:s,fontSize:a,path:o}of e)o&&t.addPath(o,new DOMMatrix(i).preMultiplySelf(n).translate(r,s).scale(a,-a));i.clip(t)}delete this.pendingTextPaths}setCharSpacing(t,e){this.dependencyTracker?.recordSimpleData("charSpacing",t);this.current.charSpacing=e}setWordSpacing(t,e){this.dependencyTracker?.recordSimpleData("wordSpacing",t);this.current.wordSpacing=e}setHScale(t,e){this.dependencyTracker?.recordSimpleData("hScale",t);this.current.textHScale=e/100}setLeading(t,e){this.dependencyTracker?.recordSimpleData("leading",t);this.current.leading=-e}setFont(t,e,i){this.dependencyTracker?.recordSimpleData("font",t).recordSimpleDataFromNamed("fontObj",e,t);const n=this.commonObjs.get(e),r=this.current;if(!n)throw new Error(`Can't find font for ${e}`);r.fontMatrix=n.fontMatrix||fi;0!==r.fontMatrix[0]&&0!==r.fontMatrix[3]||warn("Invalid font matrix for font "+e);if(i<0){i=-i;r.fontDirection=-1}else r.fontDirection=1;this.current.font=n;this.current.fontSize=i;if(n.isType3Font)return;const s=n.loadedName||"sans-serif",a=n.systemFontInfo?.css||`"${s}", ${n.fallbackName}`;let o="normal";n.black?o="900":n.bold&&(o="bold");const l=n.italic?"italic":"normal",c=MathClamp(i,16,100);this.current.fontSizeScale=i/c;this.ctx.font=`${l} ${o} ${c}px ${a}`}setTextRenderingMode(t,e){this.dependencyTracker?.recordSimpleData("textRenderingMode",t);this.current.textRenderingMode=e}setTextRise(t,e){this.dependencyTracker?.recordSimpleData("textRise",t);this.current.textRise=e}moveText(t,e,i){this.dependencyTracker?.resetIncrementalData("sameLineText").recordIncrementalData("moveText",t);this.current.x=this.current.lineX+=e;this.current.y=this.current.lineY+=i}setLeadingMoveText(t,e,i){this.setLeading(t,-i);this.moveText(t,e,i)}setTextMatrix(t,e){this.dependencyTracker?.resetIncrementalData("sameLineText").recordSimpleData("textMatrix",t);const{current:i}=this;i.textMatrix=e;i.textMatrixScale=Math.hypot(e[0],e[1]);i.x=i.lineX=0;i.y=i.lineY=0}nextLine(t){this.moveText(t,0,this.current.leading);this.dependencyTracker?.recordIncrementalData("moveText",this.dependencyTracker.getSimpleIndex("leading")??t)}#Rr(t,e,i){const n=new Path2D;n.addPath(t,new DOMMatrix(i).invertSelf().multiplySelf(e));return n}paintChar(t,e,i,n,r,s){const a=this.ctx,o=this.current,l=o.font,c=o.textRenderingMode,h=o.fontSize/o.fontSizeScale,d=c&Ri,u=!!(c&Bi),p=o.patternFill&&!l.missingFile,g=o.patternStroke&&!l.missingFile;let f;(l.disableFontFace||u||p||g)&&!l.missingFile&&(f=l.getPathGenerator(this.commonObjs,e));if(f&&(l.disableFontFace||p||g)){a.save();a.translate(i,n);a.scale(h,-h);this.dependencyTracker?.recordCharacterBBox(t,a,l);let e;if(d===Mi||d===Fi)if(r){e=a.getTransform();a.setTransform(...r);const t=this.#Rr(f,e,r);a.fill(t)}else a.fill(f);if(d===Ii||d===Fi)if(s){e||=a.getTransform();a.setTransform(...s);const{a:t,b:i,c:n,d:r}=e,o=Util.inverseTransform(s),l=Util.transform([t,i,n,r,0,0],o);Util.singularValueDecompose2dScale(l,jn);a.lineWidth*=Math.max(jn[0],jn[1])/h;a.stroke(this.#Rr(f,e,s))}else{a.lineWidth/=h;a.stroke(f)}a.restore()}else{if(d===Mi||d===Fi){a.fillText(e,i,n);this.dependencyTracker?.recordCharacterBBox(t,a,l,h,i,n,()=>a.measureText(e))}if(d===Ii||d===Fi){this.dependencyTracker&&this.dependencyTracker?.recordCharacterBBox(t,a,l,h,i,n,()=>a.measureText(e)).recordDependencies(t,bn);a.strokeText(e,i,n)}}if(u){(this.pendingTextPaths||=[]).push({transform:getCurrentTransform(a),x:i,y:n,fontSize:h,path:f});this.dependencyTracker?.recordCharacterBBox(t,a,l,h,i,n)}}get isFontSubpixelAAEnabled(){const t=this.canvasFactory.create(10,10),e=t.context;e.scale(1.5,1);e.fillText("I",0,10);const i=e.getImageData(0,0,10,10).data;this.canvasFactory.destroy(t);let n=!1;for(let t=3;t<i.length;t+=4)if(i[t]>0&&i[t]<255){n=!0;break}return util_shadow(this,"isFontSubpixelAAEnabled",n)}showText(t,e){if(this.dependencyTracker){this.dependencyTracker.recordDependencies(t,_n).resetBBox(t);this.current.textRenderingMode&Bi&&this.dependencyTracker.recordFutureForcedDependency("textClip",t).inheritPendingDependenciesAsFutureForcedDependencies()}const i=this.current,n=i.font;if(n.isType3Font){const n=this.#Fr(i.fillAlpha);this.showType3Text(t,e);this.dependencyTracker?.recordShowTextOperation(t);this.#Or(n);return}const r=i.fontSize;if(0===r){this.dependencyTracker?.recordOperation(t);return}const s=this.#Fr(i.fillAlpha),a=this.ctx,o=i.fontSizeScale,l=i.charSpacing,c=i.wordSpacing,h=i.fontDirection,d=i.textHScale*h,u=e.length,p=n.vertical,g=p?1:-1,f=r*i.fontMatrix[0],m=i.textRenderingMode===Mi&&!n.disableFontFace&&!i.patternFill;a.save();i.textMatrix&&a.transform(...i.textMatrix);a.translate(i.x,i.y+i.textRise);h>0?a.scale(d,-1):a.scale(d,1);let b,y;const w=i.textRenderingMode&Ri,v=w===Mi||w===Fi,_=w===Ii||w===Fi;let A=i.lineWidth;const x=i.textMatrixScale;0===x||0===A?_&&(A=this.getSinglePixelWidth()):A/=x;if(1!==o){a.scale(o,o);A/=o}a.lineWidth=A;if(v&&i.patternFill){a.save();const e=i.fillColor.getPattern(a,this,getCurrentTransformInverse(a),Ln,t);b=getCurrentTransform(a);a.restore();a.fillStyle=e}if(_&&i.patternStroke){a.save();const e=i.strokeColor.getPattern(a,this,getCurrentTransformInverse(a),Nn,t);y=getCurrentTransform(a);a.restore();a.strokeStyle=e}if(n.isInvalidPDFjsFont){const n=[];let r=0;for(const t of e){n.push(t.unicode);r+=t.width}const o=n.join("");a.fillText(o,0,0);if(null!==this.dependencyTracker){const e=a.measureText(o);this.dependencyTracker.recordBBox(t,this.ctx,-e.actualBoundingBoxLeft,e.actualBoundingBoxRight,-e.actualBoundingBoxAscent,e.actualBoundingBoxDescent).recordShowTextOperation(t)}i.x+=r*f*d;a.restore();this.compose();this.#Or(s);return}let E,C=0;for(E=0;E<u;++E){const i=e[E];if("number"==typeof i){C+=g*i*r/1e3;continue}let s=!1;const d=(i.isSpace?c:0)+l,u=i.fontChar,w=i.accent;let v,_,A,x=i.width;if(p){const t=i.vmetric,e=-t[1]*f,n=t[2]*f;x=-t[0];v=e/o;_=(C+n)/o}else{v=C/o;_=0}if(n.remeasure&&x>0){A=a.measureText(u);const t=1e3*A.width/r*o;if(x<t&&this.isFontSubpixelAAEnabled){const e=x/t;s=!0;a.save();a.scale(e,1);v/=e}else x!==t&&(v+=(x-t)/2e3*r/o)}if(this.contentVisible&&(i.isInFont||n.missingFile))if(m&&!w){a.fillText(u,v,_);this.dependencyTracker?.recordCharacterBBox(t,a,A?{bbox:null}:n,r/o,v,_,()=>A??a.measureText(u))}else{this.paintChar(t,u,v,_,b,y);if(w){const e=v+r*w.offset.x/o,i=_-r*w.offset.y/o;this.paintChar(t,w.fontChar,e,i,b,y)}}C+=p?x*f-d*h:x*f+d*h;s&&a.restore()}p?i.y-=C:i.x+=C*d;a.restore();this.compose();this.dependencyTracker?.recordShowTextOperation(t);this.#Or(s)}showType3Text(t,e){const i=this.ctx,n=this.current,r=n.font,s=n.fontSize,a=n.fontDirection,o=r.vertical?1:-1,l=n.charSpacing,c=n.wordSpacing,h=n.textHScale*a,d=n.fontMatrix||fi,u=e.length;let p,g,f,m;if(n.textRenderingMode===Oi||0===s)return;this._cachedScaleForStroking[0]=-1;i.save();n.textMatrix&&i.transform(...n.textMatrix);i.translate(n.x,n.y+n.textRise);i.scale(h,a);const b=this.dependencyTracker;this.dependencyTracker=b?new CanvasNestedDependencyTracker(b,t):null;for(p=0;p<u;++p){g=e[p];if("number"==typeof g){m=o*g*s/1e3;this.ctx.translate(m,0);n.x+=m*h;continue}const t=(g.isSpace?c:0)+l,a=r.charProcOperatorList.get(g.operatorListId);if(a){if(this.contentVisible){this.save();if(a.fnArray[0]===Vi.setCharWidth){n.fillAlpha=n.strokeAlpha=1;i.globalAlpha=1}i.scale(s,s);i.transform(...d);this.executeOperatorList(a);this.restore()}}else warn(`Type3 character "${g.operatorListId}" is not available.`);const u=[g.width,0];Util.applyTransform(u,d);f=u[0]*s+t;i.translate(f,0);n.x+=f*h}i.restore();b&&(this.dependencyTracker=b)}setCharWidth(t,e,i){}setCharWidthAndBounds(t,e,i,n,r,s,a){const o=new Path2D;o.rect(n,r,s-n,a-r);this.ctx.clip(o);this.dependencyTracker?.recordBBox(t,this.ctx,n,s,r,a).recordClipBox(t,this.ctx,n,s,r,a);this.endPath(t)}getColorN_Pattern(t,e){let i;if("TilingPattern"===e[0]){const t=this.baseTransform||getCurrentTransform(this.ctx),n={createCanvasGraphics:(t,e)=>new CanvasGraphics(t,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack},void 0,void 0,this.dependencyTracker?new CanvasNestedDependencyTracker(this.dependencyTracker,e,!0):null)};i=new TilingPattern(e,this.ctx,n,t)}else i=this._getPattern(t,e[1],e[2]);return i}setStrokeColorN(t,...e){this.dependencyTracker?.recordSimpleData("strokeColor",t);this.current.strokeColor=this.getColorN_Pattern(t,e);this.current.patternStroke=!0}setFillColorN(t,...e){this.dependencyTracker?.recordSimpleData("fillColor",t);const i=this.current.fillColor=this.getColorN_Pattern(t,e);this.current.patternFill=!0;this.current.tilingPatternDims=i instanceof TilingPattern?[0,0,0,0]:null}#Dr(t){return this.current.transferMapsFallback?.applyToColor(t)??t}setStrokeRGBColor(t,e){this.dependencyTracker?.recordSimpleData("strokeColor",t);this.current.strokeColor=e;this.ctx.strokeStyle=this.#Dr(e);this.current.patternStroke=!1}setStrokeTransparent(t){this.dependencyTracker?.recordSimpleData("strokeColor",t);this.ctx.strokeStyle=this.current.strokeColor="transparent";this.current.patternStroke=!1}setFillRGBColor(t,e){this.dependencyTracker?.recordSimpleData("fillColor",t);this.current.fillColor=e;this.ctx.fillStyle=this.#Dr(e);this.current.patternFill=!1;this.current.tilingPatternDims=null}setFillTransparent(t){this.dependencyTracker?.recordSimpleData("fillColor",t);this.ctx.fillStyle=this.current.fillColor="transparent";this.current.patternFill=!1;this.current.tilingPatternDims=null}_getPattern(t,e,i=null){const n=this.cachedPatterns.getOrInsertComputed(e,()=>function getShadingPattern(t){switch(t[0]){case"RadialAxial":return new RadialAxialShadingPattern(t);case"Mesh":return new MeshShadingPattern(t);case"Dummy":return new DummyShadingPattern}throw new Error(`Unknown IR type: ${t[0]}`)}(this.getObject(t,e)));i&&(n.matrix=i);return n}shadingFill(t,e){if(!this.contentVisible)return;const i=this.#Fr(this.current.fillAlpha),n=this.ctx;this.save(t);const r=this._getPattern(t,e);n.fillStyle=r.getPattern(n,this,getCurrentTransformInverse(n),Un,t);const s=getCurrentTransformInverse(n);if(s){const{width:t,height:e}=n.canvas,i=gi.slice();Util.axialAlignedBoundingBox([0,0,t,e],s,i);const[r,a,o,l]=i;this.ctx.fillRect(r,a,o-r,l-a)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.dependencyTracker?.resetBBox(t).recordFullPageBBox(t).recordDependencies(t,An).recordDependencies(t,yn).recordOperation(t);this.compose(this.current.getClippedPathBoundingBox());this.restore(t);this.#Or(i)}beginInlineImage(){unreachable("Should not call beginInlineImage")}beginImageData(){unreachable("Should not call beginImageData")}paintFormXObjectBegin(t,e,i){if(this.contentVisible){this.save(t);this.baseTransformStack.push(this.baseTransform);e&&this.transform(t,...e);this.baseTransform=getCurrentTransform(this.ctx);if(i){Util.axialAlignedBoundingBox(i,this.baseTransform,this.current.minMax);const[e,n,r,s]=i,a=new Path2D;a.rect(e,n,r-e,s-n);this.ctx.clip(a);this.dependencyTracker?.recordClipBox(t,this.ctx,e,r,n,s);this.endPath(t)}}}paintFormXObjectEnd(t){if(this.contentVisible){this.restore(t);this.baseTransform=this.baseTransformStack.pop()}}beginGroup(t,e){if(!this.contentVisible)return;this.save(t);const{inSMaskMode:i}=this;if(i){this.endSMaskMode();this.current.activeSMask=null}const n=this.ctx;if(!(e.needsIsolation&&(e.isolated||e.hasSoftMask)||e.knockout||e.isGray||0!==this.#mr||1!==n.globalAlpha||"source-over"!==n.globalCompositeOperation||i)){if(e.bbox){let t=new Path2D;const[i,r,s,a]=e.bbox;t.rect(i,r,s-i,a-r);if(e.matrix){const i=new Path2D;i.addPath(t,new DOMMatrix(e.matrix));t=i}n.clip(t)}this.groupStack.push(null);this.#Cr.push(null);this.groupLevel++;return}e.isolated||e.knockout||0!==this.#mr||info("TODO: Fully support non-isolated non-knockout groups.");const r=getCurrentTransform(n);e.matrix&&n.transform(...e.matrix);const s=[0,0,n.canvas.width,n.canvas.height];let a;if(e.bbox){a=gi.slice();Util.axialAlignedBoundingBox(e.bbox,getCurrentTransform(n),a);a=Util.intersect(a,s)||[0,0,0,0]}else a=s;const o=Math.floor(a[0]),l=Math.floor(a[1]),c=Math.max(Math.ceil(a[2])-o,1),h=Math.max(Math.ceil(a[3])-l,1);this.current.startNewPathAndClipBox([0,0,c,h]);const d=this.canvasFactory.create(c,h);e.smask&&this.smaskGroupCanvases.push(d);const u=d.context,p=e.knockout&&!e.isolated?n:null,g=!e.isolated&&!e.knockout&&!e.smask&&e.needsIsolation&&this.#mr>0,f=e.knockout?this.canvasFactory.create(c,h):null,m=this.#mr;e.knockout?this.#mr++:this.#mr=0;u.translate(-o,-l);u.transform(...r);const b=!e.isolated&&!e.smask&&e.needsIsolation,y=b&&!i&&0===m&&!e.knockout&&!e.isGray&&e.hasSoftMask&&1===n.globalAlpha&&"source-over"===n.globalCompositeOperation&&"none"===this.current.transferMaps&&!this.current.transferMapsFallback;if(b&&(i||y)){u.save();u.setTransform(1,0,0,1,0,0);u.drawImage(n.canvas,-o,-l);u.restore()}if(e.bbox){let t=new Path2D;const[i,n,r,s]=e.bbox;t.rect(i,n,r-i,s-n);if(e.matrix){const i=new Path2D;i.addPath(t,new DOMMatrix(e.matrix));t=i}u.clip(t)}e.smask&&this.smaskStack.push({canvas:d.canvas,context:u,offsetX:o,offsetY:l,subtype:e.smask.subtype,backdrop:e.smask.backdrop,transferMap:e.smask.transferMap||null});if(!e.smask||this.dependencyTracker){n.setTransform(1,0,0,1,0,0);n.translate(o,l);n.save()}copyCtxState(n,u);this.ctx=u;this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies(["fillAlpha","strokeAlpha","globalCompositeOperation"]).pushBaseTransform(n);this.setGState(t,[["BM","source-over"],["ca",1],["CA",1],["TR",null]]);this.groupStack.push(n);this.#Cr.push({backdropCtx:p,savedKnockoutLevel:m,offsetX:o,offsetY:l,hasInnerBackdrop:g,replaceBackdrop:y,knockoutMaskEntry:f,knockoutTempEntry:null,knockoutBackdropEntry:null});this.groupLevel++}endGroup(t,e){if(!this.contentVisible)return;this.groupLevel--;const i=this.ctx,n=this.groupStack.pop(),r=this.#Cr.pop();r&&(this.#mr=r.savedKnockoutLevel);if(null!==n){e.isGray&&this.#Br(i);this.ctx=n;this.ctx.imageSmoothingEnabled=!1;this.dependencyTracker?.popBaseTransform();if(e.smask){this.tempSMask=this.smaskStack.pop();this.restore(t);if(this.dependencyTracker){this.ctx.restore();this.inSMaskMode&&this.ctx.setTransform(this.suspendedCtx.getTransform())}this.#Tr(r)}else{this.ctx.restore();const e=getCurrentTransform(this.ctx);this.restore(t);this.current.transferMapsFallback?.applyToCanvas(i);this.ctx.save();this.ctx.setTransform(...e);const s=gi.slice();Util.axialAlignedBoundingBox([0,0,i.canvas.width,i.canvas.height],e,s);const a=this.#Cr.at(-1);if(this.#mr>0)if(r.hasInnerBackdrop){const{width:t,height:s}=i.canvas,a=this.canvasFactory.create(t,s),o=a.context;o.drawImage(n.canvas,r.offsetX,r.offsetY,t,s,0,0,t,s);o.globalCompositeOperation="source-over";o.drawImage(i.canvas,0,0);const l=this.#Pr(i.canvas);o.globalCompositeOperation="destination-in";o.drawImage(l.canvas,0,0);const c=this.ctx.globalCompositeOperation,h=this.ctx.globalAlpha,d=this.ctx.filter;this.ctx.save();this.ctx.setTransform(...e);this.ctx.globalAlpha=1;FeatureTest.isCanvasFilterSupported&&(this.ctx.filter="none");this.ctx.globalCompositeOperation="destination-out";this.ctx.drawImage(l.canvas,0,0);this.ctx.globalCompositeOperation=c;this.ctx.globalAlpha=h;FeatureTest.isCanvasFilterSupported&&(this.ctx.filter=d??"none");this.ctx.drawImage(a.canvas,0,0);this.ctx.restore();this.canvasFactory.destroy(l);this.canvasFactory.destroy(a)}else{const t=a?.backdropCtx??null;this.#Ir(this.ctx,i.canvas,{backdropCanvas:t?.canvas??null,destTransform:e,backdropOffset:t?[a.offsetX+r.offsetX,a.offsetY+r.offsetY]:[0,0],sourceAlpha:this.ctx.globalAlpha,sourceFilter:this.ctx.filter})}else{if(r.replaceBackdrop){const t=new Path2D;t.rect(0,0,i.canvas.width,i.canvas.height);this.ctx.clip(t);this.ctx.globalCompositeOperation="copy"}this.ctx.drawImage(i.canvas,0,0)}this.ctx.restore();this.canvasFactory.destroy({canvas:i.canvas,context:i});this.#Tr(r);this.compose(s)}}else this.restore(t)}#Br(t){const{canvas:e}=t,{width:i,height:n}=e;if(FeatureTest.isCanvasFilterSupported){t.save();t.setTransform(1,0,0,1,0,0);t.filter="grayscale(1)";t.globalAlpha=1;t.globalCompositeOperation="copy";t.drawImage(e,0,0);t.restore();return}const r=t.getImageData(0,0,i,n),{data:s}=r;for(let t=0,e=s.length;t<e;t+=4){const e=.2126*s[t]+.7152*s[t+1]+.0722*s[t+2]+.5|0;s[t]=s[t+1]=s[t+2]=e}t.putImageData(r,0,0)}#Tr(t){if(t){if(t.knockoutMaskEntry){this.canvasFactory.destroy(t.knockoutMaskEntry);t.knockoutMaskEntry=null}if(t.knockoutTempEntry){this.canvasFactory.destroy(t.knockoutTempEntry);t.knockoutTempEntry=null}if(t.knockoutBackdropEntry){this.canvasFactory.destroy(t.knockoutBackdropEntry);t.knockoutBackdropEntry=null}}}beginAnnotation(t,e,i,n,r,s,a){this.#Sr();resetCtxToDefault(this.ctx);this.ctx.save();this.save(t);this.baseTransform&&this.ctx.setTransform(...this.baseTransform);if(i){const r=i[2]-i[0],o=i[3]-i[1];if(s&&this.annotationCanvasMap){(n=n.slice())[4]-=i[0];n[5]-=i[1];Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx),jn);const{viewportScale:t}=this,s=Math.ceil(r*this.outputScaleX*t),l=Math.ceil(o*this.outputScaleY*t);this.annotationCanvas=this.canvasFactory.create(s,l);const{canvas:c,context:h}=this.annotationCanvas;if(a){const t=this.annotationCanvasMap.getOrInsertComputed(e,makeArr);c.setAttribute("data-canvas-name",a);const i=t.findIndex(t=>t.getAttribute("data-canvas-name")===a);-1===i?t.push(c):t[i]=c}else this.annotationCanvasMap.set(e,c);this.annotationCanvas.savedCtx=this.ctx;this.ctx=h;this.ctx.save();this.ctx.setTransform(jn[0],0,0,-jn[1],0,o*jn[1]);resetCtxToDefault(this.ctx)}else{resetCtxToDefault(this.ctx);this.endPath(t);const e=new Path2D;e.rect(i[0],i[1],r,o);this.ctx.clip(e)}}this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height);this.baseTransformStack.push(this.baseTransform);this.transform(t,...n);this.transform(t,...r);this.baseTransform=getCurrentTransform(this.ctx)}endAnnotation(t){if(this.annotationCanvas){this.ctx.restore();this.#kr();this.ctx=this.annotationCanvas.savedCtx;delete this.annotationCanvas.savedCtx;delete this.annotationCanvas}this.baseTransform=this.baseTransformStack.pop()}paintImageMaskXObject(t,e){if(!this.contentVisible)return;const i=e.count;(e=this.getObject(t,e.data,e)).count=i;const n=this.#Fr(this.current.fillAlpha),r=this.ctx,s=this._createMaskCanvas(t,e),a=s.canvas;r.save();r.setTransform(1,0,0,1,0,0);r.drawImage(a,s.offsetX,s.offsetY);this.dependencyTracker?.resetBBox(t).recordBBox(t,this.ctx,s.offsetX,s.offsetX+a.width,s.offsetY,s.offsetY+a.height).recordOperation(t);r.restore();s.canvasEntry&&this.canvasFactory.destroy(s.canvasEntry);this.compose();this.#Or(n)}paintImageMaskXObjectRepeat(t,e,i,n=0,r=0,s,a){if(!this.contentVisible)return;e=this.getObject(t,e.data,e);const o=this.#Fr(this.current.fillAlpha),l=this.ctx;l.save();const c=getCurrentTransform(l);l.transform(i,n,r,s,0,0);const h=this._createMaskCanvas(t,e);l.setTransform(1,0,0,1,h.offsetX-c[4],h.offsetY-c[5]);this.dependencyTracker?.resetBBox(t);for(let e=0,o=a.length;e<o;e+=2){const o=Util.transform(c,[i,n,r,s,a[e],a[e+1]]);l.drawImage(h.canvas,o[4],o[5]);this.dependencyTracker?.recordBBox(t,this.ctx,o[4],o[4]+h.canvas.width,o[5],o[5]+h.canvas.height)}l.restore();h.canvasEntry&&this.canvasFactory.destroy(h.canvasEntry);this.compose();this.dependencyTracker?.recordOperation(t);this.#Or(o)}paintImageMaskXObjectGroup(t,e){if(!this.contentVisible)return;const i=this.#Fr(this.current.fillAlpha),n=this.ctx,r=this.current.patternFill,s=r?this.current.fillColor:n.fillStyle;this.dependencyTracker?.resetBBox(t).recordDependencies(t,xn);for(const i of e){const{data:e,width:a,height:o,transform:l}=i,c=this.canvasFactory.create(a,o),h=c.context;h.save();putBinaryImageMask(h,this.getObject(t,e,i));h.globalCompositeOperation="source-in";h.fillStyle=r?s.getPattern(h,this,getCurrentTransformInverse(n),Ln,t):s;h.fillRect(0,0,a,o);h.restore();n.save();n.transform(...l);n.scale(1,-1);drawImageAtIntegerCoords(n,c.canvas,0,0,a,o,0,-1,1,1);this.canvasFactory.destroy(c);this.dependencyTracker?.recordBBox(t,n,0,a,0,o);n.restore()}this.compose();this.dependencyTracker?.recordOperation(t);this.#Or(i)}paintImageXObject(t,e){if(!this.contentVisible)return;const i=this.getObject(t,e);i?this.paintInlineImageXObject(t,i):warn("Dependent image isn't ready yet")}paintImageXObjectRepeat(t,e,i,n,r){if(!this.contentVisible)return;const s=this.getObject(t,e);if(!s){warn("Dependent image isn't ready yet");return}const a=s.width,o=s.height,l=[];for(let t=0,e=r.length;t<e;t+=2)l.push({transform:[i,0,0,n,r[t],r[t+1]],x:0,y:0,w:a,h:o});this.paintInlineImageXObjectGroup(t,s,l)}applyTransferMapsToCanvas(t){if("none"!==this.current.transferMaps){t.filter=this.current.transferMaps;t.drawImage(t.canvas,0,0);t.filter="none"}else this.current.transferMapsFallback?.applyToCanvas(t);return t.canvas}applyTransferMapsToBitmap(t){const{transferMaps:e,transferMapsFallback:i}=this.current;if("none"===e&&!i)return{img:t.bitmap,canvasEntry:null};const{bitmap:n,width:r,height:s}=t,a=this.canvasFactory.create(r,s),o=a.context;o.filter=e;o.drawImage(n,0,0);o.filter="none";i?.applyToCanvas(o);return{img:a.canvas,canvasEntry:a}}paintInlineImageXObject(t,e){if(!this.contentVisible)return;const i=e.width,n=e.height,r=this.#Fr(this.current.fillAlpha),s=this.ctx;this.save(t);const{filter:a}=s;"none"!==a&&""!==a&&(s.filter="none");s.scale(1/i,-1/n);let o,l=null;if(e.bitmap){const t=this.applyTransferMapsToBitmap(e);o=t.img;l=t.canvasEntry}else{const t=this.canvasFactory.create(i,n);putBinaryImageData(t.context,e);o=this.applyTransferMapsToCanvas(t.context);l=t}const c=this._scaleImage(o,getCurrentTransformInverse(s));s.imageSmoothingEnabled=getImageSmoothingEnabled(getCurrentTransform(s),e.interpolate);if(this.dependencyTracker){this.dependencyTracker.resetBBox(t).recordBBox(t,s,0,i,-n,0).recordDependencies(t,wn).recordOperation(t);this.imagesTracker?.record(s,i,n,this.dependencyTracker.clipBox)}drawImageAtIntegerCoords(s,c.img,0,0,c.paintWidth,c.paintHeight,0,-n,i,n);c.tmpCanvas&&this.canvasFactory.destroy(c.tmpCanvas);l&&this.canvasFactory.destroy(l);this.compose();this.restore(t);this.#Or(r)}paintInlineImageXObjectGroup(t,e,i){if(!this.contentVisible)return;const n=this.#Fr(this.current.fillAlpha),r=this.ctx;let s,a=null;if(e.bitmap&&!this.current.transferMapsFallback)s=e.bitmap;else if(e.bitmap)({img:s,canvasEntry:a}=this.applyTransferMapsToBitmap(e));else{const t=e.width,i=e.height,n=this.canvasFactory.create(t,i);putBinaryImageData(n.context,e);s=this.applyTransferMapsToCanvas(n.context);a=n}this.dependencyTracker?.resetBBox(t);for(const e of i){r.save();r.transform(...e.transform);r.scale(1,-1);drawImageAtIntegerCoords(r,s,e.x,e.y,e.w,e.h,0,-1,1,1);this.dependencyTracker?.recordBBox(t,r,0,1,-1,0);r.restore()}a&&this.canvasFactory.destroy(a);this.dependencyTracker?.recordOperation(t);this.compose();this.#Or(n)}paintSolidColorImageMask(t){if(!this.contentVisible)return;const e=this.#Fr(this.current.fillAlpha);this.dependencyTracker?.resetBBox(t).recordBBox(t,this.ctx,0,1,0,1).recordDependencies(t,yn).recordOperation(t);this.ctx.fillRect(0,0,1,1);this.compose();this.#Or(e)}markPoint(t,e){}markPointProps(t,e,i){}beginMarkedContent(t,e){this.dependencyTracker?.beginMarkedContent(t);this.markedContentStack.push({visible:!0})}beginMarkedContentProps(t,e,i){this.dependencyTracker?.beginMarkedContent(t);"OC"===e?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(i)}):this.markedContentStack.push({visible:!0});this.contentVisible=this.isContentVisible()}endMarkedContent(t){this.dependencyTracker?.endMarkedContent(t);this.markedContentStack.pop();this.contentVisible=this.isContentVisible()}beginCompat(t){}endCompat(t){}consumePath(t,e,i){const n=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath();this.pendingClip||this.compose(i);const r=this.ctx;if(this.pendingClip){n||(this.pendingClip===qn?r.clip(e,"evenodd"):r.clip(e));this.pendingClip=null;this.dependencyTracker?.bboxToClipBoxDropOperation(t).recordFutureForcedDependency("clipPath",t)}else this.dependencyTracker?.recordOperation(t);this.current.startNewPathAndClipBox(this.current.clipBox)}getSinglePixelWidth(){const t=getCurrentTransform(this.ctx);if(0===t[1]&&0===t[2])return 1/Math.min(Math.abs(t[0]),Math.abs(t[3]));const e=Math.abs(t[0]*t[3]-t[2]*t[1]),i=Math.hypot(t[0],t[2]),n=Math.hypot(t[1],t[3]);return Math.max(i,n)/e}getScaleForStroking(){if(-1===this._cachedScaleForStroking[0]){const{lineWidth:t}=this.current,{a:e,b:i,c:n,d:r}=this.ctx.getTransform();let s,a;if(0===i&&0===n){const i=Math.abs(e),n=Math.abs(r);if(i===n)if(0===t)s=a=1/i;else{const e=i*t;s=a=e<1?1/e:1}else if(0===t){s=1/i;a=1/n}else{const e=i*t,r=n*t;s=e<1?1/e:1;a=r<1?1/r:1}}else{const o=Math.abs(e*r-i*n),l=Math.hypot(e,i),c=Math.hypot(n,r);if(0===t){s=c/o;a=l/o}else{const e=t*o;s=c>e?c/e:1;a=l>e?l/e:1}}this._cachedScaleForStroking[0]=s;this._cachedScaleForStroking[1]=a}return this._cachedScaleForStroking}rescaleAndStroke(t,e){const{ctx:i,current:{lineWidth:n}}=this,[r,s]=this.getScaleForStroking();if(r===s){i.lineWidth=(n||1)*r;i.stroke(t);return}const a=CanvasGraphics.#fr??=new DOMMatrix,o=i.getLineDash();e&&i.save();i.scale(r,s);a.a=1/r;a.d=1/s;const l=new Path2D;l.addPath(t,a);if(o.length>0){const t=Math.max(r,s);i.setLineDash(o.map(e=>e/t));i.lineDashOffset/=t}i.lineWidth=n||1;i.stroke(l);e&&i.restore()}isContentVisible(){for(let t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}}for(const t in Vi)void 0!==CanvasGraphics.prototype[t]&&(CanvasGraphics.prototype[Vi[t]]=CanvasGraphics.prototype[t]);class BasePDFStream{#Lr=null;#Nr=null;_fullReader=null;_rangeReaders=new Set;_source=null;constructor(t,e,i){this._source=t;this.#Lr=e;this.#Nr=i}get _progressiveDataLength(){return this._fullReader?._loaded??0}getFullReader(){util_assert(!this._fullReader,"BasePDFStream.getFullReader can only be called once.");return this._fullReader=new this.#Lr(this)}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const i=new this.#Nr(this,t,e);this._rangeReaders.add(i);return i}cancelAllRequests(t){this._fullReader?.cancel(t);for(const e of new Set(this._rangeReaders))e.cancel(t)}}class BasePDFStreamReader{onProgress=null;_contentLength=0;_filename=null;_headersCapability=Promise.withResolvers();_isRangeSupported=!1;_isStreamingSupported=!1;_loaded=0;_stream=null;constructor(t){this._stream=t}_callOnProgress(){this.onProgress?.({loaded:this._loaded,total:this._contentLength})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){unreachable("Abstract method `read` called")}cancel(t){unreachable("Abstract method `cancel` called")}}class BasePDFStreamRangeReader{_stream=null;constructor(t,e,i){this._stream=t}async read(){unreachable("Abstract method `read` called")}cancel(t){unreachable("Abstract method `cancel` called")}}function createHeaders(t,e){const i=new Headers;if(!t||!e||"object"!=typeof e)return i;for(const t in e){const n=e[t];void 0!==n&&i.append(t,n)}return i}function getResponseOrigin(t){return URL.parse(t)?.origin??null}function validateRangeRequestCapabilities({responseHeaders:t,isHttp:e,rangeChunkSize:i,disableRange:n}){const r={contentLength:0,isRangeSupported:!1},s=parseInt(t.get("Content-Length"),10);if(!Number.isInteger(s))return r;r.contentLength=s;if(s<=2*i)return r;if(n||!e||"bytes"!==t.get("Accept-Ranges"))return r;"identity"===(t.get("Content-Encoding")||"identity")&&(r.isRangeSupported=!0);return r}function extractFilenameFromHeader(t){const e=t.get("Content-Disposition");if(e){let t=function getFilenameFromContentDispositionHeader(t){let e=!0,i=toParamRegExp("filename\\*","i").exec(t);if(i){i=i[1];let t=rfc2616unquote(i);t=unescape(t);t=rfc5987decode(t);t=rfc2047decode(t);return fixupEncoding(t)}i=function rfc2231getparam(t){const e=[];let i;const n=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(i=n.exec(t));){let[,t,n,r]=i;t=parseInt(t,10);if(t in e){if(0===t)break}else e[t]=[n,r]}const r=[];for(let t=0;t<e.length&&t in e;++t){let[i,n]=e[t];n=rfc2616unquote(n);if(i){n=unescape(n);0===t&&(n=rfc5987decode(n))}r.push(n)}return r.join("")}(t);if(i)return fixupEncoding(rfc2047decode(i));i=toParamRegExp("filename","i").exec(t);if(i){i=i[1];let t=rfc2616unquote(i);t=rfc2047decode(t);return fixupEncoding(t)}function toParamRegExp(t,e){return new RegExp("(?:^|;)\\s*"+t+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',e)}function textdecode(t,i){if(t){if(!/^[\x00-\xFF]+$/.test(i))return i;try{const n=new TextDecoder(t,{fatal:!0}),r=stringToBytes(i);i=n.decode(r);e=!1}catch{}}return i}function fixupEncoding(t){if(e&&/[\x80-\xff]/.test(t)){t=textdecode("utf-8",t);e&&(t=textdecode("iso-8859-1",t))}return t}function rfc2616unquote(t){if(t.startsWith('"')){const e=t.slice(1).split('\\"');for(let t=0;t<e.length;++t){const i=e[t].indexOf('"');if(-1!==i){e[t]=e[t].slice(0,i);e.length=t+1}e[t]=e[t].replaceAll(/\\(.)/g,"$1")}t=e.join('"')}return t}function rfc5987decode(t){const e=t.indexOf("'");return-1===e?t:textdecode(t.slice(0,e),t.slice(e+1).replace(/^[^']*'/,""))}function rfc2047decode(t){return!t.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(t)?t:t.replaceAll(/=\?([\w-]*)\?([QB])\?((?:[^?]|\?(?!=))*)\?=/gi,function(t,e,i,n){if("q"===i||"Q"===i)return textdecode(e,n=n.replaceAll("_"," ").replaceAll(/=([0-9a-f]{2})/gi,(t,e)=>String.fromCharCode(parseInt(e,16))));try{n=atob(n)}catch{}return textdecode(e,n)})}return""}(e);if(t.includes("%"))try{t=decodeURIComponent(t)}catch{}if(isPdfFile(t))return t}return null}function createResponseError(t,e){return new ResponseException(`Unexpected server response (${t}) while retrieving PDF "${e.href}".`,t,404===t||0===t&&"file:"===e.protocol)}function ensureResponseOrigin(t,e){if(t!==e)throw new Error(`Expected range response-origin "${t}" to match "${e}".`)}function fetchUrl(t,e,i,n){return fetch(t,{method:"GET",headers:e,signal:n.signal,mode:"cors",credentials:i?"include":"same-origin",redirect:"follow"})}function ensureResponseStatus(t,e){if(200!==t&&206!==t)throw createResponseError(t,e)}function getArrayBuffer(t){if(t instanceof Uint8Array)return t.buffer;if(t instanceof ArrayBuffer)return t;throw new Error(`getArrayBuffer - unexpected data: ${t}`)}class PDFFetchStream extends BasePDFStream{_responseOrigin=null;constructor(t){super(t,PDFFetchStreamReader,PDFFetchStreamRangeReader);const{httpHeaders:e,url:i}=t;util_assert(/https?:/.test(i.protocol),"PDFFetchStream only supports http(s):// URLs.");this.headers=createHeaders(!0,e)}}class PDFFetchStreamReader extends BasePDFStreamReader{_abortController=new AbortController;_reader=null;constructor(t){super(t);const{disableRange:e,disableStream:i,rangeChunkSize:n,url:r,withCredentials:s}=t._source;this._isStreamingSupported=!i;const a=new Headers(t.headers);fetchUrl(r,a,s,this._abortController).then(i=>{t._responseOrigin=getResponseOrigin(i.url);ensureResponseStatus(i.status,r);this._reader=i.body.getReader();const s=i.headers,{contentLength:a,isRangeSupported:o}=validateRangeRequestCapabilities({responseHeaders:s,isHttp:!0,rangeChunkSize:n,disableRange:e});this._contentLength=a;this._isRangeSupported=o;this._filename=extractFilenameFromHeader(s);!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new AbortException("Streaming is disabled."));this._headersCapability.resolve()}).catch(this._headersCapability.reject)}async read(){await this._headersCapability.promise;const{value:t,done:e}=await this._reader.read();if(e)return{value:t,done:e};this._loaded+=t.byteLength;this._callOnProgress();return{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t);this._abortController.abort()}}class PDFFetchStreamRangeReader extends BasePDFStreamRangeReader{_abortController=new AbortController;_readCapability=Promise.withResolvers();_reader=null;constructor(t,e,i){super(t,e,i);const{url:n,withCredentials:r}=t._source,s=new Headers(t.headers);s.append("Range",`bytes=${e}-${i-1}`);fetchUrl(n,s,r,this._abortController).then(e=>{ensureResponseOrigin(getResponseOrigin(e.url),t._responseOrigin);ensureResponseStatus(e.status,n);this._reader=e.body.getReader();this._readCapability.resolve()}).catch(this._readCapability.reject)}async read(){await this._readCapability.promise;const{value:t,done:e}=await this._reader.read();return e?{value:t,done:e}:{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t);this._abortController.abort()}}function transport_stream_getArrayBuffer(t){return t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}function endRequests(){for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}class PDFDataTransportStream extends BasePDFStream{_progressiveDone=!1;_queuedChunks=[];constructor(t){super(t,PDFDataTransportStreamReader,PDFDataTransportStreamRangeReader);const{pdfDataRangeTransport:e}=t,{initialData:i,progressiveDone:n}=e;if(i?.length>0){const t=transport_stream_getArrayBuffer(i);this._queuedChunks.push(t)}this._progressiveDone=n;e.transportReady(t=>{switch(t.type){case"range":case"progressiveRead":this.#Ur(t.begin,t.chunk);break;case"progressiveDone":this._fullReader?.progressiveDone();this._progressiveDone=!0}})}#Ur(t,e){const i=transport_stream_getArrayBuffer(e);if(void 0===t)this._fullReader?this._fullReader._enqueue(i):this._queuedChunks.push(i);else{const e=this._rangeReaders.keys().find(e=>e._begin===t);util_assert(e,"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.");e._enqueue(i)}}getFullReader(){const t=super.getFullReader();this._queuedChunks=null;return t}getRangeReader(t,e){const i=super.getRangeReader(t,e);if(i){i.onDone=()=>this._rangeReaders.delete(i);this._source.pdfDataRangeTransport.requestDataRange(t,e)}return i}cancelAllRequests(t){super.cancelAllRequests(t);this._source.pdfDataRangeTransport.abort()}}class PDFDataTransportStreamReader extends BasePDFStreamReader{#Hr=endRequests.bind(this);_done=!1;_queuedChunks=null;_requests=[];constructor(t){super(t);const{pdfDataRangeTransport:e,disableRange:i,disableStream:n}=t._source,{length:r,contentDispositionFilename:s}=e;this._queuedChunks=t._queuedChunks||[];for(const t of this._queuedChunks)this._loaded+=t.byteLength;this._done=t._progressiveDone;this._contentLength=r;this._isStreamingSupported=!n;this._isRangeSupported=!i;isPdfFile(s)&&(this._filename=s);this._headersCapability.resolve();const a=this._loaded;Promise.resolve().then(()=>{a>0&&this._loaded===a&&this._callOnProgress()})}_enqueue(t){if(!this._done){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._queuedChunks.push(t);this._loaded+=t.byteLength;this._callOnProgress()}}async read(){if(this._queuedChunks.length>0){return{value:this._queuedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();this._requests.push(t);return t.promise}cancel(t){this._done=!0;this.#Hr()}progressiveDone(){this._done||=!0;0===this._queuedChunks.length&&this.#Hr()}}class PDFDataTransportStreamRangeReader extends BasePDFStreamRangeReader{#Hr=endRequests.bind(this);onDone=null;_begin=-1;_done=!1;_queuedChunk=null;_requests=[];constructor(t,e,i){super(t,e,i);this._begin=e}_enqueue(t){if(!this._done){if(0===this._requests.length)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});this.#Hr()}this._done=!0;this.onDone?.()}}async read(){if(this._queuedChunk){const t=this._queuedChunk;this._queuedChunk=null;return{value:t,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();this._requests.push(t);return t.promise}cancel(t){this._done=!0;this.#Hr();this.onDone?.()}}class PDFNetworkStream extends BasePDFStream{#zr=new WeakMap;_responseOrigin=null;constructor(t){super(t,PDFNetworkStreamReader,PDFNetworkStreamRangeReader);const{httpHeaders:e,url:i}=t;this.url=i;this.isHttp=/https?:/.test(i.protocol);this.headers=createHeaders(this.isHttp,e)}_request(t){const e=new XMLHttpRequest,i={validateStatus:null,onHeadersReceived:t.onHeadersReceived,onDone:t.onDone,onError:t.onError,onProgress:t.onProgress};this.#zr.set(e,i);e.open("GET",this.url);e.withCredentials=this._source.withCredentials;for(const[t,i]of this.headers)e.setRequestHeader(t,i);if(this.isHttp&&"begin"in t&&"end"in t){e.setRequestHeader("Range",`bytes=${t.begin}-${t.end-1}`);i.validateStatus=t=>206===t||200===t}else i.validateStatus=t=>200===t;e.responseType="arraybuffer";util_assert(t.onError,"Expected `onError` callback to be provided.");e.onerror=()=>t.onError(e.status);e.onreadystatechange=this.#Gr.bind(this,e);e.onprogress=this.#jr.bind(this,e);e.send(null);return e}#jr(t,e){const i=this.#zr.get(t);i?.onProgress?.(e)}#Gr(t,e){const i=this.#zr.get(t);if(!i)return;if(t.readyState>=2&&i.onHeadersReceived){i.onHeadersReceived();delete i.onHeadersReceived}if(4!==t.readyState)return;if(!this.#zr.has(t))return;this.#zr.delete(t);if(0===t.status&&this.isHttp){i.onError(t.status);return}const n=t.status||200;if(!i.validateStatus(n)){i.onError(t.status);return}const r=function network_getArrayBuffer(t){return"string"!=typeof t?t:stringToBytes(t).buffer}(t.response);if(206===n){const e=t.getResponseHeader("Content-Range");if(/bytes \d+-\d+\/\d+/.test(e))i.onDone(r);else{warn('Missing or invalid "Content-Range" header.');i.onError(0)}}else r?i.onDone(r):i.onError(t.status)}_abortRequest(t){if(this.#zr.has(t)){this.#zr.delete(t);t.abort()}}getRangeReader(t,e){const i=super.getRangeReader(t,e);i&&(i.onClosed=()=>this._rangeReaders.delete(i));return i}}class PDFNetworkStreamReader extends BasePDFStreamReader{#Hr=endRequests.bind(this);_cachedChunks=[];_done=!1;_requests=[];_storedError=null;constructor(t){super(t);this._fullRequestXhr=t._request({onHeadersReceived:this.#Wr.bind(this),onDone:this.#Vr.bind(this),onError:this.#$r.bind(this),onProgress:this.#jr.bind(this)})}#Wr(){const t=this._stream,{disableRange:e,rangeChunkSize:i}=t._source,n=this._fullRequestXhr;t._responseOrigin=getResponseOrigin(n.responseURL);const r=n.getAllResponseHeaders(),s=new Headers(r?function trimHeadersEnd(t){let e=t.length;for(;e>0&&" "!==t[e-1]&&/\s/.test(t[e-1]);)e--;return t.slice(0,e)}(r.trimStart()).split(/[\r\n]+/).map(t=>{const[e,...i]=t.split(": ");return[e,i.join(": ")]}):[]),{contentLength:a,isRangeSupported:o}=validateRangeRequestCapabilities({responseHeaders:s,isHttp:t.isHttp,rangeChunkSize:i,disableRange:e});this._contentLength=a;this._isRangeSupported=o;this._filename=extractFilenameFromHeader(s);this._isRangeSupported&&t._abortRequest(n);this._headersCapability.resolve()}#Vr(t){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._cachedChunks.push(t);this._done=!0;0===this._cachedChunks.length&&this.#Hr()}#$r(t){this._storedError=createResponseError(t,this._stream.url);this._headersCapability.reject(this._storedError);for(const t of this._requests)t.reject(this._storedError);this._requests.length=0;this._cachedChunks.length=0}#jr(t){this.onProgress?.({loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}async read(){await this._headersCapability.promise;if(this._storedError)throw this._storedError;if(this._cachedChunks.length>0){return{value:this._cachedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();this._requests.push(t);return t.promise}cancel(t){this._done=!0;this._headersCapability.reject(t);this.#Hr();this._stream._abortRequest(this._fullRequestXhr);this._fullRequestXhr=null}}class PDFNetworkStreamRangeReader extends BasePDFStreamRangeReader{#Hr=endRequests.bind(this);onClosed=null;_done=!1;_queuedChunk=null;_requests=[];_storedError=null;constructor(t,e,i){super(t,e,i);this._requestXhr=t._request({begin:e,end:i,onHeadersReceived:this.#Wr.bind(this),onDone:this.#Vr.bind(this),onError:this.#$r.bind(this),onProgress:null})}#Wr(){const t=getResponseOrigin(this._requestXhr?.responseURL);try{ensureResponseOrigin(t,this._stream._responseOrigin)}catch(t){this._storedError=t;this.#$r(0)}}#Vr(t){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._queuedChunk=t;this._done=!0;this.#Hr();this.onClosed?.()}#$r(t){this._storedError??=createResponseError(t,this._stream.url);for(const t of this._requests)t.reject(this._storedError);this._requests.length=0;this._queuedChunk=null}async read(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){const t=this._queuedChunk;this._queuedChunk=null;return{value:t,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();this._requests.push(t);return t.promise}cancel(t){this._done=!0;this.#Hr();this._stream._abortRequest(this._requestXhr);this.onClosed?.()}}function getReadableStream(t,e=null){const i=process.getBuiltinModule("fs"),{Readable:n}=process.getBuiltinModule("stream"),r=i.createReadStream(t,e);return n.toWeb(r)}class PDFNodeStream extends BasePDFStream{constructor(t){super(t,PDFNodeStreamReader,PDFNodeStreamRangeReader);const{url:e}=t;util_assert("file:"===e.protocol,"PDFNodeStream only supports file:// URLs.")}}class PDFNodeStreamReader extends BasePDFStreamReader{_reader=null;constructor(t){super(t);const{disableRange:e,disableStream:i,rangeChunkSize:n,url:r}=t._source;this._isStreamingSupported=!i;process.getBuiltinModule("fs/promises").lstat(r).then(t=>{const i=getReadableStream(r);this._reader=i.getReader();const{size:s}=t;this._contentLength=s;this._isRangeSupported=!e&&s>2*n;!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new AbortException("Streaming is disabled."));this._headersCapability.resolve()}).catch(t=>{"ENOENT"===t.code&&(t=createResponseError(0,r));this._headersCapability.reject(t)})}async read(){await this._headersCapability.promise;const{value:t,done:e}=await this._reader.read();if(e)return{value:t,done:e};this._loaded+=t.byteLength;this._callOnProgress();return{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t)}}class PDFNodeStreamRangeReader extends BasePDFStreamRangeReader{_readCapability=Promise.withResolvers();_reader=null;constructor(t,e,i){super(t,e,i);const{url:n}=t._source;try{const t=getReadableStream(n,{start:e,end:i-1});this._reader=t.getReader();this._readCapability.resolve()}catch(t){this._readCapability.reject(t)}}async read(){await this._readCapability.promise;const{value:t,done:e}=await this._reader.read();return e?{value:t,done:e}:{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t)}}class GlobalWorkerOptions{static#qr=null;static#Xr="";static get workerPort(){return this.#qr}static set workerPort(t){if(!("undefined"!=typeof Worker&&t instanceof Worker)&&null!==t)throw new Error("Invalid `workerPort` type.");this.#qr=t}static get workerSrc(){return this.#Xr}static set workerSrc(t){if("string"!=typeof t)throw new Error("Invalid `workerSrc` type.");this.#Xr=t}}class Metadata{#Kr;#Yr;constructor({parsedData:t,rawData:e}){this.#Kr=t;this.#Yr=e}getRaw(){return this.#Yr}get(t){return this.#Kr.get(t)??null}[Symbol.iterator](){return this.#Kr.entries()}}const Xn=Symbol("INTERNAL");class OptionalContentGroup{#Jr=!1;#Qr=!1;#Zr=!1;#ts=!0;constructor(t,{name:e,intent:i,usage:n,rbGroups:r}){this.#Jr=!!(t&yi);this.#Qr=!!(t&wi);this.name=e;this.intent=i;this.usage=n;this.rbGroups=r}get visible(){if(this.#Zr)return this.#ts;if(!this.#ts)return!1;const{print:t,view:e}=this.usage;return this.#Jr?"OFF"!==e?.viewState:!this.#Qr||"OFF"!==t?.printState}_setVisible(t,e,i=!1){t!==Xn&&unreachable("Internal method `_setVisible` called.");this.#Zr=i;this.#ts=e}get serializable(){return{userSet:this.#Zr,visible:this.#ts}}}class OptionalContentConfig{#es=null;#is=new Map;#ns=null;#rs=null;#ss;creator=null;name=null;constructor(t,e=yi,i=null){this.#ss=t;this.renderingIntent=e;if(null!==t){this.name=t.name;this.creator=t.creator;this.#rs=t.order;for(const i of t.groups)this.#is.set(i.id,new OptionalContentGroup(e,i));if(i){i.size!==this.#is.size&&unreachable("Incorrect serialized groupState.");for(const[t,e]of i)this.#is.get(t)._setVisible(Xn,e.visible,e.userSet)}else{if("OFF"===t.baseState)for(const t of this.#is.values())t._setVisible(Xn,!1);for(const e of t.on)this.#is.get(e)._setVisible(Xn,!0);for(const e of t.off)this.#is.get(e)._setVisible(Xn,!1)}this.#ns=this.getHash()}}#as(t){const e=t.length;if(e<2)return!0;const i=t[0];for(let n=1;n<e;n++){const e=t[n];let r;if(Array.isArray(e))r=this.#as(e);else{if(!this.#is.has(e)){warn(`Optional content group not found: ${e}`);return!0}r=this.#is.get(e).visible}switch(i){case"And":if(!r)return!1;break;case"Or":if(r)return!0;break;case"Not":return!r;default:return!0}}return"And"===i}isVisible(t){if(0===this.#is.size)return!0;if(!t){info("Optional content group not defined.");return!0}if("OCG"===t.type){if(!this.#is.has(t.id)){warn(`Optional content group not found: ${t.id}`);return!0}return this.#is.get(t.id).visible}if("OCMD"===t.type){if(t.expression)return this.#as(t.expression);if(!t.policy||"AnyOn"===t.policy){for(const e of t.ids){if(!this.#is.has(e)){warn(`Optional content group not found: ${e}`);return!0}if(this.#is.get(e).visible)return!0}return!1}if("AllOn"===t.policy){for(const e of t.ids){if(!this.#is.has(e)){warn(`Optional content group not found: ${e}`);return!0}if(!this.#is.get(e).visible)return!1}return!0}if("AnyOff"===t.policy){for(const e of t.ids){if(!this.#is.has(e)){warn(`Optional content group not found: ${e}`);return!0}if(!this.#is.get(e).visible)return!0}return!1}if("AllOff"===t.policy){for(const e of t.ids){if(!this.#is.has(e)){warn(`Optional content group not found: ${e}`);return!0}if(this.#is.get(e).visible)return!1}return!0}warn(`Unknown optional content policy ${t.policy}.`);return!0}warn(`Unknown group type ${t.type}.`);return!0}setVisibility(t,e=!0,i=!0){const n=this.#is.get(t);if(n){if(i&&e&&n.rbGroups.length)for(const e of n.rbGroups)for(const i of e)i!==t&&this.#is.get(i)?._setVisible(Xn,!1,!0);n._setVisible(Xn,!!e,!0);this.#es=null}else warn(`Optional content group not found: ${t}`)}setOCGState({state:t,preserveRB:e}){let i;for(const n of t){switch(n){case"ON":case"OFF":case"Toggle":i=n;continue}const t=this.#is.get(n);if(t)switch(i){case"ON":this.setVisibility(n,!0,e);break;case"OFF":this.setVisibility(n,!1,e);break;case"Toggle":this.setVisibility(n,!t.visible,e)}}this.#es=null}get hasInitialVisibility(){return null===this.#ns||this.getHash()===this.#ns}getOrder(){return this.#is.size?this.#rs?this.#rs.slice():[...this.#is.keys()]:null}getGroup(t){return this.#is.get(t)||null}getHash(){if(null!==this.#es)return this.#es;const t=new MurmurHash3_64;for(const[e,i]of this.#is)t.update(`${e}:${i.visible}`);return this.#es=t.hexdigest()}[Symbol.iterator](){return this.#is.entries()}get serializable(){const t=new Map;for(const[e,i]of this.#is)t.set(e,i.serializable);return{data:this.#ss,renderingIntent:this.renderingIntent,groupState:t}}static fromSerializable({data:t,renderingIntent:e,groupState:i}){return new OptionalContentConfig(t,e,i)}}class PagesMapper{#os=null;#ls=null;#cs=0;#hs=null;#ds=null;get pagesNumber(){return this.#cs}set pagesNumber(t){if(this.#cs!==t){this.#cs=t;this.#os=null;this.#ls=null}}#us(){if(this.#os)return;const t=this.#cs,e=this.#os=new Uint32Array(t);for(let i=0;i<t;i++)e[i]=i+1;this.#ls=new Int32Array(e)}#ps(){const t=new Map,e=this.#os;for(let i=0,n=this.#cs;i<n;i++){const n=e[i],r=t.get(n);r?r.push(i+1):t.set(n,[i+1])}return t}movePages(t,e,i){this.#us();const n=this.#os,r=e.length,s=new Uint32Array(r);let a=0;for(let t=0;t<r;t++){const r=e[t]-1;s[t]=n[r];r<i&&a++}const o=this.#cs,l=o-r,c=new Int32Array(o),h=MathClamp(i-a,0,l);for(let e=0,i=0;e<o;e++)if(!t.has(e+1)){n[i]=n[e];c[i++]=e+1}n.copyWithin(h+r,h,l);n.set(s,h);c.copyWithin(h+r,h,l);c.set(e,h);this.#ls=c;n.every((t,e)=>t===e+1)&&(this.#os=null)}deletePages(t){this.#us();const e=this.#os,i=this.#ps();this.#ds={pageNumberToId:e.slice(),pagesNumber:this.#cs,prevPageNumbers:this.#ls.slice()};const n=this.#cs-t.length;this.#cs=n;const r=this.#os=new Uint32Array(n);this.#ls=new Int32Array(n);let s=0,a=0;for(const i of t){const t=i-1;if(t!==s){r.set(e.subarray(s,t),a);a+=t-s}s=t+1}s<e.length&&r.set(e.subarray(s),a);this.#gs(i,new Set(t))}cancelDelete(){if(this.#ds){this.#os=this.#ds.pageNumberToId;this.#cs=this.#ds.pagesNumber;this.#ls=this.#ds.prevPageNumbers;this.#ds=null}}cleanSavedData(){this.#ds=null}copyPages(t){this.#us();this.#hs={pageNumbers:t,pageIds:t.map(t=>this.#os[t-1])}}cancelCopy(){this.#hs=null}pastePages(t){this.#us();const e=this.#os,i=this.#ps(),{pageNumbers:n,pageIds:r}=this.#hs,s=this.#cs+n.length;this.#cs=s;const a=this.#os=new Uint32Array(s);this.#ls=new Int32Array(s);a.set(e.subarray(0,t),0);a.set(r,t);a.set(e.subarray(t),t+n.length);this.#gs(i,null,t,n);this.#hs=null}#gs(t,e=null,i=-1,n=null){const r=this.#ls,s=this.#os,a=i+(n?.length??0),o=new Map;for(let l=0,c=this.#cs;l<c;l++){if(l>=i&&l<a){r[l]=-n[l-i];continue}const c=s[l],h=t.get(c);let d=o.get(c)||0;if(e&&h)for(;d<h.length&&e.has(h[d]);)d++;r[l]=h?.[d];o.set(c,d+1)}}hasBeenAltered(){return null!==this.#os}#fs(t=null){if(!this.#os)return null;const e=new Int32Array(this.#cs).fill(-1),i=new Map;if(t)for(const n of t){const t=this.getPageId(n),r=i.get(t)??0;i.set(t,r+1);e[n-1]=r}else for(let t=0,n=this.#cs;t<n;t++){const n=this.#os[t],r=i.get(n)??0;i.set(n,r+1);e[t]=r}return e}getPageMappingForSaving(t=null,e=this.#fs()){t??=this.#ps();let i=0;for(const e of t.values())i=Math.max(i,e.length);const n=new Array(i);for(let t=0;t<i;t++)n[t]={document:null,pageIndices:[],includePages:[]};for(const[e,i]of t)for(let t=0,r=i.length;t<r;t++)n[t].includePages.push([e-1,i[t]-1]);for(const{includePages:t,pageIndices:e}of n){t.sort((t,e)=>t[0]-e[0]);for(let i=0,n=t.length;i<n;i++){e.push(t[i][1]);t[i]=t[i][0]}}return{pageInfos:n,copyLevels:e}}extractPages(t){t=Array.from(t).sort((t,e)=>t-e);const e=new Map;for(let i=0,n=t.length;i<n;i++){const n=this.getPageId(t[i]);e.getOrInsertComputed(n,makeArr).push(i+1)}return this.getPageMappingForSaving(e,this.#fs(t))}getPrevPageNumber(t){return this.#ls?.[t-1]??0}getPageNumber(t){if(!this.#os)return t;const e=this.#os;for(let i=0,n=this.#cs;i<n;i++)if(e[i]===t)return i+1;return 0}getPageId(t){return this.#os?.[t-1]??t}getMapping(){return this.#os?.subarray(0,this.pagesNumber)}}const Kn=Symbol("INITIAL_DATA"),dataObj=()=>({...Promise.withResolvers(),data:Kn});class PDFObjects{#ms=new Map;get(t,e=null){if(e){const i=this.#ms.getOrInsertComputed(t,dataObj);i.promise.then(()=>e(i.data));return null}const i=this.#ms.get(t);if(!i||i.data===Kn)throw new Error(`Requesting object that isn't resolved yet ${t}.`);return i.data}has(t){const e=this.#ms.get(t);return!!e&&e.data!==Kn}delete(t){const e=this.#ms.get(t);if(!e||e.data===Kn)return!1;this.#ms.delete(t);return!0}resolve(t,e=null){const i=this.#ms.getOrInsertComputed(t,dataObj);if(i.data!==Kn)throw new Error(`Object already resolved ${t}.`);i.data=e;i.resolve()}clear(){for(const{data:t}of this.#ms.values())t?.bitmap?.close();this.#ms.clear()}*[Symbol.iterator](){for(const[t,{data:e}]of this.#ms)e!==Kn&&(yield[t,e])}}class TextLayer{#bs=Promise.withResolvers();#Pt=null;#ys=!1;#ws=!!globalThis.FontInspector?.enabled;#vs=null;#_s=null;#As=null;#xs=0;#Es=0;#Cs=OutputScale.pixelRatio;#Ss=null;#Ts=null;#ks=0;#Ds=0;#Ps=Object.create(null);#Ms=[];#Is=null;#Fs=[];#Os=new WeakMap;#Rs=null;static#Bs=new Map;static#Ls=new Map;static#Ns=new WeakMap;static#Us=null;static#Hs=new Set;constructor({textContentSource:t,images:e,container:i,viewport:n}){if(t instanceof ReadableStream)this.#Is=t;else{if("object"!=typeof t)throw new Error('No "textContentSource" parameter specified.');this.#Is=new ReadableStream({start(e){e.enqueue(t);e.close()}})}this.#Pt=this.#Ts=i;this.#vs=e;this.#Ds=n.scale*this.#Cs;this.#ks=n.rotation;this.#As={div:null,properties:null,ctx:null};const{pageWidth:r,pageHeight:s,pageX:a,pageY:o}=n.rawDims;this.#Rs=[1,0,0,-1,-a,o+s];this.#Es=r;this.#xs=s;TextLayer.#zs();i.style.setProperty("--min-font-size",TextLayer.#Us);setLayerDimensions(i,n);this.#bs.promise.finally(()=>{TextLayer.#Hs.delete(this);this.#As=null;this.#Ps=null}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:t,isFirefox:e}=FeatureTest.platform;return util_shadow(this,"fontFamilyMap",new Map([["sans-serif",(t&&e?"Calibri, ":"")+"sans-serif"],["monospace",(t&&e?"Lucida Console, ":"")+"monospace"]]))}render(){this.#vs&&this.#Pt.append(this.#vs.render());const pump=()=>{this.#Ss.read().then(({value:t,done:e})=>{if(e)this.#bs.resolve();else{this.#_s??=t.lang;Object.assign(this.#Ps,t.styles);this.#Gs(t.items);pump()}},this.#bs.reject)};this.#Ss=this.#Is.getReader();TextLayer.#Hs.add(this);pump();return this.#bs.promise}update({viewport:t,onBefore:e=null}){const i=t.scale*OutputScale.pixelRatio,n=t.rotation;if(n!==this.#ks){e?.();this.#ks=n;setLayerDimensions(this.#Ts,{rotation:n})}if(i!==this.#Ds){e?.();this.#Ds=i;this.#Cs=OutputScale.pixelRatio;const t={div:null,properties:null,ctx:TextLayer.#js(this.#_s)};for(const e of this.#Fs){t.properties=this.#Os.get(e);t.div=e;this.#Ws(t)}}}cancel(){const t=new AbortException("TextLayer task cancelled.");this.#Ss?.cancel(t).catch(()=>{});this.#Ss=null;this.#bs.reject(t)}get textDivs(){return this.#Fs}get textContentItemsStr(){return this.#Ms}#Gs(t){if(this.#ys)return;this.#As.ctx??=TextLayer.#js(this.#_s);const e=this.#Fs,i=this.#Ms;for(const n of t){if(e.length>1e5){warn("Ignoring additional textDivs for performance reasons.");this.#ys=!0;return}if(void 0!==n.str){i.push(n.str);this.#Vs(n)}else if("beginMarkedContentProps"===n.type||"beginMarkedContent"===n.type){const t=this.#Pt;this.#Pt=document.createElement("span");this.#Pt.classList.add("markedContent");n.id&&this.#Pt.setAttribute("id",n.id);"Artifact"===n.tag&&(this.#Pt.ariaHidden=!0);t.append(this.#Pt)}else"endMarkedContent"===n.type&&(this.#Pt=this.#Pt.parentNode)}}#Vs(t){const e=document.createElement("span"),i={angle:0,canvasWidth:0,hasText:""!==t.str,hasEOL:t.hasEOL,fontSize:0};this.#Fs.push(e);const n=Util.transform(this.#Rs,t.transform);let r=Math.atan2(n[1],n[0]);const s=this.#Ps[t.fontName];s.vertical&&(r+=Math.PI/2);let a=this.#ws&&s.fontSubstitution||s.fontFamily;a=TextLayer.fontFamilyMap.get(a)||a;const o=Math.hypot(n[2],n[3]),l=o*TextLayer.#$s(a,s,this.#_s);let c,h;if(0===r){c=n[4];h=n[5]-l}else{c=n[4]+l*Math.sin(r);h=n[5]-l*Math.cos(r)}const d=e.style;d.left=`${(100*c/this.#Es).toFixed(2)}%`;d.top=`${(100*h/this.#xs).toFixed(2)}%`;const u=Math.round(100*o)/100;d.setProperty("--font-height",`${u}px`);d.fontFamily=a;i.fontSize=u;e.setAttribute("role","presentation");e.textContent=t.str;e.dir=t.dir;this.#ws&&(e.dataset.fontName=s.fontSubstitutionLoadedName||t.fontName);0!==r&&(i.angle=r*(180/Math.PI));let p=!1;if(t.str.length>1)p=!0;else if(" "!==t.str&&t.transform[0]!==t.transform[3]){const e=Math.abs(t.transform[0]),i=Math.abs(t.transform[3]);e!==i&&Math.max(e,i)/Math.min(e,i)>1.5&&(p=!0)}p&&(i.canvasWidth=s.vertical?t.height:t.width);this.#Os.set(e,i);this.#As.div=e;this.#As.properties=i;this.#Ws(this.#As);i.hasText&&this.#Pt.append(e);if(i.hasEOL){const t=document.createElement("br");t.setAttribute("role","presentation");this.#Pt.append(t)}}#Ws(t){const{div:e,properties:i,ctx:n}=t,{style:r}=e,{canvasWidth:s,fontSize:a}=i;if(0!==s&&0!==a&&i.hasText){const{fontFamily:t}=r,i=this.#Cs,o=TextLayer.#qs(a*this.#Ds/i)*i;TextLayer.#Xs(n,o,t);const{width:l}=n.measureText(e.textContent);l>0&&r.setProperty("--scale-x",s*o/(l*a))}0!==i.angle&&r.setProperty("--rotate",`${i.angle}deg`)}static cleanup(){if(!(this.#Hs.size>0)){this.#Bs.clear();for(const{canvas:t}of this.#Ls.values())t.remove();this.#Ls.clear()}}static#js(t=null){let e=this.#Ls.get(t||="");if(!e){const i=document.createElement("canvas");i.style.cssText="position:absolute;top:0;left:0;width:0;height:0;display:none;letter-spacing:normal;word-spacing:normal";i.lang=t;document.body.append(i);e=i.getContext("2d",{alpha:!1,willReadFrequently:!0});this.#Ls.set(t,e);this.#Ns.set(e,{size:0,family:""})}return e}static#qs(t){t=Math.fround(t);const e=Math.fround(131073*t);return Math.fround(e-Math.fround(e-t))}static#Xs(t,e,i){const n=this.#Ns.get(t);if(e!==n.size||i!==n.family){t.font=`${e}px ${i}`;n.size=e;n.family=i}}static#zs(){if(null!==this.#Us)return;const t=document.createElement("div");t.style.opacity=0;t.style.lineHeight=1;t.style.fontSize="1px";t.style.position="absolute";t.textContent="X";document.body.append(t);this.#Us=t.getBoundingClientRect().height;t.remove()}static#$s(t,e,i){const n=this.#Bs.get(t);if(n)return n;const r=this.#js(i);this.#Xs(r,30,t);const s=r.measureText(""),a=s.fontBoundingBoxAscent,o=Math.abs(s.fontBoundingBoxDescent);let l=.8;if(a)l=a/(a+o);else{FeatureTest.platform.isFirefox&&warn("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering.");e.ascent?l=e.ascent:e.descent&&(l=1+e.descent)}this.#Bs.set(t,l);return l}}function getDocument(t={}){const e=new PDFDocumentLoadingTask,{docId:i}=e,n=t.url?function getUrlProp(t){if(t instanceof URL)return t;if("string"==typeof t){if(ui){if(/^[a-z][a-z0-9\-+.]+:/i.test(t))return new URL(t);const e=process.getBuiltinModule("url");return new URL(e.pathToFileURL(t))}const e=URL.parse(t,window.location);if(e)return e}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}(t.url):null,r=t.data?function getDataProp(t){if(ui&&"undefined"!=typeof Buffer&&t instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength)return t;if("string"==typeof t)return stringToBytes(t);if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)||"object"==typeof t&&!isNaN(t?.length))return new Uint8Array(t);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}(t.data):null,s=t.httpHeaders||null,a=!0===t.withCredentials,o=t.password??null,l=t.range instanceof PDFDataRangeTransport?t.range:null,c=Number.isInteger(t.rangeChunkSize)&&t.rangeChunkSize>0?t.rangeChunkSize:65536;let h=t.worker instanceof PDFWorker?t.worker:null;const d=t.verbosity,u="string"!=typeof t.docBaseUrl||isDataScheme(t.docBaseUrl)?null:t.docBaseUrl,p=getFactoryUrlProp(t.cMapUrl),g=!1!==t.cMapPacked,f=getFactoryUrlProp(t.iccUrl),m=getFactoryUrlProp(t.standardFontDataUrl),b=getFactoryUrlProp(t.wasmUrl),y=!0!==t.stopAtErrors,w=Number.isInteger(t.maxImageSize)&&t.maxImageSize>-1?t.maxImageSize:-1,v="boolean"==typeof t.isOffscreenCanvasSupported?t.isOffscreenCanvasSupported:!ui,_="boolean"==typeof t.isImageDecoderSupported?t.isImageDecoderSupported:!ui,A=Number.isInteger(t.canvasMaxAreaInBytes)?t.canvasMaxAreaInBytes:-1,x="boolean"==typeof t.disableFontFace?t.disableFontFace:ui,E=!0===t.fontExtraProperties,C=!0===t.enableXfa,S=t.ownerDocument||globalThis.document,T=!0===t.disableRange,k=!0===t.disableStream,D=!0===t.disableAutoFetch,P=!0===t.pdfBug,M=t.CanvasFactory||(ui?NodeCanvasFactory:DOMCanvasFactory),I=t.FilterFactory||(ui?NodeFilterFactory:DOMFilterFactory),O=t.BinaryDataFactory||(ui?NodeBinaryDataFactory:DOMBinaryDataFactory),R=!0===t.enableHWA,B=!0===t.enableWebGPU?function initGPU(){return Bn.init()}():Promise.resolve(!1),L=!1!==t.useWasm,N=t.pagesMapper||new PagesMapper,U="boolean"==typeof t.useSystemFonts?t.useSystemFonts:!ui&&!x,H="boolean"==typeof t.useWorkerFetch?t.useWorkerFetch:!!(O===DOMBinaryDataFactory&&p&&g&&m&&b&&isValidFetchUrl(p,document.baseURI)&&isValidFetchUrl(m,document.baseURI)&&isValidFetchUrl(b,document.baseURI));setVerbosityLevel(d);const z={canvasFactory:new M({ownerDocument:S,enableHWA:R}),filterFactory:new I({docId:i,ownerDocument:S}),binaryDataFactory:H?null:new O({cMapUrl:p,standardFontDataUrl:m,wasmUrl:b})};if(!h){h=PDFWorker.create({verbosity:d,port:GlobalWorkerOptions.workerPort});e._worker=h}const G={docId:i,apiVersion:"6.4.299",data:r,password:o,disableAutoFetch:D,rangeChunkSize:c,docBaseUrl:u,enableXfa:C,evaluatorOptions:{maxImageSize:w,disableFontFace:x,ignoreErrors:y,isOffscreenCanvasSupported:v,isImageDecoderSupported:_,canvasMaxAreaInBytes:A,fontExtraProperties:E,useSystemFonts:U,useWasm:L,useWorkerFetch:H,cMapUrl:p,cMapPacked:g,iccUrl:f,standardFontDataUrl:m,wasmUrl:b,hasGPU:!1}},j={ownerDocument:S,pdfBug:P,styleElement:null,enableHWA:R,loadingParams:{disableAutoFetch:D,enableXfa:C}};Promise.all([h.promise,B]).then(function([,t]){if(h.destroyed)throw new Error("Worker was destroyed");G.evaluatorOptions.hasGPU=t;const o=h.messageHandler.sendWithPromise("GetDocRequest",G,r?[r.buffer]:null);let d;if(r);else if(l)d=new PDFDataTransportStream({pdfDataRangeTransport:l,disableRange:T,disableStream:k});else{if(!n)throw new Error("getDocument - expected either `data`, `range`, or `url` parameter.");{const t=function getNetworkStream(t){return isValidFetchUrl(t)?PDFFetchStream:ui?PDFNodeStream:PDFNetworkStream}(n);d=new t({url:n,httpHeaders:s,withCredentials:a,rangeChunkSize:c,disableRange:T,disableStream:k})}}return o.then(t=>{if(h.destroyed)throw new Error("Worker was destroyed");const n=new MessageHandler(i,t,h.port),r=new WorkerTransport(n,e,d,j,z,N);e._transport=r;if(e.destroyed)throw new Error("Loading aborted");n.send("Ready",null)})}).catch(e._capability.reject).finally(e._setupCapability.resolve);return e}class PDFDocumentLoadingTask{static#$n=0;_capability=Promise.withResolvers();_setupCapability=Promise.withResolvers();_transport=null;_worker=null;docId="d"+PDFDocumentLoadingTask.#$n++;destroyed=!1;onPassword=null;onProgress=null;get promise(){return this._capability.promise}async destroy(){this.destroyed=!0;this._capability.promise.catch(()=>{});try{this._worker?.port&&(this._worker._pendingDestroy=!0);await this._setupCapability.promise;await(this._transport?.destroy())}catch(t){this._worker?.port&&delete this._worker._pendingDestroy;throw t}this._transport=null;this._worker?.destroy();this._worker=null}async getData(){return this._transport.getData()}}class PDFDataRangeTransport{#bs=Promise.withResolvers();#Ks=null;constructor(t,e,i=!1,n=null){this.length=t;this.initialData=e;this.progressiveDone=i;this.contentDispositionFilename=n}onDataRange(t,e){this.#Ks({type:"range",begin:t,chunk:e})}onDataProgressiveRead(t){this.#bs.promise.then(()=>{this.#Ks({type:"progressiveRead",chunk:t})})}onDataProgressiveDone(){this.#bs.promise.then(()=>{this.#Ks({type:"progressiveDone"})})}transportReady(t){this.#Ks=t;this.#bs.resolve()}requestDataRange(t,e){unreachable("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}class PDFDocumentProxy{constructor(t,e){this._pdfInfo=t;this._transport=e}get pagesMapper(){return this._transport.pagesMapper}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return util_shadow(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(t){return this._transport.getPage(t)}getPageIndex(t){return this._transport.getPageIndex(t)}getDestinations(){return this._transport.getDestinations()}getDestination(t){return this._transport.getDestination(t)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getAttachmentContent(t){return this._transport.getAttachmentContent(t)}getAnnotationsByType(t,e){return this._transport.getAnnotationsByType(t,e)}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getOptionalContentConfig(e)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(t){return this._transport.saveDocument(t)}extractPages(t,e=null){return this._transport.extractPages(t,e)}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(t=!1){return this._transport.startCleanup(t||this.isPureXfa)}cachedPageNumber(t){return this._transport.cachedPageNumber(t)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}getSignatures(){return this._transport.getSignatures()}getSignatureData(t){return this._transport.getSignatureData(t)}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}class PDFPageProxy{#Ys=!1;#Js=null;static#Qs=0;constructor(t,e,i,n,r=!1){this._pageIndex=t;this._id=PDFPageProxy.#Qs++;this._pageInfo=e;this._transport=i;this._stats=r?new StatTimer:null;this._pdfBug=r;this.commonObjs=i.commonObjs;this.objs=new PDFObjects;this._intentStates=new Map;this.destroyed=!1;this.recordedBBoxes=null;this.#Js=n;this.imageCoordinates=null}clone(t){const e=new PDFPageProxy(t,this._pageInfo,this._transport,this.#Js,this._pdfBug);e.clonedFromIndex=this.clonedFromIndex??this._pageIndex;this._transport.updatePage(e);return e}get pageNumber(){return this._pageIndex+1}set pageNumber(t){this._pageIndex=t-1;this._transport.updatePage(this)}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:t,rotation:e=this.rotate,offsetX:i=0,offsetY:n=0,dontFlip:r=!1}={}){return new PageViewport({viewBox:this.view,userUnit:this.userUnit,scale:t,rotation:e,offsetX:i,offsetY:n,dontFlip:r})}getAnnotations({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getAnnotations(this._pageIndex,e)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return util_shadow(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){return this._transport._htmlForXfa?.children[this._pageIndex]||null}render({canvasContext:t,canvas:e=t.canvas,viewport:i,intent:n="display",annotationMode:r=Ci.ENABLE,transform:s=null,background:a=null,optionalContentConfigPromise:o=null,annotationCanvasMap:l=null,pageColors:c=null,printAnnotationStorage:h=null,isEditing:d=!1,recordImages:u=!1,recordOperations:p=!1,operationsFilter:g=null}){this._stats?.time("Overall");const f=this._transport.getRenderingIntent(n,r,h,d),{renderingIntent:m,cacheKey:b}=f;this.#Ys=!1;o||=this._transport.getOptionalContentConfig(m);const y=this._intentStates.getOrInsertComputed(b,makeObj);if(y.streamReaderCancelTimeout){clearTimeout(y.streamReaderCancelTimeout);y.streamReaderCancelTimeout=null}const w=!!(m&wi);if(!y.displayReadyCapability){y.displayReadyCapability=Promise.withResolvers();y.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null};this._stats?.time("Page Request");this._pumpOperatorList(f)}const v=!(!this._pdfBug||!globalThis.StepperManager?.enabled),_=!!e&&!this.recordedBBoxes&&(p||v),A=!!e&&!this.imageCoordinates&&u,complete=t=>{y.renderTasks.delete(C);if(_){const t=C.gfx?.dependencyTracker.take();if(t){C.stepper?.setOperatorBBoxes(t,C.gfx.dependencyTracker.takeDebugMetadata());p&&(this.recordedBBoxes=t)}}A&&!t&&(this.imageCoordinates=C.gfx?.imagesTracker.take());w&&(this.#Ys=!0);this.#Zs();if(t){C.capability.reject(t);this._abortOperatorList({intentState:y,reason:t instanceof Error?t:new Error(t)})}else C.capability.resolve();if(this._stats){this._stats.timeEnd("Rendering");this._stats.timeEnd("Overall");globalThis.Stats?.enabled&&globalThis.Stats.add(this.pageNumber,this._stats)}};let x=null,E=null;(_||A)&&(E=new CanvasBBoxTracker(e,y.operatorList.length));_&&(x=new CanvasDependencyTracker(E,v));const C=new InternalRenderTask({callback:complete,params:{canvas:e,canvasContext:t,dependencyTracker:x??E,imagesTracker:A?new CanvasImagesTracker(e):null,viewport:i,transform:s,background:a},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:l,operatorList:y.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!w,pdfBug:this._pdfBug,pageColors:c,enableHWA:this._transport.enableHWA,operationsFilter:g});(y.renderTasks||=new Set).add(C);const S=C.task;Promise.all([y.displayReadyCapability.promise,o]).then(([t,e])=>{if(this.destroyed)complete();else{this._stats?.time("Rendering");if(!(e.renderingIntent&m))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");C.initializeGraphics({transparency:t,optionalContentConfig:e});C.operatorListChanged()}}).catch(complete);return S}getOperatorList({intent:t="display",annotationMode:e=Ci.ENABLE,printAnnotationStorage:i=null,isEditing:n=!1}={}){const r=this._transport.getRenderingIntent(t,e,i,n,!0),s=this._intentStates.getOrInsertComputed(r.cacheKey,makeObj);let a;if(!s.opListReadCapability){a=Object.create(null);a.operatorListChanged=function operatorListChanged(){if(s.operatorList.lastChunk){s.opListReadCapability.resolve(s.operatorList);s.renderTasks.delete(a)}};s.opListReadCapability=Promise.withResolvers();(s.renderTasks||=new Set).add(a);s.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null};this._stats?.time("Page Request");this._pumpOperatorList(r)}return s.opListReadCapability.promise}streamTextContent({includeMarkedContent:t=!1,disableNormalization:e=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageId:this.#Js.getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,includeMarkedContent:!0===t,disableNormalization:!0===e},{highWaterMark:100,size:t=>t.items.length})}async getTextContent(t={}){if(this._transport._htmlForXfa)return this.getXfa().then(t=>XfaText.textContent(t));const e=this.streamTextContent(t),i={items:[],styles:Object.create(null),lang:null};for await(const t of e){i.lang??=t.lang;Object.assign(i.styles,t.styles);i.items.push(...t.items)}return i}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const t=[];for(const e of this._intentStates.values()){this._abortOperatorList({intentState:e,reason:new Error("Page was destroyed."),force:!0});if(!e.opListReadCapability)for(const i of e.renderTasks){t.push(i.completed);i.cancel()}}this.objs.clear();this.#Ys=!1;return Promise.all(t)}cleanup(t=!1){this.#Ys=!0;const e=this.#Zs();t&&e&&(this._stats&&=new StatTimer);return e}#Zs(){if(!this.#Ys||this.destroyed)return!1;for(const{renderTasks:t,operatorList:e}of this._intentStates.values())if(t.size>0||!e.lastChunk)return!1;this._intentStates.clear();this.objs.clear();this.#Ys=!1;return!0}_startRenderPage(t,e){const i=this._intentStates.get(e);if(i){this._stats?.timeEnd("Page Request");i.displayReadyCapability?.resolve(t)}}_renderPageChunk(t,e){for(let i=0,n=t.length;i<n;i++){e.operatorList.fnArray.push(t.fnArray[i]);e.operatorList.argsArray.push(t.argsArray[i])}e.operatorList.lastChunk=t.lastChunk;e.operatorList.separateAnnots=t.separateAnnots;for(const t of e.renderTasks)t.operatorListChanged();t.lastChunk&&this.#Zs()}_pumpOperatorList({renderingIntent:t,cacheKey:e,annotationStorageSerializable:i,modifiedIds:n}){const{map:r,transfer:s}=i,a=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageId:this.#Js.getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,pageProxyId:this._id,intent:t,cacheKey:e,annotationStorage:r,modifiedIds:n},void 0,s).getReader(),o=this._intentStates.get(e);o.streamReader=a;const pump=()=>{a.read().then(({value:t,done:e})=>{if(e)o.streamReader=null;else if(!this._transport.destroyed){this._renderPageChunk(t,o);pump()}},t=>{o.streamReader=null;if(!this._transport.destroyed){if(o.operatorList){o.operatorList.lastChunk=!0;for(const t of o.renderTasks)t.operatorListChanged();this.#Zs()}if(o.displayReadyCapability)o.displayReadyCapability.reject(t);else{if(!o.opListReadCapability)throw t;o.opListReadCapability.reject(t)}}})};pump()}_abortOperatorList({intentState:t,reason:e,force:i=!1}){if(t.streamReader){if(t.streamReaderCancelTimeout){clearTimeout(t.streamReaderCancelTimeout);t.streamReaderCancelTimeout=null}if(!i){if(t.renderTasks.size>0)return;if(e instanceof RenderingCancelledException){let i=100;e.extraDelay>0&&e.extraDelay<1e3&&(i+=e.extraDelay);t.streamReaderCancelTimeout=setTimeout(()=>{t.streamReaderCancelTimeout=null;this._abortOperatorList({intentState:t,reason:e,force:!0})},i);return}}t.streamReader.cancel(new AbortException(e.message)).catch(()=>{});t.streamReader=null;if(!this._transport.destroyed){for(const[e,i]of this._intentStates)if(i===t){this._intentStates.delete(e);break}this.cleanup()}}}get stats(){return this._stats}}class PDFWorker{#bs=Promise.withResolvers();#ta=null;#qr=null;#ea=null;static#ia=0;static#na=!1;static#ra=new WeakMap;static{if(ui){this.#na=!0;GlobalWorkerOptions.workerSrc||="./pdf.worker.mjs"}this._isSameOrigin=(t,e)=>{const i=URL.parse(t);if(!i?.origin||"null"===i.origin)return!1;const n=new URL(e,i);return i.origin===n.origin};this._createCDNWrapper=t=>{const e=`await import("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))}}constructor({name:t=null,port:e=null,verbosity:i=getVerbosityLevel()}={}){this.name=t;this.destroyed=!1;this.verbosity=i;if(e){if(PDFWorker.#ra.has(e))throw new Error("Cannot use more than one PDFWorker per port.");PDFWorker.#ra.set(e,this);this.#sa(e)}else this.#aa()}get promise(){return this.#bs.promise}#oa(){this.#bs.resolve();this.#ta.send("configure",{verbosity:this.verbosity})}get port(){return this.#qr}get messageHandler(){return this.#ta}#sa(t){this.#qr=t;this.#ta=new MessageHandler("main","worker",t);this.#ta.on("ready",()=>{});this.#oa()}#aa(){if(PDFWorker.#na||PDFWorker.#la){this.#ca();return}let{workerSrc:t}=PDFWorker;try{PDFWorker._isSameOrigin(window.location,t)||(t=PDFWorker._createCDNWrapper(new URL(t,window.location).href));const e=new Worker(t,{type:"module"}),i=new MessageHandler("main","worker",e),terminateEarly=()=>{n.abort();i.destroy();e.terminate();this.destroyed?this.#bs.reject(new Error("Worker was destroyed")):this.#ca()},n=new AbortController;e.addEventListener("error",()=>{this.#ea||terminateEarly()},{signal:n.signal});i.on("ready",t=>{n.abort();if(!this.destroyed&&t instanceof Uint8Array){this.#ta=i;this.#qr=e;this.#ea=e;this.#oa()}else terminateEarly()})}catch{info("The worker has been disabled.");this.#ca()}}#ca(){if(!PDFWorker.#na){warn("Setting up fake worker.");PDFWorker.#na=!0}PDFWorker._setupFakeWorkerGlobal.then(t=>{if(this.destroyed){this.#bs.reject(new Error("Worker was destroyed"));return}const e=new LoopbackPort;this.#qr=e;const i="fake"+PDFWorker.#ia++,n=new MessageHandler(i+"_worker",i,e);t.setup(n,e);this.#ta=new MessageHandler(i,i+"_worker",e);this.#oa()}).catch(t=>{this.#bs.reject(new Error(`Setting up fake worker failed: "${t.message}".`))})}destroy(){this.destroyed=!0;this.#ea?.terminate();this.#ea=null;PDFWorker.#ra.delete(this.#qr);this.#qr=null;this.#ta?.destroy();this.#ta=null}static create(t){const e=this.#ra.get(t?.port);if(e){if(e._pendingDestroy)throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return e}return new PDFWorker(t)}static get workerSrc(){if(GlobalWorkerOptions.workerSrc)return GlobalWorkerOptions.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get#la(){try{return globalThis.pdfjsWorker?.WorkerMessageHandler||null}catch{return null}}static get _setupFakeWorkerGlobal(){return util_shadow(this,"_setupFakeWorkerGlobal",(async()=>{if(this.#la)return this.#la;return(await(import(
25
+ /*webpackIgnore: true*/
26
+ /*@vite-ignore*/
27
+ this.workerSrc))).WorkerMessageHandler})())}}class WorkerTransport{downloadInfoCapability=Promise.withResolvers();#ha=null;#da=new Map;#ua=null;#pa=new Map;#ga=new Map;#fa=new Map;#ma=null;#ba=null;constructor(t,e,i,n,r,s){this.messageHandler=t;this.loadingTask=e;this.#ua=i;this.commonObjs=new PDFObjects;this.fontLoader=new FontLoader({ownerDocument:n.ownerDocument,styleElement:n.styleElement});this.enableHWA=n.enableHWA;this.loadingParams=n.loadingParams;this._params=n;this.canvasFactory=r.canvasFactory;this.filterFactory=r.filterFactory;this.binaryDataFactory=r.binaryDataFactory;this.pagesMapper=s;this.destroyed=!1;this.destroyCapability=null;this.setupMessageHandler()}updatePage(t){this.#pa.set(t._id,t);this.#ga.set(t._pageIndex,Promise.resolve(t))}#ya(t,e=null){return this.#da.getOrInsertComputed(t,()=>this.messageHandler.sendWithPromise(t,e))}#jr({loaded:t,total:e}){this.loadingTask.onProgress?.({loaded:t,total:e,percent:e?MathClamp(Math.round(t/e*100),0,100):NaN})}get annotationStorage(){return util_shadow(this,"annotationStorage",new AnnotationStorage)}getRenderingIntent(t,e=Ci.ENABLE,i=null,n=!1,r=!1){let s=yi,a=un;switch(t){case"any":s=bi;break;case"display":break;case"print":s=wi;break;default:warn(`getRenderingIntent - invalid intent: ${t}`)}const o=s&wi&&i instanceof PrintAnnotationStorage?i:this.annotationStorage;switch(e){case Ci.DISABLE:s+=Ai;break;case Ci.ENABLE:break;case Ci.ENABLE_FORMS:s+=vi;break;case Ci.ENABLE_STORAGE:s+=_i;a=o.serializable;break;default:warn(`getRenderingIntent - invalid annotationMode: ${e}`)}n&&(s+=xi);r&&(s+=Ei);const{ids:l,hash:c}=o.modifiedIds;return{renderingIntent:s,cacheKey:[s,a.hash,c].join("_"),annotationStorageSerializable:a,modifiedIds:l}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0;this.destroyCapability=Promise.withResolvers();this.#ma?.reject(new Error("Worker was destroyed during onPassword callback"));const t=[];for(const e of this.#pa.values())t.push(e._destroy());this.#pa.clear();this.#ga.clear();this.#fa.clear();Object.hasOwn(this,"annotationStorage")&&this.annotationStorage.resetModified();const e=this.messageHandler.sendWithPromise("Terminate",null);t.push(e);Promise.all(t).then(()=>{this.commonObjs.clear();this.fontLoader.clear();this.#da.clear();this.filterFactory.destroy();TextLayer.cleanup();this.#ua?.cancelAllRequests(new AbortException("Worker was terminated."));this.messageHandler?.destroy();this.messageHandler=null;this.destroyCapability.resolve()},this.destroyCapability.reject);return this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:t,loadingTask:e}=this;t.on("GetReader",(t,e)=>{util_assert(this.#ua,"GetReader - no `BasePDFStream` instance available.");this.#ha=this.#ua.getFullReader();this.#ha.onProgress=t=>this.#jr(t);e.onPull=()=>{this.#ha.read().then(function({value:t,done:i}){if(i)e.close();else{util_assert(t instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer.");e.enqueue(new Uint8Array(t),1,[t])}}).catch(t=>{e.error(t)})};e.onCancel=t=>{this.#ha.cancel(t);e.ready.catch(t=>{if(!this.destroyed)throw t})}});t.on("ReaderHeadersReady",async t=>{await this.#ha.headersReady;const{isStreamingSupported:e,isRangeSupported:i,contentLength:n}=this.#ha;e&&i&&(this.#ha.onProgress=null);return{isStreamingSupported:e,isRangeSupported:i,contentLength:n}});t.on("GetRangeReader",(t,e)=>{util_assert(this.#ua,"GetRangeReader - no `BasePDFStream` instance available.");const i=this.#ua.getRangeReader(t.begin,t.end);if(i){e.onPull=()=>{i.read().then(function({value:t,done:i}){if(i)e.close();else{util_assert(t instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer.");e.enqueue(new Uint8Array(t),1,[t])}}).catch(t=>{e.error(t)})};e.onCancel=t=>{i.cancel(t);e.ready.catch(t=>{if(!this.destroyed)throw t})}}else e.close()});t.on("GetDoc",({pdfInfo:t})=>{this.pagesMapper.pagesNumber=t.numPages;this._numPages=t.numPages;this._htmlForXfa=t.htmlForXfa;delete t.htmlForXfa;e._capability.resolve(new PDFDocumentProxy(t,this))});t.on("DocException",t=>{e._capability.reject(wrapReason(t))});t.on("PasswordRequest",t=>{this.#ma=Promise.withResolvers();try{if(!e.onPassword)throw wrapReason(t);const updatePassword=t=>{t instanceof Error?this.#ma.reject(t):this.#ma.resolve({password:t})};e.onPassword(updatePassword,t.code)}catch(t){this.#ma.reject(t)}return this.#ma.promise});t.on("DataLoaded",t=>{this.#jr({loaded:t.length,total:t.length});this.downloadInfoCapability.resolve(t)});t.on("StartRenderPage",t=>{if(this.destroyed)return;this.#pa.get(t.pageProxyId)._startRenderPage(t.transparency,t.cacheKey)});t.on("commonobj",([e,i,n])=>{if(this.destroyed)return null;if(this.commonObjs.has(e))return null;switch(i){case"Font":if("error"in n){const t=n.error;warn(`Error during font loading: ${t}`);this.commonObjs.resolve(e,t);break}const r=new FontInfo(n.buffer),s=this._params.pdfBug&&globalThis.FontInspector?.enabled?(t,e)=>globalThis.FontInspector.fontAdded(t,e):null,a=new FontFaceObject(r,s,n.charProcOperatorList,n.extra);this.fontLoader.bind(a).catch(()=>t.sendWithPromise("FontFallback",{id:e})).finally(()=>{a.fontExtraProperties||a.clearData();this.commonObjs.resolve(e,a)});break;case"CopyLocalImage":const{imageRef:o}=n;util_assert(o,"The imageRef must be defined.");for(const t of this.#pa.values())for(const[,i]of t.objs){if(i?.ref!==o)continue;if(!i.dataLen)return null;const t=structuredClone(i);this.commonObjs.resolve(e,t);return i.dataLen}break;case"FontPath":this.commonObjs.resolve(e,new FontPathInfo(n));break;case"Image":this.commonObjs.resolve(e,n);break;case"Pattern":const l=new PatternInfo(n);this.commonObjs.resolve(e,l.getIR());break;default:throw new Error(`Got unknown common object type ${i}`)}return null});t.on("obj",([t,e,i,n])=>{if(this.destroyed)return;const r=this.#pa.get(e);if(!r.objs.has(t))if(0!==r._intentStates.size)switch(i){case"Image":case"Pattern":r.objs.resolve(t,n);break;default:throw new Error(`Got unknown object type ${i}`)}else n?.bitmap?.close()});t.on("DocProgress",t=>{this.destroyed||this.#jr(t)});t.on("FetchBinaryData",async t=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.binaryDataFactory)throw new Error("`BinaryDataFactory` not initialized, see the `useWorkerFetch` parameter.");return this.binaryDataFactory.fetch(t)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(t=null){this.annotationStorage.size<=0&&warn("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:e,transfer:i}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:e,supportsPrintToPDF:null!==this.#ba,filename:this.#ha?.filename??null},i).finally(()=>{this.#ba=null;this.annotationStorage.resetModified()})}extractPages(t,e=null){const i={pageInfos:t};let n;const r=globalThis.ImageBitmap;if("function"==typeof r){const e=Array.isArray(t)?t:[t];for(const t of e)t?.image instanceof r&&(n||=[]).push(t.image)}if(this.annotationStorage.size>0){const t=this.annotationStorage.serializable;let{map:r}=t;t.transfer?.length&&(n?n.push(...t.transfer):n=t.transfer);const s=this.pagesMapper.getMapping();if(s){const t=new Map;for(const[i,n]of r){if(void 0!==n?.pageIndex&&n.pageIndex>=0&&n.pageIndex<s.length){const r=e?.[n.pageIndex]??0,a=s[n.pageIndex]-1;if(a!==n.pageIndex||0!==r){t.set(i,{...n,pageIndex:a,copyLevel:r});continue}}t.set(i,n)}r=t}i.annotationStorage=r}return this.messageHandler.sendWithPromise("ExtractPages",i,n).finally(()=>{this.annotationStorage.resetModified()})}getPage(t){if(!Number.isInteger(t)||t<=0||t>this.pagesMapper.pagesNumber)return Promise.reject(new Error("Invalid page request."));const e=t-1,i=this.pagesMapper.getPageId(t)-1,n=this.#ga.get(e);if(n)return n;const r=this.messageHandler.sendWithPromise("GetPage",{pageIndex:i}).then(t=>{if(this.destroyed)throw new Error("Transport destroyed");t.refStr&&this.#fa.set(t.refStr,i);const n=new PDFPageProxy(e,t,this,this.pagesMapper,this._params.pdfBug);this.#pa.set(n._id,n);return n});this.#ga.set(e,r);return r}async getPageIndex(t){if(!isRefProxy(t))throw new Error("Invalid pageIndex request.");const e=await this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen}),i=this.pagesMapper.getPageNumber(e+1);if(0===i)throw new Error("GetPageIndex: page has been removed.");return i-1}getAnnotations(t,e){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:this.pagesMapper.getPageId(t+1)-1,intent:e})}getFieldObjects(){return this.#ya("GetFieldObjects")}getSignatures(){return this.#ya("GetSignatures")}getSignatureData(t){return this.messageHandler.sendWithPromise("GetSignatureData",t)}hasJSActions(){return this.#ya("HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(t){return"string"!=typeof t?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getAttachmentContent(t){return this.messageHandler.sendWithPromise("GetAttachmentContent",t)}getAnnotationsByType(t,e){return this.messageHandler.sendWithPromise("GetAnnotationsByType",{types:t,pageIndexesToSkip:e})}getDocJSActions(){return this.#ya("GetDocJSActions")}getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:this.pagesMapper.getPageId(t+1)-1})}getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:this.pagesMapper.getPageId(t+1)-1})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(t){return this.#ya("GetOptionalContentConfig").then(e=>new OptionalContentConfig(e,t))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const t="GetMetadata";return this.#da.getOrInsertComputed(t,()=>this.messageHandler.sendWithPromise(t,null).then(t=>({info:t[0],metadata:t[1]?new Metadata(t[1]):null,contentDispositionFilename:this.#ha?.filename??null,contentLength:this.#ha?.contentLength??null,hasStructTree:t[2]})))}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(t=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const t of this.#pa.values()){if(!t.cleanup())throw new Error(`startCleanup: Page ${t.pageNumber} is currently rendering.`)}this.commonObjs.clear();t||this.fontLoader.clear();this.#da.clear();this.filterFactory.destroy(!0);TextLayer.cleanup()}}cachedPageNumber(t){if(!isRefProxy(t))return null;const e=0===t.gen?`${t.num}R`:`${t.num}R${t.gen}`,i=this.#fa.get(e);if(i>=0){const t=this.pagesMapper.getPageNumber(i+1);if(0!==t)return t}return null}}class RenderTask{_internalRenderTask=null;onContinue=null;onError=null;constructor(t){this._internalRenderTask=t}get promise(){return this._internalRenderTask.capability.promise}cancel(t=0){this._internalRenderTask.cancel(null,t)}get separateAnnots(){const{separateAnnots:t}=this._internalRenderTask.operatorList;if(!t)return!1;const{annotationCanvasMap:e}=this._internalRenderTask;return t.form||t.canvas&&e?.size>0}get imageCoordinates(){return this._internalRenderTask.imageCoordinates||null}}class InternalRenderTask{#wa=null;static#va=new WeakSet;constructor({callback:t,params:e,objs:i,commonObjs:n,annotationCanvasMap:r,operatorList:s,pageIndex:a,canvasFactory:o,filterFactory:l,useRequestAnimationFrame:c=!1,pdfBug:h=!1,pageColors:d=null,enableHWA:u=!1,operationsFilter:p=null}){this.callback=t;this.params=e;this.objs=i;this.commonObjs=n;this.annotationCanvasMap=r;this.operatorListIdx=null;this.operatorList=s;this._pageIndex=a;this.canvasFactory=o;this.filterFactory=l;this._pdfBug=h;this.pageColors=d;this.running=!1;this.graphicsReadyCallback=null;this.graphicsReady=!1;this._useRequestAnimationFrame=!0===c&&"undefined"!=typeof window;this.cancelled=!1;this.capability=Promise.withResolvers();this.task=new RenderTask(this);this._cancelBound=this.cancel.bind(this);this._continueBound=this._continue.bind(this);this._scheduleNextBound=this._scheduleNext.bind(this);this._nextBound=this._next.bind(this);this._canvas=e.canvas;this._canvasContext=e.canvas?null:e.canvasContext;this._enableHWA=u;this._dependencyTracker=e.dependencyTracker;this._imagesTracker=e.imagesTracker;this._operationsFilter=p}get completed(){return this.capability.promise.catch(()=>{})}initializeGraphics({transparency:t=!1,optionalContentConfig:e}){if(this.cancelled)return;if(this._canvas){if(InternalRenderTask.#va.has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");InternalRenderTask.#va.add(this._canvas)}if(this._pdfBug&&globalThis.StepperManager?.enabled){this.stepper=globalThis.StepperManager.create(this._pageIndex);this.stepper.init(this.operatorList);this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint()}const{viewport:i,transform:n,background:r,dependencyTracker:s,imagesTracker:a}=this.params,o=this._canvasContext||this._canvas.getContext("2d",{alpha:!1,willReadFrequently:!this._enableHWA});this.gfx=new CanvasGraphics(o,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:e},this.annotationCanvasMap,this.pageColors,s,a);this.gfx.beginDrawing({transform:n,viewport:i,transparency:t,background:r});this.operatorListIdx=0;this.graphicsReady=!0;this.graphicsReadyCallback?.()}cancel(t=null,e=0){this.running=!1;this.cancelled=!0;this.gfx?.endDrawing();if(this.#wa){window.cancelAnimationFrame(this.#wa);this.#wa=null}InternalRenderTask.#va.delete(this._canvas);t||=new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex+1}`,e);this.callback(t);this.task.onError?.(t)}operatorListChanged(){if(this.graphicsReady){this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length);this.stepper?.updateOperatorList(this.operatorList);this.running||this._continue()}else this.graphicsReadyCallback||=this._continueBound}_continue(){this.running=!0;this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?this.#wa=window.requestAnimationFrame(()=>{this.#wa=null;this._nextBound().catch(this._cancelBound)}):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){if(!this.cancelled){this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper,this._operationsFilter);if(this.operatorListIdx===this.operatorList.argsArray.length){this.running=!1;if(this.operatorList.lastChunk){this.gfx.endDrawing();InternalRenderTask.#va.delete(this._canvas);this.callback()}}}}}const Yn="6.4.299",Jn="d0991a0d5";qe();class ColorPicker{#_a=null;#Aa=null;#xa;#Ea=null;#Ca=!1;#Sa=!1;#o=null;#Ta;#ka=null;#w=null;static#Da=null;static get _keyboardManager(){return util_shadow(this,"_keyboardManager",new KeyboardManager([[["Escape"],ColorPicker.prototype._hideDropdownFromKeyboard],[["Space"],ColorPicker.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight"],ColorPicker.prototype._moveToNext],[["ArrowUp","ArrowLeft"],ColorPicker.prototype._moveToPrevious],[["Home"],ColorPicker.prototype._moveToBeginning],[["End"],ColorPicker.prototype._moveToEnd]]))}constructor({editor:t=null,uiManager:e=null}){if(t){this.#Sa=!1;this.#o=t}else this.#Sa=!0;this.#w=t?._uiManager||e;this.#Ta=this.#w._eventBus;this.#xa=t?.color?.toUpperCase()||this.#w?.highlightColors.values().next().value||"#FFFF98";ColorPicker.#Da||=Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"})}renderButton(){const t=this.#_a=document.createElement("button");t.className="colorPicker";t.tabIndex="0";t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button");t.ariaHasPopup="true";this.#o&&(t.ariaControls=`${this.#o.id}_colorpicker_dropdown`);const e=this.#w._signal;t.addEventListener("click",this.#Pa.bind(this),{signal:e});t.addEventListener("keydown",this.#Ma.bind(this),{signal:e});const i=this.#Aa=document.createElement("span");i.className="swatch";i.ariaHidden="true";i.style.backgroundColor=this.#xa;t.append(i);return t}renderMainDropdown(){const t=this.#Ea=this.#Ia();t.ariaOrientation="horizontal";t.ariaLabelledBy="highlightColorPickerLabel";return t}#Ia(){const t=document.createElement("div"),e=this.#w._signal;t.addEventListener("contextmenu",noContextMenu,{signal:e});t.className="dropdown";t.role="listbox";t.ariaMultiSelectable="false";t.ariaOrientation="vertical";t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown");this.#o&&(t.id=`${this.#o.id}_colorpicker_dropdown`);for(const[i,n]of this.#w.highlightColors){const r=document.createElement("button");r.tabIndex="0";r.role="option";r.setAttribute("data-color",n);r.title=i;r.setAttribute("data-l10n-id",ColorPicker.#Da[i]);const s=document.createElement("span");r.append(s);s.className="swatch";s.style.backgroundColor=n;r.ariaSelected=n===this.#xa;r.addEventListener("click",this.#Fa.bind(this,n),{signal:e});t.append(r)}t.addEventListener("keydown",this.#Ma.bind(this),{signal:e});return t}#Fa(t,e){e.stopPropagation();this.#Ta.dispatch("switchannotationeditorparams",{source:this,type:Di.HIGHLIGHT_COLOR,value:t});this.update(t)}_colorSelectFromKeyboard(t){if(t.target===this.#_a){this.#Pa(t);return}const e=t.target.getAttribute("data-color");e&&this.#Fa(e,t)}_moveToNext(t){this.#Oa?t.target!==this.#_a?t.target.nextSibling?.focus():this.#Ea.firstElementChild?.focus():this.#Pa(t)}_moveToPrevious(t){if(t.target!==this.#Ea?.firstElementChild&&t.target!==this.#_a){this.#Oa||this.#Pa(t);t.target.previousSibling?.focus()}else this.#Oa&&this._hideDropdownFromKeyboard()}_moveToBeginning(t){this.#Oa?this.#Ea.firstElementChild?.focus():this.#Pa(t)}_moveToEnd(t){this.#Oa?this.#Ea.lastElementChild?.focus():this.#Pa(t)}#Ma(t){ColorPicker._keyboardManager.exec(this,t)}#Pa(t){if(this.#Oa){this.hideDropdown();return}this.#Ca=0===t.detail;if(!this.#ka){this.#ka=new AbortController;window.addEventListener("pointerdown",this.#g.bind(this),{signal:this.#w.combinedSignal(this.#ka)})}this.#_a.ariaExpanded="true";if(this.#Ea){this.#Ea.classList.remove("hidden");return}const e=this.#Ea=this.#Ia();this.#_a.append(e)}#g(t){this.#Ea?.contains(t.target)||this.hideDropdown()}hideDropdown(){this.#Ea?.classList.add("hidden");this.#_a.ariaExpanded="false";this.#ka?.abort();this.#ka=null}get#Oa(){return this.#Ea&&!this.#Ea.classList.contains("hidden")}_hideDropdownFromKeyboard(){if(!this.#Sa)if(this.#Oa){this.hideDropdown();this.#_a.focus({preventScroll:!0,focusVisible:this.#Ca})}else this.#o?.unselect()}update(t){this.#Aa&&(this.#Aa.style.backgroundColor=t);if(!this.#Ea)return;const e=this.#w.highlightColors.values();for(const i of this.#Ea.children)i.ariaSelected=e.next().value===t.toUpperCase()}destroy(){this.#_a?.remove();this.#_a=null;this.#Aa=null;this.#Ea?.remove();this.#Ea=null}}class BasicColorPicker{#Ra=null;#Ba=!1;#o=null;#w=null;static#Da=null;constructor(t){this.#o=t;this.#w=t._uiManager;BasicColorPicker.#Da||=Object.freeze({freetext:"pdfjs-editor-color-picker-free-text-input",ink:"pdfjs-editor-color-picker-ink-input"})}renderButton(){if(this.#Ra)return this.#Ra;const{editorType:t,colorType:e,colorAndOpacityType:i,opacityType:n,color:r,opacity:s}=this.#o,a=this.#Ba=FeatureTest.isAlphaColorInputSupported&&void 0!==n,o=this.#Ra=document.createElement("input");o.type="color";if(a){o.setAttribute("alpha","");const t=Util.hexNums[Math.round(255*(s??1))];o.value=(r||"#000000")+t}else o.value=r||"#000000";o.className="basicColorPicker";o.tabIndex=0;o.setAttribute("data-l10n-id",BasicColorPicker.#Da[t]);o.addEventListener("input",()=>{if(a){const t=getRGBA(o.value);if(!t)return;const[r,s,a,l]=t,c=Util.makeHexColor(r,s,a);if(void 0!==i)this.#w.updateParams(i,{color:c,opacity:l});else{this.#w.updateParams(e,c);this.#w.updateParams(n,l)}}else this.#w.updateParams(e,o.value)},{signal:this.#w._signal});return o}update(t){if(this.#Ra)if(this.#Ba){const e=Util.hexNums[Math.round(255*this.#o.opacity)];this.#Ra.value=t+e}else this.#Ra.value=t}updateOpacity(t){if(!this.#Ra||!this.#Ba)return;const e=Util.hexNums[Math.round(255*t)];this.#Ra.value=this.#o.color+e}destroy(){this.#Ra?.remove();this.#Ra=null}hideDropdown(){}}Le();function makeColorComp(t){return Math.floor(255*MathClamp(t,0,1)).toString(16).padStart(2,"0")}function scaleAndClamp(t){return 255*MathClamp(t,0,1)}class ColorConverters{static CMYK_G([t,e,i,n]){return["G",1-Math.min(1,.3*t+.59*i+.11*e+n)]}static G_CMYK([t]){return["CMYK",0,0,0,1-t]}static G_RGB([t]){return["RGB",t,t,t]}static G_rgb([t]){return[t=scaleAndClamp(t),t,t]}static G_HTML([t]){const e=makeColorComp(t);return`#${e}${e}${e}`}static RGB_G([t,e,i]){return["G",.3*t+.59*e+.11*i]}static RGB_rgb(t){return t.map(scaleAndClamp)}static RGB_HTML(t){return`#${t.map(makeColorComp).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([t,e,i,n]){return["RGB",1-Math.min(1,t+n),1-Math.min(1,i+n),1-Math.min(1,e+n)]}static CMYK_rgb([t,e,i,n]){return[scaleAndClamp(1-Math.min(1,t+n)),scaleAndClamp(1-Math.min(1,i+n)),scaleAndClamp(1-Math.min(1,e+n))]}static CMYK_HTML(t){const e=this.CMYK_RGB(t).slice(1);return this.RGB_HTML(e)}static RGB_CMYK([t,e,i]){const n=1-t,r=1-e,s=1-i;return["CMYK",n,r,s,Math.min(n,r,s)]}}class BaseSVGFactory{create(t,e,i=!1){if(t<=0||e<=0)throw new Error("Invalid SVG dimensions");const n=this._createSVG("svg:svg");n.setAttribute("version","1.1");if(!i){n.setAttribute("width",`${t}px`);n.setAttribute("height",`${e}px`)}n.setAttribute("preserveAspectRatio","none");n.setAttribute("viewBox",`0 0 ${t} ${e}`);return n}createElement(t){if("string"!=typeof t)throw new Error("Invalid SVG element type");return this._createSVG(t)}_createSVG(t){unreachable("Abstract method `_createSVG` called.")}}class DOMSVGFactory extends BaseSVGFactory{_createSVG(t){return document.createElementNS(mi,t)}}const Qn=new WeakSet,Zn=60*(new Date).getTimezoneOffset()*1e3;class AnnotationElementFactory{static create(t){switch(t.data.annotationType){case Ni.LINK:return new LinkAnnotationElement(t);case Ni.TEXT:return new TextAnnotationElement(t);case Ni.WIDGET:switch(t.data.fieldType){case"Tx":return new TextWidgetAnnotationElement(t);case"Btn":return t.data.radioButton?new RadioButtonWidgetAnnotationElement(t):t.data.checkBox?new CheckboxWidgetAnnotationElement(t):new PushButtonWidgetAnnotationElement(t);case"Ch":return new ChoiceWidgetAnnotationElement(t);case"Sig":return new SignatureWidgetAnnotationElement(t)}return new WidgetAnnotationElement(t);case Ni.POPUP:return new PopupAnnotationElement(t);case Ni.FREETEXT:return new FreeTextAnnotationElement(t);case Ni.LINE:return new LineAnnotationElement(t);case Ni.SQUARE:return new SquareAnnotationElement(t);case Ni.CIRCLE:return new CircleAnnotationElement(t);case Ni.POLYLINE:return new PolylineAnnotationElement(t);case Ni.CARET:return new CaretAnnotationElement(t);case Ni.INK:return new InkAnnotationElement(t);case Ni.POLYGON:return new PolygonAnnotationElement(t);case Ni.HIGHLIGHT:return new HighlightAnnotationElement(t);case Ni.UNDERLINE:return new UnderlineAnnotationElement(t);case Ni.SQUIGGLY:return new SquigglyAnnotationElement(t);case Ni.STRIKEOUT:return new StrikeOutAnnotationElement(t);case Ni.STAMP:return new StampAnnotationElement(t);case Ni.FILEATTACHMENT:return new FileAttachmentAnnotationElement(t);case Ni.RICHMEDIA:case Ni.SCREEN:case Ni.SOUND:return new MediaAnnotationElement(t);default:return new AnnotationElement(t)}}}class AnnotationElement{#La=null;#Na=!1;#Ua=null;constructor(t,{isRenderable:e=!1,ignoreBorder:i=!1,createQuadrilaterals:n=!1}={}){this.isRenderable=e;this.data=t.data;this.layer=t.layer;this.linkService=t.linkService;this.downloadManager=t.downloadManager;this.imageResourcesPath=t.imageResourcesPath;this.renderForms=t.renderForms;this.svgFactory=t.svgFactory;this.annotationStorage=t.annotationStorage;this.enableComment=t.enableComment;this.enableScripting=t.enableScripting;this.hasJSActions=t.hasJSActions;this._fieldObjects=t.fieldObjects;this.parent=t.parent;this.hasOwnCommentButton=!1;e&&(this.contentElement=this.container=this._createContainer(i));n&&this._createQuadrilaterals()}static _hasPopupData({contentsObj:t,richText:e}){return!(!t?.str&&!e?.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return AnnotationElement._hasPopupData(this.data)||this.enableComment&&!!this.commentText}get commentData(){const{data:t}=this,e=this.annotationStorage?.getEditor(t.id);return e?e.getData():t}get hasCommentButton(){return this.enableComment&&this.hasPopupElement}get commentButtonPosition(){const t=this.annotationStorage?.getEditor(this.data.id);if(t)return t.commentButtonPositionInPage;const{quadPoints:e,inkLists:i,rect:n}=this.data;let r=-1/0,s=-1/0;if(e?.length>=8){for(let t=0;t<e.length;t+=8)if(e[t+1]>s){s=e[t+1];r=e[t+2]}else e[t+1]===s&&(r=Math.max(r,e[t+2]));return[r,s]}if(i?.length>=1){for(const t of i)for(let e=0,i=t.length;e<i;e+=2)if(t[e+1]>s){s=t[e+1];r=t[e]}else t[e+1]===s&&(r=Math.max(r,t[e]));if(r!==1/0)return[r,s]}return n?[n[2],n[3]]:null}_normalizePoint(t){const{page:{view:e},viewport:{rawDims:{pageWidth:i,pageHeight:n,pageX:r,pageY:s}}}=this.parent;t[1]=e[3]-t[1]+e[1];t[0]=100*(t[0]-r)/i;t[1]=100*(t[1]-s)/n;return t}get commentText(){const{data:t}=this;return this.annotationStorage.getRawValue(`${Ti}${t.id}`)?.popup?.contents||t.contentsObj?.str||""}set commentText(t){const{data:e}=this,i={deleted:!t,contents:t||""};this.annotationStorage.updateEditor(e.id,{popup:i})||this.annotationStorage.setValue(`${Ti}${e.id}`,{id:e.id,annotationType:e.annotationType,page:this.parent.page,popup:i,popupRef:e.popupRef,modificationDate:new Date});t||this.removePopup()}removePopup(){(this.#Ua?.popup||this.popup)?.remove();this.#Ua=this.popup=null}updateEdited(t){if(!this.container)return;t.rect&&(this.#La||={rect:this.data.rect.slice(0)});const{rect:e,popup:i}=t;e&&this.#Ha(e);let n=this.#Ua?.popup||this.popup;if(!n&&i?.text){this._createPopup(i);n=this.#Ua.popup}if(n){n.updateEdited(t);if(i?.deleted){n.remove();this.#Ua=null;this.popup=null}}}resetEdited(){if(this.#La){this.#Ha(this.#La.rect);this.#Ua?.popup.resetEdited();this.#La=null}}#Ha(t){const{container:{style:e},data:{rect:i,rotation:n},parent:{viewport:{rawDims:{pageWidth:r,pageHeight:s,pageX:a,pageY:o}}}}=this;i?.splice(0,4,...t);e.left=100*(t[0]-a)/r+"%";e.top=100*(s-t[3]+o)/s+"%";if(0===n){e.width=100*(t[2]-t[0])/r+"%";e.height=100*(t[3]-t[1])/s+"%"}else this.setRotation(n)}_createContainer(t){const{data:e,parent:{page:i,viewport:n}}=this,r=document.createElement("section");r.setAttribute("data-annotation-id",e.id);this instanceof WidgetAnnotationElement||this instanceof LinkAnnotationElement||this instanceof MediaAnnotationElement||(r.tabIndex=0);const{style:s}=r;s.zIndex=this.parent.zIndex;this.parent.zIndex+=2;e.alternativeText&&(r.title=e.alternativeText);e.noRotate&&r.classList.add("norotate");if(!e.rect||this instanceof PopupAnnotationElement){const{rotation:t}=e;e.hasOwnCanvas||0===t||this.setRotation(t,r);return r}const{width:a,height:o}=this;if(!t&&e.borderStyle.width>0){s.borderWidth=`${e.borderStyle.width}px`;const t=e.borderStyle.horizontalCornerRadius,i=e.borderStyle.verticalCornerRadius;if(t>0||i>0){const e=`calc(${t}px * var(--total-scale-factor)) / calc(${i}px * var(--total-scale-factor))`;s.borderRadius=e}switch(e.borderStyle.style){case Ui:s.borderStyle="solid";break;case Hi:s.borderStyle="dashed";break;case zi:warn("Unimplemented border style: beveled");break;case Gi:warn("Unimplemented border style: inset");break;case ji:s.borderBottomStyle="solid"}const n=e.borderColor||null;if(n){this.#Na=!0;s.borderColor=Util.makeHexColor(...n)}else s.borderWidth=0}const l=Util.normalizeRect([e.rect[0],i.view[3]-e.rect[1]+i.view[1],e.rect[2],i.view[3]-e.rect[3]+i.view[1]]),{pageWidth:c,pageHeight:h,pageX:d,pageY:u}=n.rawDims;s.left=100*(l[0]-d)/c+"%";s.top=100*(l[1]-u)/h+"%";const{rotation:p}=e;if(e.hasOwnCanvas||0===p){s.width=100*a/c+"%";s.height=100*o/h+"%"}else this.setRotation(p,r);return r}setRotation(t,e=this.container){if(!this.data.rect)return;const{pageWidth:i,pageHeight:n}=this.parent.viewport.rawDims;let{width:r,height:s}=this;t%180!=0&&([r,s]=[s,r]);e.style.width=100*r/i+"%";e.style.height=100*s/n+"%";e.setAttribute("data-main-rotation",(360-t)%360)}get _commonActions(){const setColor=(t,e,i)=>{const n=i.detail[t],r=n[0],s=n.slice(1);i.target.style[e]=ColorConverters[`${r}_HTML`](s);this.annotationStorage.setValue(this.data.id,{[e]:ColorConverters[`${r}_rgb`](s)})};return util_shadow(this,"_commonActions",{display:t=>{const{display:e}=t.detail,i=e%2==1;this.container.style.visibility=i?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{noView:i,noPrint:1===e||2===e})},print:t=>{this.annotationStorage.setValue(this.data.id,{noPrint:!t.detail.print})},hidden:t=>{const{hidden:e}=t.detail;this.container.style.visibility=e?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{noPrint:e,noView:e})},focus:t=>{setTimeout(()=>t.target.focus({preventScroll:!1}),0)},userName:t=>{t.target.title=t.detail.userName},readonly:t=>{t.target.disabled=t.detail.readonly},required:t=>{this._setRequired(t.target,t.detail.required)},bgColor:t=>{setColor("bgColor","backgroundColor",t)},fillColor:t=>{setColor("fillColor","backgroundColor",t)},fgColor:t=>{setColor("fgColor","color",t)},textColor:t=>{setColor("textColor","color",t)},borderColor:t=>{setColor("borderColor","borderColor",t)},strokeColor:t=>{setColor("strokeColor","borderColor",t)},rotation:t=>{const e=t.detail.rotation;this.setRotation(e);this.annotationStorage.setValue(this.data.id,{rotation:e})}})}_dispatchEventFromSandbox(t,e){const i=this._commonActions;for(const n of Object.keys(e.detail)){const r=t[n]||i[n];r?.(e)}}_setDefaultPropertiesFromJS(t){if(!this.enableScripting)return;const e=this.annotationStorage.getRawValue(this.data.id);if(!e)return;const i=this._commonActions;for(const[n,r]of Object.entries(e)){const s=i[n];if(s){s({detail:{[n]:r},target:t});delete e[n]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:t}=this.data;if(!t)return;const[e,i,n,r]=this.data.rect.map(Math.fround);if(8===t.length){const[s,a,o,l]=t.subarray(2,6);if(n===s&&r===a&&e===o&&i===l)return}const{style:s}=this.container;let a;if(this.#Na){const{borderColor:t,borderWidth:e}=s;s.borderWidth=0;a=["url('data:image/svg+xml;utf8,",`<svg xmlns="${mi}" preserveAspectRatio="none" viewBox="0 0 1 1">`,`<g fill="transparent" stroke="${t}" stroke-width="${e}">`];this.container.classList.add("hasBorder")}const o=n-e,l=r-i,{svgFactory:c}=this,h=c.createElement("svg");h.classList.add("quadrilateralsContainer");h.setAttribute("width",0);h.setAttribute("height",0);h.role="none";const d=c.createElement("defs");h.append(d);const u=c.createElement("clipPath"),p=`clippath_${this.data.id}`;u.setAttribute("id",p);u.setAttribute("clipPathUnits","objectBoundingBox");d.append(u);for(let i=2,n=t.length;i<n;i+=8){const n=t[i],s=t[i+1],h=t[i+2],d=t[i+3],p=c.createElement("rect"),g=(h-e)/o,f=(r-s)/l,m=(n-h)/o,b=(s-d)/l;p.setAttribute("x",g);p.setAttribute("y",f);p.setAttribute("width",m);p.setAttribute("height",b);u.append(p);a?.push(`<rect vector-effect="non-scaling-stroke" x="${g}" y="${f}" width="${m}" height="${b}"/>`)}if(this.#Na){a.push("</g></svg>')");s.backgroundImage=a.join("")}this.container.append(h);this.container.style.clipPath=`url(#${p})`}_createPopup(t=null){const{data:e}=this;let i,n;if(t){i={str:t.text};n=t.date}else{i=e.contentsObj;n=e.modificationDate}this.#Ua=new PopupAnnotationElement({data:{color:e.color,titleObj:e.titleObj,modificationDate:n,contentsObj:i,richText:e.richText,parentRect:e.rect,borderStyle:0,id:`popup_${e.id}`,rotation:e.rotation,noRotate:!0},linkService:this.linkService,parent:this.parent,elements:[this]})}get hasPopupElement(){return!!(this.#Ua||this.popup||this.data.popupRef)}get extraPopupElement(){return this.#Ua}render(){unreachable("Abstract method `AnnotationElement.render` called")}_getElementsByName(t,e=null){const i=[];if(this._fieldObjects){const n=this._fieldObjects.get(t)||[];for(const{page:t,id:r,exportValues:s}of n){if(-1===t||r===e)continue;const n="string"==typeof s?s:null,a=document.querySelector(`[data-element-id="${r}"]`);!a||Qn.has(a)?i.push({id:r,exportValue:n,domElement:a}):warn(`_getElementsByName - element not allowed: ${r}`)}return i}for(const n of document.getElementsByName(t)){const{exportValue:t}=n,r=n.getAttribute("data-element-id");r!==e&&Qn.has(n)&&i.push({id:r,exportValue:t,domElement:n})}return i}show(){this.container&&(this.container.hidden=!1);this.popup?.maybeShow()}hide(){this.container&&(this.container.hidden=!0);this.popup?.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const t=this.getElementsToTriggerPopup();if(Array.isArray(t))for(const e of t)e.classList.add("highlightArea");else t.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:t,data:{id:e}}=this;this.container.addEventListener("dblclick",()=>{this.linkService.eventBus?.dispatch("switchannotationeditormode",{source:this,mode:t,editId:e,mustEnterInEditMode:!0})})}updateOC(t){if(!this.data.oc||!t)return;t.isVisible(this.data.oc)?this.show():this.hide()}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}_setBackgroundColor(t){const e=this.data.backgroundColor||null;t.style.backgroundColor=null===e?"transparent":Util.makeHexColor(...e)}}class EditorAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0});this.editor=t.editor}render(){this.container.className="editorAnnotation";return this.container}createOrUpdatePopup(){const{editor:t}=this;t.hasComment&&this._createPopup(t.comment)}get hasCommentButton(){return this.enableComment&&this.editor.hasComment}get commentButtonPosition(){return this.editor.commentButtonPositionInPage}get commentText(){return this.editor.comment.text}set commentText(t){this.editor.comment=t;t||this.removePopup()}get commentData(){return this.editor.getData()}remove(){this.parent.removeAnnotation(this.data.id);this.container.remove();this.container=null;this.removePopup()}}class LinkAnnotationElement extends AnnotationElement{constructor(t,e=null){super(t,{isRenderable:!0,ignoreBorder:!!e?.ignoreBorder,createQuadrilaterals:!0});this.isTooltipOnly=t.data.isTooltipOnly}render(){const{data:t,linkService:e}=this,i=document.createElement("a");i.setAttribute("data-element-id",t.id);let n=!1;if(t.url){e.addLinkAttributes(i,t.url,t.newWindow);n=!0}else if(t.action){this._bindNamedAction(i,t.action,t.overlaidText);n=!0}else if(t.attachment){this.#za(i,t.attachmentId,t.attachment,t.overlaidText,t.attachmentDest);n=!0}else if(t.setOCGState){this.#Ga(i,t.setOCGState,t.overlaidText);n=!0}else if(t.dest){this._bindLink(i,t.dest,t.overlaidText);n=!0}else{if(t.actions&&(t.actions.has("Action")||t.actions.has("Mouse Up")||t.actions.has("Mouse Down"))&&this.enableScripting&&this.hasJSActions){this._bindJSAction(i,t);n=!0}if(t.resetForm){this._bindResetFormAction(i,t.resetForm);n=!0}else if(this.isTooltipOnly&&!n){this._bindLink(i,"");n=!0}}this.container.classList.add("linkAnnotation");if(n){this.contentElement=i;this.container.append(i)}return this.container}#ja(){this.container.setAttribute("data-internal-link","")}_bindLink(t,e,i=""){t.href=this.linkService.getDestinationHash(e);t.onclick=()=>{e&&this.linkService.goToDestination(e);return!1};(e||""===e)&&this.#ja();i&&(t.title=i)}_bindNamedAction(t,e,i=""){t.href=this.linkService.getAnchorUrl("");t.onclick=()=>{this.linkService.executeNamedAction(e);return!1};i&&(t.title=i);this.#ja()}#za(t,e,i,n="",r=null){t.href=this.linkService.getAnchorUrl("");i.description?t.title=i.description:n&&(t.title=n);const openAttachment=async()=>{const t=await this.linkService.getAttachmentContent(e);t&&this.downloadManager?.openOrDownloadData(t,i.filename,r)};t.onclick=()=>{openAttachment();return!1};this.#ja()}#Ga(t,e,i=""){t.href=this.linkService.getAnchorUrl("");t.onclick=()=>{this.linkService.executeSetOCGState(e);return!1};i&&(t.title=i);this.#ja()}_bindJSAction(t,{actions:e,id:i,overlaidText:n}){t.href=this.linkService.getAnchorUrl("");const r=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const n of e.keys()){const e=r.get(n);e&&(t[e]=()=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:n}});return!1})}n&&(t.title=n);t.onclick||=()=>!1;this.#ja()}_bindResetFormAction(t,e){const i=t.onclick;i||(t.href=this.linkService.getAnchorUrl(""));this.#ja();if(this._fieldObjects)t.onclick=()=>{i?.();const{fields:t,refs:n,include:r}=e,s=[];if(0!==t.length||0!==n.length){const e=new Set(n);for(const i of t){const t=this._fieldObjects.get(i)||[];for(const{id:i}of t)e.add(i)}const i=new Map;for(const t of this._fieldObjects.values())for(const{id:e,kidIds:n}of t)n&&i.set(e,n);for(const t of e)for(const n of i.get(t)||[])e.add(n);for(const t of this._fieldObjects.values())for(const i of t)e.has(i.id)===r&&s.push(i)}else for(const t of this._fieldObjects.values())s.push(...t);const a=this.annotationStorage,o=[];for(const t of s){const{id:e}=t;o.push(e);switch(t.type){case"text":{const i=t.defaultValue||"";a.setValue(e,{value:i});break}case"checkbox":case"radiobutton":{const i=t.defaultValue===t.exportValues;a.setValue(e,{value:i});break}case"combobox":case"listbox":{const i=t.defaultValue||"";a.setValue(e,{value:i});break}default:continue}const i=document.querySelector(`[data-element-id="${e}"]`);i&&(Qn.has(i)?i.dispatchEvent(new Event("resetform")):warn(`_bindResetFormAction - element not allowed: ${e}`))}this.enableScripting&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:o,name:"ResetForm"}});return!1};else{warn('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.');i||(t.onclick=()=>!1)}}}class TextAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const t=document.createElement("img");t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg";t.setAttribute("data-l10n-id","pdfjs-text-annotation-type");t.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name}));if(!this.data.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.append(t);return this.container}}class WidgetAnnotationElement extends AnnotationElement{render(){return this.container}_getKeyModifier(t){return FeatureTest.platform.isMac?t.metaKey:t.ctrlKey}_setEventListener(t,e,i,n,r){i.includes("mouse")?t.addEventListener(i,t=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:r(t),shift:t.shiftKey,modifier:this._getKeyModifier(t)}})}):t.addEventListener(i,t=>{if("blur"===i){if(!e.focused||!t.relatedTarget)return;e.focused=!1}else if("focus"===i){if(e.focused)return;e.focused=!0}r&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:r(t)}})})}_setEventListeners(t,e,i,n){const{actions:r}=this.data;for(const[s,a]of i)if("Action"===a||r?.has(a)){"Focus"!==a&&"Blur"!==a||(e||={focused:!1});this._setEventListener(t,e,s,a,n);"Focus"!==a||r?.has("Blur")?"Blur"!==a||r?.has("Focus")||this._setEventListener(t,e,"focus","Focus",null):this._setEventListener(t,e,"blur","Blur",null)}}_setTextStyle(t){const e=["left","center","right"],{fontColor:i}=this.data.defaultAppearanceData,n=this.data.defaultAppearanceData.fontSize||9,r=t.style;let s;const roundToOneDecimal=t=>Math.round(10*t)/10;if(this.data.multiLine){const t=Math.abs(this.data.rect[3]-this.data.rect[1]-2),e=t/(Math.round(t/(1.35*n))||1);s=Math.min(n,roundToOneDecimal(e/1.35))}else{const t=Math.abs(this.data.rect[3]-this.data.rect[1]-2);s=Math.min(n,roundToOneDecimal(t/1.35))}r.fontSize=`calc(${s}px * var(--total-scale-factor))`;r.color=Util.makeHexColor(...i);null===this.data.textAlignment||this.data.comb||(r.textAlign=e[this.data.textAlignment])}_setRequired(t,e){e?t.setAttribute("required",!0):t.removeAttribute("required");t.setAttribute("aria-required",e)}}class TextWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms||t.data.hasOwnCanvas||!t.data.hasAppearance&&!!t.data.fieldValue})}setPropertyOnSiblings(t,e,i,n){const r=this.annotationStorage;for(const s of this._getElementsByName(t.name,t.id)){s.domElement&&(s.domElement[e]=i);r.setValue(s.id,{[n]:i})}}render(){const t=this.annotationStorage,e=this.data.id;this.container.classList.add("textWidgetAnnotation");let i=null;if(this.renderForms){const n=t.getValue(e,{value:this.data.fieldValue});let r=n.value||"";const s=t.getValue(e,{charLimit:this.data.maxLen}).charLimit;s&&r.length>s&&(r=r.slice(0,s));let a=n.formattedValue||this.data.textContent?.join("\n")||null;a&&this.data.comb&&(a=a.replaceAll(/\s+/g,""));const o={userValue:r,formattedValue:a,lastCommittedValue:null,commitKey:1,focused:!1};if(this.data.multiLine){i=document.createElement("textarea");i.textContent=a??r;this.data.doNotScroll&&(i.style.overflowY="hidden")}else{i=document.createElement("input");i.type=this.data.password?"password":"text";i.setAttribute("value",a??r);this.data.doNotScroll&&(i.style.overflowX="hidden")}if(this.data.hasOwnCanvas){this.container.classList.add("hasOwnCanvas");t.has(e)&&this.container.classList.add("sandboxModified")}Qn.add(i);this.contentElement=i;i.setAttribute("data-element-id",e);i.disabled=this.data.readOnly;i.name=this.data.fieldName;i.tabIndex=0;const{datetimeFormat:l,datetimeType:c,timeStep:h}=this.data,d=!!c&&this.enableScripting;l&&(i.title=l);this._setRequired(i,this.data.required);s&&(i.maxLength=s);i.addEventListener("input",n=>{t.setValue(e,{value:n.target.value});this.setPropertyOnSiblings(i,"value",n.target.value,"value");o.formattedValue=null});i.addEventListener("resetform",t=>{const e=this.data.defaultFieldValue??"";i.value=o.userValue=e;o.formattedValue=null});let blurListener=t=>{const{formattedValue:e}=o;null!=e&&(t.target.value=e);t.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){i.addEventListener("focus",t=>{if(o.focused)return;const{target:e}=t;if(d){e.type=c;h&&(e.step=h)}if(o.userValue){const t=o.userValue;if(d)if("time"===c){const i=new Date(t),n=[i.getHours(),i.getMinutes(),i.getSeconds()];e.value=n.map(t=>t.toString().padStart(2,"0")).join(":")}else e.value=new Date(t-Zn).toISOString().split("date"===c?"T":".",1)[0];else e.value=t}o.lastCommittedValue=e.value;o.commitKey=1;this.data.actions?.has("Focus")||(o.focused=!0)});i.addEventListener("updatefromsandbox",i=>{this.container.classList.add("sandboxModified");const n={value(i){o.userValue=i.detail.value??"";d||t.setValue(e,{value:o.userValue.toString()});i.target.value=o.userValue},formattedValue(i){const{formattedValue:n}=i.detail;o.formattedValue=n;null!=n&&i.target!==document.activeElement&&(i.target.value=n);const r={formattedValue:n};d&&(r.value=n);t.setValue(e,r)},selRange(t){t.target.setSelectionRange(...t.detail.selRange)},charLimit:i=>{const{charLimit:n}=i.detail,{target:r}=i;if(0===n){r.removeAttribute("maxLength");return}r.setAttribute("maxLength",n);let s=o.userValue;if(s&&!(s.length<=n)){s=s.slice(0,n);r.value=o.userValue=s;t.setValue(e,{value:s});this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:s,willCommit:!0,commitKey:1,selStart:r.selectionStart,selEnd:r.selectionEnd}})}}};this._dispatchEventFromSandbox(n,i)});i.addEventListener("keydown",t=>{o.commitKey=1;let i=-1;"Escape"===t.key?i=0:"Enter"!==t.key||this.data.multiLine?"Tab"===t.key&&(o.commitKey=3):i=2;if(-1===i)return;const{value:n}=t.target;if(o.lastCommittedValue!==n){o.lastCommittedValue=n;o.userValue=n;this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:n,willCommit:!0,commitKey:i,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}})}});const n=blurListener;blurListener=null;i.addEventListener("blur",t=>{if(!o.focused||!t.relatedTarget)return;this.data.actions?.has("Blur")||(o.focused=!1);const{target:i}=t;let{value:r}=i;if(d){if(r&&"time"===c){const t=r.split(":").map(t=>parseInt(t,10));r=new Date(2e3,0,1,t[0],t[1],t[2]||0).valueOf();i.step=""}else{r.includes("T")||(r=`${r}T00:00`);r=new Date(r).valueOf()}i.type="text"}o.userValue=r;o.lastCommittedValue!==r&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:r,willCommit:!0,commitKey:o.commitKey,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}});n(t)});this.data.actions?.has("Keystroke")&&i.addEventListener("beforeinput",t=>{o.lastCommittedValue=null;const{data:i,target:n}=t,{value:r,selectionStart:s,selectionEnd:a}=n;let l=s,c=a;switch(t.inputType){case"deleteWordBackward":{const t=/\w/;for(;l>0&&!t.test(r[l-1]);)l--;for(;l>0&&t.test(r[l-1]);)l--;break}case"deleteWordForward":{const t=r.substring(s).match(/^\W*\w*/);t&&(c+=t[0].length);break}case"deleteContentBackward":s===a&&(l-=1);break;case"deleteContentForward":s===a&&(c+=1)}t.preventDefault();this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:r,change:i||"",willCommit:!1,selStart:l,selEnd:c}})});this._setEventListeners(i,o,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],t=>t.target.value)}blurListener&&i.addEventListener("blur",blurListener);if(this.data.comb){const t=(this.data.rect[2]-this.data.rect[0])/s;i.classList.add("comb");i.style.setProperty("--comb-width",`calc(${t}px * var(--total-scale-factor))`);const e=this.data.textAlignment;if(1===e||2===e){const setCombOffset=()=>{const t=s-i.value.length;i.style.setProperty("--comb-offset",`${1===e?t>>1:t}`)};setCombOffset();for(const t of["input","blur","resetform","updatefromsandbox"])i.addEventListener(t,setCombOffset)}}}else{i=document.createElement("div");i.textContent=this.data.fieldValue;i.style.verticalAlign="middle";i.style.display="table-cell";this.data.hasOwnCanvas&&(i.hidden=!0)}this._setTextStyle(i);this._setBackgroundColor(i);this._setDefaultPropertiesFromJS(i);this.container.append(i);return this.container}}class SignatureWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:!!t.data.hasOwnCanvas})}}class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){const t=this.annotationStorage,e=this.data,i=e.id;let n=t.getValue(i,{value:e.exportValue===e.fieldValue}).value;if("string"==typeof n){n="Off"!==n;t.setValue(i,{value:n})}this.container.classList.add("buttonWidgetAnnotation","checkBox");const r=document.createElement("input");Qn.add(r);r.setAttribute("data-element-id",i);r.disabled=e.readOnly;this._setRequired(r,this.data.required);r.type="checkbox";r.name=e.fieldName;n&&r.setAttribute("checked",!0);r.setAttribute("exportValue",e.exportValue);r.tabIndex=0;r.addEventListener("change",n=>{const{name:r,checked:s}=n.target;for(const n of this._getElementsByName(r,i)){const i=s&&n.exportValue===e.exportValue;n.domElement&&(n.domElement.checked=i);t.setValue(n.id,{value:i})}t.setValue(i,{value:s})});r.addEventListener("resetform",t=>{const i=e.defaultFieldValue||"Off";t.target.checked=i===e.exportValue});if(this.enableScripting&&this.hasJSActions){r.addEventListener("updatefromsandbox",e=>{const n={value(e){e.target.checked="Off"!==e.detail.value;t.setValue(i,{value:e.target.checked})}};this._dispatchEventFromSandbox(n,e)});this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],t=>t.target.checked)}this._setDefaultPropertiesFromJS(r);this.container.append(r);return this.container}}class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const t=this.annotationStorage,e=this.data,i=e.id;let n=t.getValue(i,{value:null!==e.buttonValue&&e.fieldValue===e.buttonValue}).value;if("string"==typeof n){n=n!==e.buttonValue;t.setValue(i,{value:n})}if(n)for(const n of this._getElementsByName(e.fieldName,i))t.setValue(n.id,{value:!1});const r=document.createElement("input");Qn.add(r);r.setAttribute("data-element-id",i);r.disabled=e.readOnly;this._setRequired(r,this.data.required);r.type="radio";r.name=e.fieldName;n&&r.setAttribute("checked",!0);r.tabIndex=0;r.addEventListener("change",e=>{const{name:n,checked:r}=e.target;for(const e of this._getElementsByName(n,i))t.setValue(e.id,{value:!1});t.setValue(i,{value:r})});r.addEventListener("resetform",t=>{const i=e.defaultFieldValue;t.target.checked=null!=i&&i===e.buttonValue});if(this.enableScripting&&this.hasJSActions){const n=e.buttonValue;r.addEventListener("updatefromsandbox",e=>{const r={value:e=>{const r=n===e.detail.value;for(const n of this._getElementsByName(e.target.name)){const e=r&&n.id===i;n.domElement&&(n.domElement.checked=e);t.setValue(n.id,{value:e})}}};this._dispatchEventFromSandbox(r,e)});this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],t=>t.target.checked)}this._setDefaultPropertiesFromJS(r);this.container.append(r);return this.container}}class PushButtonWidgetAnnotationElement extends LinkAnnotationElement{constructor(t){super(t,{ignoreBorder:t.data.hasAppearance})}render(){const t=super.render();t.classList.add("buttonWidgetAnnotation","pushButton");const e=t.lastChild;if(this.enableScripting&&this.hasJSActions&&e){this._setDefaultPropertiesFromJS(e);e.addEventListener("updatefromsandbox",t=>{this._dispatchEventFromSandbox({},t)})}return t}}class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const t=this.annotationStorage,e=this.data.id,i=t.getValue(e,{value:this.data.fieldValue}),n=document.createElement("select");Qn.add(n);n.setAttribute("data-element-id",e);n.disabled=this.data.readOnly;this._setRequired(n,this.data.required);n.name=this.data.fieldName;n.tabIndex=0;let r=this.data.combo&&this.data.options.length>0;if(!this.data.combo){n.size=this.data.options.length;this.data.multiSelect&&(n.multiple=!0)}n.addEventListener("resetform",t=>{const e=this.data.defaultFieldValue;for(const t of n.options)t.selected=t.value===e});const fixDisplayValue=(t,e)=>{const i=e.replaceAll(" "," ");t.textContent=i;i!==e&&t.setAttribute("display-value",e)};for(const t of this.data.options){const e=document.createElement("option");fixDisplayValue(e,t.displayValue);e.value=t.exportValue;if(i.value.includes(t.exportValue)){e.setAttribute("selected",!0);r=!1}n.append(e)}let s=null;if(r){const t=document.createElement("option");t.value=" ";t.setAttribute("hidden",!0);t.setAttribute("selected",!0);n.prepend(t);s=()=>{t.remove();n.removeEventListener("input",s);s=null};n.addEventListener("input",s)}const getValue=t=>{const e=t?"value":"textContent",{options:i,multiple:r}=n;return r?Array.prototype.filter.call(i,t=>t.selected).map(t=>t[e]):-1===i.selectedIndex?null:i[i.selectedIndex][e]};let a=getValue(!1);const getItems=t=>{const e=t.target.options;return Array.prototype.map.call(e,t=>({displayValue:t.getAttribute("display-value")||t.textContent,exportValue:t.value}))};if(this.enableScripting&&this.hasJSActions){n.addEventListener("updatefromsandbox",i=>{const r={value(i){s?.();const r=i.detail.value,o=new Set(Array.isArray(r)?r:[r]);for(const t of n.options)t.selected=o.has(t.value);t.setValue(e,{value:getValue(!0)});a=getValue(!1)},multipleSelection(t){n.multiple=!0},remove(i){const r=n.options,s=i.detail.remove;r[s].selected=!1;n.remove(s);if(r.length>0){-1===Array.prototype.findIndex.call(r,t=>t.selected)&&(r[0].selected=!0)}t.setValue(e,{value:getValue(!0),items:getItems(i)});a=getValue(!1)},clear(i){for(;0!==n.length;)n.remove(0);t.setValue(e,{value:null,items:[]});a=getValue(!1)},insert(i){const{index:r,displayValue:s,exportValue:o}=i.detail.insert,l=n.children[r],c=document.createElement("option");fixDisplayValue(c,s);c.value=o;l?l.before(c):n.append(c);t.setValue(e,{value:getValue(!0),items:getItems(i)});a=getValue(!1)},items(i){const{items:r}=i.detail;for(;0!==n.length;)n.remove(0);for(const t of r){const{displayValue:e,exportValue:i}=t,r=document.createElement("option");fixDisplayValue(r,e);r.value=i;n.append(r)}n.options.length>0&&(n.options[0].selected=!0);t.setValue(e,{value:getValue(!0),items:getItems(i)});a=getValue(!1)},indices(i){const n=new Set(i.detail.indices);for(const t of i.target.options)t.selected=n.has(t.index);t.setValue(e,{value:getValue(!0)});a=getValue(!1)},editable(t){t.target.disabled=!t.detail.editable}};this._dispatchEventFromSandbox(r,i)});n.addEventListener("input",i=>{const n=getValue(!0),r=getValue(!1);t.setValue(e,{value:n});i.preventDefault();this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:a,change:r,changeEx:n,willCommit:!1,commitKey:1,keyDown:!1}})});this._setEventListeners(n,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],t=>t.target.value)}else n.addEventListener("input",function(i){t.setValue(e,{value:getValue(!0)})});this.data.combo&&this._setTextStyle(n);this._setBackgroundColor(n);this._setDefaultPropertiesFromJS(n);this.container.append(n);return this.container}}class PopupAnnotationElement extends AnnotationElement{constructor(t){const{data:e,elements:i,parent:n}=t,r=!!n._commentManager;super(t,{isRenderable:!r&&AnnotationElement._hasPopupData(e)});this.elements=i;if(r&&AnnotationElement._hasPopupData(e)){const t=this.popup=this.#Wa();for(const e of i)e.popup=t}else this.popup=null}#Wa(){return new PopupElement({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate||this.data.creationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open,commentManager:this.parent._commentManager})}render(){const{container:t}=this;t.classList.add("popupAnnotation");t.role="comment";const e=this.popup=this.#Wa(),i=[];for(const t of this.elements){t.popup=e;t.container.ariaHasPopup="dialog";i.push(t.data.id);t.addHighlightArea()}this.container.setAttribute("aria-controls",i.map(t=>`${Si}${t}`).join(","));return this.container}}class PopupElement{#X=null;#Va=this.#Ma.bind(this);#$a=this.#qa.bind(this);#Xa=this.#Ka.bind(this);#Ya=this.#Ja.bind(this);#Qa=null;#Pt=null;#Za=null;#to=null;#eo=null;#io=null;#no=null;#ro=!1;#so=null;#ao=null;#O=null;#oo=null;#lo=null;#Ae=null;#co=null;#ye=null;#ho=null;#La=null;#do=!1;#uo=null;#po=null;constructor({container:t,color:e,elements:i,titleObj:n,modificationDate:r,contentsObj:s,richText:a,parent:o,rect:l,parentRect:c,open:h,commentManager:d=null}){this.#Pt=t;this.#ho=n;this.#Za=s;this.#ye=a;this.#io=o;this.#Qa=e;this.#co=l;this.#no=c;this.#eo=i;this.#X=d;this.#uo=i[0];this.#to=PDFDateString.toDateObject(r);this.trigger=i.flatMap(t=>t.getElementsToTriggerPopup());if(!d){this.#go();this.#Pt.hidden=!0;h&&this.#Ja()}}#go(){if(this.#ao)return;this.#ao=new AbortController;const{signal:t}=this.#ao;for(const e of this.trigger){e.addEventListener("click",this.#Ya,{signal:t});e.addEventListener("pointerenter",this.#Xa,{signal:t});e.addEventListener("pointerleave",this.#$a,{signal:t});e.classList.add("popupTriggerArea")}for(const e of this.#eo)e.container?.addEventListener("keydown",this.#Va,{signal:t})}#fo(){const t=this.#eo.find(t=>t.hasCommentButton);t&&(this.#lo=t._normalizePoint(t.commentButtonPosition))}renderCommentButton(){if(this.#oo){this.#oo.parentNode||this.#uo.container.after(this.#oo);return}this.#lo||this.#fo();if(!this.#lo)return;const{signal:t}=this.#ao=new AbortController,e=this.#uo.hasOwnCommentButton,togglePopup=()=>{this.#X.toggleCommentPopup(this,!0,void 0,!e)},showPopup=()=>{this.#X.toggleCommentPopup(this,!1,!0,!e)},hidePopup=()=>{this.#X.toggleCommentPopup(this,!1,!1)};if(e){this.#oo=this.#uo.container;for(const e of this.trigger){e.ariaHasPopup="dialog";e.ariaControls="commentPopup";e.addEventListener("keydown",this.#Va,{signal:t});e.addEventListener("click",togglePopup,{signal:t});e.addEventListener("pointerenter",showPopup,{signal:t});e.addEventListener("pointerleave",hidePopup,{signal:t});e.classList.add("popupTriggerArea")}}else{const e=this.#oo=document.createElement("button");e.className="annotationCommentButton";const i=this.#uo.container;e.style.zIndex=parseInt(i.style.zIndex,10)+1;e.tabIndex=0;e.ariaHasPopup="dialog";e.ariaControls="commentPopup";e.setAttribute("data-l10n-id","pdfjs-show-comment-button");this.#mo();this.#bo();e.addEventListener("keydown",this.#Va,{signal:t});e.addEventListener("click",togglePopup,{signal:t});e.addEventListener("pointerenter",showPopup,{signal:t});e.addEventListener("pointerleave",hidePopup,{signal:t});i.after(e)}}#bo(){if(this.#uo.extraPopupElement&&!this.#uo.editor)return;this.#oo||this.renderCommentButton();const[t,e]=this.#lo,{style:i}=this.#oo;i.left=`calc(${t}%)`;i.top=`calc(${e}% - var(--comment-button-dim))`}#mo(){if(!this.#uo.extraPopupElement){this.#oo||this.renderCommentButton();this.#oo.style.backgroundColor=this.commentButtonColor||""}}get commentButtonColor(){const{color:t,opacity:e}=this.#uo.commentData;return t?this.#io._commentManager.makeCommentColor(t,e):null}focusCommentButton(){setTimeout(()=>{this.#oo?.focus()},0)}getData(){const{richText:t,color:e,opacity:i,creationDate:n,modificationDate:r}=this.#uo.commentData;return{contentsObj:{str:this.comment},richText:t,color:e,opacity:i,creationDate:n,modificationDate:r}}get elementBeforePopup(){return this.#oo}get comment(){this.#po||=this.#uo.commentText;return this.#po}set comment(t){t!==this.comment&&(this.#uo.commentText=this.#po=t)}focus(){this.#uo.container?.focus()}get parentBoundingClientRect(){return this.#uo.layer.getBoundingClientRect()}setCommentButtonStates({selected:t,hasPopup:e}){if(this.#oo){this.#oo.classList.toggle("selected",t);this.#oo.ariaExpanded=e}}setSelectedCommentButton(t){this.#oo.classList.toggle("selected",t)}get commentPopupPosition(){if(this.#Ae)return this.#Ae;const{x:t,y:e,height:i}=this.#oo.getBoundingClientRect(),{x:n,y:r,width:s,height:a}=this.#uo.layer.getBoundingClientRect();return[(t-n)/s,(e+i-r)/a]}set commentPopupPosition(t){this.#Ae=t}hasDefaultPopupPosition(){return null===this.#Ae}get commentButtonPosition(){return this.#lo}get commentButtonWidth(){return this.#oo.getBoundingClientRect().width/this.parentBoundingClientRect.width}editComment(t){const[e,i]=this.#Ae||this.commentButtonPosition.map(t=>t/100),n=this.parentBoundingClientRect,{x:r,y:s,width:a,height:o}=n;this.#X.showDialog(null,this,r+e*a,s+i*o,{...t,parentDimensions:n})}render(){if(this.#so)return;const t=this.#so=document.createElement("div");t.className="popup";if(this.#Qa){const e=t.style.outlineColor=Util.makeHexColor(...this.#Qa);t.style.backgroundColor=`color-mix(in srgb, ${e} 30%, white)`}const e=document.createElement("span");e.className="header";if(this.#ho?.str){const t=document.createElement("span");t.className="title";e.append(t);({dir:t.dir,str:t.textContent}=this.#ho)}t.append(e);if(this.#to){const t=document.createElement("time");t.className="popupDate";t.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string");t.setAttribute("data-l10n-args",JSON.stringify({dateObj:this.#to.valueOf()}));t.dateTime=this.#to.toISOString();e.append(t)}renderRichText({html:this.#yo||this.#Za.str,dir:this.#Za?.dir,className:"popupContent"},t);this.#Pt.append(t)}get#yo(){const t=this.#ye,e=this.#Za;return!t?.str||e?.str&&e.str!==t.str?null:this.#ye.html||null}get#wo(){return this.#yo?.attributes?.style?.fontSize||0}get#vo(){return this.#yo?.attributes?.style?.color||null}#_o(t){const e=[],i={str:t,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:e}]}},n={style:{color:this.#vo,fontSize:this.#wo?`calc(${this.#wo}px * var(--total-scale-factor))`:""}};for(const i of t.split("\n"))e.push({name:"span",value:i,attributes:n});return i}#Ma(t){t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||("Enter"===t.key||"Escape"===t.key&&this.#ro)&&this.#Ja()}updateEdited({rect:t,popup:e,deleted:i}){if(this.#X){if(i){this.remove();this.#po=null}else if(e)if(e.deleted)this.remove();else{this.#mo();this.#po=e.text}if(t){this.#lo=null;this.#fo();this.#bo()}}else if(i||e?.deleted)this.remove();else{this.#go();this.#La||={contentsObj:this.#Za,richText:this.#ye};t&&(this.#O=null);if(e&&e.text){this.#ye=this.#_o(e.text);this.#to=PDFDateString.toDateObject(e.date);this.#Za=null}this.#so?.remove();this.#so=null}}resetEdited(){if(this.#La){({contentsObj:this.#Za,richText:this.#ye}=this.#La);this.#La=null;this.#so?.remove();this.#so=null;this.#O=null}}remove(){this.#ao?.abort();this.#ao=null;this.#so?.remove();this.#so=null;this.#do=!1;this.#ro=!1;this.#oo?.remove();this.#oo=null;if(this.trigger)for(const t of this.trigger)t.classList.remove("popupTriggerArea")}#Ao(){if(null!==this.#O)return;const{page:{view:t},viewport:{rawDims:{pageWidth:e,pageHeight:i,pageX:n,pageY:r}}}=this.#io;let s=!!this.#no,a=s?this.#no:this.#co;for(const t of this.#eo)if(!a||null!==Util.intersect(t.data.rect,a)){a=t.data.rect;s=!0;break}const o=Util.normalizeRect([a[0],t[3]-a[1]+t[1],a[2],t[3]-a[3]+t[1]]),l=s?a[2]-a[0]+5:0,c=o[0]+l,h=o[1];this.#O=[100*(c-n)/e,100*(h-r)/i];const{style:d}=this.#Pt;d.left=`${this.#O[0]}%`;d.top=`${this.#O[1]}%`}#Ja(){if(this.#X)this.#X.toggleCommentPopup(this,!1);else{this.#ro=!this.#ro;if(this.#ro){this.#Ka();this.#Pt.addEventListener("click",this.#Ya);this.#Pt.addEventListener("keydown",this.#Va)}else{this.#qa();this.#Pt.removeEventListener("click",this.#Ya);this.#Pt.removeEventListener("keydown",this.#Va)}}}#Ka(){this.#so||this.render();if(this.isVisible)this.#ro&&this.#Pt.classList.add("focused");else{this.#Ao();this.#Pt.hidden=!1;this.#Pt.style.zIndex=parseInt(this.#Pt.style.zIndex,10)+1e3}}#qa(){this.#Pt.classList.remove("focused");if(!this.#ro&&this.isVisible){this.#Pt.hidden=!0;this.#Pt.style.zIndex=parseInt(this.#Pt.style.zIndex,10)-1e3}}forceHide(){this.#do=this.isVisible;this.#do&&(this.#Pt.hidden=!0)}maybeShow(){if(!this.#X){this.#go();if(this.#do){this.#so||this.#Ka();this.#do=!1;this.#Pt.hidden=!1}}}get isVisible(){return!this.#X&&!1===this.#Pt.hidden}}class FreeTextAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0});this.textContent=t.data.textContent;this.textPosition=t.data.textPosition;this.annotationEditorType=ki.FREETEXT}render(){this.container.classList.add("freeTextAnnotation");if(this.textContent){const t=this.contentElement=document.createElement("div");t.classList.add("annotationTextContent");t.setAttribute("role","comment");for(const e of this.textContent){const i=document.createElement("span");i.textContent=e;t.append(i)}this.container.append(t)}if(!this.data.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this._editOnDoubleClick();return this.container}}class LineAnnotationElement extends AnnotationElement{#xo=null;constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("lineAnnotation");const{data:t,width:e,height:i}=this,n=this.svgFactory.create(e,i,!0),r=this.#xo=this.svgFactory.createElement("svg:line");r.setAttribute("x1",t.rect[2]-t.lineCoordinates[0]);r.setAttribute("y1",t.rect[3]-t.lineCoordinates[1]);r.setAttribute("x2",t.rect[2]-t.lineCoordinates[2]);r.setAttribute("y2",t.rect[3]-t.lineCoordinates[3]);r.setAttribute("stroke-width",t.borderStyle.width||1);r.setAttribute("stroke","transparent");r.setAttribute("fill","transparent");n.append(r);this.container.append(n);if(!t.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}return this.container}getElementsToTriggerPopup(){return this.#xo}addHighlightArea(){this.container.classList.add("highlightArea")}}class SquareAnnotationElement extends AnnotationElement{#Eo=null;constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("squareAnnotation");const{data:t,width:e,height:i}=this,n=this.svgFactory.create(e,i,!0),r=t.borderStyle.width,s=this.#Eo=this.svgFactory.createElement("svg:rect");s.setAttribute("x",r/2);s.setAttribute("y",r/2);s.setAttribute("width",e-r);s.setAttribute("height",i-r);s.setAttribute("stroke-width",r||1);s.setAttribute("stroke","transparent");s.setAttribute("fill","transparent");n.append(s);this.container.append(n);if(!t.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}return this.container}getElementsToTriggerPopup(){return this.#Eo}addHighlightArea(){this.container.classList.add("highlightArea")}}class CircleAnnotationElement extends AnnotationElement{#Co=null;constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("circleAnnotation");const{data:t,width:e,height:i}=this,n=this.svgFactory.create(e,i,!0),r=t.borderStyle.width,s=this.#Co=this.svgFactory.createElement("svg:ellipse");s.setAttribute("cx",e/2);s.setAttribute("cy",i/2);s.setAttribute("rx",e/2-r/2);s.setAttribute("ry",i/2-r/2);s.setAttribute("stroke-width",r||1);s.setAttribute("stroke","transparent");s.setAttribute("fill","transparent");n.append(s);this.container.append(n);if(!t.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}return this.container}getElementsToTriggerPopup(){return this.#Co}addHighlightArea(){this.container.classList.add("highlightArea")}}class PolylineAnnotationElement extends AnnotationElement{#So=null;constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0});this.containerClassName="polylineAnnotation";this.svgElementName="svg:polyline"}render(){this.container.classList.add(this.containerClassName);const{data:{rect:t,vertices:e,borderStyle:i,popupRef:n},width:r,height:s}=this;if(!e)return this.container;const a=this.svgFactory.create(r,s,!0);let o=[];for(let i=0,n=e.length;i<n;i+=2){const n=e[i]-t[0],r=t[3]-e[i+1];o.push(`${n},${r}`)}o=o.join(" ");const l=this.#So=this.svgFactory.createElement(this.svgElementName);l.setAttribute("points",o);l.setAttribute("stroke-width",i.width||1);l.setAttribute("stroke","transparent");l.setAttribute("fill","transparent");a.append(l);this.container.append(a);if(!n&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}return this.container}getElementsToTriggerPopup(){return this.#So}addHighlightArea(){this.container.classList.add("highlightArea")}}class PolygonAnnotationElement extends PolylineAnnotationElement{constructor(t){super(t);this.containerClassName="polygonAnnotation";this.svgElementName="svg:polygon"}}class CaretAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0})}render(){this.container.classList.add("caretAnnotation");if(!this.data.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}return this.container}}class InkAnnotationElement extends AnnotationElement{#To=null;#ko=[];constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0});this.containerClassName="inkAnnotation";this.svgElementName="svg:polyline";this.annotationEditorType="InkHighlight"===this.data.it?ki.HIGHLIGHT:ki.INK}#Do(t,e){switch(t){case 90:return{transform:`rotate(90) translate(${-e[0]},${e[1]}) scale(1,-1)`,width:e[3]-e[1],height:e[2]-e[0]};case 180:return{transform:`rotate(180) translate(${-e[2]},${e[1]}) scale(1,-1)`,width:e[2]-e[0],height:e[3]-e[1]};case 270:return{transform:`rotate(270) translate(${-e[2]},${e[3]}) scale(1,-1)`,width:e[3]-e[1],height:e[2]-e[0]};default:return{transform:`translate(${-e[0]},${e[3]}) scale(1,-1)`,width:e[2]-e[0],height:e[3]-e[1]}}}render(){this.container.classList.add(this.containerClassName);const{data:{rect:t,rotation:e,inkLists:i,borderStyle:n,popupRef:r}}=this,{transform:s,width:a,height:o}=this.#Do(e,t),l=this.svgFactory.create(a,o,!0),c=this.#To=this.svgFactory.createElement("svg:g");l.append(c);c.setAttribute("stroke-width",n.width||1);c.setAttribute("stroke-linecap","round");c.setAttribute("stroke-linejoin","round");c.setAttribute("stroke-miterlimit",10);c.setAttribute("stroke","transparent");c.setAttribute("fill","transparent");c.setAttribute("transform",s);for(const t of i){const e=this.svgFactory.createElement(this.svgElementName);this.#ko.push(e);e.setAttribute("points",t.join(","));c.append(e)}if(!r&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.append(l);this._editOnDoubleClick();return this.container}updateEdited(t){super.updateEdited(t);const{thickness:e,points:i,rect:n}=t,r=this.#To;e>=0&&r.setAttribute("stroke-width",e||1);if(i)for(let t=0,e=this.#ko.length;t<e;t++)this.#ko[t].setAttribute("points",i[t].join(","));if(n){const{transform:t,width:e,height:i}=this.#Do(this.data.rotation,n);r.parentElement.setAttribute("viewBox",`0 0 ${e} ${i}`);r.setAttribute("transform",t)}}getElementsToTriggerPopup(){return this.#ko}addHighlightArea(){this.container.classList.add("highlightArea")}}class HighlightAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0});this.annotationEditorType=ki.HIGHLIGHT}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.classList.add("highlightAnnotation");this._editOnDoubleClick();if(t){const e=document.createElement("mark");e.classList.add("overlaidText");e.textContent=t;this.container.append(e)}return this.container}}class UnderlineAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.classList.add("underlineAnnotation");if(t){const e=document.createElement("u");e.classList.add("overlaidText");e.textContent=t;this.container.append(e)}return this.container}}class SquigglyAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.classList.add("squigglyAnnotation");if(t){const e=document.createElement("u");e.classList.add("overlaidText");e.textContent=t;this.container.append(e)}return this.container}}class StrikeOutAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this.container.classList.add("strikeoutAnnotation");if(t){const e=document.createElement("s");e.classList.add("overlaidText");e.textContent=t;this.container.append(e)}return this.container}}class StampAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0});this.annotationEditorType=ki.STAMP}render(){this.container.classList.add("stampAnnotation");this.container.setAttribute("role","img");if(!this.data.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}this._editOnDoubleClick();return this.container}}class FileAttachmentAnnotationElement extends AnnotationElement{#Po=null;constructor(t){super(t,{isRenderable:!0});const{fileId:e,file:i}=this.data;this.filename=i.filename;this.content=i.content;this.fileId=e;this.linkService.eventBus?.dispatch("fileattachmentannotation",{source:this,attachmentId:this.fileId,...i})}render(){this.container.classList.add("fileAttachmentAnnotation");const{container:t,data:e}=this;let i;if(e.hasAppearance||0===e.fillAlpha)i=document.createElement("div");else{i=document.createElement("img");i.src=`${this.imageResourcesPath}annotation-${/paperclip/i.test(e.name)?"paperclip":"pushpin"}.svg`;e.fillAlpha&&e.fillAlpha<1&&(i.style=`filter: opacity(${Math.round(100*e.fillAlpha)}%);`)}i.addEventListener("dblclick",this.#Mo.bind(this));this.#Po=i;const{isMac:n}=FeatureTest.platform;t.addEventListener("keydown",t=>{"Enter"===t.key&&(n?t.metaKey:t.ctrlKey)&&this.#Mo()});if(!e.popupRef&&this.hasPopupData){this.hasOwnCommentButton=!0;this._createPopup()}else i.classList.add("popupTriggerArea");t.append(i);return t}getElementsToTriggerPopup(){return this.#Po}addHighlightArea(){this.container.classList.add("highlightArea")}async#Mo(){const{fileId:t,filename:e,content:i}=this,n=await this.linkService.getAttachmentContent(t)||i;n&&this.downloadManager?.openOrDownloadData(n,e)}}class MediaAnnotationElement extends AnnotationElement{#L=new AbortController;#Io=null;#Fo=null;constructor(t){super(t,{isRenderable:!!t.data.richMedia})}render(){this.container.classList.add("mediaAnnotation");const{filename:t}=this.data.richMedia,e=document.createElement("button");e.className="mediaPlayButton";e.type="button";e.title=e.ariaLabel=t;e.addEventListener("click",()=>this.#Oo(e),{signal:this.#L.signal});this.container.append(e);return this.container}async#Oo(t){const{fileId:e,filename:i,contentType:n}=this.data.richMedia;t.disabled=!0;let r;try{r=await this.linkService.getAttachmentContent(e)}catch{return}finally{t.disabled=!1}if(!r||!t.isConnected)return;const{signal:s}=this.#L,a=new Blob([r],{type:n});if(!/^(?:video|audio)\//.test(a.type))return;const o=URL.createObjectURL(a);this.#Io=o;const l=a.type.startsWith("audio/"),c=document.createElement(l?"audio":"video");this.#Fo=c;c.className="mediaContent";this._setBackgroundColor(c);c.src=o;c.title=i;c.controls=!0;c.autoplay=!0;c.tabIndex=0;if(l){let t=!1,e=!1;const updateControls=()=>{c.controls=t||e};this.container.addEventListener("pointerenter",()=>{t=!0;updateControls()},{signal:s});this.container.addEventListener("pointerleave",()=>{t=!1;updateControls()},{signal:s});this.container.addEventListener("focusin",()=>{e=!0;updateControls()},{signal:s});this.container.addEventListener("focusout",()=>{e=!1;updateControls()},{signal:s})}c.addEventListener("emptied",()=>this.#Ro(o),{once:!0,signal:s});t.replaceWith(c);c.play().catch(()=>{})}#Ro(t=this.#Io){if(t&&t===this.#Io){URL.revokeObjectURL(t);this.#Io=null}}destroy(){this.#L.abort();if(this.#Fo){this.#Fo.pause();this.#Fo.removeAttribute("src");this.#Fo.load();this.#Fo=null}this.#Ro()}}class AnnotationLayer{#Bo=null;#Lo=null;#V=null;#No=new Map;#Uo=null;#Ho=null;#eo=[];#zo=!1;zIndex=0;constructor({div:t,accessibilityManager:e,annotationCanvasMap:i,annotationEditorUIManager:n,page:r,viewport:s,structTreeLayer:a,commentManager:o,linkService:l,annotationStorage:c}){this.div=t;this.#Bo=e;this.#Lo=i;this.#Uo=a||null;this.#Ho=l||null;this.#V=c||new AnnotationStorage;this.page=r;this.viewport=s;this._annotationEditorUIManager=n;this._commentManager=o||null}hasEditableAnnotations(){return this.#No.size>0}async render(t){const{annotations:e,optionalContentConfig:i}=t,n=this.div;setLayerDimensions(n,this.viewport);const r=new Map,s=[],a={data:null,layer:n,linkService:this.#Ho,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:!1!==t.renderForms,svgFactory:new DOMSVGFactory,annotationStorage:this.#V,enableComment:!0===t.enableComment,enableScripting:!0===t.enableScripting,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,parent:this,elements:null};for(const t of e){if(t.noHTML)continue;const e=t.annotationType===Ni.POPUP;if(e){const e=r.get(t.id);if(!e)continue;if(!this._commentManager){s.push(t);continue}a.elements=e}else if(t.rect[2]===t.rect[0]||t.rect[3]===t.rect[1])continue;a.data=t;const n=AnnotationElementFactory.create(a);if(!n.isRenderable)continue;if(!e){this.#eo.push(n);t.popupRef&&r.getOrInsertComputed(t.popupRef,makeArr).push(n)}const o=n.render();t.hidden&&(o.style.visibility="hidden");n.updateOC(i);if(n._isEditable){this.#No.set(n.data.id,n);this._annotationEditorUIManager?.renderAnnotationElement(n)}}await this.#Go();for(const t of s){const e=a.elements=r.get(t.id);a.data=t;const i=AnnotationElementFactory.create(a);if(!i.isRenderable)continue;const n=i.render();i.contentElement.id=`${Si}${t.id}`;t.hidden&&(n.style.visibility="hidden");e.at(-1).container.after(n)}this.#jo()}async#Go(){if(0===this.#eo.length)return;this.div.replaceChildren();const t=[];if(!this.#zo){this.#zo=!0;for(const{contentElement:e,data:{hidden:i,id:n,oc:r}}of this.#eo){const s=e.id=`${Si}${n}`,a="a"===e.localName&&!i&&!r;t.push(this.#Uo?.getAriaAttributes(s,{enableLinkOwnership:a}).then(t=>{if(t)for(const[i,n]of t)e.setAttribute(i,n)}))}}this.#eo.sort(({data:{rect:[t,e,i,n]}},{data:{rect:[r,s,a,o]}})=>{if(t===i&&e===n)return 1;if(r===a&&s===o)return-1;const l=(e+n)/2,c=(s+o)/2;if(l>=o&&c<=e)return-1;if(c>=n&&l<=s)return 1;return(t+i)/2-(r+a)/2});const e=document.createDocumentFragment();for(const t of this.#eo){e.append(t.container);this._commentManager?(t.extraPopupElement?.popup||t.popup)?.renderCommentButton():t.extraPopupElement&&e.append(t.extraPopupElement.render())}this.div.append(e);await Promise.all(t);if(this.#Bo){const t=await(this.#Uo?.getAnnotationIds());for(const{contentElement:e}of this.#eo)t?.has(e.id)||this.#Bo.addPointerInTextLayer(e,!1)}}async addLinkAnnotations(t){const e={data:null,layer:this.div,linkService:this.#Ho,svgFactory:new DOMSVGFactory,parent:this};for(const i of t){i.borderStyle||=AnnotationLayer._defaultBorderStyle;e.data=i;const t=AnnotationElementFactory.create(e);if(t.isRenderable){t.render();t.contentElement.id=`${Si}${i.id}`;this.#eo.push(t)}}await this.#Go()}update({viewport:t,optionalContentConfig:e}){const i=this.div;this.viewport=t;setLayerDimensions(i,{rotation:t.rotation});for(const t of this.#eo)t.updateOC(e);this.#jo();i.hidden=!1}destroy(){for(const t of this.#eo){t.destroy?.();this.#Bo?.removePointerInTextLayer(t.contentElement)}this.#eo.length=0;this.#No.clear();this.div.replaceChildren()}#jo(){if(!this.#Lo)return;const t=this.div;for(const[e,i]of this.#Lo){const n=t.querySelector(`[data-annotation-id="${e}"]`);if(!n)continue;if(Array.isArray(i))for(const t of i){t.className="annotationContent";t.ariaHidden=!0}else{i.className="annotationContent";i.ariaHidden=!0}const r=[];for(const t of n.children)"CANVAS"===t.nodeName&&r.push(t);for(const t of r)t.remove();const s=Array.isArray(i)?i[0]:i,{firstChild:a}=n;a?a.classList.contains("annotationContent")?a.after(s):a.before(s):n.append(s);if(Array.isArray(i)){let t=s;for(let e=1,n=i.length;e<n;e++){t.after(i[e]);t=i[e]}}this.#Lo.delete(e);const o=this.#No.get(e);if(o)if(o._hasNoCanvas){this._annotationEditorUIManager?.setMissingCanvas(e,n.id,i);o._hasNoCanvas=!1}else o.canvas=i}}refreshCanvases(){this.#jo()}getEditableAnnotations(){return this.#No.values()}getEditableAnnotation(t){return this.#No.get(t)}addFakeAnnotation(t){const{div:e}=this,{id:i,rotation:n}=t,r=new EditorAnnotationElement({data:{id:i,rect:t.getPDFRect(),rotation:n},editor:t,layer:e,parent:this,enableComment:!!this._commentManager,linkService:this.#Ho,annotationStorage:this.#V});r.render();r.contentElement.id=`${Si}${i}`;r.createOrUpdatePopup();this.#eo.push(r);return r}removeAnnotation(t){const e=this.#eo.findIndex(e=>e.data.id===t);if(e<0)return;const[i]=this.#eo.splice(e,1);this.#Bo?.removePointerInTextLayer(i.contentElement)}updateFakeAnnotations(t){if(0!==t.length){for(const e of t)e.updateFakeAnnotationElement(this);this.#Go()}}togglePointerEvents(t=!1){this.div.classList.toggle("disabled",!t)}static get _defaultBorderStyle(){return util_shadow(this,"_defaultBorderStyle",Object.freeze({width:1,rawWidth:1,style:Ui,dashArray:[3],horizontalCornerRadius:0,verticalCornerRadius:0}))}}const tr=/\r\n?|\n/g;class FreeTextEditor extends AnnotationEditor{#Wo="";#Vo=`${this.id}-editor`;#$o=null;#wo;_colorPicker=null;static _freeTextDefaultContent="";static _internalPadding=0;static _defaultColor=null;static _defaultFontSize=10;static get _keyboardManager(){const t=FreeTextEditor.prototype,arrowChecker=t=>t.isEmpty(),e=AnnotationEditorUIManager.TRANSLATE_SMALL,i=AnnotationEditorUIManager.TRANSLATE_BIG;return util_shadow(this,"_keyboardManager",new KeyboardManager([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],t.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter"],t.commitOrRemove],[["Escape"],t.commitOrRemove],[["ArrowLeft"],t._translateEmpty,{args:[-e,0],checker:arrowChecker}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t._translateEmpty,{args:[-i,0],checker:arrowChecker}],[["ArrowRight"],t._translateEmpty,{args:[e,0],checker:arrowChecker}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t._translateEmpty,{args:[i,0],checker:arrowChecker}],[["ArrowUp"],t._translateEmpty,{args:[0,-e],checker:arrowChecker}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t._translateEmpty,{args:[0,-i],checker:arrowChecker}],[["ArrowDown"],t._translateEmpty,{args:[0,e],checker:arrowChecker}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t._translateEmpty,{args:[0,i],checker:arrowChecker}]]))}static _type="freetext";static _editorType=ki.FREETEXT;constructor(t){super({...t,name:"freeTextEditor"});this.color=t.color||FreeTextEditor._defaultColor||AnnotationEditor._defaultLineColor;this.#wo=t.fontSize||FreeTextEditor._defaultFontSize;this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.freetext);this.canAddComment=!1}static initialize(t,e){AnnotationEditor.initialize(t,e);const i=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(i.getPropertyValue("--freetext-padding"))}static updateDefaultParams(t,e){switch(t){case Di.FREETEXT_SIZE:FreeTextEditor._defaultFontSize=e;break;case Di.FREETEXT_COLOR:FreeTextEditor._defaultColor=e}}updateParams(t,e){switch(t){case Di.FREETEXT_SIZE:this.#qo(e);break;case Di.FREETEXT_COLOR:this.#mo(e)}}static get defaultPropertiesToUpdate(){return[[Di.FREETEXT_SIZE,FreeTextEditor._defaultFontSize],[Di.FREETEXT_COLOR,FreeTextEditor._defaultColor||AnnotationEditor._defaultLineColor]]}get propertiesToUpdate(){return[[Di.FREETEXT_SIZE,this.#wo],[Di.FREETEXT_COLOR,this.color]]}get toolbarButtons(){this._colorPicker||=new BasicColorPicker(this);return[["colorPicker",this._colorPicker]]}get colorType(){return Di.FREETEXT_COLOR}#qo(t){const setFontsize=t=>{this.editorDiv.style.fontSize=`calc(${t}px * var(--total-scale-factor))`;this.translate(0,-(t-this.#wo)*this.parentScale);this.#wo=t;this.#Xo()},e=this.#wo;this.addCommands({cmd:setFontsize.bind(this,t),undo:setFontsize.bind(this,e),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:Di.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})}onUpdatedColor(){this.editorDiv.style.color=this.color;this._colorPicker?.update(this.color);super.onUpdatedColor()}#mo(t){const setColor=t=>{this.color=t;this.onUpdatedColor()},e=this.color;this.addCommands({cmd:setColor.bind(this,t),undo:setColor.bind(this,e),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:Di.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})}_translateEmpty(t,e){this._uiManager.translateSelectedEditors(t,e,!0)}getInitialTranslation(){const t=this.parentScale;return[-FreeTextEditor._internalPadding*t,-(FreeTextEditor._internalPadding+this.#wo)*t]}rebuild(){if(this.parent){super.rebuild();null!==this.div&&(this.isAttachedToDOM||this.parent.add(this))}}enableEditMode(){if(!super.enableEditMode())return!1;this.overlayDiv.classList.remove("enabled");this.editorDiv.contentEditable=!0;this._isDraggable=!1;this.div.removeAttribute("aria-activedescendant");this.#$o=new AbortController;const t=this._uiManager.combinedSignal(this.#$o);this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:t});this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:t});this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:t});this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:t});this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:t});return!0}disableEditMode(){if(!super.disableEditMode())return!1;this.overlayDiv.classList.add("enabled");this.editorDiv.contentEditable=!1;this.div.setAttribute("aria-activedescendant",this.#Vo);this._isDraggable=!0;this.#$o?.abort();this.#$o=null;this.div.focus({preventScroll:!0});this.isEditing=!1;this.parent.div.classList.add("freetextEditing");return!0}focusin(t){if(this._focusEventsAllowed){super.focusin(t);t.target!==this.editorDiv&&this.editorDiv.focus()}}onceAdded(t){if(!this.width){this.enableEditMode();t&&this.editorDiv.focus();this._initialOptions?.isCentered&&this.center();this._initialOptions=null}}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1;if(this.parent){this.parent.setEditingState(!0);this.parent.div.classList.add("freetextEditing")}super.remove()}#Ko(){const t=[];this.editorDiv.normalize();let e=null;for(const i of this.editorDiv.childNodes)if(e?.nodeType!==Node.TEXT_NODE||"BR"!==i.nodeName){t.push(FreeTextEditor.#Yo(i));e=i}return t.join("\n")}#Xo(){const[t,e]=this.parentDimensions;let i;if(this.isAttachedToDOM)i=this.div.getBoundingClientRect();else{const{currentLayer:t,div:e}=this,n=e.style.display,r=e.classList.contains("hidden");e.classList.remove("hidden");e.style.display="hidden";t.div.append(this.div);i=e.getBoundingClientRect();e.remove();e.style.display=n;e.classList.toggle("hidden",r)}if(this.rotation%180==this.parentRotation%180){this.width=i.width/t;this.height=i.height/e}else{this.width=i.height/t;this.height=i.width/e}this.fixAndSetPosition()}commit(){if(!this.isInEditMode())return;super.commit();this.disableEditMode();const t=this.#Wo,e=this.#Wo=this.#Ko().trimEnd();if(t===e)return;const setText=t=>{this.#Wo=t;if(t){this.#Jo();this._uiManager.rebuild(this);this.#Xo()}else this.remove()};this.addCommands({cmd:()=>{setText(e)},undo:()=>{setText(t)},mustExec:!1});this.#Xo()}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode();this.editorDiv.focus()}keydown(t){if(t.target===this.div&&"Enter"===t.key){this.enterInEditMode();t.preventDefault()}}editorDivKeydown(t){FreeTextEditor._keyboardManager.exec(this,t)}editorDivFocus(t){this.isEditing=!0}editorDivBlur(t){this.isEditing=!1}editorDivInput(t){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment");this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox");this.editorDiv.setAttribute("aria-multiline",!0)}get canChangeContent(){return!0}render(){if(this.div)return this.div;let t,e;if(this._isCopy||this.annotationElementId){t=this.x;e=this.y}super.render();this.editorDiv=document.createElement("div");this.editorDiv.className="internal";this.editorDiv.setAttribute("id",this.#Vo);this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2");this.editorDiv.setAttribute("data-l10n-attrs","default-content");this.enableEditing();this.editorDiv.contentEditable=!0;const{style:i}=this.editorDiv;i.fontSize=`calc(${this.#wo}px * var(--total-scale-factor))`;i.color=this.color;this.div.append(this.editorDiv);this.overlayDiv=document.createElement("div");this.overlayDiv.classList.add("overlay","enabled");this.div.append(this.overlayDiv);if(this._isCopy||this.annotationElementId){const[i,n]=this.parentDimensions;if(this.annotationElementId){const{position:r}=this._initialData;let[s,a]=this.getInitialTranslation();[s,a]=this.pageTranslationToScreen(s,a);const[o,l]=this.pageDimensions,[c,h]=this.pageTranslation;let d,u;switch(this.rotation){case 0:d=t+(r[0]-c)/o;u=e+this.height-(r[1]-h)/l;break;case 90:d=t+(r[0]-c)/o;u=e-(r[1]-h)/l;[s,a]=[a,-s];break;case 180:d=t-this.width+(r[0]-c)/o;u=e-(r[1]-h)/l;[s,a]=[-s,-a];break;case 270:d=t+(r[0]-c-this.height*l)/o;u=e+(r[1]-h-this.width*o)/l;[s,a]=[-a,s]}this.setAt(d*i,u*n,s,a)}else this._moveAfterPaste(t,e);this.#Jo();this._isDraggable=!0;this.editorDiv.contentEditable=!1}else{this._isDraggable=!1;this.editorDiv.contentEditable=!0}return this.div}static#Yo(t){return(t.nodeType===Node.TEXT_NODE?t.nodeValue:t.innerText).replaceAll(tr,"")}editorDivPaste(t){const e=t.clipboardData||window.clipboardData,{types:i}=e;if(1===i.length&&"text/plain"===i[0])return;t.preventDefault();const n=FreeTextEditor.#Qo(e.getData("text")||"").replaceAll(tr,"\n");if(!n)return;const r=window.getSelection();if(!r.rangeCount)return;this.editorDiv.normalize();r.deleteFromDocument();const s=r.getRangeAt(0);if(!n.includes("\n")){s.insertNode(document.createTextNode(n));this.editorDiv.normalize();r.collapseToStart();return}const{startContainer:a,startOffset:o}=s,l=[],c=[];if(a.nodeType===Node.TEXT_NODE){const t=a.parentElement;c.push(a.nodeValue.slice(o).replaceAll(tr,""));if(t!==this.editorDiv){let e=l;for(const i of this.editorDiv.childNodes)i!==t?e.push(FreeTextEditor.#Yo(i)):e=c}l.push(a.nodeValue.slice(0,o).replaceAll(tr,""))}else if(a===this.editorDiv){let t=l,e=0;for(const i of this.editorDiv.childNodes){e++===o&&(t=c);t.push(FreeTextEditor.#Yo(i))}}this.#Wo=`${l.join("\n")}${n}${c.join("\n")}`;this.#Jo();const h=new Range;let d=Math.sumPrecise(l.map(t=>t.length));for(const{firstChild:t}of this.editorDiv.childNodes)if(t.nodeType===Node.TEXT_NODE){const e=t.nodeValue.length;if(d<=e){h.setStart(t,d);h.setEnd(t,d);break}d-=e}r.removeAllRanges();r.addRange(h)}#Jo(){this.editorDiv.replaceChildren();if(this.#Wo)for(const t of this.#Wo.split("\n")){const e=document.createElement("div");e.append(t?document.createTextNode(t):document.createElement("br"));this.editorDiv.append(e)}}#Zo(){return this.#Wo.replaceAll(" "," ")}static#Qo(t){return t.replaceAll(" "," ")}get contentDiv(){return this.editorDiv}getPDFRect(){const t=FreeTextEditor._internalPadding*this.parentScale;return this.getRect(t,t)}static async deserialize(t,e,i){let n=null;if(t instanceof FreeTextAnnotationElement){const{data:{defaultAppearanceData:{fontSize:e,fontColor:i},rect:r,rotation:s,id:a,popupRef:o,richText:l,contentsObj:c,creationDate:h,modificationDate:d},textContent:u,textPosition:p,parent:{page:{pageNumber:g}}}=t;if(!u?.length)return null;n=t={annotationType:ki.FREETEXT,color:Array.from(i),fontSize:e,value:u.join("\n"),position:p,pageIndex:g-1,rect:r.slice(0),rotation:s,annotationElementId:a,id:a,deleted:!1,popupRef:o,comment:c?.str||null,richText:l,creationDate:h,modificationDate:d}}const r=await super.deserialize(t,e,i);r.#wo=t.fontSize;r.color=Util.makeHexColor(...t.color);r.#Wo=FreeTextEditor.#Qo(t.value);r._initialData=n;t.comment&&r.setCommentData(t);return r}serialize(t=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const e=AnnotationEditor._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:this.color),i=Object.assign(super.serialize(t),{color:e,fontSize:this.#wo,value:this.#Zo()});this.addComment(i);if(t){i.isCopy=!0;return i}if(this.annotationElementId&&!this.#tl(i))return null;i.id=this.annotationElementId;return i}#tl(t){const{value:e,fontSize:i,color:n,pageIndex:r}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||t.value!==e||t.fontSize!==i||t.color.some((t,e)=>t!==n[e])||t.pageIndex!==r}renderAnnotationElement(t){const e=super.renderAnnotationElement(t);if(!e)return null;const{style:i}=e;i.fontSize=`calc(${this.#wo}px * var(--total-scale-factor))`;i.color=this.color;e.replaceChildren();for(const t of this.#Wo.split("\n")){const i=document.createElement("div");i.append(t?document.createTextNode(t):document.createElement("br"));e.append(i)}t.updateEdited({rect:this.getPDFRect(),popup:this._uiManager.hasCommentManager()||this.hasEditedComment?this.comment:{text:this.#Wo}});return e}resetAnnotationElement(t){super.resetAnnotationElement(t);t.resetEdited()}}class DrawingOptions{#el=Object.create(null);updateProperty(t,e){this[t]=e;this.updateSVGProperty(t,e)}updateProperties(t){if(t)for(const[e,i]of Object.entries(t))e.startsWith("_")||this.updateProperty(e,i)}updateSVGProperty(t,e){this.#el[t]=e}toSVGProperties(){const t=this.#el;this.#el=Object.create(null);return{root:t}}reset(){this.#el=Object.create(null)}updateAll(t=this){this.updateProperties(t)}clone(){unreachable("Not implemented")}}class DrawingEditor extends AnnotationEditor{#il=null;#nl;_clipPathId=null;_colorPicker=null;_drawId=null;_drawOutlines=null;_focusDrawId=null;static _currentDrawId=-1;static _currentParent=null;static#rl=null;static#sl=null;static#al=null;static#ol=null;static _INNER_MARGIN=3;constructor(t){super(t);this.#nl=t.mustBeCommitted||!1;this._addOutlines(t)}onUpdatedColor(){this._colorPicker?.update(this.color);super.onUpdatedColor()}onUpdatedOpacity(){this._colorPicker?.updateOpacity?.(this.opacity)}_addOutlines(t){if(t.drawOutlines){this.#ll(t);this.#cl()}}#ll({drawOutlines:t,drawId:e,drawingOptions:i,clipPathId:n}){this._drawOutlines=t;this._drawingOptions||=i;this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert[this.editorType]);if(e>=0){this._drawId=e;this._clipPathId=n??null;this.parent.drawLayer.finalizeDraw(e,t.defaultProperties);this.#hl(this.parent)}else this._drawId=this.#dl(t,this.parent);this.#ul(t.box)}#dl(t,e){const{id:i,clipPathId:n}=e.drawLayer.draw(DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(),t.defaultSVGProperties),!1,this.constructor._hasClipPath);this.constructor._hasClipPath&&(this._clipPathId=n);this.#hl(e);return i}#hl(t){const e=this._drawOutlines.getFocusSVGProperties(this.#pl);e&&(this._focusDrawId=t.drawLayer.drawOutline(e,this._drawOutlines.focusMustRemoveSelfIntersections))}#gl(t=this.#pl){null!==this._focusDrawId&&this.parent?.drawLayer.updateProperties(this._focusDrawId,this._drawOutlines.getFocusSVGProperties(t))}#fl(t){null!==this._focusDrawId&&this.parent?.drawLayer.updateProperties(this._focusDrawId,{rootClass:t})}#ml(){const{parent:t,_drawId:e,_focusDrawId:i,_isVisible:n}=this;if(!t||null===e)return;const r={hidden:!n};t.drawLayer.updateProperties(e,{rootClass:r});null!==i&&t.drawLayer.updateProperties(i,{rootClass:r})}static _mergeSVGProperties(t,e){const i=new Set(Object.keys(t));for(const[n,r]of Object.entries(e))i.has(n)?Object.assign(t[n],r):t[n]=r;return t}static getDefaultDrawingOptions(t){unreachable("Not implemented")}static get typesMap(){unreachable("Not implemented")}static get isDrawer(){return!0}static get _hasClipPath(){return!1}static get _hasDrawClass(){return!0}static get supportMultipleDrawings(){return!1}get _drawRotation(){return this.rotation}get _opacityName(){return this.constructor.typesMap.get(this.opacityType)}get#pl(){return(this.parentRotation-this._drawRotation+360)%360}static updateDefaultParams(t,e){const i=this.typesMap.get(t);i&&this._defaultDrawingOptions.updateProperty(i,e);if(this._currentParent){DrawingEditor.#rl.updateProperty(i,e);this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties())}}updateParams(t,e){const i=this.constructor.typesMap.get(t);i&&this._updateProperty(t,i,e)}static get defaultPropertiesToUpdate(){const t=[],e=this._defaultDrawingOptions;for(const[i,n]of this.typesMap)t.push([i,e[n]]);return t}get propertiesToUpdate(){const t=[],{_drawingOptions:e}=this;for(const[i,n]of this.constructor.typesMap)t.push([i,e[n]]);return t}_updateProperty(t,e,i){const n=this._drawingOptions,r=n[e],setter=i=>{n.updateProperty(e,i);const r=this._drawOutlines.updateProperty(e,i);r&&this.#ul(r);this.parent?.drawLayer.updateProperties(this._drawId,n.toSVGProperties());t===this.colorType?this.onUpdatedColor():t===this.opacityType&&this.onUpdatedOpacity()};this.addCommands({cmd:setter.bind(this,i),undo:setter.bind(this,r),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:t,overwriteIfSameType:!0,keepUndo:!0})}_updateColorAndOpacity(t,e,i=this.colorAndOpacityType){const n=this.constructor.typesMap.get(this.colorType),r=this._opacityName,s=this._drawingOptions,a=s[n],o=s[r],setter=(t,e)=>{s.updateProperty(n,t);s.updateProperty(r,e);this._drawOutlines.updateProperty(n,t);this._drawOutlines.updateProperty(r,e);this.parent?.drawLayer.updateProperties(this._drawId,s.toSVGProperties());this.onUpdatedColor();this.onUpdatedOpacity()};this.addCommands({cmd:setter.bind(this,t,e),undo:setter.bind(this,a,o),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:i,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){this.parent?.drawLayer.updateProperties(this._drawId,DrawingEditor._mergeSVGProperties(this._drawOutlines.getPathResizingSVGProperties(this.#bl()),{bbox:this.#yl()}))}_onResized(){this.parent?.drawLayer.updateProperties(this._drawId,DrawingEditor._mergeSVGProperties(this._drawOutlines.getPathResizedSVGProperties(this.#bl()),{bbox:this.#yl()}));this.#gl()}_onTranslating(t,e){this.parent?.drawLayer.updateProperties(this._drawId,{bbox:this.#yl()})}_onTranslated(){this.parent?.drawLayer.updateProperties(this._drawId,DrawingEditor._mergeSVGProperties(this._drawOutlines.getPathTranslatedSVGProperties(this.#bl(),this.parentDimensions),{bbox:this.#yl()}))}_onStartDragging(){this.parent?.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){this.parent?.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}get _mustBeDisabledOnCommit(){return!0}commit(){super.commit();if(this._mustBeDisabledOnCommit){this.disableEditMode();this.disableEditing()}}disableEditing(){super.disableEditing();this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing();this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(t){this.annotationElementId||this.parent.addUndoableEditor(this);this._isDraggable=!0;if(this.#nl){this.#nl=!1;this.commit();this.parent.setSelected(this);t&&this.isOnScreen&&this.div.focus()}}remove(){this._uiManager.removeShouldRescale(this);this.#wl();super.remove()}rebuild(){if(this.parent){super.rebuild();if(null!==this.div){this.#cl();this.#ul(this._drawOutlines.box);this.isAttachedToDOM||this.parent.add(this)}}}setParent(t){let e=!1;if(this.parent&&!t){this._uiManager.removeShouldRescale(this);this.#wl()}else if(t){this._uiManager.addShouldRescale(this);this.#cl(t);e=!this.parent&&this.div?.classList.contains("selectedEditor")}super.setParent(t);this.#ml();e&&this.select()}#wl(){if(null===this._drawId||!this.parent)return;const{drawLayer:t}=this.parent;t.remove(this._drawId);this._drawId=null;if(null!==this._focusDrawId){t.remove(this._focusDrawId);this._focusDrawId=null}this._drawingOptions.reset()}#cl(t=this.parent){if(null===this._drawId||this.parent!==t){if(null!==this._drawId){const{drawLayer:e}=this.parent;e.updateParent(this._drawId,t.drawLayer);null!==this._focusDrawId&&e.updateParent(this._focusDrawId,t.drawLayer);return}this._drawingOptions.updateAll();this._drawId=this.#dl(this._drawOutlines,t);this._clipPathId&&this.#il&&(this.#il.style.clipPath=this._clipPathId)}}#vl([t,e,i,n]){const{parentDimensions:[r,s],_drawRotation:a}=this;switch(a){case 90:return[e,1-t,i*(s/r),n*(r/s)];case 180:return[1-t,1-e,i,n];case 270:return[1-e,t,i*(s/r),n*(r/s)];default:return[t,e,i,n]}}#bl(){const{x:t,y:e,width:i,height:n,parentDimensions:[r,s],_drawRotation:a}=this;switch(a){case 90:return[1-e,t,i*(r/s),n*(s/r)];case 180:return[1-t,1-e,i,n];case 270:return[e,1-t,i*(r/s),n*(s/r)];default:return[t,e,i,n]}}#ul(t){[this.x,this.y,this.width,this.height]=this.#vl(t);if(this.div){this.fixAndSetPosition();this.setDims()}this._onResized()}#yl(t=this.parentRotation){const{x:e,y:i,width:n,height:r,_drawRotation:s,parentDimensions:[a,o]}=this;switch((4*s+t)/90){case 1:return[1-i-r,e,r,n];case 2:return[1-e-n,1-i-r,n,r];case 3:return[i,1-e-n,r,n];case 4:return[e,i-n*(a/o),r*(o/a),n*(a/o)];case 5:return[1-i,e,n*(a/o),r*(o/a)];case 6:return[1-e-r*(o/a),1-i,r*(o/a),n*(a/o)];case 7:return[i-n*(a/o),1-e-r*(o/a),n*(a/o),r*(o/a)];case 8:return[e-n,i-r,n,r];case 9:return[1-i,e-n,r,n];case 10:return[1-e,1-i,n,r];case 11:return[i-r,1-e,r,n];case 12:return[e-r*(o/a),i,r*(o/a),n*(a/o)];case 13:return[1-i-n*(a/o),e-r*(o/a),n*(a/o),r*(o/a)];case 14:return[1-e,1-i-n*(a/o),r*(o/a),n*(a/o)];case 15:return[i,1-e,n*(a/o),r*(o/a)];default:return[e,i,n,r]}}rotate(t=this.parentRotation){if(!this.parent||null===this._drawId)return;const e=(t-this._drawRotation+360)%360;this.parent.drawLayer.updateProperties(this._drawId,DrawingEditor._mergeSVGProperties({bbox:this.#yl(t)},this._drawOutlines.updateRotation(e)));this.#gl(e)}show(t=this._isVisible){super.show(t);this.#ml()}select(){super.select();this.#fl({hovered:!1,selected:!0})}unselect(){super.unselect();this.#fl({selected:!1})}pointerover(){this.isSelected||this.#fl({hovered:!0})}pointerleave(){this.isSelected||this.#fl({hovered:!1})}onScaleChanging(){if(!this.parent)return;const t=this._drawOutlines.updateParentDimensions(this.parentDimensions,this.parent.scale);t&&this.#ul(t)}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;let t,e;if(this._isCopy){t=this.x;e=this.y}const i=super.render();this.constructor._hasDrawClass&&i.classList.add("draw");const n=this.#il=document.createElement("div");i.append(n);n.setAttribute("aria-hidden","true");n.className="internal";this._clipPathId&&(n.style.clipPath=this._clipPathId);bindEvents(this,n,["pointerover","pointerleave"]);this.setDims();this._uiManager.addShouldRescale(this);this.disableEditing();this._isCopy&&this._moveAfterPaste(t,e);return i}static createDrawerInstance(t){unreachable("Not implemented")}static _getDrawingTarget(t,{target:e}){return e}static _getPointerCoords({offsetX:t,offsetY:e,clientX:i,clientY:n},r=null){if(!r)return[t,e];let s=i-r.clientX,a=n-r.clientY;switch(this._currentParent.viewport.rotation){case 90:[s,a]=[a,-s];break;case 180:[s,a]=[-s,-a];break;case 270:[s,a]=[-a,s]}return[r.offsetX+s,r.offsetY+a]}static _addDrawingListeners(t,e){}static _endDrawingSession(t=!1){return this._currentParent.endDrawingSession(t)}static startDrawing(t,e,i,n){const{pointerId:r,pointerType:s}=n;if(CurrentPointers.isInitializedAndDifferentPointerType(s))return;const a=this._getDrawingTarget(t,n),[o,l]=this._getPointerCoords(n),{viewport:{rotation:c}}=t,{x:h,y:d,width:u,height:p}=a.getBoundingClientRect(),g=DrawingEditor.#sl=new AbortController,f=t.combinedSignal(g);CurrentPointers.setPointer(s,r);window.addEventListener("pointerup",t=>{CurrentPointers.isSamePointerIdOrRemove(t.pointerId)&&this._endDraw(t)},{signal:f});window.addEventListener("pointercancel",t=>{CurrentPointers.isSamePointerIdOrRemove(t.pointerId)&&this._endDrawingSession()},{signal:f});window.addEventListener("pointerdown",t=>{if(CurrentPointers.isSamePointerType(t.pointerType)){CurrentPointers.initializeAndAddPointerId(t.pointerId);if(DrawingEditor.#rl.isCancellable()){DrawingEditor.#rl.removeLastElement();DrawingEditor.#rl.isEmpty()?this._endDrawingSession(!0):this._endDraw(null)}}},{capture:!0,passive:!1,signal:f});window.addEventListener("contextmenu",noContextMenu,{signal:f});a.addEventListener("pointermove",this._drawMove.bind(this),{signal:f});a.addEventListener("touchmove",t=>{CurrentPointers.isSameTimeStamp(t.timeStamp)&&stopEvent(t)},{signal:f});this._addDrawingListeners(a,f);t.toggleDrawing();e._editorUndoBar?.hide();if(DrawingEditor.#rl){t.drawLayer.updateProperties(this._currentDrawId,DrawingEditor.#rl.startNew(o,l,u,p,c));return}e.updateUIForDefaultProperties(this);DrawingEditor.#rl=this.createDrawerInstance({x:o,y:l,box:[h,d,u,p],rotation:c,parent:t,isLTR:i});DrawingEditor.#al=this.getDefaultDrawingOptions();this._currentParent=t;const{id:m,clipPathId:b}=t.drawLayer.draw(this._mergeSVGProperties(DrawingEditor.#al.toSVGProperties(),DrawingEditor.#rl.defaultSVGProperties),!0,this._hasClipPath);this._currentDrawId=m;DrawingEditor.#ol=this._hasClipPath?b:null}static _drawMove(t){CurrentPointers.isSameTimeStamp(t.timeStamp);if(!DrawingEditor.#rl||!CurrentPointers.isSamePointerId(t.pointerId))return;if(CurrentPointers.isUsingMultiplePointers()){this._endDraw(t);return}let e;const i=t.getCoalescedEvents?.();if(i?.length){const n=[];for(const e of i)n.push(...this._getPointerCoords(e,t));e=DrawingEditor.#rl.addPoints(n)}else e=DrawingEditor.#rl.add(...this._getPointerCoords(t));this._currentParent.drawLayer.updateProperties(this._currentDrawId,e);CurrentPointers.setTimeStamp(t.timeStamp);stopEvent(t)}static _cleanup(t){if(t){this._currentDrawId=-1;this._currentParent=null;DrawingEditor.#rl=null;DrawingEditor.#al=null;DrawingEditor.#ol=null;CurrentPointers.clearTimeStamp()}if(DrawingEditor.#sl){DrawingEditor.#sl.abort();DrawingEditor.#sl=null;CurrentPointers.clearPointerIds()}}static _endDraw(t){const e=this._currentParent;if(e){e.toggleDrawing(!0);this._cleanup(!1);e.drawLayer.updateProperties(this._currentDrawId,t?.target===e.div?DrawingEditor.#rl.end(...this._getPointerCoords(t)):DrawingEditor.#rl.end());if(this.supportMultipleDrawings){const t=DrawingEditor.#rl,i=this._currentDrawId,n=t.getLastElement();e.addCommands({cmd:()=>{e.drawLayer.updateProperties(i,t.setLastElement(n))},undo:()=>{e.drawLayer.updateProperties(i,t.removeLastElement())},mustExec:!1,type:Di.DRAW_STEP});return}this.endDrawing(!1)}}static endDrawing(t){const e=this._currentParent;if(!e)return null;e.toggleDrawing(!0);e.cleanUndoStack(Di.DRAW_STEP);if(!DrawingEditor.#rl.isEmpty()){const{pageDimensions:[i,n],scale:r}=e,s=e.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,clipPathId:DrawingEditor.#ol,drawOutlines:DrawingEditor.#rl.getOutlines(i*r,n*r,r,this._INNER_MARGIN),drawingOptions:DrawingEditor.#al,mustBeCommitted:!t});this._cleanup(!0);return s}e.drawLayer.remove(this._currentDrawId);this._cleanup(!0);return null}createDrawingOptions(t){}static deserializeDraw(t,e,i,n,r,s,a){unreachable("Not implemented")}static async deserialize(t,e,i){const{rawDims:{pageWidth:n,pageHeight:r,pageX:s,pageY:a}}=e.viewport,o=this.deserializeDraw(s,a,n,r,this._INNER_MARGIN,t,i),l=await super.deserialize(t,e,i);l.createDrawingOptions(t);l.#ll({drawOutlines:o});l.#cl();l.onScaleChanging();l.rotate();return l}serializeDraw(t){const[e,i]=this.pageTranslation,[n,r]=this.pageDimensions;return this._drawOutlines.serialize([e,i,n,r],t)}renderAnnotationElement(t){t.updateEdited({rect:this.getPDFRect()});return null}static canCreateNewEmptyEditor(){return!1}}class Outline{static PRECISION=1e-4;focusOutline=null;toSVGPath(){unreachable("Abstract method `toSVGPath` must be implemented.")}get box(){unreachable("Abstract getter `box` must be implemented.")}serialize(t,e){unreachable("Abstract method `serialize` must be implemented.")}get defaultSVGProperties(){unreachable("Abstract getter `defaultSVGProperties` must be implemented.")}get defaultProperties(){return this.defaultSVGProperties}getFocusSVGProperties(t){return null}get focusMustRemoveSelfIntersections(){return!1}updateProperty(t,e){return null}updateParentDimensions(t,e){return null}serializeQuadPoints(t,e){return null}updateRotation(t){return{}}getPathResizingSVGProperties(t){return{}}getPathResizedSVGProperties(t){return{}}getPathTranslatedSVGProperties(t,e){return{}}static _rotateBox([t,e,i,n],r){switch(r){case 90:return[1-e-n,t,n,i];case 180:return[1-t-i,1-e-n,i,n];case 270:return[e,1-t-i,n,i]}return[t,e,i,n]}static _rescale(t,e,i,n,r,s){s||=new Float32Array(t.length);for(let a=0,o=t.length;a<o;a+=2){s[a]=e+t[a]*n;s[a+1]=i+t[a+1]*r}return s}static _rescaleAndSwap(t,e,i,n,r,s){s||=new Float32Array(t.length);for(let a=0,o=t.length;a<o;a+=2){s[a]=e+t[a+1]*n;s[a+1]=i+t[a]*r}return s}static _translate(t,e,i,n){n||=new Float32Array(t.length);for(let r=0,s=t.length;r<s;r+=2){n[r]=e+t[r];n[r+1]=i+t[r+1]}return n}static svgRound(t){return Math.round(1e4*t)}static _normalizePoint(t,e,i,n,r){switch(r){case 90:return[1-e/i,t/n];case 180:return[1-t/i,1-e/n];case 270:return[e/i,1-t/n];default:return[t/i,e/n]}}static createBezierPoints(t,e,i,n,r,s){return[(t+5*i)/6,(e+5*n)/6,(5*i+r)/6,(5*n+s)/6,(i+r)/2,(n+s)/2]}}class FreeDrawOutliner{#_l;#Al=[];#xl;#El;#Cl=[];#Sl=new Float32Array(18);#Tl;#kl;#Dl;#Pl;#Ml;#Il;#Fl=[];static#Ol=8;static#Rl=2;static#Bl=FreeDrawOutliner.#Ol+FreeDrawOutliner.#Rl;constructor(t,e,i,n,r,s,a=0){this.#_l=i;this.#Il=r*n;this.#El=s;this.#Sl.set([NaN,NaN,NaN,NaN,t,e],6);this.#xl=a;this.#Pl=FreeDrawOutliner.#Ol*n;this.#Dl=FreeDrawOutliner.#Bl*n;this.#Ml=n;this.#Fl.push(t,e)}isEmpty(){return isNaN(this.#Sl[8])}isCancellable(){return this.#Fl.length<=10}removeLastElement(){this.#Sl.fill(NaN);this.#Cl.length=this.#Al.length=this.#Fl.length=0;return{path:{d:""}}}#Ll(){const t=this.#Sl.subarray(4,6),e=this.#Sl.subarray(16,18),[i,n,r,s]=this.#_l;return[(this.#Tl+(t[0]-e[0])/2-i)/r,(this.#kl+(t[1]-e[1])/2-n)/s,(this.#Tl+(e[0]-t[0])/2-i)/r,(this.#kl+(e[1]-t[1])/2-n)/s]}add(t,e){this.#Tl=t;this.#kl=e;const[i,n,r,s]=this.#_l;let[a,o,l,c]=this.#Sl.subarray(8,12);const h=t-l,d=e-c,u=Math.hypot(h,d);if(u<this.#Dl)return!1;const p=u-this.#Pl,g=p/u,f=g*h,m=g*d;let b=a,y=o;a=l;o=c;l+=f;c+=m;this.#Fl?.push(t,e);const w=f/p,v=-m/p*this.#Il,_=w*this.#Il;this.#Sl.set(this.#Sl.subarray(2,8),0);this.#Sl.set([l+v,c+_],4);this.#Sl.set(this.#Sl.subarray(14,18),12);this.#Sl.set([l-v,c-_],16);if(isNaN(this.#Sl[6])){if(0===this.#Cl.length){this.#Sl.set([a+v,o+_],2);this.#Cl.push(NaN,NaN,NaN,NaN,(a+v-i)/r,(o+_-n)/s);this.#Sl.set([a-v,o-_],14);this.#Al.push(NaN,NaN,NaN,NaN,(a-v-i)/r,(o-_-n)/s)}this.#Sl.set([b,y,a,o,l,c],6);return!this.isEmpty()}this.#Sl.set([b,y,a,o,l,c],6);if(Math.abs(Math.atan2(y-o,b-a)-Math.atan2(m,f))<Math.PI/2){[a,o,l,c]=this.#Sl.subarray(2,6);this.#Cl.push(NaN,NaN,NaN,NaN,((a+l)/2-i)/r,((o+c)/2-n)/s);[a,o,b,y]=this.#Sl.subarray(14,18);this.#Al.push(NaN,NaN,NaN,NaN,((b+a)/2-i)/r,((y+o)/2-n)/s);return!0}[b,y,a,o,l,c]=this.#Sl.subarray(0,6);this.#Cl.push(((b+5*a)/6-i)/r,((y+5*o)/6-n)/s,((5*a+l)/6-i)/r,((5*o+c)/6-n)/s,((a+l)/2-i)/r,((o+c)/2-n)/s);[l,c,a,o,b,y]=this.#Sl.subarray(12,18);this.#Al.push(((b+5*a)/6-i)/r,((y+5*o)/6-n)/s,((5*a+l)/6-i)/r,((5*o+c)/6-n)/s,((a+l)/2-i)/r,((o+c)/2-n)/s);return!0}toSVGPath(){if(this.isEmpty())return"";const t=this.#Cl,e=this.#Al;if(isNaN(this.#Sl[6])&&!this.isEmpty())return this.#Nl();const i=[];i.push(`M${t[4]} ${t[5]}`);for(let e=6;e<t.length;e+=6)isNaN(t[e])?i.push(`L${t[e+4]} ${t[e+5]}`):i.push(`C${t[e]} ${t[e+1]} ${t[e+2]} ${t[e+3]} ${t[e+4]} ${t[e+5]}`);this.#Ul(i);for(let t=e.length-6;t>=6;t-=6)isNaN(e[t])?i.push(`L${e[t+4]} ${e[t+5]}`):i.push(`C${e[t]} ${e[t+1]} ${e[t+2]} ${e[t+3]} ${e[t+4]} ${e[t+5]}`);this.#Hl(i);return i.join(" ")}#Nl(){const[t,e,i,n]=this.#_l,[r,s,a,o]=this.#Ll();return`M${(this.#Sl[2]-t)/i} ${(this.#Sl[3]-e)/n} L${(this.#Sl[4]-t)/i} ${(this.#Sl[5]-e)/n} L${r} ${s} L${a} ${o} L${(this.#Sl[16]-t)/i} ${(this.#Sl[17]-e)/n} L${(this.#Sl[14]-t)/i} ${(this.#Sl[15]-e)/n} Z`}#Hl(t){const e=this.#Al;t.push(`L${e[4]} ${e[5]} Z`)}#Ul(t){const[e,i,n,r]=this.#_l,s=this.#Sl.subarray(4,6),a=this.#Sl.subarray(16,18),[o,l,c,h]=this.#Ll();t.push(`L${(s[0]-e)/n} ${(s[1]-i)/r} L${o} ${l} L${c} ${h} L${(a[0]-e)/n} ${(a[1]-i)/r}`)}newFreeDrawOutline(t,e,i,n,r,s){return new FreeDrawOutline(t,e,i,n,r,s)}getOutlines(){const t=this.#Cl,e=this.#Al,i=this.#Sl,[n,r,s,a]=this.#_l,o=new Float32Array((this.#Fl?.length??0)+2);for(let t=0,e=o.length-2;t<e;t+=2){o[t]=(this.#Fl[t]-n)/s;o[t+1]=(this.#Fl[t+1]-r)/a}o[o.length-2]=(this.#Tl-n)/s;o[o.length-1]=(this.#kl-r)/a;if(isNaN(i[6])&&!this.isEmpty())return this.#zl(o);const l=new Float32Array(this.#Cl.length+24+this.#Al.length);let c=t.length;for(let e=0;e<c;e+=2)if(isNaN(t[e]))l[e]=l[e+1]=NaN;else{l[e]=t[e];l[e+1]=t[e+1]}c=this.#Gl(l,c);for(let t=e.length-6;t>=6;t-=6)for(let i=0;i<6;i+=2)if(isNaN(e[t+i])){l[c]=l[c+1]=NaN;c+=2}else{l[c]=e[t+i];l[c+1]=e[t+i+1];c+=2}this.#jl(l,c);return this.newFreeDrawOutline(l,o,this.#_l,this.#Ml,this.#xl,this.#El)}#zl(t){const e=this.#Sl,[i,n,r,s]=this.#_l,[a,o,l,c]=this.#Ll(),h=new Float32Array(36);h.set([NaN,NaN,NaN,NaN,(e[2]-i)/r,(e[3]-n)/s,NaN,NaN,NaN,NaN,(e[4]-i)/r,(e[5]-n)/s,NaN,NaN,NaN,NaN,a,o,NaN,NaN,NaN,NaN,l,c,NaN,NaN,NaN,NaN,(e[16]-i)/r,(e[17]-n)/s,NaN,NaN,NaN,NaN,(e[14]-i)/r,(e[15]-n)/s],0);return this.newFreeDrawOutline(h,t,this.#_l,this.#Ml,this.#xl,this.#El)}#jl(t,e){const i=this.#Al;t.set([NaN,NaN,NaN,NaN,i[4],i[5]],e);return e+6}#Gl(t,e){const i=this.#Sl.subarray(4,6),n=this.#Sl.subarray(16,18),[r,s,a,o]=this.#_l,[l,c,h,d]=this.#Ll();t.set([NaN,NaN,NaN,NaN,(i[0]-r)/a,(i[1]-s)/o,NaN,NaN,NaN,NaN,l,c,NaN,NaN,NaN,NaN,h,d,NaN,NaN,NaN,NaN,(n[0]-r)/a,(n[1]-s)/o],e);return e+24}}class FreeDrawOutline extends Outline{#_l;#Wl=new Float32Array(4);#xl;#El;#Fl;#Ml;#Vl;constructor(t,e,i,n,r,s){super();this.#Vl=t;this.#Fl=e;this.#_l=i;this.#Ml=n;this.#xl=r;this.#El=s;this.firstPoint=[NaN,NaN];this.lastPoint=[NaN,NaN];this.#$l(s);const[a,o,l,c]=this.#Wl;for(let e=0,i=t.length;e<i;e+=2){t[e]=(t[e]-a)/l;t[e+1]=(t[e+1]-o)/c}for(let t=0,i=e.length;t<i;t+=2){e[t]=(e[t]-a)/l;e[t+1]=(e[t+1]-o)/c}}toSVGPath(){const t=[`M${this.#Vl[4]} ${this.#Vl[5]}`];for(let e=6,i=this.#Vl.length;e<i;e+=6)isNaN(this.#Vl[e])?t.push(`L${this.#Vl[e+4]} ${this.#Vl[e+5]}`):t.push(`C${this.#Vl[e]} ${this.#Vl[e+1]} ${this.#Vl[e+2]} ${this.#Vl[e+3]} ${this.#Vl[e+4]} ${this.#Vl[e+5]}`);t.push("Z");return t.join(" ")}serialize([t,e,i,n],r){const s=i-t,a=n-e;let o,l;switch(r){case 0:o=Outline._rescale(this.#Vl,t,n,s,-a);l=Outline._rescale(this.#Fl,t,n,s,-a);break;case 90:o=Outline._rescaleAndSwap(this.#Vl,t,e,s,a);l=Outline._rescaleAndSwap(this.#Fl,t,e,s,a);break;case 180:o=Outline._rescale(this.#Vl,i,e,-s,a);l=Outline._rescale(this.#Fl,i,e,-s,a);break;case 270:o=Outline._rescaleAndSwap(this.#Vl,i,n,-s,-a);l=Outline._rescaleAndSwap(this.#Fl,i,n,-s,-a)}return{outline:Array.from(o),points:[Array.from(l)]}}#$l(t){const e=this.#Vl;let i=e[4],n=e[5];const r=[i,n,i,n];let s=i,a=n,o=i,l=n;const c=t?Math.max:Math.min,h=new Float32Array(4);for(let t=6,d=e.length;t<d;t+=6){const d=e[t+4],u=e[t+5];if(isNaN(e[t])){Util.pointBoundingBox(d,u,r);if(a>u){s=d;a=u}else a===u&&(s=c(s,d));if(l<u){o=d;l=u}else l===u&&(o=c(o,d))}else{h.set(pi,0);Util.bezierBoundingBox(i,n,...e.slice(t,t+6),h);Util.rectBoundingBox(...h,r);if(a>h[1]){s=h[0];a=h[1]}else a===h[1]&&(s=c(s,h[0]));if(l<h[3]){o=h[2];l=h[3]}else l===h[3]&&(o=c(o,h[2]))}i=d;n=u}const d=this.#Wl;d[0]=r[0]-this.#xl;d[1]=r[1]-this.#xl;d[2]=r[2]-r[0]+2*this.#xl;d[3]=r[3]-r[1]+2*this.#xl;this.firstPoint=[s,a];this.lastPoint=[o,l]}get box(){return this.#Wl}newOutliner(t,e,i,n,r,s,a=0){return new FreeDrawOutliner(t,e,i,n,r,s,a)}updateThickness(t){const e=this.getNewOutline(t);this.#Vl=e.#Vl;this.#Fl=e.#Fl;this.#Wl.set(e.#Wl);this.firstPoint=e.firstPoint;this.lastPoint=e.lastPoint;return this.#Wl}getNewOutline(t,e){const[i,n,r,s]=this.#Wl,[a,o,l,c]=this.#_l,h=r*l,d=s*c,u=i*l+a,p=n*c+o,g=this.#Fl,f=this.newOutliner(g[0]*h+u,g[1]*d+p,this.#_l,this.#Ml,t,this.#El,e??this.#xl);for(let t=2,e=g.length;t<e;t+=2)f.add(g[t]*h+u,g[t+1]*d+p);return f.getOutlines()}}function getHighlightSVGProperties(t){return{bbox:t.box,root:{viewBox:"0 0 1 1"},rootClass:{highlight:!0,free:t.isFree},path:{d:t.toSVGPath()}}}function getHighlightFocusSVGProperties(t,e){const{focusOutline:i}=t;return{bbox:Outline._rotateBox(i.box,e),root:{"data-main-rotation":e},rootClass:{highlightOutline:!0,free:t.isFree},path:{d:i.toSVGPath()}}}class HighlightOutliner{#_l;#ql;#Xl;#Kl=[];#Yl=[];constructor(t,e=0,i=0,n=!0){const r=pi.slice(),s=1e-4;for(const{x:i,y:n,width:a,height:o}of t){const t=Math.floor((i-e)/s)*s,l=Math.ceil((i+a+e)/s)*s,c=Math.floor((n-e)/s)*s,h=Math.ceil((n+o+e)/s)*s,d=[t,c,h,!0],u=[l,c,h,!1];this.#Kl.push(d,u);Util.rectBoundingBox(t,c,l,h,r)}const a=r[2]-r[0]+2*i,o=r[3]-r[1]+2*i,l=r[0]-i,c=r[1]-i;let h=n?-1/0:1/0,d=1/0;const u=this.#Kl.at(n?-1:-2),p=[u[0],u[2]];for(const t of this.#Kl){const[e,i,r,s]=t;if(!s&&n)if(i<d){d=i;h=e}else i===d&&(h=Math.max(h,e));else if(s&&!n)if(i<d){d=i;h=e}else i===d&&(h=Math.min(h,e));t[0]=(e-l)/a;t[1]=(i-c)/o;t[2]=(r-c)/o}this.#_l=new Float32Array([l,c,a,o]);this.#ql=[h,d];this.#Xl=p}getOutlines(){this.#Kl.sort((t,e)=>t[0]-e[0]||t[1]-e[1]||t[2]-e[2]);const t=[];for(const e of this.#Kl)if(e[3]){t.push(...this.#Jl(e));this.#Ql(e)}else{this.#Zl(e);t.push(...this.#Jl(e))}return this.#tc(t)}#tc(t){const e=[],i=new Set;for(const i of t){const[t,n,r]=i;e.push([t,n,i],[t,r,i])}e.sort((t,e)=>t[1]-e[1]||t[0]-e[0]);for(let t=0,n=e.length;t<n;t+=2){const n=e[t][2],r=e[t+1][2];n.push(r);r.push(n);i.add(n);i.add(r)}const n=[];for(;i.size>0;){const t=i.values().next().value;let[e,r,s,a,o]=t;i.delete(t);let l=e,c=r;const h=[e,s];n.push(h);for(;;){let t;if(i.has(a))t=a;else{if(!i.has(o))break;t=o}i.delete(t);[e,r,s,a,o]=t;if(l!==e){h.push(l,c,e,c===r?r:s);l=e}c=c===r?s:r}h.push(l,c)}return new HighlightOutline(n,this.#_l,this.#ql,this.#Xl)}#ec(t){const e=this.#Yl;let i=0,n=e.length-1;for(;i<=n;){const r=i+n>>1,s=e[r][0];if(s===t)return r;s<t?i=r+1:n=r-1}return n+1}#Ql([,t,e]){const i=this.#ec(t);this.#Yl.splice(i,0,[t,e])}#Zl([,t,e]){const i=this.#ec(t);for(let n=i;n<this.#Yl.length;n++){const[i,r]=this.#Yl[n];if(i!==t)break;if(i===t&&r===e){this.#Yl.splice(n,1);return}}for(let n=i-1;n>=0;n--){const[i,r]=this.#Yl[n];if(i!==t)break;if(i===t&&r===e){this.#Yl.splice(n,1);return}}}#Jl(t){const[e,i,n]=t,r=[[e,i,n]],s=this.#ec(n);for(let t=0;t<s;t++){const[i,n]=this.#Yl[t];for(let t=0,s=r.length;t<s;t++){const[,a,o]=r[t];if(!(n<=a||o<=i))if(a>=i)if(o>n)r[t][1]=n;else{if(1===s)return[];r.splice(t,1);t--;s--}else{r[t][2]=i;o>n&&r.push([e,n,o])}}}return r}}class HighlightOutline extends Outline{#_l;#ic=null;#nc;constructor(t,e,i,n){super();this.#nc=t;this.#_l=e;this.firstPoint=i;this.lastPoint=n}static build(t,e){const i=new HighlightOutliner(t,.001).getOutlines();i.#ic=t;i.focusOutline=new HighlightOutliner(t,.0025,.001,e).getOutlines();return i}get isFree(){return!1}get defaultSVGProperties(){return getHighlightSVGProperties(this)}getFocusSVGProperties(t){return getHighlightFocusSVGProperties(this,t)}updateRotation(t){return{root:{"data-main-rotation":t}}}serializeQuadPoints([t,e],[i,n]){const r=this.#ic,s=new Float32Array(8*r.length);let a=0;for(const{x:o,y:l,width:c,height:h}of r){const r=o*i+t,d=(1-l)*n+e;s[a]=s[a+4]=r;s[a+1]=s[a+3]=d;s[a+2]=s[a+6]=r+c*i;s[a+5]=s[a+7]=d-h*n;a+=8}return s}toSVGPath(){const t=[];for(const e of this.#nc){let[i,n]=e;t.push(`M${i} ${n}`);for(let r=2;r<e.length;r+=2){const s=e[r],a=e[r+1];if(s===i){t.push(`V${a}`);n=a}else if(a===n){t.push(`H${s}`);i=s}}t.push("Z")}return t.join(" ")}serialize([t,e,i,n],r){const s=[],a=i-t,o=n-e;for(const e of this.#nc){const i=new Array(e.length);for(let r=0;r<e.length;r+=2){i[r]=t+e[r]*a;i[r+1]=n-e[r+1]*o}s.push(i)}return s}get box(){return this.#_l}}class FreeHighlightOutliner extends FreeDrawOutliner{newFreeDrawOutline(t,e,i,n,r,s){return new FreeHighlightOutline(t,e,i,n,r,s)}}class FreeHighlightDrawer{#rc;#Il;constructor(t,e,i,n,r,s,a){this.#rc=new FreeHighlightOutliner(t,e,i,n,r,s,a);this.#Il=r}add(t,e){return this.#rc.add(t,e)?{path:{d:this.#rc.toSVGPath()}}:null}addPoints(t){let e=!1;for(let i=0,n=t.length;i<n;i+=2)e=this.#rc.add(t[i],t[i+1])||e;return e?{path:{d:this.#rc.toSVGPath()}}:null}end(t,e){return void 0===t?null:this.add(t,e)}isEmpty(){return this.#rc.isEmpty()}isCancellable(){return this.#rc.isCancellable()}removeLastElement(){return this.#rc.removeLastElement()}updateProperty(t,e){return null}getOutlines(){const t=this.#rc.getOutlines();t.buildFocusOutline(2*this.#Il);return t}get defaultSVGProperties(){return{bbox:[0,0,1,1],root:{viewBox:"0 0 1 1"},rootClass:{highlight:!0,free:!0},path:{d:this.#rc.toSVGPath()}}}}class FreeHighlightOutline extends FreeDrawOutline{static#sc=1.5;newOutliner(t,e,i,n,r,s,a=0){return new FreeHighlightOutliner(t,e,i,n,r,s,a)}get isFree(){return!0}buildFocusOutline(t){this.focusOutline=this.getNewOutline(t/2+FreeHighlightOutline.#sc,.0025)}get defaultSVGProperties(){return getHighlightSVGProperties(this)}getFocusSVGProperties(t){return getHighlightFocusSVGProperties(this,t)}get focusMustRemoveSelfIntersections(){return!0}updateRotation(t){return{root:{"data-main-rotation":t}}}updateProperty(t,e){if("thickness"!==t)return null;const i=this.updateThickness(e/2);this.buildFocusOutline(e);return i}getPathResizedSVGProperties(){return{path:{d:this.toSVGPath()}}}}class HighlightDrawingOptions extends DrawingOptions{constructor(t=null){super();super.updateProperties(t)}updateSVGProperty(t,e){"thickness"!==t&&super.updateSVGProperty(t,e)}clone(){const t=new HighlightDrawingOptions;t.updateAll(this);return t}}class HighlightEditor extends DrawingEditor{#ac=null;#oc=0;#lc=null;#cc=0;#hc="";#we="";static _DEFAULT_OPACITY=1;static _DEFAULT_THICKNESS=12;static _defaultDrawingOptions=null;static _type="highlight";static _editorType=ki.HIGHLIGHT;static get _keyboardManager(){const t=HighlightEditor.prototype;return util_shadow(this,"_keyboardManager",new KeyboardManager([[["ArrowLeft"],t._moveCaret,{args:[0]}],[["ArrowRight"],t._moveCaret,{args:[1]}],[["ArrowUp"],t._moveCaret,{args:[2]}],[["ArrowDown"],t._moveCaret,{args:[3]}]]))}constructor(t){super({...t,name:"highlightEditor"});this.#ac=t.anchorNode||null;this.#oc=t.anchorOffset||0;this.#lc=t.focusNode||null;this.#cc=t.focusOffset||0;this.#hc=t.methodOfCreation||(this._drawOutlines?.isFree?"main_toolbar":"");this.#we=t.text||"";this._isDraggable=!1;this.defaultL10nId="pdfjs-editor-highlight-editor";this.rotate()}static initialize(t,e){AnnotationEditor.initialize(t,e);this._defaultDrawingOptions||=new HighlightDrawingOptions({fill:e.highlightColors?.values().next().value||"#fff066","fill-opacity":HighlightEditor._DEFAULT_OPACITY,thickness:HighlightEditor._DEFAULT_THICKNESS})}static getDefaultDrawingOptions(t){const e=this._defaultDrawingOptions.clone();e.updateProperties(t);return e}static get typesMap(){return util_shadow(this,"typesMap",new Map([[Di.HIGHLIGHT_COLOR,"fill"],[Di.HIGHLIGHT_THICKNESS,"thickness"]]))}static get isDrawer(){return!1}static get _hasClipPath(){return!0}static get _hasDrawClass(){return!1}_addOutlines(t){const{boxes:e,drawOutlines:i}=t;if(e||i){this._drawingOptions||=t.drawingOptions||HighlightEditor.getDefaultDrawingOptions();e&&(t={...t,drawOutlines:HighlightOutline.build(e,"ltr"===this._uiManager.direction)});super._addOutlines(t)}}get colorType(){return Di.HIGHLIGHT_COLOR}get color(){return this._drawingOptions.fill}get opacity(){return this._drawingOptions["fill-opacity"]}get _opacityName(){return"fill-opacity"}get _drawRotation(){return this._drawOutlines?.isFree?this.rotation:0}get isResizable(){return!1}get _mustBeDisabledOnCommit(){return!1}get _mustFixPosition(){return!this._drawOutlines?.isFree}get telemetryInitialData(){return{action:"added",type:this._drawOutlines.isFree?"free_highlight":"highlight",color:this._uiManager.getNonHCMColorName(this.color),thickness:this._drawingOptions.thickness,methodOfCreation:this.#hc}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.getNonHCMColorName(this.color)}}static computeTelemetryFinalData(t){return{numberOfColors:t.get("color").size}}translateInPage(t,e){}get toolbarPosition(){return this.#dc(this._drawOutlines.focusOutline.lastPoint)}get commentButtonPosition(){return this.#dc(this._drawOutlines.firstPoint)}#dc([t,e]){const[i,n,r,s]=this._drawOutlines.box;return[(t-i)/r,(e-n)/s]}updateParams(t,e){switch(t){case Di.HIGHLIGHT_COLOR:this._updateColorAndOpacity(e,HighlightEditor._DEFAULT_OPACITY,t);this._reportTelemetry({action:"color_changed",color:this._uiManager.getNonHCMColorName(e)},!0);break;case Di.HIGHLIGHT_THICKNESS:super.updateParams(t,e);this._reportTelemetry({action:"thickness_changed",thickness:e},!0)}}get propertiesToUpdate(){const t=super.propertiesToUpdate;t.push([Di.HIGHLIGHT_FREE,this._drawOutlines.isFree]);return t}get toolbarButtons(){if(this._uiManager.highlightColors){this._colorPicker=new ColorPicker({editor:this});return[["colorPicker",this._colorPicker]]}return super.toolbarButtons}fixAndSetPosition(){return super.fixAndSetPosition(this._drawRotation)}getRect(t,e){return super.getRect(t,e,this._drawRotation)}onceAdded(t){this.annotationElementId||this.parent.addUndoableEditor(this);t&&this.div.focus()}remove(){this._reportTelemetry({action:"deleted"});super.remove()}render(){if(this.div)return this.div;const t=super.render();if(this.#we){t.setAttribute("aria-label",this.#we);t.setAttribute("role","mark")}this._drawOutlines.isFree?t.classList.add("free"):t.addEventListener("keydown",this.#uc.bind(this),{signal:this._uiManager._signal});this.enableEditing();return t}#uc(t){HighlightEditor._keyboardManager.exec(this,t)}_moveCaret(t){this.parent.unselect(this);switch(t){case 0:case 2:this.#pc(!0);break;case 1:case 3:this.#pc(!1)}}#pc(t){if(!this.#ac)return;const e=window.getSelection();t?e.setPosition(this.#ac,this.#oc):e.setPosition(this.#lc,this.#cc)}unselect(){super.unselect();this._drawOutlines.isFree||this.#pc(!1)}static createDrawerInstance({x:t,y:e,box:i,parent:n,isLTR:r}){return new FreeHighlightDrawer(t,e,i,n.scale,this._defaultDrawingOptions.thickness/2,r,.001)}static _getDrawingTarget(t,{target:e}){return e.closest(".textLayer")}static _getPointerCoords({x:t,y:e}){return[t,e]}static _addDrawingListeners(t,e){t.classList.add("free");e.addEventListener("abort",()=>t.classList.remove("free"),{once:!0});window.addEventListener("blur",()=>this._endDraw(null),{signal:e});window.addEventListener("pointerdown",stopEvent,{capture:!0,passive:!1,signal:e})}static _endDrawingSession(t=!1){return this.endDrawing(t)}createDrawingOptions({color:t,opacity:e,thickness:i}){const{_defaultDrawingOptions:n,_DEFAULT_OPACITY:r}=HighlightEditor;this._drawingOptions=HighlightEditor.getDefaultDrawingOptions({fill:Util.makeHexColor(...t),"fill-opacity":e||r,thickness:i||n.thickness})}static deserializeDraw(t,e,i,n,r,s,a){const{quadPoints:o}=s;if(o){const r=[];for(let s=0,a=o.length;s<a;s+=8)r.push({x:(o[s]-t)/i,y:1-(o[s+1]-e)/n,width:(o[s+2]-o[s])/i,height:(o[s+1]-o[s+5])/n});return HighlightOutline.build(r,"ltr"===a.direction)}const l=s.thickness||this._defaultDrawingOptions.thickness,c=(s.inkLists||s.outlines.points)[0],h=new FreeHighlightOutliner(c[0]-t,n-(c[1]-e),[0,0,i,n],1,l/2,!0,.001);for(let i=0,r=c.length;i<r;i+=2)h.add(c[i]-t,n-(c[i+1]-e));const d=h.getOutlines();d.buildFocusOutline(l);return d}static async deserialize(t,e,i){let n=null;if(t instanceof HighlightAnnotationElement){const{data:{quadPoints:e,rect:i,rotation:r,id:s,color:a,opacity:o,popupRef:l,richText:c,contentsObj:h,creationDate:d,modificationDate:u},parent:{page:{pageNumber:p}}}=t;n=t={annotationType:ki.HIGHLIGHT,color:Array.from(a),opacity:o,quadPoints:e,pageIndex:p-1,rect:i.slice(0),rotation:r,annotationElementId:s,id:s,deleted:!1,popupRef:l,richText:c,comment:h?.str||null,creationDate:d,modificationDate:u}}else if(t instanceof InkAnnotationElement){const{data:{inkLists:e,rect:i,rotation:r,id:s,color:a,borderStyle:{rawWidth:o},popupRef:l,richText:c,contentsObj:h,creationDate:d,modificationDate:u},parent:{page:{pageNumber:p}}}=t;n=t={annotationType:ki.HIGHLIGHT,color:Array.from(a),thickness:o,inkLists:e,pageIndex:p-1,rect:i.slice(0),rotation:r,annotationElementId:s,id:s,deleted:!1,popupRef:l,richText:c,comment:h?.str||null,creationDate:d,modificationDate:u}}const r=await super.deserialize(t,e,i);r._initialData=n;t.comment&&r.setCommentData(t);return r}serialize(t=!1){if(this.isEmpty()||t)return null;if(this.deleted)return this.serializeDeleted();const e=super.serialize(t);Object.assign(e,{color:AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color)),opacity:this.opacity,thickness:this._drawingOptions.thickness,quadPoints:this._drawOutlines.serializeQuadPoints(this.pageTranslation,this.pageDimensions),outlines:this._drawOutlines.serialize(e.rect,this._drawRotation)});this.addComment(e);if(this.annotationElementId&&!this.#tl(e))return null;e.id=this.annotationElementId;return e}#tl(t){const{color:e}=this._initialData;return this.hasEditedComment||t.color.some((t,i)=>t!==e[i])}renderAnnotationElement(t){if(this.deleted){t.hide();return null}t.updateEdited({rect:this.getPDFRect(),popup:this.comment});return null}}class InkDrawOutliner{#Sl=new Float64Array(6);#gc=new Float64Array(2);#xo;#fc;#ks;#Il;#Fl;#mc="";#bc=0;#nc=new InkDrawOutline;#yc;#wc;constructor(t,e,i,n,r,s){this.#yc=i;this.#wc=n;this.#ks=r;this.#Il=s;[t,e]=this.#vc(t,e);const a=this.#xo=[NaN,NaN,NaN,NaN,t,e];this.#Fl=[t,e];this.#fc=[{line:a,points:this.#Fl}];this.#Sl.set(a,0);this.#gc.set([t,e],0)}updateProperty(t,e){"stroke-width"===t&&(this.#Il=e)}#vc(t,e){return Outline._normalizePoint(t,e,this.#yc,this.#wc,this.#ks)}isEmpty(){return!this.#fc?.length}isCancellable(){return this.#Fl.length<=10}add(t,e){this.#_c(t,e)&&this.toSVGPath();return{path:{d:this.#Ac()}}}addPoints(t){let e=!1;for(let i=0,n=t.length;i<n;i+=2)if(this.#_c(t[i],t[i+1])){e=!0;if(this.#Fl.length<=6){this.toSVGPath();e=!1}}e&&this.toSVGPath();return{path:{d:this.#Ac()}}}#_c(t,e){[t,e]=this.#vc(t,e);this.#gc.set([t,e],0);const[i,n,r,s]=this.#Sl.subarray(2,6),a=t-r,o=e-s;if(Math.hypot(this.#yc*a,this.#wc*o)<=2)return!1;this.#Fl.push(t,e);if(isNaN(i)){this.#Sl.set([r,s,t,e],2);this.#xo.push(NaN,NaN,NaN,NaN,t,e);return!0}isNaN(this.#Sl[0])&&this.#xo.splice(6,6);this.#Sl.set([i,n,r,s,t,e],0);this.#xo.push(...Outline.createBezierPoints(i,n,r,s,t,e));return!0}end(t,e){return void 0!==t&&this.#_c(t,e)||2===this.#Fl.length?{path:{d:this.toSVGPath()}}:{path:{d:this.#mc}}}startNew(t,e,i,n,r){this.#yc=i;this.#wc=n;this.#ks=r;[t,e]=this.#vc(t,e);const s=this.#xo=[NaN,NaN,NaN,NaN,t,e];this.#Fl=[t,e];this.#gc.set([t,e],0);const a=this.#fc.at(-1);if(a){a.line=new Float32Array(a.line);a.points=new Float32Array(a.points)}this.#fc.push({line:s,points:this.#Fl});this.#Sl.set(s,0);this.#bc=0;this.toSVGPath();return null}getLastElement(){return this.#fc.at(-1)}setLastElement(t){if(!this.#fc)return this.#nc.setLastElement(t);this.#fc.push(t);this.#xo=t.line;this.#Fl=t.points;this.#bc=0;return{path:{d:this.toSVGPath()}}}removeLastElement(){if(!this.#fc)return this.#nc.removeLastElement();this.#fc.pop();this.#mc="";for(let t=0,e=this.#fc.length;t<e;t++){const{line:e,points:i}=this.#fc[t];this.#xo=e;this.#Fl=i;this.#bc=0;this.toSVGPath()}return{path:{d:this.#mc}}}#Ac(){const t=Outline.svgRound(this.#gc[0]),e=Outline.svgRound(this.#gc[1]);if(2===this.#Fl.length){const i=Outline.svgRound(this.#xo[4]),n=Outline.svgRound(this.#xo[5]);return`${this.#mc} M ${i} ${n} L ${t} ${e}`}return`${this.#mc} L ${t} ${e}`}toSVGPath(){const t=Outline.svgRound(this.#xo[4]),e=Outline.svgRound(this.#xo[5]);if(2===this.#Fl.length){this.#mc=`${this.#mc} M ${t} ${e} Z`;return this.#mc}if(this.#Fl.length<=6){const i=this.#mc.lastIndexOf("M");this.#mc=`${this.#mc.slice(0,i)} M ${t} ${e}`;this.#bc=6}if(4===this.#Fl.length){const t=Outline.svgRound(this.#xo[10]),e=Outline.svgRound(this.#xo[11]);this.#mc=`${this.#mc} L ${t} ${e}`;this.#bc=12;return this.#mc}const i=[];if(0===this.#bc){i.push(`M ${t} ${e}`);this.#bc=6}for(let t=this.#bc,e=this.#xo.length;t<e;t+=6){const[e,n,r,s,a,o]=this.#xo.slice(t,t+6).map(Outline.svgRound);i.push(`C${e} ${n} ${r} ${s} ${a} ${o}`)}this.#mc+=i.join(" ");this.#bc=this.#xo.length;return this.#mc}getOutlines(t,e,i,n){const r=this.#fc.at(-1);r.line=new Float32Array(r.line);r.points=new Float32Array(r.points);this.#nc.build(this.#fc,t,e,i,this.#ks,this.#Il,n);this.#Sl=null;this.#xo=null;this.#fc=null;this.#mc=null;return this.#nc}get defaultSVGProperties(){return{root:{viewBox:"0 0 10000 10000"},rootClass:{draw:!0},bbox:[0,0,1,1]}}}class InkDrawOutline extends Outline{#Wl;#xc=0;#xl;#fc;#yc;#wc;#Ec;#ks;#Il;build(t,e,i,n,r,s,a){this.#yc=e;this.#wc=i;this.#Ec=n;this.#ks=r;this.#Il=s;this.#xl=a??0;this.#fc=t;this.#Cc()}get thickness(){return this.#Il}setLastElement(t){this.#fc.push(t);return{path:{d:this.toSVGPath()}}}removeLastElement(){this.#fc.pop();return{path:{d:this.toSVGPath()}}}toSVGPath(){const t=[];for(const{line:e}of this.#fc){t.push(`M${Outline.svgRound(e[4])} ${Outline.svgRound(e[5])}`);if(6!==e.length)if(12===e.length&&isNaN(e[6]))t.push(`L${Outline.svgRound(e[10])} ${Outline.svgRound(e[11])}`);else for(let i=6,n=e.length;i<n;i+=6){const[n,r,s,a,o,l]=e.subarray(i,i+6).map(Outline.svgRound);t.push(`C${n} ${r} ${s} ${a} ${o} ${l}`)}else t.push("Z")}return t.join("")}serialize([t,e,i,n],r){const s=[],a=[],[o,l,c,h]=this.#Sc();let d,u,p,g,f,m,b,y,w;switch(this.#ks){case 0:w=Outline._rescale;d=t;u=e+n;p=i;g=-n;f=t+o*i;m=e+(1-l-h)*n;b=t+(o+c)*i;y=e+(1-l)*n;break;case 90:w=Outline._rescaleAndSwap;d=t;u=e;p=i;g=n;f=t+l*i;m=e+o*n;b=t+(l+h)*i;y=e+(o+c)*n;break;case 180:w=Outline._rescale;d=t+i;u=e;p=-i;g=n;f=t+(1-o-c)*i;m=e+l*n;b=t+(1-o)*i;y=e+(l+h)*n;break;case 270:w=Outline._rescaleAndSwap;d=t+i;u=e+n;p=-i;g=-n;f=t+(1-l-h)*i;m=e+(1-o-c)*n;b=t+(1-l)*i;y=e+(1-o)*n}for(const{line:t,points:e}of this.#fc){s.push(w(t,d,u,p,g,r?new Array(t.length):null));a.push(w(e,d,u,p,g,r?new Array(e.length):null))}return{lines:s,points:a,rect:[f,m,b,y]}}static deserialize(t,e,i,n,r,{paths:{lines:s,points:a},rotation:o,thickness:l}){const c=[];let h,d,u,p,g;switch(o){case 0:g=Outline._rescale;h=-t/i;d=e/n+1;u=1/i;p=-1/n;break;case 90:g=Outline._rescaleAndSwap;h=-e/n;d=-t/i;u=1/n;p=1/i;break;case 180:g=Outline._rescale;h=t/i+1;d=-e/n;u=-1/i;p=1/n;break;case 270:g=Outline._rescaleAndSwap;h=e/n+1;d=t/i+1;u=-1/n;p=-1/i}if(!s){s=[];for(const t of a){const e=t.length;if(2===e){s.push(new Float32Array([NaN,NaN,NaN,NaN,t[0],t[1]]));continue}if(4===e){s.push(new Float32Array([NaN,NaN,NaN,NaN,t[0],t[1],NaN,NaN,NaN,NaN,t[2],t[3]]));continue}const i=new Float32Array(3*(e-2));s.push(i);let[n,r,a,o]=t.subarray(0,4);i.set([NaN,NaN,NaN,NaN,n,r],0);for(let s=4;s<e;s+=2){const e=t[s],l=t[s+1];i.set(Outline.createBezierPoints(n,r,a,o,e,l),3*(s-2));[n,r,a,o]=[a,o,e,l]}}}for(let t=0,e=s.length;t<e;t++)c.push({line:g(s[t].map(t=>t??NaN),h,d,u,p),points:g(a[t].map(t=>t??NaN),h,d,u,p)});const f=new this.prototype.constructor;f.build(c,i,n,1,o,l,r);return f}#Tc(t=this.#Il){const e=this.#xl+t/2*this.#Ec;return this.#ks%180==0?[e/this.#yc,e/this.#wc]:[e/this.#wc,e/this.#yc]}#Sc(){const[t,e,i,n]=this.#Wl,[r,s]=this.#Tc(0);return[t+r,e+s,i-2*r,n-2*s]}#Cc(){const t=this.#Wl=gi.slice();for(const{line:e}of this.#fc){if(e.length<=12){for(let i=4,n=e.length;i<n;i+=6)Util.pointBoundingBox(e[i],e[i+1],t);continue}let i=e[4],n=e[5];for(let r=6,s=e.length;r<s;r+=6){const[s,a,o,l,c,h]=e.subarray(r,r+6);Util.bezierBoundingBox(i,n,s,a,o,l,c,h,t);i=c;n=h}}const[e,i]=this.#Tc();t[0]=MathClamp(t[0]-e,0,1);t[1]=MathClamp(t[1]-i,0,1);t[2]=MathClamp(t[2]+e,0,1);t[3]=MathClamp(t[3]+i,0,1);t[2]-=t[0];t[3]-=t[1]}get box(){return this.#Wl}updateProperty(t,e){return"stroke-width"===t?this.#kc(e):null}#kc(t){const[e,i]=this.#Tc();this.#Il=t;const[n,r]=this.#Tc(),[s,a]=[n-e,r-i],o=this.#Wl;o[0]-=s;o[1]-=a;o[2]+=2*s;o[3]+=2*a;return o}updateParentDimensions([t,e],i){const[n,r]=this.#Tc();this.#yc=t;this.#wc=e;this.#Ec=i;const[s,a]=this.#Tc(),o=s-n,l=a-r,c=this.#Wl;c[0]-=o;c[1]-=l;c[2]+=2*o;c[3]+=2*l;return c}updateRotation(t){this.#xc=t;return{path:{transform:this.rotationTransform}}}get viewBox(){return this.#Wl.map(Outline.svgRound).join(" ")}get defaultProperties(){const[t,e]=this.#Wl;return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(t)} ${Outline.svgRound(e)}`}}}get rotationTransform(){const[,,t,e]=this.#Wl;let i=0,n=0,r=0,s=0,a=0,o=0;switch(this.#xc){case 90:n=e/t;r=-t/e;a=t;break;case 180:i=-1;s=-1;a=t;o=e;break;case 270:n=-e/t;r=t/e;o=e;break;default:return""}return`matrix(${i} ${n} ${r} ${s} ${Outline.svgRound(a)} ${Outline.svgRound(o)})`}getPathResizingSVGProperties([t,e,i,n]){const[r,s]=this.#Tc(),[a,o,l,c]=this.#Wl;if(Math.abs(l-r)<=Outline.PRECISION||Math.abs(c-s)<=Outline.PRECISION){const r=t+i/2-(a+l/2),s=e+n/2-(o+c/2);return{path:{"transform-origin":`${Outline.svgRound(t)} ${Outline.svgRound(e)}`,transform:`${this.rotationTransform} translate(${r} ${s})`}}}const h=(i-2*r)/(l-2*r),d=(n-2*s)/(c-2*s),u=l/i,p=c/n;return{path:{"transform-origin":`${Outline.svgRound(a)} ${Outline.svgRound(o)}`,transform:`${this.rotationTransform} scale(${u} ${p}) translate(${Outline.svgRound(r)} ${Outline.svgRound(s)}) scale(${h} ${d}) translate(${Outline.svgRound(-r)} ${Outline.svgRound(-s)})`}}}getPathResizedSVGProperties([t,e,i,n]){const[r,s]=this.#Tc(),a=this.#Wl,[o,l,c,h]=a;a[0]=t;a[1]=e;a[2]=i;a[3]=n;if(Math.abs(c-r)<=Outline.PRECISION||Math.abs(h-s)<=Outline.PRECISION){const r=t+i/2-(o+c/2),s=e+n/2-(l+h/2);for(const{line:t,points:e}of this.#fc){Outline._translate(t,r,s,t);Outline._translate(e,r,s,e)}return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(t)} ${Outline.svgRound(e)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}const d=(i-2*r)/(c-2*r),u=(n-2*s)/(h-2*s),p=-d*(o+r)+t+r,g=-u*(l+s)+e+s;if(1!==d||1!==u||0!==p||0!==g)for(const{line:t,points:e}of this.#fc){Outline._rescale(t,p,g,d,u,t);Outline._rescale(e,p,g,d,u,e)}return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(t)} ${Outline.svgRound(e)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([t,e],i){const[n,r]=i,s=this.#Wl,a=t-s[0],o=e-s[1];if(this.#yc===n&&this.#wc===r)for(const{line:t,points:e}of this.#fc){Outline._translate(t,a,o,t);Outline._translate(e,a,o,e)}else{const t=this.#yc/n,e=this.#wc/r;this.#yc=n;this.#wc=r;for(const{line:i,points:n}of this.#fc){Outline._rescale(i,a,o,t,e,i);Outline._rescale(n,a,o,t,e,n)}s[2]*=t;s[3]*=e}s[0]=t;s[1]=e;return{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${Outline.svgRound(t)} ${Outline.svgRound(e)}`}}}get defaultSVGProperties(){const t=this.#Wl;return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${Outline.svgRound(t[0])} ${Outline.svgRound(t[1])}`,transform:this.rotationTransform||null},bbox:t}}}class InkDrawingOptions extends DrawingOptions{constructor(t){super();this._viewParameters=t;super.updateProperties({fill:"none",stroke:AnnotationEditor._defaultLineColor,"stroke-opacity":1,"stroke-width":1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":10})}updateSVGProperty(t,e){if("stroke-width"===t){e??=this["stroke-width"];e*=this._viewParameters.realScale}super.updateSVGProperty(t,e)}clone(){const t=new InkDrawingOptions(this._viewParameters);t.updateAll(this);return t}}class InkEditor extends DrawingEditor{static _type="ink";static _editorType=ki.INK;static _defaultDrawingOptions=null;constructor(t){super({...t,name:"inkEditor"});this._willKeepAspectRatio=!0;this.defaultL10nId="pdfjs-editor-ink-editor"}static initialize(t,e){AnnotationEditor.initialize(t,e);this._defaultDrawingOptions=new InkDrawingOptions(e.viewParameters)}static getDefaultDrawingOptions(t){const e=this._defaultDrawingOptions.clone();e.updateProperties(t);return e}static get supportMultipleDrawings(){return!0}static get typesMap(){return util_shadow(this,"typesMap",new Map([[Di.INK_THICKNESS,"stroke-width"],[Di.INK_COLOR,"stroke"],[Di.INK_OPACITY,"stroke-opacity"]]))}static createDrawerInstance({x:t,y:e,box:[,,i,n],rotation:r}){return new InkDrawOutliner(t,e,i,n,r,this._defaultDrawingOptions["stroke-width"])}static deserializeDraw(t,e,i,n,r,s){return InkDrawOutline.deserialize(t,e,i,n,r,s)}static async deserialize(t,e,i){let n=null;if(t instanceof InkAnnotationElement){const{data:{inkLists:e,rect:i,rotation:r,id:s,color:a,opacity:o,borderStyle:{rawWidth:l},popupRef:c,richText:h,contentsObj:d,creationDate:u,modificationDate:p},parent:{page:{pageNumber:g}}}=t;n=t={annotationType:ki.INK,color:Array.from(a),thickness:l,opacity:o,paths:{points:e},boxes:null,pageIndex:g-1,rect:i.slice(0),rotation:r,annotationElementId:s,id:s,deleted:!1,popupRef:c,richText:h,comment:d?.str||null,creationDate:u,modificationDate:p}}const r=await super.deserialize(t,e,i);r._initialData=n;t.comment&&r.setCommentData(t);return r}get toolbarButtons(){this._colorPicker||=new BasicColorPicker(this);return[["colorPicker",this._colorPicker]]}get colorType(){return Di.INK_COLOR}get colorAndOpacityType(){return Di.INK_COLOR_AND_OPACITY}get opacityType(){return Di.INK_OPACITY}updateParams(t,e){t!==Di.INK_COLOR_AND_OPACITY?super.updateParams(t,e):this._updateColorAndOpacity(e.color,e.opacity)}static updateDefaultParams(t,e){if(t!==Di.INK_COLOR_AND_OPACITY)super.updateDefaultParams(t,e);else{super.updateDefaultParams(Di.INK_COLOR,e.color);super.updateDefaultParams(Di.INK_OPACITY,e.opacity)}}get color(){return this._drawingOptions.stroke}get opacity(){return this._drawingOptions["stroke-opacity"]}onScaleChanging(){if(!this.parent)return;super.onScaleChanging();const{_drawId:t,_drawingOptions:e,parent:i}=this;e.updateSVGProperty("stroke-width");i.drawLayer.updateProperties(t,e.toSVGProperties())}static onScaleChangingWhenDrawing(){const t=this._currentParent;if(t){super.onScaleChangingWhenDrawing();this._defaultDrawingOptions.updateSVGProperty("stroke-width");t.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties())}}createDrawingOptions({color:t,thickness:e,opacity:i}){this._drawingOptions=InkEditor.getDefaultDrawingOptions({stroke:Util.makeHexColor(...t),"stroke-width":e,"stroke-opacity":i})}serialize(t=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const{lines:e,points:i}=this.serializeDraw(t),{_drawingOptions:{stroke:n,"stroke-opacity":r,"stroke-width":s}}=this,a=Object.assign(super.serialize(t),{color:AnnotationEditor._colorManager.convert(n),opacity:r,thickness:s,paths:{lines:e,points:i}});this.addComment(a);if(t){a.isCopy=!0;return a}if(this.annotationElementId&&!this.#tl(a))return null;a.id=this.annotationElementId;return a}#tl(t){const{color:e,thickness:i,opacity:n,pageIndex:r}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized||t.color.some((t,i)=>t!==e[i])||t.thickness!==i||t.opacity!==n||t.pageIndex!==r}renderAnnotationElement(t){if(this.deleted){t.hide();return null}const{points:e,rect:i}=this.serializeDraw(!1);t.updateEdited({rect:i,thickness:this._drawingOptions["stroke-width"],points:e,popup:this.comment});return null}}class ContourDrawOutline extends InkDrawOutline{toSVGPath(){let t=super.toSVGPath();t.endsWith("Z")||(t+="Z");return t}}ni();class SignatureExtractor{static#Dc={maxDim:512,sigmaSFactor:.02,sigmaR:25,kernelSize:16};static#Pc(t,e,i,n){n-=e;return 0===(i-=t)?n>0?0:4:1===i?n+6:2-n}static#Mc=new Int32Array([0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1]);static#Ic(t,e,i,n,r,s,a){const o=this.#Pc(i,n,r,s);for(let r=0;r<8;r++){const s=(-r+o-a+16)%8;if(0!==t[(i+this.#Mc[2*s])*e+(n+this.#Mc[2*s+1])])return s}return-1}static#Fc(t,e,i,n,r,s,a){const o=this.#Pc(i,n,r,s);for(let r=0;r<8;r++){const s=(r+o+a+16)%8;if(0!==t[(i+this.#Mc[2*s])*e+(n+this.#Mc[2*s+1])])return s}return-1}static#Oc(t,e,i,n){const r=t.length,s=new Int32Array(r);for(let e=0;e<r;e++)s[e]=t[e]<=n?1:0;for(let t=1;t<i-1;t++)s[t*e]=s[t*e+e-1]=0;for(let t=0;t<e;t++)s[t]=s[e*i-1-t]=0;let a,o=1;const l=[];for(let t=1;t<i-1;t++){a=1;for(let i=1;i<e-1;i++){const n=t*e+i,r=s[n];if(0===r)continue;let c=t,h=i;if(1===r&&0===s[n-1]){o+=1;h-=1}else{if(!(r>=1&&0===s[n+1])){1!==r&&(a=Math.abs(r));continue}o+=1;h+=1;r>1&&(a=r)}const d=[i,t],u=h===i+1,p={isHole:u,points:d,id:o,parent:0};l.push(p);let g;for(const t of l)if(t.id===a){g=t;break}g?g.isHole?p.parent=u?g.parent:a:p.parent=u?a:g.parent:p.parent=u?a:0;const f=this.#Ic(s,e,t,i,c,h,0);if(-1===f){s[n]=-o;1!==s[n]&&(a=Math.abs(s[n]));continue}let m=this.#Mc[2*f],b=this.#Mc[2*f+1];const y=t+m,w=i+b;c=y;h=w;let v=t,_=i;for(;;){const r=this.#Fc(s,e,v,_,c,h,1);m=this.#Mc[2*r];b=this.#Mc[2*r+1];const l=v+m,u=_+b;d.push(u,l);const p=v*e+_;0===s[p+1]?s[p]=-o:1===s[p]&&(s[p]=o);if(l===t&&u===i&&v===y&&_===w){1!==s[n]&&(a=Math.abs(s[n]));break}c=v;h=_;v=l;_=u}}}return l}static#Rc(t,e,i,n){if(i-e<=4){for(let r=e;r<i-2;r+=2)n.push(t[r],t[r+1]);return}const r=t[e],s=t[e+1],a=t[i-4]-r,o=t[i-3]-s,l=Math.hypot(a,o),c=a/l,h=o/l,d=c*s-h*r,u=o/a,p=1/l,g=Math.atan(u),f=Math.cos(g),m=Math.sin(g),b=p*(Math.abs(f)+Math.abs(m)),y=p*(1-b+b**2),w=Math.max(Math.atan(Math.abs(m+f)*y),Math.atan(Math.abs(m-f)*y));let v=0,_=e;for(let n=e+2;n<i-2;n+=2){const e=Math.abs(d-c*t[n+1]+h*t[n]);if(e>v){_=n;v=e}}if(v>(l*w)**2){this.#Rc(t,e,_+2,n);this.#Rc(t,_,i,n)}else n.push(r,s)}static#Bc(t){const e=[],i=t.length;this.#Rc(t,0,i,e);e.push(t[i-2],t[i-1]);return e.length<=4?null:e}static#Lc(t,e,i,n,r,s){const a=new Float32Array(s**2),o=-2*n**2,l=s>>1;for(let t=0;t<s;t++){const e=(t-l)**2;for(let i=0;i<s;i++)a[t*s+i]=Math.exp((e+(i-l)**2)/o)}const c=new Float32Array(256),h=-2*r**2;for(let t=0;t<256;t++)c[t]=Math.exp(t**2/h);const d=t.length,u=new Uint8Array(d),p=new Uint32Array(256);for(let n=0;n<i;n++)for(let r=0;r<e;r++){const o=n*e+r,h=t[o];let d=0,g=0;for(let o=0;o<s;o++){const u=n+o-l;if(!(u<0||u>=i))for(let i=0;i<s;i++){const n=r+i-l;if(n<0||n>=e)continue;const p=t[u*e+n],f=a[o*s+i]*c[Math.abs(p-h)];d+=p*f;g+=f}}p[u[o]=Math.round(d/g)]++}return[u,p]}static#Nc(t){const e=new Uint32Array(256);for(const i of t)e[i]++;return e}static#Uc(t){const e=t.length,i=new Uint8ClampedArray(e>>2);let n=-1/0,r=1/0;for(let e=0,s=i.length;e<s;e++){const s=i[e]=t[e<<2];n=Math.max(n,s);r=Math.min(r,s)}const s=255/(n-r);for(let t=0,e=i.length;t<e;t++)i[t]=(i[t]-r)*s;return i}static#Hc(t){let e,i=-1/0,n=-1/0;const r=t.findIndex(t=>0!==t);let s=r,a=r;for(e=r;e<256;e++){const r=t[e];if(r>i){if(e-s>n){n=e-s;a=e-1}i=r;s=e}}for(e=a-1;e>=0&&!(t[e]>t[e+1]);e--);return e}static#zc(t){const e=t,{width:i,height:n}=t,{maxDim:r}=this.#Dc;let s=i,a=n;if(i>r||n>r){let o=i,l=n,c=Math.log2(Math.max(i,n)/r);const h=Math.floor(c);c=c===h?h-1:h;for(let i=0;i<c;i++){s=Math.ceil(o/2);a=Math.ceil(l/2);const i=new OffscreenCanvas(s,a);i.getContext("2d").drawImage(t,0,0,o,l,0,0,s,a);o=s;l=a;t!==e&&t.close();t=i.transferToImageBitmap()}const d=Math.min(r/s,r/a);s=Math.round(s*d);a=Math.round(a*d)}const o=new OffscreenCanvas(s,a).getContext("2d",{willReadFrequently:!0});o.fillStyle="white";o.fillRect(0,0,s,a);o.filter="grayscale(1)";o.drawImage(t,0,0,t.width,t.height,0,0,s,a);const l=o.getImageData(0,0,s,a).data;return[this.#Uc(l),s,a]}static extractContoursFromText(t,{fontFamily:e,fontStyle:i,fontWeight:n},r,s,a,o){let l=new OffscreenCanvas(1,1),c=l.getContext("2d",{alpha:!1});const h=c.font=`${i} ${n} 200px ${e}`,{actualBoundingBoxLeft:d,actualBoundingBoxRight:u,actualBoundingBoxAscent:p,actualBoundingBoxDescent:g,fontBoundingBoxAscent:f,fontBoundingBoxDescent:m,width:b}=c.measureText(t),y=1.5,w=Math.ceil(Math.max(Math.abs(d)+Math.abs(u)||0,b)*y),v=Math.ceil(Math.max(Math.abs(p)+Math.abs(g)||200,Math.abs(f)+Math.abs(m)||200)*y);l=new OffscreenCanvas(w,v);c=l.getContext("2d",{alpha:!0,willReadFrequently:!0});c.font=h;c.filter="grayscale(1)";c.fillStyle="white";c.fillRect(0,0,w,v);c.fillStyle="black";c.fillText(t,.5*w/2,1.5*v/2);const _=this.#Uc(c.getImageData(0,0,w,v).data),A=this.#Nc(_),x=this.#Hc(A),E=this.#Oc(_,w,v,x);return this.processDrawnLines({lines:{curves:E,width:w,height:v},pageWidth:r,pageHeight:s,rotation:a,innerMargin:o,mustSmooth:!0,areContours:!0})}static process(t,e,i,n,r){const[s,a,o]=this.#zc(t),[l,c]=this.#Lc(s,a,o,Math.hypot(a,o)*this.#Dc.sigmaSFactor,this.#Dc.sigmaR,this.#Dc.kernelSize),h=this.#Hc(c),d=this.#Oc(l,a,o,h);return this.processDrawnLines({lines:{curves:d,width:a,height:o},pageWidth:e,pageHeight:i,rotation:n,innerMargin:r,mustSmooth:!0,areContours:!0})}static processDrawnLines({lines:t,pageWidth:e,pageHeight:i,rotation:n,innerMargin:r,mustSmooth:s,areContours:a}){n%180!=0&&([e,i]=[i,e]);const{curves:o,width:l,height:c}=t,h=t.thickness??0,d=[],u=Math.min(e/l,i/c),p=u/e,g=u/i,f=[];for(const{points:t}of o){const e=s?this.#Bc(t):t;if(!e)continue;f.push(e);const i=e.length,n=new Float32Array(i),r=new Float32Array(3*(2===i?2:i-2));d.push({line:r,points:n});if(2===i){n[0]=e[0]*p;n[1]=e[1]*g;r.set([NaN,NaN,NaN,NaN,n[0],n[1]],0);continue}let[a,o,l,c]=e;a*=p;o*=g;l*=p;c*=g;n.set([a,o,l,c],0);r.set([NaN,NaN,NaN,NaN,a,o],0);for(let t=4;t<i;t+=2){const i=n[t]=e[t]*p,s=n[t+1]=e[t+1]*g;r.set(Outline.createBezierPoints(a,o,l,c,i,s),3*(t-2));[a,o,l,c]=[l,c,i,s]}}if(0===d.length)return null;const m=a?new ContourDrawOutline:new InkDrawOutline;m.build(d,e,i,1,n,a?0:h,r);return{outline:m,newCurves:f,areContours:a,thickness:h,width:l,height:c}}static async compressSignature({outlines:t,areContours:e,thickness:i,width:n,height:r}){let s,a=1/0,o=-1/0,l=0;for(const e of t){l+=e.length;for(let t=2,i=e.length;t<i;t++){const i=e[t]-e[t-2];a=Math.min(a,i);o=Math.max(o,i)}}s=a>=-128&&o<=127?Int8Array:a>=-32768&&o<=32767?Int16Array:Int32Array;const c=t.length,h=8+3*c,d=new Uint32Array(h);let u=0;d[u++]=h*Uint32Array.BYTES_PER_ELEMENT+(l-2*c)*s.BYTES_PER_ELEMENT;d[u++]=0;d[u++]=n;d[u++]=r;d[u++]=e?0:1;d[u++]=Math.max(0,Math.floor(i??0));d[u++]=c;d[u++]=s.BYTES_PER_ELEMENT;for(const e of t){d[u++]=e.length-2;d[u++]=e[0];d[u++]=e[1]}const p=new CompressionStream("deflate-raw"),g=p.writable.getWriter();await g.ready;g.write(d);const f=s.prototype.constructor;for(const e of t){const t=new f(e.length-2);for(let i=2,n=e.length;i<n;i++)t[i-2]=e[i]-e[i-2];g.write(t)}g.close();return(await new Response(p.readable).bytes()).toBase64()}static async decompressSignature(t){try{const e=Uint8Array.fromBase64(t),{readable:i,writable:n}=new DecompressionStream("deflate-raw"),r=n.getWriter();await r.ready;r.write(e).then(async()=>{await r.ready;await r.close()}).catch(()=>{});let s=null,a=0;for await(const t of i){s||=new Uint8Array(new Uint32Array(t.buffer,0,4)[0]);s.set(t,a);a+=t.length}const o=new Uint32Array(s.buffer,0,s.length>>2),l=o[1];if(0!==l)throw new Error(`Invalid version: ${l}`);const c=o[2],h=o[3],d=0===o[4],u=o[5],p=o[6],g=o[7],f=[],m=(8+3*p)*Uint32Array.BYTES_PER_ELEMENT;let b;switch(g){case Int8Array.BYTES_PER_ELEMENT:b=new Int8Array(s.buffer,m);break;case Int16Array.BYTES_PER_ELEMENT:b=new Int16Array(s.buffer,m);break;case Int32Array.BYTES_PER_ELEMENT:b=new Int32Array(s.buffer,m)}a=0;for(let t=0;t<p;t++){const e=o[3*t+8],i=new Float32Array(e+2);f.push(i);for(let e=0;e<2;e++)i[e]=o[3*t+8+e+1];for(let t=0;t<e;t++)i[t+2]=i[t]+b[a++]}return{areContours:d,thickness:u,outlines:f,width:c,height:h}}catch(t){warn(`decompressSignature: ${t}`);return null}}}class SignatureOptions extends DrawingOptions{constructor(){super();super.updateProperties({fill:AnnotationEditor._defaultLineColor,"stroke-width":0})}clone(){const t=new SignatureOptions;t.updateAll(this);return t}}class DrawnSignatureOptions extends InkDrawingOptions{constructor(t){super(t);super.updateProperties({stroke:AnnotationEditor._defaultLineColor,"stroke-width":1})}clone(){const t=new DrawnSignatureOptions(this._viewParameters);t.updateAll(this);return t}}class SignatureEditor extends DrawingEditor{#Gc=!1;#jc=null;#Wc=null;#Vc=null;static _type="signature";static _editorType=ki.SIGNATURE;static _defaultDrawingOptions=null;constructor(t){super({...t,mustBeCommitted:!0,name:"signatureEditor"});this._willKeepAspectRatio=!0;this.#Wc=t.signatureData||null;this.#jc=null;this.defaultL10nId="pdfjs-editor-signature-editor1"}static initialize(t,e){AnnotationEditor.initialize(t,e);this._defaultDrawingOptions=new SignatureOptions;this._defaultDrawnSignatureOptions=new DrawnSignatureOptions(e.viewParameters)}static getDefaultDrawingOptions(t){const e=this._defaultDrawingOptions.clone();e.updateProperties(t);return e}static get supportMultipleDrawings(){return!1}static get typesMap(){return util_shadow(this,"typesMap",new Map)}static get isDrawer(){return!1}get telemetryFinalData(){return{type:"signature",hasDescription:!!this.#jc}}static computeTelemetryFinalData(t){const e=t.get("hasDescription");return{hasAltText:e.get(!0)??0,hasNoAltText:e.get(!1)??0}}get isResizable(){return!0}onScaleChanging(){null!==this._drawId&&super.onScaleChanging()}render(){if(this.div)return this.div;let t,e;const{_isCopy:i}=this;if(i){this._isCopy=!1;t=this.x;e=this.y}super.render();if(null===this._drawId)if(this.#Wc){const{lines:t,mustSmooth:e,areContours:i,description:n,uuid:r,heightInPage:s}=this.#Wc,{rawDims:{pageWidth:a,pageHeight:o},rotation:l}=this.parent.viewport,c=SignatureExtractor.processDrawnLines({lines:t,pageWidth:a,pageHeight:o,rotation:l,innerMargin:SignatureEditor._INNER_MARGIN,mustSmooth:e,areContours:i});this.addSignature(c,s,n,r)}else{this.div.setAttribute("data-l10n-args",JSON.stringify({description:""}));this.div.hidden=!0;this._uiManager.getSignature(this)}else this.div.setAttribute("data-l10n-args",JSON.stringify({description:this.#jc||""}));if(i){this._isCopy=!0;this._moveAfterPaste(t,e)}return this.div}setUuid(t){this.#Vc=t;this.addEditToolbar()}getUuid(){return this.#Vc}get description(){return this.#jc}set description(t){this.#jc=t;if(this.div){this.div.setAttribute("data-l10n-args",JSON.stringify({description:t}));super.addEditToolbar().then(e=>{e?.updateEditSignatureButton(t)})}}getSignaturePreview(){const{newCurves:t,areContours:e,thickness:i,width:n,height:r}=this.#Wc,s=Math.max(n,r);return{areContours:e,outline:SignatureExtractor.processDrawnLines({lines:{curves:t.map(t=>({points:t})),thickness:i,width:n,height:r},pageWidth:s,pageHeight:s,rotation:0,innerMargin:0,mustSmooth:!1,areContours:e}).outline}}get toolbarButtons(){return this._uiManager.signatureManager?[["editSignature",this._uiManager.signatureManager]]:super.toolbarButtons}addSignature(t,e,i,n){const{x:r,y:s}=this,{outline:a}=this.#Wc=t;this.#Gc=a instanceof ContourDrawOutline;this.description=i;let o;if(this.#Gc)o=SignatureEditor.getDefaultDrawingOptions();else{o=SignatureEditor._defaultDrawnSignatureOptions.clone();o.updateProperties({"stroke-width":a.thickness})}this._addOutlines({drawOutlines:a,drawingOptions:o});const[,l]=this.pageDimensions;let c=e/l;c=c>=1?.5:c;this.width*=c/this.height;if(this.width>=1){c*=.9/this.width;this.width=.9}this.height=c;this.setDims();this.x=r;this.y=s;this.center();this._onResized();this.onScaleChanging();this.rotate();this._uiManager.addToAnnotationStorage(this);this.setUuid(n);this._reportTelemetry({action:"pdfjs.signature.inserted",data:{hasBeenSaved:!!n,hasDescription:!!i}});this.div.hidden=!1}getFromImage(t){const{rawDims:{pageWidth:e,pageHeight:i},rotation:n}=this.parent.viewport;return SignatureExtractor.process(t,e,i,n,SignatureEditor._INNER_MARGIN)}getFromText(t,e){const{rawDims:{pageWidth:i,pageHeight:n},rotation:r}=this.parent.viewport;return SignatureExtractor.extractContoursFromText(t,e,i,n,r,SignatureEditor._INNER_MARGIN)}getDrawnSignature(t){const{rawDims:{pageWidth:e,pageHeight:i},rotation:n}=this.parent.viewport;return SignatureExtractor.processDrawnLines({lines:t,pageWidth:e,pageHeight:i,rotation:n,innerMargin:SignatureEditor._INNER_MARGIN,mustSmooth:!1,areContours:!1})}createDrawingOptions({areContours:t,thickness:e}){if(t)this._drawingOptions=SignatureEditor.getDefaultDrawingOptions();else{this._drawingOptions=SignatureEditor._defaultDrawnSignatureOptions.clone();this._drawingOptions.updateProperties({"stroke-width":e})}}serialize(t=!1){if(this.isEmpty())return null;const{lines:e,points:i}=this.serializeDraw(t),{_drawingOptions:{"stroke-width":n}}=this,r=Object.assign(super.serialize(t),{isSignature:!0,areContours:this.#Gc,color:[0,0,0],thickness:this.#Gc?0:n});this.addComment(r);if(t){r.paths={lines:e,points:i};r.uuid=this.#Vc;r.isCopy=!0}else r.lines=e;this.#jc&&(r.accessibilityData={type:"Figure",alt:this.#jc});return r}static deserializeDraw(t,e,i,n,r,s){return s.areContours?ContourDrawOutline.deserialize(t,e,i,n,r,s):InkDrawOutline.deserialize(t,e,i,n,r,s)}static async deserialize(t,e,i){const n=await super.deserialize(t,e,i);n.#Gc=t.areContours;n.description=t.accessibilityData?.alt||"";n.#Vc=t.uuid;return n}}class StampEditor extends AnnotationEditor{#$c=null;#qc=null;#Xc=null;#Kc=null;#Yc=null;#Jc="";#Qc=null;#Zc=!1;#th=null;#eh=!1;#ih=!1;static _type="stamp";static _editorType=ki.STAMP;constructor(t){super({...t,name:"stampEditor"});this.#Kc=t.bitmapUrl;this.#Yc=t.bitmapFile;this.defaultL10nId="pdfjs-editor-stamp-editor"}static initialize(t,e){AnnotationEditor.initialize(t,e)}static isHandlingMimeForPasting(t){return sn.has(t)}static paste(t,e){e.pasteEditor({mode:ki.STAMP},{bitmapFile:t.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1);super.altTextFinish()}get telemetryFinalData(){return{type:"stamp",hasAltText:!!this.altTextData?.altText}}static computeTelemetryFinalData(t){const e=t.get("hasAltText");return{hasAltText:e.get(!0)??0,hasNoAltText:e.get(!1)??0}}#nh(t,e=!1){if(t){this.#$c=t.bitmap;if(!e){this.#qc=t.id;this.#eh=t.isSvg}t.file&&(this.#Jc=t.file.name);this.#rh()}else this.remove()}#sh(){this.#Xc=null;this._uiManager.enableWaiting(!1);if(this.#Qc)if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&this.#$c)this.addEditToolbar().then(()=>{this._editToolbar.hide();this._uiManager.editAltText(this,!0)});else{if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&this.#$c){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch{}}this.div.focus()}}async mlGuessAltText(t=null,e=!0){if(this.hasAltTextData())return null;const{mlManager:i}=this._uiManager;if(!i)throw new Error("No ML.");if(!await i.isEnabledFor("altText"))throw new Error("ML isn't enabled for alt text.");const{data:n,width:r,height:s}=t||this.copyCanvas(null,null,!0).imageData,a=await i.guess({name:"altText",request:{data:n,width:r,height:s,channels:n.length/(r*s)}});if(!a)throw new Error("No response from the AI service.");if(a.error)throw new Error("Error from the AI service.");if(a.cancel)return null;if(!a.output)throw new Error("No valid response from the AI service.");const o=a.output;await this.setGuessedAltText(o);e&&!this.hasAltTextData()&&(this.altTextData={alt:o,decorative:!1});return o}#ah(){if(this.#qc){this._uiManager.enableWaiting(!0);this._uiManager.imageManager.getFromId(this.#qc).then(t=>this.#nh(t,!0)).finally(()=>this.#sh());return}if(this.#Kc){const t=this.#Kc;this.#Kc=null;this._uiManager.enableWaiting(!0);this.#Xc=this._uiManager.imageManager.getFromUrl(t).then(t=>this.#nh(t)).finally(()=>this.#sh());return}if(this.#Yc){const t=this.#Yc;this.#Yc=null;this._uiManager.enableWaiting(!0);this.#Xc=this._uiManager.imageManager.getFromFile(t).then(t=>this.#nh(t)).finally(()=>this.#sh());return}const t=document.createElement("input");t.type="file";t.accept=sn.keys().join(",");const e=this._uiManager._signal;this.#Xc=new Promise(i=>{t.addEventListener("change",async()=>{if(t.files&&0!==t.files.length){this._uiManager.enableWaiting(!0);const e=await this._uiManager.imageManager.getFromFile(t.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}});this.#nh(e)}else this.remove();i()},{signal:e});t.addEventListener("cancel",()=>{this.remove();i()},{signal:e})}).finally(()=>this.#sh());t.click()}remove(){if(this.#qc){this.#$c=null;this._uiManager.imageManager.deleteId(this.#qc);this.#Qc?.remove();this.#Qc=null;if(this.#th){clearTimeout(this.#th);this.#th=null}}super.remove()}rebuild(){if(this.parent){super.rebuild();if(null!==this.div){this.#qc&&null===this.#Qc&&this.#ah();this.isAttachedToDOM||this.parent.add(this)}}else this.#qc&&this.#ah()}onceAdded(t){this._isDraggable=!0;t&&this.div.focus()}isEmpty(){return!(this.#Xc||this.#$c||this.#Kc||this.#Yc||this.#qc||this.#Zc)}get toolbarButtons(){return[["altText",this.createAltText()]]}get isResizable(){return!0}render(){if(this.div)return this.div;let t,e;if(this._isCopy){t=this.x;e=this.y}super.render();this.div.hidden=!0;this.createAltText();this.#Zc||(this.#$c?this.#rh():this.#ah());this._isCopy&&this._moveAfterPaste(t,e);this._uiManager.addShouldRescale(this);return this.div}setCanvas(t,e){const{id:i,bitmap:n}=this._uiManager.imageManager.getFromCanvas(t,e);e.remove();if(i&&this._uiManager.imageManager.isValidId(i)){this.#qc=i;n&&(this.#$c=n);this.#Zc=!1;this.#rh()}}_onResized(){this.onScaleChanging()}onScaleChanging(){if(!this.parent)return;null!==this.#th&&clearTimeout(this.#th);this.#th=setTimeout(()=>{this.#th=null;this.#oh()},200)}#rh(){const{div:t}=this;let{width:e,height:i}=this.#$c;const[n,r]=this.pageDimensions,s=.75;if(this.width){e=this.width*n;i=this.height*r}else if(e>s*n||i>s*r){const t=Math.min(s*n/e,s*r/i);e*=t;i*=t}this._uiManager.enableWaiting(!1);const a=this.#Qc=document.createElement("canvas");a.setAttribute("role","img");this.addContainer(a);this.width=e/n;this.height=i/r;this.setDims();this._initialOptions?.isCentered?this.center():this.fixAndSetPosition();this._initialOptions=null;this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&!this.annotationElementId||(t.hidden=!1);this.#oh();if(!this.#ih){this.parent.addUndoableEditor(this);this.#ih=!0}this._reportTelemetry({action:"inserted_image"});this.#Jc&&this.div.setAttribute("aria-description",this.#Jc);this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.stamp)}copyCanvas(t,e,i=!1){t||=224;const{width:n,height:r}=this.#$c,s=new OutputScale;let a=this.#$c,o=n,l=r,c=null;if(e){if(n>e||r>e){const t=Math.min(e/n,e/r);o=Math.floor(n*t);l=Math.floor(r*t)}c=document.createElement("canvas");const t=c.width=Math.ceil(o*s.sx),i=c.height=Math.ceil(l*s.sy);this.#eh||(a=this.#lh(t,i));const h=c.getContext("2d");h.filter=this._uiManager.hcmFilter;let d="white",u="#cfcfd8";if("none"!==this._uiManager.hcmFilter)u="black";else if(ColorScheme.isDarkMode){d="#8f8f9d";u="#42414d"}const p=15,g=p*s.sx,f=p*s.sy,m=new OffscreenCanvas(2*g,2*f),b=m.getContext("2d");b.fillStyle=d;b.fillRect(0,0,2*g,2*f);b.fillStyle=u;b.fillRect(0,0,g,f);b.fillRect(g,f,g,f);h.fillStyle=h.createPattern(m,"repeat");h.fillRect(0,0,t,i);h.drawImage(a,0,0,a.width,a.height,0,0,t,i)}let h=null;if(i){let e,i;if(s.symmetric&&a.width<t&&a.height<t){e=a.width;i=a.height}else{a=this.#$c;if(n>t||r>t){const s=Math.min(t/n,t/r);e=Math.floor(n*s);i=Math.floor(r*s);this.#eh||(a=this.#lh(e,i))}}const o=new OffscreenCanvas(e,i).getContext("2d",{willReadFrequently:!0});o.drawImage(a,0,0,a.width,a.height,0,0,e,i);h={width:e,height:i,data:o.getImageData(0,0,e,i).data}}return{canvas:c,width:o,height:l,imageData:h}}#lh(t,e){const{width:i,height:n}=this.#$c;let r=i,s=n,a=this.#$c;for(;r>2*t||s>2*e;){const i=r,n=s;r>2*t&&(r=Math.ceil(r/2));s>2*e&&(s=Math.ceil(s/2));const o=new OffscreenCanvas(r,s);o.getContext("2d").drawImage(a,0,0,i,n,0,0,r,s);a=o.transferToImageBitmap()}return a}#oh(){const[t,e]=this.parentDimensions,{width:i,height:n}=this,r=new OutputScale,s=Math.ceil(i*t*r.sx),a=Math.ceil(n*e*r.sy),o=this.#Qc;if(!o||o.width===s&&o.height===a)return;o.width=s;o.height=a;const l=this.#eh?this.#$c:this.#lh(s,a),c=o.getContext("2d");c.filter=this._uiManager.hcmFilter;c.drawImage(l,0,0,l.width,l.height,0,0,s,a)}#ch(t){if(t){if(this.#eh){const t=this._uiManager.imageManager.getSvgUrl(this.#qc);if(t)return t}const t=document.createElement("canvas");({width:t.width,height:t.height}=this.#$c);t.getContext("2d").drawImage(this.#$c,0,0);return t.toDataURL()}if(this.#eh){const[t,e]=this.pageDimensions,i=Math.round(this.width*t*PixelsPerInch.PDF_TO_CSS_UNITS),n=Math.round(this.height*e*PixelsPerInch.PDF_TO_CSS_UNITS),r=new OffscreenCanvas(i,n);r.getContext("2d").drawImage(this.#$c,0,0,this.#$c.width,this.#$c.height,0,0,i,n);return r.transferToImageBitmap()}return structuredClone(this.#$c)}static async deserialize(t,e,i){let n=null,r=!1;if(t instanceof StampAnnotationElement){const{data:{rect:s,rotation:a,id:o,structParent:l,popupRef:c,richText:h,contentsObj:d,creationDate:u,modificationDate:p},container:g,parent:{page:{pageNumber:f}},canvas:m}=t;let b,y;if(m){delete t.canvas;({id:b,bitmap:y}=i.imageManager.getFromCanvas(g.id,m));m.remove()}else{r=!0;t._hasNoCanvas=!0}const w=(await e._structTree.getAriaAttributes(`${Si}${o}`))?.get("aria-label")||"";n=t={annotationType:ki.STAMP,bitmapId:b,bitmap:y,pageIndex:f-1,rect:s.slice(0),rotation:a,annotationElementId:o,id:o,deleted:!1,accessibilityData:{decorative:!1,altText:w},isSvg:!1,structParent:l,popupRef:c,richText:h,comment:d?.str||null,creationDate:u,modificationDate:p}}const s=await super.deserialize(t,e,i),{rect:a,bitmap:o,bitmapUrl:l,bitmapId:c,isSvg:h,accessibilityData:d}=t;if(r){i.addMissingCanvas(t.id,s);s.#Zc=!0}else if(c&&i.imageManager.isValidId(c)){s.#qc=c;o&&(s.#$c=o)}else s.#Kc=l;s.#eh=h;const[u,p]=s.pageDimensions;s.width=(a[2]-a[0])/u;s.height=(a[3]-a[1])/p;d&&(s.altTextData=d);s._initialData=n;t.comment&&s.setCommentData(t);s.#ih=!!n;return s}serialize(t=!1,e=null){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const i=Object.assign(super.serialize(t),{bitmapId:this.#qc,isSvg:this.#eh});this.addComment(i);if(t){i.bitmapUrl=this.#ch(!0);i.accessibilityData=this.serializeAltText(!0);i.isCopy=!0;return i}const{decorative:n,altText:r}=this.serializeAltText(!1);!n&&r&&(i.accessibilityData={type:"Figure",alt:r});if(this.annotationElementId){const t=this.#tl(i);if(t.isSame)return null;t.isSameAltText?delete i.accessibilityData:i.accessibilityData.structParent=this._initialData.structParent??-1;i.id=this.annotationElementId;delete i.bitmapId;return i}if(null===e)return i;e.stamps||=new Map;const s=this.#eh?(i.rect[2]-i.rect[0])*(i.rect[3]-i.rect[1]):null;if(e.stamps.has(this.#qc)){if(this.#eh){const t=e.stamps.get(this.#qc);if(s>t.area){t.area=s;t.serialized.bitmap.close();t.serialized.bitmap=this.#ch(!1)}}}else{e.stamps.set(this.#qc,{area:s,serialized:i});i.bitmap=this.#ch(!1)}return i}#tl(t){const{pageIndex:e,accessibilityData:{altText:i}}=this._initialData,n=t.pageIndex===e,r=(t.accessibilityData?.alt||"")===i;return{isSame:!this.hasEditedComment&&!this._hasBeenMoved&&!this._hasBeenResized&&n&&r,isSameAltText:r}}renderAnnotationElement(t){if(this.deleted){t.hide();return null}t.updateEdited({rect:this.getPDFRect(),popup:this.comment});return null}}class AnnotationEditorLayer{#Bo;#hh=!1;#dh=null;#uh=null;#ph=null;#gh=new Map;#fh=!1;#mh=!1;#bh=!1;#yh=null;#wh=null;#vh=null;#_h=null;#Ah=null;#xh=-1;#w;static _initialized=!1;static#tt=new Map([FreeTextEditor,InkEditor,StampEditor,HighlightEditor,SignatureEditor].map(t=>[t._editorType,t]));constructor({uiManager:t,pageIndex:e,div:i,structTreeLayer:n,accessibilityManager:r,annotationLayer:s,drawLayer:a,textLayer:o,viewport:l,l10n:c}){const h=[...AnnotationEditorLayer.#tt.values()];if(!AnnotationEditorLayer._initialized){AnnotationEditorLayer._initialized=!0;for(const e of h)e.initialize(c,t)}t.registerEditorTypes(h);this.#w=t;this.pageIndex=e;this.div=i;this.#Bo=r;this.#dh=s;this.viewport=l;this.#vh=o;this.drawLayer=a;this._structTree=n;this.#w.addLayer(this)}get isEmpty(){return 0===this.#gh.size}get isInvisible(){return this.isEmpty&&this.#w.getMode()===ki.NONE}updateToolbar(t){this.#w.updateToolbar(t)}updateMode(t=this.#w.getMode()){this.#Eh();switch(t){case ki.NONE:this.div.classList.toggle("nonEditing",!0);this.disableTextSelection();this.togglePointerEvents(!1);this.toggleAnnotationLayerPointerEvents(!0);this.disableClick();return;case ki.INK:this.disableTextSelection();this.togglePointerEvents(!0);this.enableClick();break;case ki.HIGHLIGHT:this.enableTextSelection();this.togglePointerEvents(!1);this.disableClick();break;default:this.disableTextSelection();this.togglePointerEvents(!0);this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);const{classList:e}=this.div;e.toggle("nonEditing",!1);if(t===ki.POPUP)e.toggle("commentEditing",!0);else{e.toggle("commentEditing",!1);for(const i of AnnotationEditorLayer.#tt.values())e.toggle(`${i._type}Editing`,t===i._editorType)}this.div.hidden=!1}hasTextLayer(t){return t===this.#vh?.div}setEditingState(t){this.#w.setEditingState(t)}addCommands(t){this.#w.addCommands(t)}cleanUndoStack(t){this.#w.cleanUndoStack(t)}toggleDrawing(t=!1){this.div.classList.toggle("drawing",!t)}togglePointerEvents(t=!1){this.div.classList.toggle("disabled",!t)}toggleAnnotationLayerPointerEvents(t=!1){this.#dh?.togglePointerEvents(t)}get#Ch(){return 0!==this.#gh.size?this.#gh.values():this.#w.getEditors(this.pageIndex)}async enable(){this.#bh=!0;this.div.tabIndex=0;this.togglePointerEvents(!0);this.div.classList.toggle("nonEditing",!1);this.#Ah?.abort();this.#Ah=null;const t=new Set;for(const e of this.#Ch){e.enableEditing();e.show(!0);if(e.annotationElementId){this.#w.removeChangedExistingAnnotation(e);t.add(e.annotationElementId)}}const e=this.#dh;if(e)for(const i of e.getEditableAnnotations()){i.hide();if(this.#w.isDeletedAnnotationElement(i.data.id)||t.has(i.data.id))continue;const e=await this.deserialize(i);if(e){this.addOrRebuild(e);e.enableEditing()}}this.#bh=!1;this.#w._eventBus.dispatch("editorsrendered",{source:this,pageNumber:this.pageIndex+1})}disable(){this.#mh=!0;this.div.tabIndex=-1;this.togglePointerEvents(!1);this.div.classList.toggle("nonEditing",!0);if(this.#vh&&!this.#Ah){this.#Ah=new AbortController;const t=this.#w.combinedSignal(this.#Ah);this.#vh.div.addEventListener("pointerdown",t=>{const{clientX:e,clientY:i,timeStamp:n}=t;if(n-this.#xh>500){this.#xh=n;return}this.#xh=-1;const{classList:r}=this.div;r.toggle("getElements",!0);const s=document.elementsFromPoint(e,i);r.toggle("getElements",!1);if(!this.div.contains(s[0]))return;let a;const o=new RegExp(`^${Ti}[0-9]+$`);for(const t of s)if(o.test(t.id)){a=t.id;break}if(!a)return;const l=this.#gh.get(a);if(null===l?.annotationElementId){stopEvent(t);l.dblclick(t)}},{signal:t,capture:!0})}const t=this.#dh,e=[];if(t){const i=new Map,n=new Map;for(const t of this.#Ch){t.disableEditing();if(t.annotationElementId)if(null===t.serialize()){n.set(t.annotationElementId,t);this.getEditableAnnotation(t.annotationElementId)?.show();t.remove()}else i.set(t.annotationElementId,t);else e.push(t)}for(const e of t.getEditableAnnotations()){const{id:t}=e.data;if(this.#w.isDeletedAnnotationElement(t)){e.updateEdited({deleted:!0});continue}let r=n.get(t);if(r){r.resetAnnotationElement(e);r.show(!1);e.show()}else{r=i.get(t);if(r){this.#w.addChangedExistingAnnotation(r);r.renderAnnotationElement(e)&&r.show(!1)}e.show()}}}this.#Eh();this.isEmpty&&(this.div.hidden=!0);const{classList:i}=this.div;for(const t of AnnotationEditorLayer.#tt.values())i.remove(`${t._type}Editing`);this.disableTextSelection();this.toggleAnnotationLayerPointerEvents(!0);t?.updateFakeAnnotations(e);this.#mh=!1}getEditableAnnotation(t){return this.#dh?.getEditableAnnotation(t)||null}setActiveEditor(t){this.#w.getActive()!==t&&this.#w.setActiveEditor(t)}enableTextSelection(){this.div.tabIndex=-1;if(this.#vh?.div&&!this.#_h){this.#_h=new AbortController;const t=this.#w.combinedSignal(this.#_h);this.#vh.div.addEventListener("pointerdown",this.#Sh.bind(this),{signal:t});this.#vh.div.classList.add("highlighting")}}disableTextSelection(){this.div.tabIndex=0;if(this.#vh?.div&&this.#_h){this.#_h.abort();this.#_h=null;this.#vh.div.classList.remove("highlighting")}}#Sh(t){this.#w.unselectAll();const{target:e}=t;if(e===this.#vh.div||("img"===e.getAttribute("role")||e.classList.contains("endOfContent")||e.classList.contains("textLayerImages")||e.classList.contains("textLayerImagePlaceholder"))&&this.#vh.div.contains(e)){const{isMac:e}=FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)return;this.#w.showAllEditors("highlight",!0,!0);HighlightEditor.startDrawing(this,this.#w,"ltr"===this.#w.direction,t);t.preventDefault()}}enableClick(){if(this.#uh)return;this.#uh=new AbortController;const t=this.#w.combinedSignal(this.#uh);this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:t});const e=this.pointerup.bind(this);this.div.addEventListener("pointerup",e,{signal:t});this.div.addEventListener("pointercancel",e,{signal:t})}disableClick(){this.#uh?.abort();this.#uh=null}attach(t){this.#gh.set(t.id,t);const{annotationElementId:e}=t;e&&this.#w.isDeletedAnnotationElement(e)&&this.#w.removeDeletedAnnotationElement(t)}detach(t){this.#gh.delete(t.id);this.#Bo?.removePointerInTextLayer(t.contentDiv);!this.#mh&&t.annotationElementId&&this.#w.addDeletedAnnotationElement(t)}remove(t){this.detach(t);this.#w.removeEditor(t);t.div.remove();t.isAttachedToDOM=!1}changeParent(t){if(t.parent!==this){if(t.parent&&t.annotationElementId){this.#w.addDeletedAnnotationElement(t);AnnotationEditor.deleteAnnotationElement(t);t.annotationElementId=null}this.attach(t);t.parent?.detach(t);t.setParent(this);if(t.div&&t.isAttachedToDOM){t.div.remove();this.div.append(t.div)}}}add(t){if(t.parent!==this||!t.isAttachedToDOM){this.changeParent(t);this.#w.addEditor(t);this.attach(t);if(!t.isAttachedToDOM){const e=t.render();this.div.append(e);t.isAttachedToDOM=!0}t.fixAndSetPosition();t.onceAdded(!this.#bh);this.#w.addToAnnotationStorage(t);t._reportTelemetry(t.telemetryInitialData)}}moveEditorInDOM(t){if(!t.isAttachedToDOM)return;const{activeElement:e}=document;if(t.div.contains(e)&&!this.#ph){t._focusEventsAllowed=!1;this.#ph=setTimeout(()=>{this.#ph=null;if(t.div.contains(document.activeElement))t._focusEventsAllowed=!0;else{t.div.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:this.#w._signal});e.focus()}},0)}t._structTreeParentId=this.#Bo?.moveElementInDOM(this.div,t.div,t.contentDiv,!0)}addOrRebuild(t){if(t.needsToBeRebuilt()){t.parent||=this;t.rebuild();t.show()}else this.add(t)}addUndoableEditor(t){this.addCommands({cmd:()=>t._uiManager.rebuild(t),undo:()=>{t.remove()},mustExec:!1})}getEditorByUID(t){for(const e of this.#gh.values())if(e.uid===t)return e;return null}get#Th(){return AnnotationEditorLayer.#tt.get(this.#w.getMode())}combinedSignal(t){return this.#w.combinedSignal(t)}#kh(t){const e=this.#Th;return e?new e.prototype.constructor(t):null}canCreateNewEmptyEditor(){return this.#Th?.canCreateNewEmptyEditor()}async pasteEditor(t,e){this.updateToolbar(t);await this.#w.updateMode(t.mode);const{offsetX:i,offsetY:n}=this.#Dh(),r=this.#w.getId(),s=this.#kh({parent:this,id:r,x:i,y:n,uiManager:this.#w,isCentered:!0,...e});s&&this.add(s)}async deserialize(t){return await(AnnotationEditorLayer.#tt.get(t.annotationType??t.annotationEditorType)?.deserialize(t,this,this.#w))||null}createAndAddNewEditor(t,e,i={}){const n=this.#w.getId(),r=this.#kh({parent:this,id:n,x:t.offsetX,y:t.offsetY,uiManager:this.#w,isCentered:e,...i});r&&this.add(r);return r}get boundingClientRect(){return this.div.getBoundingClientRect()}#Dh(){const{x:t,y:e,width:i,height:n}=this.boundingClientRect,r=Math.max(0,t),s=Math.max(0,e),a=(r+Math.min(window.innerWidth,t+i))/2-t,o=(s+Math.min(window.innerHeight,e+n))/2-e,[l,c]=this.viewport.rotation%180==0?[a,o]:[o,a];return{offsetX:l,offsetY:c}}addNewEditor(t={}){this.createAndAddNewEditor(this.#Dh(),!0,t)}setSelected(t){this.#w.setSelected(t)}toggleSelected(t){this.#w.toggleSelected(t)}unselect(t){this.#w.unselect(t)}pointerup(t){const{isMac:e}=FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)return;if(t.target!==this.div)return;if(!this.#fh)return;this.#fh=!1;if(this.#Th?.isDrawer&&this.#Th.supportMultipleDrawings)return;if(!this.#hh){this.#hh=!0;return}const i=this.#w.getMode();i!==ki.STAMP&&i!==ki.POPUP&&i!==ki.SIGNATURE?this.createAndAddNewEditor(t,!1):this.#w.unselectAll()}pointerdown(t){this.#w.getMode()===ki.HIGHLIGHT&&this.enableTextSelection();if(this.#fh){this.#fh=!1;return}const{isMac:e}=FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)return;if(t.target!==this.div)return;this.#fh=!0;if(this.#Th?.isDrawer){this.startDrawingSession(t);return}const i=this.#w.getActive();this.#hh=!i||i.isEmpty()}startDrawingSession(t){this.div.focus({preventScroll:!0});if(this.#yh){this.#Th.startDrawing(this,this.#w,!1,t);return}this.#w.setCurrentDrawingSession(this);this.#yh=new AbortController;const e=this.#w.combinedSignal(this.#yh);this.div.addEventListener("blur",({relatedTarget:t})=>{if(t&&!this.div.contains(t)){this.#wh=null;this.commitOrRemove()}},{signal:e});this.#Th.startDrawing(this,this.#w,!1,t)}pause(t){if(t){const{activeElement:t}=document;this.div.contains(t)&&(this.#wh=t);return}this.#wh&&setTimeout(()=>{this.#wh?.focus();this.#wh=null},0)}endDrawingSession(t=!1){if(!this.#yh)return null;this.#w.setCurrentDrawingSession(null);this.#yh.abort();this.#yh=null;this.#wh=null;return this.#Th.endDrawing(t)}findNewParent(t,e,i){const n=this.#w.findParent(e,i);if(null===n||n===this)return!1;n.changeParent(t);return!0}commitOrRemove(){if(this.#yh){this.endDrawingSession();return!0}return!1}onScaleChanging(){this.#yh&&this.#Th.onScaleChangingWhenDrawing(this)}destroy(){this.commitOrRemove();if(this.#w.getActive()?.parent===this){this.#w.commitOrRemove();this.#w.setActiveEditor(null)}if(this.#ph){clearTimeout(this.#ph);this.#ph=null}for(const t of this.#gh.values()){this.#Bo?.removePointerInTextLayer(t.contentDiv);t.setParent(null);t.isAttachedToDOM=!1;t.div.remove()}this.div=null;this.#gh.clear();this.#w.removeLayer(this)}#Eh(){for(const t of this.#gh.values())t.isEmpty()&&t.remove()}async render({viewport:t}){this.viewport=t;setLayerDimensions(this.div,t);for(const t of this.#w.getEditors(this.pageIndex)){this.add(t);t.rebuild()}await this.#w.findClonesForPage(this);this.div.hidden=this.isEmpty;this.updateMode()}update({viewport:t}){this.#w.commitOrRemove();this.#Eh();const e=this.viewport.rotation,i=t.rotation;this.viewport=t;setLayerDimensions(this.div,{rotation:i});if(e!==i)for(const t of this.#gh.values())t.rotate(i)}get pageDimensions(){const{pageWidth:t,pageHeight:e}=this.viewport.rawDims;return[t,e]}get scale(){return this.#w.viewParameters.realScale}}Ge();function compareTextLayers(t,e){return t===e?0:t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}function getTextLayer(t){return t?t.nodeType===Node.ELEMENT_NODE?t.closest(".textLayer"):t.parentElement?.closest(".textLayer")||null:null}function isPointBefore(t,e,i,n){if(t===i)return e<=n;const r=t.compareDocumentPosition(i);return!!(r&Node.DOCUMENT_POSITION_FOLLOWING)||!(r&Node.DOCUMENT_POSITION_PRECEDING)&&null}function normalizeEdgeBoundary(t,e,i){if(t.nodeType!==Node.ELEMENT_NODE||!t.classList.contains("textLayer")||e!==t.childNodes.length)return{container:t,offset:e};let n=t.lastChild;n?.nodeType===Node.ELEMENT_NODE&&n.classList.contains("endOfContent")&&(n=n.previousSibling);return n&&i.contains(n)?n.nodeType===Node.TEXT_NODE?{container:n,offset:n.textContent.length}:{container:n,offset:n.childNodes.length}:null}class DrawLayer{#io=null;#Ph=new Map;#vh=null;#st=null;#Et=null;#Mh=null;#Ih=new Map;static#T=0;static#Fh=0;static#Oh=null;static#Rh=new Set;static#Bh=!1;static#Lh=new Set;static#Nh=new WeakMap;constructor({filterFactory:t=null,pageColors:e=null,pageIndex:i,textLayer:n=null}){this.pageIndex=i;this.#st=t;this.#Et=e;if(n){const t=DrawLayer.#Nh.get(n);if(t?.selectionDiv){t.selectionDiv.remove();DrawLayer.#Rh.delete(t.selectionDiv)}DrawLayer.#Nh.set(n,{drawLayer:this});DrawLayer.#Lh.add(n);this.#vh=n;this.#Mh=new MutationObserver(t=>{if(this.#io&&this.#vh?.isConnected&&DrawLayer.#Uh())for(const{addedNodes:e}of t)for(const t of e)if(t.nodeType===Node.ELEMENT_NODE&&t.classList.contains("endOfContent")){DrawLayer.#Ht();return}});this.#Mh.observe(n,{childList:!0});if(null===DrawLayer.#Oh){DrawLayer.#Oh=new AbortController;const{signal:t}=DrawLayer.#Oh;document.addEventListener("selectionchange",DrawLayer.#Ht.bind(DrawLayer),{signal:t});document.addEventListener("pointerdown",()=>{DrawLayer.#Bh=!0},{signal:t});document.addEventListener("pointerup",()=>{DrawLayer.#Bh=!1},{signal:t});window.addEventListener("blur",()=>{DrawLayer.#Bh=!1},{signal:t})}}}setParent(t){if(this.#io){if(this.#io!==t){if(this.#Ph.size>0)for(const e of this.#Ph.values()){e.remove();t.append(e)}this.#io=t}}else{this.#io=t;this.#vh?.isConnected&&DrawLayer.#Uh()&&DrawLayer.#Ht()}}static#Hh(t){const e=this.#Nh.get(t);if(e?.selectionDiv){e.selectionDiv.remove();this.#Rh.delete(e.selectionDiv);e.selectionDiv=null;e.path=null}}static#Uh(){const t=document.getSelection();return!!t&&!t.isCollapsed}static#zh(){return this.#Lh.keys().filter(t=>t.isConnected).toArray().sort(compareTextLayers)}static#Ht(){const t=document.getSelection();if(!t||t.isCollapsed){for(const t of this.#Rh)t.remove();this.#Rh.clear();return}const e=new WeakMap,i=this.#zh(),n=[];for(let e=0,r=t.rangeCount;e<r;e++){const r=t.getRangeAt(e);if(r.collapsed)continue;let{startContainer:s,startOffset:a,endContainer:o,endOffset:l}=r,c=getTextLayer(s),h=getTextLayer(o);const d=null===c,u=null===h;if(this.#Bh&&d!==u)return;if(1===t.rangeCount){const{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:r}=t,d=getTextLayer(e),u=getTextLayer(n),p=isPointBefore(e,i,n,r);if(d&&u&&null!==p)if(p){s=e;a=i;c=d;o=n;l=r;h=u}else{s=n;a=r;c=u;o=e;l=i;h=d}}const p=i.filter(t=>r.intersectsNode(t));if(0===p.length)continue;let g=!1;if(!c){c=p[0];s=c;a=0;g=!0}if(!h){h=p.at(-1);o=h;l=h.childNodes.length;g=!0}if(o.nodeType===Node.ELEMENT_NODE)if(o.classList.contains("endOfContent")){const t=o.previousSibling;if(!t)continue;o=t;l=t.nodeType===Node.TEXT_NODE?t.textContent.length:t.childNodes.length}else if(o.classList.contains("textLayer")&&o.childNodes.length===l){const t=normalizeEdgeBoundary(o,l,h);if(!t)continue;o=t.container;l=t.offset}if(s.nodeType===Node.ELEMENT_NODE){const t=normalizeEdgeBoundary(s,a,c);if(!t)continue;s=t.container;a=t.offset}if(c!==h||g||!p.includes(c))for(const t of p){const e=t.firstChild;if(!e)continue;const i=document.createRange();t===c?i.setStart(s,a):i.setStartBefore(e);if(t===h)i.setEnd(o,l);else{const e=t.lastChild;if(!e)continue;if(e.nodeType===Node.ELEMENT_NODE&&e.classList.contains("endOfContent")){const t=e.previousSibling;if(!t)continue;i.setEndAfter(t)}else i.setEndAfter(e)}i.collapsed||n.push([i,t])}else n.push([r,c])}const r=new Set(n.map(t=>t[1]));for(const t of this.#Lh)r.has(t)||this.#Hh(t);for(const[t,i]of n){const n=DrawLayer.#Nh.get(i);if(!n)continue;let r=e.get(i);if(!r){const t=i.getBoundingClientRect();r=(e,i,n,r)=>({x:(e-t.x)/t.width,y:(i-t.y)/t.height,width:n/t.width,height:r/t.height});e.set(i,r)}const s=[];for(let{x:e,y:i,width:n,height:a}of t.getClientRects())if(0!==n&&0!==a){({x:e,y:i,width:n,height:a}=r(e,i,n,a));1===n&&1===a||s.push(`M${e} ${i} h${n} v${a} h-${n} Z`)}if(0===s.length)continue;const a=n.drawLayer;let o=n.selectionDiv,l=n.path;if(!o){const t="clip_selection_"+DrawLayer.#Fh++;o=document.createElement("div");o.className="selection";o.style.clipPath=`url(#${t})`;const e=a.#st?.createSelectionStyle(a.#Et);if(e)for(const[t,i]of Object.entries(e))o.style.setProperty(t,i);const i=DrawLayer._svgFactory.create(1,1,!0);i.setAttribute("aria-hidden","true");i.setAttribute("width","100%");i.setAttribute("height","100%");const r=DrawLayer._svgFactory.createElement("clipPath");r.setAttribute("id",t);r.setAttribute("clipPathUnits","objectBoundingBox");l=DrawLayer._svgFactory.createElement("path");r.append(l);i.append(r);o.append(i);n.path=l;n.selectionDiv=o}if(a.#io&&o.parentNode!==a.#io){a.#io.append(o);this.#Rh.add(o)}l.setAttribute("d",s.join(" "))}}static get _svgFactory(){return util_shadow(this,"_svgFactory",new DOMSVGFactory)}static#Gh(t,[e,i,n,r]){const{style:s}=t;s.top=100*i+"%";s.left=100*e+"%";s.width=100*n+"%";s.height=100*r+"%"}#jh(){const t=DrawLayer._svgFactory.create(1,1,!0);this.#io.append(t);t.setAttribute("aria-hidden","true");return t}#Wh(t,e){const i=DrawLayer._svgFactory.createElement("clipPath");t.append(i);const n=`clip_${e}`;i.setAttribute("id",n);i.setAttribute("clipPathUnits","objectBoundingBox");const r=DrawLayer._svgFactory.createElement("use");i.append(r);r.setAttribute("href",`#${e}`);r.classList.add("clip");return n}#Vh(t,e){for(const[i,n]of Object.entries(e))null===n?t.removeAttribute(i):t.setAttribute(i,n)}draw(t,e=!1,i=!1){const n=DrawLayer.#T++,r=this.#jh(),s=DrawLayer._svgFactory.createElement("defs");r.append(s);const a=DrawLayer._svgFactory.createElement("path");s.append(a);const o=`path_${n}`;a.setAttribute("id",o);a.setAttribute("vector-effect","non-scaling-stroke");e&&this.#Ih.set(n,a);const l=i?this.#Wh(s,o):null,c=DrawLayer._svgFactory.createElement("use");r.append(c);c.setAttribute("href",`#${o}`);this.updateProperties(r,t);this.#Ph.set(n,r);return{id:n,clipPathId:`url(#${l})`}}drawOutline(t,e){const i=DrawLayer.#T++,n=this.#jh(),r=DrawLayer._svgFactory.createElement("defs");n.append(r);const s=DrawLayer._svgFactory.createElement("path");r.append(s);const a=`path_${i}`;s.setAttribute("id",a);s.setAttribute("vector-effect","non-scaling-stroke");let o;if(e){const t=DrawLayer._svgFactory.createElement("mask");r.append(t);o=`mask_${i}`;t.setAttribute("id",o);t.setAttribute("maskUnits","objectBoundingBox");const e=DrawLayer._svgFactory.createElement("rect");t.append(e);e.setAttribute("width","1");e.setAttribute("height","1");e.setAttribute("fill","white");const n=DrawLayer._svgFactory.createElement("use");t.append(n);n.setAttribute("href",`#${a}`);n.setAttribute("stroke","none");n.setAttribute("fill","black");n.setAttribute("fill-rule","nonzero");n.classList.add("mask")}const l=DrawLayer._svgFactory.createElement("use");n.append(l);l.setAttribute("href",`#${a}`);o&&l.setAttribute("mask",`url(#${o})`);const c=l.cloneNode();n.append(c);l.classList.add("mainOutline");c.classList.add("secondaryOutline");this.updateProperties(n,t);this.#Ph.set(i,n);return i}finalizeDraw(t,e){this.#Ih.delete(t);this.updateProperties(t,e)}updateProperties(t,e){if(!e)return;const{root:i,bbox:n,rootClass:r,path:s}=e,a="number"==typeof t?this.#Ph.get(t):t;if(a){i&&this.#Vh(a,i);n&&DrawLayer.#Gh(a,n);if(r){const{classList:t}=a;for(const[e,i]of Object.entries(r))t.toggle(e,i)}if(s){const t=a.firstElementChild.firstElementChild;this.#Vh(t,s)}}}updateParent(t,e){if(e===this)return;const i=this.#Ph.get(t);if(i){e.#io.append(i);this.#Ph.delete(t);e.#Ph.set(t,i)}}remove(t){this.#Ih.delete(t);if(null!==this.#io){this.#Ph.get(t).remove();this.#Ph.delete(t)}}destroy(){this.#io=null;for(const t of this.#Ph.values())t.remove();this.#Ph.clear();this.#Ih.clear();this.#Mh?.disconnect();this.#Mh=null;if(this.#vh){const t=DrawLayer.#Nh.get(this.#vh);if(t?.drawLayer===this){DrawLayer.#Hh(this.#vh);DrawLayer.#Nh.delete(this.#vh);DrawLayer.#Lh.delete(this.#vh);if(0===DrawLayer.#Lh.size){DrawLayer.#Oh?.abort();DrawLayer.#Oh=null;DrawLayer.#Bh=!1}}this.#vh=null}}}function percentage(t){return`${(100*t).toFixed(2)}%`}class TextLayerImages{#$h=[];#qh=new Map;#Xh=null;#Kh=0;#Es=0;#xs=0;static#Yh=null;constructor(t,e,i,n){this.#Kh=t;this.#$h=e;this.#Es=i.rawDims.pageWidth;this.#xs=i.rawDims.pageHeight;this.#Xh=n}render(){const t=document.createElement("div");t.className="textLayerImages";for(let e=0;e<this.#$h.length;e+=6){const i=this.#Jh(this.#$h.subarray(e,e+6));i&&t.append(i)}t.addEventListener("contextmenu",t=>{if(!(t.target instanceof HTMLCanvasElement))return;const e=t.target,i=this.#qh.get(e);if(!i)return;const n=TextLayerImages.#Yh?.deref();if(n===e)return;if(n){n.width=0;n.height=0}TextLayerImages.#Yh=new WeakRef(e);const{inverseTransform:r,x1:s,y1:a,width:o,height:l}=i,c=this.#Xh(),h=Math.ceil(s*c.width),d=Math.ceil(a*c.height),u=Math.floor((s+o/this.#Es)*c.width),p=Math.floor((a+l/this.#xs)*c.height);e.width=u-h;e.height=p-d;const g=e.getContext("2d");g.setTransform(...r);g.translate(-h,-d);g.drawImage(c,0,0)});return t}#Jh([t,e,i,n,r,s]){const a=Math.hypot((r-t)*this.#Es,(s-e)*this.#xs),o=Math.hypot((i-t)*this.#Es,(n-e)*this.#xs);if(a<this.#Kh||o<this.#Kh)return null;const l=[(r-t)*this.#Es/a,(s-e)*this.#xs/a,(i-t)*this.#Es/o,(n-e)*this.#xs/o,0,0],c=Util.inverseTransform(l),h=document.createElement("canvas");h.className="textLayerImagePlaceholder";h.width=0;h.height=0;Object.assign(h.style,{opacity:0,position:"absolute",left:percentage(t),top:percentage(e),width:percentage(a/this.#Es),height:percentage(o/this.#xs),transformOrigin:"0% 0%",transform:`matrix(${l.join(",")})`});this.#qh.set(h,{inverseTransform:c,width:a,height:o,x1:t,y1:e});return h}}globalThis._pdfjsTestingUtils={HighlightOutliner};globalThis.pdfjsLib={AbortException,AnnotationEditorLayer,AnnotationEditorParamsType:Di,AnnotationEditorType:ki,AnnotationEditorUIManager,AnnotationLayer,AnnotationMode:Ci,AnnotationType:Ni,applyOpacity,build:Jn,ColorPicker,createValidAbsoluteUrl,CSSConstants,DOMSVGFactory,DrawLayer,FeatureTest,fetchData,findContrastColor,getDocument,getFilenameFromUrl,getPdfFilenameFromUrl,getRGB,getRGBA,getUuid,GlobalWorkerOptions,ImageKind:Li,InvalidPDFException,isDataScheme,isPdfFile,isValidExplicitDest:Cn,makeArr,makeMap,makeObj,makeSet,MathClamp,noContextMenu,normalizeUnicode,OPS:Vi,OutputScale,PasswordException,PasswordResponses:Ji,PDFDataRangeTransport,PDFDateString,PDFWorker,PermissionFlag:Pi,PixelsPerInch,RenderingCancelledException,renderRichText,ResponseException,setLayerDimensions,shadow:util_shadow,SignatureExtractor,stopEvent,SupportedImageMimeTypes:sn,TextLayer,TextLayerImages,TouchManager,updateUrlHash,Util,VerbosityLevel:Wi,version:Yn,XfaLayer};export{AbortException,AnnotationEditorLayer,Di as AnnotationEditorParamsType,ki as AnnotationEditorType,AnnotationEditorUIManager,AnnotationLayer,Ci as AnnotationMode,Ni as AnnotationType,CSSConstants,ColorPicker,DOMSVGFactory,DrawLayer,FeatureTest,GlobalWorkerOptions,Li as ImageKind,InvalidPDFException,MathClamp,Vi as OPS,OutputScale,PDFDataRangeTransport,PDFDateString,PDFWorker,PasswordException,Ji as PasswordResponses,Pi as PermissionFlag,PixelsPerInch,RenderingCancelledException,ResponseException,SignatureExtractor,sn as SupportedImageMimeTypes,TextLayer,TextLayerImages,TouchManager,Util,Wi as VerbosityLevel,XfaLayer,applyOpacity,Jn as build,createValidAbsoluteUrl,fetchData,findContrastColor,getDocument,getFilenameFromUrl,getPdfFilenameFromUrl,getRGB,getRGBA,getUuid,isDataScheme,isPdfFile,Cn as isValidExplicitDest,makeArr,makeMap,makeObj,makeSet,noContextMenu,normalizeUnicode,renderRichText,setLayerDimensions,util_shadow as shadow,stopEvent,updateUrlHash,Yn as version};