@voltom.io/sdk 1.0.4 → 1.0.5

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.
Files changed (38) hide show
  1. package/dist/assets/locales/ar.json +32 -29
  2. package/dist/assets/locales/ch.json +32 -29
  3. package/dist/assets/locales/de.json +32 -29
  4. package/dist/assets/locales/en.json +6 -3
  5. package/dist/assets/locales/es.json +31 -28
  6. package/dist/assets/locales/fr.json +31 -28
  7. package/dist/assets/locales/it.json +31 -28
  8. package/dist/assets/locales/ja.json +32 -29
  9. package/dist/assets/locales/pt.json +32 -29
  10. package/dist/assets/locales/ru.json +20 -17
  11. package/dist/assets/locales/zh.json +32 -29
  12. package/dist/sdk/{PoseSilhouette-CTZ5kqI_.js → PoseSilhouette-Bbwmry4Z.js} +1 -1
  13. package/dist/sdk/{PoseSuccess-CxL2ugaZ.js → PoseSuccess-C3aBF88E.js} +1 -1
  14. package/dist/sdk/eyeLevelCamera-DY4onSBz.js +65 -0
  15. package/dist/sdk/facegate.d.ts +4 -0
  16. package/dist/sdk/facegate.dist.js +1 -1
  17. package/dist/sdk/facegate.js +1 -1
  18. package/dist/sdk/facekey.browser-CVJiBw1f.js +2 -0
  19. package/dist/sdk/facekey.d.ts +11 -14
  20. package/dist/sdk/facekey.dist.js +5 -5
  21. package/dist/sdk/facekey.js +1 -1
  22. package/dist/sdk/{media-KU3CWepq.js → media-BRKPXpu3.js} +1 -1
  23. package/dist/sdk/presentation-B-TOKUZ3.js +8 -0
  24. package/dist/sdk/presentation-BsnbDv0i.js +2 -0
  25. package/dist/sdk/verify.d.ts +28 -27
  26. package/dist/sdk/verify.dist.js +6 -6
  27. package/dist/sdk/verify.js +1 -1
  28. package/dist/sdk/view-Bfg8u_hZ.js +2 -0
  29. package/dist/sdk/view-CHSkN6gO.js +3 -0
  30. package/dist/sdk/view-DmGKdc3M.js +3 -0
  31. package/package.json +3 -3
  32. package/dist/sdk/facekey.browser-D_vfob8H.js +0 -2
  33. package/dist/sdk/poseGuidance-DLg3Dm3T.js +0 -65
  34. package/dist/sdk/presentation-BCIQkuw0.js +0 -2
  35. package/dist/sdk/presentation-D9v4ITH0.js +0 -8
  36. package/dist/sdk/view-CsOmx3ht.js +0 -3
  37. package/dist/sdk/view-Dgrm0mpZ.js +0 -3
  38. package/dist/sdk/view-WiNYUW9A.js +0 -2
@@ -1,5 +1,5 @@
1
1
  /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- (function(){var e=Object.defineProperty,t=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},r,i,a=t((()=>{r=({moduleUrl:e})=>{let t=globalThis;t.__VOLTOM_ASSET_BASE_URL__||=new URL(`../`,e).href},i=({filename:e})=>{let t=globalThis.__VOLTOM_ASSET_BASE_URL__||globalThis.location?.href;if(!t)throw Error(`SDK_ASSET_BASE_URL_UNAVAILABLE`);return new URL(`assets/${e}`,t).href}}));function o(e){e&&e.parentNode&&e.remove()}function s(e,t,n){var r,i,a,o={},s=arguments.length;for(a in t)a==`key`?r=t[a]:a==`ref`&&typeof e!=`function`?i=t[a]:o[a]=t[a];return s>2&&(o.children=s>3?be.call(arguments,2):n),c(e,o,r,i,null)}function c(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:he,__v:i||++ae,__i:-1,__u:0};return!i&&D.vnode&&D.vnode(a),a}function l(){return{current:null}}function u(e){return e.children}function d(e,t){this.props=e,this.context=t,this.__g=0}function f(e,t){if(t==null)return e.__&&f(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:f(e)}function p(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),p(e)}function m(e){(8&e.__g||(e.__g|=8,se.push(e),le++))&&ce==D.debounceRendering||((ce=D.debounceRendering)||queueMicrotask)(h)}function h(){var e,t,n,r,i,a,o,s,c;try{for(t=1;se.length;)se.length>t&&se.sort(ue),e=se.shift(),t=se.length,8&e.__g&&(r=void 0,i=void 0,a=(i=(n=e).__v).__e,o=[],s=[],(c=n.__P)&&((r=xe({constructor:he},i)).__v=i.__v+1,D.vnode&&D.vnode(r),C(c,r,i,n.__n,c.namespaceURI,32&i.__u?[a]:null,o,a||f(i),32&i.__u,s),r.__v=i.__v,r.__.__k[r.__i]=r,E(o,r,s),i.__=i.__e=null,r.__e!=a&&p(r)))}finally{(le=se.length)&&(ce||queueMicrotask)(h)}}function g(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,y=r.__k||_e,b=t.length;for(c=_(n,t,y,c,b),d=0;d<b;d++)(p=n.__k[d])!=null&&(f=~p.__i&&y[p.__i]||ge,p.__i=d,g=C(e,p,f,i,a,o,s,c,l,u),m=p.__e,(f.ref!=p.ref||8&f.__u)&&(f.ref&&te(f.ref,null,p,f),p.ref&&u.push(p.ref,p.__c||m,p)),h||=m,4&p.__u?(c=v(p,c,e,!f.__v),f.__e&&(f.__e=null)):typeof p.type==`function`&&g!==void 0?c=g:m&&(c=m.nextSibling),p.__u&=-21);return n.__e=h,c}function _(e,t,n,r,i){var a,o,s,l,d,p,m,h,g,_=n.length,v=_,b=0,x=0,S=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor===String?o=S[a]=c(null,o):ye(o)?o=S[a]=c(u,{children:o}):o.constructor===he&&o.__b?o=S[a]=c(o.type,o.props,o.key,o.ref,o.__v):S[a]=o,l=a+b,o.__=e,o.__b=e.__b+1,s=null,~(d=o.__i=y(o,n,l,v))&&(v--,(s=n[d])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,d==l-1?b--:d==l+1?b++:d!=l&&(d>l?b--:b++,x=1)):(~d||(i>_?b--:i<_&&b++),typeof o.type!=`function`&&(o.__u|=4))):S[a]=null;if(x){for(p=[],m=[],a=0;a<i;a++)if((o=S[a])&&16&o.__u){for(b=0,h=p.length;b<h;)p[g=b+h>>1]<o.__i?b=g+1:h=g;p[b]=o.__i,m[a]=b+1}for(b=p.length;a--;)m[a]&&(m[a]==b?b--:S[a].__u|=4)}if(v)for(a=0;a<_;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=f(s)),ne(s,s));return r}function v(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=v(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=f(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t&&=t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function y(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function b(e,t,n){n??=``,t[0]==`-`?e.setProperty(t,n):e[t]=n}function x(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||b(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||b(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||={})[t]=n,n&&r||(o=me[t]||(me[t]=S(t)),(e.__a||={})[t]=pe,a=t!=(t=t.replace(fe,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;return}catch{}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function S(e){return function(t){var n=this.__e;if(n){if(n=n[e],t[de]==null)t[de]=pe++;else if(t[de]<this.__a[e])return;return n(D.event?D.event(t):t)}}}function C(e,t,n,r,i,a,s,c,l,p){var m,h,_,v,y,b,x,S,C,E,te,ie,ae,oe,se,ce,le,ue,de=t.type;if(t.constructor!==he)return null;128&n.__u&&(l=32&n.__u,m=n.__c.__z)&&(t.__u|=l,h=a=[],m.nodeType==8?c=w(m,a):a.push(m),c=a[0]||c),(m=D.__b)&&m(t);n:if(typeof de==`function`){_=s.length;try{if(S=t.props,C=(m=de.prototype)&&m.render,E=(m=de.contextType)&&r[m.__c],te=m?E?E.props.value:m.__:r,(v=n.__c)?(t.__c=v,2&v.__g&&(v.__g|=1)):(C?t.__c=v=new de(S,te):(t.__c=v=new d(S,te),v.constructor=de,v.render=re),E&&E.sub(v),v.state||(v.state={}),v.__n=r,v.__g|=8,v.__h=[],v.__k=[]),C&&(v.__s||(v.__s=v.state),de.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=xe({},v.__s)),xe(v.__s,de.getDerivedStateFromProps(S,v.__s)))),y=v.props,b=v.state,v.__v=t,n.__c){if(S!==y&&C&&!de.getDerivedStateFromProps&&v.componentWillReceiveProps&&v.componentWillReceiveProps(S,te),t.__v==n.__v&&!(8&v.__g)||!(4&v.__g)&&v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(S,v.__s,te)){t.__v!=n.__v&&(v.props=S,v.state=v.__s,v.__g&=-9),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),_e.push.apply(v.__h,v.__k),v.__k=[],v.__h.length&&s.push(v),c=f(n);break n}v.componentWillUpdate&&v.componentWillUpdate(S,v.__s,te),C&&v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(y,b,x)})}else C&&!de.getDerivedStateFromProps&&v.componentWillMount&&v.componentWillMount(),C&&v.componentDidMount&&v.__h.push(v.componentDidMount);if(v.context=te,v.props=S,v.__P=e,v.__g&=-5,ie=D.__r,ae=0,C)v.state=v.__s,v.__g&=-9,ie&&ie(t),m=v.render(v.props,v.state,v.context),_e.push.apply(v.__h,v.__k),v.__k=[];else do v.__g&=-9,ie&&ie(t),m=v.render(v.props,v.state,v.context),v.state=v.__s;while(8&v.__g&&++ae<25);v.state=v.__s,v.getChildContext&&(r=xe({},r,v.getChildContext())),C&&n.__c&&v.getSnapshotBeforeUpdate&&(x=v.getSnapshotBeforeUpdate(y,b)),oe=m&&m.type===u&&m.key==null?m.props.children:m,S.__P&&(m=c,i=(e=S.__P).namespaceURI,l=a=null,n.props&&n.props.__P!=e&&(n.__k.some(function(e){e&&ne(e,e)}),n.__k=null),c=n.__k?f(n,0):null),c=g(e,ye(oe)?oe:[oe],t,n,r,i,a,s,c,l,p),S.__P&&(t.__e=null,c=m),t.__u&=-161,h&&h.some(o),v.__h.length&&s.push(v),1&v.__g&&(v.__g&=-4)}catch(e){if(s.length=_,t.__v=null,l||a){if(e.then){if(se=0,t.__u|=128|l,a){for(~(le=a.indexOf(c||void 0))||(le=a.length);(ue=a[le-1])&&ue.nodeType==8;)le--;for(;le<a.length;le++)if(ue=a[le]){if(a[le]=null,ue.nodeType==8){if(ue.data.startsWith(`$s`))se++||(ce=ue);else if(se&&ue.data.startsWith(`/$s`)&&!--se)break}else if(!se)break}}if(!ce){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;ce=c}(m=w(ce=t.__c.__z||(t.__c.__z=ce)))?(t.__e=ce,c=m):t.__e=c,c&&=c.nextSibling}else a&&a.some(o)}else t.__e=n.__e;t.__k||=n.__k||[],e.then||T(t),D.__e(e,t,n)}}else c=t.__e=ee(n.__e,t,n,r,i,a,s,l,p,e);return(m=D.diffed)&&m(t),c}function w(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function T(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(T))}function E(e,t,n){for(var r=0;r<n.length;)te(n[r++],n[r++],n[r++]);D.__c&&D.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){D.__e(e,t.__v)}})}function ee(e,t,n,r,i,a,s,c,l,u){var d,p,m,h,_,v,y,b,S,C=n.props||ge,w=t.props,T=t.type;if(T==`svg`?i=`http://www.w3.org/2000/svg`:T==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a){for(d=0;d<a.length;d++)if((_=a[d])&&(T?_.localName==T:_.nodeType==3)){e=_,a[d]=null;break}}if(!e){if(b=u.ownerDocument||document,!T)return b.createTextNode(w);e=b.createElementNS(i,T,w.is&&w),c&&=(D.__m&&D.__m(t,a),!1),a=null}if(T){if(u=T==`template`&&e.content||e,a=T==`textarea`&&w.defaultValue!=null?null:a&&be.call(u.childNodes),!c&&a)for(C={},d=0;d<e.attributes.length;d++)C[(_=e.attributes[d]).name]=_.value;for(d in C)_=C[d],d==`dangerouslySetInnerHTML`?m=_:d==`children`||d in w||d==`value`&&`defaultValue`in w||d==`checked`&&`defaultChecked`in w||x(e,d,null,_,i);for(d in S=1&n.__u,w)_=w[d],d==`children`?h=_:d==`dangerouslySetInnerHTML`?p=_:d==`value`?v=_:d==`checked`?y=_:c&&typeof _!=`function`||!(C[d]!==_||S&&_!=null)||x(e,d,_,C[d],i);p?(c||m&&(p.__html==m.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[]):(m&&(e.textContent=``),(T==`foreignObject`||i==`http://www.w3.org/1998/Math/MathML`&&ve.test(T))&&(i=`http://www.w3.org/1999/xhtml`),g(u,ye(h)?h:[h],t,n,r,i,a,s,a?a[0]:n.__k&&f(n,0),c,l),a&&a.some(o)),c&&T!=`textarea`||(d=`value`,T==`progress`&&v==null?e.removeAttribute(d):v==null||v===e[d]&&(T!=`progress`||v)||x(e,d,v,C[d],i),d=`checked`,y!=null&&y!=e[d]&&x(e,d,y,C[d],i))}else C===w||c&&e.data==w||(e.data=w);return e}function te(e,t,n,r){try{typeof e==`function`?t?t.__x=e(t)||1:(r&&=r.__c||r.__e)&&(t=r.__x)&&(r.__x=null,typeof t==`function`?t():e(null)):e.current=t}catch(e){D.__e(e,n)}}function ne(e,t,n){var r,i,a,s;if(D.unmount&&D.unmount(e),!(r=e.ref)||r.current&&r.current!=e.__e||te(r,null,t,e),r=e.__c){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){D.__e(e,t)}r.__P=r.__n=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&ne(r[s],t,typeof e.type!=`function`||n&&!e.props.__P);!n&&(r=e.__c)&&(r=r.__z)&&(i=w(r,a=[]))&&(r==e.__e&&a.some(o),o(i),o(r)),(r=e.__e)&&(n||o(r),r.__e&&(r.__e=null)),e.__e=e.__c=e.__=null}function re(e,t,n){return this.constructor(e,n)}function ie(e,t){var n,r,i,a;D.__&&D.__(e,t),t.nodeType==9&&(t=t.documentElement),r=(n=e&&32&e.__u)?null:t.__k,t.__k=c(u,{children:[e]}),i=[],a=[],C(t,t.__k,r||ge,ge,t.namespaceURI,r?null:t.firstChild?be.call(t.childNodes):null,i,r?r.__e:t.firstChild,n,a),E(i,t.__k,a),t.__k.props.children=null}var D,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se=t((()=>{he=Symbol.for(`pv`),ge={},_e=[],ve=/^m(i|n|o|s|text|space)$/,ye=Array.isArray,be=_e.slice,xe=Object.assign,D={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((o=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=1),o&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw le=0,e}},ae=0,oe=function(e){return e!=null&&e.constructor===he},d.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=xe({},this.state)),typeof e==`function`&&(e=e(xe({},n),this.props)),e&&(xe(n,e),this.__v&&(t&&this.__k.push(t),m(this)))},d.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),m(this))},d.prototype.render=u,se=[],le=0,ue=function(e,t){return e.__v.__b-t.__v.__b},de=Symbol(),fe=/(PointerCapture)$|Capture$/i,pe=0,me={}}));function Ce(e,t){k.__h&&k.__h(O,e,Re||t),Re=0;var n=O.__H||(O.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function we(e){return Re=1,Te(Ne,e)}function Te(e,t,n){var r=Ce(Pe++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Ne(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);Le(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=O,!O.__f)){O.__f=!0;var i=O.shouldComponentUpdate;O.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,Le(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function Ee(e,t){var n=Ce(Pe++,7);return Me(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function De(){var e;do{for(;e=Be.shift();)try{Ae(e)}catch(t){k.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=ze.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Ae),t.__h.some(je),t.__h=[]}catch(n){t.__h=[],k.__e(n,e.__v)}}}while(Be.length)}function Oe(e){var t,n=function(){clearTimeout(r),qe&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);qe&&(t=requestAnimationFrame(n))}function ke(e){e!=1&&Ie==k.requestAnimationFrame||((Ie=k.requestAnimationFrame)||Oe)(De)}function Ae(e){var t=O,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),O=t}function je(e){var t=O;e.__c=e.__(),O=t}function Me(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!Le(t,e[n])})}function Ne(e,t){return typeof t==`function`?t(e):t}var Pe,O,Fe,Ie,Le,Re,ze,Be,k,Ve,He,Ue,We,Ge,Ke,qe,Je=t((()=>{Se(),Le=Object.is,Re=0,ze=[],Be=[],k=D,Ve=k.__b,He=k.__r,Ue=k.diffed,We=k.__c,Ge=k.unmount,Ke=k.__,k.__b=function(e){O=null,Ve&&Ve(e)},k.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ke&&Ke(e,t)},k.__r=function(e){He&&He(e),Pe=0;var t=(O=e.__c).__H;t&&(Fe==O?O.__h=[]:(t.__h.some(Ae),t.__h.some(je),Pe=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),Fe=O},k.diffed=function(e){Ue&&Ue(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&ke(ze.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),Fe=O=null},k.__c=function(e,t){t.some(function(e){try{e.__h.some(Ae),e.__h=e.__h.filter(function(e){return!e.__||je(e)})}catch(t){e.__h=[function(){throw t}]}}),We&&We(e,t)},k.unmount=function(e){Ge&&Ge(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n&&=n.__c}r.__P=n,ke(Be.push(r))}else Ae(r)}catch(e){t=e}}),r.__H=void 0,t&&k.__e(t,r.__v))},qe=typeof requestAnimationFrame==`function`}));function Ye(){if(pt>1)pt--;else{var e,t=!1;for((function(){var e=_t;for(_t=void 0;e!==void 0;){var t=e.S;if(t.v===e.v)for(var n=t.t;n!==void 0;n=n.x)n.i===e.i&&(n.i=t.i);e=e.o}})();ft!==void 0;){var n=ft;for(ft=void 0,mt++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&et(n))try{n.c()}catch(n){t||=(e=n,!0)}n=r}}if(mt=0,pt--,t)throw e}}function Xe(e){if(pt>0)return e();gt=++ht,pt++;try{return e()}finally{Ye()}}function Ze(e){var t=j,n=dt;j=void 0,dt=void 0;try{return e()}finally{j=t,dt=n}}function Qe(e){if(j!==void 0){var t=e.n;if(t===void 0||t.t!==j)return t={i:0,S:e,p:j.s,n:void 0,t:j,e:void 0,x:void 0,r:t},j.s!==void 0&&(j.s.n=t),j.s=t,e.n=t,32&j.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=j.s,t.n=void 0,j.s.n=t,j.s=t),t}}function A(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=t?.watched,this.Z=t?.unwatched,this.name=t?.name}function $e(e,t){return new A(e,t)}function et(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function tt(e){for(var t=e.s;t!==void 0;t=t.n){var n=t.S.n;if(n!==void 0&&(t.r=n),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function nt(e){for(var t=e.s,n=void 0;t!==void 0;){var r=t.p;t.i===-1?(t.S.U(t),r!==void 0&&(r.n=t.n),t.n!==void 0&&(t.n.p=r)):n=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=r}e.s=n}function rt(e,t){A.call(this,void 0,t),this.x=e,this.s=void 0,this.g=vt-1,this.f=4}function it(e,t){return new rt(e,t)}function at(e){var t=e.j;if(e.j=void 0,typeof t==`function`){pt++;var n=j;j=void 0;try{t()}catch(t){throw e.f&=-2,e.f|=8,ot(e),t}finally{j=n,Ye()}}}function ot(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,at(e)}function st(e){if(j!==this)throw Error(`Out-of-order effect`);nt(this),j=e,this.f&=-2;try{8&this.f&&ot(this)}finally{Ye()}}function ct(e,t){this.x=e,this.j=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=t?.name,dt&&dt.push(this)}function lt(e,t){var n=new ct(e,t);try{n.c()}catch(e){throw n.d(),e}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var ut,dt,j,ft,pt,mt,ht,gt,_t,vt,yt=t((()=>{ut=Symbol.for(`preact-signals`),j=void 0,ft=void 0,pt=0,mt=0,ht=0,gt=0,_t=void 0,vt=0,A.prototype.brand=ut,A.prototype.h=function(){return!0},A.prototype.S=function(e){var t=this,n=this.t;n!==e&&e.e===void 0&&(e.x=n,this.t=e,n===void 0?Ze(function(){var e;(e=t.W)==null||e.call(t)}):n.e=e)},A.prototype.U=function(e){var t=this;if(this.t!==void 0){var n=e.e,r=e.x;n!==void 0&&(n.x=r,e.e=void 0),r!==void 0&&(r.e=n,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&Ze(function(){var e;(e=t.Z)==null||e.call(t)}))}},A.prototype.subscribe=function(e){var t=this;return lt(function(){var n=t.value;Ze(function(){return e(n)})},{name:`sub`})},A.prototype.valueOf=function(){return this.value},A.prototype.toString=function(){return this.value+``},A.prototype.toJSON=function(){return this.value},A.prototype.peek=function(){var e=this;return Ze(function(){return e.value})},Object.defineProperty(A.prototype,"value",{get:function(){var e=Qe(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(mt>100)throw Error(`Cycle detected`);(function(e){pt!==0&&mt===0&&e.l!==gt&&(e.l=gt,_t={S:e,v:e.v,i:e.i,o:_t})})(this),this.v=e,this.i++,vt++,pt++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{Ye()}}}}),rt.prototype=new A,rt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===vt))return!0;if(this.g=vt,this.f|=1,this.i>0&&!et(this))return this.f&=-2,!0;var e=j;try{tt(this),j=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return j=e,nt(this),this.f&=-2,!0},rt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}A.prototype.S.call(this,e)},rt.prototype.U=function(e){if(this.t!==void 0&&(A.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}},rt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}},Object.defineProperty(rt.prototype,"value",{get:function(){if(1&this.f)throw Error(`Cycle detected`);var e=Qe(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}}),ct.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t==`function`&&(this.j=t)}finally{e()}},ct.prototype.S=function(){if(1&this.f)throw Error(`Cycle detected`);this.f|=1,this.f&=-9,at(this),tt(this),pt++;var e=j;return j=this,st.bind(this,e)},ct.prototype.N=function(){2&this.f||(this.f|=2,this.u=ft,ft=this)},ct.prototype.d=function(){this.f|=8,1&this.f||ot(this)},ct.prototype.dispose=function(){this.d()}}));function bt(e,t){D[e]=t.bind(null,D[e]||function(){})}function xt(e){if(Ot){var t=Ot;Ot=void 0,t()}Ot=e&&e.S()}function St(e){var t=this,n=e.data,r=wt(n);r.name=`ReactiveDom`,r.value=n;var i=Ee(function(){for(var e=t,n=t.__v;n=n.__;)if(n.__c){n.__c.__$f|=4;break}var i=it(function(){var e=r.value.value;return e===0?0:!0===e?``:e||``}),a=it(function(){return!Array.isArray(i.value)&&!oe(i.value)}),o=lt(function(){if(this.N=Et,a.value){var t=i.value;e.__v&&e.__v.__e&&e.__v.__e.nodeType===3&&(e.__v.__e.data=t)}}),s=t.__$u.d;return t.__$u.d=function(){o(),s.call(this)},[a,i]},[]),a=i[0],o=i[1];return a.value?o.peek():o.value}function Ct(e,t,n,r){var i=t in e&&e.ownerSVGElement===void 0,a=$e(n);return{o:function(e,t){a.value=e,r=t},d:lt(function(){this.N=Et;var n=a.value.value;r[t]!==n&&(r[t]=n,i?e[t]=n:n!=null&&(!1!==n||t[4]===`-`)?e.setAttribute(t,n):e.removeAttribute(t))})}}function wt(e,t){return Ee(function(){return $e(e,t)},[])}function Tt(){Xe(function(){for(var e;e=At.shift();)Dt.call(e)})}function Et(){At.push(this)===1&&(D.requestAnimationFrame||jt)(Tt)}var Dt,Ot,kt,At,jt,Mt=t((()=>{Se(),Je(),yt(),kt=typeof window<`u`&&!!window.__PREACT_SIGNALS_DEVTOOLS__,At=[],lt(function(){Dt=this.N})(),St.displayName=`ReactiveTextNode`,Object.defineProperties(A.prototype,{constructor:{configurable:!0,value:s(u,null).constructor},type:{configurable:!0,value:St},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}}),bt(`__b`,function(e,t){if(xt(),typeof t.type==`string`){var n,r=t.props;for(var i in r)if(i!==`children`){var a=r[i];a instanceof A&&(n||(t.__np=n={}),n[i]=a,r[i]=a.peek())}}e(t)}),bt(`__r`,function(e,t){if(e(t),t.type!==u){xt();var n,r=t.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=function(e,t){var n;return lt(function(){n=this},{name:t}),n.c=e,n}(function(e){return function(){var t;kt&&((t=this.y)==null||t.call(this)),e.__$f|=1,e.setState({})}}(r),typeof t.type==`function`?t.type.displayName||t.type.name:``))),xt(n)}}),bt(`__e`,function(e,t,n,r){xt(),e(t,n,r)}),bt(`diffed`,function(e,t){xt();var n;if(typeof t.type==`string`&&(n=t.__e)){var r=t.__np,i=t.props,a=n.U;if(a)for(var o in a){var s=a[o];s===void 0||r&&o in r||(s.d(),a[o]=void 0)}if(r)for(var c in a||(a={},n.U=a),r){var l=a[c],u=r[c];l===void 0?(l=Ct(n,c,u,i),a[c]=l):l.o(u,i)}}e(t)}),bt(`unmount`,function(e,t){if(typeof t.type==`string`){var n=t.__e;if(n){var r=n.U;if(r)for(var i in n.U=void 0,r){var a=r[i];a&&a.d()}}var o=t.__np;if(o){var s=t.props;for(var c in o)s[c]=o[c]}t.__np=void 0}else{var l=t.__c;if(l){l.__$f|=8;var u=l.__$u;u&&(l.__$u=void 0,u.d())}}e(t)}),bt(`__h`,function(e,t,n,r){r<3&&(t.__$f|=2),e(t,n,r)}),d.prototype.shouldComponentUpdate=function(e,t){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in t)return!0;if(this.__f||typeof this.u==`boolean`&&!0===this.u){var a=2&this.__$f;if(!(r||a||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var o in e)if(o!==`__source`&&e[o]!==this.props[o])return!0;for(var s in this.props)if(!(s in e))return!0;return!1},jt=function(e){queueMicrotask(function(){queueMicrotask(e)})}})),M,Nt,Pt,Ft,It=t((()=>{M={INVALID_PDF:`INVALID_PDF`,PDF_PASSWORD_REQUIRED:`PDF_PASSWORD_REQUIRED`,PDF_LOAD_FAILED:`PDF_LOAD_FAILED`,CLIENT_KEY_REQUIRED:`CLIENT_KEY_REQUIRED`,CAMERA_INTERRUPTED:`CAMERA_INTERRUPTED`,CAMERA_NOT_FOUND:`CAMERA_NOT_FOUND`,CAMERA_PERMISSION_DENIED:`CAMERA_PERMISSION_DENIED`,CAMERA_UNAVAILABLE:`CAMERA_UNAVAILABLE`,CAMERA_UNSUPPORTED:`CAMERA_UNSUPPORTED`,CAPTURES_INCOMPLETE:`CAPTURES_INCOMPLETE`,DOCUMENT_BACK_CONTAINS_FACE:`DOCUMENT_BACK_CONTAINS_FACE`,DOCUMENT_BACK_NOT_DISTINCT:`DOCUMENT_BACK_NOT_DISTINCT`,DOCUMENT_BACK_REQUIRED:`DOCUMENT_BACK_REQUIRED`,DOCUMENT_BLURRY:`DOCUMENT_BLURRY`,DOCUMENT_FACE_GEOMETRY_INVALID:`DOCUMENT_FACE_GEOMETRY_INVALID`,DOCUMENT_FACE_NOT_CONTAINED:`DOCUMENT_FACE_NOT_CONTAINED`,DOCUMENT_FACE_NOT_FOUND:`DOCUMENT_FACE_NOT_FOUND`,DOCUMENT_NOT_FOUND:`DOCUMENT_NOT_FOUND`,DOCUMENT_NOT_RECOGNIZED:`DOCUMENT_NOT_RECOGNIZED`,DOCUMENT_TEXT_ALIGNMENT_INVALID:`DOCUMENT_TEXT_ALIGNMENT_INVALID`,DOCUMENT_TEXT_NOT_READABLE:`DOCUMENT_TEXT_NOT_READABLE`,DOCUMENT_VALIDATION_FAILED:`DOCUMENT_VALIDATION_FAILED`,FACEKEY_TOKEN_INVALID:`FACEKEY_TOKEN_INVALID`,FACEGATE_TOKEN_INVALID:`FACEGATE_TOKEN_INVALID`,FACEGATE_ABORTED:`FACEGATE_ABORTED`,FACEGATE_TIMEOUT:`FACEGATE_TIMEOUT`,FACE_NOT_FOUND:`FACE_NOT_FOUND`,FACE_MISMATCH:`FACE_MISMATCH`,FACE_NOT_USABLE:`FACE_NOT_USABLE`,IMAGE_ENCODE_FAILED:`IMAGE_ENCODE_FAILED`,IMAGE_PROCESSING_FAILED:`IMAGE_PROCESSING_FAILED`,INVALID_IMAGE:`INVALID_IMAGE`,INVALID_MODEL_OUTPUT:`INVALID_MODEL_OUTPUT`,INVALID_OPTIONS:`INVALID_OPTIONS`,INVALID_POSES:`INVALID_POSES`,INVALID_CLIENT_KEY:`INVALID_CLIENT_KEY`,INVALID_SERVICE_RESPONSE:`INVALID_SERVICE_RESPONSE`,MODEL_LOAD_FAILED:`MODEL_LOAD_FAILED`,NETWORK_ERROR:`NETWORK_ERROR`,REQUEST_TOO_LARGE:`REQUEST_TOO_LARGE`,NO_USABLE_CANDIDATES:`NO_USABLE_CANDIDATES`,NO_USABLE_REFERENCES:`NO_USABLE_REFERENCES`,POSE_BACKGROUND_MISMATCH:`POSE_BACKGROUND_MISMATCH`,POSE_IDENTITY_MISMATCH:`POSE_IDENTITY_MISMATCH`,SERVICE_UNAVAILABLE:`SERVICE_UNAVAILABLE`,SDK_NOT_READY:`SDK_NOT_READY`,SDK_CAPABILITY_NOT_CONFIGURED:`SDK_CAPABILITY_NOT_CONFIGURED`,UI_ELEMENT_NOT_FOUND:`UI_ELEMENT_NOT_FOUND`,VERIFICATION_CANCELLED:`VERIFICATION_CANCELLED`,VERIFICATION_SAVE_FAILED:`VERIFICATION_SAVE_FAILED`},Nt=new Set(Object.values(M)),Pt=e=>typeof e==`string`&&Nt.has(e),Ft=({error:e,fallback:t=M.INVALID_SERVICE_RESPONSE})=>typeof e==`object`&&e&&`code`in e&&Pt(e.code)?e.code:e instanceof Error&&Pt(e.message)?e.message:Pt(e)?e:t})),Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt=t((()=>{a(),It(),Lt=[`ar`,`ch`,`de`,`en`,`es`,`fr`,`it`,`ja`,`pt`,`ru`,`zh`],Rt=new Map,zt=new Map,Bt=async({language:e})=>{if(Rt.has(e))return;let t=zt.get(e);t||(t=fetch(i({filename:`locales/${e}.json`})).then(async e=>{if(!e.ok)throw Error(M.INVALID_SERVICE_RESPONSE);return await e.json()}),zt.set(e,t));try{Rt.set(e,await t)}finally{zt.delete(e)}},Vt=async({language:e})=>{let t=e??Ht();await Promise.all([Bt({language:t}),...t===`en`?[]:[Bt({language:`en`})]])},Ht=()=>{let e=[navigator.language,...navigator.languages];for(let t of e){let e=t.toLowerCase();if(/^zh-(hk|mo|tw)\b/u.test(e))return`ch`;let n=e.split(`-`)[0];if(Lt.includes(n))return n}return`en`},Ut={[M.CAMERA_PERMISSION_DENIED]:`cameraPermissionDenied`,[M.CAMERA_NOT_FOUND]:`cameraNotFound`,[M.CAMERA_UNAVAILABLE]:`cameraUnavailable`,[M.CAMERA_UNSUPPORTED]:`cameraUnavailable`,[M.CAMERA_INTERRUPTED]:`cameraUnavailable`,[M.NETWORK_ERROR]:`networkError`,[M.SERVICE_UNAVAILABLE]:`serviceUnavailable`,[M.MODEL_LOAD_FAILED]:`modelLoadFailed`,[M.FACE_NOT_FOUND]:`faceNotFound`,[M.NO_USABLE_CANDIDATES]:`faceNotFound`,[M.FACE_NOT_USABLE]:`faceNotUsable`,[M.NO_USABLE_REFERENCES]:`faceNotUsable`,[M.DOCUMENT_NOT_FOUND]:`frameDocument`,[M.DOCUMENT_NOT_RECOGNIZED]:`invalidDocument`,[M.DOCUMENT_TEXT_NOT_READABLE]:`documentNotReadable`,[M.DOCUMENT_BLURRY]:`documentBlurry`,[M.DOCUMENT_FACE_NOT_FOUND]:`faceNotVisibleInDocument`,[M.DOCUMENT_FACE_NOT_CONTAINED]:`documentAlignmentInvalid`,[M.DOCUMENT_FACE_GEOMETRY_INVALID]:`documentAlignmentInvalid`,[M.DOCUMENT_TEXT_ALIGNMENT_INVALID]:`documentAlignmentInvalid`,[M.DOCUMENT_BACK_REQUIRED]:`frameDocumentBack`,[M.CAPTURES_INCOMPLETE]:`capturesIncomplete`,[M.DOCUMENT_VALIDATION_FAILED]:`documentValidationFailed`,[M.INVALID_OPTIONS]:`invalidOptions`,[M.INVALID_POSES]:`invalidPoses`,[M.INVALID_SERVICE_RESPONSE]:`invalidServiceResponse`,[M.POSE_BACKGROUND_MISMATCH]:`poseBackgroundMismatch`,[M.POSE_IDENTITY_MISMATCH]:`poseIdentityMismatch`,[M.IMAGE_ENCODE_FAILED]:`imageEncodeFailed`,[M.IMAGE_PROCESSING_FAILED]:`imageProcessingFailed`,[M.INVALID_IMAGE]:`invalidImage`,[M.INVALID_PDF]:`invalidPdf`,[M.PDF_PASSWORD_REQUIRED]:`pdfPasswordRequired`,[M.PDF_LOAD_FAILED]:`pdfLoadFailed`,[M.CLIENT_KEY_REQUIRED]:`clientKeyRequired`,[M.VERIFICATION_SAVE_FAILED]:`verificationSaveFailed`},Wt=({language:e})=>{let t=e??Ht(),n=e=>{let n=Rt.get(t),r=Rt.get(`en`);return n?.[e]??r?.[e]??e};return{translate:n,translateError:({error:e})=>{let t=Ft({error:e}),r=Ut[t]??`verificationFailed`;return n(r)}}},Gt=async({milliseconds:e})=>{let t=Promise.withResolvers();setTimeout(()=>t.resolve(),e),await t.promise}})),qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on=t((()=>{It(),qt=new WeakMap,Jt=async({video:e,signal:t})=>{t?.throwIfAborted();let n=Promise.withResolvers(),r=e,i=qt.get(e)??new Set,a=null,o=null,s=!1,c=c=>{s||(s=!0,a!==null&&r.cancelVideoFrameCallback?.(a),o!==null&&cancelAnimationFrame(o),t?.removeEventListener(`abort`,u),i.delete(l),i.size||qt.delete(e),c?n.reject(c):n.resolve())},l=()=>c(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`)),u=()=>c(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`));i.add(l),qt.set(e,i),t?.addEventListener(`abort`,u,{once:!0}),r.requestVideoFrameCallback?a=r.requestVideoFrameCallback(()=>c()):o=requestAnimationFrame(()=>c()),await n.promise},Yt=()=>{let e=/Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent),t=navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1;return e||t},Xt=async()=>{let e=[],t=(t,n)=>{n||e.push(t)};if(t(`navigator.mediaDevices.getUserMedia`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.getUserMedia==`function`),t(`navigator.mediaDevices.enumerateDevices`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.enumerateDevices==`function`),t(`MediaStream`,typeof MediaStream<`u`),t(`MediaStreamTrack`,typeof MediaStreamTrack<`u`),t(`HTMLVideoElement`,typeof HTMLVideoElement<`u`),t(`createImageBitmap`,typeof createImageBitmap==`function`),t(`OffscreenCanvas`,typeof OffscreenCanvas<`u`),t(`OffscreenCanvas.getContext`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.getContext==`function`),t(`OffscreenCanvas.convertToBlob`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.convertToBlob==`function`),t(`WebAssembly`,typeof WebAssembly<`u`),t(`fetch`,typeof fetch==`function`),t(`Blob`,typeof Blob<`u`),t(`File`,typeof File<`u`),t(`URL.createObjectURL`,typeof URL.createObjectURL==`function`),t(`URL.revokeObjectURL`,typeof URL.revokeObjectURL==`function`),!e.includes(`OffscreenCanvas`)&&!e.includes(`OffscreenCanvas.getContext`)&&!e.includes(`OffscreenCanvas.convertToBlob`))try{let e=new OffscreenCanvas(1,1),n=e.getContext(`2d`);if(t(`OffscreenCanvas 2D context`,n!==null),n&&typeof createImageBitmap==`function`){let n=await e.convertToBlob({type:`image/jpeg`});t(`JPEG encoding`,n.type===`image/jpeg`),n.type===`image/jpeg`&&((await createImageBitmap(n)).close(),t(`JPEG decoding`,!0))}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}catch{e.includes(`JPEG encoding`)||t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1);return{supported:e.length===0,unsupportedFeatures:e}},Zt=({video:e})=>{for(let t of qt.get(e)??[])t();let t=e.srcObject;if(t instanceof MediaStream)for(let e of t.getTracks())e.stop();e.srcObject=null},Qt=async({facingMode:e,video:t,signal:n})=>{if(!navigator.mediaDevices||typeof navigator.mediaDevices.getUserMedia!=`function`)throw Error(M.CAMERA_UNSUPPORTED);let r={facingMode:{ideal:e}};Yt()||(r.width={ideal:1280},r.height={ideal:720});let i=()=>Zt({video:t});n?.addEventListener(`abort`,i,{once:!0});try{let i=await navigator.mediaDevices.getUserMedia({video:r,audio:!1});if(n?.aborted){for(let e of i.getTracks())e.stop();n.throwIfAborted()}t.srcObject=i;let a=(await navigator.mediaDevices.enumerateDevices()).filter(({kind:e})=>e===`videoinput`).length>1?e:`user`;return await t.play(),n?.throwIfAborted(),a}catch(e){if(Zt({video:t}),n?.aborted)throw new DOMException(M.VERIFICATION_CANCELLED,`AbortError`);let r=e instanceof Error?e.name:``,i=M.CAMERA_UNAVAILABLE;throw(r===`NotAllowedError`||r===`SecurityError`)&&(i=M.CAMERA_PERMISSION_DENIED),r===`NotFoundError`&&(i=M.CAMERA_NOT_FOUND),r===`AbortError`&&(i=M.CAMERA_INTERRUPTED),Error(i,{cause:e})}finally{n?.removeEventListener(`abort`,i)}},$t=({element:e})=>{let t=e.getContext(`2d`);if(!t)throw Error(M.IMAGE_PROCESSING_FAILED);t.clearRect(0,0,e.width,e.height)},en=async({canvas:e,quality:t})=>{try{let n=await e.convertToBlob({type:`image/jpeg`,quality:t});if(n.type!==`image/jpeg`)throw Error(M.IMAGE_ENCODE_FAILED);return n}catch(e){throw Error(M.IMAGE_ENCODE_FAILED,{cause:e})}},tn=async({frame:e})=>{let t=new OffscreenCanvas(e.width,e.height),n=t.getContext(`2d`);if(!n)throw Error(M.IMAGE_PROCESSING_FAILED);return n.drawImage(e,0,0),await en({canvas:t})},nn=async({blob:e})=>{let t;try{t=await createImageBitmap(e)}catch(e){throw Error(M.INVALID_IMAGE,{cause:e})}try{let e=Math.min(1,900/Math.max(t.width,t.height)),n=new OffscreenCanvas(Math.max(1,Math.round(t.width*e)),Math.max(1,Math.round(t.height*e))),r=n.getContext(`2d`);if(!r)throw Error(M.IMAGE_PROCESSING_FAILED);return r.drawImage(t,0,0,n.width,n.height),await en({canvas:n,quality:.85})}finally{t.close()}},rn=async({frame:e})=>{let t=Math.min(1,960/Math.max(e.width,e.height)),n=Math.max(1,Math.round(e.width*t)),r=Math.max(1,Math.round(e.height*t));return await createImageBitmap(e,{resizeWidth:n,resizeHeight:r})},an=async({image:e})=>{let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return`data:image/jpeg;base64,${btoa(n)}`}}));function sn(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function cn(e,t=`|`){return e.map(e=>kn(e)).join(t)}function ln(e,t){return typeof t==`bigint`?t.toString():t}function un(e){return new ar(e)}function dn(e){return e==null}function fn(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function pn(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function mn(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function hn(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function gn(e){return hn(e._zod.def)??e._zod.def.shape}function _n(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return mn(this,t,e),e},enumerable:!0,configurable:!0})}function vn(e,t,n){t in e?mn(e,t,n):e[t]=n}function yn(e,t,n,r){let i=gn(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?_n(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):vn(e,a,r?r(n.value,a):n.value))}}function bn(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?_n(e,n,()=>t[n]):vn(e,n,r.value))}}function xn(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Sn(e){return JSON.stringify(e)}function Cn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}function wn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Tn(e){if(wn(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return wn(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function En(e){return Tn(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Dn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function On(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function N(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function kn(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function An(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}function jn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return yn(i,e,Mn(e,t)),On(e,xn(n,{shape:i,checks:[]}))}function Mn(e,t){let n=gn(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function Nn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(Mn(e,t)),a={};return yn(a,e,Reflect.ownKeys(gn(e)).filter(e=>!i.has(e))),On(e,xn(n,{shape:a,checks:[]}))}function Pn(e,t){if(!Tn(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=gn(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return On(e,xn(e._zod.def,{shape:Fn(e,t)}))}function Fn(e,t){let n={};return yn(n,e,Reflect.ownKeys(gn(e))),bn(n,t),n}function In(e,t){if(!Tn(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return On(e,xn(e._zod.def,{shape:Fn(e,t)}))}function Ln(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return yn(n,e,Reflect.ownKeys(gn(e))),yn(n,t,Reflect.ownKeys(gn(t))),On(e,xn(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Rn(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(Mn(t,n)):void 0,o={};return yn(o,t,Reflect.ownKeys(gn(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),On(t,xn(t._zod.def,{shape:o,checks:[]}))}function zn(e,t,n){let r=n?new Set(Mn(t,n)):void 0,i={};return yn(i,t,Reflect.ownKeys(gn(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),On(t,xn(t._zod.def,{shape:i}))}function Bn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Vn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function Hn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Un(e){return typeof e==`string`?e:e?.message}function Wn(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function Gn(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function Kn(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:Un(e.inst?._zod.def?.error?.(e))??Un(a?.(e))??Un(t?.error?.(e))??Un(n.customError?.(e))??Un(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}function qn(e){let t=e.length;if(!dr.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function Jn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Yn(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Xn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Zn(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):tr(e,n,r.value)}}function Qn(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function $n(e,t,n){return Qn(e,t,n,!1)}function er(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return Qn(this,n,r(this))},set(e){Qn(this,n,e)}})}return t}function tr(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:Qn(this,t,n.bind(this))},set(e){Qn(this,t,e)}})}function nr(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}function P(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&fr!==e._zod?fr=void 0:(fr=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,mr);let e=pr;pr=!1;try{let r=n(this);return pr?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),pr||=e,r}catch(n){throw delete this[t],pr||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function rr(e,t,n,r){let i=nr(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function ir(e){let t=()=>e;return t[hr]=!0,t}var ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr=t((()=>{Tr(),ar=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}},or=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{},sr=un(()=>{if(wr.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}}),cr=new Set([`string`,`number`,`symbol`]),lr={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ur={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]},dr=/[\uD800-\uDBFF]/,pr=!1,mr={configurable:!0,get(){pr=!0}},hr=`~constantCatch`}));function _r(e){let t=xr;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return xr=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function F(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){br.value=new a(r);try{Object.defineProperty(n,"_zod",br)}finally{br.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Zn(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?_r(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}function vr(e){return e&&Object.assign(wr,e),wr}var yr,br,xr,Sr,Cr,wr,Tr=t((()=>{gr(),br={value:void 0,enumerable:!1},xr=`captureStackTrace`in Error?Error:null,Sr=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Cr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},(yr=globalThis).__zod_globalConfig??(yr.__zod_globalConfig={}),wr=globalThis.__zod_globalConfig}));function Er(){let e=this._zod;return e.message??=JSON.stringify(e.def,ln,2),e.message}function Dr(e){this._zod.message=e}function Or(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function kr(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?Or(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Ar(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}var jr,Mr,Nr,Pr,Fr,Ir=t((()=>{Tr(),gr(),jr={get:Er,set:Dr,enumerable:!0,configurable:!0},Mr={value:void 0,enumerable:!1},Nr=new WeakSet([Object.prototype,Error.prototype]),Pr=(e,t)=>{e.name=`$ZodError`,Mr.value=t,Object.defineProperty(e,"issues",Mr),Mr.value=void 0,Object.defineProperty(e,"message",jr);let n=Object.getPrototypeOf(e);Nr.has(n)||(Nr.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Fr=F(`$ZodError`,Pr)}));function Lr(e,t){return{callee:t?.callee??e,Err:t?.Err}}function Rr(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>Kn(e,n,vr()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}function zr(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[Gr]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new Sr;return a.issues.length===0}var Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni=t((()=>{Tr(),gr(),Br=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Sr;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Kn(e,o,vr())));throw or(n,a?.callee??t),n}return s.value};return t},Vr=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Kn(e,o,vr())));throw or(n,a?.callee??t),n}return s.value};return t},Hr=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Sr;return a.issues.length?Rr(e,a.issues,i):{success:!0,data:a.value}},Ur=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?Rr(e,a.issues,i):{success:!0,data:a.value}},Wr=Symbol.for(`zod.compile.invalid`),Gr=Symbol.for(`zod.compile.fallback`),Kr=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==Wr)return!0;if(r.definite===!0&&n===void 0)return!1}return zr(e,t,n)}),qr=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Jr=e=>{let t=Br(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,Lr(n,a))};return n},Yr=e=>{let t=Br(e),n=(e,r,i,a)=>t(e,r,i,Lr(n,a));return n},Xr=e=>{let t=Vr(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,Lr(n,a))};return n},Zr=e=>{let t=Vr(e),n=async(e,r,i,a)=>await t(e,r,i,Lr(n,a));return n},Qr=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Hr(e)(t,n,i)},$r=e=>(t,n,r)=>Hr(e)(t,n,r),ei=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Ur(e)(t,n,i)},ti=e=>async(t,n,r)=>Ur(e)(t,n,r)}));function ri(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}function ii(){return new RegExp(yi,`u`)}function ai(e){return RegExp(`^${e}$`)}function oi(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function si(e){return RegExp(`^${oi(e)}$`)}function ci(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${oi({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${oi({precision:e.precision})}`:n;return RegExp(`^${Oi}T(?:${r})$`)}var li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii=t((()=>{li=/^[cC][0-9a-z]{6,}$/,ui=/^[0-9a-z]+$/,di=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,fi=/^[0-9a-vA-V]{20}$/,pi=/^[A-Za-z0-9]{27}$/,mi=/^[a-zA-Z0-9_-]{21}$/,hi=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,gi=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,_i=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,vi=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,yi=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,bi=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xi=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Si=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ci=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wi=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ti=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Ei=/^https?$/,Di=/^\+[1-9]\d{6,14}$/,Oi=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,ki=ai(Oi),Ai=/^[\s\S]{0,}$/,ji=/^-?\d+$/,Mi=/^-?\d+(?:\.\d+)?$/,Ni=/^(?:true|false)$/i,Pi=/^[^A-Z]*$/,Fi=/^[^a-z]*$/})),Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta=t((()=>{Tr(),Ii(),gr(),Li=F(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ri=e=>{let t=e.value;return!dn(t)&&t.length!==void 0},zi={number:`number`,bigint:`bigint`,object:`date`},Bi=F(`$ZodCheckLessThan`,(e,t)=>{Li.init(e,t);let n=zi[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:zi[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Vi=F(`$ZodCheckGreaterThan`,(e,t)=>{Li.init(e,t);let n=zi[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:zi[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Hi=F(`$ZodCheckMultipleOf`,(e,t)=>{Li.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):pn(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ui=F(`$ZodCheckNumberFormat`,(e,t)=>{Li.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=lr[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Wi=F(`$ZodCheckMaxLength`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?qn(r):i)<=t.maximum)return;let a=Jn(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Gi=F(`$ZodCheckMinLength`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?qn(r):i)>=t.minimum)return;let a=Jn(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ki=F(`$ZodCheckLengthEquals`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?qn(r):i;if(a===t.length)return;let o=Jn(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),qi=F(`$ZodCheckStringFormat`,(e,t)=>{var n,r;Li.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ji=F(`$ZodCheckRegex`,(e,t)=>{qi.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Yi=F(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Pi,qi.init(e,t)}),Xi=F(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Fi,qi.init(e,t)}),Zi=F(`$ZodCheckIncludes`,(e,t)=>{Li.init(e,t);let n=Dn(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Qi=F(`$ZodCheckStartsWith`,(e,t)=>{Li.init(e,t);let n=RegExp(`^${Dn(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),$i=F(`$ZodCheckEndsWith`,(e,t)=>{Li.init(e,t);let n=RegExp(`.*${Dn(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),ea=F(`$ZodCheckOverwrite`,(e,t)=>{Li.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}})})),na,ra=t((()=>{na=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
2
+ (function(){var e=Object.defineProperty,t=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},r,i,a=t((()=>{r=({moduleUrl:e})=>{let t=globalThis;t.__VOLTOM_ASSET_BASE_URL__||=new URL(`../`,e).href},i=({filename:e})=>{let t=globalThis.__VOLTOM_ASSET_BASE_URL__||globalThis.location?.href;if(!t)throw Error(`SDK_ASSET_BASE_URL_UNAVAILABLE`);return new URL(`assets/${e}`,t).href}}));function o(e){e&&e.parentNode&&e.remove()}function s(e,t,n){var r,i,a,o={},s=arguments.length;for(a in t)a==`key`?r=t[a]:a==`ref`&&typeof e!=`function`?i=t[a]:o[a]=t[a];return s>2&&(o.children=s>3?ye.call(arguments,2):n),c(e,o,r,i,null)}function c(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:me,__v:i||++ie,__i:-1,__u:0};return!i&&O.vnode&&O.vnode(a),a}function l(){return{current:null}}function u(e){return e.children}function d(e,t){this.props=e,this.context=t,this.__g=0}function f(e,t){if(t==null)return e.__&&f(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:f(e)}function p(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),p(e)}function m(e){(8&e.__g||(e.__g|=8,oe.push(e),ce++))&&se==O.debounceRendering||((se=O.debounceRendering)||queueMicrotask)(h)}function h(){var e,t,n,r,i,a,o,s,c;try{for(t=1;oe.length;)oe.length>t&&oe.sort(le),e=oe.shift(),t=oe.length,8&e.__g&&(r=void 0,i=void 0,a=(i=(n=e).__v).__e,o=[],s=[],(c=n.__P)&&((r=be({constructor:me},i)).__v=i.__v+1,O.vnode&&O.vnode(r),C(c,r,i,n.__n,c.namespaceURI,32&i.__u?[a]:null,o,a||f(i),32&i.__u,s),r.__v=i.__v,r.__.__k[r.__i]=r,E(o,r,s),i.__=i.__e=null,r.__e!=a&&p(r)))}finally{(ce=oe.length)&&(se||queueMicrotask)(h)}}function g(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,y=r.__k||ge,b=t.length;for(c=_(n,t,y,c,b),d=0;d<b;d++)(p=n.__k[d])!=null&&(f=~p.__i&&y[p.__i]||he,p.__i=d,g=C(e,p,f,i,a,o,s,c,l,u),m=p.__e,(f.ref!=p.ref||8&f.__u)&&(f.ref&&D(f.ref,null,p,f),p.ref&&u.push(p.ref,p.__c||m,p)),h||=m,4&p.__u?(c=v(p,c,e,!f.__v),f.__e&&(f.__e=null)):typeof p.type==`function`&&g!==void 0?c=g:m&&(c=m.nextSibling),p.__u&=-21);return n.__e=h,c}function _(e,t,n,r,i){var a,o,s,l,d,p,m,h,g,_=n.length,v=_,b=0,x=0,S=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor===String?o=S[a]=c(null,o):ve(o)?o=S[a]=c(u,{children:o}):o.constructor===me&&o.__b?o=S[a]=c(o.type,o.props,o.key,o.ref,o.__v):S[a]=o,l=a+b,o.__=e,o.__b=e.__b+1,s=null,~(d=o.__i=y(o,n,l,v))&&(v--,(s=n[d])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,d==l-1?b--:d==l+1?b++:d!=l&&(d>l?b--:b++,x=1)):(~d||(i>_?b--:i<_&&b++),typeof o.type!=`function`&&(o.__u|=4))):S[a]=null;if(x){for(p=[],m=[],a=0;a<i;a++)if((o=S[a])&&16&o.__u){for(b=0,h=p.length;b<h;)p[g=b+h>>1]<o.__i?b=g+1:h=g;p[b]=o.__i,m[a]=b+1}for(b=p.length;a--;)m[a]&&(m[a]==b?b--:S[a].__u|=4)}if(v)for(a=0;a<_;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=f(s)),te(s,s));return r}function v(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=v(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=f(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t&&=t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function y(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function b(e,t,n){n??=``,t[0]==`-`?e.setProperty(t,n):e[t]=n}function x(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||b(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||b(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||={})[t]=n,n&&r||(o=pe[t]||(pe[t]=S(t)),(e.__a||={})[t]=fe,a=t!=(t=t.replace(de,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;return}catch{}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function S(e){return function(t){var n=this.__e;if(n){if(n=n[e],t[ue]==null)t[ue]=fe++;else if(t[ue]<this.__a[e])return;return n(O.event?O.event(t):t)}}}function C(e,t,n,r,i,a,s,c,l,p){var m,h,_,v,y,b,x,S,C,E,D,re,ie,ae,oe,se,ce,le,ue=t.type;if(t.constructor!==me)return null;128&n.__u&&(l=32&n.__u,m=n.__c.__z)&&(t.__u|=l,h=a=[],m.nodeType==8?c=w(m,a):a.push(m),c=a[0]||c),(m=O.__b)&&m(t);n:if(typeof ue==`function`){_=s.length;try{if(S=t.props,C=(m=ue.prototype)&&m.render,E=(m=ue.contextType)&&r[m.__c],D=m?E?E.props.value:m.__:r,(v=n.__c)?(t.__c=v,2&v.__g&&(v.__g|=1)):(C?t.__c=v=new ue(S,D):(t.__c=v=new d(S,D),v.constructor=ue,v.render=ne),E&&E.sub(v),v.state||(v.state={}),v.__n=r,v.__g|=8,v.__h=[],v.__k=[]),C&&(v.__s||(v.__s=v.state),ue.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=be({},v.__s)),be(v.__s,ue.getDerivedStateFromProps(S,v.__s)))),y=v.props,b=v.state,v.__v=t,n.__c){if(S!==y&&C&&!ue.getDerivedStateFromProps&&v.componentWillReceiveProps&&v.componentWillReceiveProps(S,D),t.__v==n.__v&&!(8&v.__g)||!(4&v.__g)&&v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(S,v.__s,D)){t.__v!=n.__v&&(v.props=S,v.state=v.__s,v.__g&=-9),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),ge.push.apply(v.__h,v.__k),v.__k=[],v.__h.length&&s.push(v),c=f(n);break n}v.componentWillUpdate&&v.componentWillUpdate(S,v.__s,D),C&&v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(y,b,x)})}else C&&!ue.getDerivedStateFromProps&&v.componentWillMount&&v.componentWillMount(),C&&v.componentDidMount&&v.__h.push(v.componentDidMount);if(v.context=D,v.props=S,v.__P=e,v.__g&=-5,re=O.__r,ie=0,C)v.state=v.__s,v.__g&=-9,re&&re(t),m=v.render(v.props,v.state,v.context),ge.push.apply(v.__h,v.__k),v.__k=[];else do v.__g&=-9,re&&re(t),m=v.render(v.props,v.state,v.context),v.state=v.__s;while(8&v.__g&&++ie<25);v.state=v.__s,v.getChildContext&&(r=be({},r,v.getChildContext())),C&&n.__c&&v.getSnapshotBeforeUpdate&&(x=v.getSnapshotBeforeUpdate(y,b)),ae=m&&m.type===u&&m.key==null?m.props.children:m,S.__P&&(m=c,i=(e=S.__P).namespaceURI,l=a=null,n.props&&n.props.__P!=e&&(n.__k.some(function(e){e&&te(e,e)}),n.__k=null),c=n.__k?f(n,0):null),c=g(e,ve(ae)?ae:[ae],t,n,r,i,a,s,c,l,p),S.__P&&(t.__e=null,c=m),t.__u&=-161,h&&h.some(o),v.__h.length&&s.push(v),1&v.__g&&(v.__g&=-4)}catch(e){if(s.length=_,t.__v=null,l||a){if(e.then){if(oe=0,t.__u|=128|l,a){for(~(ce=a.indexOf(c||void 0))||(ce=a.length);(le=a[ce-1])&&le.nodeType==8;)ce--;for(;ce<a.length;ce++)if(le=a[ce]){if(a[ce]=null,le.nodeType==8){if(le.data.startsWith(`$s`))oe++||(se=le);else if(oe&&le.data.startsWith(`/$s`)&&!--oe)break}else if(!oe)break}}if(!se){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;se=c}(m=w(se=t.__c.__z||(t.__c.__z=se)))?(t.__e=se,c=m):t.__e=c,c&&=c.nextSibling}else a&&a.some(o)}else t.__e=n.__e;t.__k||=n.__k||[],e.then||T(t),O.__e(e,t,n)}}else c=t.__e=ee(n.__e,t,n,r,i,a,s,l,p,e);return(m=O.diffed)&&m(t),c}function w(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function T(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(T))}function E(e,t,n){for(var r=0;r<n.length;)D(n[r++],n[r++],n[r++]);O.__c&&O.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){O.__e(e,t.__v)}})}function ee(e,t,n,r,i,a,s,c,l,u){var d,p,m,h,_,v,y,b,S,C=n.props||he,w=t.props,T=t.type;if(T==`svg`?i=`http://www.w3.org/2000/svg`:T==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a){for(d=0;d<a.length;d++)if((_=a[d])&&(T?_.localName==T:_.nodeType==3)){e=_,a[d]=null;break}}if(!e){if(b=u.ownerDocument||document,!T)return b.createTextNode(w);e=b.createElementNS(i,T,w.is&&w),c&&=(O.__m&&O.__m(t,a),!1),a=null}if(T){if(u=T==`template`&&e.content||e,a=T==`textarea`&&w.defaultValue!=null?null:a&&ye.call(u.childNodes),!c&&a)for(C={},d=0;d<e.attributes.length;d++)C[(_=e.attributes[d]).name]=_.value;for(d in C)_=C[d],d==`dangerouslySetInnerHTML`?m=_:d==`children`||d in w||d==`value`&&`defaultValue`in w||d==`checked`&&`defaultChecked`in w||x(e,d,null,_,i);for(d in S=1&n.__u,w)_=w[d],d==`children`?h=_:d==`dangerouslySetInnerHTML`?p=_:d==`value`?v=_:d==`checked`?y=_:c&&typeof _!=`function`||!(C[d]!==_||S&&_!=null)||x(e,d,_,C[d],i);p?(c||m&&(p.__html==m.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[]):(m&&(e.textContent=``),(T==`foreignObject`||i==`http://www.w3.org/1998/Math/MathML`&&_e.test(T))&&(i=`http://www.w3.org/1999/xhtml`),g(u,ve(h)?h:[h],t,n,r,i,a,s,a?a[0]:n.__k&&f(n,0),c,l),a&&a.some(o)),c&&T!=`textarea`||(d=`value`,T==`progress`&&v==null?e.removeAttribute(d):v==null||v===e[d]&&(T!=`progress`||v)||x(e,d,v,C[d],i),d=`checked`,y!=null&&y!=e[d]&&x(e,d,y,C[d],i))}else C===w||c&&e.data==w||(e.data=w);return e}function D(e,t,n,r){try{typeof e==`function`?t?t.__x=e(t)||1:(r&&=r.__c||r.__e)&&(t=r.__x)&&(r.__x=null,typeof t==`function`?t():e(null)):e.current=t}catch(e){O.__e(e,n)}}function te(e,t,n){var r,i,a,s;if(O.unmount&&O.unmount(e),!(r=e.ref)||r.current&&r.current!=e.__e||D(r,null,t,e),r=e.__c){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){O.__e(e,t)}r.__P=r.__n=null}if(r=e.__k)for(s=0;s<r.length;s++)r[s]&&te(r[s],t,typeof e.type!=`function`||n&&!e.props.__P);!n&&(r=e.__c)&&(r=r.__z)&&(i=w(r,a=[]))&&(r==e.__e&&a.some(o),o(i),o(r)),(r=e.__e)&&(n||o(r),r.__e&&(r.__e=null)),e.__e=e.__c=e.__=null}function ne(e,t,n){return this.constructor(e,n)}function re(e,t){var n,r,i,a;O.__&&O.__(e,t),t.nodeType==9&&(t=t.documentElement),r=(n=e&&32&e.__u)?null:t.__k,t.__k=c(u,{children:[e]}),i=[],a=[],C(t,t.__k,r||he,he,t.namespaceURI,r?null:t.firstChild?ye.call(t.childNodes):null,i,r?r.__e:t.firstChild,n,a),E(i,t.__k,a),t.__k.props.children=null}var O,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe=t((()=>{me=Symbol.for(`pv`),he={},ge=[],_e=/^m(i|n|o|s|text|space)$/,ve=Array.isArray,ye=ge.slice,be=Object.assign,O={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((o=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=1),o&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw ce=0,e}},ie=0,ae=function(e){return e!=null&&e.constructor===me},d.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=be({},this.state)),typeof e==`function`&&(e=e(be({},n),this.props)),e&&(be(n,e),this.__v&&(t&&this.__k.push(t),m(this)))},d.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),m(this))},d.prototype.render=u,oe=[],ce=0,le=function(e,t){return e.__v.__b-t.__v.__b},ue=Symbol(),de=/(PointerCapture)$|Capture$/i,fe=0,pe={}}));function Se(e,t){A.__h&&A.__h(k,e,Le||t),Le=0;var n=k.__H||(k.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Ce(e){return Le=1,we(Me,e)}function we(e,t,n){var r=Se(Ne++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Me(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);Ie(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=k,!k.__f)){k.__f=!0;var i=k.shouldComponentUpdate;k.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,Ie(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function Te(e,t){var n=Se(Ne++,7);return je(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function Ee(){var e;do{for(;e=ze.shift();)try{ke(e)}catch(t){A.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=Re.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ke),t.__h.some(Ae),t.__h=[]}catch(n){t.__h=[],A.__e(n,e.__v)}}}while(ze.length)}function De(e){var t,n=function(){clearTimeout(r),Ke&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ke&&(t=requestAnimationFrame(n))}function Oe(e){e!=1&&Fe==A.requestAnimationFrame||((Fe=A.requestAnimationFrame)||De)(Ee)}function ke(e){var t=k,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),k=t}function Ae(e){var t=k;e.__c=e.__(),k=t}function je(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!Ie(t,e[n])})}function Me(e,t){return typeof t==`function`?t(e):t}var Ne,k,Pe,Fe,Ie,Le,Re,ze,A,Be,Ve,He,Ue,We,Ge,Ke,qe=t((()=>{xe(),Ie=Object.is,Le=0,Re=[],ze=[],A=O,Be=A.__b,Ve=A.__r,He=A.diffed,Ue=A.__c,We=A.unmount,Ge=A.__,A.__b=function(e){k=null,Be&&Be(e)},A.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ge&&Ge(e,t)},A.__r=function(e){Ve&&Ve(e),Ne=0;var t=(k=e.__c).__H;t&&(Pe==k?k.__h=[]:(t.__h.some(ke),t.__h.some(Ae),Ne=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),Pe=k},A.diffed=function(e){He&&He(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&Oe(Re.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),Pe=k=null},A.__c=function(e,t){t.some(function(e){try{e.__h.some(ke),e.__h=e.__h.filter(function(e){return!e.__||Ae(e)})}catch(t){e.__h=[function(){throw t}]}}),Ue&&Ue(e,t)},A.unmount=function(e){We&&We(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n&&=n.__c}r.__P=n,Oe(ze.push(r))}else ke(r)}catch(e){t=e}}),r.__H=void 0,t&&A.__e(t,r.__v))},Ke=typeof requestAnimationFrame==`function`}));function Je(){if(pt>1)pt--;else{var e,t=!1;for((function(){var e=_t;for(_t=void 0;e!==void 0;){var t=e.S;if(t.v===e.v)for(var n=t.t;n!==void 0;n=n.x)n.i===e.i&&(n.i=t.i);e=e.o}})();ft!==void 0;){var n=ft;for(ft=void 0,mt++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&et(n))try{n.c()}catch(n){t||=(e=n,!0)}n=r}}if(mt=0,pt--,t)throw e}}function Ye(e){if(pt>0)return e();gt=++ht,pt++;try{return e()}finally{Je()}}function Xe(e){var t=j,n=dt;j=void 0,dt=void 0;try{return e()}finally{j=t,dt=n}}function Ze(e){if(j!==void 0){var t=e.n;if(t===void 0||t.t!==j)return t={i:0,S:e,p:j.s,n:void 0,t:j,e:void 0,x:void 0,r:t},j.s!==void 0&&(j.s.n=t),j.s=t,e.n=t,32&j.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=j.s,t.n=void 0,j.s.n=t,j.s=t),t}}function Qe(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=t?.watched,this.Z=t?.unwatched,this.name=t?.name}function $e(e,t){return new Qe(e,t)}function et(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function tt(e){for(var t=e.s;t!==void 0;t=t.n){var n=t.S.n;if(n!==void 0&&(t.r=n),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function nt(e){for(var t=e.s,n=void 0;t!==void 0;){var r=t.p;t.i===-1?(t.S.U(t),r!==void 0&&(r.n=t.n),t.n!==void 0&&(t.n.p=r)):n=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=r}e.s=n}function rt(e,t){Qe.call(this,void 0,t),this.x=e,this.s=void 0,this.g=vt-1,this.f=4}function it(e,t){return new rt(e,t)}function at(e){var t=e.j;if(e.j=void 0,typeof t==`function`){pt++;var n=j;j=void 0;try{t()}catch(t){throw e.f&=-2,e.f|=8,ot(e),t}finally{j=n,Je()}}}function ot(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,at(e)}function st(e){if(j!==this)throw Error(`Out-of-order effect`);nt(this),j=e,this.f&=-2;try{8&this.f&&ot(this)}finally{Je()}}function ct(e,t){this.x=e,this.j=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=t?.name,dt&&dt.push(this)}function lt(e,t){var n=new ct(e,t);try{n.c()}catch(e){throw n.d(),e}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var ut,dt,j,ft,pt,mt,ht,gt,_t,vt,yt=t((()=>{ut=Symbol.for(`preact-signals`),j=void 0,ft=void 0,pt=0,mt=0,ht=0,gt=0,_t=void 0,vt=0,Qe.prototype.brand=ut,Qe.prototype.h=function(){return!0},Qe.prototype.S=function(e){var t=this,n=this.t;n!==e&&e.e===void 0&&(e.x=n,this.t=e,n===void 0?Xe(function(){var e;(e=t.W)==null||e.call(t)}):n.e=e)},Qe.prototype.U=function(e){var t=this;if(this.t!==void 0){var n=e.e,r=e.x;n!==void 0&&(n.x=r,e.e=void 0),r!==void 0&&(r.e=n,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&Xe(function(){var e;(e=t.Z)==null||e.call(t)}))}},Qe.prototype.subscribe=function(e){var t=this;return lt(function(){var n=t.value;Xe(function(){return e(n)})},{name:`sub`})},Qe.prototype.valueOf=function(){return this.value},Qe.prototype.toString=function(){return this.value+``},Qe.prototype.toJSON=function(){return this.value},Qe.prototype.peek=function(){var e=this;return Xe(function(){return e.value})},Object.defineProperty(Qe.prototype,"value",{get:function(){var e=Ze(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(mt>100)throw Error(`Cycle detected`);(function(e){pt!==0&&mt===0&&e.l!==gt&&(e.l=gt,_t={S:e,v:e.v,i:e.i,o:_t})})(this),this.v=e,this.i++,vt++,pt++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{Je()}}}}),rt.prototype=new Qe,rt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===vt))return!0;if(this.g=vt,this.f|=1,this.i>0&&!et(this))return this.f&=-2,!0;var e=j;try{tt(this),j=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return j=e,nt(this),this.f&=-2,!0},rt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}Qe.prototype.S.call(this,e)},rt.prototype.U=function(e){if(this.t!==void 0&&(Qe.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}},rt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}},Object.defineProperty(rt.prototype,"value",{get:function(){if(1&this.f)throw Error(`Cycle detected`);var e=Ze(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}}),ct.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t==`function`&&(this.j=t)}finally{e()}},ct.prototype.S=function(){if(1&this.f)throw Error(`Cycle detected`);this.f|=1,this.f&=-9,at(this),tt(this),pt++;var e=j;return j=this,st.bind(this,e)},ct.prototype.N=function(){2&this.f||(this.f|=2,this.u=ft,ft=this)},ct.prototype.d=function(){this.f|=8,1&this.f||ot(this)},ct.prototype.dispose=function(){this.d()}}));function bt(e,t){O[e]=t.bind(null,O[e]||function(){})}function xt(e){if(Ot){var t=Ot;Ot=void 0,t()}Ot=e&&e.S()}function St(e){var t=this,n=e.data,r=wt(n);r.name=`ReactiveDom`,r.value=n;var i=Te(function(){for(var e=t,n=t.__v;n=n.__;)if(n.__c){n.__c.__$f|=4;break}var i=it(function(){var e=r.value.value;return e===0?0:!0===e?``:e||``}),a=it(function(){return!Array.isArray(i.value)&&!ae(i.value)}),o=lt(function(){if(this.N=Et,a.value){var t=i.value;e.__v&&e.__v.__e&&e.__v.__e.nodeType===3&&(e.__v.__e.data=t)}}),s=t.__$u.d;return t.__$u.d=function(){o(),s.call(this)},[a,i]},[]),a=i[0],o=i[1];return a.value?o.peek():o.value}function Ct(e,t,n,r){var i=t in e&&e.ownerSVGElement===void 0,a=$e(n);return{o:function(e,t){a.value=e,r=t},d:lt(function(){this.N=Et;var n=a.value.value;r[t]!==n&&(r[t]=n,i?e[t]=n:n!=null&&(!1!==n||t[4]===`-`)?e.setAttribute(t,n):e.removeAttribute(t))})}}function wt(e,t){return Te(function(){return $e(e,t)},[])}function Tt(){Ye(function(){for(var e;e=At.shift();)Dt.call(e)})}function Et(){At.push(this)===1&&(O.requestAnimationFrame||jt)(Tt)}var Dt,Ot,kt,At,jt,Mt=t((()=>{xe(),qe(),yt(),kt=typeof window<`u`&&!!window.__PREACT_SIGNALS_DEVTOOLS__,At=[],lt(function(){Dt=this.N})(),St.displayName=`ReactiveTextNode`,Object.defineProperties(Qe.prototype,{constructor:{configurable:!0,value:s(u,null).constructor},type:{configurable:!0,value:St},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}}),bt(`__b`,function(e,t){if(xt(),typeof t.type==`string`){var n,r=t.props;for(var i in r)if(i!==`children`){var a=r[i];a instanceof Qe&&(n||(t.__np=n={}),n[i]=a,r[i]=a.peek())}}e(t)}),bt(`__r`,function(e,t){if(e(t),t.type!==u){xt();var n,r=t.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=function(e,t){var n;return lt(function(){n=this},{name:t}),n.c=e,n}(function(e){return function(){var t;kt&&((t=this.y)==null||t.call(this)),e.__$f|=1,e.setState({})}}(r),typeof t.type==`function`?t.type.displayName||t.type.name:``))),xt(n)}}),bt(`__e`,function(e,t,n,r){xt(),e(t,n,r)}),bt(`diffed`,function(e,t){xt();var n;if(typeof t.type==`string`&&(n=t.__e)){var r=t.__np,i=t.props,a=n.U;if(a)for(var o in a){var s=a[o];s===void 0||r&&o in r||(s.d(),a[o]=void 0)}if(r)for(var c in a||(a={},n.U=a),r){var l=a[c],u=r[c];l===void 0?(l=Ct(n,c,u,i),a[c]=l):l.o(u,i)}}e(t)}),bt(`unmount`,function(e,t){if(typeof t.type==`string`){var n=t.__e;if(n){var r=n.U;if(r)for(var i in n.U=void 0,r){var a=r[i];a&&a.d()}}var o=t.__np;if(o){var s=t.props;for(var c in o)s[c]=o[c]}t.__np=void 0}else{var l=t.__c;if(l){l.__$f|=8;var u=l.__$u;u&&(l.__$u=void 0,u.d())}}e(t)}),bt(`__h`,function(e,t,n,r){r<3&&(t.__$f|=2),e(t,n,r)}),d.prototype.shouldComponentUpdate=function(e,t){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in t)return!0;if(this.__f||typeof this.u==`boolean`&&!0===this.u){var a=2&this.__$f;if(!(r||a||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var o in e)if(o!==`__source`&&e[o]!==this.props[o])return!0;for(var s in this.props)if(!(s in e))return!0;return!1},jt=function(e){queueMicrotask(function(){queueMicrotask(e)})}})),M,Nt,Pt,Ft,It=t((()=>{M={INVALID_PDF:`INVALID_PDF`,PDF_PASSWORD_REQUIRED:`PDF_PASSWORD_REQUIRED`,PDF_LOAD_FAILED:`PDF_LOAD_FAILED`,CLIENT_KEY_REQUIRED:`CLIENT_KEY_REQUIRED`,CAMERA_INTERRUPTED:`CAMERA_INTERRUPTED`,CAMERA_NOT_FOUND:`CAMERA_NOT_FOUND`,CAMERA_PERMISSION_DENIED:`CAMERA_PERMISSION_DENIED`,CAMERA_UNAVAILABLE:`CAMERA_UNAVAILABLE`,CAMERA_UNSUPPORTED:`CAMERA_UNSUPPORTED`,CAPTURES_INCOMPLETE:`CAPTURES_INCOMPLETE`,DOCUMENT_BACK_CONTAINS_FACE:`DOCUMENT_BACK_CONTAINS_FACE`,DOCUMENT_BACK_NOT_DISTINCT:`DOCUMENT_BACK_NOT_DISTINCT`,DOCUMENT_BACK_REQUIRED:`DOCUMENT_BACK_REQUIRED`,DOCUMENT_BLURRY:`DOCUMENT_BLURRY`,DOCUMENT_FACE_GEOMETRY_INVALID:`DOCUMENT_FACE_GEOMETRY_INVALID`,DOCUMENT_FACE_NOT_CONTAINED:`DOCUMENT_FACE_NOT_CONTAINED`,DOCUMENT_FACE_NOT_FOUND:`DOCUMENT_FACE_NOT_FOUND`,DOCUMENT_NOT_FOUND:`DOCUMENT_NOT_FOUND`,DOCUMENT_NOT_RECOGNIZED:`DOCUMENT_NOT_RECOGNIZED`,DOCUMENT_TEXT_ALIGNMENT_INVALID:`DOCUMENT_TEXT_ALIGNMENT_INVALID`,DOCUMENT_TEXT_NOT_READABLE:`DOCUMENT_TEXT_NOT_READABLE`,DOCUMENT_VALIDATION_FAILED:`DOCUMENT_VALIDATION_FAILED`,FACEKEY_TOKEN_INVALID:`FACEKEY_TOKEN_INVALID`,FACEGATE_TOKEN_INVALID:`FACEGATE_TOKEN_INVALID`,FACEGATE_ABORTED:`FACEGATE_ABORTED`,FACEGATE_TIMEOUT:`FACEGATE_TIMEOUT`,FACE_NOT_FOUND:`FACE_NOT_FOUND`,FACE_MISMATCH:`FACE_MISMATCH`,FACE_NOT_USABLE:`FACE_NOT_USABLE`,IMAGE_ENCODE_FAILED:`IMAGE_ENCODE_FAILED`,IMAGE_PROCESSING_FAILED:`IMAGE_PROCESSING_FAILED`,INVALID_IMAGE:`INVALID_IMAGE`,INVALID_MODEL_OUTPUT:`INVALID_MODEL_OUTPUT`,INVALID_OPTIONS:`INVALID_OPTIONS`,INVALID_POSES:`INVALID_POSES`,INVALID_CLIENT_KEY:`INVALID_CLIENT_KEY`,INVALID_SERVICE_RESPONSE:`INVALID_SERVICE_RESPONSE`,MODEL_LOAD_FAILED:`MODEL_LOAD_FAILED`,NETWORK_ERROR:`NETWORK_ERROR`,REQUEST_TOO_LARGE:`REQUEST_TOO_LARGE`,NO_USABLE_CANDIDATES:`NO_USABLE_CANDIDATES`,NO_USABLE_REFERENCES:`NO_USABLE_REFERENCES`,POSE_BACKGROUND_MISMATCH:`POSE_BACKGROUND_MISMATCH`,POSE_IDENTITY_MISMATCH:`POSE_IDENTITY_MISMATCH`,SERVICE_UNAVAILABLE:`SERVICE_UNAVAILABLE`,SDK_NOT_READY:`SDK_NOT_READY`,SDK_CAPABILITY_NOT_CONFIGURED:`SDK_CAPABILITY_NOT_CONFIGURED`,UI_ELEMENT_NOT_FOUND:`UI_ELEMENT_NOT_FOUND`,VERIFICATION_CANCELLED:`VERIFICATION_CANCELLED`,VERIFICATION_SAVE_FAILED:`VERIFICATION_SAVE_FAILED`},Nt=new Set(Object.values(M)),Pt=e=>typeof e==`string`&&Nt.has(e),Ft=({error:e,fallback:t=M.INVALID_SERVICE_RESPONSE})=>typeof e==`object`&&e&&`code`in e&&Pt(e.code)?e.code:e instanceof Error&&Pt(e.message)?e.message:Pt(e)?e:t})),Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt=t((()=>{a(),It(),Lt=[`ar`,`ch`,`de`,`en`,`es`,`fr`,`it`,`ja`,`pt`,`ru`,`zh`],Rt=new Map,zt=new Map,Bt=async({language:e})=>{if(Rt.has(e))return;let t=zt.get(e);t||(t=fetch(i({filename:`locales/${e}.json`})).then(async e=>{if(!e.ok)throw Error(M.INVALID_SERVICE_RESPONSE);return await e.json()}),zt.set(e,t));try{Rt.set(e,await t)}finally{zt.delete(e)}},Vt=async({language:e})=>{let t=e??Ht();await Promise.all([Bt({language:t}),...t===`en`?[]:[Bt({language:`en`})]])},Ht=()=>{let e=[navigator.language,...navigator.languages];for(let t of e){let e=t.toLowerCase();if(/^zh-(hk|mo|tw)\b/u.test(e))return`ch`;let n=e.split(`-`)[0];if(Lt.includes(n))return n}return`en`},Ut={[M.CAMERA_PERMISSION_DENIED]:`cameraPermissionDenied`,[M.CAMERA_NOT_FOUND]:`cameraNotFound`,[M.CAMERA_UNAVAILABLE]:`cameraUnavailable`,[M.CAMERA_UNSUPPORTED]:`cameraUnavailable`,[M.CAMERA_INTERRUPTED]:`cameraUnavailable`,[M.NETWORK_ERROR]:`networkError`,[M.SERVICE_UNAVAILABLE]:`serviceUnavailable`,[M.MODEL_LOAD_FAILED]:`modelLoadFailed`,[M.FACE_NOT_FOUND]:`faceNotFound`,[M.NO_USABLE_CANDIDATES]:`faceNotFound`,[M.FACE_NOT_USABLE]:`faceNotUsable`,[M.NO_USABLE_REFERENCES]:`faceNotUsable`,[M.DOCUMENT_NOT_FOUND]:`frameDocument`,[M.DOCUMENT_NOT_RECOGNIZED]:`invalidDocument`,[M.DOCUMENT_TEXT_NOT_READABLE]:`documentNotReadable`,[M.DOCUMENT_BLURRY]:`documentBlurry`,[M.DOCUMENT_FACE_NOT_FOUND]:`faceNotVisibleInDocument`,[M.DOCUMENT_FACE_NOT_CONTAINED]:`documentAlignmentInvalid`,[M.DOCUMENT_FACE_GEOMETRY_INVALID]:`documentAlignmentInvalid`,[M.DOCUMENT_TEXT_ALIGNMENT_INVALID]:`documentAlignmentInvalid`,[M.DOCUMENT_BACK_REQUIRED]:`frameDocumentBack`,[M.CAPTURES_INCOMPLETE]:`capturesIncomplete`,[M.DOCUMENT_VALIDATION_FAILED]:`documentValidationFailed`,[M.INVALID_OPTIONS]:`invalidOptions`,[M.INVALID_POSES]:`invalidPoses`,[M.INVALID_SERVICE_RESPONSE]:`invalidServiceResponse`,[M.POSE_BACKGROUND_MISMATCH]:`poseBackgroundMismatch`,[M.POSE_IDENTITY_MISMATCH]:`poseIdentityMismatch`,[M.IMAGE_ENCODE_FAILED]:`imageEncodeFailed`,[M.IMAGE_PROCESSING_FAILED]:`imageProcessingFailed`,[M.INVALID_IMAGE]:`invalidImage`,[M.INVALID_PDF]:`invalidPdf`,[M.PDF_PASSWORD_REQUIRED]:`pdfPasswordRequired`,[M.PDF_LOAD_FAILED]:`pdfLoadFailed`,[M.CLIENT_KEY_REQUIRED]:`clientKeyRequired`,[M.VERIFICATION_SAVE_FAILED]:`verificationSaveFailed`,[M.FACEGATE_ABORTED]:`verificationCancelled`,[M.VERIFICATION_CANCELLED]:`verificationCancelled`},Wt=({language:e})=>{let t=e??Ht(),n=e=>{let n=Rt.get(t),r=Rt.get(`en`);return n?.[e]??r?.[e]??e};return{translate:n,translateError:({error:e})=>{let t=Ft({error:e}),r=Ut[t]??`verificationFailed`;return n(r)}}},Gt=async({milliseconds:e})=>{let t=Promise.withResolvers();setTimeout(()=>t.resolve(),e),await t.promise}})),qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on=t((()=>{It(),qt=new WeakMap,Jt=async({video:e,signal:t})=>{t?.throwIfAborted();let n=Promise.withResolvers(),r=e,i=qt.get(e)??new Set,a=null,o=null,s=!1,c=c=>{s||(s=!0,a!==null&&r.cancelVideoFrameCallback?.(a),o!==null&&cancelAnimationFrame(o),t?.removeEventListener(`abort`,u),i.delete(l),i.size||qt.delete(e),c?n.reject(c):n.resolve())},l=()=>c(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`)),u=()=>c(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`));i.add(l),qt.set(e,i),t?.addEventListener(`abort`,u,{once:!0}),r.requestVideoFrameCallback?a=r.requestVideoFrameCallback(()=>c()):o=requestAnimationFrame(()=>c()),await n.promise},Yt=()=>{let e=/Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent),t=navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1;return e||t},Xt=async()=>{let e=[],t=(t,n)=>{n||e.push(t)};if(t(`navigator.mediaDevices.getUserMedia`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.getUserMedia==`function`),t(`navigator.mediaDevices.enumerateDevices`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.enumerateDevices==`function`),t(`MediaStream`,typeof MediaStream<`u`),t(`MediaStreamTrack`,typeof MediaStreamTrack<`u`),t(`HTMLVideoElement`,typeof HTMLVideoElement<`u`),t(`createImageBitmap`,typeof createImageBitmap==`function`),t(`OffscreenCanvas`,typeof OffscreenCanvas<`u`),t(`OffscreenCanvas.getContext`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.getContext==`function`),t(`OffscreenCanvas.convertToBlob`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.convertToBlob==`function`),t(`WebAssembly`,typeof WebAssembly<`u`),t(`fetch`,typeof fetch==`function`),t(`Blob`,typeof Blob<`u`),t(`File`,typeof File<`u`),t(`URL.createObjectURL`,typeof URL.createObjectURL==`function`),t(`URL.revokeObjectURL`,typeof URL.revokeObjectURL==`function`),!e.includes(`OffscreenCanvas`)&&!e.includes(`OffscreenCanvas.getContext`)&&!e.includes(`OffscreenCanvas.convertToBlob`))try{let e=new OffscreenCanvas(1,1),n=e.getContext(`2d`);if(t(`OffscreenCanvas 2D context`,n!==null),n&&typeof createImageBitmap==`function`){let n=await e.convertToBlob({type:`image/jpeg`});t(`JPEG encoding`,n.type===`image/jpeg`),n.type===`image/jpeg`&&((await createImageBitmap(n)).close(),t(`JPEG decoding`,!0))}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}catch{e.includes(`JPEG encoding`)||t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1);return{supported:e.length===0,unsupportedFeatures:e}},Zt=({video:e})=>{for(let t of qt.get(e)??[])t();let t=e.srcObject;if(t instanceof MediaStream)for(let e of t.getTracks())e.stop();e.srcObject=null},Qt=async({facingMode:e,video:t,signal:n})=>{if(!navigator.mediaDevices||typeof navigator.mediaDevices.getUserMedia!=`function`)throw Error(M.CAMERA_UNSUPPORTED);let r={facingMode:{ideal:e}};Yt()||(r.width={ideal:1280},r.height={ideal:720});let i=()=>Zt({video:t});n?.addEventListener(`abort`,i,{once:!0});try{let i=await navigator.mediaDevices.getUserMedia({video:r,audio:!1});if(n?.aborted){for(let e of i.getTracks())e.stop();n.throwIfAborted()}t.srcObject=i;let a=(await navigator.mediaDevices.enumerateDevices()).filter(({kind:e})=>e===`videoinput`).length>1?e:`user`;return await t.play(),n?.throwIfAborted(),a}catch(e){if(Zt({video:t}),n?.aborted)throw new DOMException(M.VERIFICATION_CANCELLED,`AbortError`);let r=e instanceof Error?e.name:``,i=M.CAMERA_UNAVAILABLE;throw(r===`NotAllowedError`||r===`SecurityError`)&&(i=M.CAMERA_PERMISSION_DENIED),r===`NotFoundError`&&(i=M.CAMERA_NOT_FOUND),r===`AbortError`&&(i=M.CAMERA_INTERRUPTED),Error(i,{cause:e})}finally{n?.removeEventListener(`abort`,i)}},$t=({element:e})=>{let t=e.getContext(`2d`);if(!t)throw Error(M.IMAGE_PROCESSING_FAILED);t.clearRect(0,0,e.width,e.height)},en=async({canvas:e,quality:t})=>{try{let n=await e.convertToBlob({type:`image/jpeg`,quality:t});if(n.type!==`image/jpeg`)throw Error(M.IMAGE_ENCODE_FAILED);return n}catch(e){throw Error(M.IMAGE_ENCODE_FAILED,{cause:e})}},tn=async({frame:e})=>{let t=new OffscreenCanvas(e.width,e.height),n=t.getContext(`2d`);if(!n)throw Error(M.IMAGE_PROCESSING_FAILED);return n.drawImage(e,0,0),await en({canvas:t})},nn=async({blob:e})=>{let t;try{t=await createImageBitmap(e)}catch(e){throw Error(M.INVALID_IMAGE,{cause:e})}try{let e=Math.min(1,900/Math.max(t.width,t.height)),n=new OffscreenCanvas(Math.max(1,Math.round(t.width*e)),Math.max(1,Math.round(t.height*e))),r=n.getContext(`2d`);if(!r)throw Error(M.IMAGE_PROCESSING_FAILED);return r.drawImage(t,0,0,n.width,n.height),await en({canvas:n,quality:.85})}finally{t.close()}},rn=async({frame:e})=>{let t=Math.min(1,960/Math.max(e.width,e.height)),n=Math.max(1,Math.round(e.width*t)),r=Math.max(1,Math.round(e.height*t));return await createImageBitmap(e,{resizeWidth:n,resizeHeight:r})},an=async({image:e})=>{let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return`data:image/jpeg;base64,${btoa(n)}`}}));function sn(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function cn(e,t=`|`){return e.map(e=>kn(e)).join(t)}function ln(e,t){return typeof t==`bigint`?t.toString():t}function un(e){return new ar(e)}function dn(e){return e==null}function fn(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function pn(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function mn(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function hn(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function gn(e){return hn(e._zod.def)??e._zod.def.shape}function _n(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return mn(this,t,e),e},enumerable:!0,configurable:!0})}function vn(e,t,n){t in e?mn(e,t,n):e[t]=n}function yn(e,t,n,r){let i=gn(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?_n(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):vn(e,a,r?r(n.value,a):n.value))}}function bn(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?_n(e,n,()=>t[n]):vn(e,n,r.value))}}function xn(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Sn(e){return JSON.stringify(e)}function Cn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}function wn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Tn(e){if(wn(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return wn(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function En(e){return Tn(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Dn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function On(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function N(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function kn(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function An(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}function jn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return yn(i,e,Mn(e,t)),On(e,xn(n,{shape:i,checks:[]}))}function Mn(e,t){let n=gn(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function Nn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(Mn(e,t)),a={};return yn(a,e,Reflect.ownKeys(gn(e)).filter(e=>!i.has(e))),On(e,xn(n,{shape:a,checks:[]}))}function Pn(e,t){if(!Tn(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=gn(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return On(e,xn(e._zod.def,{shape:Fn(e,t)}))}function Fn(e,t){let n={};return yn(n,e,Reflect.ownKeys(gn(e))),bn(n,t),n}function In(e,t){if(!Tn(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return On(e,xn(e._zod.def,{shape:Fn(e,t)}))}function Ln(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return yn(n,e,Reflect.ownKeys(gn(e))),yn(n,t,Reflect.ownKeys(gn(t))),On(e,xn(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Rn(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(Mn(t,n)):void 0,o={};return yn(o,t,Reflect.ownKeys(gn(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),On(t,xn(t._zod.def,{shape:o,checks:[]}))}function zn(e,t,n){let r=n?new Set(Mn(t,n)):void 0,i={};return yn(i,t,Reflect.ownKeys(gn(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),On(t,xn(t._zod.def,{shape:i}))}function Bn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Vn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function Hn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Un(e){return typeof e==`string`?e:e?.message}function Wn(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function Gn(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function Kn(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:Un(e.inst?._zod.def?.error?.(e))??Un(a?.(e))??Un(t?.error?.(e))??Un(n.customError?.(e))??Un(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}function qn(e){let t=e.length;if(!dr.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function Jn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Yn(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Xn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Zn(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):tr(e,n,r.value)}}function Qn(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function $n(e,t,n){return Qn(e,t,n,!1)}function er(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return Qn(this,n,r(this))},set(e){Qn(this,n,e)}})}return t}function tr(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:Qn(this,t,n.bind(this))},set(e){Qn(this,t,e)}})}function nr(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}function P(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&fr!==e._zod?fr=void 0:(fr=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,mr);let e=pr;pr=!1;try{let r=n(this);return pr?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),pr||=e,r}catch(n){throw delete this[t],pr||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function rr(e,t,n,r){let i=nr(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function ir(e){let t=()=>e;return t[hr]=!0,t}var ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr=t((()=>{Tr(),ar=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}},or=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{},sr=un(()=>{if(wr.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}}),cr=new Set([`string`,`number`,`symbol`]),lr={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ur={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]},dr=/[\uD800-\uDBFF]/,pr=!1,mr={configurable:!0,get(){pr=!0}},hr=`~constantCatch`}));function _r(e){let t=xr;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return xr=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function F(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){br.value=new a(r);try{Object.defineProperty(n,"_zod",br)}finally{br.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Zn(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?_r(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}function vr(e){return e&&Object.assign(wr,e),wr}var yr,br,xr,Sr,Cr,wr,Tr=t((()=>{gr(),br={value:void 0,enumerable:!1},xr=`captureStackTrace`in Error?Error:null,Sr=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Cr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},(yr=globalThis).__zod_globalConfig??(yr.__zod_globalConfig={}),wr=globalThis.__zod_globalConfig}));function Er(){let e=this._zod;return e.message??=JSON.stringify(e.def,ln,2),e.message}function Dr(e){this._zod.message=e}function Or(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function kr(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?Or(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Ar(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}var jr,Mr,Nr,Pr,Fr,Ir=t((()=>{Tr(),gr(),jr={get:Er,set:Dr,enumerable:!0,configurable:!0},Mr={value:void 0,enumerable:!1},Nr=new WeakSet([Object.prototype,Error.prototype]),Pr=(e,t)=>{e.name=`$ZodError`,Mr.value=t,Object.defineProperty(e,"issues",Mr),Mr.value=void 0,Object.defineProperty(e,"message",jr);let n=Object.getPrototypeOf(e);Nr.has(n)||(Nr.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Fr=F(`$ZodError`,Pr)}));function Lr(e,t){return{callee:t?.callee??e,Err:t?.Err}}function Rr(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>Kn(e,n,vr()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}function zr(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[Gr]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new Sr;return a.issues.length===0}var Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni=t((()=>{Tr(),gr(),Br=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Sr;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Kn(e,o,vr())));throw or(n,a?.callee??t),n}return s.value};return t},Vr=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>Kn(e,o,vr())));throw or(n,a?.callee??t),n}return s.value};return t},Hr=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Sr;return a.issues.length?Rr(e,a.issues,i):{success:!0,data:a.value}},Ur=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?Rr(e,a.issues,i):{success:!0,data:a.value}},Wr=Symbol.for(`zod.compile.invalid`),Gr=Symbol.for(`zod.compile.fallback`),Kr=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==Wr)return!0;if(r.definite===!0&&n===void 0)return!1}return zr(e,t,n)}),qr=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Jr=e=>{let t=Br(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,Lr(n,a))};return n},Yr=e=>{let t=Br(e),n=(e,r,i,a)=>t(e,r,i,Lr(n,a));return n},Xr=e=>{let t=Vr(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,Lr(n,a))};return n},Zr=e=>{let t=Vr(e),n=async(e,r,i,a)=>await t(e,r,i,Lr(n,a));return n},Qr=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Hr(e)(t,n,i)},$r=e=>(t,n,r)=>Hr(e)(t,n,r),ei=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Ur(e)(t,n,i)},ti=e=>async(t,n,r)=>Ur(e)(t,n,r)}));function ri(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}function ii(){return new RegExp(yi,`u`)}function ai(e){return RegExp(`^${e}$`)}function oi(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function si(e){return RegExp(`^${oi(e)}$`)}function ci(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${oi({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${oi({precision:e.precision})}`:n;return RegExp(`^${Oi}T(?:${r})$`)}var li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii=t((()=>{li=/^[cC][0-9a-z]{6,}$/,ui=/^[0-9a-z]+$/,di=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,fi=/^[0-9a-vA-V]{20}$/,pi=/^[A-Za-z0-9]{27}$/,mi=/^[a-zA-Z0-9_-]{21}$/,hi=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,gi=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,_i=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,vi=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,yi=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,bi=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xi=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Si=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ci=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wi=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ti=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Ei=/^https?$/,Di=/^\+[1-9]\d{6,14}$/,Oi=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,ki=ai(Oi),Ai=/^[\s\S]{0,}$/,ji=/^-?\d+$/,Mi=/^-?\d+(?:\.\d+)?$/,Ni=/^(?:true|false)$/i,Pi=/^[^A-Z]*$/,Fi=/^[^a-z]*$/})),Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta=t((()=>{Tr(),Ii(),gr(),Li=F(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ri=e=>{let t=e.value;return!dn(t)&&t.length!==void 0},zi={number:`number`,bigint:`bigint`,object:`date`},Bi=F(`$ZodCheckLessThan`,(e,t)=>{Li.init(e,t);let n=zi[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:zi[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Vi=F(`$ZodCheckGreaterThan`,(e,t)=>{Li.init(e,t);let n=zi[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:zi[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Hi=F(`$ZodCheckMultipleOf`,(e,t)=>{Li.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):pn(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ui=F(`$ZodCheckNumberFormat`,(e,t)=>{Li.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=lr[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Wi=F(`$ZodCheckMaxLength`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?qn(r):i)<=t.maximum)return;let a=Jn(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Gi=F(`$ZodCheckMinLength`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?qn(r):i)>=t.minimum)return;let a=Jn(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ki=F(`$ZodCheckLengthEquals`,(e,t)=>{var n;Li.init(e,t),(n=e._zod.def).when??(n.when=Ri),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?qn(r):i;if(a===t.length)return;let o=Jn(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),qi=F(`$ZodCheckStringFormat`,(e,t)=>{var n,r;Li.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ji=F(`$ZodCheckRegex`,(e,t)=>{qi.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Yi=F(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Pi,qi.init(e,t)}),Xi=F(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Fi,qi.init(e,t)}),Zi=F(`$ZodCheckIncludes`,(e,t)=>{Li.init(e,t);let n=Dn(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Qi=F(`$ZodCheckStartsWith`,(e,t)=>{Li.init(e,t);let n=RegExp(`^${Dn(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),$i=F(`$ZodCheckEndsWith`,(e,t)=>{Li.init(e,t);let n=RegExp(`.*${Dn(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),ea=F(`$ZodCheckOverwrite`,(e,t)=>{Li.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}})})),na,ra=t((()=>{na=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
3
3
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
4
4
  `)}\n};`)(...Object.values(this.closed))}}})),ia,aa=t((()=>{ia={major:4,minor:6,patch:7}}));async function oa(e,t){let n={async:!0};return Pa(await e._zod.run({value:t,issues:[]},n),n)}function sa(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Pa(r,n)}catch{}return oa(e,t)},vendor:`zod`,version:1}}function ca(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function la(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?ca(e)||2:ua(e,t)}function ua(e,t){if(!t.normalize&&t.protocol?.source===Ei.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}function da(e){return e.replace(za,``)}function fa(e,t){return t.lastIndex=0,t.test(e.hostname)}function pa(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}function ma(e){return $a.test(e)?ca(`http://[${e}]`):!1}function ha(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:ma(n)}function ga(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}function _a(e){if(!ao.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return ga(t.padEnd(Math.ceil(t.length/4)*4,`=`))}function va(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}function ya(e,t){let n=Wn(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of Wn(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,Gn(n.issues,t,e),n}}return i(n,a)}}function ba(e,t,n){e.issues.length&&t.issues.push(...Hn(n,e.issues)),t.value[n]=e.value}function xa(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...Hn(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}function Sa(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:_o,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=An(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function Ca(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(Bn(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>xa(e,n,i,t,d,f))):xa(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}function wa(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Bn(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Kn(e,r,vr())))}),t)}function Ta(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Tn(e)&&Tn(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Ta(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Ta(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ea(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Ta(t.value,n.value);if(!c.valid){if(Bn(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}function Da(e,t){return e.value=t.issues.length?void 0:t.value,e}function Oa(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function ka(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Aa(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>Kn(e,r,vr()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}function ja(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}function Ma(e){return e.memo||(e.value=Object.freeze(e.value)),e}function Na(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Xn(e))}}var I,Pa,Fa,L,Ia,La,Ra,za,Ba,Va,Ha,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,No,Po,Fo,Io=t((()=>{ta(),Tr(),ra(),Ii(),gr(),aa(),I=F(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ia;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=Bn(t),a;for(let o of n){if(o._zod.def.when){if(Vn(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new Sr;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(Gn(t.issues,n,e),i||=Bn(t,n))});else{if(t.issues.length===n)continue;Gn(t.issues,n,e),i||=Bn(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(Bn(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new Sr;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new Sr;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return $n(this,`~standard`,sa(this))},set"~standard"(e){Qn(this,`~standard`,e)}}),Pa=(e,t)=>e.issues.length?{issues:e.issues.map(e=>Kn(e,t,vr()))}:{value:e.value},Fa=F(`$ZodString`,(e,t)=>{I.init(e,t),e._zod.pattern=t.pattern??Ai,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),L=F(`$ZodStringFormat`,(e,t)=>{qi.init(e,t),Fa.init(e,t)}),Ia=F(`$ZodGUID`,(e,t)=>{t.pattern??=gi,L.init(e,t)}),La=F(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=_i(e)}else t.pattern??=_i();L.init(e,t)}),Ra=F(`$ZodEmail`,(e,t)=>{t.pattern??=vi,L.init(e,t)}),za=/[\t\n\r]/g,Ba=F(`$ZodURL`,(e,t)=>{L.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=la(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=da(r);return}t.hostname&&!fa(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!pa(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:da(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Va=F(`$ZodEmoji`,(e,t)=>{t.pattern??=ii(),L.init(e,t)}),Ha=F(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?mi:ri(t.length),L.init(e,t)}),Ua=F(`$ZodCUID`,(e,t)=>{t.pattern??=li,L.init(e,t)}),Wa=F(`$ZodCUID2`,(e,t)=>{t.pattern??=ui,L.init(e,t)}),Ga=F(`$ZodULID`,(e,t)=>{t.pattern??=di,L.init(e,t)}),Ka=F(`$ZodXID`,(e,t)=>{t.pattern??=fi,L.init(e,t)}),qa=F(`$ZodKSUID`,(e,t)=>{t.pattern??=pi,L.init(e,t)}),Ja=F(`$ZodISODateTime`,(e,t)=>{t.pattern??=ci(t),L.init(e,t)}),Ya=F(`$ZodISODate`,(e,t)=>{t.pattern??=ki,L.init(e,t)}),Xa=F(`$ZodISOTime`,(e,t)=>{t.pattern??=si(t),L.init(e,t)}),Za=F(`$ZodISODuration`,(e,t)=>{t.pattern??=hi,L.init(e,t)}),Qa=F(`$ZodIPv4`,(e,t)=>{t.pattern??=bi,L.init(e,t)}),$a=/^[0-9a-fA-F:.]+$/,eo=F(`$ZodIPv6`,(e,t)=>{t.pattern??=xi,L.init(e,t),e._zod.check=n=>{ma(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),to=F(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Si,L.init(e,t)}),no=F(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Ci,L.init(e,t),e._zod.check=n=>{ha(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}),ro=/^[0-9a-zA-Z+/]*={0,2}$/,io=F(`$ZodBase64`,(e,t)=>{t.pattern??=ro,L.init(e,t),e._zod.check=n=>{ga(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),ao=/^[A-Za-z0-9_-]*$/,oo=F(`$ZodBase64URL`,(e,t)=>{t.pattern??=ao,L.init(e,t),e._zod.check=n=>{_a(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),so=F(`$ZodE164`,(e,t)=>{t.pattern??=Di,L.init(e,t)}),co=F(`$ZodJWT`,(e,t)=>{L.init(e,t),e._zod.check=n=>{va(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),lo=F(`$ZodNumber`,(e,t)=>{I.init(e,t),e._zod.pattern=Mi,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),uo=F(`$ZodNumberFormat`,(e,t)=>{Ui.init(e,t),lo.init(e,t)}),fo=F(`$ZodBoolean`,(e,t)=>{I.init(e,t),e._zod.pattern=Ni,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),po=F(`$ZodUnknown`,(e,t)=>{I.init(e,t),e._zod.parse=e=>e}),mo=F(`$ZodNever`,(e,t)=>{I.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)}),ho=e=>Array.isArray(e)?e.length:-1,go=F(`$ZodArray`,(e,t)=>{I.init(e,t);let n=wr.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e<a.length;e++){let n=a[e],c=t.element._zod.run({value:n,issues:[]},i);if(c instanceof Promise)o.push(c.then(t=>ba(t,r,e)));else if(ba(c,r,e),s&&c.issues.length!==0&&Bn(c))break}return o.length?Promise.all(o).then(()=>r):r},ya(e,ho)}),_o=[],vo=F(`$ZodObject`,(e,t)=>{I.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=un(()=>Sa(t));P(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||mn(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=wn,o=t.catchall,s,c=wr.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(Bn(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>xa(n,t,e,r,a,o))):xa(s,t,e,r,a,o)}return o?Ca(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),yo=F(`$ZodObjectJIT`,(e,t)=>{vo.init(e,t);let n=e._zod.parse,r=un(()=>Sa(t)),i=wr.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new na([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
5
5
  let ${e}_ab = false;
@@ -57,8 +57,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
57
57
  `).replace(/[\t\f\v ]+/gu,` `).replace(/ *\n */gu,`
58
58
  `).trim(),Im=({pixels:e,runtime:t})=>{let n=Math.max(32,Math.ceil(e.width/32)*32),r=Math.max(32,Math.ceil(e.height/32)*32),i=new Float32Array(3*n*r),a=[.485,.456,.406],o=[.229,.224,.225];for(let e=0;e<3;e+=1)i.fill((1-(a[e]??0))/(o[e]??1),e*n*r,(e+1)*n*r);for(let t=0;t<e.height;t+=1)for(let s=0;s<e.width;s+=1){let c=(t*e.width+s)*4,l=t*n+s;for(let t=0;t<3;t+=1){let s=(e.data[c+t]??0)/255;i[t*n*r+l]=(s-(a[t]??0))/(o[t]??1)}}return{height:r,tensor:new t.Tensor(`float32`,i,[1,3,r,n]),width:n}},Lm=({height:e,scores:t,width:n})=>{let r=new Uint8Array(n*e),i=[],a=new Int32Array(n*e);for(let o=0;o<t.length;o+=1){if(r[o]||(t[o]??0)<Am)continue;let s=0,c=1,l=o%n,u=l,d=Math.floor(o/n),f=d,p=0,m=0;for(a[0]=o,r[o]=1;s<c;){let i=a[s]??0;s+=1;let o=i%n,h=Math.floor(i/n);l=Math.min(l,o),u=Math.max(u,o),d=Math.min(d,h),f=Math.max(f,h),p+=t[i]??0,m+=1;for(let i=-1;i<=1;i+=1)for(let s=-1;s<=1;s+=1){let l=o+s,u=h+i;if(l<0||l>=n||u<0||u>=e)continue;let d=u*n+l;r[d]||(t[d]??0)<Am||(r[d]=1,a[c]=d,c+=1)}}let h=u-l+1,g=f-d+1;if(m<Mm||h<Nm||g<Nm||p/m<jm)continue;let _=h*.25,v=g*.35;i.push({bottom:f+1+v,left:l-_,right:u+1+_,score:p/m,top:d-v})}return i},Rm=({boxes:e})=>e.sort((e,t)=>{let n=e.bottom-e.top,r=t.bottom-t.top,i=Math.max(n,r)*.6;return Math.abs(e.top-t.top)<=i?e.left-t.left:e.top-t.top}),zm=async({pixels:e,runtime:t,session:n})=>{let r=Im({pixels:e,runtime:t}),i=await Pm({session:n,tensor:r.tensor});try{let e=Number(i.dims.at(-2)),t=Number(i.dims.at(-1)),n=Lm({height:e,scores:i.data,width:t}),a=r.width/t,o=r.height/e,s=n.map(({bottom:e,left:t,right:n,top:r})=>({bottom:e*o,left:t*a,right:n*a,top:r*o}));return Rm({boxes:s})}finally{i.dispose()}},Bm=({pixels:e,runtime:t,model:n})=>{let r=n.recognitionHeight,i=Math.max(1,Math.round(e.width/e.height*r)),a=Math.max(32,Math.ceil(i/32)*32),o=wm({height:r,image:e,width:i}),s=new Float32Array(3*a*r);for(let e=0;e<r;e+=1)for(let t=0;t<i;t+=1){let c=(e*i+t)*4,l=e*a+t,u=o.data[c],d=o.data[c+1],f=o.data[c+2],p=u*.299+d*.587+f*.114;s[l]=((n.channels===`grayscale`?p:f)/255-.5)/.5,s[a*r+l]=((n.channels===`grayscale`?p:d)/255-.5)/.5,s[2*a*r+l]=((n.channels===`grayscale`?p:u)/255-.5)/.5}return new t.Tensor(`float32`,s,[1,3,r,a])},Vm=({text:e})=>{let t=[],n=``;for(let r of e)/[a-zA-Z0-9 :*./%+-]/u.test(r)?n+=r:(n&&t.push(n),t.push(r),n=``);return n&&t.push(n),t.reverse().join(``)},Hm=({dictionary:e,output:t,reverse:n})=>{let r=Number(t.dims.at(-1)),i=Number(t.dims.at(-2)),a=e[0]===``?[...e]:[``,...e];if(a.length===r-1&&a.push(` `),a.length!==r)throw Error(U.OCR_DICTIONARY_MISMATCH);let o=-1,s=``;for(let e=0;e<i;e+=1){let n=e*r,i=0,c=t.data[n]??-1/0;for(let e=1;e<r;e+=1){let r=t.data[n+e]??-1/0;r<=c||(i=e,c=r)}i!==0&&i!==o&&(s+=a[i]??``),o=i}let c=s.trim();return n?Vm({text:c}):c},Um=({lines:e})=>e.filter((t,n)=>{let r=t.box.width*t.box.height;return!e.some((e,i)=>{if(i===n||!e.text.endsWith(t.text))return!1;let a=e.box.width*e.box.height;if(a<r||e.text.length===t.text.length&&a===r&&i>n)return!1;let o=Math.max(0,Math.min(t.box.x+t.box.width,e.box.x+e.box.width)-Math.max(t.box.x,e.box.x)),s=Math.max(0,Math.min(t.box.y+t.box.height,e.box.y+e.box.height)-Math.max(t.box.y,e.box.y));return r>0&&o*s>=r*.95})}),Wm=async({adapter:e,model:t})=>{let[n,r,i]=await Promise.all([e.session(t.detection),e.session(t.recognition),e.load(t.dictionary)]),a=new TextDecoder().decode(i).replace(/\r/gu,``).split(`
59
59
  `);for(;a.at(-1)===``;)a.pop();return{model:t.id,assets:[t.detection,t.recognition,t.dictionary],recognize:async({image:i})=>{let o=await e.decode(i),s=await zm({pixels:o,runtime:e.runtime,session:n}),c=[];for(let n of s){let i=Cm({box:n,image:o}),s=Bm({pixels:i,runtime:e.runtime,model:t}),l=await Pm({session:r,tensor:s}),u;try{u=Hm({dictionary:a,output:l,reverse:t.reverseArabic})}finally{l.dispose()}if(!u)continue;let d={height:Math.max(0,Math.min(o.height,n.bottom)-Math.max(0,n.top)),width:Math.max(0,Math.min(o.width,n.right)-Math.max(0,n.left)),x:Math.max(0,n.left),y:Math.max(0,n.top)};c.push({angle:0,box:d,confidence:null,text:u,words:[{box:d,confidence:null,text:u}]})}let l=Um({lines:c}),u=Fm({text:l.map(e=>e.text).join(`
60
- `)});return{engine:t.id,height:o.height,lines:l,text:u,width:o.width}}}}})),Km,qm,Jm,Ym,Xm,Zm,Qm,$m=t((()=>{W(),Km=`odm.ort`,qm={tiny:{id:`tiny`,detection:`od.ort`,recognition:`or.ort`,dictionary:`ot.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},small:{id:`small`,detection:`ods.ort`,recognition:`ors.ort`,dictionary:`ots.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},japanese:{id:`japanese`,detection:Km,recognition:`orj.ort`,dictionary:`otj.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-simplified":{id:`chinese-simplified`,detection:Km,recognition:`orcs.ort`,dictionary:`otcs.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-traditional":{id:`chinese-traditional`,detection:Km,recognition:`orct.ort`,dictionary:`otct.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},cyrillic:{id:`cyrillic`,detection:Km,recognition:`orc.ort`,dictionary:`otc.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},arabic:{id:`arabic`,detection:Km,recognition:`ora.ort`,dictionary:`ota.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!0}},Jm={eng:`eng`,en:`eng`,english:`eng`,latin:`latin`,deu:`latin`,de:`latin`,fra:`latin`,fr:`latin`,ita:`latin`,it:`latin`,por:`latin`,pt:`latin`,spa:`latin`,es:`latin`,jpn:`jpn`,ja:`jpn`,japan:`jpn`,chi_sim:`chi_sim`,zh:`chi_sim`,"zh-cn":`chi_sim`,"zh-hans":`chi_sim`,chi_tra:`chi_tra`,ch:`chi_tra`,"zh-tw":`chi_tra`,"zh-hant":`chi_tra`,rus:`rus`,ru:`rus`,ara:`ara`,ar:`ara`},Ym=({language:e})=>{let t=Jm[e.trim().toLowerCase()];if(!t)throw Error(U.OCR_LANGUAGE_UNSUPPORTED);return t},Xm={eng:`tiny`,latin:`tiny`,jpn:`japanese`,chi_sim:`chinese-simplified`,chi_tra:`chinese-traditional`,rus:`cyrillic`,ara:`arabic`},Zm=({language:e,engine:t=`auto`})=>{let n=Ym({language:e}),r=t===`auto`?Xm[n]:t,i=qm[r];if(!i)throw Error(U.OCR_MODEL_UNSUPPORTED);return i},Qm=({language:e,engine:t})=>{let n=Zm({environment:`browser`,language:e,engine:t});return[n.detection,n.recognition,n.dictionary]}})),eh,th,nh=t((()=>{W(),Gm(),$m(),eh=({adapter:e,environment:t})=>{let n=new Map,r=async r=>{if(r.environment!==t)throw Error(U.OCR_ENVIRONMENT_MISMATCH);let i=Zm(r),a=n.get(i.id);a||(a=Wm({adapter:e,model:i}),n.set(i.id,a));try{return await a}catch(e){throw n.get(i.id)===a&&n.delete(i.id),e}};return{getOcr:r,ocr:async({image:e,language:n=`eng`,engine:i})=>await(await r({environment:t,language:n,engine:i})).recognize({image:e})}},th=async({cache:e,key:t,load:n})=>{let r=e.get(t);r||(r=n(),e.set(t,r));try{return await r}catch(n){throw e.get(t)===r&&e.delete(t),n}}})),rh,ih=t((()=>{rh={high:`fdh.ort`,standard:`fd.ort`,low:`fdl.ort`}})),ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh=t((()=>{W(),um(),Sm(),ih(),ah=new Map,oh=!1,ch=md,lh=()=>[`wasm`],uh=()=>globalThis.crossOriginIsolated&&!!globalThis.SharedArrayBuffer,dh=()=>Math.min(Math.max(Math.floor((navigator.hardwareConcurrency||1)/2),1),4),fh=()=>({inference:`CPU (WASM SIMD)`,isolation:globalThis.crossOriginIsolated?`cross origin isolated`:`not isolated`,models:`ORT fixed optimized`,threading:uh()?`multi thread (auto, up to ${dh()})`:`single thread`}),ph=async()=>(oh||=(ch.env.wasm.numThreads=+!uh(),ch.env.wasm.wasmPaths={mjs:bm({filename:`ort-wasm-simd-threaded.mjs`}),wasm:bm({filename:`ort-wasm-simd-threaded.wasm`})},!0),ch),mh=async({filename:e})=>{let t=ah.get(e);try{return t||(t=(async()=>{let t=await(await ph()).InferenceSession.create(bm({filename:e}),{executionProviders:lh(),extra:{session:{load_model_format:`ORT`}},graphOptimizationLevel:`disabled`});return{inputNames:t.inputNames,outputNames:t.outputNames,run:async e=>{let n=sh,r=Promise.withResolvers();sh=r.promise,await n;try{return await t.run(e)}finally{r.resolve(),sh===r.promise&&(sh=void 0)}}}})(),ah.set(e,t)),await t}catch(n){throw t&&ah.get(e)===t&&ah.delete(e),Error(U.MODEL_LOAD_FAILED,{cause:n})}}})),gh,_h=t((()=>{gh=({canvas:e})=>{e.width=1,e.height=1}})),vh,yh=t((()=>{W(),_h(),vh=({runtime:e})=>({frame:t,height:n=t.height,width:r=t.width,sourceRect:i})=>{let a=e.createCanvas(r,n);try{let e=a.getContext(`2d`,{willReadFrequently:!0});if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);return i?e.drawImage(t,i.x,i.y,i.width,i.height,0,0,r,n):e.drawImage(t,0,0,r,n),{data:e.getImageData(0,0,r,n).data,height:n,width:r}}finally{gh({canvas:a})}}})),bh,xh,Sh,Ch,wh=t((()=>{W(),um(),hh(),yh(),bh=md,xh=(async(...e)=>{try{return await createImageBitmap(...e)}catch(e){throw Error(U.IMAGE_DECODE_FAILED,{cause:e})}}),Sh={environment:`browser`,createCanvas:(e,t)=>new OffscreenCanvas(e,t),createImageData:(e,t)=>new ImageData(e,t),createImageBitmap:xh,session:mh,tensor:(e,t,n)=>new bh.Tensor(e,t,n)},Ch=vh({runtime:Sh})})),Th,Eh,Dh,Oh,kh=t((()=>{W(),um(),Sm(),nh(),hh(),wh(),Th=new Map,Eh={decode:async e=>{if(!(e instanceof Blob)&&!(e instanceof Uint8Array))return e;let t=e instanceof Uint8Array?new Blob([e]):e,n=await Sh.createImageBitmap(t);try{return Ch({frame:n})}finally{n.close()}},load:async e=>await th({cache:Th,key:e,load:async()=>{try{let t=await fetch(bm({filename:e}));if(!t.ok)throw Error(U.MODEL_LOAD_FAILED);return new Uint8Array(await t.arrayBuffer())}catch(e){throw Error(U.MODEL_LOAD_FAILED,{cause:e})}}}),session:async e=>await mh({filename:e}),runtime:md},{getOcr:Dh,ocr:Oh}=eh({adapter:Eh,environment:`browser`})})),Ah,jh,Mh,Nh,Ph,Fh,Ih,Lh,Rh,zh=t((()=>{Ah=[`PASSPORT`,`PASSAPORTO`,`PASSEPORT`,`PASAPORTE`,`REISEPASS`,`PASZPORT`],jh=[`VISA`],Mh=[`IDENTITY CARD`,`IDENTIFICATION CARD`,`NATIONAL ID`,`CARTA D'IDENTITÀ`,`CARTA D'IDENTITA`,`CARTA DI IDENTITÀ`,`CARTA DI IDENTITA`,`ID CARD`,`CARTE NATIONALE`,`CARTE D’IDENTITÉ`,`CARTE D'IDENTITÉ`,`PERSONALAUSWEIS`,`DOCUMENTO NACIONAL DE IDENTIDAD`,`BILHETE DE IDENTIDADE`,`CARTÃO DE CIDADÃO`],Nh=[`PATENTE`,`PERMIS DE CONDUIRE`,`PERMISO DE CONDUCCIÓN`,`PERMIS DE CONDUIR`,`FÜHRERSCHEIN`,`FAHRERLAUBNIS`,`DRIVING LICENCE`,`DRIVING LICENSE`,`CONDUÇÃO`,`ŘIDIČSKÝ PRŮKAZ`,`VOZNIŠKO DOVOLJENJE`,`VOZNE DOVOLENIE`,`UDSTEDT KØREKORT`,`KÖRKORT`,`AJOKORTTI`,`JUHILUBA`,`VADĪTĀJA APLIECĪBA`,`VAIRUOTOJO PAŽYMĖJIMAS`,`VEZETŐI ENGEDÉLY`],Ph=({text:e})=>e.toUpperCase().normalize(`NFKC`),Fh=({labels:e,text:t})=>{let n=t.normalize(`NFKD`).replace(/[^\p{L}\p{N}]/gu,``);return e.some(e=>n.includes(e.normalize(`NFKD`).replace(/[^\p{L}\p{N}]/gu,``)))},Ih=({data:e,height:t,predicate:n,width:r,xEnd:i=1,xStart:a=0,yEnd:o=1,yStart:s=0})=>{let c=0,l=0,u=Math.floor(r*a),d=Math.ceil(r*i),f=Math.floor(t*s),p=Math.ceil(t*o);for(let t=f;t<p;t+=4)for(let i=u;i<d;i+=4){let a=(t*r+i)*4;n(e[a]??0,e[a+1]??0,e[a+2]??0)&&(c+=1),l+=1}return l?c/l:0},Lh=({image:e,text:t,codes:n})=>{let r=Ph({text:t}),i=n.some(e=>e.type===`mrz`&&e.payload.document.type===`PASSPORT`&&e.code.startsWith(`P<`)),a=n.some(e=>e.type===`mrz`&&e.payload.document.type===`VISA`),o=n.some(e=>e.type===`aamva`),s=n.some(e=>e.type===`mrz`&&e.payload.document.type===`ID`);if(a)return{document:`visa`,europeanDrivingLicense:!1};if(i)return{document:`passport`,europeanDrivingLicense:!1};if(o)return{document:`driving_license`,europeanDrivingLicense:!1};if(s)return{document:`id`,europeanDrivingLicense:!1};if(Fh({labels:jh,text:r}))return{document:`visa`,europeanDrivingLicense:!1};if(Fh({labels:Ah,text:r}))return{document:`passport`,europeanDrivingLicense:!1};if(Fh({labels:Nh,text:r})){let t=Math.max(e.width,e.height)/Math.min(e.width,e.height),n=Math.abs(t-86/54)/(86/54)<=.05+2**-52,r=Ih({...e,predicate:(e,t,n)=>e>80&&e>t*1.12&&n>t*1.04}),i=(e,t,n)=>n>45&&n>e*1.08&&n>t*1.04,a=Ih({...e,predicate:i,xEnd:.35,yEnd:.4}),o=Ih({...e,predicate:i,xStart:.65,yEnd:.4});return{document:`driving_license`,europeanDrivingLicense:n&&r>=.008&&Math.max(a,o)>=.008}}return Fh({labels:Mh,text:r})?{document:`id`,europeanDrivingLicense:!1}:null},Rh=({lines:e,width:t,height:n})=>e.some(e=>/^13\s*\./u.test(e.text.trim())&&e.box.x<t*.35&&e.box.y<n*.4)})),Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh=t((()=>{Bh=.24,Vh=.7,Hh=.16,Uh=({data:e,height:t,text:n,width:r})=>{let i=new Uint8Array(r*t);for(let t=0;t<i.length;t+=1){let n=t*4;i[t]=Math.round((e[n]??0)*.299+(e[n+1]??0)*.587+(e[n+2]??0)*.114)}let a=[];for(let e=0;e<t;e+=1)for(let n=0;n<r;n+=1){let o=e*r+n,s=i[o]??0;n+1<r&&a.push(s>=(i[o+1]??0)),e+1<t&&a.push(s>=(i[o+r]??0))}let o=new Uint8Array(Math.ceil(a.length/8));for(let[e,t]of a.entries())t&&(o[Math.floor(e/8)]|=1<<e%8);let s=[];for(let e=0;e<8;e+=1)for(let n=0;n<8;n+=1){let a=0,o=0;for(let s=Math.floor(e*t/8);s<Math.floor((e+1)*t/8);s+=1)for(let e=Math.floor(n*r/8);e<Math.floor((n+1)*r/8);e+=1)a+=i[s*r+e]??0,o+=1;s.push(o?a/o:0)}let c=s.reduce((e,t)=>e+t,0)/s.length,l=new Uint8Array(Math.ceil(s.length/8));for(let[e,t]of s.entries())t>=c&&(l[Math.floor(e/8)]|=1<<e%8);return{edgeHash:o,appearanceHash:l,textTokens:[...new Set(n.toUpperCase().normalize(`NFKC`).split(/[^\p{L}\d]+/u).filter(e=>e.length>=3))]}},Wh=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},Gh=({front:e,current:t})=>{if(!e||!t||e.edgeHash.length!==t.edgeHash.length||e.appearanceHash.length!==t.appearanceHash.length)return{distinct:!1,imageDistance:null,textOverlap:null};let n=e.edgeHash.reduce((e,n,r)=>e+Wh({value:n^(t.edgeHash[r]??0)}),0)/(e.edgeHash.length*8),r=e.appearanceHash.reduce((e,n,r)=>e+Wh({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8),i=t.textTokens.filter(t=>e.textTokens.includes(t)).length,a=Math.min(e.textTokens.length,t.textTokens.length),o=e.textTokens.length>=3&&t.textTokens.length>=3?i/a:null;return{distinct:n>=Bh&&r>=Hh&&(o===null||o<Vh),imageDistance:n,textOverlap:o}},Kh=({text:e})=>{let t=e.toUpperCase().normalize(`NFKC`).split(`
61
- `).map(e=>e.replace(/\s+/g,``)),n=t.findIndex(e=>e.startsWith(`P<`)&&e.length>=44&&(e.match(/</g)||[]).length>=2);if(n>=0&&t.slice(n+1).find(e=>/^[A-Z0-9<]{44}$/u.test(e)))return!0;let r=t.findIndex(e=>/^[A-Z0-9]<[A-Z]{3}/u.test(e)&&e.length>=30);return r<0?!1:t.slice(r+1).filter(e=>/^[A-Z0-9<]{30}$/u.test(e)).length>=2}})),Jh,Yh,Xh=t((()=>{Jh=({polygon:e,sourceOrientation:t=0})=>{let n=e.reduce((t,n)=>({x:t.x+n.x/e.length,y:t.y+n.y/e.length}),{x:0,y:0}),r=[...e].sort((e,t)=>Math.atan2(e.y-n.y,e.x-n.x)-Math.atan2(t.y-n.y,t.x-n.x)),i=(r.reduce((e,t,n)=>t.x+t.y<r[e].x+r[e].y?n:e,0)+t/90)%4;return r.slice(i).concat(r.slice(0,i))},Yh=({polygon:e})=>{let t=e.map(e=>e.x),n=e.map(e=>e.y),r=Math.min(...t),i=Math.min(...n);return{x:r,y:i,width:Math.max(...t)-r,height:Math.max(...n)-i}}})),Zh,Qh,$h,eg,tg,ng,rg,ig,ag=t((()=>{W(),Xh(),Zh=2,Qh=2048,$h=70,eg=.6,tg=({first:e,second:t})=>Math.hypot(t.x-e.x,t.y-e.y),ng=({matrix:e,values:t})=>{let n=e.map((e,n)=>[...e,t[n]??0]);for(let e=0;e<n.length;e+=1){let t=e;for(let r=e+1;r<n.length;r+=1)Math.abs(n[r][e]??0)>Math.abs(n[t][e]??0)&&(t=r);if(Math.abs(n[t][e]??0)<1e-8)return null;[n[e],n[t]]=[n[t],n[e]];let r=n[e][e]??1;for(let t=e;t<=n.length;t+=1)n[e][t]=(n[e][t]??0)/r;for(let t=0;t<n.length;t+=1){if(t===e)continue;let r=n[t][e]??0;for(let i=e;i<=n.length;i+=1)n[t][i]=(n[t][i]??0)-r*(n[e][i]??0)}}return n.map(e=>e[n.length]??0)},rg=({from:e,to:t})=>{let n=[],r=[];for(let[i,a]of e.entries()){let e=t[i];if(!e)return null;n.push([a.x,a.y,1,0,0,0,-e.x*a.x,-e.x*a.y]),r.push(e.x),n.push([0,0,0,a.x,a.y,1,-e.y*a.x,-e.y*a.y]),r.push(e.y)}let i=ng({matrix:n,values:r});return i?[...i,1]:null},ig=({image:e,polygon:t,sourceOrientation:n})=>{let[r,i,a,o]=Jh({polygon:t,sourceOrientation:n});if(!r||!i||!a||!o)throw Error(U.DOCUMENT_NOT_FOUND);let s=Math.max(1,Math.round((tg({first:r,second:i})+tg({first:o,second:a}))/2)),c=Math.max(1,Math.round((tg({first:i,second:a})+tg({first:r,second:o}))/2)),l=rg({from:[{x:0,y:0},{x:s,y:0},{x:s,y:c},{x:0,y:c}],to:[r,i,a,o]});if(!l)throw Error(U.DOCUMENT_NOT_FOUND);let[u,d,f,p,m,h,g,_,v]=l;if([u,d,f,p,m,h,g,_,v].some(e=>e===void 0))throw Error(U.DOCUMENT_NOT_FOUND);let y=Math.min(Zh,Qh/Math.max(s,c)),b=Math.max(1,Math.round(s*y)),x=Math.max(1,Math.round(c*y)),S=new Uint8ClampedArray(b*x*4),C=new Uint8ClampedArray(b*x),w=new Float64Array(e.width*e.height);for(let t=0;t<w.length;t+=1){let n=t*4;w[t]=(e.data[n]??0)*.299+(e.data[n+1]??0)*.587+(e.data[n+2]??0)*.114}for(let t=0;t<x;t+=1)for(let n=0;n<b;n+=1){let r=n*s/b,i=t*c/x,a=g*r+_*i+v,o=(u*r+d*i+f)/a,l=(p*r+m*i+h)/a,y=Math.max(0,Math.min(e.width-1,o)),S=Math.max(0,Math.min(e.height-1,l)),T=Math.floor(y),E=Math.floor(S),ee=Math.min(e.width-1,T+1),te=Math.min(e.height-1,E+1),ne=y-T,re=S-E,ie=E*e.width,D=te*e.width,ae=w[ie+T]*(1-ne)+w[ie+ee]*ne,oe=w[D+T]*(1-ne)+w[D+ee]*ne,se=ae*(1-re)+oe*re;C[t*b+n]=Math.max(0,Math.min(255,Math.round((se-$h)*255/140)))}let T=new Uint16Array(b*3),E=({y:e})=>{let t=e*b,n=e%3*b;for(let e=0;e<b;e+=1){let r=Math.max(0,e-1),i=Math.min(b-1,e+1);T[n+e]=(C[t+r]??0)+(C[t+e]??0)+(C[t+i]??0)}};E({y:0});for(let e=0;e<x;e+=1){e+1<x&&E({y:e+1});let t=Math.max(0,e-1)%3*b,n=e%3*b,r=Math.min(x-1,e+1)%3*b;for(let i=0;i<b;i+=1){let a=(T[t+i]??0)+(T[n+i]??0)+(T[r+i]??0),o=C[e*b+i]??0,s=Math.max(0,Math.min(255,Math.round(o+eg*(o-a/9)))),c=(e*b+i)*4;S[c]=s,S[c+1]=s,S[c+2]=s,S[c+3]=255}}return{data:S,height:x,width:b}}})),og,sg,cg,lg=t((()=>{W(),zh(),og=({document:e})=>e!==`passport`&&e!==`visa`,sg=({identity:e})=>!!(e?.holder.last_name&&e.holder.first_name&&e.holder.birth_date&&e.document.number),cg=({classification:e,front:t,back:n})=>{let r=[],i=e.document===`passport`,a=e.document===`visa`,o=og(e)&&!n,s=i?t.codes:[...t.codes,...n?n.codes:[]],c=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`PASSPORT`&&e.code.startsWith(`P<`)),l=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`VISA`),u=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`ID`),d=s.filter(e=>e.type===`aamva`);return(!t.ocr.text.trim()||n&&!n.ocr.text.trim())&&r.push(U.DOCUMENT_TEXT_NOT_READABLE),o&&r.push(U.DOCUMENT_BACK_REQUIRED),i&&!c.length&&r.push(U.INVALID_PASSPORT_MRZ),a&&!l.length&&r.push(U.INVALID_DOCUMENT_MRZ),!i&&n&&(e.document===`id`&&!u.length&&r.push(U.INVALID_DOCUMENT_MRZ),e.document===`driving_license`&&(e.europeanDrivingLicense?(Rh(n.ocr)||r.push(U.EUROPEAN_LICENCE_BACK_MARKER_REQUIRED),sg({identity:e.identity})||r.push(U.DOCUMENT_VALIDATION_FAILED)):d.length||r.push(U.INVALID_DOCUMENT_AAMVA))),(i&&(l.length||u.length||d.length)||a&&(c.length||u.length||d.length)||e.document===`id`&&(c.length||l.length||d.length)||e.document===`driving_license`&&(c.length||l.length||u.length))&&r.push(U.DOCUMENT_CODE_TYPE_MISMATCH),{valid:r.length===0,reasons:r,codes:s}}})),ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg=t((()=>{dd(),ug=z().trim().min(1).nullable(),dg=cd().nullable(),fg=Ql([`MRZ`,`AAMVA`,`OCR`]),pg=Ql([`PASSPORT`,`ID`,`VISA`,`DRV`,`PERMIT`]),mg=Ql([`M`,`F`,`X`]),hg=B({source:fg,type:pg.nullable(),issuing_country:ug,number:ug,issuing_authority:ug.default(null),issue_date:dg,expiry_date:dg,optional_data:ug}),gg=B({first_name:ug,last_name:ug,middle_name:ug,birth_place:ug.default(null),birth_date:dg,sex:mg.nullable(),nationality:ug,personal_number:ug}),_g=B({full:ug,street:ug,city:ug,state_province:ug,postal_code:ug}),vg=B({mrz_lines:ql(z().min(1)),aamva_version:ug}),yg=B({document:hg,holder:gg,address:_g.nullable(),raw_data:vg})})),xg,Sg,Cg,wg,Tg,Eg,Dg,Og=t((()=>{bg(),zh(),xg={A:`AUT`,B:`BEL`,BG:`BGR`,CY:`CYP`,CZ:`CZE`,D:`DEU`,DK:`DNK`,E:`ESP`,EST:`EST`,F:`FRA`,FIN:`FIN`,GR:`GRC`,H:`HUN`,HR:`HRV`,I:`ITA`,IRL:`IRL`,L:`LUX`,LT:`LTU`,LV:`LVA`,M:`MLT`,NL:`NLD`,P:`PRT`,PL:`POL`,RO:`ROU`,S:`SWE`,SK:`SVK`,SLO:`SVN`},Sg=({line:e,start:t,end:n})=>{let r=[],i=0;for(let a of e.words){let o=e.text.indexOf(a.text,i);if(o<0||!a.text.length)continue;i=o+a.text.length;let s=Math.max(t,o),c=Math.min(n,i);c<=s||r.push({...a.box,x:a.box.x+a.box.width*(s-o)/a.text.length,width:a.box.width*(c-s)/a.text.length})}if(!r.length)return{...e.box,x:e.box.x+e.box.width*t/e.text.length,width:e.box.width*(n-t)/e.text.length};let a=Math.min(...r.map(e=>e.x)),o=Math.min(...r.map(e=>e.y));return{x:a,y:o,width:Math.max(...r.map(e=>e.x+e.width))-a,height:Math.max(...r.map(e=>e.y+e.height))-o}},Cg=({line:e})=>{let t=e.text;if(!t.trim()||e.confidence!==null&&e.confidence<=0)return[];if(/^\s*\d{1,2}[./-]\d{1,2}[./-]\d{2,4}\s*$/u.test(t))return[{text:t.trim(),box:e.box,label:null}];let n=[...t.matchAll(/(?:^|\s)(4[a-d]|1[0-4]|[1-9])(?:[.:)]\s*|\s+|$|(?=\d{1,2}[./-]\d))/giu)];if(!n.length)return[{text:t,box:e.box,label:null}];let r=[],i=n[0].index;i>0&&r.push({text:t.slice(0,i).trim(),box:Sg({line:e,start:0,end:i}),label:null});for(let[i,a]of n.entries()){let o=a.index+a[0].indexOf(a[1]),s=n[i+1]?.index??t.length,c=t.slice(a.index+a[0].length,s).trim(),l=Sg({line:e,start:o,end:s});r.push({text:c,box:l,label:a[1].toLowerCase()})}return r},wg=({label:e,fragments:t})=>{let n=t.filter(t=>t.label===e);if(n.length!==1)return null;let r=n[0],i=r.box.height,a=r.text?[r]:[],o=t.filter(e=>e.label&&e!==r);for(let e of t){if(e.label||!e.text)continue;let t=e.box.y-r.box.y,n=Math.abs(t)<Math.max(i,e.box.height)*.5,s=t>=i*.5&&t<=i*2.5;(n||s)&&(e.box.x<r.box.x-i*.5||n&&r.text||o.some(t=>{let n=Math.abs(t.box.y-r.box.y)<i*.5&&t.box.x>r.box.x&&e.box.x>=t.box.x-i*.25,a=t.box.y>r.box.y+i*.5&&t.box.y<=e.box.y+e.box.height*.5&&Math.abs(t.box.x-r.box.x)<i*3;return n||a})||o.some(n=>{let a=e.box.y-n.box.y,o=a>=-i*.5&&a<=i*2.5&&e.box.x>=n.box.x-i*.5,s=Math.abs(t)+Math.abs(e.box.x-r.box.x),c=Math.abs(a)+Math.abs(e.box.x-n.box.x);return o&&c<=s})||a.push(e))}return a.sort((e,t)=>Math.abs(e.box.y-t.box.y)<i*.5?e.box.x-t.box.x:e.box.y-t.box.y),a.map(e=>e.text).join(` `).trim()||null},Tg=({text:e,allowTwoDigitYear:t=!1})=>{if(!e)return null;let n=e.match(/^(?:(\d{1,2})([./-])(\d{1,2})\2(\d{2,4})|(\d{4})-(\d{2})-(\d{2}))$/u);if(!n)return null;let r=n[4]??n[5],i=Number(n[3]??n[6]),a=Number(n[1]??n[7]),o=Number(r);if(r.length===2){if(!t)return null;let e=new Date,n=e.getUTCFullYear(),r=e.getUTCMonth()+1,s=e.getUTCDate(),c=[1900+o,2e3+o].filter(e=>{let t=n-e-+(r<i||r===i&&s<a);return t>=16&&t<=100});if(c.length!==1)return null;o=c[0]}return o<1e3||i<1||i>12||a<1||a>new Date(Date.UTC(o,i,0)).getUTCDate()?null:`${o}-${String(i).padStart(2,`0`)}-${String(a).padStart(2,`0`)}`},Eg=({ocr:e,image:t})=>{let n=new Set;for(let r of e.lines)for(let e of r.words.length?r.words:[r]){let r=e.text.trim().toUpperCase(),i=xg[r],{x:a,y:o,width:s,height:c}=e.box;if(e.confidence!==null&&e.confidence<=0||!i||a<0||o<0||a+s>t.width*.3||o+c>t.height*.35)continue;let l=Math.max(s,c);Ih({...t,xStart:Math.max(0,a-l)/t.width,xEnd:Math.min(t.width,a+s+l)/t.width,yStart:Math.max(0,o-l)/t.height,yEnd:Math.min(t.height,o+c+l)/t.height,predicate:(e,t,n)=>n>45&&n>e*1.08&&n>t*1.04})>=.15&&n.add(i)}return n.size===1?[...n][0]:null},Dg=({ocr:e,image:t})=>{if(Rh(e))return null;let n=e.lines.flatMap(e=>Cg({line:e})),r=new Set(n.map(e=>e.label));if(!(r.has(`1`)||r.has(`2`))||![`3`,`4a`,`4b`,`5`].some(e=>r.has(e)))return null;let i=wg({label:`1`,fragments:n}),a=wg({label:`2`,fragments:n}),o=i&&/\p{L}/u.test(i)?i:null,s=a&&/\p{L}/u.test(a)?a:null,c=wg({label:`3`,fragments:n})?.match(/^(\d{1,2}[./-]\d{1,2}[./-]\d{2,4}|\d{4}-\d{2}-\d{2})(?:\s+(.+))?$/u),l=Tg({allowTwoDigitYear:!0,text:c?c[1]:null}),u=c&&c[2]?.trim()||null,d=Tg({text:wg({label:`4a`,fragments:n})}),f=Tg({text:wg({label:`4b`,fragments:n})}),p=wg({label:`4c`,fragments:n}),m=wg({label:`5`,fragments:n}),h=Eg({ocr:e,image:t});return[o,s,l,u,d,f,p,m,h].some(Boolean)?yg.parse({document:{source:`OCR`,type:`DRV`,issuing_country:h,issuing_authority:p,number:m,issue_date:d,expiry_date:f,optional_data:null},holder:{first_name:s,last_name:o,middle_name:null,birth_date:l,birth_place:u,sex:null,nationality:null,personal_number:null},address:null,raw_data:{mrz_lines:[],aamva_version:null}}):null}})),kg=t((()=>{})),Ag,jg=t((()=>{Ag={TD1:`TD1`,TD2:`TD2`,TD3:`TD3`,SWISS_DRIVING_LICENSE:`SWISS_DRIVING_LICENSE`,FRENCH_NATIONAL_ID:`FRENCH_NATIONAL_ID`,FRENCH_DRIVING_LICENSE:`FRENCH_DRIVING_LICENSE`}})),Mg,Ng=t((()=>{Mg={AFG:`Afghanistan`,ALB:`Albania`,DZA:`Algeria`,ASM:`American Samoa`,AND:`Andorra`,AGO:`Angola`,AIA:`Anguilla`,ATA:`Antarctica`,ATG:`Antigua and Barbuda`,ARG:`Argentina`,ARM:`Armenia`,ABW:`Aruba`,AUS:`Australia`,AUT:`Austria`,AZE:`Azerbaijan`,BHS:`Bahamas (the)`,BHR:`Bahrain`,BGD:`Bangladesh`,BRB:`Barbados`,BLR:`Belarus`,BEL:`Belgium`,BLZ:`Belize`,BEN:`Benin`,BMU:`Bermuda`,BTN:`Bhutan`,BOL:`Bolivia (Plurinational State of)`,BES:`Bonaire, Sint Eustatius and Saba`,BIH:`Bosnia and Herzegovina`,BWA:`Botswana`,BVT:`Bouvet Island`,BRA:`Brazil`,IOT:`British Indian Ocean Territory (the)`,BRN:`Brunei Darussalam`,BGR:`Bulgaria`,BFA:`Burkina Faso`,BDI:`Burundi`,CPV:`Cabo Verde`,KHM:`Cambodia`,CMR:`Cameroon`,CAN:`Canada`,CYM:`Cayman Islands (the)`,CAF:`Central African Republic (the)`,TCD:`Chad`,CHL:`Chile`,CHN:`China`,CXR:`Christmas Island`,CCK:`Cocos (Keeling) Islands (the)`,COL:`Colombia`,COM:`Comoros (the)`,COD:`Congo (the Democratic Republic of the)`,COG:`Congo (the)`,COK:`Cook Islands (the)`,CRI:`Costa Rica`,HRV:`Croatia`,CUB:`Cuba`,CUW:`Curaçao`,CYP:`Cyprus`,CZE:`Czechia`,CIV:`Côte d'Ivoire`,DNK:`Denmark`,DJI:`Djibouti`,DMA:`Dominica`,DOM:`Dominican Republic (the)`,ECU:`Ecuador`,EGY:`Egypt`,SLV:`El Salvador`,GNQ:`Equatorial Guinea`,ERI:`Eritrea`,EST:`Estonia`,SWZ:`Eswatini`,ETH:`Ethiopia`,FLK:`Falkland Islands (the) [Malvinas]`,FRO:`Faroe Islands (the)`,FJI:`Fiji`,FIN:`Finland`,FRA:`France`,GUF:`French Guiana`,PYF:`French Polynesia`,ATF:`French Southern Territories (the)`,GAB:`Gabon`,GMB:`Gambia (the)`,GEO:`Georgia`,DEU:`Germany`,GHA:`Ghana`,GIB:`Gibraltar`,GRC:`Greece`,GRL:`Greenland`,GRD:`Grenada`,GLP:`Guadeloupe`,GUM:`Guam`,GTM:`Guatemala`,GGY:`Guernsey`,GIN:`Guinea`,GNB:`Guinea-Bissau`,GUY:`Guyana`,HTI:`Haiti`,HMD:`Heard Island and McDonald Islands`,VAT:`Holy See (the)`,HND:`Honduras`,HKG:`Hong Kong`,HUN:`Hungary`,ISL:`Iceland`,IND:`India`,IDN:`Indonesia`,IRN:`Iran (Islamic Republic of)`,IRQ:`Iraq`,IRL:`Ireland`,IMN:`Isle of Man`,ISR:`Israel`,ITA:`Italy`,JAM:`Jamaica`,JPN:`Japan`,JEY:`Jersey`,JOR:`Jordan`,KAZ:`Kazakhstan`,KEN:`Kenya`,KIR:`Kiribati`,PRK:`Korea (the Democratic People's Republic of)`,KOR:`Korea (the Republic of)`,KWT:`Kuwait`,KGZ:`Kyrgyzstan`,LAO:`Lao People's Democratic Republic (the)`,LVA:`Latvia`,LBN:`Lebanon`,LSO:`Lesotho`,LBR:`Liberia`,LBY:`Libya`,LIE:`Liechtenstein`,LTU:`Lithuania`,LUX:`Luxembourg`,MAC:`Macao`,MDG:`Madagascar`,MWI:`Malawi`,MYS:`Malaysia`,MDV:`Maldives`,MLI:`Mali`,MLT:`Malta`,MHL:`Marshall Islands (the)`,MTQ:`Martinique`,MRT:`Mauritania`,MUS:`Mauritius`,MYT:`Mayotte`,MEX:`Mexico`,FSM:`Micronesia (Federated States of)`,MDA:`Moldova (the Republic of)`,MCO:`Monaco`,MNG:`Mongolia`,MNE:`Montenegro`,MSR:`Montserrat`,MAR:`Morocco`,MOZ:`Mozambique`,MMR:`Myanmar`,NAM:`Namibia`,NRU:`Nauru`,NPL:`Nepal`,NLD:`Netherlands (the)`,NCL:`New Caledonia`,NZL:`New Zealand`,NIC:`Nicaragua`,NER:`Niger (the)`,NGA:`Nigeria`,NIU:`Niue`,NFK:`Norfolk Island`,MKD:`North Macedonia`,MNP:`Northern Mariana Islands (the)`,NOR:`Norway`,OMN:`Oman`,PAK:`Pakistan`,PLW:`Palau`,PSE:`Palestine, State of`,PAN:`Panama`,PNG:`Papua New Guinea`,PRY:`Paraguay`,PER:`Peru`,PHL:`Philippines (the)`,PCN:`Pitcairn`,POL:`Poland`,PRT:`Portugal`,PRI:`Puerto Rico`,QAT:`Qatar`,ROU:`Romania`,RUS:`Russian Federation (the)`,RWA:`Rwanda`,REU:`Réunion`,BLM:`Saint Barthélemy`,SHN:`Saint Helena, Ascension and Tristan da Cunha`,KNA:`Saint Kitts and Nevis`,LCA:`Saint Lucia`,MAF:`Saint Martin (French part)`,SPM:`Saint Pierre and Miquelon`,VCT:`Saint Vincent and the Grenadines`,WSM:`Samoa`,SMR:`San Marino`,STP:`Sao Tome and Principe`,SAU:`Saudi Arabia`,SEN:`Senegal`,SRB:`Serbia`,SYC:`Seychelles`,SLE:`Sierra Leone`,SGP:`Singapore`,SXM:`Sint Maarten (Dutch part)`,SVK:`Slovakia`,SVN:`Slovenia`,SLB:`Solomon Islands`,SOM:`Somalia`,ZAF:`South Africa`,SGS:`South Georgia and the South Sandwich Islands`,SSD:`South Sudan`,ESP:`Spain`,LKA:`Sri Lanka`,SDN:`Sudan (the)`,SUR:`Suriname`,SJM:`Svalbard and Jan Mayen`,SWE:`Sweden`,CHE:`Switzerland`,SYR:`Syrian Arab Republic (the)`,TWN:`Taiwan (Province of China)`,TJK:`Tajikistan`,TZA:`Tanzania, the United Republic of`,THA:`Thailand`,TLS:`Timor-Leste`,TGO:`Togo`,TKL:`Tokelau`,TON:`Tonga`,TTO:`Trinidad and Tobago`,TUN:`Tunisia`,TUR:`Turkey`,TKM:`Turkmenistan`,TCA:`Turks and Caicos Islands (the)`,TUV:`Tuvalu`,UGA:`Uganda`,UKR:`Ukraine`,ARE:`United Arab Emirates (the)`,GBR:`United Kingdom of Great Britain and Northern Ireland (the)`,UMI:`United States Minor Outlying Islands (the)`,USA:`United States of America (the)`,URY:`Uruguay`,UZB:`Uzbekistan`,VUT:`Vanuatu`,VEN:`Venezuela (Bolivarian Republic of)`,VNM:`Viet Nam`,VGB:`Virgin Islands (British)`,VIR:`Virgin Islands (U.S.)`,WLF:`Wallis and Futuna`,ESH:`Western Sahara*`,YEM:`Yemen`,ZMB:`Zambia`,ZWE:`Zimbabwe`,ALA:`Åland Islands`,GBD:`British Overseas Territories Citizen`,GBN:`British National (Overseas)`,GBO:`British Overseas Citizen`,GBS:`British Subject`,GBP:`British Protected Person`,RKS:`Republic of Kosovo`,D:`Germany`,XXK:`Kosovo`,EUE:`European Union (EU)`,UNO:`United Nations Organization or one of its officials`,UNA:`United Nations specialized agency or one of its officials`,UNK:`Resident of Kosovo to whom a travel document has been issued by the United Nations Interim Administration Mission in Kosovo (UNMIK)`,XBA:`African Development Bank (ADB)`,XIM:`African Export-Import Bank (AFREXIM bank)`,XCC:`Caribbean Community or one of its emissaries (CARICOM)`,XCE:`Council of Europe`,XCO:`Common Market for Eastern and Southern Africa (COMESA)`,XEC:`Economic Community of West African States (ECOWAS)`,XPO:`International Criminal Police Organization (INTERPOL)`,XES:`Organization of Eastern Caribbean States (OECS)`,XOM:`Sovereign Military Order of Malta or one of its emissaries`,XDC:`Southern African Development Community`,XXA:`Stateless person, as defined in Article 1 of the 1954 Convention Relating to the Status of Stateless Persons`,XXB:`Refugee, as defined in Article 1 of the 1951 Convention Relating to the Status of Refugees as amended by the 1967 Protocol`,XXC:`Refugee, other than as defined under the code XXB above`,XXX:`Person of unspecified nationality, for whom issuing State does not consider it necessary to specify any of the codes XXA, XXB or XXC above, whatever that person’s status may be. This category may include a person who is neither stateless nor a refugee but who is of unknown nationality and legally residing in the State of issue.`,ANT:`Netherlands Antilles`,NTZ:`Neutral Zone`},Object.freeze(Mg)}));function Pg(e){if(typeof e==`string`&&(e=e.split(/[\r\n]+/)),!Array.isArray(e))throw TypeError(`input must be an array or string`);for(let t of e)if(!t.match(/[A-Z0-9<]+/))throw TypeError(`lines must be composed of only alphanumerical characters and "<"`);return e}var Fg=t((()=>{}));function Ig(e){if(e.length!==2)throw Error(`invalid document code: ${e}. must be 2 char length`);let[t,n]=e;return Lg(t,e),Rg(n,e),`${t}${n}`}function Lg(e,t){if(!zg.includes(e)){let e=new Intl.ListFormat(`en-US`,{style:`short`,type:`disjunction`});throw Error(`invalid document code: ${t}. First character must be ${e.format(zg)}`)}}function Rg(e,t){let n=Number.parseInt(e,10);if(Number.isNaN(n))throw Error(`invalid document code number: ${t}. Second character must be a number`)}var zg,Bg=t((()=>{zg=[`A`,`B`,`D`]}));function Vg(e){return e.replaceAll(/<+$/g,``).replaceAll(`<`,` `)}var Hg=t((()=>{}));function Ug(e){if(!e.match(/^[A-Z<]+$/))throw Error(`invalid text: ${e}. Must be only alphabetical with <`);return Vg(e)}var Wg=t((()=>{Hg()}));function Gg(e,t,n=/^[0-9A-Z<]+$/){let r=Vg(e);if(!n.test(e))throw new Kg(`invalid text: ${e}. Must match the following regular expression: ${n.toString()}`,r,t,t+r.length);return r}var Kg,qg=t((()=>{Hg(),Kg=class extends Error{value;start;end;constructor(e,t,n,r){super(e),this.value=t,this.start=n,this.end=r}}}));function Jg(e){return Qg[e]?Qg[e]:e}function Yg(e){return Zg[e]?Zg[e]:e}function Xg(e,t){let n=``,r=[],i=e.split(``);for(let[e,a]of i.entries())if(t.type===X.ALPHABETIC){let i=Yg(a);i!==a&&r.push({line:t.line,column:t.start+e,original:a,corrected:i}),n+=i}else if(t.type===X.NUMERIC){let i=Jg(a);i!==a&&r.push({line:t.line,column:t.start+e,original:a,corrected:i}),n+=i}else n+=a;return{correctedText:n,autocorrect:r}}var Zg,Qg,$g=t((()=>{r_(),Zg={8:`B`,6:`G`,0:`O`,1:`I`,5:`S`,2:`Z`},Qg={B:`8`,G:`6`,O:`0`,I:`1`,S:`5`,Z:`2`}}));function e_(e){n_(e,`label`,`string`),e.field!==null&&n_(e,`field`,`string`),n_(e,`line`,`number`),n_(e,`start`,`number`),n_(e,`end`,`number`),n_(e,`parser`,`function`);let t={line:e.line,start:e.start,end:e.end},n=[t];if(Array.isArray(e.related))for(let t of e.related)n_(t,`line`,`number`),n_(t,`start`,`number`),n_(t,`end`,`number`),n.push(t);return{parser:(t,r)=>{let i=t_(t,e),a=(e.related||[]).map(e=>t_(t,e)),o={label:e.label,field:e.field,value:null,valid:!1,ranges:n.map(e=>({...e,raw:t_(t,e)})),line:0,start:0,end:0,autocorrect:[]},s=o.ranges[0];o.line=s.line,o.start=s.start,o.end=s.end;try{let t=e.parser(i,...a);typeof t==`object`?(o.value=t.value,o.valid=t.valid??!0,t.start!==void 0&&(o.start=s.start+t.start),t.end!==void 0&&(o.end=s.start+t.end),t.valid===!1&&t.error&&(o.error=t.error)):(o.value=t,o.valid=!0)}catch(e){o.error=e.message,e instanceof Kg&&(o.value=e.value,o.start=s.start+e.start,o.end=s.start+e.end)}for(let e of r)e.line===o.line&&e.column>=o.start&&e.column<o.end&&o.autocorrect.push(e);return o},autocorrector:n=>({...Xg(t_(n,e),e),range:t})}}function t_(e,t){return e[t.line].slice(t.start,t.end)}function n_(e,t,n){if(typeof e[t]!==n)throw TypeError(`${String(t)} must be a ${n}`)}var X,r_=t((()=>{qg(),$g(),X={NUMERIC:`NUMERIC`,ALPHABETIC:`ALPHABETIC`,ALPHANUMERIC:`ALPHANUMERIC`}}));function i_(e){let t=0,n=[7,3,1];for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);i===60&&(i=0),i>=65&&(i-=55),i>=48&&(i-=48),i*=n[r%3],t+=i}return t%10}function a_(e,t){let n=i_(e),r=n===Number(t);return{valid:r,error:r?null:`invalid check digit: ${t}. Must be ${n}`}}var o_=t((()=>{}));function s_(e,...t){return{value:e,...a_(t.join(``),e)}}var c_=t((()=>{o_()}));function l_(e){if(!e.match(/^[0-9<]{4,6}$/))throw Error(`invalid date: ${e}`);let t=e.slice(2,4);if(t!==`<<`&&(Number.parseInt(t,10)<1||Number.parseInt(t,10)>12))throw Error(`invalid date month: ${t}`);if(e.length===6){let t=e.slice(4,6);if(t!==`<<`&&(Number.parseInt(t,10)<1||Number.parseInt(t,10)>31))throw Error(`invalid date day: ${t}`)}return e}var u_=t((()=>{}));function d_(e,t){return{value:e,...a_(t,e)}}var f_=t((()=>{o_()}));function p_(e,t,n){let r,i;if(t===`<`&&n){let t=n.indexOf(`<`);i=e+n.slice(0,t-1),r=i.length+1}else i=Vg(e),r=i.length;return{value:i,start:0,end:r}}var m_=t((()=>{Hg()}));function h_(e,t,n){if(e===`<`&&n){let e=n.indexOf(`<`),r=n.slice(0,e-1),i=n.charAt(e-1),a={value:i,start:e,end:e+1},o=a_(`${t}<${r}`,i);return o.valid||(o=a_(`${t}${r}`,i)),{...a,...o}}return{value:e,...a_(t,e)}}var g_=t((()=>{o_()}));function __(e){let t=e.replace(/.*?<{2}/,``),n=Gg(t,e.length-t.length,/^[A-Z<]+<*$/),r=e.length-t.length;return{value:n,start:r,end:r+n.length}}var v_=t((()=>{qg()}));function y_(e){let t=Gg(e.replace(/<{2}.*$/,``),0,/^[A-Z<]*<*$/);return{value:t,start:0,end:t.length}}var b_=t((()=>{qg()}));function x_(e){switch(e){case`M`:return`male`;case`F`:return`female`;case`<`:return`nonspecified`;default:throw Error(`invalid sex: ${e}. Must be M, F or <.`)}}var S_=t((()=>{}));function C_(e){if(e=Vg(e),!Mg[e])throw Error(`invalid state code: ${e}`);return{value:e,start:0,end:e.length}}var w_=t((()=>{Ng(),Hg()})),T_,E_,D_,O_,k_,A_,j_,M_,N_,P_,F_,I_,L_,R_,z_,B_=t((()=>{c_(),u_(),f_(),m_(),g_(),v_(),b_(),S_(),w_(),r_(),T_={label:`Document number`,field:`documentNumber`,parser:p_,type:X.ALPHANUMERIC},E_={label:`Document number check digit`,field:`documentNumberCheckDigit`,parser:h_,type:X.NUMERIC},D_={label:`Document code`,field:`documentCode`,type:X.ALPHABETIC},O_={label:`Document code`,field:`documentCode`,type:X.ALPHANUMERIC},k_={label:`Nationality`,field:`nationality`,parser:C_,type:X.ALPHABETIC},A_={label:`Sex`,field:`sex`,parser:x_,type:X.ALPHABETIC},j_={label:`Expiration date`,field:`expirationDate`,parser:l_,type:X.NUMERIC},M_={label:`Expiration date check digit`,field:`expirationDateCheckDigit`,parser:d_,type:X.NUMERIC},N_={label:`Composite check digit`,field:`compositeCheckDigit`,parser:s_,type:X.NUMERIC},P_={label:`Birth date`,field:`birthDate`,parser:l_,type:X.NUMERIC},F_={label:`Birth date check digit`,field:`birthDateCheckDigit`,parser:d_,type:X.NUMERIC},I_={label:`Issue date`,field:`issueDate`,parser:l_,type:X.NUMERIC},L_={label:`First name`,field:`firstName`,parser:__,type:X.ALPHABETIC},R_={label:`Last name`,field:`lastName`,parser:y_,type:X.ALPHABETIC},z_={label:`Issuing state`,field:`issuingState`,parser:C_,type:X.ALPHABETIC}})),V_,H_,U_=t((()=>{Bg(),Wg(),r_(),B_(),V_=[{...O_,line:0,start:0,end:2,parser:Ig},{...z_,line:0,start:2,end:5},{...T_,line:0,start:5,end:14},{...E_,line:0,start:14,end:15,related:[{line:0,start:0,end:14}]},{...j_,line:0,start:15,end:21},{...R_,line:0,start:21,end:29,parser:Ug},{...N_,line:0,start:29,end:30,related:[{line:0,start:0,end:29}]}],H_=V_.map(e_)}));function W_(e,t){switch(e){case`TD1`:case`TD2`:case`TD3`:case`FRENCH_DRIVING_LICENSE`:return G_(t.documentNumber);case`FRENCH_NATIONAL_ID`:return G_(t.issueDate,t.administrativeCode2,t.documentNumber);case`SWISS_DRIVING_LICENSE`:return G_(t.pinCode,t.versionNumber);default:K_(e)}}function G_(...e){let t=``;for(let n of e){if(!n)return null;t+=n}return t}function K_(e){throw Error(`unrecognized format: ${e}`)}var q_=t((()=>{}));function J_(e,t,n){let r=[];for(let[i,{parser:a}]of t.entries())r.push(a(e,n[i]));return r}function Y_(e){let t={},n=!0;for(let r of e)r.valid||(n=!1),r.field&&(t[r.field]=r.valid?r.value:null);return{fields:t,allValid:n}}function X_(e,t,n){let r=e.slice(),i=[];if(n)for(let{autocorrector:n}of t){let{autocorrect:t,correctedText:a,range:o}=n(e);i.push(t);let s=r[o.line];r[o.line]=s.slice(0,o.start)+a+s.slice(o.end)}else i=Array(t.length).fill([]);return{corrected:r,autocorrectArray:i}}function Z_(e,t,n,r){let{autocorrect:i=!1}=r,{corrected:a,autocorrectArray:o}=X_(t,n,i),s=J_(a,n,o),c=Y_(s);return{format:e,details:s,fields:c.fields,documentNumber:W_(e,c.fields),valid:c.allValid}}var Q_=t((()=>{q_()}));function $_(e,t){if(e.length!==1)throw Error(`invalid number of lines: ${e.length}: Must be 1 for ${ev}`);if(e[0].length!==30)throw Error(`invalid number of characters for line 1: ${e[0].length}. Must be 30 for ${ev}`);return Z_(ev,e,H_,t)}var ev,tv=t((()=>{jg(),U_(),Q_(),ev=Ag.FRENCH_DRIVING_LICENSE}));function nv(e){let t=e.charAt(0);if(t!==`A`&&t!==`C`&&t!==`I`)throw Error(`invalid document code: ${e}. First character must be A, C or I`);let n=e.charAt(1);if(n===`V`)throw Error(`invalid document code: ${e}. Second character may not be V`);return n===`<`?{value:t,start:0,end:1}:e}var rv=t((()=>{}));function iv(e){let t=Gg(e,0);return{value:t,start:0,end:t.length}}var av=t((()=>{qg()})),ov,sv,cv=t((()=>{Wg(),rv(),av(),r_(),B_(),ov=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:30,parser:Ug},{label:`Administrative code`,field:`administrativeCode`,line:0,start:30,end:36,parser:iv},{...I_,line:1,start:0,end:4},{label:`Administrative code 2`,field:`administrativeCode2`,line:1,start:4,end:7,parser:iv},{...T_,line:1,start:7,end:12},{...E_,line:1,start:12,end:13,related:[{line:1,start:0,end:12}]},{...L_,line:1,start:13,end:27,parser:Ug},{...P_,line:1,start:27,end:33},{...F_,line:1,start:33,end:34,related:[{line:1,start:27,end:33}]},{...A_,line:1,start:34,end:35},{...N_,line:1,start:35,end:36,related:[{line:0,start:0,end:36},{line:1,start:0,end:35}]}],sv=ov.map(e_)}));function lv(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${uv}`);for(let[t,n]of e.entries())if(n.length!==36)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 36 for ${uv}`);return Z_(uv,e,sv,t)}var uv,dv=t((()=>{jg(),cv(),Q_(),uv=Ag.FRENCH_NATIONAL_ID}));function fv(e){if(!e.match(/^[0-9]+$/))throw Error(`invalid number: ${e}`);return e}var pv=t((()=>{}));function mv(e){if(!e.match(/^<*$/))throw Error(`invalid separator: ${e}. Must be composed only of "<"`);return e}var hv=t((()=>{}));function gv(e){if(e!==`FA`)throw Error(`invalid document code: ${e}. Must be FA`);return e}var _v=t((()=>{}));function vv(e){switch(e){case`D`:case`F`:case`I`:case`R`:return e;default:throw Error(`invalid languageCode code: ${e}. Must be D, F, I or R`)}}var yv=t((()=>{}));function bv(e){let t=e.slice(0,3),n=e.slice(3,6),r=e.charAt(6),i=e.slice(7);if(!t.match(/^[A-Z0-9]{3}$/))throw Error(`invalid document number: ${e}. Must start with three alphanumeric digits`);if(!n.match(/^[0-9]{3}$/))throw Error(`invalid document number: ${e}. Must have numeric digits in positions 4, 5 and 6`);if(i!==`<<`)throw Error(`invalid document number: ${e}. Must end with <<`);return vv(r),{value:e.slice(0,7),start:0,end:7}}var xv=t((()=>{yv()}));function Sv(e){if(e!==`CHE`&&e!==`LIE`)throw Error(`invalid state code: ${e}. Must be CHE or LIE`);return e}var Cv=t((()=>{})),wv,Tv,Ev=t((()=>{pv(),hv(),_v(),xv(),Cv(),yv(),r_(),B_(),wv=[{...T_,line:0,start:0,end:9,parser:bv},{label:`Language code`,field:`languageCode`,line:0,start:6,end:7,parser:vv,type:X.ALPHABETIC},{...D_,line:1,start:0,end:2,parser:gv},{...z_,line:1,start:2,end:5,parser:Sv},{label:`PIN code`,field:`pinCode`,line:1,start:5,end:14,parser:fv,type:X.NUMERIC},{label:`Version number`,field:`versionNumber`,line:1,start:14,end:17,parser:fv,type:X.NUMERIC},{label:`Separator 1`,field:null,line:1,start:17,end:19,parser:mv},{...P_,line:1,start:19,end:25},{label:`Separator 2`,field:null,line:1,start:25,end:30,parser:mv},{...R_,line:2,start:0,end:30},{...L_,line:2,start:0,end:30}],Tv=wv.map(e_)}));function Dv(e,t){if(e.length!==3)throw Error(`invalid number of lines: ${e.length}: Must be 3 for ${Ov}`);if(e[0].length!==9)throw Error(`invalid number of characters for line 1: ${e[0].length}. Must be 9 for ${Ov}`);if(e[1].length!==30)throw Error(`invalid number of characters for line 2: ${e[1].length}. Must be 30 for ${Ov}`);if(e[2].length!==30)throw Error(`invalid number of characters for line 3: ${e[2].length}. Must be 30 for ${Ov}`);return Z_(Ov,e,Tv,t)}var Ov,kv=t((()=>{jg(),Q_(),Ev(),Ov=Ag.SWISS_DRIVING_LICENSE}));function Av(e){let t=Gg(e,0);return{value:t,start:0,end:t.length}}var jv=t((()=>{qg()})),Mv,Nv,Pv=t((()=>{rv(),jv(),av(),r_(),B_(),Mv=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...T_,line:0,start:5,end:14,related:[{line:0,start:14,end:15},{line:0,start:15,end:30}]},{...E_,line:0,start:14,end:15,related:[{line:0,start:5,end:14},{line:0,start:15,end:30}]},{label:`Optional field 1`,field:`optional1`,line:0,start:15,end:30,related:[],parser:Av},{...P_,start:0,end:6,line:1},{...F_,line:1,start:6,end:7,related:[{line:1,start:0,end:6}]},{...A_,line:1,start:7,end:8},{...j_,line:1,start:8,end:14},{...M_,line:1,start:14,end:15,related:[{line:1,start:8,end:14}]},{...k_,line:1,start:15,end:18},{label:`Optional field 2`,field:`optional2`,line:1,start:18,end:29,parser:iv},{...N_,line:1,start:29,end:30,related:[{line:0,start:5,end:30},{line:1,start:0,end:7},{line:1,start:8,end:15},{line:1,start:18,end:29}]},{...R_,line:2,start:0,end:30},{...L_,line:2,start:0,end:30}],Nv=Mv.map(e_)}));function Fv(e,t){if(e.length!==3)throw Error(`invalid number of lines: ${e.length}: Must be 3 for ${Iv}`);for(let[t,n]of e.entries())if(n.length!==30)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 30 for ${Iv}`);return Z_(Iv,e,Nv,t)}var Iv,Lv=t((()=>{jg(),Q_(),Pv(),Iv=Ag.TD1})),Rv,zv,Bv=t((()=>{rv(),av(),r_(),B_(),Rv=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:36},{...L_,line:0,start:5,end:36},{...T_,line:1,start:0,end:9,related:[{line:1,start:9,end:10},{line:1,start:28,end:35}]},{...E_,line:1,start:9,end:10,related:[{line:1,start:0,end:9},{line:1,start:28,end:35}]},{...k_,line:1,start:10,end:13},{...P_,line:1,start:13,end:19},{...F_,line:1,start:19,end:20,related:[{line:1,start:13,end:19}]},{...A_,line:1,start:20,end:21},{...j_,line:1,start:21,end:27},{...M_,line:1,start:27,end:28,related:[{line:1,start:21,end:27}]},{label:`Optional field`,field:`optional`,line:1,start:28,end:35,parser:iv},{...N_,line:1,start:35,end:36,related:[{line:1,start:0,end:10},{line:1,start:13,end:20},{line:1,start:21,end:35}]}],zv=Rv.map(e_)}));function Vv(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${Hv}`);for(let[t,n]of e.entries())if(n.length!==36)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 36 for TD2`);return Z_(Hv,e,zv,t)}var Hv,Uv=t((()=>{jg(),Q_(),Bv(),Hv=Ag.TD2}));function Wv(e){let t=e.charAt(0);if(t!==`P`)throw Error(`invalid document code: ${e}. First character must be P`);let n=e.charAt(1);if(!n.match(/[A-Z<]/))throw Error(`invalid document code: ${e}. Second character must be a letter or <`);return n===`<`?{value:t,start:0,end:1}:e}var Gv=t((()=>{}));function Kv(e){let t=Gg(e,0,/^[A-Z0-9<]+<*$/);return{value:t,start:0,end:t.length}}var qv=t((()=>{qg()}));function Jv(e,t){return Vg(t)===``?e!==`<`&&e!==`0`?{value:e,valid:!1,error:`invalid check digit ${e}: must be 0 or <`}:e:{value:e,...a_(t,e)}}var Yv=t((()=>{o_(),Hg()})),Xv,Zv,Qv=t((()=>{Gv(),qv(),Yv(),r_(),B_(),Xv=[{...D_,line:0,start:0,end:2,parser:Wv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:44},{...L_,line:0,start:5,end:44},{...T_,line:1,start:0,end:9},{...E_,line:1,start:9,end:10,related:[{line:1,start:0,end:9}]},{...k_,line:1,start:10,end:13},{...P_,line:1,start:13,end:19},{...F_,line:1,start:19,end:20,related:[{line:1,start:13,end:19}]},{...A_,line:1,start:20,end:21},{...j_,line:1,start:21,end:27},{...M_,line:1,start:27,end:28,related:[{line:1,start:21,end:27}]},{label:`Personal number`,field:`personalNumber`,line:1,start:28,end:42,parser:Kv},{label:`Personal number check digit`,field:`personalNumberCheckDigit`,line:1,start:42,end:43,related:[{line:1,start:28,end:42}],parser:Jv},{...N_,line:1,start:43,end:44,related:[{line:1,start:0,end:10},{line:1,start:13,end:20},{line:1,start:21,end:43}]}],Zv=Xv.map(e_)}));function $v(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${ey}`);for(let[t,n]of e.entries())if(n.length!==44)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 44 for TD3`);return Z_(ey,e,Zv,t)}var ey,ty=t((()=>{jg(),Q_(),Qv(),ey=Ag.TD3})),ny,ry=t((()=>{tv(),dv(),kv(),Lv(),Uv(),ty(),ny={td1:Fv,td2:Vv,td3:$v,swissDrivingLicense:Dv,frenchNationalId:lv,frenchDrivingLicense:$_}}));function iy(e,t={}){let n=Pg(e);switch(n.length){case 1:switch(n[0].length){case 30:return ny.frenchDrivingLicense(n,t);default:throw Error(`unrecognized document format. First line of input must have 30 (French Driving License) characters and it has a length of ${n[0].length}`)}case 2:case 3:switch(n[0].length){case 30:return ny.td1(n,t);case 36:return n[0].slice(30,35).match(/[0-9]/)||n[0].match(/^IDFRA/)?ny.frenchNationalId(n,t):ny.td2(n,t);case 44:return ny.td3(n,t);case 9:return ny.swissDrivingLicense(n,t);default:throw Error(`unrecognized document format. First line of input must have 30 (TD1), 36 (TD2 or French National Id), 44 (TD3) or 9 (Swiss Driving License) characters and it has a length of ${n[0].length}`)}default:throw Error(`unrecognized document format. Input must have one, two or three lines, found ${n.length}`)}}var ay=t((()=>{Fg(),ry()})),oy=t((()=>{kg(),jg(),Ng(),ay()})),sy,cy,ly=t((()=>{dd(),sy=cd(),cy=({value:e,country:t,kind:n,source:r,reference:i=new Date})=>{if(!e)return null;if(r===`AAMVA`){if(!/^\d{8}$/u.test(e))return null;let n;if(t===`CAN`)n=`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`;else if(t===`USA`)n=`${e.slice(4,8)}-${e.slice(0,2)}-${e.slice(2,4)}`;else return null;return sy.safeParse(n).success?n:null}if(!/^\d{6}$/u.test(e))return null;let a=i.toISOString().slice(0,10),o=Math.floor(i.getUTCFullYear()/100)*100,s=[o-100,o,o+100].map(t=>`${String(t+Number(e.slice(0,2))).padStart(4,`0`)}-${e.slice(2,4)}-${e.slice(4,6)}`).filter(e=>sy.safeParse(e).success);if(n===`birth`||n===`issue`)return s.filter(e=>e<=a).sort().at(-1)??null;let c=Date.parse(a);return s.sort((e,t)=>Math.abs(Date.parse(e)-c)-Math.abs(Date.parse(t)-c)||t.localeCompare(e))[0]??null}})),Z,uy,dy,fy=t((()=>{oy(),W(),bg(),ly(),Z=e=>(e?e.replaceAll(`<`,` `).trim():``)||null,uy=e=>{if(!e)return null;try{let t=iy(e.split(`
60
+ `)});return{engine:t.id,height:o.height,lines:l,text:u,width:o.width}}}}})),Km,qm,Jm,Ym,Xm,Zm,Qm,$m=t((()=>{W(),Km=`odm.ort`,qm={tiny:{id:`tiny`,detection:`od.ort`,recognition:`or.ort`,dictionary:`ot.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},small:{id:`small`,detection:`ods.ort`,recognition:`ors.ort`,dictionary:`ots.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},japanese:{id:`japanese`,detection:Km,recognition:`orj.ort`,dictionary:`otj.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-simplified":{id:`chinese-simplified`,detection:Km,recognition:`orcs.ort`,dictionary:`otcs.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-traditional":{id:`chinese-traditional`,detection:Km,recognition:`orct.ort`,dictionary:`otct.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},cyrillic:{id:`cyrillic`,detection:Km,recognition:`orc.ort`,dictionary:`otc.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},arabic:{id:`arabic`,detection:Km,recognition:`ora.ort`,dictionary:`ota.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!0}},Jm={eng:`eng`,en:`eng`,english:`eng`,latin:`latin`,deu:`latin`,de:`latin`,fra:`latin`,fr:`latin`,ita:`latin`,it:`latin`,por:`latin`,pt:`latin`,spa:`latin`,es:`latin`,jpn:`jpn`,ja:`jpn`,japan:`jpn`,chi_sim:`chi_sim`,zh:`chi_sim`,"zh-cn":`chi_sim`,"zh-hans":`chi_sim`,chi_tra:`chi_tra`,ch:`chi_tra`,"zh-tw":`chi_tra`,"zh-hant":`chi_tra`,rus:`rus`,ru:`rus`,ara:`ara`,ar:`ara`},Ym=({language:e})=>{let t=Jm[e.trim().toLowerCase()];if(!t)throw Error(U.OCR_LANGUAGE_UNSUPPORTED);return t},Xm={eng:`tiny`,latin:`tiny`,jpn:`japanese`,chi_sim:`chinese-simplified`,chi_tra:`chinese-traditional`,rus:`cyrillic`,ara:`arabic`},Zm=({language:e,engine:t=`auto`})=>{let n=Ym({language:e}),r=t===`auto`?Xm[n]:t,i=qm[r];if(!i)throw Error(U.OCR_MODEL_UNSUPPORTED);return i},Qm=({language:e,engine:t})=>{let n=Zm({environment:`browser`,language:e,engine:t});return[n.detection,n.recognition,n.dictionary]}})),eh,th,nh=t((()=>{W(),Gm(),$m(),eh=({adapter:e,environment:t})=>{let n=new Map,r=async r=>{if(r.environment!==t)throw Error(U.OCR_ENVIRONMENT_MISMATCH);let i=Zm(r),a=n.get(i.id);a||(a=Wm({adapter:e,model:i}),n.set(i.id,a));try{return await a}catch(e){throw n.get(i.id)===a&&n.delete(i.id),e}};return{getOcr:r,ocr:async({image:e,language:n=`eng`,engine:i})=>await(await r({environment:t,language:n,engine:i})).recognize({image:e})}},th=async({cache:e,key:t,load:n})=>{let r=e.get(t);r||(r=n(),e.set(t,r));try{return await r}catch(n){throw e.get(t)===r&&e.delete(t),n}}})),rh,ih=t((()=>{rh={high:`fdh.ort`,standard:`fd.ort`,low:`fdl.ort`}})),ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh=t((()=>{W(),um(),Sm(),ih(),ah=new Map,oh=!1,ch=md,lh=()=>[`wasm`],uh=()=>globalThis.crossOriginIsolated&&!!globalThis.SharedArrayBuffer,dh=()=>Math.min(Math.max(Math.floor((navigator.hardwareConcurrency||1)/2),1),4),fh=()=>({inference:`CPU (WASM SIMD)`,isolation:globalThis.crossOriginIsolated?`cross origin isolated`:`not isolated`,models:`ORT fixed optimized`,threading:uh()?`multi thread (auto, up to ${dh()})`:`single thread`}),ph=async()=>(oh||=(ch.env.wasm.numThreads=+!uh(),ch.env.wasm.wasmPaths={mjs:bm({filename:`ort-wasm-simd-threaded.mjs`}),wasm:bm({filename:`ort-wasm-simd-threaded.wasm`})},!0),ch),mh=async({filename:e})=>{let t=ah.get(e);try{return t||(t=(async()=>{let t=await(await ph()).InferenceSession.create(bm({filename:e}),{executionProviders:lh(),extra:{session:{load_model_format:`ORT`}},graphOptimizationLevel:`disabled`});return{inputNames:t.inputNames,outputNames:t.outputNames,run:async e=>{let n=sh,r=Promise.withResolvers();sh=r.promise,await n;try{return await t.run(e)}finally{r.resolve(),sh===r.promise&&(sh=void 0)}}}})(),ah.set(e,t)),await t}catch(n){throw t&&ah.get(e)===t&&ah.delete(e),Error(U.MODEL_LOAD_FAILED,{cause:n})}}})),gh,_h=t((()=>{gh=({canvas:e})=>{e.width=1,e.height=1}})),vh,yh=t((()=>{W(),_h(),vh=({runtime:e})=>({frame:t,height:n=t.height,width:r=t.width,sourceRect:i})=>{let a=e.createCanvas(r,n);try{let e=a.getContext(`2d`,{willReadFrequently:!0});if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);return i?e.drawImage(t,i.x,i.y,i.width,i.height,0,0,r,n):e.drawImage(t,0,0,r,n),{data:e.getImageData(0,0,r,n).data,height:n,width:r}}finally{gh({canvas:a})}}})),bh,xh,Sh,Ch,wh=t((()=>{W(),um(),hh(),yh(),bh=md,xh=(async(...e)=>{try{return await createImageBitmap(...e)}catch(e){throw Error(U.IMAGE_DECODE_FAILED,{cause:e})}}),Sh={environment:`browser`,createCanvas:(e,t)=>new OffscreenCanvas(e,t),createImageData:(e,t)=>new ImageData(e,t),createImageBitmap:xh,session:mh,tensor:(e,t,n)=>new bh.Tensor(e,t,n)},Ch=vh({runtime:Sh})})),Th,Eh,Dh,Oh,kh=t((()=>{W(),um(),Sm(),nh(),hh(),wh(),Th=new Map,Eh={decode:async e=>{if(!(e instanceof Blob)&&!(e instanceof Uint8Array))return e;let t=e instanceof Uint8Array?new Blob([e]):e,n=await Sh.createImageBitmap(t);try{return Ch({frame:n})}finally{n.close()}},load:async e=>await th({cache:Th,key:e,load:async()=>{try{let t=await fetch(bm({filename:e}));if(!t.ok)throw Error(U.MODEL_LOAD_FAILED);return new Uint8Array(await t.arrayBuffer())}catch(e){throw Error(U.MODEL_LOAD_FAILED,{cause:e})}}}),session:async e=>await mh({filename:e}),runtime:md},{getOcr:Dh,ocr:Oh}=eh({adapter:Eh,environment:`browser`})})),Ah,jh,Mh,Nh,Ph,Fh,Ih,Lh,Rh,zh=t((()=>{Ah=[`PASSPORT`,`PASSAPORTO`,`PASSEPORT`,`PASAPORTE`,`REISEPASS`,`PASZPORT`],jh=[`VISA`],Mh=[`REPUBBLICA ITALIANA`,`IDENTITY CARD`,`IDENTIFICATION CARD`,`NATIONAL ID`,`CARTA D'IDENTITÀ`,`CARTA D'IDENTITA`,`CARTA DI IDENTITÀ`,`CARTA DI IDENTITA`,`ID CARD`,`CARTE NATIONALE`,`CARTE D’IDENTITÉ`,`CARTE D'IDENTITÉ`,`PERSONALAUSWEIS`,`DOCUMENTO NACIONAL DE IDENTIDAD`,`BILHETE DE IDENTIDADE`,`CARTÃO DE CIDADÃO`],Nh=[`PATENTE`,`PERMIS DE CONDUIRE`,`PERMISO DE CONDUCCIÓN`,`PERMIS DE CONDUIR`,`FÜHRERSCHEIN`,`FAHRERLAUBNIS`,`DRIVING LICENCE`,`DRIVING LICENSE`,`CONDUÇÃO`,`ŘIDIČSKÝ PRŮKAZ`,`VOZNIŠKO DOVOLJENJE`,`VOZNE DOVOLENIE`,`UDSTEDT KØREKORT`,`KÖRKORT`,`AJOKORTTI`,`JUHILUBA`,`VADĪTĀJA APLIECĪBA`,`VAIRUOTOJO PAŽYMĖJIMAS`,`VEZETŐI ENGEDÉLY`],Ph=({text:e})=>e.toUpperCase().normalize(`NFKC`),Fh=({labels:e,text:t})=>{let n=t.normalize(`NFKD`).replace(/[^\p{L}\p{N}]/gu,``);return e.some(e=>n.includes(e.normalize(`NFKD`).replace(/[^\p{L}\p{N}]/gu,``)))},Ih=({data:e,height:t,predicate:n,width:r,xEnd:i=1,xStart:a=0,yEnd:o=1,yStart:s=0})=>{let c=0,l=0,u=Math.floor(r*a),d=Math.ceil(r*i),f=Math.floor(t*s),p=Math.ceil(t*o);for(let t=f;t<p;t+=4)for(let i=u;i<d;i+=4){let a=(t*r+i)*4;n(e[a]??0,e[a+1]??0,e[a+2]??0)&&(c+=1),l+=1}return l?c/l:0},Lh=({image:e,text:t,codes:n})=>{let r=Ph({text:t}),i=n.some(e=>e.type===`mrz`&&e.payload.document.type===`PASSPORT`&&e.code.startsWith(`P<`)),a=n.some(e=>e.type===`mrz`&&e.payload.document.type===`VISA`),o=n.some(e=>e.type===`aamva`),s=n.some(e=>e.type===`mrz`&&e.payload.document.type===`ID`);if(a)return{document:`visa`,europeanDrivingLicense:!1};if(i)return{document:`passport`,europeanDrivingLicense:!1};if(o)return{document:`driving_license`,europeanDrivingLicense:!1};if(s)return{document:`id`,europeanDrivingLicense:!1};if(Fh({labels:jh,text:r}))return{document:`visa`,europeanDrivingLicense:!1};if(Fh({labels:Ah,text:r}))return{document:`passport`,europeanDrivingLicense:!1};if(Fh({labels:Nh,text:r})){let t=Math.max(e.width,e.height)/Math.min(e.width,e.height),n=Math.abs(t-86/54)/(86/54)<=.05+2**-52,r=Ih({...e,predicate:(e,t,n)=>e>80&&e>t*1.12&&n>t*1.04}),i=(e,t,n)=>n>45&&n>e*1.08&&n>t*1.04,a=Ih({...e,predicate:i,xEnd:.35,yEnd:.4}),o=Ih({...e,predicate:i,xStart:.65,yEnd:.4});return{document:`driving_license`,europeanDrivingLicense:n&&r>=.008&&Math.max(a,o)>=.008}}return Fh({labels:Mh,text:r})?{document:`id`,europeanDrivingLicense:!1}:null},Rh=({lines:e,width:t,height:n})=>e.some(e=>/^13\s*\./u.test(e.text.trim())&&e.box.x<t*.35&&e.box.y<n*.4)})),Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh=t((()=>{Bh=.24,Vh=.7,Hh=.16,Uh=({data:e,height:t,text:n,width:r})=>{let i=new Uint8Array(r*t);for(let t=0;t<i.length;t+=1){let n=t*4;i[t]=Math.round((e[n]??0)*.299+(e[n+1]??0)*.587+(e[n+2]??0)*.114)}let a=[];for(let e=0;e<t;e+=1)for(let n=0;n<r;n+=1){let o=e*r+n,s=i[o]??0;n+1<r&&a.push(s>=(i[o+1]??0)),e+1<t&&a.push(s>=(i[o+r]??0))}let o=new Uint8Array(Math.ceil(a.length/8));for(let[e,t]of a.entries())t&&(o[Math.floor(e/8)]|=1<<e%8);let s=[];for(let e=0;e<8;e+=1)for(let n=0;n<8;n+=1){let a=0,o=0;for(let s=Math.floor(e*t/8);s<Math.floor((e+1)*t/8);s+=1)for(let e=Math.floor(n*r/8);e<Math.floor((n+1)*r/8);e+=1)a+=i[s*r+e]??0,o+=1;s.push(o?a/o:0)}let c=s.reduce((e,t)=>e+t,0)/s.length,l=new Uint8Array(Math.ceil(s.length/8));for(let[e,t]of s.entries())t>=c&&(l[Math.floor(e/8)]|=1<<e%8);return{edgeHash:o,appearanceHash:l,textTokens:[...new Set(n.toUpperCase().normalize(`NFKC`).split(/[^\p{L}\d]+/u).filter(e=>e.length>=3))]}},Wh=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},Gh=({front:e,current:t})=>{if(!e||!t||e.edgeHash.length!==t.edgeHash.length||e.appearanceHash.length!==t.appearanceHash.length)return{distinct:!1,imageDistance:null,textOverlap:null};let n=e.edgeHash.reduce((e,n,r)=>e+Wh({value:n^(t.edgeHash[r]??0)}),0)/(e.edgeHash.length*8),r=e.appearanceHash.reduce((e,n,r)=>e+Wh({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8),i=t.textTokens.filter(t=>e.textTokens.includes(t)).length,a=Math.min(e.textTokens.length,t.textTokens.length),o=e.textTokens.length>=3&&t.textTokens.length>=3?i/a:null;return{distinct:n>=Bh&&r>=Hh&&(o===null||o<Vh),imageDistance:n,textOverlap:o}},Kh=({text:e})=>{let t=e.toUpperCase().normalize(`NFKC`).split(`
61
+ `).map(e=>e.replace(/\s+/g,``)),n=t.findIndex(e=>e.startsWith(`P<`)&&e.length>=44&&(e.match(/</g)||[]).length>=2);if(n>=0&&t.slice(n+1).find(e=>/^[A-Z0-9<]{44}$/u.test(e)))return!0;let r=t.findIndex(e=>/^[A-Z0-9]<[A-Z]{3}/u.test(e)&&e.length>=30);return r<0?!1:t.slice(r+1).filter(e=>/^[A-Z0-9<]{30}$/u.test(e)).length>=2}})),Jh,Yh,Xh=t((()=>{Jh=({polygon:e,sourceOrientation:t=0})=>{let n=e.reduce((t,n)=>({x:t.x+n.x/e.length,y:t.y+n.y/e.length}),{x:0,y:0}),r=[...e].sort((e,t)=>Math.atan2(e.y-n.y,e.x-n.x)-Math.atan2(t.y-n.y,t.x-n.x)),i=(r.reduce((e,t,n)=>t.x+t.y<r[e].x+r[e].y?n:e,0)+t/90)%4;return r.slice(i).concat(r.slice(0,i))},Yh=({polygon:e})=>{let t=e.map(e=>e.x),n=e.map(e=>e.y),r=Math.min(...t),i=Math.min(...n);return{x:r,y:i,width:Math.max(...t)-r,height:Math.max(...n)-i}}})),Zh,Qh,$h,eg,tg,ng,rg,ig,ag=t((()=>{W(),Xh(),Zh=2,Qh=2048,$h=70,eg=.6,tg=({first:e,second:t})=>Math.hypot(t.x-e.x,t.y-e.y),ng=({matrix:e,values:t})=>{let n=e.map((e,n)=>[...e,t[n]??0]);for(let e=0;e<n.length;e+=1){let t=e;for(let r=e+1;r<n.length;r+=1)Math.abs(n[r][e]??0)>Math.abs(n[t][e]??0)&&(t=r);if(Math.abs(n[t][e]??0)<1e-8)return null;[n[e],n[t]]=[n[t],n[e]];let r=n[e][e]??1;for(let t=e;t<=n.length;t+=1)n[e][t]=(n[e][t]??0)/r;for(let t=0;t<n.length;t+=1){if(t===e)continue;let r=n[t][e]??0;for(let i=e;i<=n.length;i+=1)n[t][i]=(n[t][i]??0)-r*(n[e][i]??0)}}return n.map(e=>e[n.length]??0)},rg=({from:e,to:t})=>{let n=[],r=[];for(let[i,a]of e.entries()){let e=t[i];if(!e)return null;n.push([a.x,a.y,1,0,0,0,-e.x*a.x,-e.x*a.y]),r.push(e.x),n.push([0,0,0,a.x,a.y,1,-e.y*a.x,-e.y*a.y]),r.push(e.y)}let i=ng({matrix:n,values:r});return i?[...i,1]:null},ig=({image:e,polygon:t,sourceOrientation:n})=>{let[r,i,a,o]=Jh({polygon:t,sourceOrientation:n});if(!r||!i||!a||!o)throw Error(U.DOCUMENT_NOT_FOUND);let s=Math.max(1,Math.round((tg({first:r,second:i})+tg({first:o,second:a}))/2)),c=Math.max(1,Math.round((tg({first:i,second:a})+tg({first:r,second:o}))/2)),l=rg({from:[{x:0,y:0},{x:s,y:0},{x:s,y:c},{x:0,y:c}],to:[r,i,a,o]});if(!l)throw Error(U.DOCUMENT_NOT_FOUND);let[u,d,f,p,m,h,g,_,v]=l;if([u,d,f,p,m,h,g,_,v].some(e=>e===void 0))throw Error(U.DOCUMENT_NOT_FOUND);let y=Math.min(Zh,Qh/Math.max(s,c)),b=Math.max(1,Math.round(s*y)),x=Math.max(1,Math.round(c*y)),S=new Uint8ClampedArray(b*x*4),C=new Uint8ClampedArray(b*x),w=new Float64Array(e.width*e.height);for(let t=0;t<w.length;t+=1){let n=t*4;w[t]=(e.data[n]??0)*.299+(e.data[n+1]??0)*.587+(e.data[n+2]??0)*.114}for(let t=0;t<x;t+=1)for(let n=0;n<b;n+=1){let r=n*s/b,i=t*c/x,a=g*r+_*i+v,o=(u*r+d*i+f)/a,l=(p*r+m*i+h)/a,y=Math.max(0,Math.min(e.width-1,o)),S=Math.max(0,Math.min(e.height-1,l)),T=Math.floor(y),E=Math.floor(S),ee=Math.min(e.width-1,T+1),D=Math.min(e.height-1,E+1),te=y-T,ne=S-E,re=E*e.width,O=D*e.width,ie=w[re+T]*(1-te)+w[re+ee]*te,ae=w[O+T]*(1-te)+w[O+ee]*te,oe=ie*(1-ne)+ae*ne;C[t*b+n]=Math.max(0,Math.min(255,Math.round((oe-$h)*255/140)))}let T=new Uint16Array(b*3),E=({y:e})=>{let t=e*b,n=e%3*b;for(let e=0;e<b;e+=1){let r=Math.max(0,e-1),i=Math.min(b-1,e+1);T[n+e]=(C[t+r]??0)+(C[t+e]??0)+(C[t+i]??0)}};E({y:0});for(let e=0;e<x;e+=1){e+1<x&&E({y:e+1});let t=Math.max(0,e-1)%3*b,n=e%3*b,r=Math.min(x-1,e+1)%3*b;for(let i=0;i<b;i+=1){let a=(T[t+i]??0)+(T[n+i]??0)+(T[r+i]??0),o=C[e*b+i]??0,s=Math.max(0,Math.min(255,Math.round(o+eg*(o-a/9)))),c=(e*b+i)*4;S[c]=s,S[c+1]=s,S[c+2]=s,S[c+3]=255}}return{data:S,height:x,width:b}}})),og,sg,cg,lg=t((()=>{W(),zh(),og=({document:e})=>e!==`passport`&&e!==`visa`,sg=({identity:e})=>!!(e?.holder.last_name&&e.holder.first_name&&e.holder.birth_date&&e.document.number),cg=({classification:e,front:t,back:n})=>{let r=[],i=e.document===`passport`,a=e.document===`visa`,o=og(e)&&!n,s=i?t.codes:[...t.codes,...n?n.codes:[]],c=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`PASSPORT`&&e.code.startsWith(`P<`)),l=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`VISA`),u=s.filter(e=>e.type===`mrz`&&e.payload.document.type===`ID`),d=s.filter(e=>e.type===`aamva`);return(!t.ocr.text.trim()||n&&!n.ocr.text.trim())&&r.push(U.DOCUMENT_TEXT_NOT_READABLE),o&&r.push(U.DOCUMENT_BACK_REQUIRED),i&&!c.length&&r.push(U.INVALID_PASSPORT_MRZ),a&&!l.length&&r.push(U.INVALID_DOCUMENT_MRZ),!i&&n&&(e.document===`id`&&!u.length&&r.push(U.INVALID_DOCUMENT_MRZ),e.document===`driving_license`&&(e.europeanDrivingLicense?(Rh(n.ocr)||r.push(U.EUROPEAN_LICENCE_BACK_MARKER_REQUIRED),sg({identity:e.identity})||r.push(U.DOCUMENT_VALIDATION_FAILED)):d.length||r.push(U.INVALID_DOCUMENT_AAMVA))),(i&&(l.length||u.length||d.length)||a&&(c.length||u.length||d.length)||e.document===`id`&&(c.length||l.length||d.length)||e.document===`driving_license`&&(c.length||l.length||u.length))&&r.push(U.DOCUMENT_CODE_TYPE_MISMATCH),{valid:r.length===0,reasons:r,codes:s}}})),ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg=t((()=>{dd(),ug=z().trim().min(1).nullable(),dg=cd().nullable(),fg=Ql([`MRZ`,`AAMVA`,`OCR`]),pg=Ql([`PASSPORT`,`ID`,`VISA`,`DRV`,`PERMIT`]),mg=Ql([`M`,`F`,`X`]),hg=B({source:fg,type:pg.nullable(),issuing_country:ug,number:ug,issuing_authority:ug.default(null),issue_date:dg,expiry_date:dg,optional_data:ug}),gg=B({first_name:ug,last_name:ug,middle_name:ug,birth_place:ug.default(null),birth_date:dg,sex:mg.nullable(),nationality:ug,personal_number:ug}),_g=B({full:ug,street:ug,city:ug,state_province:ug,postal_code:ug}),vg=B({mrz_lines:ql(z().min(1)),aamva_version:ug}),yg=B({document:hg,holder:gg,address:_g.nullable(),raw_data:vg})})),xg,Sg,Cg,wg,Tg,Eg,Dg,Og=t((()=>{bg(),zh(),xg={A:`AUT`,B:`BEL`,BG:`BGR`,CY:`CYP`,CZ:`CZE`,D:`DEU`,DK:`DNK`,E:`ESP`,EST:`EST`,F:`FRA`,FIN:`FIN`,GR:`GRC`,H:`HUN`,HR:`HRV`,I:`ITA`,IRL:`IRL`,L:`LUX`,LT:`LTU`,LV:`LVA`,M:`MLT`,NL:`NLD`,P:`PRT`,PL:`POL`,RO:`ROU`,S:`SWE`,SK:`SVK`,SLO:`SVN`},Sg=({line:e,start:t,end:n})=>{let r=[],i=0;for(let a of e.words){let o=e.text.indexOf(a.text,i);if(o<0||!a.text.length)continue;i=o+a.text.length;let s=Math.max(t,o),c=Math.min(n,i);c<=s||r.push({...a.box,x:a.box.x+a.box.width*(s-o)/a.text.length,width:a.box.width*(c-s)/a.text.length})}if(!r.length)return{...e.box,x:e.box.x+e.box.width*t/e.text.length,width:e.box.width*(n-t)/e.text.length};let a=Math.min(...r.map(e=>e.x)),o=Math.min(...r.map(e=>e.y));return{x:a,y:o,width:Math.max(...r.map(e=>e.x+e.width))-a,height:Math.max(...r.map(e=>e.y+e.height))-o}},Cg=({line:e})=>{let t=e.text;if(!t.trim()||e.confidence!==null&&e.confidence<=0)return[];if(/^\s*\d{1,2}[./-]\d{1,2}[./-]\d{2,4}\s*$/u.test(t))return[{text:t.trim(),box:e.box,label:null}];let n=[...t.matchAll(/(?:^|\s)(4[a-d]|1[0-4]|[1-9])(?:[.:)]\s*|\s+|$|(?=\d{1,2}[./-]\d))/giu)];if(!n.length)return[{text:t,box:e.box,label:null}];let r=[],i=n[0].index;i>0&&r.push({text:t.slice(0,i).trim(),box:Sg({line:e,start:0,end:i}),label:null});for(let[i,a]of n.entries()){let o=a.index+a[0].indexOf(a[1]),s=n[i+1]?.index??t.length,c=t.slice(a.index+a[0].length,s).trim(),l=Sg({line:e,start:o,end:s});r.push({text:c,box:l,label:a[1].toLowerCase()})}return r},wg=({label:e,fragments:t})=>{let n=t.filter(t=>t.label===e);if(n.length!==1)return null;let r=n[0],i=r.box.height,a=r.text?[r]:[],o=t.filter(e=>e.label&&e!==r);for(let e of t){if(e.label||!e.text)continue;let t=e.box.y-r.box.y,n=Math.abs(t)<Math.max(i,e.box.height)*.5,s=t>=i*.5&&t<=i*2.5;(n||s)&&(e.box.x<r.box.x-i*.5||n&&r.text||o.some(t=>{let n=Math.abs(t.box.y-r.box.y)<i*.5&&t.box.x>r.box.x&&e.box.x>=t.box.x-i*.25,a=t.box.y>r.box.y+i*.5&&t.box.y<=e.box.y+e.box.height*.5&&Math.abs(t.box.x-r.box.x)<i*3;return n||a})||o.some(n=>{let a=e.box.y-n.box.y,o=a>=-i*.5&&a<=i*2.5&&e.box.x>=n.box.x-i*.5,s=Math.abs(t)+Math.abs(e.box.x-r.box.x),c=Math.abs(a)+Math.abs(e.box.x-n.box.x);return o&&c<=s})||a.push(e))}return a.sort((e,t)=>Math.abs(e.box.y-t.box.y)<i*.5?e.box.x-t.box.x:e.box.y-t.box.y),a.map(e=>e.text).join(` `).trim()||null},Tg=({text:e,allowTwoDigitYear:t=!1})=>{if(!e)return null;let n=e.match(/^(?:(\d{1,2})([./-])(\d{1,2})\2(\d{2,4})|(\d{4})-(\d{2})-(\d{2}))$/u);if(!n)return null;let r=n[4]??n[5],i=Number(n[3]??n[6]),a=Number(n[1]??n[7]),o=Number(r);if(r.length===2){if(!t)return null;let e=new Date,n=e.getUTCFullYear(),r=e.getUTCMonth()+1,s=e.getUTCDate(),c=[1900+o,2e3+o].filter(e=>{let t=n-e-+(r<i||r===i&&s<a);return t>=16&&t<=100});if(c.length!==1)return null;o=c[0]}return o<1e3||i<1||i>12||a<1||a>new Date(Date.UTC(o,i,0)).getUTCDate()?null:`${o}-${String(i).padStart(2,`0`)}-${String(a).padStart(2,`0`)}`},Eg=({ocr:e,image:t})=>{let n=new Set;for(let r of e.lines)for(let e of r.words.length?r.words:[r]){let r=e.text.trim().toUpperCase(),i=xg[r],{x:a,y:o,width:s,height:c}=e.box;if(e.confidence!==null&&e.confidence<=0||!i||a<0||o<0||a+s>t.width*.3||o+c>t.height*.35)continue;let l=Math.max(s,c);Ih({...t,xStart:Math.max(0,a-l)/t.width,xEnd:Math.min(t.width,a+s+l)/t.width,yStart:Math.max(0,o-l)/t.height,yEnd:Math.min(t.height,o+c+l)/t.height,predicate:(e,t,n)=>n>45&&n>e*1.08&&n>t*1.04})>=.15&&n.add(i)}return n.size===1?[...n][0]:null},Dg=({ocr:e,image:t})=>{if(Rh(e))return null;let n=e.lines.flatMap(e=>Cg({line:e})),r=new Set(n.map(e=>e.label));if(!(r.has(`1`)||r.has(`2`))||![`3`,`4a`,`4b`,`5`].some(e=>r.has(e)))return null;let i=wg({label:`1`,fragments:n}),a=wg({label:`2`,fragments:n}),o=i&&/\p{L}/u.test(i)?i:null,s=a&&/\p{L}/u.test(a)?a:null,c=wg({label:`3`,fragments:n})?.match(/^(\d{1,2}[./-]\d{1,2}[./-]\d{2,4}|\d{4}-\d{2}-\d{2})(?:\s+(.+))?$/u),l=Tg({allowTwoDigitYear:!0,text:c?c[1]:null}),u=c&&c[2]?.trim()||null,d=Tg({text:wg({label:`4a`,fragments:n})}),f=Tg({text:wg({label:`4b`,fragments:n})}),p=wg({label:`4c`,fragments:n}),m=wg({label:`5`,fragments:n}),h=Eg({ocr:e,image:t});return[o,s,l,u,d,f,p,m,h].some(Boolean)?yg.parse({document:{source:`OCR`,type:`DRV`,issuing_country:h,issuing_authority:p,number:m,issue_date:d,expiry_date:f,optional_data:null},holder:{first_name:s,last_name:o,middle_name:null,birth_date:l,birth_place:u,sex:null,nationality:null,personal_number:null},address:null,raw_data:{mrz_lines:[],aamva_version:null}}):null}})),kg=t((()=>{})),Ag,jg=t((()=>{Ag={TD1:`TD1`,TD2:`TD2`,TD3:`TD3`,SWISS_DRIVING_LICENSE:`SWISS_DRIVING_LICENSE`,FRENCH_NATIONAL_ID:`FRENCH_NATIONAL_ID`,FRENCH_DRIVING_LICENSE:`FRENCH_DRIVING_LICENSE`}})),Mg,Ng=t((()=>{Mg={AFG:`Afghanistan`,ALB:`Albania`,DZA:`Algeria`,ASM:`American Samoa`,AND:`Andorra`,AGO:`Angola`,AIA:`Anguilla`,ATA:`Antarctica`,ATG:`Antigua and Barbuda`,ARG:`Argentina`,ARM:`Armenia`,ABW:`Aruba`,AUS:`Australia`,AUT:`Austria`,AZE:`Azerbaijan`,BHS:`Bahamas (the)`,BHR:`Bahrain`,BGD:`Bangladesh`,BRB:`Barbados`,BLR:`Belarus`,BEL:`Belgium`,BLZ:`Belize`,BEN:`Benin`,BMU:`Bermuda`,BTN:`Bhutan`,BOL:`Bolivia (Plurinational State of)`,BES:`Bonaire, Sint Eustatius and Saba`,BIH:`Bosnia and Herzegovina`,BWA:`Botswana`,BVT:`Bouvet Island`,BRA:`Brazil`,IOT:`British Indian Ocean Territory (the)`,BRN:`Brunei Darussalam`,BGR:`Bulgaria`,BFA:`Burkina Faso`,BDI:`Burundi`,CPV:`Cabo Verde`,KHM:`Cambodia`,CMR:`Cameroon`,CAN:`Canada`,CYM:`Cayman Islands (the)`,CAF:`Central African Republic (the)`,TCD:`Chad`,CHL:`Chile`,CHN:`China`,CXR:`Christmas Island`,CCK:`Cocos (Keeling) Islands (the)`,COL:`Colombia`,COM:`Comoros (the)`,COD:`Congo (the Democratic Republic of the)`,COG:`Congo (the)`,COK:`Cook Islands (the)`,CRI:`Costa Rica`,HRV:`Croatia`,CUB:`Cuba`,CUW:`Curaçao`,CYP:`Cyprus`,CZE:`Czechia`,CIV:`Côte d'Ivoire`,DNK:`Denmark`,DJI:`Djibouti`,DMA:`Dominica`,DOM:`Dominican Republic (the)`,ECU:`Ecuador`,EGY:`Egypt`,SLV:`El Salvador`,GNQ:`Equatorial Guinea`,ERI:`Eritrea`,EST:`Estonia`,SWZ:`Eswatini`,ETH:`Ethiopia`,FLK:`Falkland Islands (the) [Malvinas]`,FRO:`Faroe Islands (the)`,FJI:`Fiji`,FIN:`Finland`,FRA:`France`,GUF:`French Guiana`,PYF:`French Polynesia`,ATF:`French Southern Territories (the)`,GAB:`Gabon`,GMB:`Gambia (the)`,GEO:`Georgia`,DEU:`Germany`,GHA:`Ghana`,GIB:`Gibraltar`,GRC:`Greece`,GRL:`Greenland`,GRD:`Grenada`,GLP:`Guadeloupe`,GUM:`Guam`,GTM:`Guatemala`,GGY:`Guernsey`,GIN:`Guinea`,GNB:`Guinea-Bissau`,GUY:`Guyana`,HTI:`Haiti`,HMD:`Heard Island and McDonald Islands`,VAT:`Holy See (the)`,HND:`Honduras`,HKG:`Hong Kong`,HUN:`Hungary`,ISL:`Iceland`,IND:`India`,IDN:`Indonesia`,IRN:`Iran (Islamic Republic of)`,IRQ:`Iraq`,IRL:`Ireland`,IMN:`Isle of Man`,ISR:`Israel`,ITA:`Italy`,JAM:`Jamaica`,JPN:`Japan`,JEY:`Jersey`,JOR:`Jordan`,KAZ:`Kazakhstan`,KEN:`Kenya`,KIR:`Kiribati`,PRK:`Korea (the Democratic People's Republic of)`,KOR:`Korea (the Republic of)`,KWT:`Kuwait`,KGZ:`Kyrgyzstan`,LAO:`Lao People's Democratic Republic (the)`,LVA:`Latvia`,LBN:`Lebanon`,LSO:`Lesotho`,LBR:`Liberia`,LBY:`Libya`,LIE:`Liechtenstein`,LTU:`Lithuania`,LUX:`Luxembourg`,MAC:`Macao`,MDG:`Madagascar`,MWI:`Malawi`,MYS:`Malaysia`,MDV:`Maldives`,MLI:`Mali`,MLT:`Malta`,MHL:`Marshall Islands (the)`,MTQ:`Martinique`,MRT:`Mauritania`,MUS:`Mauritius`,MYT:`Mayotte`,MEX:`Mexico`,FSM:`Micronesia (Federated States of)`,MDA:`Moldova (the Republic of)`,MCO:`Monaco`,MNG:`Mongolia`,MNE:`Montenegro`,MSR:`Montserrat`,MAR:`Morocco`,MOZ:`Mozambique`,MMR:`Myanmar`,NAM:`Namibia`,NRU:`Nauru`,NPL:`Nepal`,NLD:`Netherlands (the)`,NCL:`New Caledonia`,NZL:`New Zealand`,NIC:`Nicaragua`,NER:`Niger (the)`,NGA:`Nigeria`,NIU:`Niue`,NFK:`Norfolk Island`,MKD:`North Macedonia`,MNP:`Northern Mariana Islands (the)`,NOR:`Norway`,OMN:`Oman`,PAK:`Pakistan`,PLW:`Palau`,PSE:`Palestine, State of`,PAN:`Panama`,PNG:`Papua New Guinea`,PRY:`Paraguay`,PER:`Peru`,PHL:`Philippines (the)`,PCN:`Pitcairn`,POL:`Poland`,PRT:`Portugal`,PRI:`Puerto Rico`,QAT:`Qatar`,ROU:`Romania`,RUS:`Russian Federation (the)`,RWA:`Rwanda`,REU:`Réunion`,BLM:`Saint Barthélemy`,SHN:`Saint Helena, Ascension and Tristan da Cunha`,KNA:`Saint Kitts and Nevis`,LCA:`Saint Lucia`,MAF:`Saint Martin (French part)`,SPM:`Saint Pierre and Miquelon`,VCT:`Saint Vincent and the Grenadines`,WSM:`Samoa`,SMR:`San Marino`,STP:`Sao Tome and Principe`,SAU:`Saudi Arabia`,SEN:`Senegal`,SRB:`Serbia`,SYC:`Seychelles`,SLE:`Sierra Leone`,SGP:`Singapore`,SXM:`Sint Maarten (Dutch part)`,SVK:`Slovakia`,SVN:`Slovenia`,SLB:`Solomon Islands`,SOM:`Somalia`,ZAF:`South Africa`,SGS:`South Georgia and the South Sandwich Islands`,SSD:`South Sudan`,ESP:`Spain`,LKA:`Sri Lanka`,SDN:`Sudan (the)`,SUR:`Suriname`,SJM:`Svalbard and Jan Mayen`,SWE:`Sweden`,CHE:`Switzerland`,SYR:`Syrian Arab Republic (the)`,TWN:`Taiwan (Province of China)`,TJK:`Tajikistan`,TZA:`Tanzania, the United Republic of`,THA:`Thailand`,TLS:`Timor-Leste`,TGO:`Togo`,TKL:`Tokelau`,TON:`Tonga`,TTO:`Trinidad and Tobago`,TUN:`Tunisia`,TUR:`Turkey`,TKM:`Turkmenistan`,TCA:`Turks and Caicos Islands (the)`,TUV:`Tuvalu`,UGA:`Uganda`,UKR:`Ukraine`,ARE:`United Arab Emirates (the)`,GBR:`United Kingdom of Great Britain and Northern Ireland (the)`,UMI:`United States Minor Outlying Islands (the)`,USA:`United States of America (the)`,URY:`Uruguay`,UZB:`Uzbekistan`,VUT:`Vanuatu`,VEN:`Venezuela (Bolivarian Republic of)`,VNM:`Viet Nam`,VGB:`Virgin Islands (British)`,VIR:`Virgin Islands (U.S.)`,WLF:`Wallis and Futuna`,ESH:`Western Sahara*`,YEM:`Yemen`,ZMB:`Zambia`,ZWE:`Zimbabwe`,ALA:`Åland Islands`,GBD:`British Overseas Territories Citizen`,GBN:`British National (Overseas)`,GBO:`British Overseas Citizen`,GBS:`British Subject`,GBP:`British Protected Person`,RKS:`Republic of Kosovo`,D:`Germany`,XXK:`Kosovo`,EUE:`European Union (EU)`,UNO:`United Nations Organization or one of its officials`,UNA:`United Nations specialized agency or one of its officials`,UNK:`Resident of Kosovo to whom a travel document has been issued by the United Nations Interim Administration Mission in Kosovo (UNMIK)`,XBA:`African Development Bank (ADB)`,XIM:`African Export-Import Bank (AFREXIM bank)`,XCC:`Caribbean Community or one of its emissaries (CARICOM)`,XCE:`Council of Europe`,XCO:`Common Market for Eastern and Southern Africa (COMESA)`,XEC:`Economic Community of West African States (ECOWAS)`,XPO:`International Criminal Police Organization (INTERPOL)`,XES:`Organization of Eastern Caribbean States (OECS)`,XOM:`Sovereign Military Order of Malta or one of its emissaries`,XDC:`Southern African Development Community`,XXA:`Stateless person, as defined in Article 1 of the 1954 Convention Relating to the Status of Stateless Persons`,XXB:`Refugee, as defined in Article 1 of the 1951 Convention Relating to the Status of Refugees as amended by the 1967 Protocol`,XXC:`Refugee, other than as defined under the code XXB above`,XXX:`Person of unspecified nationality, for whom issuing State does not consider it necessary to specify any of the codes XXA, XXB or XXC above, whatever that person’s status may be. This category may include a person who is neither stateless nor a refugee but who is of unknown nationality and legally residing in the State of issue.`,ANT:`Netherlands Antilles`,NTZ:`Neutral Zone`},Object.freeze(Mg)}));function Pg(e){if(typeof e==`string`&&(e=e.split(/[\r\n]+/)),!Array.isArray(e))throw TypeError(`input must be an array or string`);for(let t of e)if(!t.match(/[A-Z0-9<]+/))throw TypeError(`lines must be composed of only alphanumerical characters and "<"`);return e}var Fg=t((()=>{}));function Ig(e){if(e.length!==2)throw Error(`invalid document code: ${e}. must be 2 char length`);let[t,n]=e;return Lg(t,e),Rg(n,e),`${t}${n}`}function Lg(e,t){if(!zg.includes(e)){let e=new Intl.ListFormat(`en-US`,{style:`short`,type:`disjunction`});throw Error(`invalid document code: ${t}. First character must be ${e.format(zg)}`)}}function Rg(e,t){let n=Number.parseInt(e,10);if(Number.isNaN(n))throw Error(`invalid document code number: ${t}. Second character must be a number`)}var zg,Bg=t((()=>{zg=[`A`,`B`,`D`]}));function Vg(e){return e.replaceAll(/<+$/g,``).replaceAll(`<`,` `)}var Hg=t((()=>{}));function Ug(e){if(!e.match(/^[A-Z<]+$/))throw Error(`invalid text: ${e}. Must be only alphabetical with <`);return Vg(e)}var Wg=t((()=>{Hg()}));function Gg(e,t,n=/^[0-9A-Z<]+$/){let r=Vg(e);if(!n.test(e))throw new Kg(`invalid text: ${e}. Must match the following regular expression: ${n.toString()}`,r,t,t+r.length);return r}var Kg,qg=t((()=>{Hg(),Kg=class extends Error{value;start;end;constructor(e,t,n,r){super(e),this.value=t,this.start=n,this.end=r}}}));function Jg(e){return Qg[e]?Qg[e]:e}function Yg(e){return Zg[e]?Zg[e]:e}function Xg(e,t){let n=``,r=[],i=e.split(``);for(let[e,a]of i.entries())if(t.type===X.ALPHABETIC){let i=Yg(a);i!==a&&r.push({line:t.line,column:t.start+e,original:a,corrected:i}),n+=i}else if(t.type===X.NUMERIC){let i=Jg(a);i!==a&&r.push({line:t.line,column:t.start+e,original:a,corrected:i}),n+=i}else n+=a;return{correctedText:n,autocorrect:r}}var Zg,Qg,$g=t((()=>{r_(),Zg={8:`B`,6:`G`,0:`O`,1:`I`,5:`S`,2:`Z`},Qg={B:`8`,G:`6`,O:`0`,I:`1`,S:`5`,Z:`2`}}));function e_(e){n_(e,`label`,`string`),e.field!==null&&n_(e,`field`,`string`),n_(e,`line`,`number`),n_(e,`start`,`number`),n_(e,`end`,`number`),n_(e,`parser`,`function`);let t={line:e.line,start:e.start,end:e.end},n=[t];if(Array.isArray(e.related))for(let t of e.related)n_(t,`line`,`number`),n_(t,`start`,`number`),n_(t,`end`,`number`),n.push(t);return{parser:(t,r)=>{let i=t_(t,e),a=(e.related||[]).map(e=>t_(t,e)),o={label:e.label,field:e.field,value:null,valid:!1,ranges:n.map(e=>({...e,raw:t_(t,e)})),line:0,start:0,end:0,autocorrect:[]},s=o.ranges[0];o.line=s.line,o.start=s.start,o.end=s.end;try{let t=e.parser(i,...a);typeof t==`object`?(o.value=t.value,o.valid=t.valid??!0,t.start!==void 0&&(o.start=s.start+t.start),t.end!==void 0&&(o.end=s.start+t.end),t.valid===!1&&t.error&&(o.error=t.error)):(o.value=t,o.valid=!0)}catch(e){o.error=e.message,e instanceof Kg&&(o.value=e.value,o.start=s.start+e.start,o.end=s.start+e.end)}for(let e of r)e.line===o.line&&e.column>=o.start&&e.column<o.end&&o.autocorrect.push(e);return o},autocorrector:n=>({...Xg(t_(n,e),e),range:t})}}function t_(e,t){return e[t.line].slice(t.start,t.end)}function n_(e,t,n){if(typeof e[t]!==n)throw TypeError(`${String(t)} must be a ${n}`)}var X,r_=t((()=>{qg(),$g(),X={NUMERIC:`NUMERIC`,ALPHABETIC:`ALPHABETIC`,ALPHANUMERIC:`ALPHANUMERIC`}}));function i_(e){let t=0,n=[7,3,1];for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);i===60&&(i=0),i>=65&&(i-=55),i>=48&&(i-=48),i*=n[r%3],t+=i}return t%10}function a_(e,t){let n=i_(e),r=n===Number(t);return{valid:r,error:r?null:`invalid check digit: ${t}. Must be ${n}`}}var o_=t((()=>{}));function s_(e,...t){return{value:e,...a_(t.join(``),e)}}var c_=t((()=>{o_()}));function l_(e){if(!e.match(/^[0-9<]{4,6}$/))throw Error(`invalid date: ${e}`);let t=e.slice(2,4);if(t!==`<<`&&(Number.parseInt(t,10)<1||Number.parseInt(t,10)>12))throw Error(`invalid date month: ${t}`);if(e.length===6){let t=e.slice(4,6);if(t!==`<<`&&(Number.parseInt(t,10)<1||Number.parseInt(t,10)>31))throw Error(`invalid date day: ${t}`)}return e}var u_=t((()=>{}));function d_(e,t){return{value:e,...a_(t,e)}}var f_=t((()=>{o_()}));function p_(e,t,n){let r,i;if(t===`<`&&n){let t=n.indexOf(`<`);i=e+n.slice(0,t-1),r=i.length+1}else i=Vg(e),r=i.length;return{value:i,start:0,end:r}}var m_=t((()=>{Hg()}));function h_(e,t,n){if(e===`<`&&n){let e=n.indexOf(`<`),r=n.slice(0,e-1),i=n.charAt(e-1),a={value:i,start:e,end:e+1},o=a_(`${t}<${r}`,i);return o.valid||(o=a_(`${t}${r}`,i)),{...a,...o}}return{value:e,...a_(t,e)}}var g_=t((()=>{o_()}));function __(e){let t=e.replace(/.*?<{2}/,``),n=Gg(t,e.length-t.length,/^[A-Z<]+<*$/),r=e.length-t.length;return{value:n,start:r,end:r+n.length}}var v_=t((()=>{qg()}));function y_(e){let t=Gg(e.replace(/<{2}.*$/,``),0,/^[A-Z<]*<*$/);return{value:t,start:0,end:t.length}}var b_=t((()=>{qg()}));function x_(e){switch(e){case`M`:return`male`;case`F`:return`female`;case`<`:return`nonspecified`;default:throw Error(`invalid sex: ${e}. Must be M, F or <.`)}}var S_=t((()=>{}));function C_(e){if(e=Vg(e),!Mg[e])throw Error(`invalid state code: ${e}`);return{value:e,start:0,end:e.length}}var w_=t((()=>{Ng(),Hg()})),T_,E_,D_,O_,k_,A_,j_,M_,N_,P_,F_,I_,L_,R_,z_,B_=t((()=>{c_(),u_(),f_(),m_(),g_(),v_(),b_(),S_(),w_(),r_(),T_={label:`Document number`,field:`documentNumber`,parser:p_,type:X.ALPHANUMERIC},E_={label:`Document number check digit`,field:`documentNumberCheckDigit`,parser:h_,type:X.NUMERIC},D_={label:`Document code`,field:`documentCode`,type:X.ALPHABETIC},O_={label:`Document code`,field:`documentCode`,type:X.ALPHANUMERIC},k_={label:`Nationality`,field:`nationality`,parser:C_,type:X.ALPHABETIC},A_={label:`Sex`,field:`sex`,parser:x_,type:X.ALPHABETIC},j_={label:`Expiration date`,field:`expirationDate`,parser:l_,type:X.NUMERIC},M_={label:`Expiration date check digit`,field:`expirationDateCheckDigit`,parser:d_,type:X.NUMERIC},N_={label:`Composite check digit`,field:`compositeCheckDigit`,parser:s_,type:X.NUMERIC},P_={label:`Birth date`,field:`birthDate`,parser:l_,type:X.NUMERIC},F_={label:`Birth date check digit`,field:`birthDateCheckDigit`,parser:d_,type:X.NUMERIC},I_={label:`Issue date`,field:`issueDate`,parser:l_,type:X.NUMERIC},L_={label:`First name`,field:`firstName`,parser:__,type:X.ALPHABETIC},R_={label:`Last name`,field:`lastName`,parser:y_,type:X.ALPHABETIC},z_={label:`Issuing state`,field:`issuingState`,parser:C_,type:X.ALPHABETIC}})),V_,H_,U_=t((()=>{Bg(),Wg(),r_(),B_(),V_=[{...O_,line:0,start:0,end:2,parser:Ig},{...z_,line:0,start:2,end:5},{...T_,line:0,start:5,end:14},{...E_,line:0,start:14,end:15,related:[{line:0,start:0,end:14}]},{...j_,line:0,start:15,end:21},{...R_,line:0,start:21,end:29,parser:Ug},{...N_,line:0,start:29,end:30,related:[{line:0,start:0,end:29}]}],H_=V_.map(e_)}));function W_(e,t){switch(e){case`TD1`:case`TD2`:case`TD3`:case`FRENCH_DRIVING_LICENSE`:return G_(t.documentNumber);case`FRENCH_NATIONAL_ID`:return G_(t.issueDate,t.administrativeCode2,t.documentNumber);case`SWISS_DRIVING_LICENSE`:return G_(t.pinCode,t.versionNumber);default:K_(e)}}function G_(...e){let t=``;for(let n of e){if(!n)return null;t+=n}return t}function K_(e){throw Error(`unrecognized format: ${e}`)}var q_=t((()=>{}));function J_(e,t,n){let r=[];for(let[i,{parser:a}]of t.entries())r.push(a(e,n[i]));return r}function Y_(e){let t={},n=!0;for(let r of e)r.valid||(n=!1),r.field&&(t[r.field]=r.valid?r.value:null);return{fields:t,allValid:n}}function X_(e,t,n){let r=e.slice(),i=[];if(n)for(let{autocorrector:n}of t){let{autocorrect:t,correctedText:a,range:o}=n(e);i.push(t);let s=r[o.line];r[o.line]=s.slice(0,o.start)+a+s.slice(o.end)}else i=Array(t.length).fill([]);return{corrected:r,autocorrectArray:i}}function Z_(e,t,n,r){let{autocorrect:i=!1}=r,{corrected:a,autocorrectArray:o}=X_(t,n,i),s=J_(a,n,o),c=Y_(s);return{format:e,details:s,fields:c.fields,documentNumber:W_(e,c.fields),valid:c.allValid}}var Q_=t((()=>{q_()}));function $_(e,t){if(e.length!==1)throw Error(`invalid number of lines: ${e.length}: Must be 1 for ${ev}`);if(e[0].length!==30)throw Error(`invalid number of characters for line 1: ${e[0].length}. Must be 30 for ${ev}`);return Z_(ev,e,H_,t)}var ev,tv=t((()=>{jg(),U_(),Q_(),ev=Ag.FRENCH_DRIVING_LICENSE}));function nv(e){let t=e.charAt(0);if(t!==`A`&&t!==`C`&&t!==`I`)throw Error(`invalid document code: ${e}. First character must be A, C or I`);let n=e.charAt(1);if(n===`V`)throw Error(`invalid document code: ${e}. Second character may not be V`);return n===`<`?{value:t,start:0,end:1}:e}var rv=t((()=>{}));function iv(e){let t=Gg(e,0);return{value:t,start:0,end:t.length}}var av=t((()=>{qg()})),ov,sv,cv=t((()=>{Wg(),rv(),av(),r_(),B_(),ov=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:30,parser:Ug},{label:`Administrative code`,field:`administrativeCode`,line:0,start:30,end:36,parser:iv},{...I_,line:1,start:0,end:4},{label:`Administrative code 2`,field:`administrativeCode2`,line:1,start:4,end:7,parser:iv},{...T_,line:1,start:7,end:12},{...E_,line:1,start:12,end:13,related:[{line:1,start:0,end:12}]},{...L_,line:1,start:13,end:27,parser:Ug},{...P_,line:1,start:27,end:33},{...F_,line:1,start:33,end:34,related:[{line:1,start:27,end:33}]},{...A_,line:1,start:34,end:35},{...N_,line:1,start:35,end:36,related:[{line:0,start:0,end:36},{line:1,start:0,end:35}]}],sv=ov.map(e_)}));function lv(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${uv}`);for(let[t,n]of e.entries())if(n.length!==36)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 36 for ${uv}`);return Z_(uv,e,sv,t)}var uv,dv=t((()=>{jg(),cv(),Q_(),uv=Ag.FRENCH_NATIONAL_ID}));function fv(e){if(!e.match(/^[0-9]+$/))throw Error(`invalid number: ${e}`);return e}var pv=t((()=>{}));function mv(e){if(!e.match(/^<*$/))throw Error(`invalid separator: ${e}. Must be composed only of "<"`);return e}var hv=t((()=>{}));function gv(e){if(e!==`FA`)throw Error(`invalid document code: ${e}. Must be FA`);return e}var _v=t((()=>{}));function vv(e){switch(e){case`D`:case`F`:case`I`:case`R`:return e;default:throw Error(`invalid languageCode code: ${e}. Must be D, F, I or R`)}}var yv=t((()=>{}));function bv(e){let t=e.slice(0,3),n=e.slice(3,6),r=e.charAt(6),i=e.slice(7);if(!t.match(/^[A-Z0-9]{3}$/))throw Error(`invalid document number: ${e}. Must start with three alphanumeric digits`);if(!n.match(/^[0-9]{3}$/))throw Error(`invalid document number: ${e}. Must have numeric digits in positions 4, 5 and 6`);if(i!==`<<`)throw Error(`invalid document number: ${e}. Must end with <<`);return vv(r),{value:e.slice(0,7),start:0,end:7}}var xv=t((()=>{yv()}));function Sv(e){if(e!==`CHE`&&e!==`LIE`)throw Error(`invalid state code: ${e}. Must be CHE or LIE`);return e}var Cv=t((()=>{})),wv,Tv,Ev=t((()=>{pv(),hv(),_v(),xv(),Cv(),yv(),r_(),B_(),wv=[{...T_,line:0,start:0,end:9,parser:bv},{label:`Language code`,field:`languageCode`,line:0,start:6,end:7,parser:vv,type:X.ALPHABETIC},{...D_,line:1,start:0,end:2,parser:gv},{...z_,line:1,start:2,end:5,parser:Sv},{label:`PIN code`,field:`pinCode`,line:1,start:5,end:14,parser:fv,type:X.NUMERIC},{label:`Version number`,field:`versionNumber`,line:1,start:14,end:17,parser:fv,type:X.NUMERIC},{label:`Separator 1`,field:null,line:1,start:17,end:19,parser:mv},{...P_,line:1,start:19,end:25},{label:`Separator 2`,field:null,line:1,start:25,end:30,parser:mv},{...R_,line:2,start:0,end:30},{...L_,line:2,start:0,end:30}],Tv=wv.map(e_)}));function Dv(e,t){if(e.length!==3)throw Error(`invalid number of lines: ${e.length}: Must be 3 for ${Ov}`);if(e[0].length!==9)throw Error(`invalid number of characters for line 1: ${e[0].length}. Must be 9 for ${Ov}`);if(e[1].length!==30)throw Error(`invalid number of characters for line 2: ${e[1].length}. Must be 30 for ${Ov}`);if(e[2].length!==30)throw Error(`invalid number of characters for line 3: ${e[2].length}. Must be 30 for ${Ov}`);return Z_(Ov,e,Tv,t)}var Ov,kv=t((()=>{jg(),Q_(),Ev(),Ov=Ag.SWISS_DRIVING_LICENSE}));function Av(e){let t=Gg(e,0);return{value:t,start:0,end:t.length}}var jv=t((()=>{qg()})),Mv,Nv,Pv=t((()=>{rv(),jv(),av(),r_(),B_(),Mv=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...T_,line:0,start:5,end:14,related:[{line:0,start:14,end:15},{line:0,start:15,end:30}]},{...E_,line:0,start:14,end:15,related:[{line:0,start:5,end:14},{line:0,start:15,end:30}]},{label:`Optional field 1`,field:`optional1`,line:0,start:15,end:30,related:[],parser:Av},{...P_,start:0,end:6,line:1},{...F_,line:1,start:6,end:7,related:[{line:1,start:0,end:6}]},{...A_,line:1,start:7,end:8},{...j_,line:1,start:8,end:14},{...M_,line:1,start:14,end:15,related:[{line:1,start:8,end:14}]},{...k_,line:1,start:15,end:18},{label:`Optional field 2`,field:`optional2`,line:1,start:18,end:29,parser:iv},{...N_,line:1,start:29,end:30,related:[{line:0,start:5,end:30},{line:1,start:0,end:7},{line:1,start:8,end:15},{line:1,start:18,end:29}]},{...R_,line:2,start:0,end:30},{...L_,line:2,start:0,end:30}],Nv=Mv.map(e_)}));function Fv(e,t){if(e.length!==3)throw Error(`invalid number of lines: ${e.length}: Must be 3 for ${Iv}`);for(let[t,n]of e.entries())if(n.length!==30)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 30 for ${Iv}`);return Z_(Iv,e,Nv,t)}var Iv,Lv=t((()=>{jg(),Q_(),Pv(),Iv=Ag.TD1})),Rv,zv,Bv=t((()=>{rv(),av(),r_(),B_(),Rv=[{...D_,line:0,start:0,end:2,parser:nv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:36},{...L_,line:0,start:5,end:36},{...T_,line:1,start:0,end:9,related:[{line:1,start:9,end:10},{line:1,start:28,end:35}]},{...E_,line:1,start:9,end:10,related:[{line:1,start:0,end:9},{line:1,start:28,end:35}]},{...k_,line:1,start:10,end:13},{...P_,line:1,start:13,end:19},{...F_,line:1,start:19,end:20,related:[{line:1,start:13,end:19}]},{...A_,line:1,start:20,end:21},{...j_,line:1,start:21,end:27},{...M_,line:1,start:27,end:28,related:[{line:1,start:21,end:27}]},{label:`Optional field`,field:`optional`,line:1,start:28,end:35,parser:iv},{...N_,line:1,start:35,end:36,related:[{line:1,start:0,end:10},{line:1,start:13,end:20},{line:1,start:21,end:35}]}],zv=Rv.map(e_)}));function Vv(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${Hv}`);for(let[t,n]of e.entries())if(n.length!==36)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 36 for TD2`);return Z_(Hv,e,zv,t)}var Hv,Uv=t((()=>{jg(),Q_(),Bv(),Hv=Ag.TD2}));function Wv(e){let t=e.charAt(0);if(t!==`P`)throw Error(`invalid document code: ${e}. First character must be P`);let n=e.charAt(1);if(!n.match(/[A-Z<]/))throw Error(`invalid document code: ${e}. Second character must be a letter or <`);return n===`<`?{value:t,start:0,end:1}:e}var Gv=t((()=>{}));function Kv(e){let t=Gg(e,0,/^[A-Z0-9<]+<*$/);return{value:t,start:0,end:t.length}}var qv=t((()=>{qg()}));function Jv(e,t){return Vg(t)===``?e!==`<`&&e!==`0`?{value:e,valid:!1,error:`invalid check digit ${e}: must be 0 or <`}:e:{value:e,...a_(t,e)}}var Yv=t((()=>{o_(),Hg()})),Xv,Zv,Qv=t((()=>{Gv(),qv(),Yv(),r_(),B_(),Xv=[{...D_,line:0,start:0,end:2,parser:Wv},{...z_,line:0,start:2,end:5},{...R_,line:0,start:5,end:44},{...L_,line:0,start:5,end:44},{...T_,line:1,start:0,end:9},{...E_,line:1,start:9,end:10,related:[{line:1,start:0,end:9}]},{...k_,line:1,start:10,end:13},{...P_,line:1,start:13,end:19},{...F_,line:1,start:19,end:20,related:[{line:1,start:13,end:19}]},{...A_,line:1,start:20,end:21},{...j_,line:1,start:21,end:27},{...M_,line:1,start:27,end:28,related:[{line:1,start:21,end:27}]},{label:`Personal number`,field:`personalNumber`,line:1,start:28,end:42,parser:Kv},{label:`Personal number check digit`,field:`personalNumberCheckDigit`,line:1,start:42,end:43,related:[{line:1,start:28,end:42}],parser:Jv},{...N_,line:1,start:43,end:44,related:[{line:1,start:0,end:10},{line:1,start:13,end:20},{line:1,start:21,end:43}]}],Zv=Xv.map(e_)}));function $v(e,t){if(e.length!==2)throw Error(`invalid number of lines: ${e.length}: Must be 2 for ${ey}`);for(let[t,n]of e.entries())if(n.length!==44)throw Error(`invalid number of characters for line ${t+1}: ${n.length}. Must be 44 for TD3`);return Z_(ey,e,Zv,t)}var ey,ty=t((()=>{jg(),Q_(),Qv(),ey=Ag.TD3})),ny,ry=t((()=>{tv(),dv(),kv(),Lv(),Uv(),ty(),ny={td1:Fv,td2:Vv,td3:$v,swissDrivingLicense:Dv,frenchNationalId:lv,frenchDrivingLicense:$_}}));function iy(e,t={}){let n=Pg(e);switch(n.length){case 1:switch(n[0].length){case 30:return ny.frenchDrivingLicense(n,t);default:throw Error(`unrecognized document format. First line of input must have 30 (French Driving License) characters and it has a length of ${n[0].length}`)}case 2:case 3:switch(n[0].length){case 30:return ny.td1(n,t);case 36:return n[0].slice(30,35).match(/[0-9]/)||n[0].match(/^IDFRA/)?ny.frenchNationalId(n,t):ny.td2(n,t);case 44:return ny.td3(n,t);case 9:return ny.swissDrivingLicense(n,t);default:throw Error(`unrecognized document format. First line of input must have 30 (TD1), 36 (TD2 or French National Id), 44 (TD3) or 9 (Swiss Driving License) characters and it has a length of ${n[0].length}`)}default:throw Error(`unrecognized document format. Input must have one, two or three lines, found ${n.length}`)}}var ay=t((()=>{Fg(),ry()})),oy=t((()=>{kg(),jg(),Ng(),ay()})),sy,cy,ly=t((()=>{dd(),sy=cd(),cy=({value:e,country:t,kind:n,source:r,reference:i=new Date})=>{if(!e)return null;if(r===`AAMVA`){if(!/^\d{8}$/u.test(e))return null;let n;if(t===`CAN`)n=`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`;else if(t===`USA`)n=`${e.slice(4,8)}-${e.slice(0,2)}-${e.slice(2,4)}`;else return null;return sy.safeParse(n).success?n:null}if(!/^\d{6}$/u.test(e))return null;let a=i.toISOString().slice(0,10),o=Math.floor(i.getUTCFullYear()/100)*100,s=[o-100,o,o+100].map(t=>`${String(t+Number(e.slice(0,2))).padStart(4,`0`)}-${e.slice(2,4)}-${e.slice(4,6)}`).filter(e=>sy.safeParse(e).success);if(n===`birth`||n===`issue`)return s.filter(e=>e<=a).sort().at(-1)??null;let c=Date.parse(a);return s.sort((e,t)=>Math.abs(Date.parse(e)-c)-Math.abs(Date.parse(t)-c)||t.localeCompare(e))[0]??null}})),Z,uy,dy,fy=t((()=>{oy(),W(),bg(),ly(),Z=e=>(e?e.replaceAll(`<`,` `).trim():``)||null,uy=e=>{if(!e)return null;try{let t=iy(e.split(`
62
62
  `)),n=t.fields,r=n.documentCode??``,i=t.format.includes(`DRIVING_LICENSE`)?`DRV`:r.startsWith(`P`)?`PASSPORT`:r.startsWith(`V`)?`VISA`:/^[IAC]/u.test(r)?`ID`:null,a=[n.optional,n.optional1,n.optional2].map(Z).filter(Boolean).join(` `);return yg.parse({document:{source:`MRZ`,type:i,issuing_country:Z(n.issuingState),number:Z(t.documentNumber),issue_date:cy({value:n.issueDate,source:`MRZ`,kind:`issue`}),expiry_date:cy({value:n.expirationDate,source:`MRZ`,kind:`expiry`}),optional_data:Z(a)},holder:{first_name:Z(n.firstName),last_name:Z(n.lastName),middle_name:null,birth_date:cy({value:n.birthDate,source:`MRZ`,kind:`birth`}),sex:n.sex===`male`?`M`:n.sex===`female`?`F`:null,nationality:Z(n.nationality),personal_number:Z(n.personalNumber)},address:null,raw_data:{mrz_lines:e.split(`
63
63
  `),aamva_version:null}})}catch{return null}},dy=e=>{let t=e.replace(/<LF>|<CR>|<RS>/gi,`
64
64
  `).replace(/\r\n|\r/g,`
@@ -67,6 +67,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
67
67
  `));else for(let n of r[e]??[])a(e+1,[...t,n])};return a(0,[]),i},Dy=e=>{try{return iy(e.split(`
68
68
  `)).valid}catch{return!1}},Oy=e=>{let t=new Set,n=new Set,r=new Set,i=yy(e);for(let e of py)for(let a of Ty({lines:i,spec:e})){let i=a.join(`
69
69
  `);Dy(i)&&t.add(i);for(let t of Ey({group:a,spec:e,necessaryOnly:!0}))Dy(t)&&n.add(t);for(let t of Ey({group:a,spec:e}))Dy(t)&&r.add(t)}return t.size===1?[...t][0]??null:t.size>1?null:n.size===1?[...n][0]??null:n.size>1?null:r.size===1?[...r][0]??null:null}})),Ay,jy=t((()=>{oy(),fy(),ky(),Ay=({result:e})=>{let t=e.lines.map(e=>e.text.normalize(`NFKC`).toUpperCase().replaceAll(`Π`,`T`).replace(/\s+/gu,``)).filter(e=>e.length>=29&&/^[A-Z0-9<]+$/u.test(e)),n=Oy(t);if(!n)return null;try{if(!iy(n.split(`
70
- `)).valid)return null;let e=uy(n);return e?{type:`mrz`,code:n,payload:e}:null}catch{return null}}})),My,Ny,Py,Fy,Iy,Ly,Ry=t((()=>{Sm(),fy(),My=null,Ny=()=>globalThis.window===void 0?`zxing-wasm/reader`:bm({filename:`zxing-wasm/reader/index.js`}),Py=async()=>{let e=await import(Ny());return globalThis.window!==void 0&&e.setZXingModuleOverrides({locateFile:e=>bm({filename:`zxing-wasm/reader/${e}`})}),e},Fy=async()=>{My??=Py();try{return await My}catch(e){throw My=null,e}},Iy=async()=>{await(await Fy()).prepareZXingModule({fireImmediately:!0})},Ly=async({image:e})=>{let t=await(await Fy()).readBarcodes(e,{formats:[`PDF417`],tryHarder:!0});for(let e of t)try{let t=dy(e.text);return{type:`aamva`,code:e.text,payload:t}}catch{}return null}})),zy,By=t((()=>{W(),zh(),qh(),ag(),lg(),Og(),jy(),Ry(),zy=({runtime:e,detector:t,alignment:n,text:r,readImage:i})=>{let a=async({image:a,language:o,engine:s,scanBarcodes:c=!1})=>{let l=a instanceof Blob?a:new Blob([a]),u=await e.createImageBitmap(l);try{let a=await t.analyzeDocument({frame:u});if(!a.detection)throw Error(U.DOCUMENT_NOT_FOUND);let l=await n.orientDocumentFrame({frame:u,polygon:a.detection.polygon,orientation:a.detection.orientation});if(!l)throw Error(U.IMAGE_PROCESSING_FAILED);try{let t=ig({image:i({frame:u}),polygon:a.detection.polygon,sourceOrientation:l.orientation.rotation}),n=await r.readRectifiedText({frame:l.frame,language:o,engine:s,image:t});if(!n)throw Error(U.DOCUMENT_TEXT_NOT_READABLE);let d=i({frame:l.frame}),f=null;if(c){let t=e.createImageData(d.width,d.height);t.data.set(d.data),f=await Ly({image:t})}let p=[Ay({result:n}),f].filter(e=>e!==null),m=i({frame:l.frame,width:32,height:32});return{ocr:n,codes:p,pixels:d,signature:Uh({...m,text:n.text}),blurry:a.isBlurry}}finally{l.frame.close()}}finally{u.close()}};return{classifyDocument:async({document_front:e,document_back:t,language:n,engine:r})=>{let i=await a({image:e,language:n,engine:r}),o=Lh({image:i.pixels,text:i.ocr.text,codes:i.codes});if(!o)throw Error(U.DOCUMENT_NOT_RECOGNIZED);let s=o.europeanDrivingLicense?Dg({ocr:i.ocr,image:i.pixels}):null,c=og({document:o.document})&&t?await a({image:t,language:o.europeanDrivingLicense?`latin`:n,engine:o.europeanDrivingLicense?`tiny`:r,scanBarcodes:!0}):null,l=cg({classification:{...o,identity:s},front:i,back:c}),u=[...l.reasons],d=c?c.blurry:!1;return(i.blurry||d)&&u.push(U.DOCUMENT_BLURRY),c&&!Gh({front:i.signature,current:c.signature}).distinct&&u.push(U.DOCUMENT_BACK_NOT_DISTINCT),{identity:s,...o,...l,reasons:u,valid:u.length===0,document_front:i.ocr,document_back:c?c.ocr:null}},detectDocument:async({image:e,language:t})=>{let n=await a({image:e,language:t,scanBarcodes:!0}),r=Lh({image:n.pixels,text:n.ocr.text,codes:n.codes});if(!r)throw Error(U.DOCUMENT_NOT_RECOGNIZED);let i=n.codes.find(e=>e.type===`mrz`),o=n.codes.find(e=>e.type===`aamva`),s=!!o||r.document===`id`&&!!i;return{identity:!s&&r.europeanDrivingLicense?Dg({ocr:n.ocr,image:n.pixels}):null,document_type:r.document===`driving_license`?`drv`:r.document,document_side:s?`back`:`front`,mrz_code:i?i.code:null,ammva_code:o?o.code:null}},extractDocumentCodes:async({images:e})=>{let t=[];for(let n of e){let e=await a({image:n,scanBarcodes:!0});t.push(...e.codes)}return[...new Map(t.map(e=>[`${e.type}:${e.code}`,e])).values()]}}}})),Q,Vy=t((()=>{dd(),W(),Q={language:`en`,ocrEngine:`auto`,alignment:`eyes-nose-mouth`,maxPitch:8,minPitch:-20,maxYaw:12,minYaw:-12,maxRoll:8,minDocumentFaceAreaRatio:.02,maxDocumentFaceAreaRatio:.3,minDocumentFaceWidthRatio:.075,maxDocumentFaceWidthRatio:.4,minDocumentFaceHeightRatio:.1,maxDocumentFaceHeightRatio:.65,minDocumentBoxRatio:.33,maxDocumentTextAngleDifference:16},B({language:z().default(Q.language),ocrEngine:Ql([`auto`,`tiny`,`small`,`japanese`,`chinese-simplified`,`chinese-traditional`,`cyrillic`,`arabic`]).default(Q.ocrEngine),alignment:$l(`eyes-nose-mouth`).default(Q.alignment),maxPitch:Hl().positive().max(90).default(Q.maxPitch),minPitch:Hl().negative().min(-90).default(Q.minPitch),maxYaw:Hl().positive().max(90).default(Q.maxYaw),minYaw:Hl().negative().min(-90).default(Q.minYaw),maxRoll:Hl().positive().max(90).default(Q.maxRoll),minDocumentFaceAreaRatio:Hl().min(0).max(1).default(Q.minDocumentFaceAreaRatio),maxDocumentFaceAreaRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceAreaRatio),minDocumentFaceWidthRatio:Hl().min(0).max(1).default(Q.minDocumentFaceWidthRatio),maxDocumentFaceWidthRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceWidthRatio),minDocumentFaceHeightRatio:Hl().min(0).max(1).default(Q.minDocumentFaceHeightRatio),maxDocumentFaceHeightRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceHeightRatio),minDocumentBoxRatio:Hl().min(0).max(1).default(Q.minDocumentBoxRatio),maxDocumentTextAngleDifference:Hl().min(0).max(90).default(Q.maxDocumentTextAngleDifference)}).refine(e=>e.minDocumentFaceAreaRatio<=e.maxDocumentFaceAreaRatio&&e.minDocumentFaceWidthRatio<=e.maxDocumentFaceWidthRatio&&e.minDocumentFaceHeightRatio<=e.maxDocumentFaceHeightRatio,U.INVALID_OPTIONS)})),Hy,Uy,Wy,Gy,Ky,qy,Jy=t((()=>{Hy=({data:e,height:t,normalize:n,width:r})=>{let i=new Float32Array(r*t*3),a=r*t;for(let t=0;t<a;t+=1)for(let r=0;r<3;r+=1)i[r*a+t]=n(e[t*4+r]);return i},Uy=({first:e,second:t})=>{let n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return n*r/(e.width*e.height+t.width*t.height-n*r||1)},Wy=({detections:e,threshold:t})=>e.toSorted((e,t)=>t.score-e.score).filter((e,n,r)=>!r.slice(0,n).some(n=>Uy({first:n.boundingRect,second:e.boundingRect})>t)),Gy=({face:e,x:t,y:n})=>({...e,boundingRect:{...e.boundingRect,x:e.boundingRect.x+t,y:e.boundingRect.y+n},mesh:{...e.mesh,landmarks:e.mesh.landmarks.map(e=>({...e,x:e.x+t,y:e.y+n}))}}),Ky=({faces:e})=>{let t=[];for(let n of e)t.some(e=>Uy({first:e.boundingRect,second:n.boundingRect})>.3)||t.push(n);return t},qy=({frameSize:e,tileSize:t})=>[...new Set([0,Math.round((e-t)/2),e-t])]})),Yy,Xy,Zy=t((()=>{Jy(),Yy=({outputs:e})=>({score_8:e.out0,score_16:e.out1,score_32:e.out2,bbox_8:e.out3,bbox_16:e.out4,bbox_32:e.out5,kps_8:e.out6,kps_16:e.out7,kps_32:e.out8}),Xy=({outputs:e,scale:t,threshold:n=.5})=>{let r=[];for(let i of[8,16,32]){let a=e[`score_${i}`]?.data,o=e[`bbox_${i}`]?.data,s=e[`kps_${i}`]?.data;if(!a||!o||!s)continue;let c=640/i;for(let e=0;e<a.length;e+=1){let l=a[e];if(l<n)continue;let u=Math.floor(e/2),d=u%c*i,f=Math.floor(u/c)*i,p=e*4,m=e*10,h=e=>({x:(d+s[m+e*2]*i)/t,y:(f+s[m+e*2+1]*i)/t});r.push({boundingRect:{x:(d-o[p]*i)/t,y:(f-o[p+1]*i)/t,width:(o[p]+o[p+2])*i/t,height:(o[p+1]+o[p+3])*i/t},score:l,keypoints:{leftEye:h(0),rightEye:h(1),nose:h(2),mouthLeft:h(3),mouthRight:h(4)}})}}return Wy({detections:r,threshold:.4})}})),Qy,$y,eb,tb,nb,rb,ib=t((()=>{W(),Qy=128,$y=.1,eb=4,tb=({image:e})=>{let t=65536,n=new Float32Array(t*3);for(let r=0,i=0;r<e.data.length;r+=4,i+=1)n[i]=(e.data[r]??0)/255,n[i+t]=(e.data[r+1]??0)/255,n[i+t*2]=(e.data[r+2]??0)/255;return n},nb=({polygon:e})=>{let t=e.reduce((t,n)=>({x:t.x+n.x/e.length,y:t.y+n.y/e.length}),{x:0,y:0}),n=[...e].sort((e,n)=>Math.atan2(e.y-t.y,e.x-t.x)-Math.atan2(n.y-t.y,n.x-t.x)),r=n.reduce((e,t,r)=>t.x+t.y<n[e].x+n[e].y?r:e,0);return n.slice(r).concat(n.slice(0,r))},rb=({heatmap:e,height:t,width:n})=>{if(e.length!==512*Qy)throw Error(U.INVALID_MODEL_OUTPUT);let r=[],i=1;for(let a=0;a<4;a+=1){let o=a*Qy*Qy,s=-1/0,c=0;for(let t=0;t<16384;t+=1){let n=e[o+t]??-1/0;n>s&&(s=n,c=t)}if(s<$y)throw Error(U.DOCUMENT_NOT_FOUND);i=Math.min(i,s);let l=c%Qy,u=Math.floor(c/Qy),d=s*.3,f=0,p=0,m=0;for(let t=Math.max(0,u-eb);t<=Math.min(127,u+eb);t+=1)for(let n=Math.max(0,l-eb);n<=Math.min(127,l+eb);n+=1){let r=e[o+t*Qy+n]??0;r<d||(f+=r,p+=r*n,m+=r*t)}r.push({x:(f?p/f:l)*n/Qy,y:(f?m/f:u)*t/Qy})}if(i<$y)throw Error(U.DOCUMENT_NOT_FOUND);return nb({polygon:r})}})),ab,ob=t((()=>{ab=({face:e,polygon:t})=>{if(!e)return!1;let n={x:e.boundingRect.x+e.boundingRect.width/2,y:e.boundingRect.y+e.boundingRect.height/2},r=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let a=t[e],o=t[i];a.y>n.y!=o.y>n.y&&n.x<(o.x-a.x)*(n.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}})),sb,cb=t((()=>{dd(),sb=z().regex(/^data:image\/jpeg;base64,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/).meta({format:`data-url`,contentEncoding:`base64`,contentMediaType:`image/jpeg`})})),lb,ub,db,fb,pb,mb,hb,gb,_b,vb,yb,bb,xb,Sb=t((()=>{dd(),W(),cb(),lb=[`faceStraight`,`faceUp`,`faceLeft`,`faceRight`,`faceSmile`],ub={faceDown:{pitch:20},faceLeft:{yaw:30},faceRight:{yaw:-30},faceTiltLeft:{roll:15},faceTiltRight:{roll:-15},faceUp:{pitch:-20}},db=Ql(lb),fb=z().min(1).max(255),pb=Ql([`enroll`,`unlock`,`forget`]),mb=Ql([`enroll`,`unlock`]),hb=Ql([`pending`,`started`,`failed`,`completed`]),gb=B({token:z().min(32).max(128),userId:fb.optional()}),gb.extend({poses:ql(db).min(1).max(lb.length),faces:ql(sb).min(1).max(lb.length)}),_b=ql(Hl().finite()).length(512).refine(e=>Math.abs(Math.hypot(...e)-1)<.001),Zl(db,_b).and(B({faceStraight:_b})),vb=B({pose:db,matched:Wl(),score:Hl().min(-1).max(1)}),yb=ql(db).min(1).max(lb.length).refine(e=>e[0]===`faceStraight`&&new Set(e).size===e.length),B({operation:mb,userId:fb.optional(),poses:yb.optional()}).refine(e=>e.operation===`enroll`||e.userId!==void 0&&e.poses===void 0),B({userId:fb}).strict(),bb=B({userId:fb}),bb.extend({operation:pb,poses:ql(db).max(lb.length),expiresAt:z()}),xb=bb.extend({matched:Wl(),matches:ql(vb).max(2),reason:fd.nullable()}),B({vectors:ql(B({pose:db,vector:_b})).max(lb.length),reason:fd.nullable()}),B({search:z().default(``)}),xb.extend({complete:Wl(),token:z().optional()}),bb.extend({token:z(),operationId:z().uuid()}),B({operationId:z().uuid(),operation:pb,userId:fb,status:hb}),B({origin:z().nullable(),ip:z().nullable(),user_agent:z().nullable(),language:z().nullable()})})),Cb,wb=t((()=>{Cb=({blendshapes:e})=>{let t=e.eyeBlinkLeft??0,n=e.eyeBlinkRight??0;return t>=.25&&n<=.35&&t>=n+.15}})),Tb,Eb,Db,Ob=t((()=>{Sb(),wb(),Tb=({axis:e,target:t,tolerance:n,value:r})=>r>=t-n&&r<=t+n?null:e===`yaw`?t>0?r<t?`FACEKEY_TURN_HEAD_LEFT`:`FACEKEY_TURN_HEAD_LESS`:r>t?`FACEKEY_TURN_HEAD_RIGHT`:`FACEKEY_TURN_HEAD_LESS`:e===`pitch`?t>0?r<t?`FACEKEY_LOWER_HEAD`:`FACEKEY_LOWER_HEAD_LESS`:r>t?`FACEKEY_RAISE_HEAD`:`FACEKEY_RAISE_HEAD_LESS`:t>0?r<t?`FACEKEY_TILT_HEAD_LEFT`:`FACEKEY_TILT_HEAD_LESS`:r>t?`FACEKEY_TILT_HEAD_RIGHT`:`FACEKEY_TILT_HEAD_LESS`,Eb=({pitch:e,yaw:t,roll:n,options:r})=>n<-r.maxRoll?`FACEKEY_TILT_HEAD_LEFT`:n>r.maxRoll?`FACEKEY_TILT_HEAD_RIGHT`:t<r.minYaw?`FACEKEY_TURN_HEAD_LEFT`:t>r.maxYaw?`FACEKEY_TURN_HEAD_RIGHT`:e<r.minPitch?`FACEKEY_LOWER_HEAD`:e>r.maxPitch?`FACEKEY_RAISE_HEAD`:null,Db=({blendshapes:e,pitch:t,yaw:n,roll:r,pose:i,options:a})=>{if(i===`faceSmile`)return Eb({pitch:t,yaw:n,roll:r,options:a})||((e.mouthSmileLeft??0)>=.5&&(e.mouthSmileRight??0)>=.5?null:`FACEKEY_SMILE_REQUIRED`);if(i===`faceWinkLeft`)return Eb({pitch:t,yaw:n,roll:r,options:a})||(Cb({blendshapes:e,pose:i})?null:`FACEKEY_WINK_LEFT_REQUIRED`);let o=ub[i];if(!o)return Eb({pitch:t,yaw:n,roll:r,options:a});if(o.roll===void 0){if(r<-a.maxRoll)return`FACEKEY_TILT_HEAD_LEFT`;if(r>a.maxRoll)return`FACEKEY_TILT_HEAD_RIGHT`}if(o.yaw===void 0){if(n<a.minYaw)return`FACEKEY_TURN_HEAD_LEFT`;if(n>a.maxYaw)return`FACEKEY_TURN_HEAD_RIGHT`}if(o.pitch===void 0){if(t<a.minPitch)return`FACEKEY_LOWER_HEAD`;if(t>a.maxPitch)return`FACEKEY_RAISE_HEAD`}let s=a.tolerance??15;return o.roll===void 0?o.yaw===void 0?o.pitch===void 0?null:Tb({axis:`pitch`,target:o.pitch,tolerance:s,value:t}):Tb({axis:`yaw`,target:o.yaw,tolerance:s,value:n}):o.roll>0&&r<=a.maxRoll?`FACEKEY_TILT_HEAD_LEFT`:o.roll<0&&r>=-a.maxRoll?`FACEKEY_TILT_HEAD_RIGHT`:Tb({axis:`roll`,target:o.roll,tolerance:s,value:r})}})),kb,Ab,jb,Mb,Nb=t((()=>{W(),kb=.6,Ab=({first:e,second:t})=>{if(e.length!==t.length||e.length===0)throw Error(U.INVALID_MODEL_OUTPUT);let n=e.reduce((e,n,r)=>e+n*t[r],0);return Math.max(-1,Math.min(1,n))},jb=({score:e,threshold:t=kb})=>({matched:e>t,score:Math.round(e*100)/100}),Mb=({first:e,second:t})=>Math.max(Ab({first:e.rgb,second:t.rgb}),Ab({first:e.grayscale,second:t.grayscale}))})),Pb,Fb=t((()=>{Pb=({homography:e,point:t})=>{let n=e[6]*t.x+e[7]*t.y+e[8];return{x:(e[0]*t.x+e[1]*t.y+e[2])/n,y:(e[3]*t.x+e[4]*t.y+e[5])/n}}})),Ib=t((()=>{Ob(),wb()})),Lb,Rb,zb,Bb,Vb,Hb,Ub=t((()=>{Lb=8,Rb=.16,zb=({x:e,y:t,width:n,height:r})=>{let i=e/n,a=t/r;return i<.2||i>=.8||a<.2||a>=.8},Bb=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},Vb=({image:e})=>{let t=[];for(let n=0;n<Lb;n+=1)for(let r=0;r<Lb;r+=1){let i=0,a=0,o=Math.floor(n*e.height/Lb),s=Math.floor((n+1)*e.height/Lb),c=Math.floor(r*e.width/Lb),l=Math.floor((r+1)*e.width/Lb);for(let t=o;t<s;t+=1)for(let n=c;n<l;n+=1){if(!zb({height:e.height,width:e.width,x:n,y:t}))continue;let r=(t*e.width+n)*4;i+=(e.data[r]??0)*.299+(e.data[r+1]??0)*.587+(e.data[r+2]??0)*.114,a+=1}t.push(a?i/a:0)}let n=t.reduce((e,t)=>e+t,0)/t.length,r=new Uint8Array(Math.ceil(t.length/8));for(let[e,i]of t.entries())i>=n&&(r[Math.floor(e/8)]|=1<<e%8);return{appearanceHash:r}},Hb=({first:e,second:t})=>{if(e.appearanceHash.length!==t.appearanceHash.length)return{distance:1,matched:!1};let n=e.appearanceHash.reduce((e,n,r)=>e+Bb({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8);return{distance:n,matched:n<=Rb}}})),Wb=t((()=>{bg(),Vy(),Zy(),ib(),zh(),fy(),qh(),ag(),lg(),ob(),Jy(),Ob(),Nb(),Fb(),Ib(),Tm(),ky(),Ub(),jy()})),Gb,Kb,qb=t((()=>{W(),km(),Gb=({outputs:e})=>{for(let t of new Set(Object.values(e)))t.dispose()},Kb=async({label:e,session:t,feeds:n})=>{let r=performance.now();try{return await t.run(n)}catch(e){throw Error(pd({error:e,fallback:U.INFERENCE_FAILED}),{cause:e})}finally{for(let e of new Set(Object.values(n)))e.dispose();Dm({category:`inference`,duration:performance.now()-r,key:e})}}})),Jb,Yb,Xb,Zb,Qb,$b,ex=t((()=>{W(),_h(),qb(),Jb=224,Yb=256,Xb=[0,90,180,270],Zb=[.485,.456,.406],Qb=[.229,.224,.225],$b=({runtime:e})=>{let t=async()=>{await e.session({filename:`do.ort`})},n=({frame:t,boundingRect:n={x:0,y:0,width:t.width,height:t.height}})=>{let r=Math.max(0,Math.floor(n.x)),i=Math.max(0,Math.floor(n.y)),a=Math.min(t.width,Math.ceil(n.x+n.width))-r,o=Math.min(t.height,Math.ceil(n.y+n.height))-i;if(a<=0||o<=0)throw Error(U.IMAGE_PROCESSING_FAILED);let s=Yb/Math.min(a,o),c=Math.round(a*s),l=Math.round(o*s),u=e.createCanvas(Jb,Jb),d=u.getContext(`2d`,{willReadFrequently:!0});if(!d)throw Error(U.IMAGE_PROCESSING_FAILED);d.drawImage(t,r,i,a,o,-Math.floor((c-Jb)/2),-Math.floor((l-Jb)/2),c,l);let{data:f}=d.getImageData(0,0,Jb,Jb);gh({canvas:u});let p=50176,m=new Float32Array(p*3);for(let e=0;e<3;e+=1)for(let t=0;t<p;t+=1)m[e*p+t]=(f[t*4+e]/255-Zb[e])/Qb[e];return m};return{detectDocumentOrientation:async({frame:t,boundingRect:r})=>{let i=await e.session({filename:`do.ort`}),a=n({frame:t,boundingRect:r}),o=await Kb({label:`document.orientation`,session:i,feeds:{x:e.tensor(`float32`,a,[1,3,Jb,Jb])}});try{let e=o.fetch_name_0?.data;if(!(e instanceof Float32Array)||e.length!==4||e.some(e=>!Number.isFinite(e)||e<0||e>1))throw Error(U.INVALID_MODEL_OUTPUT);let t={0:e[0],90:e[1],180:e[2],270:e[3]},n=Xb.reduce((e,n)=>t[n]>t[e]?n:e);return{rotation:n,confidence:t[n],scores:t}}finally{Gb({outputs:o})}},loadDocumentOrientationDetector:t}}})),tx,nx=t((()=>{W(),Xh(),Wb(),ex(),_h(),qb(),tx=({runtime:e})=>{let{detectDocumentOrientation:t,loadDocumentOrientationDetector:n}=$b({runtime:e}),r=`dd.ort`,i=.15,a=.75,o=.03,s=.8,c=({from:e,to:t})=>Math.hypot(t.x-e.x,t.y-e.y),l=({origin:e,first:t,second:n})=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),u=({polygon:e})=>{let t=0;for(let n=0;n<e.length;n+=1){let r=e[n],i=e[(n+1)%e.length];t+=r.x*i.y-i.x*r.y}return Math.abs(t/2)},d=async({frame:t,sourceOrientation:n=0})=>{let i=e.createCanvas(256,256),a=i.getContext(`2d`);if(!a)throw Error(U.IMAGE_PROCESSING_FAILED);a.translate(128,128),a.rotate(-n*Math.PI/180),a.drawImage(t,-128,-128,256,256);let o=a.getImageData(0,0,256,256);gh({canvas:i});let s=tb({image:{data:o.data,height:256,width:256}}),c=await e.session({filename:r}),l=await Kb({label:`document.box`,session:c,feeds:{img:e.tensor(`float32`,s,[1,3,256,256])}});try{let e=l.heatmap?.data;if(!(e instanceof Float32Array))throw Error(U.INVALID_MODEL_OUTPUT);try{let r=n%180?t.height:t.width,i=n%180?t.width:t.height;return{confidence:null,polygon:rb({heatmap:e,height:i,width:r})}}catch(e){if(e instanceof Error&&e.message===U.DOCUMENT_NOT_FOUND)return null;throw e}}finally{Gb({outputs:l})}},f=async({frame:e})=>{let n=await d({frame:e}),r=null;if(n){let i=Yh({polygon:n.polygon});i.width>0&&i.height>0&&(r=await t({frame:e,boundingRect:i}),r.rotation&&(n=await d({frame:e,sourceOrientation:r.rotation})))}let i=r!==null&&r.rotation%180!=0;return{detected:n,orientation:r,width:i?e.height:e.width,height:i?e.width:e.height}},p=({detection:e,frame:t,orientation:n})=>{let r=e.polygon.map(({x:e,y:r})=>n?.rotation===90?{x:t.width-1-r,y:e}:n?.rotation===180?{x:t.width-1-e,y:t.height-1-r}:n?.rotation===270?{x:r,y:t.height-1-e}:{x:e,y:r}),i=Jh({polygon:r});return{polygon:i,boundingRect:Yh({polygon:i}),...n?{orientation:n}:{}}},m=({frame:t})=>{let n=Math.min(1,480/Math.max(t.width,t.height)),r=e.createCanvas(Math.max(1,Math.round(t.width*n)),Math.max(1,Math.round(t.height*n))),i=r.getContext(`2d`,{willReadFrequently:!0});if(!i)throw Error(U.IMAGE_PROCESSING_FAILED);return i.drawImage(t,0,0,r.width,r.height),{canvas:r,scale:n}},h=({data:e})=>{let t=new Uint8Array(e.length/4);for(let n=0;n<t.length;n+=1){let r=n*4;t[n]=Math.round(e[r]*.299+e[r+1]*.587+e[r+2]*.114)}return t},g=({pixels:e,width:t,height:n})=>{let r=0,i=0,a=0;for(let o=1;o<n-1;o+=1)for(let n=1;n<t-1;n+=1){let s=e[o*t+n]*8-(e[(o-1)*t+n]+e[(o+1)*t+n]+e[o*t+n-1]+e[o*t+n+1]+e[(o-1)*t+n-1]+e[(o-1)*t+n+1]+e[(o+1)*t+n-1]+e[(o+1)*t+n+1]);i+=s,a+=s*s,r+=1}if(!r)return 0;let o=i/r;return Math.max(0,a/r-o*o)},_=({previous:e,current:t,next:n})=>{let r=e.x-t.x,i=e.y-t.y,a=n.x-t.x,o=n.y-t.y,s=Math.hypot(r,i)*Math.hypot(a,o);return s?Math.acos(Math.max(-1,Math.min(1,(r*a+i*o)/s)))*180/Math.PI:0},v=({first:e,second:t})=>{let n=Math.hypot(e.x,e.y),r=Math.hypot(t.x,t.y);if(!n||!r)return 90;let i=Math.abs(e.x*t.y-e.y*t.x)/(n*r);return Math.asin(Math.min(1,i))*180/Math.PI},y=({first:e,second:t})=>Math.min(e,t)/Math.max(e,t),b=({polygon:e})=>{if(e.length!==4||e.some(e=>!Number.isFinite(e.x)||!Number.isFinite(e.y)))return!1;let t=e.map((t,n)=>c({from:t,to:e[(n+1)%e.length]}));if(t.some(e=>e<=0))return!1;let n=e.map((t,n)=>l({origin:t,first:e[(n+1)%e.length],second:e[(n+2)%e.length]}));if(!n.every(e=>e>0)&&!n.every(e=>e<0))return!1;let r=e.map((t,n)=>{let r=e[(n+1)%e.length];return{x:r.x-t.x,y:r.y-t.y}}),i=v({first:r[0],second:r[2]})<=36&&v({first:r[1],second:r[3]})<=36,a=y({first:t[0],second:t[2]})>=s&&y({first:t[1],second:t[3]})>=s;return i&&a},x=({height:e,minDocumentBoxRatio:t,polygon:n,width:r})=>{if(n.length!==4)return{detection:null,rejection:`polygon_invalid`};if(!b({polygon:n}))return{detection:null,rejection:`geometry`};let i=r,s=e;if(n.map((e,t)=>_({previous:n[(t-1+n.length)%n.length],current:e,next:n[(t+1)%n.length]})).some(e=>e<35||e>145))return{detection:null,rejection:`corner_angle`};let l=[c({from:n[0],to:n[1]}),c({from:n[2],to:n[3]})],d=[c({from:n[1],to:n[2]}),c({from:n[3],to:n[0]})],f=(l[0]+l[1])/2,p=(d[0]+d[1])/2,m=Math.max(f,p)/Math.min(f,p),h=u({polygon:n})/(i*s);if(m<1.25||m>2.4)return{detection:null,rejection:`aspect_ratio`};if(h<t)return{detection:null,rejection:`coverage_low`};if(h>.99)return{detection:null,rejection:`coverage_high`};let g=n.some(e=>e.x<i*o||e.y<s*o||e.x>i*.97||e.y>s*.97);if(h>a&&g)return{detection:null,rejection:`edge_proximity`};let v=n.some(e=>e.y<s*o)&&n.some(e=>e.y>s*.97)||n.some(e=>e.x<i*o)&&n.some(e=>e.x>i*.97);if(i>s&&v&&h<a)return{detection:null,rejection:`opposite_edges`};let y=n,x=y.map(e=>e.x),S=y.map(e=>e.y),C=Math.min(...x),w=Math.min(...S),T=Math.max(...x),E=Math.max(...S);return{detection:{polygon:y,boundingRect:{x:C,y:w,width:T-C,height:E-w}},rejection:null}},S=async()=>{await e.session({filename:r})},C=async({frame:e,minDocumentBoxRatio:t=i})=>{let{canvas:n}=m({frame:e}),r=n.getContext(`2d`,{willReadFrequently:!0});if(!r)throw Error(U.IMAGE_PROCESSING_FAILED);let a=r.getImageData(0,0,n.width,n.height),o=n.width,s=n.height;gh({canvas:n});let c=h({data:a.data}),l=g({pixels:c,width:o,height:s}),{detected:u,orientation:d,width:_,height:v}=await f({frame:e}),y=u?x({height:v,minDocumentBoxRatio:t,polygon:u.polygon,width:_}):{detection:null,rejection:null},b={};return y.rejection&&(b[y.rejection]=1),{detection:y.detection?p({detection:y.detection,frame:e,orientation:d}):null,diagnostics:{accepted:+!!y.detection,confidence:u?.confidence??null,rejected:b},isBlurry:l<1e3,sharpness:l}};return{loadDocumentBoxDetector:S,detectDocumentOrientation:t,loadDocumentOrientationDetector:n,analyzeDocument:C,detectDocument:async e=>(await C({frame:e})).detection,detectDocumentBox:async e=>{let t=await d({frame:e});if(!t)return null;let n=x({height:e.height,minDocumentBoxRatio:i,polygon:t.polygon,width:e.width});return n.detection?p({detection:n.detection,frame:e,orientation:null}):null}}}})),rx,ix,ax=t((()=>{Wb(),ih(),qb(),rx=({detection:e,frame:t})=>{let n=Math.max(e.boundingRect.width,e.boundingRect.height)*1.1,r=Math.max(1,Math.min(Math.ceil(n),t.width,t.height)),i=e.boundingRect.x+e.boundingRect.width/2,a=e.boundingRect.y+e.boundingRect.height/2;return{size:r,x:Math.max(0,Math.min(t.width-r,Math.round(i-r/2))),y:Math.max(0,Math.min(t.height-r,Math.round(a-r/2)))}},ix=({runtime:e,imageFromImageBitmap:t})=>{let n=`_neutral.browDownLeft.browDownRight.browInnerUp.browOuterUpLeft.browOuterUpRight.cheekPuff.cheekSquintLeft.cheekSquintRight.eyeBlinkLeft.eyeBlinkRight.eyeLookDownLeft.eyeLookDownRight.eyeLookInLeft.eyeLookInRight.eyeLookOutLeft.eyeLookOutRight.eyeLookUpLeft.eyeLookUpRight.eyeSquintLeft.eyeSquintRight.eyeWideLeft.eyeWideRight.jawForward.jawLeft.jawOpen.jawRight.mouthClose.mouthDimpleLeft.mouthDimpleRight.mouthFrownLeft.mouthFrownRight.mouthFunnel.mouthLeft.mouthLowerDownLeft.mouthLowerDownRight.mouthPressLeft.mouthPressRight.mouthPucker.mouthRight.mouthRollLower.mouthRollUpper.mouthShrugLower.mouthShrugUpper.mouthSmileLeft.mouthSmileRight.mouthStretchLeft.mouthStretchRight.mouthUpperUpLeft.mouthUpperUpRight.noseSneerLeft.noseSneerRight`.split(`.`),r=[0,1,4,5,6,7,8,10,13,14,17,21,33,37,39,40,46,52,53,54,55,58,61,63,65,66,67,70,78,80,81,82,84,87,88,91,93,95,103,105,107,109,127,132,133,136,144,145,146,148,149,150,152,153,154,155,157,158,159,160,161,162,163,168,172,173,176,178,181,185,191,195,197,234,246,249,251,263,267,269,270,276,282,283,284,285,288,291,293,295,296,297,300,308,310,311,312,314,317,318,321,323,324,332,334,336,338,356,361,362,365,373,374,375,377,378,379,380,381,382,384,385,386,387,388,389,390,397,398,400,402,405,409,415,454,466,468,469,470,471,472,473,474,475,476,477],i=`standard`,a=({frame:e,height:n,width:r})=>t({frame:e,height:n,width:r}).data,o=({outputs:e,scale:t,threshold:n})=>{let r=[];for(let i of[8,16,32]){let a=e[`score_${i}`]??e[`cls_${i}`],o=e[`bbox_${i}`],s=e[`kps_${i}`],c=e[`obj_${i}`];if(!a||!o||!s)continue;let l=a.data,u=c?.data,d=o.data,f=s.data,p=640/i;for(let e=0;e<l.length;e+=1){let a=l[e]*(u?u[e]:1);if(a<n)continue;let o=Math.floor(e/2),s=(o%p+.5)*i,c=(Math.floor(o/p)+.5)*i,m=e*4,h=e*10,g=e=>({x:(s+f[h+e*2]*i)/t,y:(c+f[h+e*2+1]*i)/t});r.push({boundingRect:{x:(s-d[m]*i)/t,y:(c-d[m+1]*i)/t,width:(d[m]+d[m+2])*i/t,height:(d[m+1]+d[m+3])*i/t},score:a,keypoints:{leftEye:g(0),rightEye:g(1),nose:g(2),mouthLeft:g(3),mouthRight:g(4)}})}}return Wy({detections:r,threshold:.4})},s=async({frame:t,faceDetector:n})=>{let r=640/Math.max(t.width,t.height),i=Math.round(t.width*r),s=Math.round(t.height*r),c=a({frame:t,height:s,width:i}),l=Hy({data:c,height:s,width:i,normalize:e=>(e-127.5)/128}),u=new Float32Array(1228800);for(let e=0;e<3;e+=1)for(let t=0;t<s;t+=1)u.set(l.subarray(e*i*s+t*i,e*i*s+(t+1)*i),e*640*640+t*640);let d=await e.session({filename:rh[n]}),f=await Kb({label:`face.detector`,session:d,feeds:{[d.inputNames[0]]:e.tensor(`float32`,u,[1,3,640,640])}});try{return n===`standard`?Xy({outputs:Yy({outputs:f}),scale:r,threshold:.5}):o({outputs:f,scale:r,threshold:.5})}finally{Gb({outputs:f})}},c=async({frame:t})=>{let n=a({frame:t,height:128,width:128}),r=new Float32Array(49152);for(let e=0;e<49152;e+=1)r[e]=n[Math.floor(e/3)*4+e%3]/127.5-1;let i=await e.session({filename:rh.low}),o=await Kb({label:`face.detector`,session:i,feeds:{[i.inputNames[0]]:e.tensor(`float32`,r,[1,128,128,3])}});try{let e=o.regressors.data,n=o.classificators.data,r=[],i=[];for(let{count:e,copies:t}of[{count:16,copies:2},{count:8,copies:6}])for(let n=0;n<e;n+=1)for(let r=0;r<e;r+=1)for(let a=0;a<t;a+=1)i.push({x:(r+.5)/e,y:(n+.5)/e});for(let a=0;a<n.length;a+=1){let o=1/(1+Math.exp(-n[a]));if(o<.5)continue;let s=a*16,c=i[a];if(!c)continue;let l=n=>({x:(e[s+5+n*2]+c.x*128)*(t.width/128),y:(e[s+4+n*2]+c.y*128)*(t.height/128)}),u=e[s+3]*(t.width/128),d=e[s+2]*(t.height/128),f=(e[s+1]+c.x*128)*(t.width/128),p=(e[s]+c.y*128)*(t.height/128);r.push({boundingRect:{x:f-u/2,y:p-d/2,width:u,height:d},score:o,keypoints:{leftEye:l(0),rightEye:l(1),nose:l(2),mouthLeft:l(3),mouthRight:l(4)}})}return Wy({detections:r,threshold:.3})}finally{Gb({outputs:o})}},l=async({blendshapes:i=!0,detection:a,frame:o})=>{let{size:s,x:c,y:l}=rx({detection:a,frame:o}),u=t({frame:o,height:256,width:256,sourceRect:{x:c,y:l,width:s,height:s}}).data,d=await e.session({filename:`fl.ort`}),f=await Kb({label:`face.landmarks`,session:d,feeds:{[d.inputNames[0]]:e.tensor(`float32`,Hy({data:u,height:256,width:256,normalize:e=>e/255}),[1,3,256,256])}});try{if(f.score.data[0]<.5)return null;let t=f.landmarks.data,u=Array.from({length:478},(e,n)=>({x:c+t[n*3]*s/256,y:l+t[n*3+1]*s/256,z:t[n*3+2]*s/256})),d=u[33],p=u[263],m=u[1],h=(m.y-(d.y+p.y)/2)/Math.abs(p.x-d.x)*100,g=(m.x-(d.x+p.x)/2)/Math.abs(p.x-d.x)*100,_=new Float32Array(n.length);if(i){let t=new Float32Array(292);for(let e=0;e<r.length;e+=1){let n=u[r[e]];t[e*2]=n.x,t[e*2+1]=n.y}let n=await e.session({filename:`fe.ort`}),i=await Kb({label:`face.blendshape`,session:n,feeds:{[n.inputNames[0]]:e.tensor(`float32`,t,[1,146,2])}});try{_=i[n.outputNames[0]].data}finally{Gb({outputs:i})}}return{blendshapes:Object.fromEntries(n.map((e,t)=>[e,_[t]??0])),pitch:h-54,yaw:g-5,roll:Math.atan2(p.y-d.y,p.x-d.x)*180/Math.PI,boundingRect:a.boundingRect,mesh:{height:o.height,landmarks:u,width:o.width}}}finally{Gb({outputs:f})}},u=async({faceDetector:t=`standard`}={})=>{i=t,await Promise.all([e.session({filename:rh[t]}),e.session({filename:`fl.ort`}),e.session({filename:`fe.ort`})])},d=async({blendshapes:e=!0,frame:t})=>{let n=i===`low`?await c({frame:t}):await s({frame:t,faceDetector:i});return(await Promise.all(n.map(n=>l({blendshapes:e,detection:n,frame:t})))).filter(e=>e!==null)},f=async e=>(await d({frame:e}))[0]??null,p=async({blendshapes:t=!0,frame:n,tileHeight:r,tileWidth:i})=>{let a=[];for(let o of qy({frameSize:n.height,tileSize:r}))for(let s of qy({frameSize:n.width,tileSize:i})){let c=await e.createImageBitmap(n,s,o,i,r);try{let e=await d({blendshapes:t,frame:c});a.push(...e.map(e=>Gy({face:e,x:s,y:o})))}finally{c.close()}}return a},m=async({blendshapes:e=!0,frame:t})=>await p({blendshapes:e,frame:t,tileHeight:Math.ceil(t.height/2),tileWidth:Math.ceil(t.width/2)}),h=async({frame:e})=>{let t=await d({blendshapes:!1,frame:e}),n=await p({blendshapes:!1,frame:e,tileHeight:Math.ceil(e.height*.4),tileWidth:Math.ceil(e.width*.4)});return Ky({faces:[...t,...n]})},g=({detection:e,x:t,y:n})=>({...e,boundingRect:{...e.boundingRect,x:e.boundingRect.x+t,y:e.boundingRect.y+n},keypoints:Object.fromEntries(Object.entries(e.keypoints).map(([e,r])=>[e,{x:r.x+t,y:r.y+n}]))}),_=async({frame:t,tileHeight:n,tileWidth:r})=>{let i=[];for(let a of qy({frameSize:t.height,tileSize:n}))for(let o of qy({frameSize:t.width,tileSize:r})){let s=await e.createImageBitmap(t,o,a,r,n);try{let e=await c({frame:s});i.push(...e.map(e=>g({detection:e,x:o,y:a})))}finally{s.close()}}return i},v=async({frame:e})=>{let t=await c({frame:e}),n=await _({frame:e,tileHeight:Math.ceil(e.height*.4),tileWidth:Math.ceil(e.width*.4)});return Wy({detections:[...t,...n],threshold:.3})},y=async(e,t={})=>{let n=await d({blendshapes:t.blendshapes,frame:e});if(i!==`low`)return n;let r=await m({blendshapes:t.blendshapes,frame:e});return Ky({faces:[...n,...r]})},b=({detection:e,face:t})=>ab({face:t,polygon:e.polygon});return{loadFaceDetector:u,detectFace:f,detectPictureFaces:y,faceIsInsideDocument:b,detectDocumentFaces:async({detection:t,frame:n})=>{let r=await e.createImageBitmap(n,0,0,Math.ceil(n.width/2),n.height),a;try{a=(i===`low`?await h({frame:r}):await y(r,{blendshapes:!1})).map(e=>({...e,mesh:{...e.mesh,height:n.height,width:n.width}}))}finally{r.close()}return{faces:a.filter(e=>b({detection:t,face:e})).sort((e,t)=>t.boundingRect.width*t.boundingRect.height-e.boundingRect.width*e.boundingRect.height),hasPictureFace:a.length>0,pictureFaces:a}},detectDocumentFacePresence:async({detection:t,frame:n})=>{let r=await e.createImageBitmap(n,0,0,Math.ceil(n.width/2),n.height);try{return(i===`low`?await v({frame:r}):await s({frame:r,faceDetector:i})).some(e=>b({detection:t,face:e}))}finally{r.close()}}}}})),ox,sx,cx=t((()=>{zh(),ag(),lg(),Og(),jy(),$m(),yh(),ox=({candidate:e,identity:t})=>[{missing:!t?.holder.last_name,pattern:/^\s*1[.:)]\s+\p{L}/u},{missing:!t?.holder.first_name,pattern:/^\s*2[.:)]\s+\p{L}/u},{missing:!t?.holder.birth_date,pattern:/^\s*3[.:)]\s+\d{1,2}[./-]\d{1,2}[./-]\d{2,4}/u},{missing:!t?.document.number,pattern:/^\s*5[.:)]\s+[A-Z0-9]/u}].flatMap(({missing:t,pattern:n})=>{if(!t)return[];let r=e.lines.find(e=>n.test(e.text));return r?[r]:[]}),sx=({runtime:e,orientDocumentFrame:t,getOcr:n})=>{let r=`auto`,i=vh({runtime:e}),a=async({engine:t=r,language:i=`eng`}={})=>{await n({environment:e.environment,engine:t,language:i})},o=async({classificationImage:t,engine:a=r,frame:o,language:s,image:c})=>{if(o.width<200||o.height<100)return null;let l=c??ig({image:i({frame:o}),polygon:[{x:0,y:0},{x:o.width,y:0},{x:o.width,y:o.height},{x:0,y:o.height}]}),u=await(await n({environment:e.environment,engine:`tiny`,language:`latin`})).recognize({image:l}),d=Ay({result:u}),f=t??i({frame:o}),p=Lh({image:f,text:u.text,codes:d?[d]:[]}),m=p&&(p.document===`passport`||p.europeanDrivingLicense);if(p?.europeanDrivingLicense){let t=Dg({ocr:u,image:f});if(!sg({identity:t})){let r=await(await n({environment:e.environment,engine:`small`,language:`latin`})).recognize({image:l}),i=Dg({ocr:r,image:f}),a=Lh({image:f,text:r.text,codes:[]});if(a?.europeanDrivingLicense&&sg({identity:i}))u=r;else if(a?.europeanDrivingLicense){let e=ox({candidate:r,identity:t});if(e.length){let t=[...u.lines,...e];u={...u,lines:t,text:t.map(e=>e.text).join(`
71
- `)}}}}}else if(!m){let t=Ym({language:s??`eng`}),r=await n({environment:e.environment,engine:a,language:t});r.model!==`tiny`&&(u=await r.recognize({image:l}))}let h=o.width/u.width,g=o.height/u.height,_=({x:e,y:t,width:n,height:r})=>({x:e*h,y:t*g,width:n*h,height:r*g});return{...u,width:o.width,height:o.height,lines:u.lines.map(e=>({...e,box:_(e.box),words:e.words.map(e=>({...e,box:_(e.box)}))}))}},s=async e=>await o(e)??{height:e.frame.height,lines:[],text:``,width:e.frame.width};return{loadTextDetector:a,readRectifiedText:o,detectRectifiedText:s,detectDocumentText:async({engine:e=r,frame:n,language:i,polygon:a})=>{let o=await t({frame:n,polygon:a});if(!o)return{height:0,lines:[],rotation:0,text:``,width:0};try{return{...await s({engine:e,frame:o.frame,language:i}),rotation:o.orientation.rotation}}finally{o.frame.close()}}}}})),lx,ux=t((()=>{W(),Xh(),Wb(),ex(),lx=({runtime:e})=>{let{detectDocumentOrientation:t}=$b({runtime:e}),n={left:[33,133],right:[263,362]},r=({matrix:e,values:t})=>{let n=e.map((e,n)=>[...e,t[n]]);for(let e=0;e<n.length;e+=1){let t=e;for(let r=e+1;r<n.length;r+=1)Math.abs(n[r][e])>Math.abs(n[t][e])&&(t=r);if(Math.abs(n[t][e])<1e-8)return null;[n[e],n[t]]=[n[t],n[e]];let r=n[e][e];for(let t=e;t<=n.length;t+=1)n[e][t]/=r;for(let t=0;t<n.length;t+=1){if(t===e)continue;let r=n[t][e];for(let i=e;i<=n.length;i+=1)n[t][i]-=r*n[e][i]}}return n.map(e=>e[n.length])},i=({from:e,to:t})=>{let n=[],i=[];for(let[r,a]of e.entries()){let e=t[r];n.push([a.x,a.y,1,0,0,0,-e.x*a.x,-e.x*a.y]),i.push(e.x),n.push([0,0,0,a.x,a.y,1,-e.y*a.x,-e.y*a.y]),i.push(e.y)}let a=r({matrix:n,values:i});return a?[...a,1]:null},a=Pb,o=({frame:t,polygon:n,rotation:r=0})=>{let a=Yh({polygon:n}),o=Math.max(0,Math.floor(a.x)),s=Math.max(0,Math.floor(a.y)),c=Math.max(1,Math.min(t.width-o,Math.ceil(a.width))),l=Math.max(1,Math.min(t.height-s,Math.ceil(a.height))),u=r%180?l:c,d=r%180?c:l,f=e.createCanvas(u,d),p=f.getContext(`2d`);if(!p)throw Error(U.IMAGE_PROCESSING_FAILED);r===90?(p.translate(0,d),p.rotate(-Math.PI/2)):r===180?(p.translate(u,d),p.rotate(Math.PI)):r===270&&(p.translate(u,0),p.rotate(Math.PI/2)),p.drawImage(t,o,s,c,l,0,0,c,l);let m=o+c,h=s+l,g=i({from:[{x:0,y:0},{x:u,y:0},{x:u,y:d},{x:0,y:d}],to:r===90?[{x:m,y:s},{x:m,y:h},{x:o,y:h},{x:o,y:s}]:r===180?[{x:m,y:h},{x:o,y:h},{x:o,y:s},{x:m,y:s}]:r===270?[{x:o,y:h},{x:o,y:s},{x:m,y:s},{x:m,y:h}]:[{x:o,y:s},{x:m,y:s},{x:m,y:h},{x:o,y:h}]});return g?{frame:f.transferToImageBitmap(),height:d,sourceHeight:t.height,sourceWidth:t.width,toSource:g,width:u}:null},s=async({frame:e,polygon:n,orientation:r})=>{if(n.length!==4)return null;let i=r??await t({frame:e,boundingRect:Yh({polygon:n})}),a=o({frame:e,polygon:n,rotation:i.rotation});return a?{...a,orientation:i}:null},c=({document:e,face:t})=>{let n=t.mesh.landmarks.map(({x:t,y:n,z:r})=>({...a({homography:e.toSource,point:{x:t,y:n}}),z:r})),r=[{x:t.boundingRect.x,y:t.boundingRect.y},{x:t.boundingRect.x+t.boundingRect.width,y:t.boundingRect.y},{x:t.boundingRect.x+t.boundingRect.width,y:t.boundingRect.y+t.boundingRect.height},{x:t.boundingRect.x,y:t.boundingRect.y+t.boundingRect.height}].map(t=>a({homography:e.toSource,point:t})),i=r.map(({x:e})=>e),o=r.map(({y:e})=>e),s={x:Math.min(...i),y:Math.min(...o),width:Math.max(...i)-Math.min(...i),height:Math.max(...o)-Math.min(...o)};return{...t,boundingRect:s,mesh:{...t.mesh,height:e.sourceHeight,landmarks:n,width:e.sourceWidth}}},l=({face:e})=>{let t=e.mesh.landmarks,r=n.left.map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t})),i=n.right.map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t})),a=[13,14].map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t}));return r.length!==2||i.length!==2||a.length!==2?null:{boundingRect:e.boundingRect,mouth:{x:(a[0].x+a[1].x)/2,y:(a[0].y+a[1].y)/2},leftEye:{x:(r[0].x+r[1].x)/2,y:(r[0].y+r[1].y)/2},rightEye:{x:(i[0].x+i[1].x)/2,y:(i[0].y+i[1].y)/2}}},u=({face:e,lines:t,maxAngleDifference:n})=>{let r=Math.atan2(e.rightEye.y-e.leftEye.y,e.rightEye.x-e.leftEye.x)*180/Math.PI,i=0;for(let a of t){let t=Math.abs(a.angle-r)%180,o=Math.min(t,180-t),s=a.box;!(s.y>=e.boundingRect.y&&s.y+s.height<=e.boundingRect.y+e.boundingRect.height)||o>n||s.x>e.boundingRect.x+e.boundingRect.width&&(i+=1)}return i};return{transformPoint:a,orientDocumentFrame:s,restoreRectifiedFace:c,rectifiedDocumentFace:l,documentAlignment:({face:e,lines:t,maxAngleDifference:n,maxFaceAreaRatio:r,maxFaceHeightRatio:i,maxFaceWidthRatio:a,minFaceAreaRatio:o,minFaceHeightRatio:s,minFaceWidthRatio:c,documentSize:l})=>{if(!e)return{faceAdjacentTextLineCount:0,angleDifference:null,eyesAngle:null,faceAreaRatio:0,faceAreaValid:!1,faceDimensionsValid:!1,faceHeightRatio:0,faceWidthRatio:0,textAngle:null,textParallel:!1,textSide:`unknown`};let d=e.boundingRect.width*e.boundingRect.height/(l.width*l.height),f=d>=o&&d<=r,p=e.boundingRect.width/l.width,m=e.boundingRect.height/l.height,h=p>=c&&p<=a&&m>=s&&m<=i,g=Math.atan2(e.rightEye.y-e.leftEye.y,e.rightEye.x-e.leftEye.x)*180/Math.PI,_=t.filter(t=>{let n=t.box;return n.y>=e.boundingRect.y&&n.y+n.height<=e.boundingRect.y+e.boundingRect.height&&n.x>e.boundingRect.x+e.boundingRect.width}),v=_.length?_.reduce((e,t)=>e+t.angle,0)/_.length:null,y=v===null?null:Math.abs(v-g)%180,b=y===null?null:Math.min(y,180-y),x=b!==null&&b<=n;return{faceAdjacentTextLineCount:u({face:e,lines:t,maxAngleDifference:n}),angleDifference:b,eyesAngle:g,faceAreaRatio:d,faceAreaValid:f,faceDimensionsValid:h,faceHeightRatio:m,faceWidthRatio:p,textAngle:v,textParallel:x,textSide:_.length?`right`:`unknown`}}}}})),dx,fx=t((()=>{W(),zh(),ag(),lg(),Og(),Wb(),Ry(),km(),_h(),yh(),dx=({runtime:e,documentAlignment:t,rectifiedDocumentFace:n,orientDocumentFrame:r,restoreRectifiedFace:i,analyzeDocument:a,faceDetection:o,faceMatch:s,textDetection:c})=>{let l=vh({runtime:e}),u=({frame:t,text:n})=>{let r=e.createCanvas(32,32),i=r.getContext(`2d`,{willReadFrequently:!0});if(!i)throw Error(U.IMAGE_PROCESSING_FAILED);i.drawImage(t,0,0,r.width,r.height);let{data:a}=i.getImageData(0,0,r.width,r.height);return gh({canvas:r}),Uh({data:a,height:32,text:n,width:32})},d=({current:e,front:t})=>{let n=Gh({current:e.signature,front:t}),r=[],i=e.signature?.textTokens.length??0,a=Kh({text:e.text.text})||e.text.lines.length>=2&&i>=2;return e.detection||r.push(U.DOCUMENT_NOT_FOUND),e.documentAnalysis.isBlurry&&r.push(U.DOCUMENT_BLURRY),e.hasPictureFace&&r.push(U.DOCUMENT_BACK_CONTAINS_FACE),a||r.push(U.DOCUMENT_TEXT_NOT_READABLE),n.distinct||r.push(U.DOCUMENT_BACK_NOT_DISTINCT),{distinct:n.distinct,imageDistance:n.imageDistance,reasons:r,textOverlap:n.textOverlap,valid:r.length===0}},f=({alignment:e,detection:t,documentAnalysis:n,faceContained:r,requiresFace:i,text:a})=>{let o=[];return t||o.push(U.DOCUMENT_NOT_FOUND),n.isBlurry&&o.push(U.DOCUMENT_BLURRY),i&&!r&&o.push(U.DOCUMENT_FACE_NOT_CONTAINED),(!a.text||a.lines.length<2)&&o.push(U.DOCUMENT_TEXT_NOT_READABLE),!i||e.faceAreaValid&&e.faceDimensionsValid||o.push(U.DOCUMENT_FACE_GEOMETRY_INVALID),i&&(e.faceAdjacentTextLineCount<2||!e.textParallel||e.textSide!==`right`)&&o.push(U.DOCUMENT_TEXT_ALIGNMENT_INVALID),o},p=async({classification:e,codes:r,ocr:a,options:c,documentAnalysis:l,document:d,text:p,prepareForMatch:m})=>{let h=l.detection,g=c.requiresFace??!0,_={boundingRect:{height:d.height,width:d.width,x:0,y:0},polygon:[{x:0,y:0},{x:d.width,y:0},{x:d.width,y:d.height},{x:0,y:d.height}]},v=g?await o.detectDocumentFaces({detection:_,frame:d.frame}):{faces:[],pictureFaces:[],hasPictureFace:await o.detectDocumentFacePresence({detection:_,frame:d.frame})},y=v.pictureFaces.map(e=>i({document:d,face:e})),b=u({frame:d.frame,text:p.text}),x=r.find(e=>e.type===`mrz`)??null,S=null;for(let u of v.faces.length?v.faces:[null]){let _=u?i({document:d,face:u}):null,C=u?n({face:u}):null,w=g&&h?o.faceIsInsideDocument({detection:h,face:_})&&y.every(e=>o.faceIsInsideDocument({detection:h,face:e})):!1,T=t({documentSize:{height:p.height,width:p.width},face:C,lines:p.lines,maxAngleDifference:c.maxDocumentTextAngleDifference,maxFaceAreaRatio:c.maxDocumentFaceAreaRatio,maxFaceHeightRatio:c.maxDocumentFaceHeightRatio,maxFaceWidthRatio:c.maxDocumentFaceWidthRatio,minFaceAreaRatio:c.minDocumentFaceAreaRatio,minFaceHeightRatio:c.minDocumentFaceHeightRatio,minFaceWidthRatio:c.minDocumentFaceWidthRatio}),E=f({alignment:T,detection:h,documentAnalysis:l,faceContained:w,requiresFace:g,text:p});g&&!e&&E.push(U.DOCUMENT_NOT_RECOGNIZED),e?.europeanDrivingLicense&&!sg({identity:e.identity})&&E.push(U.DOCUMENT_VALIDATION_FAILED);let ee=E.length===0,te=null,ne=null;if(g&&ee&&u){let e=s.prepareFace({alignment:c.alignment??`eyes-nose-mouth`,face:u,frame:d.frame});if(!e)ee=!1,E.push(U.FACE_NOT_USABLE);else if(m){let t=await s.preparedFaceArtifacts({face:e});te=t?.embeddings??null,ne=t?.images??null,t||(ee=!1,E.push(U.INVALID_MODEL_OUTPUT))}}let re={identity:e?e.identity:null,orientation:d.orientation,ocr:a,mrz:x,alignment:T,detection:h,documentAnalysis:l,documentKind:e?e.document:null,europeanDrivingLicense:e?e.europeanDrivingLicense:!1,codes:r,documentToSource:d.toSource,embeddings:te,images:ne,face:_,faceContained:w,hasPictureFace:v.hasPictureFace??y.length>0,failureReasons:E,pictureFaces:y,signature:b,text:p,valid:ee};if(re.valid)return re;S??=re}if(!S)throw Error(U.INTERNAL_ERROR);return S},m=async({frame:n,options:i,documentAnalysis:a,prepareForMatch:o=!1})=>{let s=a.detection;if(!s){let e={height:0,lines:[],text:``,width:0},n=t({documentSize:{height:e.height,width:e.width},face:null,lines:e.lines,maxAngleDifference:i.maxDocumentTextAngleDifference,maxFaceAreaRatio:i.maxDocumentFaceAreaRatio,maxFaceHeightRatio:i.maxDocumentFaceHeightRatio,maxFaceWidthRatio:i.maxDocumentFaceWidthRatio,minFaceAreaRatio:i.minDocumentFaceAreaRatio,minFaceHeightRatio:i.minDocumentFaceHeightRatio,minFaceWidthRatio:i.minDocumentFaceWidthRatio});return{identity:null,orientation:null,ocr:null,mrz:null,codes:[],europeanDrivingLicense:!1,alignment:n,detection:s,documentAnalysis:a,documentKind:null,documentToSource:null,embeddings:null,face:null,faceContained:!1,failureReasons:f({alignment:n,detection:s,documentAnalysis:a,faceContained:!1,requiresFace:i.requiresFace??!0,text:e}),images:null,pictureFaces:[],hasPictureFace:!1,signature:null,text:e,valid:!1}}let u=await r({frame:n,polygon:s.polygon,orientation:s.orientation});if(!u)throw Error(U.IMAGE_PROCESSING_FAILED);try{let t=performance.now(),r=ig({image:l({frame:n}),polygon:s.polygon,sourceOrientation:u.orientation.rotation}),d=i.requiresFace===!1?`back`:`front`;Dm({category:`stages`,key:`ocr.prepare.${d}`,duration:performance.now()-t});let f=l({frame:u.frame}),m=await c.readRectifiedText({classificationImage:f,engine:i.ocrEngine,frame:u.frame,language:i.language,image:r}),h=m??{height:u.height,lines:[],text:``,width:u.width},g=m?Ay({result:m}):null,_=null;if(i.requiresFace===!1){let t=e.createImageData(f.width,f.height);t.data.set(f.data),_=await Om({key:`barcode.back`,operation:()=>Ly({image:t})})}let v=[g,_].filter(e=>e!==null),y=Lh({image:f,text:h.text,codes:v}),b=i.requiresFace!==!1&&y?.europeanDrivingLicense&&m?Dg({ocr:m,image:f}):null,x=y?{...y,identity:b}:null;return await p({ocr:m,classification:x,codes:v,options:i,documentAnalysis:a,document:u,prepareForMatch:o,text:h})}finally{u.frame.close()}},h=async({frame:e,options:t,prepareForMatch:n=!1})=>{let r=await a({frame:e,minDocumentBoxRatio:t.minDocumentBoxRatio});return await m({frame:e,options:t,documentAnalysis:r,prepareForMatch:n})},g=({analysis:e,isBack:t,front:n})=>{if(!e.ocr)return[U.DOCUMENT_TEXT_NOT_READABLE];if(t&&!n)return[U.CAPTURES_INCOMPLETE];if(!t&&!e.documentKind)return[U.DOCUMENT_NOT_RECOGNIZED];let r={ocr:e.ocr,codes:e.codes},i=t&&n?n:{document:e.documentKind,europeanDrivingLicense:e.europeanDrivingLicense,identity:e.identity};return cg({classification:i,front:t&&n?n:r,back:t?r:null}).reasons.filter(e=>t||e!==U.DOCUMENT_BACK_REQUIRED)};return{validateDocumentBack:d,analyzeDocumentFrame:h,hasValidDocumentSideData:e=>g(e).length===0,documentSideFailureReasons:g}}})),px,mx,hx=t((()=>{W(),Wb(),qb(),_h(),yh(),px={standard:{filename:`fm.ort`,layout:`nhwc`},high:{filename:`fmh.ort`,layout:`nhwc`},ultra:{filename:`fmu.ort`,layout:`nchw`}},mx=({runtime:e,orientDocumentFrame:t,detectDocument:n,faceDetection:r,detectFace:i,detectPictureFaces:a,faceMatcher:o=`ultra`})=>{let s=vh({runtime:e}),c=[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],l={"eyes-nose-mouth":{landmarks:[[33,133],[263,362],[1],[61],[291]],target:[[38.2946,51.6963],[73.5318,51.5014],[56.0252,71.7366],[41.5493,92.3655],[70.7299,92.2041]]}},u=({points:e})=>[e.reduce((e,[t])=>e+t,0)/e.length,e.reduce((e,[,t])=>e+t,0)/e.length],d=({source:e,target:t})=>{if(e.length<2||e.length!==t.length)return null;let[n,r]=u({points:e}),[i,a]=u({points:t}),o=0,s=0,c=0;for(let[l,[u,d]]of e.entries()){let[e,f]=t[l],p=u-n,m=d-r,h=e-i,g=f-a;o+=p*p+m*m,s+=p*h+m*g,c+=p*g-m*h}if(o<1e-8)return null;let l=s/o,d=c/o;return l*l+d*d<1e-8?null:[l,-d,i-l*n+d*r,d,l,a-d*n-l*r]},f=({height:e,minimumArea:t,polygon:n,width:r})=>{if(Math.abs(n.reduce((e,t,r)=>{let i=n[(r+1)%n.length];return e+t[0]*i[1]-i[0]*t[1]},0))/2<t)return null;let i=new Float32Array(r*e),a=Math.max(0,Math.ceil(Math.min(...n.map(([,e])=>e))-.5)),o=Math.min(e,Math.ceil(Math.max(...n.map(([,e])=>e))-.5));for(let e=a;e<o;e+=1){let t=[],a=e+.5;for(let e=0,r=n.length-1;e<n.length;r=e++){let[i,o]=n[r],[s,c]=n[e];o>a!=c>a&&t.push((s-i)*(a-o)/(c-o)+i)}t.sort((e,t)=>e-t);for(let n=0;n+1<t.length;n+=2){let a=Math.min(r,Math.max(0,Math.ceil(t[n]-.5))),o=Math.max(0,Math.min(r,Math.ceil(t[n+1]-.5)));i.fill(1,e*r+a,e*r+o)}}return i},p=({face:e,grayscale:t})=>{let{image:n,weights:r}=e,i=0,a=0,o=0,s=0;for(let e=0;e<r.length;e+=1){let t=r[e];if(!t)continue;let c=e*4,l=n[c]*.299+n[c+1]*.587+n[c+2]*.114;i+=l*t,a+=l*l*t,o+=t,(l<8||l>247)&&(s+=t)}if(o<r.length*.1)return null;let c=i/o;if(c<25||c>230||s/o>.4)return null;let l=Math.sqrt(Math.max(1,a/o-c*c)),u=Math.min(1.8,Math.max(.55,58/(127.5/c*l)))*(127.5/c),d=new Uint8ClampedArray(n.length);for(let e=0;e<r.length;e+=1){let i=e*4,a=r[e],o=n[i]*.299+n[i+1]*.587+n[i+2]*.114,s=(o-c)*u+127.5,l=s/Math.max(o,1);for(let e=0;e<3;e+=1)d[i+e]=Math.max(0,Math.min(255,t?s:n[i+e]*l))*a+127.5*(1-a);d[i+3]=255}return d},m=({alignment:t,face:n,frame:r})=>{let i=c.map(e=>{let t=n.mesh.landmarks[e];return[t.x,t.y]});if(i.some(([e,t])=>!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0||e>=r.width||t>=r.height))return null;let a=e.createCanvas(112,112);try{let e=a.getContext(`2d`,{willReadFrequently:!0});if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);let o=l[t],s=o.landmarks.map(e=>{let t=e.map(e=>{let t=n.mesh.landmarks[e];return[t.x,t.y]});return u({points:t})}),c=d({source:s,target:o.target});if(!c||!c.every(Number.isFinite))return null;e.fillStyle=`rgb(128, 128, 128)`,e.fillRect(0,0,112,112),e.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),e.drawImage(r,0,0),e.setTransform(1,0,0,1,0,0);let m=i.map(([e,t])=>[c[0]*e+c[1]*t+c[2],c[3]*e+c[4]*t+c[5]]),h=f({height:112,minimumArea:1254.4,polygon:m,width:112});if(!h)return null;let g={image:e.getImageData(0,0,112,112).data,weights:h},_=p({face:g,grayscale:!1});if(!_)return null;let v=p({face:g,grayscale:!0});return v?{...g,normalized:{rgb:_,greyscale:v}}:null}finally{gh({canvas:a})}},h=async({faceMatcher:t=o}={})=>await e.session({filename:px[t].filename}),g=({layout:e,normalized:t})=>{let n=12544,r=new Float32Array(n*3);for(let i=0;i<n;i+=1){let a=i*4;for(let o=0;o<3;o+=1){let s=(t[a+o]-127.5)/127.5,c=e===`nhwc`?i*3+o:o*n+i;r[c]=s}}return r},_=async({normalized:t})=>{let{layout:n}=px[o],r=g({layout:n,normalized:t}),i=n===`nhwc`?[1,112,112,3]:[1,3,112,112],a=await h(),s=await Kb({label:`face.embedding`,session:a,feeds:{[a.inputNames[0]]:e.tensor(`float32`,r,i)}});try{let e=s[a.outputNames[0]].data;if(!(e instanceof Float32Array))throw Error(U.INVALID_MODEL_OUTPUT);let t=e,n=Math.hypot(...t);if(t.length!==512||!t.every(Number.isFinite)||!Number.isFinite(n)||n<1e-8)throw Error(U.INVALID_MODEL_OUTPUT);return Array.from(t,e=>e/n)}finally{Gb({outputs:s})}},v=async({blob:t})=>{try{return await e.createImageBitmap(t)}catch(e){throw Error(U.IMAGE_DECODE_FAILED,{cause:e})}},y=async({normalized:e})=>{try{return await _({normalized:e})}catch(e){if(e instanceof Error&&e.message===U.INVALID_MODEL_OUTPUT)return null;throw e}},b=async({face:e})=>{let t=await y({normalized:e.normalized.rgb});if(!t)return null;let n=await y({normalized:e.normalized.greyscale});return n?{grayscale:n,rgb:t}:null},x=async({face:e})=>await y({normalized:e.normalized.greyscale}),S=async()=>{let e=new Uint8ClampedArray(50176).fill(127);if(!await b({face:{normalized:{rgb:e,greyscale:e}}}))throw Error(U.INVALID_MODEL_OUTPUT)},C=async({pixels:t})=>{let n=e.createCanvas(112,112);try{let e=n.getContext(`2d`);if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);let r=e.createImageData(112,112);r.data.set(t),e.putImageData(r,0,0);let i=await n.convertToBlob({type:`image/jpeg`,quality:1});if(i.type!==`image/jpeg`)throw Error(U.IMAGE_ENCODE_FAILED);return i}finally{gh({canvas:n})}},w=async({face:e})=>{let t=await b({face:e});if(!t)return null;let[n,r]=await Promise.all([C({pixels:e.normalized.rgb}),C({pixels:e.normalized.greyscale})]);return{embeddings:t,images:{rgb:n,greyscale:r}}},T=async({alignment:e,face:t,frame:n})=>{let r=m({alignment:e,face:t,frame:n});return r?await b({face:r}):null},E=async({alignment:e,frame:t})=>{let n=await i(t);if(!n)throw Error(U.FACE_NOT_FOUND);let r=await T({alignment:e,face:n,frame:t});if(!r)throw Error(U.FACE_NOT_USABLE);return r},ee=async({alignment:e,frame:t})=>{let n=await a(t,{forMatch:!0}),r=[];for(let i of n){let n=await T({alignment:e,face:i,frame:t});n&&r.push(n)}return r},te=async({alignment:e,frame:i})=>{let a=await n(i);if(!a)throw Error(U.DOCUMENT_NOT_FOUND);let o=await t({frame:i,polygon:a.polygon,orientation:a.orientation});if(!o)throw Error(U.DOCUMENT_NOT_FOUND);try{let t={boundingRect:{height:o.height,width:o.width,x:0,y:0},polygon:[{x:0,y:0},{x:o.width,y:0},{x:o.width,y:o.height},{x:0,y:o.height}]},{faces:n}=await r.detectDocumentFaces({detection:t,frame:o.frame});if(!n.length)throw Error(U.DOCUMENT_FACE_NOT_FOUND);for(let t of n){let n=await T({alignment:e,face:t,frame:o.frame});if(n)return n}}finally{o.frame.close()}throw Error(U.FACE_NOT_USABLE)};return{prepareFace:m,loadFaceMatch:h,warmupFaceMatch:S,imageBitmap:v,readImage:s,preparedFaceEmbeddings:b,preparedFaceGrayscaleEmbedding:x,preparedFaceArtifacts:w,matchFaceWithDocument:async({document:e,documentFaceEmbeddings:t,referenceFaceEmbeddings:n,options:r,reference:i})=>{let a=null,o=null;try{let s=t;s||=(o=await v({blob:e}),await te({alignment:r.alignment,frame:o,language:r.language,ocrEngine:r.ocrEngine}));let c=n;c||=(a=await v({blob:i}),await E({alignment:r.alignment,frame:a}));let l=Mb({first:c,second:s});return jb({score:l,threshold:r.threshold})}finally{a&&a.close(),o&&o.close()}},matchPictureWithFaces:async({options:e,picture:t,references:n,referenceFaceEmbeddings:r})=>{let i=await v({blob:t}),a=[];try{if(!r)for(let e of n){let t=await v({blob:e});a.push(t)}let t=await ee({alignment:e.alignment,frame:i});if(!t.length)throw Error(U.NO_USABLE_CANDIDATES);let o=r?[...r]:[];for(let t of a)try{let n=await E({alignment:e.alignment,frame:t});o.push(n)}catch(e){if(!(e instanceof Error)||e.message!==U.FACE_NOT_FOUND&&e.message!==U.FACE_NOT_USABLE)throw e}let s=-1/0;for(let e of o)for(let n of t){let t=Mb({first:n,second:e});s=Math.max(s,t)}if(!Number.isFinite(s))throw Error(U.NO_USABLE_REFERENCES);return jb({score:s,threshold:e.threshold})}finally{i.close();for(let e of a)e.close()}}}}})),gx,_x=t((()=>{W(),ag(),_h(),gx=({runtime:e,document:t,readImage:n})=>async({image:r,timings:i})=>{let a=await e.createImageBitmap(new Blob([r]));try{let r=performance.now(),o=await t.analyzeDocument({frame:a});if(i&&(i.documentBoxDetectionMs=performance.now()-r),!o.detection)throw Error(U.DOCUMENT_NOT_FOUND);let{polygon:s,orientation:c}=o.detection,l=ig({image:n({frame:a}),polygon:s,sourceOrientation:c?.rotation}),u=e.createCanvas(l.width,l.height);try{let t=u.getContext(`2d`);if(!t)throw Error(U.IMAGE_PROCESSING_FAILED);let n=e.createImageData(l.width,l.height);n.data.set(l.data),t.putImageData(n,0,0);let r=await u.convertToBlob({type:`image/png`});return new Uint8Array(await r.arrayBuffer())}finally{gh({canvas:u})}}finally{a.close()}}})),vx,yx=t((()=>{By(),nx(),ax(),cx(),ux(),Ry(),fx(),hx(),_x(),yh(),vx=({runtime:e,getOcr:t,faceMatcher:n})=>{let r=vh({runtime:e}),i=lx({runtime:e}),a=tx({runtime:e}),o=ix({runtime:e,imageFromImageBitmap:r}),s=sx({runtime:e,getOcr:t,...i}),c=mx({runtime:e,...i,...a,...o,faceDetection:o,faceMatcher:n});return{alignment:i,document:a,face:o,text:s,match:c,flow:dx({runtime:e,...i,...a,faceDetection:o,faceMatch:c,textDetection:s}),classify:zy({runtime:e,detector:a,alignment:i,text:s,readImage:r}),prepareOcrImage:gx({runtime:e,document:a,readImage:r}),warmup:async()=>{await Promise.all([o.loadFaceDetector({faceDetector:`standard`}),c.loadFaceMatch(),a.loadDocumentBoxDetector(),a.loadDocumentOrientationDetector(),s.loadTextDetector({engine:`tiny`,language:`latin`}),Iy()])}}}})),bx,xx,Sx,Cx,wx,Tx,Ex,Dx,Ox,kx,Ax,jx,Mx,Nx,Px=t((()=>{kh(),wh(),yx(),bg(),fy(),lg(),Nb(),ky(),Ry(),$m(),{alignment:bx,document:xx,face:Sx,text:Cx,match:wx,flow:Tx,classify:Ex,prepareOcrImage:Dx,warmup:Ox}=vx({runtime:Sh,getOcr:Dh}),{classifyDocument:kx,detectDocument:Ax,extractDocumentCodes:jx}=Ex,{detectDocumentOrientation:Mx,loadDocumentOrientationDetector:Nx}=xx})),Fx,Ix,Lx,Rx,zx,Bx=t((()=>{dd(),Fx=[`faceStraight`,`faceUp`,`faceDown`,`faceLeft`,`faceRight`],Ix=[`faceStraight`,`faceUp`,`faceLeft`,`faceRight`],Lx=[...Fx,`faceSmile`,`faceWinkLeft`,`faceTiltLeft`,`faceTiltRight`],Ql(Lx),Rx={faceStraight:0,faceLeft:1,faceRight:1,faceUp:2,faceDown:2,faceTiltLeft:3,faceTiltRight:3,faceSmile:4,faceWinkLeft:5},zx={faceStraight:`face_straight`,faceUp:`face_up`,faceDown:`face_down`,faceLeft:`face_left`,faceRight:`face_right`,faceSmile:`face_smile`,faceWinkLeft:`face_wink_left`,faceTiltLeft:`face_tilt_left`,faceTiltRight:`face_tilt_right`},Ql(zx),Fx.map(e=>zx[e]),Ix.map(e=>zx[e])})),Vx,Hx,Ux,Wx=t((()=>{Vx={faceStraight:{primary:`lookStraight`},faceUp:{primary:`lookUp`},faceDown:{primary:`lookDown`},faceLeft:{primary:`lookLeft`},faceRight:{primary:`lookRight`},faceSmile:{primary:`smile`},faceWinkLeft:{primary:`winkLeft`},faceTiltLeft:{primary:`tiltLeft`},faceTiltRight:{primary:`tiltRight`}},Hx={FACE_ROLL_TILT_LEFT:`tiltLeft`,FACE_ROLL_TILT_RIGHT:`tiltRight`,FACE_ROLL_TILT_LESS:`tiltLess`,FACE_YAW_TURN_LEFT:`lookLeft`,FACE_YAW_TURN_RIGHT:`lookRight`,FACE_YAW_TURN_LESS:`turnLess`,FACE_PITCH_LOOK_UP:`lookUp`,FACE_PITCH_LOOK_DOWN:`lookDown`,FACE_PITCH_RAISE_LESS:`raiseLess`,FACE_PITCH_LOWER_LESS:`lowerLess`,FACE_SMILE_REQUIRED:`smile`,FACE_WINK_LEFT_REQUIRED:`winkLeft`,FACEKEY_LOWER_HEAD:`lookDown`,FACEKEY_LOWER_HEAD_LESS:`lowerLess`,FACEKEY_RAISE_HEAD:`lookUp`,FACEKEY_RAISE_HEAD_LESS:`raiseLess`,FACEKEY_SMILE_REQUIRED:`smile`,FACEKEY_TILT_HEAD_LEFT:`tiltLeft`,FACEKEY_TILT_HEAD_LESS:`tiltLess`,FACEKEY_TILT_HEAD_RIGHT:`tiltRight`,FACEKEY_TURN_HEAD_LEFT:`lookLeft`,FACEKEY_TURN_HEAD_LESS:`turnLess`,FACEKEY_TURN_HEAD_RIGHT:`lookRight`,FACEKEY_WINK_LEFT_REQUIRED:`winkLeft`},Ux={facePoses:Vx,poseRejections:Hx}})),Gx,Kx,qx=t((()=>{Wx(),Gx=({pose:e})=>{let t=Ux.facePoses[e];return{...t,primary:t.primary}},Kx=({code:e})=>Ux.poseRejections[e]})),Jx,Yx,Xx,Zx,Qx,$x,eS,tS,nS,rS,iS=t((()=>{Wb(),Sb(),qx(),Jx=1e3,Yx=({pose:e})=>{let t=ub[e];return t?.yaw===void 0?t?.pitch===void 0?t?.roll===void 0?e===`faceStraight`?{axis:`roll`,value:0}:{axis:null,value:null}:{axis:`roll`,value:t.roll}:{axis:`pitch`,value:t.pitch}:{axis:`yaw`,value:t.yaw}},Xx=()=>({published:null,candidate:null,frames:0}),Zx=()=>({label:null,since:0}),Qx=({label:e,now:t,state:n})=>e?n.label===e?n:{label:e,since:t}:Zx(),$x=({delay:e=Jx,label:t,now:n,state:r})=>!t||r.label!==t?null:n-r.since>=e?t:null,eS=({alignment:e,neutral:t})=>t?{pitch:e.pitch-t.pitch,yaw:e.yaw-t.yaw,roll:e.roll-t.roll}:e,tS=({alignment:e,blendshapes:t,neutral:n,pose:r,options:i})=>{let a=Db({...e,blendshapes:t,pose:r,options:i}),o=eS({alignment:e,neutral:r===`faceStraight`?null:n}),s=Yx({pose:r}),c=s.axis&&s.value!==null?o[s.axis]-s.value:0,l=(i.tolerance??15)+8,u=a===null?`inside`:Math.abs(c)<=l?`approaching`:`outside`;return{pose:r,axis:s.axis,target:s.value,error:c,zone:u,code:a}},nS=({state:e,code:t,requiredFrames:n})=>{if(t===e.published)return{published:e.published,candidate:null,frames:0};if(t===e.candidate){let r=e.frames+1;return r>=n?{published:t,candidate:null,frames:0}:{published:e.published,candidate:t,frames:r}}return{published:e.published,candidate:t,frames:1}},rS=({corrective:e,pose:t})=>{let n=Gx({pose:t}).primary;return{primary:n,corrective:e&&e!==n?e:null}}})),aS,oS,sS,cS,lS,uS,dS,fS,pS=t((()=>{Px(),a(),It(),on(),aS=async()=>{let e=await fetch(i({filename:`faceMeshLines.json`}));if(!e.ok)throw Error(M.INVALID_SERVICE_RESPONSE);return await e.json()},oS=async()=>{await aS()},{transformPoint:sS}=bx,cS=[`tessellation`,`contours`,`faceOval`,`lips`,`leftEye`,`rightEye`,`leftEyebrow`,`rightEyebrow`,`leftIris`,`rightIris`],lS=async({color:e,context:t,result:n})=>{let r=await aS();t.beginPath();for(let e of cS)for(let{start:i,end:a}of r[e]){let e=n.mesh.landmarks[i],r=n.mesh.landmarks[a];e&&r&&(t.moveTo(e.x,e.y),t.lineTo(r.x,r.y))}t.strokeStyle=e,t.lineWidth=1,t.stroke()},uS=({backgroundColor:e,color:t,context:n,line:r,toSource:i})=>{if(!r.text)return;let{x:a,y:o,width:s,height:c}=r.box,l=[{x:a,y:o},{x:a+s,y:o},{x:a+s,y:o+c},{x:a,y:o+c}].map(e=>sS({homography:i,point:e})),u=l[0],d=l[1],f=l[3];if(!u||!d||!f)return;let p=Math.hypot(d.x-u.x,d.y-u.y),m=Math.hypot(f.x-u.x,f.y-u.y),h=Math.max(8,Math.min(16,m*.7)),g=Math.max(0,p-4),_=Math.atan2(d.y-u.y,d.x-u.x);n.beginPath(),n.moveTo(u.x,u.y);for(let e of l.slice(1))n.lineTo(e.x,e.y);n.closePath(),n.strokeStyle=t,n.lineWidth=1,n.stroke(),n.save(),n.clip(),n.translate(u.x+2,u.y+2),n.rotate(_),n.font=`${h}px sans-serif`,n.textBaseline=`top`,n.lineWidth=3,n.strokeStyle=e,n.strokeText(r.text,0,0,g),n.fillStyle=t,n.fillText(r.text,0,0,g),n.restore()},dS=async({element:e,meshLineColor:t,overlayColor:n=`transparent`,result:r})=>{let i=e.getContext(`2d`);if(!i)throw Error(M.IMAGE_PROCESSING_FAILED);let a=r?.mesh.width??e.width,o=r?.mesh.height??e.height;e.width!==a&&(e.width=a),e.height!==o&&(e.height=o),$t({element:e}),n!==`transparent`&&(i.fillStyle=n,i.fillRect(0,0,a,o)),r&&await lS({color:t,context:i,result:r})},fS=async({documentFaceBoxColor:e,documentFaceMeshColor:t,documentBoxColor:n,element:r,detection:i,face:a,height:o,ocrLines:s=[],ocrToSource:c=null,overlayColor:l=`transparent`,textColor:u,width:d})=>{let f=r.getContext(`2d`);if(f&&d&&o){if(r.width!==d&&(r.width=d),r.height!==o&&(r.height=o),$t({element:r}),l!==`transparent`&&(f.fillStyle=l,f.fillRect(0,0,d,o)),i){f.strokeStyle=n,f.lineWidth=3,f.beginPath();for(let[e,t]of i.polygon.entries())e?f.lineTo(t.x,t.y):f.moveTo(t.x,t.y);f.closePath(),f.stroke()}if(a&&(f.strokeStyle=e,f.lineWidth=2,f.strokeRect(a.boundingRect.x,a.boundingRect.y,a.boundingRect.width,a.boundingRect.height),await lS({color:t,context:f,result:a})),c){let e=getComputedStyle(r).color;for(let t of s)uS({backgroundColor:e,color:u,context:f,line:t,toSource:c})}}}}));Mt(),Bx(),Px(),Wb(),Kt(),on(),iS(),pS(),It();var{analyzeDocumentFrame:mS,hasValidDocumentSideData:hS,validateDocumentBack:gS}=Tx,_S=({view:e,display:t,isActive:n,notifyCapturesChanged:r,getVerifyHardOptions:i})=>{let a=e.ref,o=async()=>{t.success.value=!0,await Gt({milliseconds:400}),t.success.value=!1},s=async({frame:s,session:c,state:l,options:u})=>{let d=performance.now(),f=!!l.captures.documentFront,p=u.requiredDocumentStableFrames,m=null,h=null;try{m=await mS({frame:s,prepareForMatch:f||l.documentStableFrames+1>=u.requiredDocumentStableFrames,options:{...i({configuration:u}),alignment:l.matchOptions.alignment,requiresFace:!f}});let{orientation:e,detection:d,face:g}=m;if(!n({flow:`document`,session:c,state:l}))return!1;let _=f?gS({current:m,front:l.documentFrontSignature}):null;h=f?Gh({front:l.documentFrontSignature,current:m.signature}):null;let v=l.document?{...l.document,ocr:l.document.document_front}:void 0,y=hS({analysis:m,isBack:f,front:v}),b=(f?_?.valid===!0:m.valid)&&y,x=e?e.rotation:null;x!==l.documentOrientation&&(l.documentStableFrames=0),l.documentOrientation=x,l.documentStableFrames=b?l.documentStableFrames+1:0,u.showDocumentOverlay?await fS({documentFaceBoxColor:u.documentFaceBoxColor,documentFaceMeshColor:u.documentFaceMeshColor,documentBoxColor:u.documentBoxColor,element:a.mesh,detection:d,face:g,height:s.height,ocrLines:u.showTextOverlay?m.text.lines:[],ocrToSource:u.showTextOverlay?m.documentToSource:null,overlayColor:u.documentOverlayColor,textColor:u.textColor,width:s.width}):$t({element:a.mesh});let S=bS({analysis:m,dataValid:y,isBack:f,minFaceAreaRatio:u.minDocumentFaceAreaRatio,rejectionReasons:_?_.reasons:m.failureReasons,valid:b,stable:l.documentStableFrames>=p});if(t.feedback.value={flow:`document`,...S},l.documentStableFrames<p)return!1;let C=await tn({frame:s});return n({flow:`document`,session:c,state:l})?f?(vS({analysis:m,isBack:!0,state:l}),l.captures.documentBack=C,r({state:l}),await o(),!0):!m.embeddings||!m.images?!1:(vS({analysis:m,isBack:!1,state:l}),l.documentFaceEmbeddings=m.embeddings,l.documentFrontSignature=m.signature,l.preparedCaptures.documentFront=m.images,l.captures.documentFront=C,r({state:l}),await o(),!0):!1}finally{m&&n({flow:`document`,session:c,state:l})&&e.collectDocumentDebug({analysis:m,sideComparison:h,isBack:f,processingTimeMilliseconds:performance.now()-d,state:l})}};return{runDocumentLoop:async({session:e,state:r,options:i})=>{for(;n({flow:`document`,session:e,state:r});){if(await Jt({video:a.video}),!n({flow:`document`,session:e,state:r}))return;let o=await createImageBitmap(a.video);try{let n=await rn({frame:o});try{if(await s({frame:n,session:e,state:r,options:i})){r.flow=null,t.debug.value=[];return}}finally{n.close()}}finally{o.close()}}}}},vS=({analysis:e,isBack:t,state:n})=>{if(!e.ocr)throw Error(M.CAPTURES_INCOMPLETE);let r={ocr:e.ocr,codes:e.codes};if(t){if(!n.document)throw Error(M.CAPTURES_INCOMPLETE);let t=cg({classification:n.document,front:{ocr:n.document.document_front,codes:n.document.codes},back:r});n.document={...n.document,...t,document_back:e.ocr}}else{if(!e.documentKind)throw Error(M.DOCUMENT_NOT_RECOGNIZED);let t={document:e.documentKind,europeanDrivingLicense:e.europeanDrivingLicense,identity:e.identity},i=cg({classification:t,front:r});n.identity=e.identity,n.document={...t,...i,document_front:e.ocr,document_back:null}}n.documentCodes=n.document.codes},yS=({rejection:e})=>e===`coverage_low`?`DOCUMENT_BOX_TOO_SMALL`:e===`coverage_high`?`DOCUMENT_BOX_TOO_LARGE`:e===`edge_proximity`?`DOCUMENT_BOX_NEAR_EDGE`:e===`opposite_edges`?`DOCUMENT_BOX_TOUCHES_EDGES`:e===`aspect_ratio`?`DOCUMENT_NOT_SUPPORTED`:`DOCUMENT_SHAPE_INVALID`,bS=({analysis:e,dataValid:t,isBack:n,minFaceAreaRatio:r,rejectionReasons:i,valid:a,stable:o})=>{let s=`front`;n?s=`back`:e.documentKind===`passport`&&(s=`passport`);let c=Object.keys(e.documentAnalysis.diagnostics.rejected)[0];return c?{target:s,code:yS({rejection:c})}:e.detection?e.documentAnalysis.isBlurry?{target:s,code:`DOCUMENT_BLURRY`}:n&&i.includes(M.DOCUMENT_BACK_CONTAINS_FACE)?{target:s,code:`DOCUMENT_BACK_HAS_FACE`}:n&&i.includes(M.DOCUMENT_BACK_NOT_DISTINCT)?{target:s,code:`DOCUMENT_BACK_SAME_AS_FRONT`}:!n&&!e.face?{target:s,code:`DOCUMENT_FRONT_FACE_NOT_DETECTED`}:!n&&!e.faceContained?{target:s,code:`DOCUMENT_FRONT_FACE_NOT_CONTAINED`}:!n&&!e.alignment.faceAreaValid&&e.alignment.faceAreaRatio<r?{target:s,code:`DOCUMENT_FRONT_FACE_TOO_SMALL`}:!n&&(!e.alignment.faceAreaValid||!e.alignment.faceDimensionsValid)?{target:s,code:`DOCUMENT_FRONT_FACE_SIZE_INVALID`}:!n&&(!e.alignment.textParallel||e.alignment.textSide===`unknown`||e.alignment.faceAdjacentTextLineCount<2)?{target:s,code:`DOCUMENT_FRONT_LAYOUT_INVALID`}:!e.text.text||e.text.lines.length<2?{target:s,code:`DOCUMENT_TEXT_NOT_READABLE`}:!n&&!e.documentKind?{target:s,code:`DOCUMENT_NOT_RECOGNIZED`}:t?a?o?{target:s,code:null}:{target:s,code:`DOCUMENT_STABILITY_REQUIRED`}:{target:s,code:`DOCUMENT_VALIDATION_FAILED`}:{target:s,code:`DOCUMENT_CODE_NOT_READABLE`}:{target:s,code:`DOCUMENT_NOT_DETECTED`}},xS,SS,CS,wS=t((()=>{xS={front:`frameDocument`,back:`frameDocumentBack`,passport:`framePassport`},SS={FACE_NOT_DETECTED:`faceNotFound`,FACE_IN_POLYGON:`faceInPolygon`,FACE_TOO_SMALL:`faceTooSmall`,FACE_CENTER_MOVE_LEFT:`faceCenterMoveLeft`,FACE_CENTER_MOVE_RIGHT:`faceCenterMoveRight`,FACE_CENTER_MOVE_UP:`faceCenterMoveUp`,FACE_CENTER_MOVE_DOWN:`faceCenterMoveDown`,FACE_STABILITY_REQUIRED:`stayStill`,DOCUMENT_NOT_DETECTED:`documentNotDetected`,DOCUMENT_BOX_TOO_SMALL:`documentBoxTooSmall`,DOCUMENT_BOX_TOO_LARGE:`documentBoxTooLarge`,DOCUMENT_BOX_NEAR_EDGE:`documentBoxNearEdge`,DOCUMENT_BOX_TOUCHES_EDGES:`documentBoxTouchesEdges`,DOCUMENT_SHAPE_INVALID:`documentShapeInvalid`,DOCUMENT_NOT_SUPPORTED:`documentNotSupported`,DOCUMENT_BLURRY:`documentBlurry`,DOCUMENT_FRONT_FACE_NOT_DETECTED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_NOT_CONTAINED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_TOO_SMALL:`documentPhotoTooSmall`,DOCUMENT_FRONT_FACE_SIZE_INVALID:`documentAlignmentInvalid`,DOCUMENT_FRONT_LAYOUT_INVALID:`documentAlignmentInvalid`,DOCUMENT_TEXT_NOT_READABLE:`documentNotReadable`,DOCUMENT_NOT_RECOGNIZED:`invalidDocument`,DOCUMENT_CODE_NOT_READABLE:`passportMrzNotReadable`,DOCUMENT_BACK_HAS_FACE:`documentBackHasFace`,DOCUMENT_BACK_SAME_AS_FRONT:`documentBackSameAsFront`,DOCUMENT_STABILITY_REQUIRED:`holdDocumentStill`,DOCUMENT_VALIDATION_FAILED:`documentValidationFailed`},CS={documentTargets:xS,rejections:SS}})),TS,ES,DS=t((()=>{qx(),wS(),TS=({target:e})=>CS.documentTargets[e],ES=({code:e})=>e in CS.rejections?CS.rejections[e]:Kx({code:e})})),OS,kS,AS,jS,MS,NS,PS,FS,IS,LS,RS,zS,BS,VS,HS,US=t((()=>{Px(),Wb(),It(),Kt(),on(),iS(),DS(),pS(),{detectPictureFaces:OS}=Sx,kS={FACEKEY_LOWER_HEAD:`FACE_PITCH_LOOK_DOWN`,FACEKEY_LOWER_HEAD_LESS:`FACE_PITCH_LOWER_LESS`,FACEKEY_RAISE_HEAD:`FACE_PITCH_LOOK_UP`,FACEKEY_RAISE_HEAD_LESS:`FACE_PITCH_RAISE_LESS`,FACEKEY_TILT_HEAD_LEFT:`FACE_ROLL_TILT_LEFT`,FACEKEY_TILT_HEAD_LESS:`FACE_ROLL_TILT_LESS`,FACEKEY_TILT_HEAD_RIGHT:`FACE_ROLL_TILT_RIGHT`,FACEKEY_TURN_HEAD_LEFT:`FACE_YAW_TURN_LEFT`,FACEKEY_TURN_HEAD_LESS:`FACE_YAW_TURN_LESS`,FACEKEY_TURN_HEAD_RIGHT:`FACE_YAW_TURN_RIGHT`,FACEKEY_SMILE_REQUIRED:`FACE_SMILE_REQUIRED`,FACEKEY_WINK_LEFT_REQUIRED:`FACE_WINK_LEFT_REQUIRED`},AS=({face:e,name:t})=>e.blendshapes[t]??0,jS=({face:e,frame:t})=>e.boundingRect.height/t.height<.4?`FACE_TOO_SMALL`:null,MS=({face:e,pose:t,options:n})=>{let r=Db({...e,pose:t,options:n});return r?kS[r]:null},NS=({face:e,pose:t,options:n})=>MS({face:e,pose:t,options:n})===null,PS=async({capture:e,pose:t,options:n,poseOptions:r})=>{let i=await wx.imageBitmap({blob:e});try{let e=await OS(i),a=e.length===1?e[0]:null;if(!a||!NS({face:a,pose:t,options:r}))return null;let o=wx.prepareFace({alignment:n.alignment,face:a,frame:i});return o?await wx.preparedFaceArtifacts({face:o}):null}finally{i.close()}},{detectDocumentBox:FS}=xx,{detectFace:IS}=Sx,LS=({view:e,display:t,isActive:n,notifyCapturesChanged:r})=>{let i=e.ref,a=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,o=({face:e,frame:n})=>{let r=e.boundingRect.x+e.boundingRect.width/2,i=e.boundingRect.y+e.boundingRect.height/2,a=(t.cameraFacingMode.value===`user`?n.width-r:r)/n.width,o=i/n.height;return a<.4?`FACE_CENTER_MOVE_RIGHT`:a>.6?`FACE_CENTER_MOVE_LEFT`:o<.4?`FACE_CENTER_MOVE_DOWN`:o>.6?`FACE_CENTER_MOVE_UP`:null},s=async({frame:s,session:c,state:l,options:u})=>{let d=performance.now(),f=null,p=!1;try{f=await IS(s);let e=f?await FS(s):null;if(p=!!(f&&e&&ab({face:f,polygon:e.polygon})),!n({flow:`face`,session:c,state:l}))return!1;if(u.showFaceOverlay&&await dS({element:i.mesh,meshLineColor:u.faceMeshColor,overlayColor:u.faceOverlayColor,result:f}),!f){l.poseStableFrames=0;let e=a({state:l});return t.feedback.value={flow:`face`,code:`FACE_NOT_DETECTED`,pose:e},!1}if(p)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_IN_POLYGON`,pose:a({state:l})},!1;let d=a({state:l}),m=jS({face:f,frame:s});if(m)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:m,pose:d},!1;let h=o({face:f,frame:s});if(h)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:h,pose:d},!1;let g={pitch:f.pitch,yaw:f.yaw,roll:f.roll},_=tS({alignment:g,blendshapes:f.blendshapes,neutral:l.neutralPose,pose:d,options:u});l.guidanceCodeState=nS({state:l.guidanceCodeState,code:_.code,requiredFrames:3}),t.guidance.value=_;let v=_.code?kS[_.code]:null,y=l.guidanceCodeState.published?kS[l.guidanceCodeState.published]:null,b=rS({pose:d,corrective:y?ES({code:y}):null}).corrective,x=performance.now();if(l.correctiveState=Qx({label:b,now:x,state:l.correctiveState}),t.corrective.value=$x({label:b,now:x,state:l.correctiveState}),v)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:y,pose:d},!1;if(d===`faceStraight`&&!l.neutralPose&&(l.neutralPose=g),l.poseStableFrames+=1,l.poseStableFrames<u.requiredFaceStableFrames)return t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;t.feedback.value={flow:`face`,code:null,pose:d};let S=await tn({frame:s}),C=await PS({capture:S,pose:d,options:l.matchOptions,poseOptions:u});if(!n({flow:`face`,session:c,state:l}))return!1;if(!C)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;let w=Vb({image:wx.readImage({frame:s,width:32,height:32})}),T=l.previousPoseBackgroundSignature;if(T&&!Hb({first:T,second:w}).matched)throw Error(M.POSE_BACKGROUND_MISMATCH);let E=l.faceEmbeddings.faceStraight;if(E&&Mb({first:E,second:C.embeddings})<=l.matchOptions.threshold)throw Error(M.POSE_IDENTITY_MISMATCH);let ee=d;return l.captures[ee]=S,l.preparedCaptures[ee]=C.images,l.faceEmbeddings[ee]=C.embeddings,l.previousPoseBackgroundSignature=w,r({state:l}),t.success.value=!0,await Gt({milliseconds:400}),t.success.value=!1,n({flow:`face`,session:c,state:l})?(l.poseIndex+=1,l.poseStableFrames=0,l.guidanceCodeState=Xx(),l.correctiveState=Zx(),t.corrective.value=null,t.progress.value={completed:l.poseIndex,total:l.faceSequence.length},l.poseIndex===l.faceSequence.length?(t.feedback.value=null,!0):(t.feedback.value={flow:`face`,pose:a({state:l}),code:null},!1)):!1}finally{n({flow:`face`,session:c,state:l})&&e.collectFaceDebug({face:f,faceInPolygon:p,processingTimeMilliseconds:performance.now()-d,state:l}),s.close()}};return{runFaceLoop:async({session:e,state:r,options:a})=>{for(;n({flow:`face`,session:e,state:r});){if(await Jt({video:i.video}),!n({flow:`face`,session:e,state:r}))return;let o=await createImageBitmap(i.video);if(await s({frame:o,session:e,state:r,options:a})){r.flow=null,t.debug.value=[],t.guidance.value=null;return}}}}},RS=({captures:e,state:t})=>t.faceSequence.every(n=>!!(e[n]&&t.preparedCaptures[n]&&t.faceEmbeddings[n])),zS=({captures:e,state:t})=>{if(!RS({captures:e,state:t}))throw Error(M.CAPTURES_INCOMPLETE);let n=[...t.faceSequence];return{faces:n.map(t=>e[t]).filter(e=>!!e),poses:n,embeddings:n.map(e=>t.faceEmbeddings[e]).filter(e=>!!e)}},BS=({sequence:e})=>{let t=[...e];for(let e=t.length-1;e>0;--e){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},VS=({sequence:e})=>[...e].sort((e,t)=>Rx[e]-Rx[t]),HS=({poses:e,randomize:t})=>{let n=e===`all`?[...Lx]:e??Ix;if(!n.length)throw Error(M.INVALID_POSES);let r=[...new Set(n)];if(r.length!==n.length||r.some(e=>!Lx.includes(e))||r[0]!==`faceStraight`||Ix.some(e=>!r.includes(e)))throw Error(M.INVALID_POSES);let i=r.slice(1);return t?[`faceStraight`,...BS({sequence:i})]:[`faceStraight`,...VS({sequence:i})]}}));US(),Bx(),It(),on();var WS=`https://api.voltom.io`,GS=({apiUrl:e})=>{let t=e??WS;return t.endsWith(`/`)?t.slice(0,-1):t},KS=async({apiUrl:e,path:t,method:n=`POST`,body:r,clientKey:i,fallback:a=M.INVALID_SERVICE_RESPONSE,signal:o})=>{let s={};i&&(s.authorization=`Bearer ${i}`),r&&(s[`content-type`]=`application/json`);let c;try{c=await fetch(`${GS({apiUrl:e})}${t}`,{method:n,headers:s,body:r,signal:o})}catch(e){throw o?.aborted?Error(M.VERIFICATION_CANCELLED,{cause:e}):Error(M.NETWORK_ERROR,{cause:e})}if(c.status===413)throw Error(M.REQUEST_TOO_LARGE);let l;try{l=await c.json()}catch(e){throw Error(c.status>=500?M.SERVICE_UNAVAILABLE:a,{cause:e})}if(!c.ok){let e=typeof l==`object`&&l&&`code`in l&&typeof l.code==`string`?l.code:c.status>=500?M.SERVICE_UNAVAILABLE:a;throw Error(e)}return l},qS=async({clientKey:e,apiUrl:t,signal:n})=>{await KS({apiUrl:t,path:`/auth/me`,method:`GET`,clientKey:e,fallback:M.INVALID_CLIENT_KEY,signal:n})},JS=({apiUrl:e})=>{if(typeof navigator<`u`&&typeof navigator.sendBeacon==`function`)try{navigator.sendBeacon(`${GS({apiUrl:e})}/script-loads`)}catch{return}},YS=async({clientKey:e,apiUrl:t,endpoint:n,documentBack:r,documentFront:i,faces:a=[],options:o,picture:s,poses:c=[],sourceIds:l=[],threshold:u,signal:d})=>{if(!e)throw Error(M.CLIENT_KEY_REQUIRED);let f=JSON.stringify({documentFront:i?await an({image:i}):void 0,documentBack:r?await an({image:r}):void 0,picture:s?await an({image:s}):void 0,faces:await Promise.all(a.map(e=>an({image:e}))),options:o,poses:c.map(e=>zx[e]),source_ids:l,threshold:u});return d?.throwIfAborted(),await KS({apiUrl:t,path:n,body:f,clientKey:e,signal:d})};Px(),Sm(),Wb(),hh(),Bx(),It(),Kt(),on(),iS(),pS();var{loadDocumentBoxDetector:XS,detectDocumentOrientation:ZS}=xx,{detectPictureFaces:QS,loadFaceDetector:$S}=Sx,{loadFaceMatch:eC,warmupFaceMatch:tC}=wx,{loadTextDetector:nC}=Cx,rC=({options:e,view:t,display:n})=>{let r=t.ref,i=[...Ix],a=({language:e})=>e??Ht(),o=()=>({identity:null,flow:null,session:0,faceSequence:[...i],faceCaptureConfiguration:null,documentCaptureConfiguration:null,poseIndex:0,poseStableFrames:0,documentStableFrames:0,documentOrientation:null,documentFaceEmbeddings:null,documentFrontSignature:null,documentCodes:[],matchOptions:{alignment:e.alignment,threshold:e.threshold},captures:{},preparedCaptures:{},faceEmbeddings:{},previousPoseBackgroundSignature:null,neutralPose:null,guidanceCodeState:Xx(),correctiveState:Zx(),faceMatchOptions:null,hardHumanVerificationId:null,hardDocumentVerificationId:null,cameraActive:!1,cameraSize:n.cameraSize,cameraFacingMode:n.cameraFacingMode}),s=({active:e,state:t})=>{t.cameraActive!==e&&(t.cameraActive=e,r.root.dispatchEvent(new CustomEvent(`voltom:camera-change`,{detail:{active:e}})))},c=({state:e})=>{Zt({video:r.video}),s({active:!1,state:e}),e.cameraSize.value=null,e.cameraFacingMode.value=null,n.feedback.value=null,n.guidance.value=null,n.corrective.value=null,n.success.value=!1},l=({state:e})=>({identity:e.identity,document:e.document,captures:{...e.captures},documentCodes:[...e.documentCodes],preparedCaptures:{...e.preparedCaptures}}),u=({state:e})=>{let t=l({state:e});r.root.dispatchEvent(new CustomEvent(`voltom:captures-change`,{detail:t}))},d=({state:t,options:r=e})=>{t.faceSequence=y({options:r}),t.poseIndex=0,t.poseStableFrames=0;let i=t.preparedCaptures.documentFront;t.preparedCaptures=i?{documentFront:i}:{},t.faceEmbeddings={},t.previousPoseBackgroundSignature=null,t.neutralPose=null,t.guidanceCodeState=Xx(),t.correctiveState=Zx(),n.corrective.value=null,t.faceMatchOptions=null,t.hardHumanVerificationId=null,t.faceCaptureConfiguration=null;let{documentFront:a,documentBack:o}=t.captures;t.captures={...a?{documentFront:a}:{},...o?{documentBack:o}:{}}},f=({state:e})=>{e.documentStableFrames=0,e.documentOrientation=null,e.documentFaceEmbeddings=null,e.documentFrontSignature=null,e.identity=null,e.documentCodes=[],delete e.document,e.hardDocumentVerificationId=null,e.documentCaptureConfiguration=null,delete e.preparedCaptures.documentFront;let t={...e.captures};delete t.documentFront,delete t.documentBack,e.captures=t},p=({state:e})=>{e.session+=1,e.flow=null,c({state:e}),$t({element:r.mesh}),n.debug.value=[]},m=({state:e})=>{p({state:e}),u({state:e}),n.error.value=null},h=({state:e})=>{let t=r.video.videoWidth,n=r.video.videoHeight;t&&n&&(e.cameraSize.value={width:t,height:n})},g=async({facingMode:e,state:t})=>{c({state:t});let n=t.session,i=await Qt({facingMode:e,video:r.video});if(t.session!==n)throw Zt({video:r.video}),ae();t.cameraFacingMode.value=i,h({state:t}),s({active:!0,state:t})},_=({flow:e,session:t,state:n})=>n.flow===e&&n.session===t,v=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,y=({options:e})=>HS({poses:e.poses,randomize:e.randomizeFaceSequence??!1}),b=({options:e})=>JSON.stringify({poses:e.poses,randomizeFaceSequence:e.randomizeFaceSequence,faceDetector:e.faceDetector,alignment:e.alignment,threshold:e.threshold,language:e.language,maxPitch:e.maxPitch,minPitch:e.minPitch,maxYaw:e.maxYaw,minYaw:e.minYaw,maxRoll:e.maxRoll,requiredFaceStableFrames:e.requiredFaceStableFrames}),x=({options:e})=>JSON.stringify({ocrEngine:e.ocrEngine,language:e.language,minDocumentFaceAreaRatio:e.minDocumentFaceAreaRatio,maxDocumentFaceAreaRatio:e.maxDocumentFaceAreaRatio,minDocumentFaceWidthRatio:e.minDocumentFaceWidthRatio,maxDocumentFaceWidthRatio:e.maxDocumentFaceWidthRatio,minDocumentFaceHeightRatio:e.minDocumentFaceHeightRatio,maxDocumentFaceHeightRatio:e.maxDocumentFaceHeightRatio,minDocumentBoxRatio:e.minDocumentBoxRatio,maxDocumentTextAngleDifference:e.maxDocumentTextAngleDifference,requiredDocumentStableFrames:e.requiredDocumentStableFrames}),S=({state:e,options:t})=>e.faceCaptureConfiguration===b({options:t})&&RS({captures:e.captures,state:e}),C=({state:e,options:t})=>{let n=e.document,r=n!==void 0&&n.document!==`passport`,i=!(!e.captures.documentFront||r&&!e.captures.documentBack),a=e.documentCaptureConfiguration===x({options:t});return!!(n?.valid&&i&&a)},w=({configuration:e})=>{let t=Object.fromEntries(Object.keys(Q).map(t=>[t,e[t]]));return t.language=a({language:e.language}),t},T=async({configuration:e,endpoint:t,state:n,picture:r,sourceIds:i=[],signal:a})=>{let o=RS({captures:n.captures,state:n})?zS({captures:n.captures,state:n}):null;return await YS({clientKey:e.clientKey,apiUrl:e.apiUrl,endpoint:t,documentBack:r?void 0:n.captures.documentBack,documentFront:r?void 0:n.captures.documentFront,faces:o?.faces,options:w({configuration:e}),picture:r,poses:o?.poses,sourceIds:i,threshold:e.threshold,signal:a})},E={options:e,view:t,display:n,isActive:_,notifyCapturesChanged:u,getVerifyHardOptions:w},{runFaceLoop:ee}=LS(E),{runDocumentLoop:te}=_S(E),ne=async({state:e,options:t})=>{p({state:e}),d({state:e,options:t}),n.progress.value={completed:0,total:e.faceSequence.length},e.faceCaptureConfiguration=b({options:t}),e.matchOptions={alignment:t.alignment,threshold:t.threshold},e.faceMatchOptions={...e.matchOptions},u({state:e});let i=e.session;e.flow=`face`;try{if(n.feedback.value={flow:`face`,pose:v({state:e}),code:null},await g({facingMode:`user`,state:e}),n.feedback.value={flow:`face`,pose:v({state:e}),code:null},await ee({session:i,state:e,options:t}),e.session!==i)throw ae();if(!RS({captures:e.captures,state:e}))throw Error(M.CAPTURES_INCOMPLETE);let a={...e.captures};return c({state:e}),$t({element:r.mesh}),a}finally{e.session===i&&(n.feedback.value=null)}},re=async({state:t,options:i=e})=>{p({state:t}),f({state:t}),t.documentCaptureConfiguration=x({options:i}),t.matchOptions={alignment:i.alignment,threshold:i.threshold},u({state:t});let a=t.session;t.flow=`document`;try{if(!_({flow:`document`,session:a,state:t})||(await g({facingMode:`environment`,state:t}),n.feedback.value={flow:`document`,code:null,target:`front`},await te({session:a,state:t,options:i}),t.session!==a))throw ae();if(!t.captures.documentFront||!t.document)throw Error(M.CAPTURES_INCOMPLETE);if(t.document.document!==`passport`&&(t.documentStableFrames=0,t.documentOrientation=null,t.flow=`document`,n.feedback.value={flow:`document`,code:null,target:`back`},await te({session:a,state:t,options:i}),t.session!==a))throw ae();if(!t.document.valid)throw Error(M.DOCUMENT_VALIDATION_FAILED);let e={...t.captures};return c({state:t}),$t({element:r.mesh}),e}finally{t.session===a&&(n.feedback.value=null,$t({element:r.mesh}))}},ie=async()=>{let t=e.capabilities.some(e=>e===`verifyDocument`||e===`matchID`),n=[XS(),$S({faceDetector:e.faceDetector}),eC(),...t?[Nx(),nC({engine:`tiny`,language:`latin`}),nC({engine:e.ocrEngine,language:a({language:e.language})}),Iy()]:[],...e.showFaceOverlay||e.showDocumentOverlay?[oS()]:[]];await Promise.all(n);let r=document.createElement(`canvas`);r.width=640,r.height=480;let i=await createImageBitmap(r);try{let e=[QS(i),xx.detectDocumentBox(i),tC()];t&&e.push(ZS({frame:i,boundingRect:{x:0,y:0,width:i.width,height:i.height}})),await Promise.all(e)}finally{i.close()}},D=async()=>{let t=e.capabilities.some(e=>e===`verifyDocument`||e===`matchID`),n=[`dd.ort`,rh[e.faceDetector],`fl.ort`,`fe.ort`,`fmu.ort`,`ort-wasm-simd-threaded.mjs`,`ort-wasm-simd-threaded.wasm`,...t?[`do.ort`,`zxing-wasm/reader/index.js`,`zxing-wasm/share.js`,`zxing-wasm/reader/zxing_reader.wasm`]:[],...e.showFaceOverlay||e.showDocumentOverlay?[`faceMeshLines.json`]:[]],r=[xm({filenames:n})];t&&(r.push(xm({filenames:Qm({language:`latin`,engine:`tiny`})})),r.push(xm({filenames:Qm({language:a({language:e.language}),engine:e.ocrEngine})}))),await Promise.all(r)},ae=()=>new DOMException(M.VERIFICATION_CANCELLED,`AbortError`);return{createState:o,stop:m,syncCameraSize:h,captureResult:l,resetFaceFlow:d,resetDocumentFlow:f,hasCompatibleFaceCaptures:S,hasCompatibleDocumentCapture:C,notifyCapturesChanged:u,startFaceFlow:ne,startDocumentFlow:re,startPictureFlow:async({picture:e,state:t,options:r,signal:i})=>{n.error.value=null,i?.throwIfAborted();let a=await wx.imageBitmap({blob:e});try{let e=await QS(a,{forMatch:!0});if(i?.throwIfAborted(),!e.length)throw Error(M.NO_USABLE_CANDIDATES)}finally{a.close()}let o=t.faceCaptureConfiguration===b({options:r});S({state:t,options:r})&&o||await ne({state:t,options:r}),i?.throwIfAborted();let s=await wx.imageBitmap({blob:e});try{let[e]=await QS(s,{forMatch:!0});i?.throwIfAborted();let n=e?wx.prepareFace({alignment:r.alignment,face:e,frame:s}):null,a=n?await wx.preparedFaceArtifacts({face:n}):null;i?.throwIfAborted(),a&&(t.preparedCaptures.picture=a.images)}finally{s.close()}u({state:t})},submitHardVerification:T,initializeModels:ie,preloadModels:D,showError:({error:e,state:t})=>{Ft({error:e})!==M.VERIFICATION_CANCELLED&&p({state:t}),Xe(()=>{n.activity.value=null,Ft({error:e})===M.VERIFICATION_CANCELLED?n.retry.value=null:n.error.value=e})}}};Px(),a(),It();var iC,aC=async()=>{try{iC??=import(i({filename:`pdf/pdf.mjs`}));let e=await iC;return e.GlobalWorkerOptions.workerSrc=i({filename:`pdf/pdf.worker.mjs`}),e}catch{throw iC=void 0,Error(M.PDF_LOAD_FAILED)}},oC=async({blob:e,signal:t})=>{if(new TextDecoder().decode(await e.slice(0,5).arrayBuffer())!==`%PDF-`)return null;if(e.size>1e7)throw Error(M.REQUEST_TOO_LARGE);t.throwIfAborted();let n=await aC();t.throwIfAborted();let r=new Uint8Array(await e.arrayBuffer()),a=n.getDocument({data:r,cMapUrl:i({filename:`pdf/cmaps/`}),cMapPacked:!0,standardFontDataUrl:i({filename:`pdf/standard_fonts/`}),wasmUrl:i({filename:`pdf/wasm/`})}),o=()=>{a.destroy()};t.addEventListener(`abort`,o,{once:!0});let s;try{let e=await a.promise;t.throwIfAborted();let n=await e.getPage(1),r=n.getViewport({scale:1}),i=n.getViewport({scale:Math.min(1,1200/Math.max(r.width,r.height))}),o=window.document.createElement(`canvas`);o.width=Math.ceil(i.width),o.height=Math.ceil(i.height),await n.render({canvas:o,viewport:i,background:`white`}).promise,t.throwIfAborted(),s=await createImageBitmap(o),o.width=0,o.height=0;let c=await Sx.detectPictureFaces(s,{forMatch:!0});t.throwIfAborted();let l=c[0];if(!l)throw Error(M.NO_USABLE_CANDIDATES);let u=l.boundingRect,d=Math.max(0,Math.floor(u.x-u.width*.25)),f=Math.max(0,Math.floor(u.y-u.height*.25)),p=Math.min(s.width-d,Math.ceil(u.width*1.5)),m=Math.min(s.height-f,Math.ceil(u.height*1.5)),h=new OffscreenCanvas(p,m),g=h.getContext(`2d`);if(!g)throw Error(M.IMAGE_PROCESSING_FAILED);g.drawImage(s,d,f,p,m,0,0,p,m);let _=await h.convertToBlob({type:`image/jpeg`,quality:.95});return t.throwIfAborted(),_}catch(e){throw t.throwIfAborted(),e instanceof Error&&Object.values(M).includes(e.message)?e:e instanceof Error&&e.name===`PasswordException`?Error(M.PDF_PASSWORD_REQUIRED):Error(M.INVALID_PDF)}finally{t.removeEventListener(`abort`,o),s?.close(),await a.destroy()}},sC,cC=t((()=>{Mt(),sC=()=>({activity:$e(null),error:$e(null),retry:$e(null),feedback:$e(null),guidance:$e(null),corrective:$e(null),progress:$e({completed:0,total:0}),success:$e(!1),cameraSize:$e(null),cameraFacingMode:$e(null),debug:$e([]),debugEnabled:$e(!1)})}));cC(),Wb();var lC={...Q,faceDetector:`standard`,apiUrl:`https://api.voltom.io`,language:void 0,clientKey:``,threshold:kb,randomizeFaceSequence:!1,requiredFaceStableFrames:2,requiredDocumentStableFrames:2,showFaceOverlay:!1,showDocumentOverlay:!1,showTextOverlay:!1,faceOverlayColor:`transparent`,faceMeshColor:`#38efb0`,documentOverlayColor:`transparent`,documentBoxColor:`#22d3ee`,documentFaceBoxColor:`#22d3ee`,documentFaceMeshColor:`#38efb0`,textColor:`#22d3ee`,debug:!1,capabilities:[`verifyHuman`,`verifyDocument`,`matchID`,`matchPicture`]};function $(e,t,n,r,i,a){t||={};var o,s,c=t;if(`ref`in c&&typeof e!=`function`)for(s in c={},t)s==`ref`?o=t[s]:c[s]=t[s];var l={type:e,props:c,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:uC,__v:--dC,__i:-1,__u:0};return(i||a)&&(l.__source=i,l.__self=a),D.vnode&&D.vnode(l),l}var uC,dC,fC=t((()=>{Se(),uC=Symbol.for(`pv`),dC=0,Array.isArray})),pC,mC=t((()=>{fC(),pC=({className:e,entries:t,kind:n})=>$(`div`,{className:t.length?e:`hidden`,[`data-${n}-debug`]:``,children:t.map(({label:e,valid:t,value:n})=>$(`div`,{children:[$(`span`,{children:[e,`: `]}),$(`span`,{"data-valid":t===void 0?void 0:String(t),children:n})]},e))})})),hC,gC,_C,vC,yC,bC=t((()=>{fC(),hC=100,gC=2,_C=({total:e})=>hC/e-(e===1?0:gC),vC=({arc:e,index:t,total:n})=>({dasharray:`${e} ${hC-e}`,offset:`${-t*hC/n}`}),yC=({className:e,completed:t,label:n,total:r,variant:i=`bar`})=>{if(i===`ring`){let i=_C({total:r});return $(`svg`,{className:e,"data-pose-progress":``,"data-variant":`ring`,viewBox:`0 0 100 100`,role:`progressbar`,"aria-label":n,"aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":t,children:$(`g`,{transform:`rotate(-90 50 50)`,children:Array.from({length:r},(e,n)=>{let{dasharray:a,offset:o}=vC({arc:i,index:n,total:r});return $(`circle`,{cx:`50`,cy:`50`,r:`50`,pathLength:hC,ref:e=>{e&&(e.setAttribute(`stroke-dasharray`,a),e.setAttribute(`stroke-dashoffset`,o))},"data-pose-progress-step":``,"data-complete":n<t?``:void 0},n)})})})}return $(`div`,{className:e,"data-pose-progress":``,"data-variant":`bar`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":t,children:Array.from({length:r},(e,n)=>$(`span`,{"data-pose-progress-step":``,"data-complete":n<t?``:void 0},n))})}})),xC,SC,CC,wC,TC,EC=t((()=>{fC(),xC={faceLeft:`M 78 50 L 22 50`,faceRight:`M 22 50 L 78 50`,faceUp:`M 50 78 L 50 22`,faceDown:`M 50 22 L 50 78`,faceTiltLeft:`M 68 26 Q 44 34 32 62`,faceTiltRight:`M 32 26 Q 56 34 68 62`},SC=()=>$(`defs`,{children:$(`marker`,{id:`pose-arrowhead`,markerWidth:`6`,markerHeight:`6`,refX:`4.4`,refY:`3`,orient:`auto`,children:$(`path`,{"data-pose-arrowhead":``,d:`M0,0 L6,3 L0,6 Z`})})}),CC=({pose:e})=>{let t=xC[e];return t?$(`path`,{"data-pose-motion":``,d:t,"marker-end":`url(#pose-arrowhead)`}):null},wC=({pose:e})=>e===`faceSmile`?$(`path`,{"data-pose-smile":``,d:`M 15 45 A 35 35 0 0 0 85 45`}):null,TC=({className:e,pose:t})=>$(`svg`,{className:e,"data-pose-arrow":``,"data-pose":t,viewBox:`0 0 100 100`,"aria-hidden":`true`,children:[$(SC,{}),$(CC,{pose:t}),$(wC,{pose:t})]})})),DC,OC=t((()=>{fC(),DC=({className:e,visible:t})=>$(`svg`,{className:e,"data-pose-success":``,"data-visible":t?``:void 0,viewBox:`0 0 100 100`,"aria-hidden":`true`,children:[$(`circle`,{cx:`50`,cy:`50`,r:`44`}),$(`path`,{d:`M29 51 43 65 72 36`,pathLength:`1`})]})})),kC,AC=t((()=>{kC=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
72
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-font-weight:initial}}}[data-voltom-demo],[data-voltom-root],[data-facekey-root]{--theme-canvas:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202020);--theme-surface-subtle:var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#2c2c2c);--theme-text:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-text-muted:var(--lightningcss-light,#626262)var(--lightningcss-dark,#a3a3a3);--theme-text-inverse:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-border:var(--lightningcss-light,#bfbfbf)var(--lightningcss-dark,#606060);--theme-primary:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-primary-hover:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--theme-primary-active:var(--lightningcss-light,#404040)var(--lightningcss-dark,#d4d4d4);--theme-focus:var(--lightningcss-light,#525252)var(--lightningcss-dark,#d4d4d4);--theme-cocoa:var(--lightningcss-light,#6b4423)var(--lightningcss-dark,#d29a63);--theme-mint:var(--lightningcss-light,#116b4c)var(--lightningcss-dark,#38efb0);--theme-cyan:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#22d3ee);--theme-violet:var(--lightningcss-light,#5b21b6)var(--lightningcss-dark,#b69cff);--theme-berry:var(--lightningcss-light,#a21caf)var(--lightningcss-dark,#e879f9);--theme-danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff6b6b);--theme-danger-surface:var(--lightningcss-light,#fee2e2)var(--lightningcss-dark,#451a19);--theme-success:var(--lightningcss-light,#087443)var(--lightningcss-dark,#4ade80);--theme-success-surface:var(--lightningcss-light,#e7f6ee)var(--lightningcss-dark,#123c2b);--theme-warning:var(--lightningcss-light,#a16207)var(--lightningcss-dark,#ffc93c);--theme-warning-surface:var(--lightningcss-light,#fef3c7)var(--lightningcss-dark,#422006)}[data-voltom-demo]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-voltom-demo]{--lightningcss-light: ;--lightningcss-dark:initial}}[data-pose-silhouette],[data-pose-arrow]{display:block;overflow:visible}[data-pose-silhouette] [data-pose-head]{fill:none;stroke:var(--theme-border);stroke-width:1.5px;stroke-dasharray:5 5}[data-pose-silhouette] [data-pose-eye]{fill:var(--theme-text-muted);stroke:none}[data-pose-silhouette] [data-pose-mouth],[data-pose-silhouette] [data-pose-eye-closed],[data-pose-motion]{fill:none;stroke:var(--theme-cyan);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}[data-pose-motion]{stroke-dasharray:6 6;animation:.9s linear infinite pose-motion}[data-pose-arrowhead]{fill:var(--theme-cyan);stroke:none}[data-pose-arrow] [data-pose-motion]{stroke:var(--theme-mint);stroke-width:4px;stroke-dasharray:none;animation:none}[data-pose-arrow] [data-pose-arrowhead]{fill:var(--theme-mint)}[data-pose-arrow] [data-pose-smile]{fill:none;stroke:var(--theme-mint);stroke-width:4px;stroke-linecap:round}[data-pose-progress][data-variant=bar]{gap:4px;width:100%;display:flex}[data-pose-progress][data-variant=bar] [data-pose-progress-step]{background:var(--theme-border);border-radius:9999px;flex:1;height:4px;transition:background .2s}[data-pose-progress][data-variant=bar] [data-pose-progress-step][data-complete]{background:var(--theme-mint)}[data-pose-progress][data-variant=ring]{display:block;overflow:visible}[data-pose-progress][data-variant=ring] [data-pose-progress-step]{fill:none;stroke:var(--theme-border);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}[data-pose-progress][data-variant=ring] [data-pose-progress-step][data-complete]{stroke:var(--theme-mint)}[data-pose-success]{opacity:0;pointer-events:none}[data-pose-success] circle{fill:var(--theme-success-surface);stroke:var(--theme-mint);stroke-width:2px}[data-pose-success] path{fill:none;stroke:var(--theme-mint);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}[data-pose-success][data-visible]{animation:.42s ease-out both pose-success-appear}[data-pose-success][data-visible] path{animation:.24s ease-out 60ms both pose-success-draw}@keyframes pose-motion{to{stroke-dashoffset:-12px}}@keyframes pose-success-appear{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pose-success-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){[data-pose-motion]{animation:none}[data-pose-success][data-visible]{opacity:1}[data-pose-success][data-visible] path{stroke-dashoffset:0}}@layer components{[data-voltom-root]{width:100%;min-height:0;max-width:var(--container-5xl,64rem);padding-block:env(safe-area-inset-top);color:var(--theme-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;gap:.75rem;margin-inline:auto;display:flex;position:relative;overflow:visible}[data-voltom-camera]{background-color:var(--theme-surface);width:100%;aspect-ratio:var(--voltom-camera-ratio,4 / 3);flex-shrink:0;margin-inline:auto;position:relative;overflow:hidden;container-type:size}[data-voltom-camera]>video,[data-voltom-mesh],[data-voltom-overlay]{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}[data-voltom-mesh],[data-voltom-overlay]{object-fit:fill}[data-voltom-mesh]{color:var(--theme-canvas)}[data-voltom-mesh],[data-voltom-overlay],[data-voltom-guide],[data-voltom-ring],[data-voltom-direction],[data-voltom-challenge],[data-voltom-result],[data-voltom-spinner],[data-voltom-feedback]{pointer-events:none}[data-voltom-feedback]{z-index:10;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding-inline:1rem;display:flex;position:absolute;inset:0}[data-voltom-camera][data-mirrored]>video,[data-voltom-camera][data-mirrored] [data-voltom-mesh]{--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}[data-voltom-guide-mode=document]{border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:2px;border-color:var(--theme-border);height:90cqh;margin:auto;display:block;position:absolute;inset:0}[data-voltom-guide-mode=document][data-voltom-guide-orientation=landscape]{aspect-ratio:4/3}[data-voltom-guide-mode=document][data-voltom-guide-orientation=portrait]{aspect-ratio:3/4}[data-voltom-ring-wrap]{pointer-events:none;z-index:5;width:66cqh;height:66cqh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-voltom-ring-wrap]:not([data-voltom-ring-mode=face]){display:none}[data-voltom-ring-wrap] [data-pose-progress]{width:100%;height:100%}[data-voltom-direction]{width:36px;height:36px;color:var(--theme-mint);pointer-events:none;z-index:10;position:absolute;bottom:14cqh;left:50%;transform:translate(-50%)}[data-voltom-direction]:not([data-voltom-direction-pose]){display:none}[data-voltom-debug]{pointer-events:none;z-index:10;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem;width:200px;display:none;position:absolute;top:.75rem;left:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{background-color:color-mix(in oklab, var(--theme-surface) 70%, transparent)}}[data-voltom-debug]{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);--tw-leading:calc(.25rem * 4);color:var(--theme-text-muted);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.25rem;padding-inline:.5rem;font-size:10px;line-height:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-debug]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}[data-voltom-debug]:not(.hidden){display:block}[data-voltom-camera]>[data-pose-success]{z-index:30;transform-origin:50%;width:96px;height:96px;margin:auto;position:absolute;inset:0}[data-voltom-debug] [data-valid=true]{color:var(--theme-mint)}[data-voltom-debug] [data-valid=false]{color:var(--theme-danger)}[data-voltom-overlay][data-idle]{background-color:var(--theme-canvas);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]{background-color:color-mix(in oklab, var(--theme-canvas) 70%, transparent)}}[data-voltom-overlay][data-idle]:before{background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]:before{background-color:color-mix(in oklab, var(--theme-surface) 80%, transparent)}}[data-voltom-overlay][data-idle]:before{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));color:var(--theme-cyan);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);content:attr(data-voltom-overlay-label);padding-block:.75rem;padding-inline:1rem}[data-voltom-overlay][data-error]:before{content:none}[data-voltom-challenge]{z-index:10;background-color:var(--theme-surface);max-width:calc(100vw - 1.5rem);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);inset-inline:.75rem;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding-block:.5rem;padding-inline:.75rem;display:flex;position:absolute;top:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-challenge]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-challengeText]{text-align:center;font-size:1rem;line-height:var(--tw-leading,var(--text-base--line-height,calc(1.5 / 1)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);flex-direction:column;display:flex}[data-voltom-challengeReason]{font-size:.875rem;line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--theme-warning)}[data-voltom-spinner]{z-index:20;background-color:var(--theme-canvas);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]{background-color:color-mix(in oklab, var(--theme-canvas) 90%, transparent)}}[data-voltom-spinner]{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--theme-text);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}[data-voltom-spinner]:before{width:2rem;height:2rem;animation:var(--animate-spin,spin 1s linear infinite);border-style:var(--tw-border-style);border-width:4px;border-color:var(--theme-border);border-radius:2147483647px;display:block}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]:before{border-color:color-mix(in oklab, var(--theme-border) 30%, transparent)}}[data-voltom-spinner]:before{border-top-color:var(--theme-cyan)}@media (prefers-reduced-motion:reduce){[data-voltom-spinner]:before{animation:none}}[data-voltom-spinner]:before{content:""}[data-voltom-result]{pointer-events:auto;width:fit-content;max-width:100%;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);border-radius:.375rem;padding-block:.5rem;padding-inline:1rem}[data-voltom-retry]{pointer-events:auto;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{background-color:color-mix(in oklab, var(--theme-surface) 90%, transparent)}}[data-voltom-retry]{font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.75rem;padding-inline:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-retry]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media (hover:hover){[data-voltom-retry]:hover{background-color:var(--theme-surface-subtle)}}[data-voltom-result].is-success{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-success)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-success{border-color:color-mix(in oklab, var(--theme-success) 50%, transparent)}}[data-voltom-result].is-success{background-color:var(--theme-success-surface);color:var(--theme-success)}[data-voltom-result].is-failure{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-danger)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-failure{border-color:color-mix(in oklab, var(--theme-danger) 50%, transparent)}}[data-voltom-result].is-failure{background-color:var(--theme-danger-surface);color:var(--theme-danger)}[data-voltom-root] .hidden{display:none}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}`})),jC=n({createVerificationDisplay:()=>sC,createVerificationView:()=>NC}),MC,NC,PC=t((()=>{hh(),Se(),Je(),mC(),It(),Kt(),bC(),EC(),OC(),iS(),US(),DS(),AC(),fC(),MC=({className:e,display:t,elements:n,options:r})=>{let[i,a]=we(!0),{translate:o,translateError:s}=Wt({language:r.language}),c=t.feedback.value,l=t.activity.value,d=l&&l!==`matching`?l.message:``,f=l===`matching`?o(`checkingFaceMatch`):d,p=t.error.value,m=t.cameraSize.value,h=c&&c.flow===`face`?c.pose:void 0;t.guidance.value;let g=t.progress.value,_=t.corrective.value,v=h?rS({pose:h,corrective:_}):null,y=o(`lookStraight`),b=``;if(v&&(y=o(v.primary),b=v.corrective?o(v.corrective):``),c&&c.flow===`document`){let e=o(TS({target:c.target}));y=(c.code?o(ES({code:c.code})):``)||e}let x=m&&m.width<m.height?`portrait`:`landscape`;return $(u,{children:[$(`style`,{"data-voltom-styles":``,children:kC}),$(`div`,{className:e,ref:n.camera,"data-voltom":``,"data-voltom-camera":``,"data-mirrored":t.cameraFacingMode.value===`user`?``:void 0,style:{"--voltom-camera-ratio":m?`${m.width} / ${m.height}`:void 0},children:[$(`video`,{ref:n.video,"data-voltom-video":``,playsInline:!0,muted:!0,autoPlay:!0,onPlaying:()=>a(!1),onEmptied:()=>a(!0)}),$(`canvas`,{ref:n.mesh,"data-voltom-mesh":``}),$(`div`,{"data-voltom-overlay":``,"data-voltom-overlay-label":o(`readyToStart`),"data-idle":i?``:void 0,"data-error":p?``:void 0}),$(`div`,{"data-voltom-guide":``,"aria-hidden":`true`,"data-voltom-guide-mode":c?.flow,"data-voltom-guide-orientation":c?.flow===`document`?x:void 0}),$(`div`,{"data-voltom-ring-wrap":``,"aria-hidden":`true`,"data-voltom-ring-mode":c?.flow??``,children:$(yC,{completed:g.completed,total:g.total,variant:`ring`})}),!!h&&$(TC,{"data-voltom-direction":``,"data-voltom-direction-pose":h,pose:h}),$(DC,{visible:t.success.value}),$(pC,{kind:`voltom`,entries:t.debug.value}),$(`div`,{"data-voltom-spinner":``,className:l?void 0:`hidden`,role:`status`,"aria-label":f,children:d}),$(`div`,{"data-voltom-challenge":h??(c?`document`:void 0),className:c?void 0:`hidden`,children:$(`span`,{"data-voltom-challengeText":``,role:`status`,"aria-live":`polite`,children:[$(`span`,{children:y}),!!b&&$(`span`,{"data-voltom-challengeReason":``,children:b})]})}),$(`div`,{"data-voltom-feedback":``,children:[$(`div`,{"data-voltom-result":``,className:p?`is-failure`:`hidden`,role:`status`,children:p?s({error:p}):``}),$(`button`,{"data-voltom-retry":``,className:p&&t.retry.value?void 0:`hidden`,type:`button`,"aria-label":o(`retry`),onClick:async()=>{let e=t.retry.value;if(t.error.value=null,e)try{await e()}catch{return}},children:o(`retry`)})]})]})]})},NC=({root:e,options:t,display:n})=>{let r=({language:e})=>e??Ht(),i=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,a=0,o=({entries:e,state:t})=>{if(!n.debugEnabled.value||!t.flow)return;let r=performance.now();r-a<100||(a=r,n.debug.value=e)},s=()=>n.cameraSize.value?`${n.cameraSize.value.width}x${n.cameraSize.value.height}`:`—`,c=()=>{let e=fh(),t=e.threading.startsWith(`multi`)?`multi`:`single`;return[{label:`Inference`,value:e.inference},{label:`Threading`,value:t}]},u=({face:e,faceInPolygon:a,processingTimeMilliseconds:l,state:u})=>{let d=e?e.pitch:null,f=e?e.yaw:null,p=e?e.roll:null,m=e?AS({face:e,name:`mouthSmileLeft`}):0,h=e?AS({face:e,name:`mouthSmileRight`}):0,g=e?AS({face:e,name:`eyeBlinkLeft`}):0,_=e?AS({face:e,name:`eyeBlinkRight`}):0,v=d!==null&&d>=t.minPitch&&d<=t.maxPitch,y=f!==null&&f>=t.minYaw&&f<=t.maxYaw,b=i({state:u}),x=p!==null&&(b===`faceTiltLeft`?p>t.maxRoll:b===`faceTiltRight`?p<-t.maxRoll:Math.abs(p)<=t.maxRoll),S=e=>e===null?`—`:e.toFixed(2),C=(e,t)=>`${e.toFixed(2)}|${t.toFixed(2)}`;o({state:u,entries:[{label:`Flow`,value:`FACE`},...c(),{label:`Face`,valid:!!e&&!a,value:e?a?`In polygon`:`Yes`:`No`},{label:`Pitch`,valid:v,value:S(d)},{label:`Yaw`,valid:y,value:S(f)},{label:`Roll`,valid:x,value:S(p)},{label:`Smile`,valid:m>=.5&&h>=.5,value:C(m,h)},{label:`Wink left`,valid:g>=.25&&_<=.35&&g>=_+.15,value:C(g,_)},{label:`Stable frames`,valid:u.poseStableFrames>0,value:`${u.poseStableFrames}/${t.requiredFaceStableFrames}`},{label:`Language`,value:r({language:t.language})},{label:`Camera`,value:s()},{label:`Facing mode`,value:n.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${l.toFixed(0)} ms`}]})},d=({analysis:e,sideComparison:i,isBack:a,processingTimeMilliseconds:l,state:u})=>{let{orientation:d,alignment:f,documentKind:p,face:m,faceContained:h,detection:g}=e,{diagnostics:_,isBlurry:v,sharpness:y}=e.documentAnalysis,b=e.text.text,x={label:`Stable frames`,valid:u.documentStableFrames>0,value:`${u.documentStableFrames}/${t.requiredDocumentStableFrames}`},S=_?Object.keys(_.rejected)[0]:void 0,C=[{label:`Sharpness`,valid:v===null?void 0:!v,value:y===null?`—`:String(Math.round(y))},{label:`Rectangle`,valid:g?!0:!S&&void 0,value:g?`yes`:S??`no`},{label:`Orientation`,value:d?`${d.rotation}°`:`—`}],w=[{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Document type`,value:p??``},{label:`Distinct from front`,valid:i?.distinct,value:i?i.distinct?`yes`:`no`:`—`}],T=[{label:`Face`,valid:!!m,value:m?`yes`:`no`},{label:`Face contained`,valid:h,value:h?`yes`:`no`},{label:`Face area`,valid:f.faceAreaValid,value:`${(f.faceAreaRatio*100).toFixed(2)}%`},{label:`Face size`,valid:f.faceDimensionsValid,value:f.faceDimensionsValid?`yes`:`no`},{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Text parallel`,valid:f.textParallel,value:f.textParallel?`yes`:`no`},{label:`Text beside face`,valid:f.faceAdjacentTextLineCount>=2,value:String(f.faceAdjacentTextLineCount)},{label:`Document type`,value:p??``}];o({state:u,entries:[{label:`Flow`,value:a?`DOCUMENT BACK`:`DOCUMENT FRONT`},...c(),...C,...a?w:T,x,{label:`Language`,value:r({language:t.language})},{label:`Camera`,value:s()},{label:`Facing mode`,value:n.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${l.toFixed(0)} ms`}]})},f={camera:l(),video:l(),mesh:l()};if(e.replaceChildren(),e.dataset.voltomRoot=``,ie($(MC,{display:n,elements:f,options:t}),e),!f.camera.current||!f.video.current||!f.mesh.current)throw Error(M.UI_ELEMENT_NOT_FOUND);return{ref:{root:e,camera:f.camera.current,video:f.video.current,mesh:f.mesh.current},collectFaceDebug:u,collectDocumentDebug:d}}}));Mt(),Se(),It(),Kt(),on(),cC();var FC=class{options;view;root;useUi;videoElement;resizeListener;display=sC();translator;flows;state;lastPicture;preparation=null;preloading=null;preparationController=null;prepared=!1;disposed=!1;operationController=null;subscriptions=new Set;uiAttached=!1;notifyStatus({status:e}){this.root.dispatchEvent(new CustomEvent(`voltom:${e}`))}showSpinner({message:e=this.translator.translate(`checkingFaceMatch`)}={}){this.display.activity.value={message:e}}hideSpinner(){this.display.activity.value=null}async runWithSpinner({task:e,message:t}){this.showSpinner({message:t});try{return await e()}finally{this.hideSpinner()}}constructor(e){let{root:t,video:n,ui:r,...i}=e,a=r??!!t;if(a&&!t||!a&&!n)throw Error(M.INVALID_OPTIONS);if(!i.clientKey)throw Error(M.CLIENT_KEY_REQUIRED);this.options=Object.freeze({...lC,...i,capabilities:Object.freeze([...i.capabilities??lC.capabilities]),poses:Array.isArray(i.poses)?Object.freeze([...i.poses]):i.poses}),this.root=t??document.createElement(`div`),this.useUi=a,this.videoElement=n??document.createElement(`video`),this.translator=Wt({language:this.options.language}),this.view={ref:{root:this.root,camera:document.createElement(`div`),video:this.videoElement,mesh:document.createElement(`canvas`)},collectFaceDebug:()=>{},collectDocumentDebug:()=>{}},this.flows=rC({options:this.options,view:this.view,display:this.display}),this.lastPicture=null,this.state=this.flows.createState(),this.resizeListener=()=>this.flows.syncCameraSize({state:this.state}),this.videoElement.addEventListener(`resize`,this.resizeListener)}async preload(){if(this.disposed)throw Error(M.SDK_NOT_READY);if(this.preloading)return this.preloading;let e=(async()=>{await Vt({language:this.options.language}),await this.flows.preloadModels()})();this.preloading=e;try{if(await e,this.disposed)throw Error(M.SDK_NOT_READY)}catch(t){throw this.preloading===e&&(this.preloading=null),t}}async prepare(){if(this.disposed)throw Error(M.SDK_NOT_READY);if(this.preparation)return this.preparation;let e=new AbortController;this.preparationController=e;let t=(async()=>{await this.preload(),await this.attachUi(),await this.runWithSpinner({task:async()=>{if(await qS({clientKey:this.options.clientKey,apiUrl:this.options.apiUrl,signal:e.signal}),await JS({apiUrl:this.options.apiUrl}),await this.flows.initializeModels(),e.signal.throwIfAborted(),this.disposed)throw Error(M.SDK_NOT_READY)},message:this.translator.translate(`preparingModels`)})})();this.preparation=t;try{await t,this.prepared=!0,this.preparationController===e&&(this.preparationController=null)}catch(n){throw this.preparation===t&&(this.preparation=null),this.preparationController===e&&(this.preparationController=null),n}}async attachUi(){if(!this.useUi||this.uiAttached)return;let{createVerificationView:e}=await Promise.resolve().then(()=>(PC(),jC));if(this.disposed)throw Error(M.SDK_NOT_READY);let t=e({root:this.root,options:this.options,display:this.display});this.videoElement.removeEventListener(`resize`,this.resizeListener),Object.assign(this.view.ref,t.ref),this.view.collectFaceDebug=t.collectFaceDebug,this.view.collectDocumentDebug=t.collectDocumentDebug,this.videoElement=this.view.ref.video,this.videoElement.addEventListener(`resize`,this.resizeListener),this.uiAttached=!0}async submitHardVerification(e){let t=e.endpoint===`/verification/document`?this.translator.translate(`checkingDocument`):void 0;return await this.runWithSpinner({task:()=>this.flows.submitHardVerification({...e,signal:e.signal??this.operationController?.signal}),message:t})}async caniuse(){return await Xt()}async runOperation({retry:e,task:t,onError:n,capability:r,settings:i}){if(this.disposed||!this.prepared)throw Error(M.SDK_NOT_READY);if(!this.options.capabilities.includes(r))throw Error(M.SDK_CAPABILITY_NOT_CONFIGURED);if(this.operationController)throw Error(M.INVALID_OPTIONS);let{signal:a,...o}=i,s=Object.freeze({...this.options,...o,poses:Array.isArray(o.poses)?Object.freeze([...o.poses]):o.poses??this.options.poses}),c=new AbortController;this.operationController=c;let l=()=>c.abort();a?.addEventListener(`abort`,l,{once:!0}),a?.aborted&&l(),c.signal.addEventListener(`abort`,()=>this.flows.stop({state:this.state}),{once:!0}),this.notifyStatus({status:`in-progress`}),Xe(()=>{this.display.retry.value=e,this.display.error.value=null,this.display.debugEnabled.value=s.debug,s.debug||(this.display.debug.value=[])});try{return c.signal.throwIfAborted(),await t({options:s,signal:c.signal})}catch(e){let t=c.signal.aborted?Error(M.VERIFICATION_CANCELLED,{cause:e}):e;throw n&&await n({error:t,options:s,signal:c.signal}),this.disposed||this.flows.showError({error:t,state:this.state}),t}finally{this.notifyStatus({status:`ready`}),a?.removeEventListener(`abort`,l),this.display.debugEnabled.value=this.options.debug,this.operationController===c&&(this.operationController=null)}}async verifyHuman(e={}){return await this.verifyCapture({flow:`human`,...e})}async verifyDocument(e={}){return await this.verifyCapture({flow:`document`,...e})}async verifyCapture({flow:e,...t}){let n=({options:t})=>{e===`human`?this.flows.resetFaceFlow({state:this.state,options:t}):this.flows.resetDocumentFlow({state:this.state}),this.flows.notifyCapturesChanged({state:this.state})};return await this.runOperation({capability:e===`human`?`verifyHuman`:`verifyDocument`,settings:t,retry:()=>this.verifyCapture({flow:e,...t,signal:void 0}),onError:async({error:t,options:r})=>{(e===`human`?this.state.faceCaptureConfiguration!==null:this.state.documentCaptureConfiguration!==null)&&Ft({error:t})!==M.VERIFICATION_CANCELLED&&n({options:r})},task:async({options:t,signal:r})=>{r.throwIfAborted(),await(e===`human`?this.flows.startFaceFlow:this.flows.startDocumentFlow)({state:this.state,options:t}),r.throwIfAborted();let i=await this.submitHardVerification({configuration:t,endpoint:`/verification/${e}`,state:this.state}),a=e===`human`?`hardHumanVerificationId`:`hardDocumentVerificationId`;return this.state[a]=i.verificationId,i.outcome!==`pass`||i.matched!==!0?(this.state[a]=null,n({options:t}),i):(this.display.retry.value=null,i)}})}async ensureHumanVerification({options:e,signal:t}){if(t?.throwIfAborted(),this.flows.hasCompatibleFaceCaptures({state:this.state,options:e})||await this.flows.startFaceFlow({state:this.state,options:e}),t?.throwIfAborted(),this.state.hardHumanVerificationId)return null;let n=await this.submitHardVerification({configuration:e,endpoint:`/verification/human`,state:this.state}),r=n.outcome===`pass`&&n.matched===!0;return this.state.hardHumanVerificationId=r?n.verificationId:null,r?null:n}async matchID(e={}){return await this.runOperation({capability:`matchID`,settings:e,retry:()=>this.matchID({...e,signal:void 0}),task:async({options:e,signal:t})=>{t.throwIfAborted();let n=await this.ensureHumanVerification({options:e,signal:t});if(n)return n;if(t.throwIfAborted(),this.flows.hasCompatibleDocumentCapture({state:this.state,options:e})||await this.flows.startDocumentFlow({state:this.state,options:e}),!this.state.hardDocumentVerificationId){t.throwIfAborted();let n=await this.submitHardVerification({configuration:e,endpoint:`/verification/document`,state:this.state});if(this.state.hardDocumentVerificationId=n.verificationId,n.outcome!==`pass`||n.matched!==!0)return this.state.hardDocumentVerificationId=null,n}let r=await this.submitHardVerification({configuration:e,endpoint:`/verification/id`,state:this.state,sourceIds:[this.state.hardHumanVerificationId,this.state.hardDocumentVerificationId]});return r.outcome!==`pass`||r.matched!==!0||(this.display.retry.value=null),r}})}async matchPicture(e,t={}){return this.lastPicture=e,await this.runOperation({capability:`matchPicture`,settings:t,retry:async()=>{this.lastPicture&&await this.matchPicture(this.lastPicture,{...t,signal:void 0})},task:async({options:t,signal:n})=>{n.throwIfAborted();let r=await oC({blob:e,signal:n})??await nn({blob:e});if(n.throwIfAborted(),!this.state.hardHumanVerificationId){let e=await this.ensureHumanVerification({options:t,signal:n});if(e)return e}await this.flows.startPictureFlow({picture:r,state:this.state,options:t,signal:n}),n.throwIfAborted();let i=await this.submitHardVerification({configuration:t,endpoint:`/verification/picture`,state:this.state,picture:r,sourceIds:[this.state.hardHumanVerificationId]});return i.outcome!==`pass`||i.matched!==!0||(this.display.retry.value=null),i}})}stop(){this.operationController?.abort(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`)),this.flows.stop({state:this.state}),this.display.retry.value=null,this.notifyStatus({status:`ready`})}dispose(){if(!this.disposed){this.disposed=!0,this.preparationController?.abort(),this.stop();for(let e of this.subscriptions)e();this.subscriptions.clear(),this.videoElement.removeEventListener(`resize`,this.resizeListener),ie(null,this.root),this.state.captures={},this.state.preparedCaptures={},this.state.faceEmbeddings={},this.state.documentCodes=[],this.state.identity=null,this.state.hardHumanVerificationId=null,this.state.hardDocumentVerificationId=null,this.state.faceCaptureConfiguration=null,this.state.documentCaptureConfiguration=null,delete this.state.document,this.lastPicture=null}}forgetHuman(){if(this.disposed)throw Error(M.SDK_NOT_READY);this.flows.resetFaceFlow({state:this.state}),this.display.error.value=null,this.flows.notifyCapturesChanged({state:this.state})}forgetDocument(){if(this.disposed)throw Error(M.SDK_NOT_READY);this.flows.resetDocumentFlow({state:this.state}),this.display.error.value=null,this.flows.notifyCapturesChanged({state:this.state})}getState(){return{activity:this.display.activity.value,error:this.display.error.value,retryAvailable:this.display.retry.value!==null,feedback:this.display.feedback.value,debug:this.display.debug.value}}subscribe(e){if(this.disposed)throw Error(M.SDK_NOT_READY);let t=lt(()=>e(this.getState()));return this.subscriptions.add(t),()=>{t(),this.subscriptions.delete(t)}}};a();var IC=globalThis.document?.currentScript,LC=globalThis.HTMLScriptElement&&IC instanceof globalThis.HTMLScriptElement?IC.src:globalThis.location.href;r({moduleUrl:LC}),globalThis.VoltomVerify=FC})();
70
+ `)).valid)return null;let e=uy(n);return e?{type:`mrz`,code:n,payload:e}:null}catch{return null}}})),My,Ny,Py,Fy,Iy,Ly,Ry=t((()=>{Sm(),fy(),My=null,Ny=()=>globalThis.window===void 0?`zxing-wasm/reader`:bm({filename:`zxing-wasm/reader/index.js`}),Py=async()=>{let e=await import(Ny());return globalThis.window!==void 0&&e.setZXingModuleOverrides({locateFile:e=>bm({filename:`zxing-wasm/reader/${e}`})}),e},Fy=async()=>{My??=Py();try{return await My}catch(e){throw My=null,e}},Iy=async()=>{await(await Fy()).prepareZXingModule({fireImmediately:!0})},Ly=async({image:e})=>{let t=await(await Fy()).readBarcodes(e,{formats:[`PDF417`],tryHarder:!0});for(let e of t)try{let t=dy(e.text);return{type:`aamva`,code:e.text,payload:t}}catch{}return null}})),zy,By=t((()=>{W(),zh(),qh(),ag(),lg(),Og(),jy(),Ry(),zy=({runtime:e,detector:t,alignment:n,text:r,readImage:i})=>{let a=async({image:a,language:o,engine:s,scanBarcodes:c=!1})=>{let l=a instanceof Blob?a:new Blob([a]),u=await e.createImageBitmap(l);try{let a=await t.analyzeDocument({frame:u});if(!a.detection)throw Error(U.DOCUMENT_NOT_FOUND);let l=await n.orientDocumentFrame({frame:u,polygon:a.detection.polygon,orientation:a.detection.orientation});if(!l)throw Error(U.IMAGE_PROCESSING_FAILED);try{let t=ig({image:i({frame:u}),polygon:a.detection.polygon,sourceOrientation:l.orientation.rotation}),n=await r.readRectifiedText({frame:l.frame,language:o,engine:s,image:t});if(!n)throw Error(U.DOCUMENT_TEXT_NOT_READABLE);let d=i({frame:l.frame}),f=null;if(c){let t=e.createImageData(d.width,d.height);t.data.set(d.data),f=await Ly({image:t})}let p=[Ay({result:n}),f].filter(e=>e!==null),m=i({frame:l.frame,width:32,height:32});return{ocr:n,codes:p,pixels:d,signature:Uh({...m,text:n.text}),blurry:a.isBlurry}}finally{l.frame.close()}}finally{u.close()}};return{classifyDocument:async({document_front:e,document_back:t,language:n,engine:r})=>{let i=await a({image:e,language:n,engine:r}),o=Lh({image:i.pixels,text:i.ocr.text,codes:i.codes});if(!o)throw Error(U.DOCUMENT_NOT_RECOGNIZED);let s=o.europeanDrivingLicense?Dg({ocr:i.ocr,image:i.pixels}):null,c=og({document:o.document})&&t?await a({image:t,language:o.europeanDrivingLicense?`latin`:n,engine:o.europeanDrivingLicense?`tiny`:r,scanBarcodes:!0}):null,l=cg({classification:{...o,identity:s},front:i,back:c}),u=[...l.reasons],d=c?c.blurry:!1;return(i.blurry||d)&&u.push(U.DOCUMENT_BLURRY),c&&!Gh({front:i.signature,current:c.signature}).distinct&&u.push(U.DOCUMENT_BACK_NOT_DISTINCT),{identity:s,...o,...l,reasons:u,valid:u.length===0,document_front:i.ocr,document_back:c?c.ocr:null}},detectDocument:async({image:e,language:t})=>{let n=await a({image:e,language:t,scanBarcodes:!0}),r=Lh({image:n.pixels,text:n.ocr.text,codes:n.codes});if(!r)throw Error(U.DOCUMENT_NOT_RECOGNIZED);let i=n.codes.find(e=>e.type===`mrz`),o=n.codes.find(e=>e.type===`aamva`),s=!!o||r.document===`id`&&!!i;return{identity:!s&&r.europeanDrivingLicense?Dg({ocr:n.ocr,image:n.pixels}):null,document_type:r.document===`driving_license`?`drv`:r.document,document_side:s?`back`:`front`,mrz_code:i?i.code:null,ammva_code:o?o.code:null}},extractDocumentCodes:async({images:e})=>{let t=[];for(let n of e){let e=await a({image:n,scanBarcodes:!0});t.push(...e.codes)}return[...new Map(t.map(e=>[`${e.type}:${e.code}`,e])).values()]}}}})),Q,Vy=t((()=>{dd(),W(),Q={language:`en`,ocrEngine:`auto`,alignment:`eyes-nose-mouth`,maxPitch:8,minPitch:-20,maxYaw:12,minYaw:-12,maxRoll:8,minDocumentFaceAreaRatio:.02,maxDocumentFaceAreaRatio:.3,minDocumentFaceWidthRatio:.075,maxDocumentFaceWidthRatio:.4,minDocumentFaceHeightRatio:.1,maxDocumentFaceHeightRatio:.65,minDocumentBoxRatio:.33,maxDocumentTextAngleDifference:16},B({language:z().default(Q.language),ocrEngine:Ql([`auto`,`tiny`,`small`,`japanese`,`chinese-simplified`,`chinese-traditional`,`cyrillic`,`arabic`]).default(Q.ocrEngine),alignment:$l(`eyes-nose-mouth`).default(Q.alignment),maxPitch:Hl().positive().max(90).default(Q.maxPitch),minPitch:Hl().negative().min(-90).default(Q.minPitch),maxYaw:Hl().positive().max(90).default(Q.maxYaw),minYaw:Hl().negative().min(-90).default(Q.minYaw),maxRoll:Hl().positive().max(90).default(Q.maxRoll),minDocumentFaceAreaRatio:Hl().min(0).max(1).default(Q.minDocumentFaceAreaRatio),maxDocumentFaceAreaRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceAreaRatio),minDocumentFaceWidthRatio:Hl().min(0).max(1).default(Q.minDocumentFaceWidthRatio),maxDocumentFaceWidthRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceWidthRatio),minDocumentFaceHeightRatio:Hl().min(0).max(1).default(Q.minDocumentFaceHeightRatio),maxDocumentFaceHeightRatio:Hl().min(0).max(1).default(Q.maxDocumentFaceHeightRatio),minDocumentBoxRatio:Hl().min(0).max(1).default(Q.minDocumentBoxRatio),maxDocumentTextAngleDifference:Hl().min(0).max(90).default(Q.maxDocumentTextAngleDifference)}).refine(e=>e.minDocumentFaceAreaRatio<=e.maxDocumentFaceAreaRatio&&e.minDocumentFaceWidthRatio<=e.maxDocumentFaceWidthRatio&&e.minDocumentFaceHeightRatio<=e.maxDocumentFaceHeightRatio,U.INVALID_OPTIONS)})),Hy,Uy,Wy,Gy,Ky,qy,Jy=t((()=>{Hy=({data:e,height:t,normalize:n,width:r})=>{let i=new Float32Array(r*t*3),a=r*t;for(let t=0;t<a;t+=1)for(let r=0;r<3;r+=1)i[r*a+t]=n(e[t*4+r]);return i},Uy=({first:e,second:t})=>{let n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return n*r/(e.width*e.height+t.width*t.height-n*r||1)},Wy=({detections:e,threshold:t})=>e.toSorted((e,t)=>t.score-e.score).filter((e,n,r)=>!r.slice(0,n).some(n=>Uy({first:n.boundingRect,second:e.boundingRect})>t)),Gy=({face:e,x:t,y:n})=>({...e,boundingRect:{...e.boundingRect,x:e.boundingRect.x+t,y:e.boundingRect.y+n},mesh:{...e.mesh,landmarks:e.mesh.landmarks.map(e=>({...e,x:e.x+t,y:e.y+n}))}}),Ky=({faces:e})=>{let t=[];for(let n of e)t.some(e=>Uy({first:e.boundingRect,second:n.boundingRect})>.3)||t.push(n);return t},qy=({frameSize:e,tileSize:t})=>[...new Set([0,Math.round((e-t)/2),e-t])]})),Yy,Xy,Zy=t((()=>{Jy(),Yy=({outputs:e})=>({score_8:e.out0,score_16:e.out1,score_32:e.out2,bbox_8:e.out3,bbox_16:e.out4,bbox_32:e.out5,kps_8:e.out6,kps_16:e.out7,kps_32:e.out8}),Xy=({outputs:e,scale:t,threshold:n=.5})=>{let r=[];for(let i of[8,16,32]){let a=e[`score_${i}`]?.data,o=e[`bbox_${i}`]?.data,s=e[`kps_${i}`]?.data;if(!a||!o||!s)continue;let c=640/i;for(let e=0;e<a.length;e+=1){let l=a[e];if(l<n)continue;let u=Math.floor(e/2),d=u%c*i,f=Math.floor(u/c)*i,p=e*4,m=e*10,h=e=>({x:(d+s[m+e*2]*i)/t,y:(f+s[m+e*2+1]*i)/t});r.push({boundingRect:{x:(d-o[p]*i)/t,y:(f-o[p+1]*i)/t,width:(o[p]+o[p+2])*i/t,height:(o[p+1]+o[p+3])*i/t},score:l,keypoints:{leftEye:h(0),rightEye:h(1),nose:h(2),mouthLeft:h(3),mouthRight:h(4)}})}}return Wy({detections:r,threshold:.4})}})),Qy,$y,eb,tb,nb,rb,ib=t((()=>{W(),Qy=128,$y=.1,eb=4,tb=({image:e})=>{let t=65536,n=new Float32Array(t*3);for(let r=0,i=0;r<e.data.length;r+=4,i+=1)n[i]=(e.data[r]??0)/255,n[i+t]=(e.data[r+1]??0)/255,n[i+t*2]=(e.data[r+2]??0)/255;return n},nb=({polygon:e})=>{let t=e.reduce((t,n)=>({x:t.x+n.x/e.length,y:t.y+n.y/e.length}),{x:0,y:0}),n=[...e].sort((e,n)=>Math.atan2(e.y-t.y,e.x-t.x)-Math.atan2(n.y-t.y,n.x-t.x)),r=n.reduce((e,t,r)=>t.x+t.y<n[e].x+n[e].y?r:e,0);return n.slice(r).concat(n.slice(0,r))},rb=({heatmap:e,height:t,width:n})=>{if(e.length!==512*Qy)throw Error(U.INVALID_MODEL_OUTPUT);let r=[],i=1;for(let a=0;a<4;a+=1){let o=a*Qy*Qy,s=-1/0,c=0;for(let t=0;t<16384;t+=1){let n=e[o+t]??-1/0;n>s&&(s=n,c=t)}if(s<$y)throw Error(U.DOCUMENT_NOT_FOUND);i=Math.min(i,s);let l=c%Qy,u=Math.floor(c/Qy),d=s*.3,f=0,p=0,m=0;for(let t=Math.max(0,u-eb);t<=Math.min(127,u+eb);t+=1)for(let n=Math.max(0,l-eb);n<=Math.min(127,l+eb);n+=1){let r=e[o+t*Qy+n]??0;r<d||(f+=r,p+=r*n,m+=r*t)}r.push({x:(f?p/f:l)*n/Qy,y:(f?m/f:u)*t/Qy})}if(i<$y)throw Error(U.DOCUMENT_NOT_FOUND);return nb({polygon:r})}})),ab,ob=t((()=>{ab=({face:e,polygon:t})=>{if(!e)return!1;let n={x:e.boundingRect.x+e.boundingRect.width/2,y:e.boundingRect.y+e.boundingRect.height/2},r=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let a=t[e],o=t[i];a.y>n.y!=o.y>n.y&&n.x<(o.x-a.x)*(n.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}})),sb,cb=t((()=>{dd(),sb=z().regex(/^data:image\/jpeg;base64,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/).meta({format:`data-url`,contentEncoding:`base64`,contentMediaType:`image/jpeg`})})),lb,ub,db,fb,pb,mb,hb,gb,_b,vb,yb,bb,xb,Sb=t((()=>{dd(),W(),cb(),lb=[`faceStraight`,`faceUp`,`faceLeft`,`faceRight`,`faceSmile`],ub={faceDown:{pitch:20},faceLeft:{yaw:30},faceRight:{yaw:-30},faceTiltLeft:{roll:15},faceTiltRight:{roll:-15},faceUp:{pitch:-20}},db=Ql(lb),fb=z().min(1).max(255),pb=Ql([`enroll`,`unlock`,`forget`]),mb=Ql([`enroll`,`unlock`]),hb=Ql([`pending`,`started`,`failed`,`completed`]),gb=B({token:z().min(32).max(128),userId:fb.optional()}),gb.extend({poses:ql(db).min(1).max(lb.length),faces:ql(sb).min(1).max(lb.length)}),_b=ql(Hl().finite()).length(512).refine(e=>Math.abs(Math.hypot(...e)-1)<.001),Zl(db,_b).and(B({faceStraight:_b})),vb=B({pose:db,matched:Wl(),score:Hl().min(-1).max(1)}),yb=ql(db).min(1).max(lb.length).refine(e=>e[0]===`faceStraight`&&new Set(e).size===e.length),B({operation:mb,userId:fb.optional(),poses:yb.optional()}).refine(e=>e.operation===`enroll`||e.userId!==void 0&&e.poses===void 0),B({userId:fb}).strict(),bb=B({userId:fb}),bb.extend({operation:pb,poses:ql(db).max(lb.length),expiresAt:z()}),xb=bb.extend({matched:Wl(),matches:ql(vb).max(2),reason:fd.nullable()}),B({vectors:ql(B({pose:db,vector:_b})).max(lb.length),reason:fd.nullable()}),B({search:z().default(``)}),xb.extend({complete:Wl(),token:z().optional()}),bb.extend({token:z(),operationId:z().uuid()}),B({operationId:z().uuid(),operation:pb,userId:fb,status:hb}),B({origin:z().nullable(),ip:z().nullable(),user_agent:z().nullable(),language:z().nullable()})})),Cb,wb=t((()=>{Cb=({blendshapes:e})=>{let t=e.eyeBlinkLeft??0,n=e.eyeBlinkRight??0;return t>=.5&&n<=.35&&t>=n+.15}})),Tb,Eb,Db,Ob=t((()=>{Sb(),wb(),Tb=({axis:e,target:t,tolerance:n,value:r})=>r>=t-n&&r<=t+n?null:e===`yaw`?t>0?r<t?`FACEKEY_TURN_HEAD_LEFT`:`FACEKEY_TURN_HEAD_LESS`:r>t?`FACEKEY_TURN_HEAD_RIGHT`:`FACEKEY_TURN_HEAD_LESS`:e===`pitch`?t>0?r<t?`FACEKEY_LOWER_HEAD`:`FACEKEY_LOWER_HEAD_LESS`:r>t?`FACEKEY_RAISE_HEAD`:`FACEKEY_RAISE_HEAD_LESS`:t>0?r<t?`FACEKEY_TILT_HEAD_LEFT`:`FACEKEY_TILT_HEAD_LESS`:r>t?`FACEKEY_TILT_HEAD_RIGHT`:`FACEKEY_TILT_HEAD_LESS`,Eb=({pitch:e,yaw:t,roll:n,options:r})=>n<-r.maxRoll?`FACEKEY_TILT_HEAD_LEFT`:n>r.maxRoll?`FACEKEY_TILT_HEAD_RIGHT`:t<r.minYaw?`FACEKEY_TURN_HEAD_LEFT`:t>r.maxYaw?`FACEKEY_TURN_HEAD_RIGHT`:e<r.minPitch?`FACEKEY_LOWER_HEAD`:e>r.maxPitch?`FACEKEY_RAISE_HEAD`:null,Db=({blendshapes:e,pitch:t,yaw:n,roll:r,pose:i,options:a})=>{if(i===`faceSmile`)return Eb({pitch:t,yaw:n,roll:r,options:a})||((e.mouthSmileLeft??0)>=.5&&(e.mouthSmileRight??0)>=.5?null:`FACEKEY_SMILE_REQUIRED`);if(i===`faceWinkLeft`)return Eb({pitch:t,yaw:n,roll:r,options:a})||(Cb({blendshapes:e,pose:i})?null:`FACEKEY_WINK_LEFT_REQUIRED`);let o=ub[i];if(!o)return Eb({pitch:t,yaw:n,roll:r,options:a});if(o.roll===void 0){if(r<-a.maxRoll)return`FACEKEY_TILT_HEAD_LEFT`;if(r>a.maxRoll)return`FACEKEY_TILT_HEAD_RIGHT`}if(o.yaw===void 0){if(n<a.minYaw)return`FACEKEY_TURN_HEAD_LEFT`;if(n>a.maxYaw)return`FACEKEY_TURN_HEAD_RIGHT`}if(o.pitch===void 0){if(t<a.minPitch)return`FACEKEY_LOWER_HEAD`;if(t>a.maxPitch)return`FACEKEY_RAISE_HEAD`}let s=a.tolerance??15;return o.roll===void 0?o.yaw===void 0?o.pitch===void 0?null:Tb({axis:`pitch`,target:o.pitch,tolerance:s,value:t}):Tb({axis:`yaw`,target:o.yaw,tolerance:s,value:n}):o.roll>0&&r<=a.maxRoll?`FACEKEY_TILT_HEAD_LEFT`:o.roll<0&&r>=-a.maxRoll?`FACEKEY_TILT_HEAD_RIGHT`:Tb({axis:`roll`,target:o.roll,tolerance:s,value:r})}})),kb,Ab,jb,Mb,Nb=t((()=>{W(),kb=.6,Ab=({first:e,second:t})=>{if(e.length!==t.length||e.length===0)throw Error(U.INVALID_MODEL_OUTPUT);let n=e.reduce((e,n,r)=>e+n*t[r],0);return Math.max(-1,Math.min(1,n))},jb=({score:e,threshold:t=kb})=>({matched:e>t,score:Math.round(e*100)/100}),Mb=({first:e,second:t})=>Math.max(Ab({first:e.rgb,second:t.rgb}),Ab({first:e.grayscale,second:t.grayscale}))})),Pb,Fb=t((()=>{Pb=({homography:e,point:t})=>{let n=e[6]*t.x+e[7]*t.y+e[8];return{x:(e[0]*t.x+e[1]*t.y+e[2])/n,y:(e[3]*t.x+e[4]*t.y+e[5])/n}}})),Ib=t((()=>{Ob(),wb()})),Lb,Rb,zb,Bb,Vb,Hb,Ub=t((()=>{Lb=8,Rb=.16,zb=({x:e,y:t,width:n,height:r})=>{let i=e/n,a=t/r;return i<.2||i>=.8||a<.2||a>=.8},Bb=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},Vb=({image:e})=>{let t=[];for(let n=0;n<Lb;n+=1)for(let r=0;r<Lb;r+=1){let i=0,a=0,o=Math.floor(n*e.height/Lb),s=Math.floor((n+1)*e.height/Lb),c=Math.floor(r*e.width/Lb),l=Math.floor((r+1)*e.width/Lb);for(let t=o;t<s;t+=1)for(let n=c;n<l;n+=1){if(!zb({height:e.height,width:e.width,x:n,y:t}))continue;let r=(t*e.width+n)*4;i+=(e.data[r]??0)*.299+(e.data[r+1]??0)*.587+(e.data[r+2]??0)*.114,a+=1}t.push(a?i/a:0)}let n=t.reduce((e,t)=>e+t,0)/t.length,r=new Uint8Array(Math.ceil(t.length/8));for(let[e,i]of t.entries())i>=n&&(r[Math.floor(e/8)]|=1<<e%8);return{appearanceHash:r}},Hb=({first:e,second:t})=>{if(e.appearanceHash.length!==t.appearanceHash.length)return{distance:1,matched:!1};let n=e.appearanceHash.reduce((e,n,r)=>e+Bb({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8);return{distance:n,matched:n<=Rb}}})),Wb=t((()=>{bg(),Vy(),Zy(),ib(),zh(),fy(),qh(),ag(),lg(),ob(),Jy(),Ob(),Nb(),Fb(),Ib(),Tm(),ky(),Ub(),jy()})),Gb,Kb,qb=t((()=>{W(),km(),Gb=({outputs:e})=>{for(let t of new Set(Object.values(e)))t.dispose()},Kb=async({label:e,session:t,feeds:n})=>{let r=performance.now();try{return await t.run(n)}catch(e){throw Error(pd({error:e,fallback:U.INFERENCE_FAILED}),{cause:e})}finally{for(let e of new Set(Object.values(n)))e.dispose();Dm({category:`inference`,duration:performance.now()-r,key:e})}}})),Jb,Yb,Xb,Zb,Qb,$b,ex=t((()=>{W(),_h(),qb(),Jb=224,Yb=256,Xb=[0,90,180,270],Zb=[.485,.456,.406],Qb=[.229,.224,.225],$b=({runtime:e})=>{let t=async()=>{await e.session({filename:`do.ort`})},n=({frame:t,boundingRect:n={x:0,y:0,width:t.width,height:t.height}})=>{let r=Math.max(0,Math.floor(n.x)),i=Math.max(0,Math.floor(n.y)),a=Math.min(t.width,Math.ceil(n.x+n.width))-r,o=Math.min(t.height,Math.ceil(n.y+n.height))-i;if(a<=0||o<=0)throw Error(U.IMAGE_PROCESSING_FAILED);let s=Yb/Math.min(a,o),c=Math.round(a*s),l=Math.round(o*s),u=e.createCanvas(Jb,Jb),d=u.getContext(`2d`,{willReadFrequently:!0});if(!d)throw Error(U.IMAGE_PROCESSING_FAILED);d.drawImage(t,r,i,a,o,-Math.floor((c-Jb)/2),-Math.floor((l-Jb)/2),c,l);let{data:f}=d.getImageData(0,0,Jb,Jb);gh({canvas:u});let p=50176,m=new Float32Array(p*3);for(let e=0;e<3;e+=1)for(let t=0;t<p;t+=1)m[e*p+t]=(f[t*4+e]/255-Zb[e])/Qb[e];return m};return{detectDocumentOrientation:async({frame:t,boundingRect:r})=>{let i=await e.session({filename:`do.ort`}),a=n({frame:t,boundingRect:r}),o=await Kb({label:`document.orientation`,session:i,feeds:{x:e.tensor(`float32`,a,[1,3,Jb,Jb])}});try{let e=o.fetch_name_0?.data;if(!(e instanceof Float32Array)||e.length!==4||e.some(e=>!Number.isFinite(e)||e<0||e>1))throw Error(U.INVALID_MODEL_OUTPUT);let t={0:e[0],90:e[1],180:e[2],270:e[3]},n=Xb.reduce((e,n)=>t[n]>t[e]?n:e);return{rotation:n,confidence:t[n],scores:t}}finally{Gb({outputs:o})}},loadDocumentOrientationDetector:t}}})),tx,nx=t((()=>{W(),Xh(),Wb(),ex(),_h(),qb(),tx=({runtime:e})=>{let{detectDocumentOrientation:t,loadDocumentOrientationDetector:n}=$b({runtime:e}),r=`dd.ort`,i=.15,a=.75,o=.03,s=.8,c=({from:e,to:t})=>Math.hypot(t.x-e.x,t.y-e.y),l=({origin:e,first:t,second:n})=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),u=({polygon:e})=>{let t=0;for(let n=0;n<e.length;n+=1){let r=e[n],i=e[(n+1)%e.length];t+=r.x*i.y-i.x*r.y}return Math.abs(t/2)},d=async({frame:t,sourceOrientation:n=0})=>{let i=e.createCanvas(256,256),a=i.getContext(`2d`);if(!a)throw Error(U.IMAGE_PROCESSING_FAILED);a.translate(128,128),a.rotate(-n*Math.PI/180),a.drawImage(t,-128,-128,256,256);let o=a.getImageData(0,0,256,256);gh({canvas:i});let s=tb({image:{data:o.data,height:256,width:256}}),c=await e.session({filename:r}),l=await Kb({label:`document.box`,session:c,feeds:{img:e.tensor(`float32`,s,[1,3,256,256])}});try{let e=l.heatmap?.data;if(!(e instanceof Float32Array))throw Error(U.INVALID_MODEL_OUTPUT);try{let r=n%180?t.height:t.width,i=n%180?t.width:t.height;return{confidence:null,polygon:rb({heatmap:e,height:i,width:r})}}catch(e){if(e instanceof Error&&e.message===U.DOCUMENT_NOT_FOUND)return null;throw e}}finally{Gb({outputs:l})}},f=async({frame:e})=>{let n=await d({frame:e}),r=null;if(n){let i=Yh({polygon:n.polygon});i.width>0&&i.height>0&&(r=await t({frame:e,boundingRect:i}),r.rotation&&(n=await d({frame:e,sourceOrientation:r.rotation})))}let i=r!==null&&r.rotation%180!=0;return{detected:n,orientation:r,width:i?e.height:e.width,height:i?e.width:e.height}},p=({detection:e,frame:t,orientation:n})=>{let r=e.polygon.map(({x:e,y:r})=>n?.rotation===90?{x:t.width-1-r,y:e}:n?.rotation===180?{x:t.width-1-e,y:t.height-1-r}:n?.rotation===270?{x:r,y:t.height-1-e}:{x:e,y:r}),i=Jh({polygon:r});return{polygon:i,boundingRect:Yh({polygon:i}),...n?{orientation:n}:{}}},m=({frame:t})=>{let n=Math.min(1,480/Math.max(t.width,t.height)),r=e.createCanvas(Math.max(1,Math.round(t.width*n)),Math.max(1,Math.round(t.height*n))),i=r.getContext(`2d`,{willReadFrequently:!0});if(!i)throw Error(U.IMAGE_PROCESSING_FAILED);return i.drawImage(t,0,0,r.width,r.height),{canvas:r,scale:n}},h=({data:e})=>{let t=new Uint8Array(e.length/4);for(let n=0;n<t.length;n+=1){let r=n*4;t[n]=Math.round(e[r]*.299+e[r+1]*.587+e[r+2]*.114)}return t},g=({pixels:e,width:t,height:n})=>{let r=0,i=0,a=0;for(let o=1;o<n-1;o+=1)for(let n=1;n<t-1;n+=1){let s=e[o*t+n]*8-(e[(o-1)*t+n]+e[(o+1)*t+n]+e[o*t+n-1]+e[o*t+n+1]+e[(o-1)*t+n-1]+e[(o-1)*t+n+1]+e[(o+1)*t+n-1]+e[(o+1)*t+n+1]);i+=s,a+=s*s,r+=1}if(!r)return 0;let o=i/r;return Math.max(0,a/r-o*o)},_=({previous:e,current:t,next:n})=>{let r=e.x-t.x,i=e.y-t.y,a=n.x-t.x,o=n.y-t.y,s=Math.hypot(r,i)*Math.hypot(a,o);return s?Math.acos(Math.max(-1,Math.min(1,(r*a+i*o)/s)))*180/Math.PI:0},v=({first:e,second:t})=>{let n=Math.hypot(e.x,e.y),r=Math.hypot(t.x,t.y);if(!n||!r)return 90;let i=Math.abs(e.x*t.y-e.y*t.x)/(n*r);return Math.asin(Math.min(1,i))*180/Math.PI},y=({first:e,second:t})=>Math.min(e,t)/Math.max(e,t),b=({polygon:e})=>{if(e.length!==4||e.some(e=>!Number.isFinite(e.x)||!Number.isFinite(e.y)))return!1;let t=e.map((t,n)=>c({from:t,to:e[(n+1)%e.length]}));if(t.some(e=>e<=0))return!1;let n=e.map((t,n)=>l({origin:t,first:e[(n+1)%e.length],second:e[(n+2)%e.length]}));if(!n.every(e=>e>0)&&!n.every(e=>e<0))return!1;let r=e.map((t,n)=>{let r=e[(n+1)%e.length];return{x:r.x-t.x,y:r.y-t.y}}),i=v({first:r[0],second:r[2]})<=36&&v({first:r[1],second:r[3]})<=36,a=y({first:t[0],second:t[2]})>=s&&y({first:t[1],second:t[3]})>=s;return i&&a},x=({height:e,minDocumentBoxRatio:t,polygon:n,width:r})=>{if(n.length!==4)return{detection:null,rejection:`polygon_invalid`};if(!b({polygon:n}))return{detection:null,rejection:`geometry`};let i=r,s=e;if(n.map((e,t)=>_({previous:n[(t-1+n.length)%n.length],current:e,next:n[(t+1)%n.length]})).some(e=>e<35||e>145))return{detection:null,rejection:`corner_angle`};let l=[c({from:n[0],to:n[1]}),c({from:n[2],to:n[3]})],d=[c({from:n[1],to:n[2]}),c({from:n[3],to:n[0]})],f=(l[0]+l[1])/2,p=(d[0]+d[1])/2,m=Math.max(f,p)/Math.min(f,p),h=u({polygon:n})/(i*s);if(m<1.25||m>2.4)return{detection:null,rejection:`aspect_ratio`};if(h<t)return{detection:null,rejection:`coverage_low`};if(h>.99)return{detection:null,rejection:`coverage_high`};let g=n.some(e=>e.x<i*o||e.y<s*o||e.x>i*.97||e.y>s*.97);if(h>a&&g)return{detection:null,rejection:`edge_proximity`};let v=n.some(e=>e.y<s*o)&&n.some(e=>e.y>s*.97)||n.some(e=>e.x<i*o)&&n.some(e=>e.x>i*.97);if(i>s&&v&&h<a)return{detection:null,rejection:`opposite_edges`};let y=n,x=y.map(e=>e.x),S=y.map(e=>e.y),C=Math.min(...x),w=Math.min(...S),T=Math.max(...x),E=Math.max(...S);return{detection:{polygon:y,boundingRect:{x:C,y:w,width:T-C,height:E-w}},rejection:null}},S=async()=>{await e.session({filename:r})},C=async({frame:e,minDocumentBoxRatio:t=i})=>{let{canvas:n}=m({frame:e}),r=n.getContext(`2d`,{willReadFrequently:!0});if(!r)throw Error(U.IMAGE_PROCESSING_FAILED);let a=r.getImageData(0,0,n.width,n.height),o=n.width,s=n.height;gh({canvas:n});let c=h({data:a.data}),l=g({pixels:c,width:o,height:s}),{detected:u,orientation:d,width:_,height:v}=await f({frame:e}),y=u?x({height:v,minDocumentBoxRatio:t,polygon:u.polygon,width:_}):{detection:null,rejection:null},b={};return y.rejection&&(b[y.rejection]=1),{detection:y.detection?p({detection:y.detection,frame:e,orientation:d}):null,diagnostics:{accepted:+!!y.detection,confidence:u?.confidence??null,rejected:b},isBlurry:l<1e3,sharpness:l}};return{loadDocumentBoxDetector:S,detectDocumentOrientation:t,loadDocumentOrientationDetector:n,analyzeDocument:C,detectDocument:async e=>(await C({frame:e})).detection,detectDocumentBox:async e=>{let t=await d({frame:e});if(!t)return null;let n=x({height:e.height,minDocumentBoxRatio:i,polygon:t.polygon,width:e.width});return n.detection?p({detection:n.detection,frame:e,orientation:null}):null}}}})),rx,ix,ax=t((()=>{Wb(),ih(),qb(),rx=({detection:e,frame:t})=>{let n=Math.max(e.boundingRect.width,e.boundingRect.height)*1.1,r=Math.max(1,Math.min(Math.ceil(n),t.width,t.height)),i=e.boundingRect.x+e.boundingRect.width/2,a=e.boundingRect.y+e.boundingRect.height/2;return{size:r,x:Math.max(0,Math.min(t.width-r,Math.round(i-r/2))),y:Math.max(0,Math.min(t.height-r,Math.round(a-r/2)))}},ix=({runtime:e,imageFromImageBitmap:t})=>{let n=`_neutral.browDownLeft.browDownRight.browInnerUp.browOuterUpLeft.browOuterUpRight.cheekPuff.cheekSquintLeft.cheekSquintRight.eyeBlinkLeft.eyeBlinkRight.eyeLookDownLeft.eyeLookDownRight.eyeLookInLeft.eyeLookInRight.eyeLookOutLeft.eyeLookOutRight.eyeLookUpLeft.eyeLookUpRight.eyeSquintLeft.eyeSquintRight.eyeWideLeft.eyeWideRight.jawForward.jawLeft.jawOpen.jawRight.mouthClose.mouthDimpleLeft.mouthDimpleRight.mouthFrownLeft.mouthFrownRight.mouthFunnel.mouthLeft.mouthLowerDownLeft.mouthLowerDownRight.mouthPressLeft.mouthPressRight.mouthPucker.mouthRight.mouthRollLower.mouthRollUpper.mouthShrugLower.mouthShrugUpper.mouthSmileLeft.mouthSmileRight.mouthStretchLeft.mouthStretchRight.mouthUpperUpLeft.mouthUpperUpRight.noseSneerLeft.noseSneerRight`.split(`.`),r=[0,1,4,5,6,7,8,10,13,14,17,21,33,37,39,40,46,52,53,54,55,58,61,63,65,66,67,70,78,80,81,82,84,87,88,91,93,95,103,105,107,109,127,132,133,136,144,145,146,148,149,150,152,153,154,155,157,158,159,160,161,162,163,168,172,173,176,178,181,185,191,195,197,234,246,249,251,263,267,269,270,276,282,283,284,285,288,291,293,295,296,297,300,308,310,311,312,314,317,318,321,323,324,332,334,336,338,356,361,362,365,373,374,375,377,378,379,380,381,382,384,385,386,387,388,389,390,397,398,400,402,405,409,415,454,466,468,469,470,471,472,473,474,475,476,477],i=`standard`,a=({frame:e,height:n,width:r})=>t({frame:e,height:n,width:r}).data,o=({outputs:e,scale:t,threshold:n})=>{let r=[];for(let i of[8,16,32]){let a=e[`score_${i}`]??e[`cls_${i}`],o=e[`bbox_${i}`],s=e[`kps_${i}`],c=e[`obj_${i}`];if(!a||!o||!s)continue;let l=a.data,u=c?.data,d=o.data,f=s.data,p=640/i;for(let e=0;e<l.length;e+=1){let a=l[e]*(u?u[e]:1);if(a<n)continue;let o=Math.floor(e/2),s=(o%p+.5)*i,c=(Math.floor(o/p)+.5)*i,m=e*4,h=e*10,g=e=>({x:(s+f[h+e*2]*i)/t,y:(c+f[h+e*2+1]*i)/t});r.push({boundingRect:{x:(s-d[m]*i)/t,y:(c-d[m+1]*i)/t,width:(d[m]+d[m+2])*i/t,height:(d[m+1]+d[m+3])*i/t},score:a,keypoints:{leftEye:g(0),rightEye:g(1),nose:g(2),mouthLeft:g(3),mouthRight:g(4)}})}}return Wy({detections:r,threshold:.4})},s=async({frame:t,faceDetector:n})=>{let r=640/Math.max(t.width,t.height),i=Math.round(t.width*r),s=Math.round(t.height*r),c=a({frame:t,height:s,width:i}),l=Hy({data:c,height:s,width:i,normalize:e=>(e-127.5)/128}),u=new Float32Array(1228800);for(let e=0;e<3;e+=1)for(let t=0;t<s;t+=1)u.set(l.subarray(e*i*s+t*i,e*i*s+(t+1)*i),e*640*640+t*640);let d=await e.session({filename:rh[n]}),f=await Kb({label:`face.detector`,session:d,feeds:{[d.inputNames[0]]:e.tensor(`float32`,u,[1,3,640,640])}});try{return n===`standard`?Xy({outputs:Yy({outputs:f}),scale:r,threshold:.5}):o({outputs:f,scale:r,threshold:.5})}finally{Gb({outputs:f})}},c=async({frame:t})=>{let n=a({frame:t,height:128,width:128}),r=new Float32Array(49152);for(let e=0;e<49152;e+=1)r[e]=n[Math.floor(e/3)*4+e%3]/127.5-1;let i=await e.session({filename:rh.low}),o=await Kb({label:`face.detector`,session:i,feeds:{[i.inputNames[0]]:e.tensor(`float32`,r,[1,128,128,3])}});try{let e=o.regressors.data,n=o.classificators.data,r=[],i=[];for(let{count:e,copies:t}of[{count:16,copies:2},{count:8,copies:6}])for(let n=0;n<e;n+=1)for(let r=0;r<e;r+=1)for(let a=0;a<t;a+=1)i.push({x:(r+.5)/e,y:(n+.5)/e});for(let a=0;a<n.length;a+=1){let o=1/(1+Math.exp(-n[a]));if(o<.5)continue;let s=a*16,c=i[a];if(!c)continue;let l=n=>({x:(e[s+5+n*2]+c.x*128)*(t.width/128),y:(e[s+4+n*2]+c.y*128)*(t.height/128)}),u=e[s+3]*(t.width/128),d=e[s+2]*(t.height/128),f=(e[s+1]+c.x*128)*(t.width/128),p=(e[s]+c.y*128)*(t.height/128);r.push({boundingRect:{x:f-u/2,y:p-d/2,width:u,height:d},score:o,keypoints:{leftEye:l(0),rightEye:l(1),nose:l(2),mouthLeft:l(3),mouthRight:l(4)}})}return Wy({detections:r,threshold:.3})}finally{Gb({outputs:o})}},l=async({blendshapes:i=!0,detection:a,frame:o})=>{let{size:s,x:c,y:l}=rx({detection:a,frame:o}),u=t({frame:o,height:256,width:256,sourceRect:{x:c,y:l,width:s,height:s}}).data,d=await e.session({filename:`fl.ort`}),f=await Kb({label:`face.landmarks`,session:d,feeds:{[d.inputNames[0]]:e.tensor(`float32`,Hy({data:u,height:256,width:256,normalize:e=>e/255}),[1,3,256,256])}});try{if(f.score.data[0]<.5)return null;let t=f.landmarks.data,u=Array.from({length:478},(e,n)=>({x:c+t[n*3]*s/256,y:l+t[n*3+1]*s/256,z:t[n*3+2]*s/256})),d=u[33],p=u[263],m=u[1],h=(m.y-(d.y+p.y)/2)/Math.abs(p.x-d.x)*100,g=(m.x-(d.x+p.x)/2)/Math.abs(p.x-d.x)*100,_=new Float32Array(n.length);if(i){let t=new Float32Array(292);for(let e=0;e<r.length;e+=1){let n=u[r[e]];t[e*2]=n.x,t[e*2+1]=n.y}let n=await e.session({filename:`fe.ort`}),i=await Kb({label:`face.blendshape`,session:n,feeds:{[n.inputNames[0]]:e.tensor(`float32`,t,[1,146,2])}});try{_=i[n.outputNames[0]].data}finally{Gb({outputs:i})}}return{blendshapes:Object.fromEntries(n.map((e,t)=>[e,_[t]??0])),pitch:h-54,yaw:g-5,roll:Math.atan2(p.y-d.y,p.x-d.x)*180/Math.PI,boundingRect:a.boundingRect,mesh:{height:o.height,landmarks:u,width:o.width}}}finally{Gb({outputs:f})}},u=async({faceDetector:t=`standard`}={})=>{i=t,await Promise.all([e.session({filename:rh[t]}),e.session({filename:`fl.ort`}),e.session({filename:`fe.ort`})])},d=async({blendshapes:e=!0,frame:t})=>{let n=i===`low`?await c({frame:t}):await s({frame:t,faceDetector:i});return(await Promise.all(n.map(n=>l({blendshapes:e,detection:n,frame:t})))).filter(e=>e!==null)},f=async e=>(await d({frame:e}))[0]??null,p=async({blendshapes:t=!0,frame:n,tileHeight:r,tileWidth:i})=>{let a=[];for(let o of qy({frameSize:n.height,tileSize:r}))for(let s of qy({frameSize:n.width,tileSize:i})){let c=await e.createImageBitmap(n,s,o,i,r);try{let e=await d({blendshapes:t,frame:c});a.push(...e.map(e=>Gy({face:e,x:s,y:o})))}finally{c.close()}}return a},m=async({blendshapes:e=!0,frame:t})=>await p({blendshapes:e,frame:t,tileHeight:Math.ceil(t.height/2),tileWidth:Math.ceil(t.width/2)}),h=async({frame:e})=>{let t=await d({blendshapes:!1,frame:e}),n=await p({blendshapes:!1,frame:e,tileHeight:Math.ceil(e.height*.4),tileWidth:Math.ceil(e.width*.4)});return Ky({faces:[...t,...n]})},g=({detection:e,x:t,y:n})=>({...e,boundingRect:{...e.boundingRect,x:e.boundingRect.x+t,y:e.boundingRect.y+n},keypoints:Object.fromEntries(Object.entries(e.keypoints).map(([e,r])=>[e,{x:r.x+t,y:r.y+n}]))}),_=async({frame:t,tileHeight:n,tileWidth:r})=>{let i=[];for(let a of qy({frameSize:t.height,tileSize:n}))for(let o of qy({frameSize:t.width,tileSize:r})){let s=await e.createImageBitmap(t,o,a,r,n);try{let e=await c({frame:s});i.push(...e.map(e=>g({detection:e,x:o,y:a})))}finally{s.close()}}return i},v=async({frame:e})=>{let t=await c({frame:e}),n=await _({frame:e,tileHeight:Math.ceil(e.height*.4),tileWidth:Math.ceil(e.width*.4)});return Wy({detections:[...t,...n],threshold:.3})},y=async(e,t={})=>{let n=await d({blendshapes:t.blendshapes,frame:e});if(i!==`low`)return n;let r=await m({blendshapes:t.blendshapes,frame:e});return Ky({faces:[...n,...r]})},b=({detection:e,face:t})=>ab({face:t,polygon:e.polygon});return{loadFaceDetector:u,detectFace:f,detectPictureFaces:y,faceIsInsideDocument:b,detectDocumentFaces:async({detection:t,frame:n})=>{let r=await e.createImageBitmap(n,0,0,Math.ceil(n.width/2),n.height),a;try{a=(i===`low`?await h({frame:r}):await y(r,{blendshapes:!1})).map(e=>({...e,mesh:{...e.mesh,height:n.height,width:n.width}}))}finally{r.close()}return{faces:a.filter(e=>b({detection:t,face:e})).sort((e,t)=>t.boundingRect.width*t.boundingRect.height-e.boundingRect.width*e.boundingRect.height),hasPictureFace:a.length>0,pictureFaces:a}},detectDocumentFacePresence:async({detection:t,frame:n})=>{let r=await e.createImageBitmap(n,0,0,Math.ceil(n.width/2),n.height);try{return(i===`low`?await v({frame:r}):await s({frame:r,faceDetector:i})).some(e=>b({detection:t,face:e}))}finally{r.close()}}}}})),ox,sx,cx=t((()=>{zh(),ag(),lg(),Og(),jy(),$m(),yh(),ox=({candidate:e,identity:t})=>[{missing:!t?.holder.last_name,pattern:/^\s*1[.:)]\s+\p{L}/u},{missing:!t?.holder.first_name,pattern:/^\s*2[.:)]\s+\p{L}/u},{missing:!t?.holder.birth_date,pattern:/^\s*3[.:)]\s+\d{1,2}[./-]\d{1,2}[./-]\d{2,4}/u},{missing:!t?.document.number,pattern:/^\s*5[.:)]\s+[A-Z0-9]/u}].flatMap(({missing:t,pattern:n})=>{if(!t)return[];let r=e.lines.find(e=>n.test(e.text));return r?[r]:[]}),sx=({runtime:e,orientDocumentFrame:t,getOcr:n})=>{let r=`auto`,i=vh({runtime:e}),a=async({engine:t=r,language:i=`eng`}={})=>{await n({environment:e.environment,engine:t,language:i})},o=async({classificationImage:t,engine:a=r,frame:o,language:s,image:c})=>{if(o.width<200||o.height<100)return null;let l=c??ig({image:i({frame:o}),polygon:[{x:0,y:0},{x:o.width,y:0},{x:o.width,y:o.height},{x:0,y:o.height}]}),u=await(await n({environment:e.environment,engine:`tiny`,language:`latin`})).recognize({image:l}),d=Ay({result:u}),f=t??i({frame:o}),p=Lh({image:f,text:u.text,codes:d?[d]:[]}),m=p&&(p.document===`passport`||p.europeanDrivingLicense);if(p?.europeanDrivingLicense){let t=Dg({ocr:u,image:f});if(!sg({identity:t})){let r=await(await n({environment:e.environment,engine:`small`,language:`latin`})).recognize({image:l}),i=Dg({ocr:r,image:f}),a=Lh({image:f,text:r.text,codes:[]});if(a?.europeanDrivingLicense&&sg({identity:i}))u=r;else if(a?.europeanDrivingLicense){let e=ox({candidate:r,identity:t});if(e.length){let t=[...u.lines,...e];u={...u,lines:t,text:t.map(e=>e.text).join(`
71
+ `)}}}}}else if(!m){let t=Ym({language:s??`eng`}),r=await n({environment:e.environment,engine:a,language:t});r.model!==`tiny`&&(u=await r.recognize({image:l}))}let h=o.width/u.width,g=o.height/u.height,_=({x:e,y:t,width:n,height:r})=>({x:e*h,y:t*g,width:n*h,height:r*g});return{...u,width:o.width,height:o.height,lines:u.lines.map(e=>({...e,box:_(e.box),words:e.words.map(e=>({...e,box:_(e.box)}))}))}},s=async e=>await o(e)??{height:e.frame.height,lines:[],text:``,width:e.frame.width};return{loadTextDetector:a,readRectifiedText:o,detectRectifiedText:s,detectDocumentText:async({engine:e=r,frame:n,language:i,polygon:a})=>{let o=await t({frame:n,polygon:a});if(!o)return{height:0,lines:[],rotation:0,text:``,width:0};try{return{...await s({engine:e,frame:o.frame,language:i}),rotation:o.orientation.rotation}}finally{o.frame.close()}}}}})),lx,ux=t((()=>{W(),Xh(),Wb(),ex(),lx=({runtime:e})=>{let{detectDocumentOrientation:t}=$b({runtime:e}),n={left:[33,133],right:[263,362]},r=({matrix:e,values:t})=>{let n=e.map((e,n)=>[...e,t[n]]);for(let e=0;e<n.length;e+=1){let t=e;for(let r=e+1;r<n.length;r+=1)Math.abs(n[r][e])>Math.abs(n[t][e])&&(t=r);if(Math.abs(n[t][e])<1e-8)return null;[n[e],n[t]]=[n[t],n[e]];let r=n[e][e];for(let t=e;t<=n.length;t+=1)n[e][t]/=r;for(let t=0;t<n.length;t+=1){if(t===e)continue;let r=n[t][e];for(let i=e;i<=n.length;i+=1)n[t][i]-=r*n[e][i]}}return n.map(e=>e[n.length])},i=({from:e,to:t})=>{let n=[],i=[];for(let[r,a]of e.entries()){let e=t[r];n.push([a.x,a.y,1,0,0,0,-e.x*a.x,-e.x*a.y]),i.push(e.x),n.push([0,0,0,a.x,a.y,1,-e.y*a.x,-e.y*a.y]),i.push(e.y)}let a=r({matrix:n,values:i});return a?[...a,1]:null},a=Pb,o=({frame:t,polygon:n,rotation:r=0})=>{let a=Yh({polygon:n}),o=Math.max(0,Math.floor(a.x)),s=Math.max(0,Math.floor(a.y)),c=Math.max(1,Math.min(t.width-o,Math.ceil(a.width))),l=Math.max(1,Math.min(t.height-s,Math.ceil(a.height))),u=r%180?l:c,d=r%180?c:l,f=e.createCanvas(u,d),p=f.getContext(`2d`);if(!p)throw Error(U.IMAGE_PROCESSING_FAILED);r===90?(p.translate(0,d),p.rotate(-Math.PI/2)):r===180?(p.translate(u,d),p.rotate(Math.PI)):r===270&&(p.translate(u,0),p.rotate(Math.PI/2)),p.drawImage(t,o,s,c,l,0,0,c,l);let m=o+c,h=s+l,g=i({from:[{x:0,y:0},{x:u,y:0},{x:u,y:d},{x:0,y:d}],to:r===90?[{x:m,y:s},{x:m,y:h},{x:o,y:h},{x:o,y:s}]:r===180?[{x:m,y:h},{x:o,y:h},{x:o,y:s},{x:m,y:s}]:r===270?[{x:o,y:h},{x:o,y:s},{x:m,y:s},{x:m,y:h}]:[{x:o,y:s},{x:m,y:s},{x:m,y:h},{x:o,y:h}]});return g?{frame:f.transferToImageBitmap(),height:d,sourceHeight:t.height,sourceWidth:t.width,toSource:g,width:u}:null},s=async({frame:e,polygon:n,orientation:r})=>{if(n.length!==4)return null;let i=r??await t({frame:e,boundingRect:Yh({polygon:n})}),a=o({frame:e,polygon:n,rotation:i.rotation});return a?{...a,orientation:i}:null},c=({document:e,face:t})=>{let n=t.mesh.landmarks.map(({x:t,y:n,z:r})=>({...a({homography:e.toSource,point:{x:t,y:n}}),z:r})),r=[{x:t.boundingRect.x,y:t.boundingRect.y},{x:t.boundingRect.x+t.boundingRect.width,y:t.boundingRect.y},{x:t.boundingRect.x+t.boundingRect.width,y:t.boundingRect.y+t.boundingRect.height},{x:t.boundingRect.x,y:t.boundingRect.y+t.boundingRect.height}].map(t=>a({homography:e.toSource,point:t})),i=r.map(({x:e})=>e),o=r.map(({y:e})=>e),s={x:Math.min(...i),y:Math.min(...o),width:Math.max(...i)-Math.min(...i),height:Math.max(...o)-Math.min(...o)};return{...t,boundingRect:s,mesh:{...t.mesh,height:e.sourceHeight,landmarks:n,width:e.sourceWidth}}},l=({face:e})=>{let t=e.mesh.landmarks,r=n.left.map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t})),i=n.right.map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t})),a=[13,14].map(e=>t[e]).filter(Boolean).map(({x:e,y:t})=>({x:e,y:t}));return r.length!==2||i.length!==2||a.length!==2?null:{boundingRect:e.boundingRect,mouth:{x:(a[0].x+a[1].x)/2,y:(a[0].y+a[1].y)/2},leftEye:{x:(r[0].x+r[1].x)/2,y:(r[0].y+r[1].y)/2},rightEye:{x:(i[0].x+i[1].x)/2,y:(i[0].y+i[1].y)/2}}},u=({face:e,lines:t,maxAngleDifference:n})=>{let r=Math.atan2(e.rightEye.y-e.leftEye.y,e.rightEye.x-e.leftEye.x)*180/Math.PI,i=0;for(let a of t){let t=Math.abs(a.angle-r)%180,o=Math.min(t,180-t),s=a.box;!(s.y>=e.boundingRect.y&&s.y+s.height<=e.boundingRect.y+e.boundingRect.height)||o>n||s.x>e.boundingRect.x+e.boundingRect.width&&(i+=1)}return i};return{transformPoint:a,orientDocumentFrame:s,restoreRectifiedFace:c,rectifiedDocumentFace:l,documentAlignment:({face:e,lines:t,maxAngleDifference:n,maxFaceAreaRatio:r,maxFaceHeightRatio:i,maxFaceWidthRatio:a,minFaceAreaRatio:o,minFaceHeightRatio:s,minFaceWidthRatio:c,documentSize:l})=>{if(!e)return{faceAdjacentTextLineCount:0,angleDifference:null,eyesAngle:null,faceAreaRatio:0,faceAreaValid:!1,faceDimensionsValid:!1,faceHeightRatio:0,faceWidthRatio:0,textAngle:null,textParallel:!1,textSide:`unknown`};let d=e.boundingRect.width*e.boundingRect.height/(l.width*l.height),f=d>=o&&d<=r,p=e.boundingRect.width/l.width,m=e.boundingRect.height/l.height,h=p>=c&&p<=a&&m>=s&&m<=i,g=Math.atan2(e.rightEye.y-e.leftEye.y,e.rightEye.x-e.leftEye.x)*180/Math.PI,_=t.filter(t=>{let n=t.box;return n.y>=e.boundingRect.y&&n.y+n.height<=e.boundingRect.y+e.boundingRect.height&&n.x>e.boundingRect.x+e.boundingRect.width}),v=_.length?_.reduce((e,t)=>e+t.angle,0)/_.length:null,y=v===null?null:Math.abs(v-g)%180,b=y===null?null:Math.min(y,180-y),x=b!==null&&b<=n;return{faceAdjacentTextLineCount:u({face:e,lines:t,maxAngleDifference:n}),angleDifference:b,eyesAngle:g,faceAreaRatio:d,faceAreaValid:f,faceDimensionsValid:h,faceHeightRatio:m,faceWidthRatio:p,textAngle:v,textParallel:x,textSide:_.length?`right`:`unknown`}}}}})),dx,fx=t((()=>{W(),zh(),ag(),lg(),Og(),Wb(),Ry(),km(),_h(),yh(),dx=({runtime:e,documentAlignment:t,rectifiedDocumentFace:n,orientDocumentFrame:r,restoreRectifiedFace:i,analyzeDocument:a,faceDetection:o,faceMatch:s,textDetection:c})=>{let l=vh({runtime:e}),u=({frame:t,text:n})=>{let r=e.createCanvas(32,32),i=r.getContext(`2d`,{willReadFrequently:!0});if(!i)throw Error(U.IMAGE_PROCESSING_FAILED);i.drawImage(t,0,0,r.width,r.height);let{data:a}=i.getImageData(0,0,r.width,r.height);return gh({canvas:r}),Uh({data:a,height:32,text:n,width:32})},d=({current:e,front:t})=>{let n=Gh({current:e.signature,front:t}),r=[],i=e.signature?.textTokens.length??0,a=Kh({text:e.text.text})||e.text.lines.length>=2&&i>=2;return e.detection||r.push(U.DOCUMENT_NOT_FOUND),e.documentAnalysis.isBlurry&&r.push(U.DOCUMENT_BLURRY),e.hasPictureFace&&r.push(U.DOCUMENT_BACK_CONTAINS_FACE),a||r.push(U.DOCUMENT_TEXT_NOT_READABLE),n.distinct||r.push(U.DOCUMENT_BACK_NOT_DISTINCT),{distinct:n.distinct,imageDistance:n.imageDistance,reasons:r,textOverlap:n.textOverlap,valid:r.length===0}},f=({alignment:e,detection:t,documentAnalysis:n,faceContained:r,requiresFace:i,text:a})=>{let o=[];return t||o.push(U.DOCUMENT_NOT_FOUND),n.isBlurry&&o.push(U.DOCUMENT_BLURRY),i&&!r&&o.push(U.DOCUMENT_FACE_NOT_CONTAINED),(!a.text||a.lines.length<2)&&o.push(U.DOCUMENT_TEXT_NOT_READABLE),!i||e.faceAreaValid&&e.faceDimensionsValid||o.push(U.DOCUMENT_FACE_GEOMETRY_INVALID),i&&(e.faceAdjacentTextLineCount<2||!e.textParallel||e.textSide!==`right`)&&o.push(U.DOCUMENT_TEXT_ALIGNMENT_INVALID),o},p=async({classification:e,codes:r,ocr:a,options:c,documentAnalysis:l,document:d,text:p,prepareForMatch:m})=>{let h=l.detection,g=c.requiresFace??!0,_={boundingRect:{height:d.height,width:d.width,x:0,y:0},polygon:[{x:0,y:0},{x:d.width,y:0},{x:d.width,y:d.height},{x:0,y:d.height}]},v=g?await o.detectDocumentFaces({detection:_,frame:d.frame}):{faces:[],pictureFaces:[],hasPictureFace:await o.detectDocumentFacePresence({detection:_,frame:d.frame})},y=v.pictureFaces.map(e=>i({document:d,face:e})),b=u({frame:d.frame,text:p.text}),x=r.find(e=>e.type===`mrz`)??null,S=null;for(let u of v.faces.length?v.faces:[null]){let _=u?i({document:d,face:u}):null,C=u?n({face:u}):null,w=g&&h?o.faceIsInsideDocument({detection:h,face:_})&&y.every(e=>o.faceIsInsideDocument({detection:h,face:e})):!1,T=t({documentSize:{height:p.height,width:p.width},face:C,lines:p.lines,maxAngleDifference:c.maxDocumentTextAngleDifference,maxFaceAreaRatio:c.maxDocumentFaceAreaRatio,maxFaceHeightRatio:c.maxDocumentFaceHeightRatio,maxFaceWidthRatio:c.maxDocumentFaceWidthRatio,minFaceAreaRatio:c.minDocumentFaceAreaRatio,minFaceHeightRatio:c.minDocumentFaceHeightRatio,minFaceWidthRatio:c.minDocumentFaceWidthRatio}),E=f({alignment:T,detection:h,documentAnalysis:l,faceContained:w,requiresFace:g,text:p});g&&!e&&E.push(U.DOCUMENT_NOT_RECOGNIZED),e?.europeanDrivingLicense&&!sg({identity:e.identity})&&E.push(U.DOCUMENT_VALIDATION_FAILED);let ee=E.length===0,D=null,te=null;if(g&&ee&&u){let e=s.prepareFace({alignment:c.alignment??`eyes-nose-mouth`,face:u,frame:d.frame});if(!e)ee=!1,E.push(U.FACE_NOT_USABLE);else if(m){let t=await s.preparedFaceArtifacts({face:e});D=t?.embeddings??null,te=t?.images??null,t||(ee=!1,E.push(U.INVALID_MODEL_OUTPUT))}}let ne={identity:e?e.identity:null,orientation:d.orientation,ocr:a,mrz:x,alignment:T,detection:h,documentAnalysis:l,documentKind:e?e.document:null,europeanDrivingLicense:e?e.europeanDrivingLicense:!1,codes:r,documentToSource:d.toSource,embeddings:D,images:te,face:_,faceContained:w,hasPictureFace:v.hasPictureFace??y.length>0,failureReasons:E,pictureFaces:y,signature:b,text:p,valid:ee};if(ne.valid)return ne;S??=ne}if(!S)throw Error(U.INTERNAL_ERROR);return S},m=async({frame:n,options:i,documentAnalysis:a,prepareForMatch:o=!1})=>{let s=a.detection;if(!s){let e={height:0,lines:[],text:``,width:0},n=t({documentSize:{height:e.height,width:e.width},face:null,lines:e.lines,maxAngleDifference:i.maxDocumentTextAngleDifference,maxFaceAreaRatio:i.maxDocumentFaceAreaRatio,maxFaceHeightRatio:i.maxDocumentFaceHeightRatio,maxFaceWidthRatio:i.maxDocumentFaceWidthRatio,minFaceAreaRatio:i.minDocumentFaceAreaRatio,minFaceHeightRatio:i.minDocumentFaceHeightRatio,minFaceWidthRatio:i.minDocumentFaceWidthRatio});return{identity:null,orientation:null,ocr:null,mrz:null,codes:[],europeanDrivingLicense:!1,alignment:n,detection:s,documentAnalysis:a,documentKind:null,documentToSource:null,embeddings:null,face:null,faceContained:!1,failureReasons:f({alignment:n,detection:s,documentAnalysis:a,faceContained:!1,requiresFace:i.requiresFace??!0,text:e}),images:null,pictureFaces:[],hasPictureFace:!1,signature:null,text:e,valid:!1}}let u=await r({frame:n,polygon:s.polygon,orientation:s.orientation});if(!u)throw Error(U.IMAGE_PROCESSING_FAILED);try{let t=performance.now(),r=ig({image:l({frame:n}),polygon:s.polygon,sourceOrientation:u.orientation.rotation}),d=i.requiresFace===!1?`back`:`front`;Dm({category:`stages`,key:`ocr.prepare.${d}`,duration:performance.now()-t});let f=l({frame:u.frame}),m=await c.readRectifiedText({classificationImage:f,engine:i.ocrEngine,frame:u.frame,language:i.language,image:r}),h=m??{height:u.height,lines:[],text:``,width:u.width},g=m?Ay({result:m}):null,_=null;if(i.requiresFace===!1){let t=e.createImageData(f.width,f.height);t.data.set(f.data),_=await Om({key:`barcode.back`,operation:()=>Ly({image:t})})}let v=[g,_].filter(e=>e!==null),y=Lh({image:f,text:h.text,codes:v}),b=i.requiresFace!==!1&&y?.europeanDrivingLicense&&m?Dg({ocr:m,image:f}):null,x=y?{...y,identity:b}:null;return await p({ocr:m,classification:x,codes:v,options:i,documentAnalysis:a,document:u,prepareForMatch:o,text:h})}finally{u.frame.close()}},h=async({frame:e,options:t,prepareForMatch:n=!1})=>{let r=await a({frame:e,minDocumentBoxRatio:t.minDocumentBoxRatio});return await m({frame:e,options:t,documentAnalysis:r,prepareForMatch:n})},g=({analysis:e,isBack:t,front:n})=>{if(!e.ocr)return[U.DOCUMENT_TEXT_NOT_READABLE];if(t&&!n)return[U.CAPTURES_INCOMPLETE];if(!t&&!e.documentKind)return[U.DOCUMENT_NOT_RECOGNIZED];let r={ocr:e.ocr,codes:e.codes},i=t&&n?n:{document:e.documentKind,europeanDrivingLicense:e.europeanDrivingLicense,identity:e.identity};return cg({classification:i,front:t&&n?n:r,back:t?r:null}).reasons.filter(e=>t||e!==U.DOCUMENT_BACK_REQUIRED)};return{validateDocumentBack:d,analyzeDocumentFrame:h,hasValidDocumentSideData:e=>g(e).length===0,documentSideFailureReasons:g}}})),px,mx,hx=t((()=>{W(),Wb(),qb(),_h(),yh(),px={standard:{filename:`fm.ort`,layout:`nhwc`},high:{filename:`fmh.ort`,layout:`nhwc`},ultra:{filename:`fmu.ort`,layout:`nchw`}},mx=({runtime:e,orientDocumentFrame:t,detectDocument:n,faceDetection:r,detectFace:i,detectPictureFaces:a,faceMatcher:o=`ultra`})=>{let s=vh({runtime:e}),c=[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],l={"eyes-nose-mouth":{landmarks:[[33,133],[263,362],[1],[61],[291]],target:[[38.2946,51.6963],[73.5318,51.5014],[56.0252,71.7366],[41.5493,92.3655],[70.7299,92.2041]]}},u=({points:e})=>[e.reduce((e,[t])=>e+t,0)/e.length,e.reduce((e,[,t])=>e+t,0)/e.length],d=({source:e,target:t})=>{if(e.length<2||e.length!==t.length)return null;let[n,r]=u({points:e}),[i,a]=u({points:t}),o=0,s=0,c=0;for(let[l,[u,d]]of e.entries()){let[e,f]=t[l],p=u-n,m=d-r,h=e-i,g=f-a;o+=p*p+m*m,s+=p*h+m*g,c+=p*g-m*h}if(o<1e-8)return null;let l=s/o,d=c/o;return l*l+d*d<1e-8?null:[l,-d,i-l*n+d*r,d,l,a-d*n-l*r]},f=({height:e,minimumArea:t,polygon:n,width:r})=>{if(Math.abs(n.reduce((e,t,r)=>{let i=n[(r+1)%n.length];return e+t[0]*i[1]-i[0]*t[1]},0))/2<t)return null;let i=new Float32Array(r*e),a=Math.max(0,Math.ceil(Math.min(...n.map(([,e])=>e))-.5)),o=Math.min(e,Math.ceil(Math.max(...n.map(([,e])=>e))-.5));for(let e=a;e<o;e+=1){let t=[],a=e+.5;for(let e=0,r=n.length-1;e<n.length;r=e++){let[i,o]=n[r],[s,c]=n[e];o>a!=c>a&&t.push((s-i)*(a-o)/(c-o)+i)}t.sort((e,t)=>e-t);for(let n=0;n+1<t.length;n+=2){let a=Math.min(r,Math.max(0,Math.ceil(t[n]-.5))),o=Math.max(0,Math.min(r,Math.ceil(t[n+1]-.5)));i.fill(1,e*r+a,e*r+o)}}return i},p=({face:e,grayscale:t})=>{let{image:n,weights:r}=e,i=0,a=0,o=0,s=0;for(let e=0;e<r.length;e+=1){let t=r[e];if(!t)continue;let c=e*4,l=n[c]*.299+n[c+1]*.587+n[c+2]*.114;i+=l*t,a+=l*l*t,o+=t,(l<8||l>247)&&(s+=t)}if(o<r.length*.1)return null;let c=i/o;if(c<25||c>230||s/o>.4)return null;let l=Math.sqrt(Math.max(1,a/o-c*c)),u=Math.min(1.8,Math.max(.55,58/(127.5/c*l)))*(127.5/c),d=new Uint8ClampedArray(n.length);for(let e=0;e<r.length;e+=1){let i=e*4,a=r[e],o=n[i]*.299+n[i+1]*.587+n[i+2]*.114,s=(o-c)*u+127.5,l=s/Math.max(o,1);for(let e=0;e<3;e+=1)d[i+e]=Math.max(0,Math.min(255,t?s:n[i+e]*l))*a+127.5*(1-a);d[i+3]=255}return d},m=({alignment:t,face:n,frame:r})=>{let i=c.map(e=>{let t=n.mesh.landmarks[e];return[t.x,t.y]});if(i.some(([e,t])=>!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0||e>=r.width||t>=r.height))return null;let a=e.createCanvas(112,112);try{let e=a.getContext(`2d`,{willReadFrequently:!0});if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);let o=l[t],s=o.landmarks.map(e=>{let t=e.map(e=>{let t=n.mesh.landmarks[e];return[t.x,t.y]});return u({points:t})}),c=d({source:s,target:o.target});if(!c||!c.every(Number.isFinite))return null;e.fillStyle=`rgb(128, 128, 128)`,e.fillRect(0,0,112,112),e.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),e.drawImage(r,0,0),e.setTransform(1,0,0,1,0,0);let m=i.map(([e,t])=>[c[0]*e+c[1]*t+c[2],c[3]*e+c[4]*t+c[5]]),h=f({height:112,minimumArea:1254.4,polygon:m,width:112});if(!h)return null;let g={image:e.getImageData(0,0,112,112).data,weights:h},_=p({face:g,grayscale:!1});if(!_)return null;let v=p({face:g,grayscale:!0});return v?{...g,normalized:{rgb:_,greyscale:v}}:null}finally{gh({canvas:a})}},h=async({faceMatcher:t=o}={})=>await e.session({filename:px[t].filename}),g=({layout:e,normalized:t})=>{let n=12544,r=new Float32Array(n*3);for(let i=0;i<n;i+=1){let a=i*4;for(let o=0;o<3;o+=1){let s=(t[a+o]-127.5)/127.5,c=e===`nhwc`?i*3+o:o*n+i;r[c]=s}}return r},_=async({normalized:t})=>{let{layout:n}=px[o],r=g({layout:n,normalized:t}),i=n===`nhwc`?[1,112,112,3]:[1,3,112,112],a=await h(),s=await Kb({label:`face.embedding`,session:a,feeds:{[a.inputNames[0]]:e.tensor(`float32`,r,i)}});try{let e=s[a.outputNames[0]].data;if(!(e instanceof Float32Array))throw Error(U.INVALID_MODEL_OUTPUT);let t=e,n=Math.hypot(...t);if(t.length!==512||!t.every(Number.isFinite)||!Number.isFinite(n)||n<1e-8)throw Error(U.INVALID_MODEL_OUTPUT);return Array.from(t,e=>e/n)}finally{Gb({outputs:s})}},v=async({blob:t})=>{try{return await e.createImageBitmap(t)}catch(e){throw Error(U.IMAGE_DECODE_FAILED,{cause:e})}},y=async({normalized:e})=>{try{return await _({normalized:e})}catch(e){if(e instanceof Error&&e.message===U.INVALID_MODEL_OUTPUT)return null;throw e}},b=async({face:e})=>{let t=await y({normalized:e.normalized.rgb});if(!t)return null;let n=await y({normalized:e.normalized.greyscale});return n?{grayscale:n,rgb:t}:null},x=async({face:e})=>await y({normalized:e.normalized.greyscale}),S=async()=>{let e=new Uint8ClampedArray(50176).fill(127);if(!await b({face:{normalized:{rgb:e,greyscale:e}}}))throw Error(U.INVALID_MODEL_OUTPUT)},C=async({pixels:t})=>{let n=e.createCanvas(112,112);try{let e=n.getContext(`2d`);if(!e)throw Error(U.IMAGE_PROCESSING_FAILED);let r=e.createImageData(112,112);r.data.set(t),e.putImageData(r,0,0);let i=await n.convertToBlob({type:`image/jpeg`,quality:1});if(i.type!==`image/jpeg`)throw Error(U.IMAGE_ENCODE_FAILED);return i}finally{gh({canvas:n})}},w=async({face:e})=>{let t=await b({face:e});if(!t)return null;let[n,r]=await Promise.all([C({pixels:e.normalized.rgb}),C({pixels:e.normalized.greyscale})]);return{embeddings:t,images:{rgb:n,greyscale:r}}},T=async({alignment:e,face:t,frame:n})=>{let r=m({alignment:e,face:t,frame:n});return r?await b({face:r}):null},E=async({alignment:e,frame:t})=>{let n=await i(t);if(!n)throw Error(U.FACE_NOT_FOUND);let r=await T({alignment:e,face:n,frame:t});if(!r)throw Error(U.FACE_NOT_USABLE);return r},ee=async({alignment:e,frame:t})=>{let n=await a(t,{forMatch:!0}),r=[];for(let i of n){let n=await T({alignment:e,face:i,frame:t});n&&r.push(n)}return r},D=async({alignment:e,frame:i})=>{let a=await n(i);if(!a)throw Error(U.DOCUMENT_NOT_FOUND);let o=await t({frame:i,polygon:a.polygon,orientation:a.orientation});if(!o)throw Error(U.DOCUMENT_NOT_FOUND);try{let t={boundingRect:{height:o.height,width:o.width,x:0,y:0},polygon:[{x:0,y:0},{x:o.width,y:0},{x:o.width,y:o.height},{x:0,y:o.height}]},{faces:n}=await r.detectDocumentFaces({detection:t,frame:o.frame});if(!n.length)throw Error(U.DOCUMENT_FACE_NOT_FOUND);for(let t of n){let n=await T({alignment:e,face:t,frame:o.frame});if(n)return n}}finally{o.frame.close()}throw Error(U.FACE_NOT_USABLE)};return{prepareFace:m,loadFaceMatch:h,warmupFaceMatch:S,imageBitmap:v,readImage:s,preparedFaceEmbeddings:b,preparedFaceGrayscaleEmbedding:x,preparedFaceArtifacts:w,matchFaceWithDocument:async({document:e,documentFaceEmbeddings:t,referenceFaceEmbeddings:n,options:r,reference:i})=>{let a=null,o=null;try{let s=t;s||=(o=await v({blob:e}),await D({alignment:r.alignment,frame:o,language:r.language,ocrEngine:r.ocrEngine}));let c=n;c||=(a=await v({blob:i}),await E({alignment:r.alignment,frame:a}));let l=Mb({first:c,second:s});return jb({score:l,threshold:r.threshold})}finally{a&&a.close(),o&&o.close()}},matchPictureWithFaces:async({options:e,picture:t,references:n,referenceFaceEmbeddings:r})=>{let i=await v({blob:t}),a=[];try{if(!r)for(let e of n){let t=await v({blob:e});a.push(t)}let t=await ee({alignment:e.alignment,frame:i});if(!t.length)throw Error(U.NO_USABLE_CANDIDATES);let o=r?[...r]:[];for(let t of a)try{let n=await E({alignment:e.alignment,frame:t});o.push(n)}catch(e){if(!(e instanceof Error)||e.message!==U.FACE_NOT_FOUND&&e.message!==U.FACE_NOT_USABLE)throw e}let s=-1/0;for(let e of o)for(let n of t){let t=Mb({first:n,second:e});s=Math.max(s,t)}if(!Number.isFinite(s))throw Error(U.NO_USABLE_REFERENCES);return jb({score:s,threshold:e.threshold})}finally{i.close();for(let e of a)e.close()}}}}})),gx,_x=t((()=>{W(),ag(),_h(),gx=({runtime:e,document:t,readImage:n})=>async({image:r,timings:i})=>{let a=await e.createImageBitmap(new Blob([r]));try{let r=performance.now(),o=await t.analyzeDocument({frame:a});if(i&&(i.documentBoxDetectionMs=performance.now()-r),!o.detection)throw Error(U.DOCUMENT_NOT_FOUND);let{polygon:s,orientation:c}=o.detection,l=ig({image:n({frame:a}),polygon:s,sourceOrientation:c?.rotation}),u=e.createCanvas(l.width,l.height);try{let t=u.getContext(`2d`);if(!t)throw Error(U.IMAGE_PROCESSING_FAILED);let n=e.createImageData(l.width,l.height);n.data.set(l.data),t.putImageData(n,0,0);let r=await u.convertToBlob({type:`image/png`});return new Uint8Array(await r.arrayBuffer())}finally{gh({canvas:u})}}finally{a.close()}}})),vx,yx=t((()=>{By(),nx(),ax(),cx(),ux(),Ry(),fx(),hx(),_x(),yh(),vx=({runtime:e,getOcr:t,faceMatcher:n})=>{let r=vh({runtime:e}),i=lx({runtime:e}),a=tx({runtime:e}),o=ix({runtime:e,imageFromImageBitmap:r}),s=sx({runtime:e,getOcr:t,...i}),c=mx({runtime:e,...i,...a,...o,faceDetection:o,faceMatcher:n});return{alignment:i,document:a,face:o,text:s,match:c,flow:dx({runtime:e,...i,...a,faceDetection:o,faceMatch:c,textDetection:s}),classify:zy({runtime:e,detector:a,alignment:i,text:s,readImage:r}),prepareOcrImage:gx({runtime:e,document:a,readImage:r}),warmup:async()=>{await Promise.all([o.loadFaceDetector({faceDetector:`standard`}),c.loadFaceMatch(),a.loadDocumentBoxDetector(),a.loadDocumentOrientationDetector(),s.loadTextDetector({engine:`tiny`,language:`latin`}),Iy()])}}}})),bx,xx,Sx,Cx,wx,Tx,Ex,Dx,Ox,kx,Ax,jx,Mx,Nx,Px=t((()=>{kh(),wh(),yx(),bg(),fy(),lg(),Nb(),ky(),Ry(),$m(),{alignment:bx,document:xx,face:Sx,text:Cx,match:wx,flow:Tx,classify:Ex,prepareOcrImage:Dx,warmup:Ox}=vx({runtime:Sh,getOcr:Dh}),{classifyDocument:kx,detectDocument:Ax,extractDocumentCodes:jx}=Ex,{detectDocumentOrientation:Mx,loadDocumentOrientationDetector:Nx}=xx})),Fx,Ix,Lx,Rx,zx,Bx=t((()=>{dd(),Fx=[`faceStraight`,`faceUp`,`faceDown`,`faceLeft`,`faceRight`],Ix=[`faceStraight`,`faceUp`,`faceLeft`,`faceRight`],Lx=[...Fx,`faceSmile`,`faceWinkLeft`,`faceTiltLeft`,`faceTiltRight`],Ql(Lx),Rx={faceStraight:0,faceLeft:1,faceRight:1,faceUp:2,faceDown:2,faceTiltLeft:3,faceTiltRight:3,faceSmile:4,faceWinkLeft:5},zx={faceStraight:`face_straight`,faceUp:`face_up`,faceDown:`face_down`,faceLeft:`face_left`,faceRight:`face_right`,faceSmile:`face_smile`,faceWinkLeft:`face_wink_left`,faceTiltLeft:`face_tilt_left`,faceTiltRight:`face_tilt_right`},Ql(zx),Fx.map(e=>zx[e]),Ix.map(e=>zx[e])})),Vx,Hx,Ux,Wx=t((()=>{Vx={faceStraight:{primary:`lookStraight`},faceUp:{primary:`lookUp`},faceDown:{primary:`lookDown`},faceLeft:{primary:`lookLeft`},faceRight:{primary:`lookRight`},faceSmile:{primary:`smile`},faceWinkLeft:{primary:`winkLeft`},faceTiltLeft:{primary:`tiltLeft`},faceTiltRight:{primary:`tiltRight`}},Hx={FACE_ROLL_TILT_LEFT:`tiltLeft`,FACE_ROLL_TILT_RIGHT:`tiltRight`,FACE_ROLL_TILT_LESS:`tiltLess`,FACE_YAW_TURN_LEFT:`lookLeft`,FACE_YAW_TURN_RIGHT:`lookRight`,FACE_YAW_TURN_LESS:`turnLess`,FACE_PITCH_LOOK_UP:`lookUp`,FACE_PITCH_LOOK_DOWN:`lookDown`,FACE_PITCH_RAISE_LESS:`raiseLess`,FACE_PITCH_LOWER_LESS:`lowerLess`,FACE_SMILE_REQUIRED:`smile`,FACE_WINK_LEFT_REQUIRED:`winkLeft`,FACEKEY_LOWER_HEAD:`lookDown`,FACEKEY_LOWER_HEAD_LESS:`lowerLess`,FACEKEY_RAISE_HEAD:`lookUp`,FACEKEY_RAISE_HEAD_LESS:`raiseLess`,FACEKEY_SMILE_REQUIRED:`smile`,FACEKEY_TILT_HEAD_LEFT:`tiltLeft`,FACEKEY_TILT_HEAD_LESS:`tiltLess`,FACEKEY_TILT_HEAD_RIGHT:`tiltRight`,FACEKEY_TURN_HEAD_LEFT:`lookLeft`,FACEKEY_TURN_HEAD_LESS:`turnLess`,FACEKEY_TURN_HEAD_RIGHT:`lookRight`,FACEKEY_WINK_LEFT_REQUIRED:`winkLeft`},Ux={facePoses:Vx,poseRejections:Hx}})),Gx,Kx,qx=t((()=>{Wx(),Gx=({pose:e})=>{let t=Ux.facePoses[e];return{...t,primary:t.primary}},Kx=({code:e})=>Ux.poseRejections[e]})),Jx,Yx,Xx,Zx,Qx,$x,eS,tS,nS,rS,iS=t((()=>{Wb(),Sb(),qx(),Jx=1e3,Yx=({pose:e})=>{let t=ub[e];return t?.yaw===void 0?t?.pitch===void 0?t?.roll===void 0?e===`faceStraight`?{axis:`roll`,value:0}:{axis:null,value:null}:{axis:`roll`,value:t.roll}:{axis:`pitch`,value:t.pitch}:{axis:`yaw`,value:t.yaw}},Xx=()=>({published:null,candidate:null,frames:0}),Zx=()=>({label:null,since:0}),Qx=({label:e,now:t,state:n})=>e?n.label===e?n:{label:e,since:t}:Zx(),$x=({delay:e=Jx,label:t,now:n,state:r})=>!t||r.label!==t?null:n-r.since>=e?t:null,eS=({alignment:e,neutral:t})=>t?{pitch:e.pitch-t.pitch,yaw:e.yaw-t.yaw,roll:e.roll-t.roll}:e,tS=({alignment:e,blendshapes:t,neutral:n,pose:r,options:i})=>{let a=eS({alignment:e,neutral:r===`faceStraight`?null:n}),o=Db({...e,blendshapes:t,pose:r,options:i});o===null&&r===`faceUp`&&n&&(o=Db({...e,pitch:a.pitch,blendshapes:t,pose:r,options:i}));let s=Yx({pose:r}),c=s.axis&&s.value!==null?a[s.axis]-s.value:0,l=(i.tolerance??15)+8,u=o===null?`inside`:Math.abs(c)<=l?`approaching`:`outside`;return{pose:r,axis:s.axis,target:s.value,error:c,zone:u,code:o}},nS=({state:e,code:t,requiredFrames:n})=>{if(t===e.published)return{published:e.published,candidate:null,frames:0};if(t===e.candidate){let r=e.frames+1;return r>=n?{published:t,candidate:null,frames:0}:{published:e.published,candidate:t,frames:r}}return{published:e.published,candidate:t,frames:1}},rS=({corrective:e,pose:t})=>{let n=Gx({pose:t}).primary;return{primary:n,corrective:e&&e!==n?e:null}}})),aS,oS,sS,cS,lS,uS,dS,fS,pS=t((()=>{Px(),a(),It(),on(),aS=async()=>{let e=await fetch(i({filename:`faceMeshLines.json`}));if(!e.ok)throw Error(M.INVALID_SERVICE_RESPONSE);return await e.json()},oS=async()=>{await aS()},{transformPoint:sS}=bx,cS=[`tessellation`,`contours`,`faceOval`,`lips`,`leftEye`,`rightEye`,`leftEyebrow`,`rightEyebrow`,`leftIris`,`rightIris`],lS=async({color:e,context:t,result:n})=>{let r=await aS();t.beginPath();for(let e of cS)for(let{start:i,end:a}of r[e]){let e=n.mesh.landmarks[i],r=n.mesh.landmarks[a];e&&r&&(t.moveTo(e.x,e.y),t.lineTo(r.x,r.y))}t.strokeStyle=e,t.lineWidth=1,t.stroke()},uS=({backgroundColor:e,color:t,context:n,line:r,toSource:i})=>{if(!r.text)return;let{x:a,y:o,width:s,height:c}=r.box,l=[{x:a,y:o},{x:a+s,y:o},{x:a+s,y:o+c},{x:a,y:o+c}].map(e=>sS({homography:i,point:e})),u=l[0],d=l[1],f=l[3];if(!u||!d||!f)return;let p=Math.hypot(d.x-u.x,d.y-u.y),m=Math.hypot(f.x-u.x,f.y-u.y),h=Math.max(8,Math.min(16,m*.7)),g=Math.max(0,p-4),_=Math.atan2(d.y-u.y,d.x-u.x);n.beginPath(),n.moveTo(u.x,u.y);for(let e of l.slice(1))n.lineTo(e.x,e.y);n.closePath(),n.strokeStyle=t,n.lineWidth=1,n.stroke(),n.save(),n.clip(),n.translate(u.x+2,u.y+2),n.rotate(_),n.font=`${h}px sans-serif`,n.textBaseline=`top`,n.lineWidth=3,n.strokeStyle=e,n.strokeText(r.text,0,0,g),n.fillStyle=t,n.fillText(r.text,0,0,g),n.restore()},dS=async({element:e,meshLineColor:t,overlayColor:n=`transparent`,result:r})=>{let i=e.getContext(`2d`);if(!i)throw Error(M.IMAGE_PROCESSING_FAILED);let a=r?.mesh.width??e.width,o=r?.mesh.height??e.height;e.width!==a&&(e.width=a),e.height!==o&&(e.height=o),$t({element:e}),n!==`transparent`&&(i.fillStyle=n,i.fillRect(0,0,a,o)),r&&await lS({color:t,context:i,result:r})},fS=async({documentFaceBoxColor:e,documentFaceMeshColor:t,documentBoxColor:n,element:r,detection:i,face:a,height:o,ocrLines:s=[],ocrToSource:c=null,overlayColor:l=`transparent`,textColor:u,width:d})=>{let f=r.getContext(`2d`);if(f&&d&&o){if(r.width!==d&&(r.width=d),r.height!==o&&(r.height=o),$t({element:r}),l!==`transparent`&&(f.fillStyle=l,f.fillRect(0,0,d,o)),i){f.strokeStyle=n,f.lineWidth=3,f.beginPath();for(let[e,t]of i.polygon.entries())e?f.lineTo(t.x,t.y):f.moveTo(t.x,t.y);f.closePath(),f.stroke()}if(a&&(f.strokeStyle=e,f.lineWidth=2,f.strokeRect(a.boundingRect.x,a.boundingRect.y,a.boundingRect.width,a.boundingRect.height),await lS({color:t,context:f,result:a})),c){let e=getComputedStyle(r).color;for(let t of s)uS({backgroundColor:e,color:u,context:f,line:t,toSource:c})}}}}));Mt(),Bx(),Px(),Wb(),Kt(),on(),iS(),pS(),It();var{analyzeDocumentFrame:mS,hasValidDocumentSideData:hS,validateDocumentBack:gS}=Tx,_S=({view:e,display:t,isActive:n,notifyCapturesChanged:r,getVerifyHardOptions:i})=>{let a=e.ref,o=async()=>{t.success.value=!0,await Gt({milliseconds:400}),t.success.value=!1},s=async({frame:s,session:c,state:l,options:u})=>{let d=performance.now(),f=!!l.captures.documentFront,p=u.requiredDocumentStableFrames,m=null,h=null;try{m=await mS({frame:s,prepareForMatch:f||l.documentStableFrames+1>=u.requiredDocumentStableFrames,options:{...i({configuration:u}),alignment:l.matchOptions.alignment,requiresFace:!f}});let{orientation:e,detection:d,face:g}=m;if(!n({flow:`document`,session:c,state:l}))return!1;let _=f?gS({current:m,front:l.documentFrontSignature}):null;h=f?Gh({front:l.documentFrontSignature,current:m.signature}):null;let v=l.document?{...l.document,ocr:l.document.document_front}:void 0,y=hS({analysis:m,isBack:f,front:v}),b=(f?_?.valid===!0:m.valid)&&y,x=e?e.rotation:null;x!==l.documentOrientation&&(l.documentStableFrames=0),l.documentOrientation=x,l.documentStableFrames=b?l.documentStableFrames+1:0,u.showDocumentOverlay?await fS({documentFaceBoxColor:u.documentFaceBoxColor,documentFaceMeshColor:u.documentFaceMeshColor,documentBoxColor:u.documentBoxColor,element:a.mesh,detection:d,face:g,height:s.height,ocrLines:u.showTextOverlay?m.text.lines:[],ocrToSource:u.showTextOverlay?m.documentToSource:null,overlayColor:u.documentOverlayColor,textColor:u.textColor,width:s.width}):$t({element:a.mesh});let S=bS({analysis:m,dataValid:y,isBack:f,minFaceAreaRatio:u.minDocumentFaceAreaRatio,rejectionReasons:_?_.reasons:m.failureReasons,valid:b,stable:l.documentStableFrames>=p});if(t.feedback.value={flow:`document`,...S},l.documentStableFrames<p)return!1;let C=await tn({frame:s});return n({flow:`document`,session:c,state:l})?f?(vS({analysis:m,isBack:!0,state:l}),l.captures.documentBack=C,r({state:l}),await o(),!0):!m.embeddings||!m.images?!1:(vS({analysis:m,isBack:!1,state:l}),l.documentFaceEmbeddings=m.embeddings,l.documentFrontSignature=m.signature,l.preparedCaptures.documentFront=m.images,l.captures.documentFront=C,r({state:l}),await o(),!0):!1}finally{m&&n({flow:`document`,session:c,state:l})&&e.collectDocumentDebug({analysis:m,sideComparison:h,isBack:f,processingTimeMilliseconds:performance.now()-d,state:l})}};return{runDocumentLoop:async({session:e,state:r,options:i})=>{for(;n({flow:`document`,session:e,state:r});){if(await Jt({video:a.video}),!n({flow:`document`,session:e,state:r}))return;let o=await createImageBitmap(a.video);try{let n=await rn({frame:o});try{if(await s({frame:n,session:e,state:r,options:i})){r.flow=null,t.debug.value=[];return}}finally{n.close()}}finally{o.close()}}}}},vS=({analysis:e,isBack:t,state:n})=>{if(!e.ocr)throw Error(M.CAPTURES_INCOMPLETE);let r={ocr:e.ocr,codes:e.codes};if(t){if(!n.document)throw Error(M.CAPTURES_INCOMPLETE);let t=cg({classification:n.document,front:{ocr:n.document.document_front,codes:n.document.codes},back:r});n.document={...n.document,...t,document_back:e.ocr}}else{if(!e.documentKind)throw Error(M.DOCUMENT_NOT_RECOGNIZED);let t={document:e.documentKind,europeanDrivingLicense:e.europeanDrivingLicense,identity:e.identity},i=cg({classification:t,front:r});n.identity=e.identity,n.document={...t,...i,document_front:e.ocr,document_back:null}}n.documentCodes=n.document.codes},yS=({rejection:e})=>e===`coverage_low`?`DOCUMENT_BOX_TOO_SMALL`:e===`coverage_high`?`DOCUMENT_BOX_TOO_LARGE`:e===`edge_proximity`?`DOCUMENT_BOX_NEAR_EDGE`:e===`opposite_edges`?`DOCUMENT_BOX_TOUCHES_EDGES`:e===`aspect_ratio`?`DOCUMENT_NOT_SUPPORTED`:`DOCUMENT_SHAPE_INVALID`,bS=({analysis:e,dataValid:t,isBack:n,minFaceAreaRatio:r,rejectionReasons:i,valid:a,stable:o})=>{let s=`front`;n?s=`back`:e.documentKind===`passport`&&(s=`passport`);let c=Object.keys(e.documentAnalysis.diagnostics.rejected)[0];return c?{target:s,code:yS({rejection:c})}:e.detection?e.documentAnalysis.isBlurry?{target:s,code:`DOCUMENT_BLURRY`}:n&&i.includes(M.DOCUMENT_BACK_CONTAINS_FACE)?{target:s,code:`DOCUMENT_BACK_HAS_FACE`}:n&&i.includes(M.DOCUMENT_BACK_NOT_DISTINCT)?{target:s,code:`DOCUMENT_BACK_SAME_AS_FRONT`}:!n&&!e.face?{target:s,code:`DOCUMENT_FRONT_FACE_NOT_DETECTED`}:!n&&!e.faceContained?{target:s,code:`DOCUMENT_FRONT_FACE_NOT_CONTAINED`}:!n&&!e.alignment.faceAreaValid&&e.alignment.faceAreaRatio<r?{target:s,code:`DOCUMENT_FRONT_FACE_TOO_SMALL`}:!n&&(!e.alignment.faceAreaValid||!e.alignment.faceDimensionsValid)?{target:s,code:`DOCUMENT_FRONT_FACE_SIZE_INVALID`}:!n&&(!e.alignment.textParallel||e.alignment.textSide===`unknown`||e.alignment.faceAdjacentTextLineCount<2)?{target:s,code:`DOCUMENT_FRONT_LAYOUT_INVALID`}:!e.text.text||e.text.lines.length<2?{target:s,code:`DOCUMENT_TEXT_NOT_READABLE`}:!n&&!e.documentKind?{target:s,code:`DOCUMENT_NOT_RECOGNIZED`}:t?a?o?{target:s,code:null}:{target:s,code:`DOCUMENT_STABILITY_REQUIRED`}:{target:s,code:`DOCUMENT_VALIDATION_FAILED`}:{target:s,code:`DOCUMENT_CODE_NOT_READABLE`}:{target:s,code:`DOCUMENT_NOT_DETECTED`}},xS,SS,CS=t((()=>{on(),xS=({pitch:e,pose:t,requireEyeLevelCamera:n=!0,options:r})=>{if(!n||t!==`faceStraight`)return null;let i=Math.max(-8,r.minPitch),a=Math.min(8,r.maxPitch);return!Number.isFinite(e)||e<i||e>a?`FACE_CAMERA_ALIGNMENT_REQUIRED`:null},SS=()=>Yt()?`alignPhoneWithFace`:`alignFaceWithWebcam`})),wS,TS,ES,DS=t((()=>{wS={front:`frameDocument`,back:`frameDocumentBack`,passport:`framePassport`},TS={FACE_NOT_DETECTED:`faceNotFound`,FACE_IN_POLYGON:`faceInPolygon`,FACE_TOO_SMALL:`faceTooSmall`,FACE_CENTER_MOVE_LEFT:`faceCenterMoveLeft`,FACE_CENTER_MOVE_RIGHT:`faceCenterMoveRight`,FACE_CENTER_MOVE_UP:`faceCenterMoveUp`,FACE_CENTER_MOVE_DOWN:`faceCenterMoveDown`,FACE_STABILITY_REQUIRED:`stayStill`,DOCUMENT_NOT_DETECTED:`documentNotDetected`,DOCUMENT_BOX_TOO_SMALL:`documentBoxTooSmall`,DOCUMENT_BOX_TOO_LARGE:`documentBoxTooLarge`,DOCUMENT_BOX_NEAR_EDGE:`documentBoxNearEdge`,DOCUMENT_BOX_TOUCHES_EDGES:`documentBoxTouchesEdges`,DOCUMENT_SHAPE_INVALID:`documentShapeInvalid`,DOCUMENT_NOT_SUPPORTED:`documentNotSupported`,DOCUMENT_BLURRY:`documentBlurry`,DOCUMENT_FRONT_FACE_NOT_DETECTED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_NOT_CONTAINED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_TOO_SMALL:`documentPhotoTooSmall`,DOCUMENT_FRONT_FACE_SIZE_INVALID:`documentAlignmentInvalid`,DOCUMENT_FRONT_LAYOUT_INVALID:`documentAlignmentInvalid`,DOCUMENT_TEXT_NOT_READABLE:`documentNotReadable`,DOCUMENT_NOT_RECOGNIZED:`invalidDocument`,DOCUMENT_CODE_NOT_READABLE:`passportMrzNotReadable`,DOCUMENT_BACK_HAS_FACE:`documentBackHasFace`,DOCUMENT_BACK_SAME_AS_FRONT:`documentBackSameAsFront`,DOCUMENT_STABILITY_REQUIRED:`holdDocumentStill`,DOCUMENT_VALIDATION_FAILED:`documentValidationFailed`},ES={documentTargets:wS,rejections:TS}})),OS,kS,AS=t((()=>{CS(),qx(),DS(),OS=({target:e})=>ES.documentTargets[e],kS=({code:e})=>e===`FACE_CAMERA_ALIGNMENT_REQUIRED`?SS():e in ES.rejections?ES.rejections[e]:Kx({code:e})})),jS,MS,NS,PS,FS,IS,LS,RS,zS,BS,VS,HS,US,WS,GS,KS=t((()=>{Px(),Wb(),It(),CS(),Kt(),on(),iS(),AS(),pS(),{detectPictureFaces:jS}=Sx,MS={FACEKEY_LOWER_HEAD:`FACE_PITCH_LOOK_DOWN`,FACEKEY_LOWER_HEAD_LESS:`FACE_PITCH_LOWER_LESS`,FACEKEY_RAISE_HEAD:`FACE_PITCH_LOOK_UP`,FACEKEY_RAISE_HEAD_LESS:`FACE_PITCH_RAISE_LESS`,FACEKEY_TILT_HEAD_LEFT:`FACE_ROLL_TILT_LEFT`,FACEKEY_TILT_HEAD_LESS:`FACE_ROLL_TILT_LESS`,FACEKEY_TILT_HEAD_RIGHT:`FACE_ROLL_TILT_RIGHT`,FACEKEY_TURN_HEAD_LEFT:`FACE_YAW_TURN_LEFT`,FACEKEY_TURN_HEAD_LESS:`FACE_YAW_TURN_LESS`,FACEKEY_TURN_HEAD_RIGHT:`FACE_YAW_TURN_RIGHT`,FACEKEY_SMILE_REQUIRED:`FACE_SMILE_REQUIRED`,FACEKEY_WINK_LEFT_REQUIRED:`FACE_WINK_LEFT_REQUIRED`},NS=({face:e,name:t})=>e.blendshapes[t]??0,PS=({face:e,frame:t})=>e.boundingRect.height/t.height<.4?`FACE_TOO_SMALL`:null,FS=({face:e,pose:t,options:n})=>{let r=Db({...e,pose:t,options:n});return r?MS[r]:null},IS=({face:e,pose:t,options:n})=>FS({face:e,pose:t,options:n})===null,LS=async({capture:e,pose:t,options:n,poseOptions:r,requireEyeLevelCamera:i})=>{let a=await wx.imageBitmap({blob:e});try{let e=await jS(a),o=e.length===1?e[0]:null;if(!o||!IS({face:o,pose:t,options:r})||xS({pitch:o.pitch,pose:t,requireEyeLevelCamera:i,options:r}))return null;let s=wx.prepareFace({alignment:n.alignment,face:o,frame:a});return s?await wx.preparedFaceArtifacts({face:s}):null}finally{a.close()}},{detectDocumentBox:RS}=xx,{detectFace:zS}=Sx,BS=({view:e,display:t,isActive:n,notifyCapturesChanged:r})=>{let i=e.ref,a=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,o=({face:e,frame:n})=>{let r=e.boundingRect.x+e.boundingRect.width/2,i=e.boundingRect.y+e.boundingRect.height/2,a=(t.cameraFacingMode.value===`user`?n.width-r:r)/n.width,o=i/n.height;return a<.4?`FACE_CENTER_MOVE_RIGHT`:a>.6?`FACE_CENTER_MOVE_LEFT`:o<.4?`FACE_CENTER_MOVE_DOWN`:o>.6?`FACE_CENTER_MOVE_UP`:null},s=async({frame:s,session:c,state:l,options:u})=>{let d=performance.now(),f=null,p=!1;try{f=await zS(s);let e=f?await RS(s):null;if(p=!!(f&&e&&ab({face:f,polygon:e.polygon})),!n({flow:`face`,session:c,state:l}))return!1;if(u.showFaceOverlay&&await dS({element:i.mesh,meshLineColor:u.faceMeshColor,overlayColor:u.faceOverlayColor,result:f}),!f){l.poseStableFrames=0;let e=a({state:l});return t.feedback.value={flow:`face`,code:`FACE_NOT_DETECTED`,pose:e},!1}if(p)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_IN_POLYGON`,pose:a({state:l})},!1;let d=a({state:l}),m=PS({face:f,frame:s});if(m)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:m,pose:d},!1;let h=o({face:f,frame:s});if(h)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:h,pose:d},!1;let g=xS({pitch:f.pitch,pose:d,requireEyeLevelCamera:u.requireEyeLevelCamera,options:u});if(g)return l.poseStableFrames=0,l.guidanceCodeState=Xx(),l.correctiveState=Zx(),t.guidance.value=null,t.corrective.value=null,t.feedback.value={flow:`face`,code:g,pose:d},!1;let _={pitch:f.pitch,yaw:f.yaw,roll:f.roll},v=tS({alignment:_,blendshapes:f.blendshapes,neutral:l.neutralPose,pose:d,options:u});l.guidanceCodeState=nS({state:l.guidanceCodeState,code:v.code,requiredFrames:3}),t.guidance.value=v;let y=v.code?MS[v.code]:null,b=l.guidanceCodeState.published?MS[l.guidanceCodeState.published]:null,x=rS({pose:d,corrective:b?kS({code:b}):null}).corrective,S=performance.now();if(l.correctiveState=Qx({label:x,now:S,state:l.correctiveState}),t.corrective.value=$x({label:x,now:S,state:l.correctiveState}),y)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:b,pose:d},!1;if(d===`faceStraight`&&(l.neutralPose=_),l.poseStableFrames+=1,l.poseStableFrames<u.requiredFaceStableFrames)return t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;t.feedback.value={flow:`face`,code:null,pose:d};let C=await tn({frame:s}),w=await LS({capture:C,pose:d,options:l.matchOptions,poseOptions:u,requireEyeLevelCamera:u.requireEyeLevelCamera});if(!n({flow:`face`,session:c,state:l}))return!1;if(!w)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;let T=Vb({image:wx.readImage({frame:s,width:32,height:32})}),E=l.previousPoseBackgroundSignature;if(E&&!Hb({first:E,second:T}).matched)throw Error(M.POSE_BACKGROUND_MISMATCH);let ee=l.faceEmbeddings.faceStraight;if(ee&&Mb({first:ee,second:w.embeddings})<=l.matchOptions.threshold)throw Error(M.POSE_IDENTITY_MISMATCH);let D=d;return l.captures[D]=C,l.preparedCaptures[D]=w.images,l.faceEmbeddings[D]=w.embeddings,l.previousPoseBackgroundSignature=T,r({state:l}),t.success.value=!0,await Gt({milliseconds:400}),t.success.value=!1,n({flow:`face`,session:c,state:l})?(l.poseIndex+=1,l.poseStableFrames=0,l.guidanceCodeState=Xx(),l.correctiveState=Zx(),t.corrective.value=null,t.progress.value={completed:l.poseIndex,total:l.faceSequence.length},l.poseIndex===l.faceSequence.length?(t.feedback.value=null,!0):(t.feedback.value={flow:`face`,pose:a({state:l}),code:null},!1)):!1}finally{n({flow:`face`,session:c,state:l})&&e.collectFaceDebug({face:f,faceInPolygon:p,processingTimeMilliseconds:performance.now()-d,state:l}),s.close()}};return{runFaceLoop:async({session:e,state:r,options:a})=>{for(;n({flow:`face`,session:e,state:r});){if(await Jt({video:i.video}),!n({flow:`face`,session:e,state:r}))return;let o=await createImageBitmap(i.video);if(await s({frame:o,session:e,state:r,options:a})){r.flow=null,t.debug.value=[],t.guidance.value=null;return}}}}},VS=({captures:e,state:t})=>t.faceSequence.every(n=>!!(e[n]&&t.preparedCaptures[n]&&t.faceEmbeddings[n])),HS=({captures:e,state:t})=>{if(!VS({captures:e,state:t}))throw Error(M.CAPTURES_INCOMPLETE);let n=[...t.faceSequence];return{faces:n.map(t=>e[t]).filter(e=>!!e),poses:n,embeddings:n.map(e=>t.faceEmbeddings[e]).filter(e=>!!e)}},US=({sequence:e})=>{let t=[...e];for(let e=t.length-1;e>0;--e){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},WS=({sequence:e})=>[...e].sort((e,t)=>Rx[e]-Rx[t]),GS=({poses:e,randomize:t})=>{let n=e===`all`?[...Lx]:e??Ix;if(!n.length)throw Error(M.INVALID_POSES);let r=[...new Set(n)];if(r.length!==n.length||r.some(e=>!Lx.includes(e))||r[0]!==`faceStraight`||Ix.some(e=>!r.includes(e)))throw Error(M.INVALID_POSES);let i=r.slice(1);return t?[`faceStraight`,...US({sequence:i})]:[`faceStraight`,...WS({sequence:i})]}}));KS(),Bx(),It(),on();var qS=`https://api.voltom.io`,JS=({apiUrl:e})=>{let t=e??qS;return t.endsWith(`/`)?t.slice(0,-1):t},YS=async({apiUrl:e,path:t,method:n=`POST`,body:r,clientKey:i,fallback:a=M.INVALID_SERVICE_RESPONSE,signal:o})=>{let s={};i&&(s.authorization=`Bearer ${i}`),r&&(s[`content-type`]=`application/json`);let c;try{c=await fetch(`${JS({apiUrl:e})}${t}`,{method:n,headers:s,body:r,signal:o})}catch(e){throw o?.aborted?Error(M.VERIFICATION_CANCELLED,{cause:e}):Error(M.NETWORK_ERROR,{cause:e})}if(c.status===413)throw Error(M.REQUEST_TOO_LARGE);let l;try{l=await c.json()}catch(e){throw Error(c.status>=500?M.SERVICE_UNAVAILABLE:a,{cause:e})}if(!c.ok){let e=typeof l==`object`&&l&&`code`in l&&typeof l.code==`string`?l.code:c.status>=500?M.SERVICE_UNAVAILABLE:a;throw Error(e)}return l},XS=async({clientKey:e,apiUrl:t,signal:n})=>{await YS({apiUrl:t,path:`/auth/me`,method:`GET`,clientKey:e,fallback:M.INVALID_CLIENT_KEY,signal:n})},ZS=({apiUrl:e})=>{if(typeof navigator<`u`&&typeof navigator.sendBeacon==`function`)try{navigator.sendBeacon(`${JS({apiUrl:e})}/script-loads`)}catch{return}},QS=async({clientKey:e,apiUrl:t,endpoint:n,documentBack:r,documentFront:i,faces:a=[],options:o,picture:s,poses:c=[],sourceIds:l=[],threshold:u,signal:d})=>{if(!e)throw Error(M.CLIENT_KEY_REQUIRED);let f=JSON.stringify({documentFront:i?await an({image:i}):void 0,documentBack:r?await an({image:r}):void 0,picture:s?await an({image:s}):void 0,faces:await Promise.all(a.map(e=>an({image:e}))),options:o,poses:c.map(e=>zx[e]),source_ids:l,threshold:u});return d?.throwIfAborted(),await YS({apiUrl:t,path:n,body:f,clientKey:e,signal:d})};Px(),Sm(),Wb(),hh(),Bx(),It(),Kt(),on(),iS(),pS();var{loadDocumentBoxDetector:$S,detectDocumentOrientation:eC}=xx,{detectPictureFaces:tC,loadFaceDetector:nC}=Sx,{loadFaceMatch:rC,warmupFaceMatch:iC}=wx,{loadTextDetector:aC}=Cx,oC=({options:e,view:t,display:n})=>{let r=t.ref,i=[...Ix],a=({language:e})=>e??Ht(),o=()=>({identity:null,flow:null,session:0,faceSequence:[...i],faceCaptureConfiguration:null,documentCaptureConfiguration:null,poseIndex:0,poseStableFrames:0,documentStableFrames:0,documentOrientation:null,documentFaceEmbeddings:null,documentFrontSignature:null,documentCodes:[],matchOptions:{alignment:e.alignment,threshold:e.threshold},captures:{},preparedCaptures:{},faceEmbeddings:{},previousPoseBackgroundSignature:null,neutralPose:null,guidanceCodeState:Xx(),correctiveState:Zx(),faceMatchOptions:null,hardHumanVerificationId:null,hardDocumentVerificationId:null,cameraActive:!1,cameraSize:n.cameraSize,cameraFacingMode:n.cameraFacingMode}),s=({active:e,state:t})=>{t.cameraActive!==e&&(t.cameraActive=e,r.root.dispatchEvent(new CustomEvent(`voltom:camera-change`,{detail:{active:e}})))},c=({state:e})=>{Zt({video:r.video}),s({active:!1,state:e}),e.cameraSize.value=null,e.cameraFacingMode.value=null,n.feedback.value=null,n.guidance.value=null,n.corrective.value=null,n.success.value=!1},l=({state:e})=>({identity:e.identity,document:e.document,captures:{...e.captures},documentCodes:[...e.documentCodes],preparedCaptures:{...e.preparedCaptures}}),u=({state:e})=>{let t=l({state:e});r.root.dispatchEvent(new CustomEvent(`voltom:captures-change`,{detail:t}))},d=({state:t,options:r=e})=>{t.faceSequence=y({options:r}),t.poseIndex=0,t.poseStableFrames=0;let i=t.preparedCaptures.documentFront;t.preparedCaptures=i?{documentFront:i}:{},t.faceEmbeddings={},t.previousPoseBackgroundSignature=null,t.neutralPose=null,t.guidanceCodeState=Xx(),t.correctiveState=Zx(),n.corrective.value=null,t.faceMatchOptions=null,t.hardHumanVerificationId=null,t.faceCaptureConfiguration=null;let{documentFront:a,documentBack:o}=t.captures;t.captures={...a?{documentFront:a}:{},...o?{documentBack:o}:{}}},f=({state:e})=>{e.documentStableFrames=0,e.documentOrientation=null,e.documentFaceEmbeddings=null,e.documentFrontSignature=null,e.identity=null,e.documentCodes=[],delete e.document,e.hardDocumentVerificationId=null,e.documentCaptureConfiguration=null,delete e.preparedCaptures.documentFront;let t={...e.captures};delete t.documentFront,delete t.documentBack,e.captures=t},p=({state:e})=>{e.session+=1,e.flow=null,c({state:e}),$t({element:r.mesh}),n.debug.value=[]},m=({state:e})=>{p({state:e}),u({state:e}),n.error.value=null},h=({state:e})=>{let t=r.video.videoWidth,n=r.video.videoHeight;t&&n&&(e.cameraSize.value={width:t,height:n})},g=async({facingMode:e,state:t})=>{c({state:t});let n=t.session,i=await Qt({facingMode:e,video:r.video});if(t.session!==n)throw Zt({video:r.video}),ie();t.cameraFacingMode.value=i,h({state:t}),s({active:!0,state:t})},_=({flow:e,session:t,state:n})=>n.flow===e&&n.session===t,v=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,y=({options:e})=>GS({poses:e.poses,randomize:e.randomizeFaceSequence??!1}),b=({options:e})=>JSON.stringify({requireEyeLevelCamera:e.requireEyeLevelCamera,poses:e.poses,randomizeFaceSequence:e.randomizeFaceSequence,faceDetector:e.faceDetector,alignment:e.alignment,threshold:e.threshold,language:e.language,maxPitch:e.maxPitch,minPitch:e.minPitch,maxYaw:e.maxYaw,minYaw:e.minYaw,maxRoll:e.maxRoll,requiredFaceStableFrames:e.requiredFaceStableFrames}),x=({options:e})=>JSON.stringify({ocrEngine:e.ocrEngine,language:e.language,minDocumentFaceAreaRatio:e.minDocumentFaceAreaRatio,maxDocumentFaceAreaRatio:e.maxDocumentFaceAreaRatio,minDocumentFaceWidthRatio:e.minDocumentFaceWidthRatio,maxDocumentFaceWidthRatio:e.maxDocumentFaceWidthRatio,minDocumentFaceHeightRatio:e.minDocumentFaceHeightRatio,maxDocumentFaceHeightRatio:e.maxDocumentFaceHeightRatio,minDocumentBoxRatio:e.minDocumentBoxRatio,maxDocumentTextAngleDifference:e.maxDocumentTextAngleDifference,requiredDocumentStableFrames:e.requiredDocumentStableFrames}),S=({state:e,options:t})=>e.faceCaptureConfiguration===b({options:t})&&VS({captures:e.captures,state:e}),C=({state:e,options:t})=>{let n=e.document,r=n!==void 0&&n.document!==`passport`,i=!(!e.captures.documentFront||r&&!e.captures.documentBack),a=e.documentCaptureConfiguration===x({options:t});return!!(n?.valid&&i&&a)},w=({configuration:e})=>{let t=Object.fromEntries(Object.keys(Q).map(t=>[t,e[t]]));return t.language=a({language:e.language}),t},T=async({configuration:e,endpoint:t,state:n,picture:r,sourceIds:i=[],signal:a})=>{let o=VS({captures:n.captures,state:n})?HS({captures:n.captures,state:n}):null;return await QS({clientKey:e.clientKey,apiUrl:e.apiUrl,endpoint:t,documentBack:r?void 0:n.captures.documentBack,documentFront:r?void 0:n.captures.documentFront,faces:o?.faces,options:w({configuration:e}),picture:r,poses:o?.poses,sourceIds:i,threshold:e.threshold,signal:a})},E={options:e,view:t,display:n,isActive:_,notifyCapturesChanged:u,getVerifyHardOptions:w},{runFaceLoop:ee}=BS(E),{runDocumentLoop:D}=_S(E),te=async({state:e,options:t})=>{p({state:e}),d({state:e,options:t}),n.progress.value={completed:0,total:e.faceSequence.length},e.faceCaptureConfiguration=b({options:t}),e.matchOptions={alignment:t.alignment,threshold:t.threshold},e.faceMatchOptions={...e.matchOptions},u({state:e});let i=e.session;e.flow=`face`;try{if(n.feedback.value={flow:`face`,pose:v({state:e}),code:null},await g({facingMode:`user`,state:e}),n.feedback.value={flow:`face`,pose:v({state:e}),code:null},await ee({session:i,state:e,options:t}),e.session!==i)throw ie();if(!VS({captures:e.captures,state:e}))throw Error(M.CAPTURES_INCOMPLETE);let a={...e.captures};return c({state:e}),$t({element:r.mesh}),a}finally{e.session===i&&(n.feedback.value=null)}},ne=async({state:t,options:i=e})=>{p({state:t}),f({state:t}),t.documentCaptureConfiguration=x({options:i}),t.matchOptions={alignment:i.alignment,threshold:i.threshold},u({state:t});let a=t.session;t.flow=`document`;try{if(!_({flow:`document`,session:a,state:t})||(await g({facingMode:`environment`,state:t}),n.feedback.value={flow:`document`,code:null,target:`front`},await D({session:a,state:t,options:i}),t.session!==a))throw ie();if(!t.captures.documentFront||!t.document)throw Error(M.CAPTURES_INCOMPLETE);if(t.document.document!==`passport`&&(t.documentStableFrames=0,t.documentOrientation=null,t.flow=`document`,n.feedback.value={flow:`document`,code:null,target:`back`},await D({session:a,state:t,options:i}),t.session!==a))throw ie();if(!t.document.valid)throw Error(M.DOCUMENT_VALIDATION_FAILED);let e={...t.captures};return c({state:t}),$t({element:r.mesh}),e}finally{t.session===a&&(n.feedback.value=null,$t({element:r.mesh}))}},re=async()=>{let t=e.capabilities.some(e=>e===`verifyDocument`||e===`matchID`),n=[$S(),nC({faceDetector:e.faceDetector}),rC(),...t?[Nx(),aC({engine:`tiny`,language:`latin`}),aC({engine:e.ocrEngine,language:a({language:e.language})}),Iy()]:[],...e.showFaceOverlay||e.showDocumentOverlay?[oS()]:[]];await Promise.all(n);let r=document.createElement(`canvas`);r.width=640,r.height=480;let i=await createImageBitmap(r);try{let e=[tC(i),xx.detectDocumentBox(i),iC()];t&&e.push(eC({frame:i,boundingRect:{x:0,y:0,width:i.width,height:i.height}})),await Promise.all(e)}finally{i.close()}},O=async()=>{let t=e.capabilities.some(e=>e===`verifyDocument`||e===`matchID`),n=[`dd.ort`,rh[e.faceDetector],`fl.ort`,`fe.ort`,`fmu.ort`,`ort-wasm-simd-threaded.mjs`,`ort-wasm-simd-threaded.wasm`,...t?[`do.ort`,`zxing-wasm/reader/index.js`,`zxing-wasm/share.js`,`zxing-wasm/reader/zxing_reader.wasm`]:[],...e.showFaceOverlay||e.showDocumentOverlay?[`faceMeshLines.json`]:[]],r=[xm({filenames:n})];t&&(r.push(xm({filenames:Qm({language:`latin`,engine:`tiny`})})),r.push(xm({filenames:Qm({language:a({language:e.language}),engine:e.ocrEngine})}))),await Promise.all(r)},ie=()=>new DOMException(M.VERIFICATION_CANCELLED,`AbortError`);return{createState:o,stop:m,syncCameraSize:h,captureResult:l,resetFaceFlow:d,resetDocumentFlow:f,hasCompatibleFaceCaptures:S,hasCompatibleDocumentCapture:C,notifyCapturesChanged:u,startFaceFlow:te,startDocumentFlow:ne,startPictureFlow:async({picture:e,state:t,options:r,signal:i})=>{n.error.value=null,i?.throwIfAborted();let a=await wx.imageBitmap({blob:e});try{let e=await tC(a,{forMatch:!0});if(i?.throwIfAborted(),!e.length)throw Error(M.NO_USABLE_CANDIDATES)}finally{a.close()}let o=t.faceCaptureConfiguration===b({options:r});S({state:t,options:r})&&o||await te({state:t,options:r}),i?.throwIfAborted();let s=await wx.imageBitmap({blob:e});try{let[e]=await tC(s,{forMatch:!0});i?.throwIfAborted();let n=e?wx.prepareFace({alignment:r.alignment,face:e,frame:s}):null,a=n?await wx.preparedFaceArtifacts({face:n}):null;i?.throwIfAborted(),a&&(t.preparedCaptures.picture=a.images)}finally{s.close()}u({state:t})},submitHardVerification:T,initializeModels:re,preloadModels:O,showError:({error:e,state:t})=>{Ft({error:e})!==M.VERIFICATION_CANCELLED&&p({state:t}),Ye(()=>{n.activity.value=null,Ft({error:e})===M.VERIFICATION_CANCELLED?n.retry.value=null:n.error.value=e})}}};Px(),a(),It();var sC,cC=async()=>{try{sC??=import(i({filename:`pdf/pdf.mjs`}));let e=await sC;return e.GlobalWorkerOptions.workerSrc=i({filename:`pdf/pdf.worker.mjs`}),e}catch{throw sC=void 0,Error(M.PDF_LOAD_FAILED)}},lC=async({blob:e,signal:t})=>{if(new TextDecoder().decode(await e.slice(0,5).arrayBuffer())!==`%PDF-`)return null;if(e.size>1e7)throw Error(M.REQUEST_TOO_LARGE);t.throwIfAborted();let n=await cC();t.throwIfAborted();let r=new Uint8Array(await e.arrayBuffer()),a=n.getDocument({data:r,cMapUrl:i({filename:`pdf/cmaps/`}),cMapPacked:!0,standardFontDataUrl:i({filename:`pdf/standard_fonts/`}),wasmUrl:i({filename:`pdf/wasm/`})}),o=()=>{a.destroy()};t.addEventListener(`abort`,o,{once:!0});let s;try{let e=await a.promise;t.throwIfAborted();let n=await e.getPage(1),r=n.getViewport({scale:1}),i=n.getViewport({scale:Math.min(1,1200/Math.max(r.width,r.height))}),o=window.document.createElement(`canvas`);o.width=Math.ceil(i.width),o.height=Math.ceil(i.height),await n.render({canvas:o,viewport:i,background:`white`}).promise,t.throwIfAborted(),s=await createImageBitmap(o),o.width=0,o.height=0;let c=await Sx.detectPictureFaces(s,{forMatch:!0});t.throwIfAborted();let l=c[0];if(!l)throw Error(M.NO_USABLE_CANDIDATES);let u=l.boundingRect,d=Math.max(0,Math.floor(u.x-u.width*.25)),f=Math.max(0,Math.floor(u.y-u.height*.25)),p=Math.min(s.width-d,Math.ceil(u.width*1.5)),m=Math.min(s.height-f,Math.ceil(u.height*1.5)),h=new OffscreenCanvas(p,m),g=h.getContext(`2d`);if(!g)throw Error(M.IMAGE_PROCESSING_FAILED);g.drawImage(s,d,f,p,m,0,0,p,m);let _=await h.convertToBlob({type:`image/jpeg`,quality:.95});return t.throwIfAborted(),_}catch(e){throw t.throwIfAborted(),e instanceof Error&&Object.values(M).includes(e.message)?e:e instanceof Error&&e.name===`PasswordException`?Error(M.PDF_PASSWORD_REQUIRED):Error(M.INVALID_PDF)}finally{t.removeEventListener(`abort`,o),s?.close(),await a.destroy()}},uC,dC=t((()=>{Mt(),uC=()=>({activity:$e(null),error:$e(null),retry:$e(null),feedback:$e(null),guidance:$e(null),corrective:$e(null),progress:$e({completed:0,total:0}),success:$e(!1),cameraSize:$e(null),cameraFacingMode:$e(null),debug:$e([]),debugEnabled:$e(!1)})}));dC(),Wb();var fC={...Q,faceDetector:`standard`,apiUrl:`https://api.voltom.io`,language:void 0,clientKey:``,threshold:kb,randomizeFaceSequence:!1,requireEyeLevelCamera:!0,requiredFaceStableFrames:2,requiredDocumentStableFrames:2,showFaceOverlay:!1,showDocumentOverlay:!1,showTextOverlay:!1,faceOverlayColor:`transparent`,faceMeshColor:`#38efb0`,documentOverlayColor:`transparent`,documentBoxColor:`#22d3ee`,documentFaceBoxColor:`#22d3ee`,documentFaceMeshColor:`#38efb0`,textColor:`#22d3ee`,debug:!1,capabilities:[`verifyHuman`,`verifyDocument`,`matchID`,`matchPicture`]};function $(e,t,n,r,i,a){t||={};var o,s,c=t;if(`ref`in c&&typeof e!=`function`)for(s in c={},t)s==`ref`?o=t[s]:c[s]=t[s];var l={type:e,props:c,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:pC,__v:--mC,__i:-1,__u:0};return(i||a)&&(l.__source=i,l.__self=a),O.vnode&&O.vnode(l),l}var pC,mC,hC=t((()=>{xe(),pC=Symbol.for(`pv`),mC=0,Array.isArray})),gC,_C=t((()=>{hC(),gC=({className:e,entries:t,kind:n})=>$(`div`,{className:t.length?e:`hidden`,[`data-${n}-debug`]:``,children:t.map(({label:e,valid:t,value:n})=>$(`div`,{children:[$(`span`,{children:[e,`: `]}),$(`span`,{"data-valid":t===void 0?void 0:String(t),children:n})]},e))})})),vC,yC,bC,xC,SC,CC=t((()=>{hC(),vC=100,yC=2,bC=({total:e})=>vC/e-(e===1?0:yC),xC=({arc:e,index:t,total:n})=>({dasharray:`${e} ${vC-e}`,offset:`${-t*vC/n}`}),SC=({className:e,completed:t,label:n,total:r,variant:i=`bar`})=>{if(i===`ring`){let i=bC({total:r});return $(`svg`,{className:e,"data-pose-progress":``,"data-variant":`ring`,viewBox:`0 0 100 100`,role:`progressbar`,"aria-label":n,"aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":t,children:$(`g`,{transform:`rotate(-90 50 50)`,children:Array.from({length:r},(e,n)=>{let{dasharray:a,offset:o}=xC({arc:i,index:n,total:r});return $(`circle`,{cx:`50`,cy:`50`,r:`50`,pathLength:vC,ref:e=>{e&&(e.setAttribute(`stroke-dasharray`,a),e.setAttribute(`stroke-dashoffset`,o))},"data-pose-progress-step":``,"data-complete":n<t?``:void 0},n)})})})}return $(`div`,{className:e,"data-pose-progress":``,"data-variant":`bar`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":t,children:Array.from({length:r},(e,n)=>$(`span`,{"data-pose-progress-step":``,"data-complete":n<t?``:void 0},n))})}})),wC,TC,EC,DC,OC,kC=t((()=>{hC(),wC={faceLeft:`M 78 50 L 22 50`,faceRight:`M 22 50 L 78 50`,faceUp:`M 50 78 L 50 22`,faceDown:`M 50 22 L 50 78`,faceTiltLeft:`M 68 26 Q 44 34 32 62`,faceTiltRight:`M 32 26 Q 56 34 68 62`},TC=()=>$(`defs`,{children:$(`marker`,{id:`pose-arrowhead`,markerWidth:`6`,markerHeight:`6`,refX:`4.4`,refY:`3`,orient:`auto`,children:$(`path`,{"data-pose-arrowhead":``,d:`M0,0 L6,3 L0,6 Z`})})}),EC=({pose:e})=>{let t=wC[e];return t?$(`path`,{"data-pose-motion":``,d:t,"marker-end":`url(#pose-arrowhead)`}):null},DC=({pose:e})=>e===`faceSmile`?$(`path`,{"data-pose-smile":``,d:`M 15 45 A 35 35 0 0 0 85 45`}):null,OC=({className:e,pose:t})=>$(`svg`,{className:e,"data-pose-arrow":``,"data-pose":t,viewBox:`0 0 100 100`,"aria-hidden":`true`,children:[$(TC,{}),$(EC,{pose:t}),$(DC,{pose:t})]})})),AC,jC=t((()=>{hC(),AC=({className:e,visible:t})=>$(`svg`,{className:e,"data-pose-success":``,"data-visible":t?``:void 0,viewBox:`0 0 100 100`,"aria-hidden":`true`,children:[$(`circle`,{cx:`50`,cy:`50`,r:`44`}),$(`path`,{d:`M29 51 43 65 72 36`,pathLength:`1`})]})})),MC,NC=t((()=>{MC=`/*! tailwindcss v4.3.4 | MIT License | https://tailwindcss.com */
72
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-font-weight:initial}}}[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--theme-canvas:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202020);--theme-surface-subtle:var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#2c2c2c);--theme-text:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-text-muted:var(--lightningcss-light,#626262)var(--lightningcss-dark,#a3a3a3);--theme-text-inverse:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-border:var(--lightningcss-light,#bfbfbf)var(--lightningcss-dark,#606060);--theme-primary:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-primary-hover:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--theme-primary-active:var(--lightningcss-light,#404040)var(--lightningcss-dark,#d4d4d4);--theme-focus:var(--lightningcss-light,#525252)var(--lightningcss-dark,#d4d4d4);--theme-cocoa:var(--lightningcss-light,#6b4423)var(--lightningcss-dark,#d29a63);--theme-mint:var(--lightningcss-light,#116b4c)var(--lightningcss-dark,#38efb0);--theme-cyan:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#22d3ee);--theme-violet:var(--lightningcss-light,#5b21b6)var(--lightningcss-dark,#b69cff);--theme-berry:var(--lightningcss-light,#a21caf)var(--lightningcss-dark,#e879f9);--theme-danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff6b6b);--theme-danger-surface:var(--lightningcss-light,#fee2e2)var(--lightningcss-dark,#451a19);--theme-success:var(--lightningcss-light,#087443)var(--lightningcss-dark,#4ade80);--theme-success-surface:var(--lightningcss-light,#e7f6ee)var(--lightningcss-dark,#123c2b);--theme-warning:var(--lightningcss-light,#a16207)var(--lightningcss-dark,#ffc93c);--theme-warning-surface:var(--lightningcss-light,#fef3c7)var(--lightningcss-dark,#422006)}@media (prefers-color-scheme:dark){[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light: ;--lightningcss-dark:initial}}[data-pose-silhouette],[data-pose-arrow]{display:block;overflow:visible}[data-pose-silhouette] [data-pose-head]{fill:none;stroke:var(--theme-border);stroke-width:1.5px;stroke-dasharray:5 5}[data-pose-silhouette] [data-pose-eye]{fill:var(--theme-text-muted);stroke:none}[data-pose-silhouette] [data-pose-mouth],[data-pose-silhouette] [data-pose-eye-closed],[data-pose-motion]{fill:none;stroke:var(--theme-cyan);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}[data-pose-motion]{stroke-dasharray:6 6;animation:.9s linear infinite pose-motion}[data-pose-arrowhead]{fill:var(--theme-cyan);stroke:none}[data-pose-arrow] [data-pose-motion]{stroke:var(--theme-mint);stroke-width:4px;stroke-dasharray:none;animation:none}[data-pose-arrow] [data-pose-arrowhead]{fill:var(--theme-mint)}[data-pose-arrow] [data-pose-smile]{fill:none;stroke:var(--theme-mint);stroke-width:4px;stroke-linecap:round}[data-pose-progress][data-variant=bar]{gap:4px;width:100%;display:flex}[data-pose-progress][data-variant=bar] [data-pose-progress-step]{background:var(--theme-border);border-radius:9999px;flex:1;height:4px;transition:background .2s}[data-pose-progress][data-variant=bar] [data-pose-progress-step][data-complete]{background:var(--theme-mint)}[data-pose-progress][data-variant=ring]{display:block;overflow:visible}[data-pose-progress][data-variant=ring] [data-pose-progress-step]{fill:none;stroke:var(--theme-border);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}[data-pose-progress][data-variant=ring] [data-pose-progress-step][data-complete]{stroke:var(--theme-mint)}[data-pose-success]{opacity:0;pointer-events:none}[data-pose-success] circle{fill:var(--theme-success-surface);stroke:var(--theme-mint);stroke-width:2px}[data-pose-success] path{fill:none;stroke:var(--theme-mint);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}[data-pose-success][data-visible]{animation:.42s ease-out both pose-success-appear}[data-pose-success][data-visible] path{animation:.24s ease-out 60ms both pose-success-draw}@keyframes pose-motion{to{stroke-dashoffset:-12px}}@keyframes pose-success-appear{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pose-success-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){[data-pose-motion]{animation:none}[data-pose-success][data-visible]{opacity:1}[data-pose-success][data-visible] path{stroke-dashoffset:0}}@layer components{[data-voltom-root]{width:100%;min-height:0;max-width:var(--container-5xl,64rem);padding-block:env(safe-area-inset-top);color:var(--theme-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;gap:.75rem;margin-inline:auto;display:flex;position:relative;overflow:visible}[data-voltom-camera]{background-color:var(--theme-surface);width:100%;aspect-ratio:var(--voltom-camera-ratio,4 / 3);flex-shrink:0;margin-inline:auto;position:relative;overflow:hidden;container-type:size}[data-voltom-camera]>video,[data-voltom-mesh],[data-voltom-overlay]{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}[data-voltom-mesh],[data-voltom-overlay]{object-fit:fill}[data-voltom-mesh]{color:var(--theme-canvas)}[data-voltom-mesh],[data-voltom-overlay],[data-voltom-guide],[data-voltom-ring],[data-voltom-direction],[data-voltom-challenge],[data-voltom-result],[data-voltom-spinner],[data-voltom-feedback]{pointer-events:none}[data-voltom-feedback]{z-index:10;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding-inline:1rem;display:flex;position:absolute;inset:0}[data-voltom-camera][data-mirrored]>video,[data-voltom-camera][data-mirrored] [data-voltom-mesh]{--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}[data-voltom-guide-mode=document]{border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:2px;border-color:var(--theme-border);height:90cqh;margin:auto;display:block;position:absolute;inset:0}[data-voltom-guide-mode=document][data-voltom-guide-orientation=landscape]{aspect-ratio:4/3}[data-voltom-guide-mode=document][data-voltom-guide-orientation=portrait]{aspect-ratio:3/4}[data-voltom-ring-wrap]{pointer-events:none;z-index:5;width:66cqh;height:66cqh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-voltom-ring-wrap]:not([data-voltom-ring-mode=face]){display:none}[data-voltom-ring-wrap] [data-pose-progress]{width:100%;height:100%}[data-voltom-direction]{width:36px;height:36px;color:var(--theme-mint);pointer-events:none;z-index:10;position:absolute;bottom:14cqh;left:50%;transform:translate(-50%)}[data-voltom-direction]:not([data-voltom-direction-pose]){display:none}[data-voltom-debug]{pointer-events:none;z-index:10;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem;width:200px;display:none;position:absolute;top:.75rem;left:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{background-color:color-mix(in oklab, var(--theme-surface) 70%, transparent)}}[data-voltom-debug]{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);--tw-leading:calc(.25rem * 4);color:var(--theme-text-muted);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.25rem;padding-inline:.5rem;font-size:10px;line-height:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-debug]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}[data-voltom-debug]:not(.hidden){display:block}[data-voltom-camera]>[data-pose-success]{z-index:30;transform-origin:50%;width:96px;height:96px;margin:auto;position:absolute;inset:0}[data-voltom-debug] [data-valid=true]{color:var(--theme-mint)}[data-voltom-debug] [data-valid=false]{color:var(--theme-danger)}[data-voltom-overlay][data-idle]{background-color:var(--theme-canvas);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]{background-color:color-mix(in oklab, var(--theme-canvas) 70%, transparent)}}[data-voltom-overlay][data-idle]:before{background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]:before{background-color:color-mix(in oklab, var(--theme-surface) 80%, transparent)}}[data-voltom-overlay][data-idle]:before{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));color:var(--theme-cyan);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );content:attr(data-voltom-overlay-label);padding-block:.75rem;padding-inline:1rem}[data-voltom-overlay][data-error]:before{content:none}[data-voltom-challenge]{z-index:10;background-color:var(--theme-surface);max-width:calc(100vw - 1.5rem);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);inset-inline:.75rem;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding-block:.5rem;padding-inline:.75rem;display:flex;position:absolute;top:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-challenge]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-challengeText]{text-align:center;font-size:1rem;line-height:var(--tw-leading,var(--text-base--line-height,calc(1.5 / 1)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);flex-direction:column;display:flex}[data-voltom-challengeReason]{font-size:.875rem;line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--theme-warning)}[data-voltom-spinner]{z-index:20;background-color:var(--theme-canvas);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]{background-color:color-mix(in oklab, var(--theme-canvas) 90%, transparent)}}[data-voltom-spinner]{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--theme-text);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}[data-voltom-spinner]:before{width:2rem;height:2rem;animation:var(--animate-spin,spin 1s linear infinite);border-style:var(--tw-border-style);border-width:4px;border-color:var(--theme-border);border-radius:2147483647px;display:block}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]:before{border-color:color-mix(in oklab, var(--theme-border) 30%, transparent)}}[data-voltom-spinner]:before{border-top-color:var(--theme-cyan)}@media (prefers-reduced-motion:reduce){[data-voltom-spinner]:before{animation:none}}[data-voltom-spinner]:before{content:""}[data-voltom-result]{pointer-events:auto;width:fit-content;max-width:100%;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );border-radius:.375rem;padding-block:.5rem;padding-inline:1rem}[data-voltom-retry]{pointer-events:auto;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{background-color:color-mix(in oklab, var(--theme-surface) 90%, transparent)}}[data-voltom-retry]{font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.75rem;padding-inline:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-retry]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media (hover:hover){[data-voltom-retry]:hover{background-color:var(--theme-surface-subtle)}}[data-voltom-result].is-success{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-success)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-success{border-color:color-mix(in oklab, var(--theme-success) 50%, transparent)}}[data-voltom-result].is-success{background-color:var(--theme-success-surface);color:var(--theme-success)}[data-voltom-result].is-failure{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-danger)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-failure{border-color:color-mix(in oklab, var(--theme-danger) 50%, transparent)}}[data-voltom-result].is-failure{background-color:var(--theme-danger-surface);color:var(--theme-danger)}[data-voltom-root] .hidden{display:none}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}`})),PC=n({createVerificationDisplay:()=>uC,createVerificationView:()=>LC}),FC,IC,LC,RC=t((()=>{hh(),xe(),qe(),_C(),It(),Kt(),CC(),kC(),jC(),iS(),KS(),AS(),NC(),hC(),FC=new Set([`FACE_NOT_DETECTED`,`FACE_IN_POLYGON`,`FACE_TOO_SMALL`,`FACE_CENTER_MOVE_LEFT`,`FACE_CENTER_MOVE_RIGHT`,`FACE_CENTER_MOVE_UP`,`FACE_CENTER_MOVE_DOWN`,`FACE_CAMERA_ALIGNMENT_REQUIRED`]),IC=({className:e,display:t,elements:n,options:r})=>{let[i,a]=Ce(!0),{translate:o,translateError:s}=Wt({language:r.language}),c=t.feedback.value,l=t.activity.value,d=l&&l!==`matching`?l.message:``,f=l===`matching`?o(`checkingFaceMatch`):d,p=t.error.value,m=t.cameraSize.value,h=c&&c.flow===`face`?c.pose:void 0,g=c&&c.flow===`face`?c.code:null,_=g&&FC.has(g)?g:null;t.guidance.value;let v=t.progress.value,y=t.corrective.value,b=h?rS({pose:h,corrective:y}):null,x=o(`lookStraight`),S=``;if(b&&(x=o(b.primary),S=b.corrective?o(b.corrective):``),_&&(x=o(kS({code:_})),S=``),c&&c.flow===`document`){let e=o(OS({target:c.target}));x=(c.code&&c.code!==`DOCUMENT_NOT_DETECTED`?o(kS({code:c.code})):``)||e}let C=m&&m.width<m.height?`portrait`:`landscape`;return $(u,{children:[$(`style`,{"data-voltom-styles":``,children:MC}),$(`div`,{className:e,ref:n.camera,"data-voltom":``,"data-voltom-camera":``,"data-mirrored":t.cameraFacingMode.value===`user`?``:void 0,style:{"--voltom-camera-ratio":m?`${m.width} / ${m.height}`:void 0},children:[$(`video`,{ref:n.video,"data-voltom-video":``,playsInline:!0,muted:!0,autoPlay:!0,onPlaying:()=>a(!1),onEmptied:()=>a(!0)}),$(`canvas`,{ref:n.mesh,"data-voltom-mesh":``}),$(`div`,{"data-voltom-overlay":``,"data-voltom-overlay-label":o(`readyToStart`),"data-idle":i?``:void 0,"data-error":p?``:void 0}),$(`div`,{"data-voltom-guide":``,"aria-hidden":`true`,"data-voltom-guide-mode":c?.flow,"data-voltom-guide-orientation":c?.flow===`document`?C:void 0}),$(`div`,{"data-voltom-ring-wrap":``,"aria-hidden":`true`,"data-voltom-ring-mode":c?.flow??``,children:$(SC,{completed:v.completed,total:v.total,variant:`ring`})}),!(!h||_)&&$(OC,{"data-voltom-direction":``,"data-voltom-direction-pose":h,pose:h}),$(AC,{visible:t.success.value}),$(gC,{kind:`voltom`,entries:t.debug.value}),$(`div`,{"data-voltom-spinner":``,className:l?void 0:`hidden`,role:`status`,"aria-label":f,children:d}),$(`div`,{"data-voltom-challenge":h??(c?`document`:void 0),className:c?void 0:`hidden`,children:$(`span`,{"data-voltom-challengeText":``,role:`status`,"aria-live":`polite`,children:[$(`span`,{children:x}),!!S&&$(`span`,{"data-voltom-challengeReason":``,children:S})]})}),$(`div`,{"data-voltom-feedback":``,children:[$(`div`,{"data-voltom-result":``,className:p?`is-failure`:`hidden`,role:`status`,children:p?s({error:p}):``}),$(`button`,{"data-voltom-retry":``,className:p&&t.retry.value?void 0:`hidden`,type:`button`,"aria-label":o(`retry`),onClick:async()=>{let e=t.retry.value;if(t.error.value=null,e)try{await e()}catch{return}},children:o(`retry`)})]})]})]})},LC=({root:e,options:t,display:n})=>{let r=({language:e})=>e??Ht(),i=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,a=0,o=({entries:e,state:t})=>{if(!n.debugEnabled.value||!t.flow)return;let r=performance.now();r-a<100||(a=r,n.debug.value=e)},s=()=>n.cameraSize.value?`${n.cameraSize.value.width}x${n.cameraSize.value.height}`:`—`,c=()=>{let e=fh(),t=e.threading.startsWith(`multi`)?`multi`:`single`;return[{label:`Inference`,value:e.inference},{label:`Threading`,value:t}]},u=({face:e,faceInPolygon:a,processingTimeMilliseconds:l,state:u})=>{let d=e?e.pitch:null,f=e?e.yaw:null,p=e?e.roll:null,m=e?NS({face:e,name:`mouthSmileLeft`}):0,h=e?NS({face:e,name:`mouthSmileRight`}):0,g=e?NS({face:e,name:`eyeBlinkLeft`}):0,_=e?NS({face:e,name:`eyeBlinkRight`}):0,v=d!==null&&d>=t.minPitch&&d<=t.maxPitch,y=f!==null&&f>=t.minYaw&&f<=t.maxYaw,b=i({state:u}),x=p!==null&&(b===`faceTiltLeft`?p>t.maxRoll:b===`faceTiltRight`?p<-t.maxRoll:Math.abs(p)<=t.maxRoll),S=e=>e===null?`—`:e.toFixed(2),C=(e,t)=>`${e.toFixed(2)}|${t.toFixed(2)}`;o({state:u,entries:[{label:`Flow`,value:`FACE`},...c(),{label:`Face`,valid:!!e&&!a,value:e?a?`In polygon`:`Yes`:`No`},{label:`Pitch`,valid:v,value:S(d)},{label:`Yaw`,valid:y,value:S(f)},{label:`Roll`,valid:x,value:S(p)},{label:`Smile`,valid:m>=.5&&h>=.5,value:C(m,h)},{label:`Wink left`,valid:g>=.5&&_<=.35&&g>=_+.15,value:C(g,_)},{label:`Stable frames`,valid:u.poseStableFrames>0,value:`${u.poseStableFrames}/${t.requiredFaceStableFrames}`},{label:`Language`,value:r({language:t.language})},{label:`Camera`,value:s()},{label:`Facing mode`,value:n.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${l.toFixed(0)} ms`}]})},d=({analysis:e,sideComparison:i,isBack:a,processingTimeMilliseconds:l,state:u})=>{let{orientation:d,alignment:f,documentKind:p,face:m,faceContained:h,detection:g}=e,{diagnostics:_,isBlurry:v,sharpness:y}=e.documentAnalysis,b=e.text.text,x={label:`Stable frames`,valid:u.documentStableFrames>0,value:`${u.documentStableFrames}/${t.requiredDocumentStableFrames}`},S=_?Object.keys(_.rejected)[0]:void 0,C=[{label:`Sharpness`,valid:v===null?void 0:!v,value:y===null?`—`:String(Math.round(y))},{label:`Rectangle`,valid:g?!0:!S&&void 0,value:g?`yes`:S??`no`},{label:`Orientation`,value:d?`${d.rotation}°`:`—`}],w=[{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Document type`,value:p??``},{label:`Distinct from front`,valid:i?.distinct,value:i?i.distinct?`yes`:`no`:`—`}],T=[{label:`Face`,valid:!!m,value:m?`yes`:`no`},{label:`Face contained`,valid:h,value:h?`yes`:`no`},{label:`Face area`,valid:f.faceAreaValid,value:`${(f.faceAreaRatio*100).toFixed(2)}%`},{label:`Face size`,valid:f.faceDimensionsValid,value:f.faceDimensionsValid?`yes`:`no`},{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Text parallel`,valid:f.textParallel,value:f.textParallel?`yes`:`no`},{label:`Text beside face`,valid:f.faceAdjacentTextLineCount>=2,value:String(f.faceAdjacentTextLineCount)},{label:`Document type`,value:p??``}];o({state:u,entries:[{label:`Flow`,value:a?`DOCUMENT BACK`:`DOCUMENT FRONT`},...c(),...C,...a?w:T,x,{label:`Language`,value:r({language:t.language})},{label:`Camera`,value:s()},{label:`Facing mode`,value:n.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${l.toFixed(0)} ms`}]})},f={camera:l(),video:l(),mesh:l()};if(e.replaceChildren(),e.dataset.voltomRoot=``,re($(IC,{display:n,elements:f,options:t}),e),!f.camera.current||!f.video.current||!f.mesh.current)throw Error(M.UI_ELEMENT_NOT_FOUND);return{ref:{root:e,camera:f.camera.current,video:f.video.current,mesh:f.mesh.current},collectFaceDebug:u,collectDocumentDebug:d}}}));Mt(),xe(),It(),Kt(),on(),dC();var zC=class{options;view;root;useUi;videoElement;resizeListener;display=uC();translator;flows;state;lastPicture;preparation=null;preloading=null;preparationController=null;prepared=!1;disposed=!1;operationController=null;subscriptions=new Set;uiAttached=!1;notifyStatus({status:e}){this.root.dispatchEvent(new CustomEvent(`voltom:${e}`))}showSpinner({message:e=this.translator.translate(`checkingFaceMatch`)}={}){this.display.activity.value={message:e}}hideSpinner(){this.display.activity.value=null}async runWithSpinner({task:e,message:t}){this.showSpinner({message:t});try{return await e()}finally{this.hideSpinner()}}constructor(e){let{root:t,video:n,ui:r,...i}=e,a=r??!!t;if(a&&!t||!a&&!n)throw Error(M.INVALID_OPTIONS);if(!i.clientKey)throw Error(M.CLIENT_KEY_REQUIRED);this.options=Object.freeze({...fC,...i,requireEyeLevelCamera:i.requireEyeLevelCamera??!0,capabilities:Object.freeze([...i.capabilities??fC.capabilities]),poses:Array.isArray(i.poses)?Object.freeze([...i.poses]):i.poses}),this.root=t??document.createElement(`div`),this.useUi=a,this.videoElement=n??document.createElement(`video`),this.translator=Wt({language:this.options.language}),this.view={ref:{root:this.root,camera:document.createElement(`div`),video:this.videoElement,mesh:document.createElement(`canvas`)},collectFaceDebug:()=>{},collectDocumentDebug:()=>{}},this.flows=oC({options:this.options,view:this.view,display:this.display}),this.lastPicture=null,this.state=this.flows.createState(),this.resizeListener=()=>this.flows.syncCameraSize({state:this.state}),this.videoElement.addEventListener(`resize`,this.resizeListener)}async preload(){if(this.disposed)throw Error(M.SDK_NOT_READY);if(this.preloading)return this.preloading;let e=(async()=>{await Vt({language:this.options.language}),await this.flows.preloadModels()})();this.preloading=e;try{if(await e,this.disposed)throw Error(M.SDK_NOT_READY)}catch(t){throw this.preloading===e&&(this.preloading=null),t}}async prepare(){if(this.disposed)throw Error(M.SDK_NOT_READY);if(this.preparation)return this.preparation;let e=new AbortController;this.preparationController=e;let t=(async()=>{await this.preload(),await this.attachUi(),await this.runWithSpinner({task:async()=>{if(await XS({clientKey:this.options.clientKey,apiUrl:this.options.apiUrl,signal:e.signal}),await ZS({apiUrl:this.options.apiUrl}),await this.flows.initializeModels(),e.signal.throwIfAborted(),this.disposed)throw Error(M.SDK_NOT_READY)},message:this.translator.translate(`preparingModels`)})})();this.preparation=t;try{await t,this.prepared=!0,this.preparationController===e&&(this.preparationController=null)}catch(n){throw this.preparation===t&&(this.preparation=null),this.preparationController===e&&(this.preparationController=null),n}}async attachUi(){if(!this.useUi||this.uiAttached)return;let{createVerificationView:e}=await Promise.resolve().then(()=>(RC(),PC));if(this.disposed)throw Error(M.SDK_NOT_READY);let t=e({root:this.root,options:this.options,display:this.display});this.videoElement.removeEventListener(`resize`,this.resizeListener),Object.assign(this.view.ref,t.ref),this.view.collectFaceDebug=t.collectFaceDebug,this.view.collectDocumentDebug=t.collectDocumentDebug,this.videoElement=this.view.ref.video,this.videoElement.addEventListener(`resize`,this.resizeListener),this.uiAttached=!0}async submitHardVerification(e){let t=e.endpoint===`/verification/document`?this.translator.translate(`checkingDocument`):void 0;return await this.runWithSpinner({task:()=>this.flows.submitHardVerification({...e,signal:e.signal??this.operationController?.signal}),message:t})}async caniuse(){return await Xt()}async runOperation({retry:e,task:t,onError:n,capability:r,settings:i}){if(this.disposed||!this.prepared)throw Error(M.SDK_NOT_READY);if(!this.options.capabilities.includes(r))throw Error(M.SDK_CAPABILITY_NOT_CONFIGURED);if(this.operationController)throw Error(M.INVALID_OPTIONS);let{signal:a,...o}=i,s=Object.freeze({...this.options,...o,poses:Array.isArray(o.poses)?Object.freeze([...o.poses]):o.poses??this.options.poses}),c=new AbortController;this.operationController=c;let l=()=>c.abort();a?.addEventListener(`abort`,l,{once:!0}),a?.aborted&&l(),c.signal.addEventListener(`abort`,()=>this.flows.stop({state:this.state}),{once:!0}),this.notifyStatus({status:`in-progress`}),Ye(()=>{this.display.retry.value=e,this.display.error.value=null,this.display.debugEnabled.value=s.debug,s.debug||(this.display.debug.value=[])});try{return c.signal.throwIfAborted(),await t({options:s,signal:c.signal})}catch(e){let t=c.signal.aborted?Error(M.VERIFICATION_CANCELLED,{cause:e}):e;throw n&&await n({error:t,options:s,signal:c.signal}),this.disposed||this.flows.showError({error:t,state:this.state}),t}finally{this.notifyStatus({status:`ready`}),a?.removeEventListener(`abort`,l),this.display.debugEnabled.value=this.options.debug,this.operationController===c&&(this.operationController=null)}}async verifyHuman(e={}){return await this.verifyCapture({flow:`human`,...e})}async verifyDocument(e={}){return await this.verifyCapture({flow:`document`,...e})}async verifyCapture({flow:e,...t}){let n=({options:t})=>{e===`human`?this.flows.resetFaceFlow({state:this.state,options:t}):this.flows.resetDocumentFlow({state:this.state}),this.flows.notifyCapturesChanged({state:this.state})};return await this.runOperation({capability:e===`human`?`verifyHuman`:`verifyDocument`,settings:t,retry:()=>this.verifyCapture({flow:e,...t,signal:void 0}),onError:async({error:t,options:r})=>{(e===`human`?this.state.faceCaptureConfiguration!==null:this.state.documentCaptureConfiguration!==null)&&Ft({error:t})!==M.VERIFICATION_CANCELLED&&n({options:r})},task:async({options:t,signal:r})=>{r.throwIfAborted(),await(e===`human`?this.flows.startFaceFlow:this.flows.startDocumentFlow)({state:this.state,options:t}),r.throwIfAborted();let i=await this.submitHardVerification({configuration:t,endpoint:`/verification/${e}`,state:this.state}),a=e===`human`?`hardHumanVerificationId`:`hardDocumentVerificationId`;return this.state[a]=i.verificationId,i.outcome!==`pass`||i.matched!==!0?(this.state[a]=null,n({options:t}),i):(this.display.retry.value=null,i)}})}async ensureHumanVerification({options:e,signal:t}){if(t?.throwIfAborted(),this.flows.hasCompatibleFaceCaptures({state:this.state,options:e})||await this.flows.startFaceFlow({state:this.state,options:e}),t?.throwIfAborted(),this.state.hardHumanVerificationId)return null;let n=await this.submitHardVerification({configuration:e,endpoint:`/verification/human`,state:this.state}),r=n.outcome===`pass`&&n.matched===!0;return this.state.hardHumanVerificationId=r?n.verificationId:null,r?null:n}async matchID(e={}){return await this.runOperation({capability:`matchID`,settings:e,retry:()=>this.matchID({...e,signal:void 0}),task:async({options:e,signal:t})=>{t.throwIfAborted();let n=await this.ensureHumanVerification({options:e,signal:t});if(n)return n;if(t.throwIfAborted(),this.flows.hasCompatibleDocumentCapture({state:this.state,options:e})||await this.flows.startDocumentFlow({state:this.state,options:e}),!this.state.hardDocumentVerificationId){t.throwIfAborted();let n=await this.submitHardVerification({configuration:e,endpoint:`/verification/document`,state:this.state});if(this.state.hardDocumentVerificationId=n.verificationId,n.outcome!==`pass`||n.matched!==!0)return this.state.hardDocumentVerificationId=null,n}let r=await this.submitHardVerification({configuration:e,endpoint:`/verification/id`,state:this.state,sourceIds:[this.state.hardHumanVerificationId,this.state.hardDocumentVerificationId]});return r.outcome!==`pass`||r.matched!==!0||(this.display.retry.value=null),r}})}async matchPicture(e,t={}){return this.lastPicture=e,await this.runOperation({capability:`matchPicture`,settings:t,retry:async()=>{this.lastPicture&&await this.matchPicture(this.lastPicture,{...t,signal:void 0})},task:async({options:t,signal:n})=>{n.throwIfAborted();let r=await lC({blob:e,signal:n})??await nn({blob:e});if(n.throwIfAborted(),!this.state.hardHumanVerificationId){let e=await this.ensureHumanVerification({options:t,signal:n});if(e)return e}await this.flows.startPictureFlow({picture:r,state:this.state,options:t,signal:n}),n.throwIfAborted();let i=await this.submitHardVerification({configuration:t,endpoint:`/verification/picture`,state:this.state,picture:r,sourceIds:[this.state.hardHumanVerificationId]});return i.outcome!==`pass`||i.matched!==!0||(this.display.retry.value=null),i}})}stop(){this.operationController?.abort(new DOMException(M.VERIFICATION_CANCELLED,`AbortError`)),this.flows.stop({state:this.state}),this.display.retry.value=null,this.notifyStatus({status:`ready`})}dispose(){if(!this.disposed){this.disposed=!0,this.preparationController?.abort(),this.stop();for(let e of this.subscriptions)e();this.subscriptions.clear(),this.videoElement.removeEventListener(`resize`,this.resizeListener),re(null,this.root),this.state.captures={},this.state.preparedCaptures={},this.state.faceEmbeddings={},this.state.documentCodes=[],this.state.identity=null,this.state.hardHumanVerificationId=null,this.state.hardDocumentVerificationId=null,this.state.faceCaptureConfiguration=null,this.state.documentCaptureConfiguration=null,delete this.state.document,this.lastPicture=null}}forgetHuman(){if(this.disposed)throw Error(M.SDK_NOT_READY);this.flows.resetFaceFlow({state:this.state}),this.display.error.value=null,this.flows.notifyCapturesChanged({state:this.state})}forgetDocument(){if(this.disposed)throw Error(M.SDK_NOT_READY);this.flows.resetDocumentFlow({state:this.state}),this.display.error.value=null,this.flows.notifyCapturesChanged({state:this.state})}getState(){return{activity:this.display.activity.value,error:this.display.error.value,retryAvailable:this.display.retry.value!==null,feedback:this.display.feedback.value,debug:this.display.debug.value}}subscribe(e){if(this.disposed)throw Error(M.SDK_NOT_READY);let t=lt(()=>e(this.getState()));return this.subscriptions.add(t),()=>{t(),this.subscriptions.delete(t)}}};a();var BC=globalThis.document?.currentScript,VC=globalThis.HTMLScriptElement&&BC instanceof globalThis.HTMLScriptElement?BC.src:globalThis.location.href;r({moduleUrl:VC}),globalThis.VoltomVerify=zC})();