var Dy=Object.defineProperty;var My=(s,d,m)=>d in s?Dy(s,d,{enumerable:!0,configurable:!0,writable:!0,value:m}):s[d]=m;var ku=(s,d,m)=>My(s,typeof d!="symbol"?d+"":d,m);(function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))r(g);new MutationObserver(g=>{for(const p of g)if(p.type==="childList")for(const z of p.addedNodes)z.tagName==="LINK"&&z.rel==="modulepreload"&&r(z)}).observe(document,{childList:!0,subtree:!0});function m(g){const p={};return g.integrity&&(p.integrity=g.integrity),g.referrerPolicy&&(p.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?p.credentials="include":g.crossOrigin==="anonymous"?p.credentials="omit":p.credentials="same-origin",p}function r(g){if(g.ep)return;g.ep=!0;const p=m(g);fetch(g.href,p)}})();var ys={exports:{}},zn={};/** * @license React * react-jsx-runtime.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Ho;function Hy(){if(Ho)return zn;Ho=1;var s=Symbol.for("react.transitional.element"),d=Symbol.for("react.fragment");function m(r,g,p){var z=null;if(p!==void 0&&(z=""+p),g.key!==void 0&&(z=""+g.key),"key"in g){p={};for(var H in g)H!=="key"&&(p[H]=g[H])}else p=g;return g=p.ref,{$$typeof:s,type:r,key:z,ref:g!==void 0?g:null,props:p}}return zn.Fragment=d,zn.jsx=m,zn.jsxs=m,zn}var Bo;function By(){return Bo||(Bo=1,ys.exports=Hy()),ys.exports}var c=By(),gs={exports:{}},te={};/** * @license React * react.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Ro;function Ry(){if(Ro)return te;Ro=1;var s=Symbol.for("react.transitional.element"),d=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),p=Symbol.for("react.consumer"),z=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),O=Symbol.for("react.activity"),T=Symbol.iterator;function _(y){return y===null||typeof y!="object"?null:(y=T&&y[T]||y["@@iterator"],typeof y=="function"?y:null)}var Y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},F=Object.assign,J={};function B(y,D,L){this.props=y,this.context=D,this.refs=J,this.updater=L||Y}B.prototype.isReactComponent={},B.prototype.setState=function(y,D){if(typeof y!="object"&&typeof y!="function"&&y!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,y,D,"setState")},B.prototype.forceUpdate=function(y){this.updater.enqueueForceUpdate(this,y,"forceUpdate")};function G(){}G.prototype=B.prototype;function ce(y,D,L){this.props=y,this.context=D,this.refs=J,this.updater=L||Y}var oe=ce.prototype=new G;oe.constructor=ce,F(oe,B.prototype),oe.isPureReactComponent=!0;var pe=Array.isArray;function ge(){}var $={H:null,A:null,T:null,S:null},ee=Object.prototype.hasOwnProperty;function k(y,D,L){var Z=L.ref;return{$$typeof:s,type:y,key:D,ref:Z!==void 0?Z:null,props:L}}function le(y,D){return k(y.type,D,y.props)}function I(y){return typeof y=="object"&&y!==null&&y.$$typeof===s}function se(y){var D={"=":"=0",":":"=2"};return"$"+y.replace(/[=:]/g,function(L){return D[L]})}var be=/\/+/g;function De(y,D){return typeof y=="object"&&y!==null&&y.key!=null?se(""+y.key):D.toString(36)}function Q(y){switch(y.status){case"fulfilled":return y.value;case"rejected":throw y.reason;default:switch(typeof y.status=="string"?y.then(ge,ge):(y.status="pending",y.then(function(D){y.status==="pending"&&(y.status="fulfilled",y.value=D)},function(D){y.status==="pending"&&(y.status="rejected",y.reason=D)})),y.status){case"fulfilled":return y.value;case"rejected":throw y.reason}}throw y}function b(y,D,L,Z,ne){var fe=typeof y;(fe==="undefined"||fe==="boolean")&&(y=null);var Ee=!1;if(y===null)Ee=!0;else switch(fe){case"bigint":case"string":case"number":Ee=!0;break;case"object":switch(y.$$typeof){case s:case d:Ee=!0;break;case w:return Ee=y._init,b(Ee(y._payload),D,L,Z,ne)}}if(Ee)return ne=ne(y),Ee=Z===""?"."+De(y,0):Z,pe(ne)?(L="",Ee!=null&&(L=Ee.replace(be,"$&/")+"/"),b(ne,D,L,"",function(Ma){return Ma})):ne!=null&&(I(ne)&&(ne=le(ne,L+(ne.key==null||y&&y.key===ne.key?"":(""+ne.key).replace(be,"$&/")+"/")+Ee)),D.push(ne)),1;Ee=0;var Pe=Z===""?".":Z+":";if(pe(y))for(var qe=0;qe>>1,xe=b[ae];if(0>>1;aeg(L,V))Zg(ne,L)?(b[ae]=ne,b[Z]=V,ae=Z):(b[ae]=L,b[D]=V,ae=D);else if(Zg(ne,V))b[ae]=ne,b[Z]=V,ae=Z;else break e}}return R}function g(b,R){var V=b.sortIndex-R.sortIndex;return V!==0?V:b.id-R.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var p=performance;s.unstable_now=function(){return p.now()}}else{var z=Date,H=z.now();s.unstable_now=function(){return z.now()-H}}var A=[],v=[],w=1,O=null,T=3,_=!1,Y=!1,F=!1,J=!1,B=typeof setTimeout=="function"?setTimeout:null,G=typeof clearTimeout=="function"?clearTimeout:null,ce=typeof setImmediate<"u"?setImmediate:null;function oe(b){for(var R=m(v);R!==null;){if(R.callback===null)r(v);else if(R.startTime<=b)r(v),R.sortIndex=R.expirationTime,d(A,R);else break;R=m(v)}}function pe(b){if(F=!1,oe(b),!Y)if(m(A)!==null)Y=!0,ge||(ge=!0,se());else{var R=m(v);R!==null&&Q(pe,R.startTime-b)}}var ge=!1,$=-1,ee=5,k=-1;function le(){return J?!0:!(s.unstable_now()-kb&&le());){var ae=O.callback;if(typeof ae=="function"){O.callback=null,T=O.priorityLevel;var xe=ae(O.expirationTime<=b);if(b=s.unstable_now(),typeof xe=="function"){O.callback=xe,oe(b),R=!0;break l}O===m(A)&&r(A),oe(b)}else r(A);O=m(A)}if(O!==null)R=!0;else{var y=m(v);y!==null&&Q(pe,y.startTime-b),R=!1}}break e}finally{O=null,T=V,_=!1}R=void 0}}finally{R?se():ge=!1}}}var se;if(typeof ce=="function")se=function(){ce(I)};else if(typeof MessageChannel<"u"){var be=new MessageChannel,De=be.port2;be.port1.onmessage=I,se=function(){De.postMessage(null)}}else se=function(){B(I,0)};function Q(b,R){$=B(function(){b(s.unstable_now())},R)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(b){b.callback=null},s.unstable_forceFrameRate=function(b){0>b||125ae?(b.sortIndex=V,d(v,b),m(A)===null&&b===m(v)&&(F?(G($),$=-1):F=!0,Q(pe,V-ae))):(b.sortIndex=xe,d(A,b),Y||_||(Y=!0,ge||(ge=!0,se()))),b},s.unstable_shouldYield=le,s.unstable_wrapCallback=function(b){var R=T;return function(){var V=T;T=R;try{return b.apply(this,arguments)}finally{T=V}}}})(ps)),ps}var Lo;function wy(){return Lo||(Lo=1,Ss.exports=qy()),Ss.exports}var bs={exports:{}},Ie={};/** * @license React * react-dom.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Yo;function Ly(){if(Yo)return Ie;Yo=1;var s=Us();function d(A){var v="https://react.dev/errors/"+A;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(d){console.error(d)}}return s(),bs.exports=Ly(),bs.exports}/** * @license React * react-dom-client.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Xo;function Yy(){if(Xo)return _n;Xo=1;var s=wy(),d=Us(),m=lm();function r(e){var l="https://react.dev/errors/"+e;if(1xe||(e.current=ae[xe],ae[xe]=null,xe--)}function L(e,l){xe++,ae[xe]=e.current,e.current=l}var Z=y(null),ne=y(null),fe=y(null),Ee=y(null);function Pe(e,l){switch(L(fe,l),L(ne,e),L(Z,null),l.nodeType){case 9:case 11:e=(e=l.documentElement)&&(e=e.namespaceURI)?to(e):0;break;default:if(e=l.tagName,l=l.namespaceURI)l=to(l),e=ao(l,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}D(Z),L(Z,e)}function qe(){D(Z),D(ne),D(fe)}function Ma(e){e.memoizedState!==null&&L(Ee,e);var l=Z.current,t=ao(l,e.type);l!==t&&(L(ne,e),L(Z,t))}function On(e){ne.current===e&&(D(Z),D(ne)),Ee.current===e&&(D(Ee),En._currentValue=V)}var Fu,Cs;function zt(e){if(Fu===void 0)try{throw Error()}catch(t){var l=t.stack.trim().match(/\n( *(at )?)/);Fu=l&&l[1]||"",Cs=-1)":-1n||o[a]!==j[n]){var U=` `+o[a].replace(" at new "," at ");return e.displayName&&U.includes("")&&(U=U.replace("",e.displayName)),U}while(1<=a&&0<=n);break}}}finally{Iu=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?zt(t):""}function fm(e,l){switch(e.tag){case 26:case 27:case 5:return zt(e.type);case 16:return zt("Lazy");case 13:return e.child!==l&&l!==null?zt("Suspense Fallback"):zt("Suspense");case 19:return zt("SuspenseList");case 0:case 15:return Pu(e.type,!1);case 11:return Pu(e.type.render,!1);case 1:return Pu(e.type,!0);case 31:return zt("Activity");default:return""}}function Ds(e){try{var l="",t=null;do l+=fm(e,t),t=e,e=e.return;while(e);return l}catch(a){return` Error generating stack: `+a.message+` `+a.stack}}var ei=Object.prototype.hasOwnProperty,li=s.unstable_scheduleCallback,ti=s.unstable_cancelCallback,rm=s.unstable_shouldYield,dm=s.unstable_requestPaint,sl=s.unstable_now,om=s.unstable_getCurrentPriorityLevel,Ms=s.unstable_ImmediatePriority,Hs=s.unstable_UserBlockingPriority,Cn=s.unstable_NormalPriority,mm=s.unstable_LowPriority,Bs=s.unstable_IdlePriority,hm=s.log,ym=s.unstable_setDisableYieldValue,Ha=null,fl=null;function et(e){if(typeof hm=="function"&&ym(e),fl&&typeof fl.setStrictMode=="function")try{fl.setStrictMode(Ha,e)}catch{}}var rl=Math.clz32?Math.clz32:Sm,gm=Math.log,vm=Math.LN2;function Sm(e){return e>>>=0,e===0?32:31-(gm(e)/vm|0)|0}var Dn=256,Mn=262144,Hn=4194304;function _t(e){var l=e&42;if(l!==0)return l;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Bn(e,l,t){var a=e.pendingLanes;if(a===0)return 0;var n=0,u=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var f=a&134217727;return f!==0?(a=f&~u,a!==0?n=_t(a):(i&=f,i!==0?n=_t(i):t||(t=f&~e,t!==0&&(n=_t(t))))):(f=a&~u,f!==0?n=_t(f):i!==0?n=_t(i):t||(t=a&~e,t!==0&&(n=_t(t)))),n===0?0:l!==0&&l!==n&&(l&u)===0&&(u=n&-n,t=l&-l,u>=t||u===32&&(t&4194048)!==0)?l:n}function Ba(e,l){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&l)===0}function pm(e,l){switch(e){case 1:case 2:case 4:case 8:case 64:return l+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Rs(){var e=Hn;return Hn<<=1,(Hn&62914560)===0&&(Hn=4194304),e}function ai(e){for(var l=[],t=0;31>t;t++)l.push(e);return l}function Ra(e,l){e.pendingLanes|=l,l!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bm(e,l,t,a,n,u){var i=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var f=e.entanglements,o=e.expirationTimes,j=e.hiddenUpdates;for(t=i&~t;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Nm=/[\n"\\]/g;function bl(e){return e.replace(Nm,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function fi(e,l,t,a,n,u,i,f){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),l!=null?i==="number"?(l===0&&e.value===""||e.value!=l)&&(e.value=""+pl(l)):e.value!==""+pl(l)&&(e.value=""+pl(l)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),l!=null?ri(e,i,pl(l)):t!=null?ri(e,i,pl(t)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.name=""+pl(f):e.removeAttribute("name")}function $s(e,l,t,a,n,u,i,f){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),l!=null||t!=null){if(!(u!=="submit"&&u!=="reset"||l!=null)){si(e);return}t=t!=null?""+pl(t):"",l=l!=null?""+pl(l):t,f||l===e.value||(e.value=l),e.defaultValue=l}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=f?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),si(e)}function ri(e,l,t){l==="number"&&wn(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function It(e,l,t,a){if(e=e.options,l){l={};for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yi=!1;if(wl)try{var Ya={};Object.defineProperty(Ya,"passive",{get:function(){yi=!0}}),window.addEventListener("test",Ya,Ya),window.removeEventListener("test",Ya,Ya)}catch{yi=!1}var tt=null,gi=null,Yn=null;function tf(){if(Yn)return Yn;var e,l=gi,t=l.length,a,n="value"in tt?tt.value:tt.textContent,u=n.length;for(e=0;e=Qa),ff=" ",rf=!1;function df(e,l){switch(e){case"keyup":return eh.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function of(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ta=!1;function th(e,l){switch(e){case"compositionend":return of(l);case"keypress":return l.which!==32?null:(rf=!0,ff);case"textInput":return e=l.data,e===ff&&rf?null:e;default:return null}}function ah(e,l){if(ta)return e==="compositionend"||!xi&&df(e,l)?(e=tf(),Yn=gi=tt=null,ta=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:t,offset:l-e};e=a}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=bf(t)}}function jf(e,l){return e&&l?e===l?!0:e&&e.nodeType===3?!1:l&&l.nodeType===3?jf(e,l.parentNode):"contains"in e?e.contains(l):e.compareDocumentPosition?!!(e.compareDocumentPosition(l)&16):!1:!1}function Ef(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var l=wn(e.document);l instanceof e.HTMLIFrameElement;){try{var t=typeof l.contentWindow.location.href=="string"}catch{t=!1}if(t)e=l.contentWindow;else break;l=wn(e.document)}return l}function Ai(e){var l=e&&e.nodeName&&e.nodeName.toLowerCase();return l&&(l==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||l==="textarea"||e.contentEditable==="true")}var dh=wl&&"documentMode"in document&&11>=document.documentMode,aa=null,Ti=null,Ja=null,Ni=!1;function Af(e,l,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;Ni||aa==null||aa!==wn(a)||(a=aa,"selectionStart"in a&&Ai(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ja&&Va(Ja,a)||(Ja=a,a=Mu(Ti,"onSelect"),0>=i,n-=i,Dl=1<<32-rl(l)+n|t<ie?(he=K,K=null):he=K.sibling;var Se=E(S,K,x[ie],C);if(Se===null){K===null&&(K=he);break}e&&K&&Se.alternate===null&&l(S,K),h=u(Se,h,ie),ve===null?W=Se:ve.sibling=Se,ve=Se,K=he}if(ie===x.length)return t(S,K),ye&&Yl(S,ie),W;if(K===null){for(;ieie?(he=K,K=null):he=K.sibling;var At=E(S,K,Se.value,C);if(At===null){K===null&&(K=he);break}e&&K&&At.alternate===null&&l(S,K),h=u(At,h,ie),ve===null?W=At:ve.sibling=At,ve=At,K=he}if(Se.done)return t(S,K),ye&&Yl(S,ie),W;if(K===null){for(;!Se.done;ie++,Se=x.next())Se=M(S,Se.value,C),Se!==null&&(h=u(Se,h,ie),ve===null?W=Se:ve.sibling=Se,ve=Se);return ye&&Yl(S,ie),W}for(K=a(K);!Se.done;ie++,Se=x.next())Se=N(K,S,ie,Se.value,C),Se!==null&&(e&&Se.alternate!==null&&K.delete(Se.key===null?ie:Se.key),h=u(Se,h,ie),ve===null?W=Se:ve.sibling=Se,ve=Se);return e&&K.forEach(function(Cy){return l(S,Cy)}),ye&&Yl(S,ie),W}function _e(S,h,x,C){if(typeof x=="object"&&x!==null&&x.type===F&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case _:e:{for(var W=x.key;h!==null;){if(h.key===W){if(W=x.type,W===F){if(h.tag===7){t(S,h.sibling),C=n(h,x.props.children),C.return=S,S=C;break e}}else if(h.elementType===W||typeof W=="object"&&W!==null&&W.$$typeof===ee&&Lt(W)===h.type){t(S,h.sibling),C=n(h,x.props),Pa(C,x),C.return=S,S=C;break e}t(S,h);break}else l(S,h);h=h.sibling}x.type===F?(C=Ht(x.props.children,S.mode,C,x.key),C.return=S,S=C):(C=Wn(x.type,x.key,x.props,null,S.mode,C),Pa(C,x),C.return=S,S=C)}return i(S);case Y:e:{for(W=x.key;h!==null;){if(h.key===W)if(h.tag===4&&h.stateNode.containerInfo===x.containerInfo&&h.stateNode.implementation===x.implementation){t(S,h.sibling),C=n(h,x.children||[]),C.return=S,S=C;break e}else{t(S,h);break}else l(S,h);h=h.sibling}C=Mi(x,S.mode,C),C.return=S,S=C}return i(S);case ee:return x=Lt(x),_e(S,h,x,C)}if(Q(x))return X(S,h,x,C);if(se(x)){if(W=se(x),typeof W!="function")throw Error(r(150));return x=W.call(x),P(S,h,x,C)}if(typeof x.then=="function")return _e(S,h,au(x),C);if(x.$$typeof===ce)return _e(S,h,Pn(S,x),C);nu(S,x)}return typeof x=="string"&&x!==""||typeof x=="number"||typeof x=="bigint"?(x=""+x,h!==null&&h.tag===6?(t(S,h.sibling),C=n(h,x),C.return=S,S=C):(t(S,h),C=Di(x,S.mode,C),C.return=S,S=C),i(S)):t(S,h)}return function(S,h,x,C){try{Ia=0;var W=_e(S,h,x,C);return ha=null,W}catch(K){if(K===ma||K===lu)throw K;var ve=ol(29,K,null,S.mode);return ve.lanes=C,ve.return=S,ve}finally{}}}var Gt=Jf(!0),kf=Jf(!1),ct=!1;function Ki(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Vi(e,l){e=e.updateQueue,l.updateQueue===e&&(l.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function st(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ft(e,l,t){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(je&2)!==0){var n=a.pending;return n===null?l.next=l:(l.next=n.next,n.next=l),a.pending=l,l=$n(e),Cf(e,null,t),l}return kn(e,a,l,t),$n(e)}function en(e,l,t){if(l=l.updateQueue,l!==null&&(l=l.shared,(t&4194048)!==0)){var a=l.lanes;a&=e.pendingLanes,t|=a,l.lanes=t,ws(e,t)}}function Ji(e,l){var t=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,t===a)){var n=null,u=null;if(t=t.firstBaseUpdate,t!==null){do{var i={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,t=t.next}while(t!==null);u===null?n=u=l:u=u.next=l}else n=u=l;t={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=l:e.next=l,t.lastBaseUpdate=l}var ki=!1;function ln(){if(ki){var e=oa;if(e!==null)throw e}}function tn(e,l,t,a){ki=!1;var n=e.updateQueue;ct=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,f=n.shared.pending;if(f!==null){n.shared.pending=null;var o=f,j=o.next;o.next=null,i===null?u=j:i.next=j,i=o;var U=e.alternate;U!==null&&(U=U.updateQueue,f=U.lastBaseUpdate,f!==i&&(f===null?U.firstBaseUpdate=j:f.next=j,U.lastBaseUpdate=o))}if(u!==null){var M=n.baseState;i=0,U=j=o=null,f=u;do{var E=f.lane&-536870913,N=E!==f.lane;if(N?(me&E)===E:(a&E)===E){E!==0&&E===da&&(ki=!0),U!==null&&(U=U.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});e:{var X=e,P=f;E=l;var _e=t;switch(P.tag){case 1:if(X=P.payload,typeof X=="function"){M=X.call(_e,M,E);break e}M=X;break e;case 3:X.flags=X.flags&-65537|128;case 0:if(X=P.payload,E=typeof X=="function"?X.call(_e,M,E):X,E==null)break e;M=O({},M,E);break e;case 2:ct=!0}}E=f.callback,E!==null&&(e.flags|=64,N&&(e.flags|=8192),N=n.callbacks,N===null?n.callbacks=[E]:N.push(E))}else N={lane:E,tag:f.tag,payload:f.payload,callback:f.callback,next:null},U===null?(j=U=N,o=M):U=U.next=N,i|=E;if(f=f.next,f===null){if(f=n.shared.pending,f===null)break;N=f,f=N.next,N.next=null,n.lastBaseUpdate=N,n.shared.pending=null}}while(!0);U===null&&(o=M),n.baseState=o,n.firstBaseUpdate=j,n.lastBaseUpdate=U,u===null&&(n.shared.lanes=0),ht|=i,e.lanes=i,e.memoizedState=M}}function $f(e,l){if(typeof e!="function")throw Error(r(191,e));e.call(l)}function Wf(e,l){var t=e.callbacks;if(t!==null)for(e.callbacks=null,e=0;eu?u:8;var i=b.T,f={};b.T=f,mc(e,!1,l,t);try{var o=n(),j=b.S;if(j!==null&&j(f,o),o!==null&&typeof o=="object"&&typeof o.then=="function"){var U=bh(o,a);un(e,l,U,vl(e))}else un(e,l,a,vl(e))}catch(M){un(e,l,{then:function(){},status:"rejected",reason:M},vl())}finally{R.p=u,i!==null&&f.types!==null&&(i.types=f.types),b.T=i}}function Nh(){}function dc(e,l,t,a){if(e.tag!==5)throw Error(r(476));var n=_r(e).queue;zr(e,n,l,V,t===null?Nh:function(){return Ur(e),t(a)})}function _r(e){var l=e.memoizedState;if(l!==null)return l;l={memoizedState:V,baseState:V,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:V},next:null};var t={};return l.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:t},next:null},e.memoizedState=l,e=e.alternate,e!==null&&(e.memoizedState=l),l}function Ur(e){var l=_r(e);l.next===null&&(l=e.alternate.memoizedState),un(e,l.next.queue,{},vl())}function oc(){return $e(En)}function Or(){return Le().memoizedState}function Cr(){return Le().memoizedState}function zh(e){for(var l=e.return;l!==null;){switch(l.tag){case 24:case 3:var t=vl();e=st(t);var a=ft(l,e,t);a!==null&&(cl(a,l,t),en(a,l,t)),l={cache:Gi()},e.payload=l;return}l=l.return}}function _h(e,l,t){var a=vl();t={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},hu(e)?Mr(l,t):(t=Oi(e,l,t,a),t!==null&&(cl(t,e,a),Hr(t,l,a)))}function Dr(e,l,t){var a=vl();un(e,l,t,a)}function un(e,l,t,a){var n={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(hu(e))Mr(l,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=l.lastRenderedReducer,u!==null))try{var i=l.lastRenderedState,f=u(i,t);if(n.hasEagerState=!0,n.eagerState=f,dl(f,i))return kn(e,l,n,0),Ue===null&&Jn(),!1}catch{}finally{}if(t=Oi(e,l,n,a),t!==null)return cl(t,e,a),Hr(t,l,a),!0}return!1}function mc(e,l,t,a){if(a={lane:2,revertLane:Kc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},hu(e)){if(l)throw Error(r(479))}else l=Oi(e,t,a,2),l!==null&&cl(l,e,2)}function hu(e){var l=e.alternate;return e===ue||l!==null&&l===ue}function Mr(e,l){ga=cu=!0;var t=e.pending;t===null?l.next=l:(l.next=t.next,t.next=l),e.pending=l}function Hr(e,l,t){if((t&4194048)!==0){var a=l.lanes;a&=e.pendingLanes,t|=a,l.lanes=t,ws(e,t)}}var cn={readContext:$e,use:ru,useCallback:Be,useContext:Be,useEffect:Be,useImperativeHandle:Be,useLayoutEffect:Be,useInsertionEffect:Be,useMemo:Be,useReducer:Be,useRef:Be,useState:Be,useDebugValue:Be,useDeferredValue:Be,useTransition:Be,useSyncExternalStore:Be,useId:Be,useHostTransitionStatus:Be,useFormState:Be,useActionState:Be,useOptimistic:Be,useMemoCache:Be,useCacheRefresh:Be};cn.useEffectEvent=Be;var Br={readContext:$e,use:ru,useCallback:function(e,l){return el().memoizedState=[e,l===void 0?null:l],e},useContext:$e,useEffect:Sr,useImperativeHandle:function(e,l,t){t=t!=null?t.concat([e]):null,ou(4194308,4,jr.bind(null,l,e),t)},useLayoutEffect:function(e,l){return ou(4194308,4,e,l)},useInsertionEffect:function(e,l){ou(4,2,e,l)},useMemo:function(e,l){var t=el();l=l===void 0?null:l;var a=e();if(Xt){et(!0);try{e()}finally{et(!1)}}return t.memoizedState=[a,l],a},useReducer:function(e,l,t){var a=el();if(t!==void 0){var n=t(l);if(Xt){et(!0);try{t(l)}finally{et(!1)}}}else n=l;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=_h.bind(null,ue,e),[a.memoizedState,e]},useRef:function(e){var l=el();return e={current:e},l.memoizedState=e},useState:function(e){e=ic(e);var l=e.queue,t=Dr.bind(null,ue,l);return l.dispatch=t,[e.memoizedState,t]},useDebugValue:fc,useDeferredValue:function(e,l){var t=el();return rc(t,e,l)},useTransition:function(){var e=ic(!1);return e=zr.bind(null,ue,e.queue,!0,!1),el().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,l,t){var a=ue,n=el();if(ye){if(t===void 0)throw Error(r(407));t=t()}else{if(t=l(),Ue===null)throw Error(r(349));(me&127)!==0||tr(a,l,t)}n.memoizedState=t;var u={value:t,getSnapshot:l};return n.queue=u,Sr(nr.bind(null,a,u,e),[e]),a.flags|=2048,Sa(9,{destroy:void 0},ar.bind(null,a,u,t,l),null),t},useId:function(){var e=el(),l=Ue.identifierPrefix;if(ye){var t=Ml,a=Dl;t=(a&~(1<<32-rl(a)-1)).toString(32)+t,l="_"+l+"R_"+t,t=su++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?i.createElement(n,{is:a.is}):i.createElement(n)}}u[Je]=l,u[ll]=a;e:for(i=l.child;i!==null;){if(i.tag===5||i.tag===6)u.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===l)break e;for(;i.sibling===null;){if(i.return===null||i.return===l)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}l.stateNode=u;e:switch(Fe(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Vl(l)}}return Ce(l),zc(l,l.type,e===null?null:e.memoizedProps,l.pendingProps,t),null;case 6:if(e&&l.stateNode!=null)e.memoizedProps!==a&&Vl(l);else{if(typeof a!="string"&&l.stateNode===null)throw Error(r(166));if(e=fe.current,fa(l)){if(e=l.stateNode,t=l.memoizedProps,a=null,n=ke,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[Je]=l,e=!!(e.nodeValue===t||a!==null&&a.suppressHydrationWarning===!0||eo(e.nodeValue,t)),e||ut(l,!0)}else e=Hu(e).createTextNode(a),e[Je]=l,l.stateNode=e}return Ce(l),null;case 31:if(t=l.memoizedState,e===null||e.memoizedState!==null){if(a=fa(l),t!==null){if(e===null){if(!a)throw Error(r(318));if(e=l.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[Je]=l}else Bt(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;Ce(l),e=!1}else t=qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e)return l.flags&256?(hl(l),l):(hl(l),null);if((l.flags&128)!==0)throw Error(r(558))}return Ce(l),null;case 13:if(a=l.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=fa(l),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(r(318));if(n=l.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(r(317));n[Je]=l}else Bt(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;Ce(l),n=!1}else n=qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),n=!0;if(!n)return l.flags&256?(hl(l),l):(hl(l),null)}return hl(l),(l.flags&128)!==0?(l.lanes=t,l):(t=a!==null,e=e!==null&&e.memoizedState!==null,t&&(a=l.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),t!==e&&t&&(l.child.flags|=8192),pu(l,l.updateQueue),Ce(l),null);case 4:return qe(),e===null&&$c(l.stateNode.containerInfo),Ce(l),null;case 10:return Xl(l.type),Ce(l),null;case 19:if(D(we),a=l.memoizedState,a===null)return Ce(l),null;if(n=(l.flags&128)!==0,u=a.rendering,u===null)if(n)fn(a,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=l.child;e!==null;){if(u=iu(e),u!==null){for(l.flags|=128,fn(a,!1),e=u.updateQueue,l.updateQueue=e,pu(l,e),l.subtreeFlags=0,e=t,t=l.child;t!==null;)Df(t,e),t=t.sibling;return L(we,we.current&1|2),ye&&Yl(l,a.treeForkCount),l.child}e=e.sibling}a.tail!==null&&sl()>Au&&(l.flags|=128,n=!0,fn(a,!1),l.lanes=4194304)}else{if(!n)if(e=iu(u),e!==null){if(l.flags|=128,n=!0,e=e.updateQueue,l.updateQueue=e,pu(l,e),fn(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!ye)return Ce(l),null}else 2*sl()-a.renderingStartTime>Au&&t!==536870912&&(l.flags|=128,n=!0,fn(a,!1),l.lanes=4194304);a.isBackwards?(u.sibling=l.child,l.child=u):(e=a.last,e!==null?e.sibling=u:l.child=u,a.last=u)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=sl(),e.sibling=null,t=we.current,L(we,n?t&1|2:t&1),ye&&Yl(l,a.treeForkCount),e):(Ce(l),null);case 22:case 23:return hl(l),Wi(),a=l.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(l.flags|=8192):a&&(l.flags|=8192),a?(t&536870912)!==0&&(l.flags&128)===0&&(Ce(l),l.subtreeFlags&6&&(l.flags|=8192)):Ce(l),t=l.updateQueue,t!==null&&pu(l,t.retryQueue),t=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(t=e.memoizedState.cachePool.pool),a=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),a!==t&&(l.flags|=2048),e!==null&&D(wt),null;case 24:return t=null,e!==null&&(t=e.memoizedState.cache),l.memoizedState.cache!==t&&(l.flags|=2048),Xl(Ye),Ce(l),null;case 25:return null;case 30:return null}throw Error(r(156,l.tag))}function Mh(e,l){switch(Bi(l),l.tag){case 1:return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 3:return Xl(Ye),qe(),e=l.flags,(e&65536)!==0&&(e&128)===0?(l.flags=e&-65537|128,l):null;case 26:case 27:case 5:return On(l),null;case 31:if(l.memoizedState!==null){if(hl(l),l.alternate===null)throw Error(r(340));Bt()}return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 13:if(hl(l),e=l.memoizedState,e!==null&&e.dehydrated!==null){if(l.alternate===null)throw Error(r(340));Bt()}return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 19:return D(we),null;case 4:return qe(),null;case 10:return Xl(l.type),null;case 22:case 23:return hl(l),Wi(),e!==null&&D(wt),e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 24:return Xl(Ye),null;case 25:return null;default:return null}}function ud(e,l){switch(Bi(l),l.tag){case 3:Xl(Ye),qe();break;case 26:case 27:case 5:On(l);break;case 4:qe();break;case 31:l.memoizedState!==null&&hl(l);break;case 13:hl(l);break;case 19:D(we);break;case 10:Xl(l.type);break;case 22:case 23:hl(l),Wi(),e!==null&&D(wt);break;case 24:Xl(Ye)}}function rn(e,l){try{var t=l.updateQueue,a=t!==null?t.lastEffect:null;if(a!==null){var n=a.next;t=n;do{if((t.tag&e)===e){a=void 0;var u=t.create,i=t.inst;a=u(),i.destroy=a}t=t.next}while(t!==n)}}catch(f){Te(l,l.return,f)}}function ot(e,l,t){try{var a=l.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&e)===e){var i=a.inst,f=i.destroy;if(f!==void 0){i.destroy=void 0,n=l;var o=t,j=f;try{j()}catch(U){Te(n,o,U)}}}a=a.next}while(a!==u)}}catch(U){Te(l,l.return,U)}}function id(e){var l=e.updateQueue;if(l!==null){var t=e.stateNode;try{Wf(l,t)}catch(a){Te(e,e.return,a)}}}function cd(e,l,t){t.props=Qt(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(a){Te(e,l,a)}}function dn(e,l){try{var t=e.ref;if(t!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof t=="function"?e.refCleanup=t(a):t.current=a}}catch(n){Te(e,l,n)}}function Hl(e,l){var t=e.ref,a=e.refCleanup;if(t!==null)if(typeof a=="function")try{a()}catch(n){Te(e,l,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof t=="function")try{t(null)}catch(n){Te(e,l,n)}else t.current=null}function sd(e){var l=e.type,t=e.memoizedProps,a=e.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":t.autoFocus&&a.focus();break e;case"img":t.src?a.src=t.src:t.srcSet&&(a.srcset=t.srcSet)}}catch(n){Te(e,e.return,n)}}function _c(e,l,t){try{var a=e.stateNode;ly(a,e.type,t,l),a[ll]=l}catch(n){Te(e,e.return,n)}}function fd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&pt(e.type)||e.tag===4}function Uc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||fd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&pt(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Oc(e,l,t){var a=e.tag;if(a===5||a===6)e=e.stateNode,l?(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t).insertBefore(e,l):(l=t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,l.appendChild(e),t=t._reactRootContainer,t!=null||l.onclick!==null||(l.onclick=ql));else if(a!==4&&(a===27&&pt(e.type)&&(t=e.stateNode,l=null),e=e.child,e!==null))for(Oc(e,l,t),e=e.sibling;e!==null;)Oc(e,l,t),e=e.sibling}function bu(e,l,t){var a=e.tag;if(a===5||a===6)e=e.stateNode,l?t.insertBefore(e,l):t.appendChild(e);else if(a!==4&&(a===27&&pt(e.type)&&(t=e.stateNode),e=e.child,e!==null))for(bu(e,l,t),e=e.sibling;e!==null;)bu(e,l,t),e=e.sibling}function rd(e){var l=e.stateNode,t=e.memoizedProps;try{for(var a=e.type,n=l.attributes;n.length;)l.removeAttributeNode(n[0]);Fe(l,a,t),l[Je]=e,l[ll]=t}catch(u){Te(e,e.return,u)}}var Jl=!1,Qe=!1,Cc=!1,dd=typeof WeakSet=="function"?WeakSet:Set,Ve=null;function Hh(e,l){if(e=e.containerInfo,Ic=Gu,e=Ef(e),Ai(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var a=t.getSelection&&t.getSelection();if(a&&a.rangeCount!==0){t=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{t.nodeType,u.nodeType}catch{t=null;break e}var i=0,f=-1,o=-1,j=0,U=0,M=e,E=null;l:for(;;){for(var N;M!==t||n!==0&&M.nodeType!==3||(f=i+n),M!==u||a!==0&&M.nodeType!==3||(o=i+a),M.nodeType===3&&(i+=M.nodeValue.length),(N=M.firstChild)!==null;)E=M,M=N;for(;;){if(M===e)break l;if(E===t&&++j===n&&(f=i),E===u&&++U===a&&(o=i),(N=M.nextSibling)!==null)break;M=E,E=M.parentNode}M=N}t=f===-1||o===-1?null:{start:f,end:o}}else t=null}t=t||{start:0,end:0}}else t=null;for(Pc={focusedElem:e,selectionRange:t},Gu=!1,Ve=l;Ve!==null;)if(l=Ve,e=l.child,(l.subtreeFlags&1028)!==0&&e!==null)e.return=l,Ve=e;else for(;Ve!==null;){switch(l=Ve,u=l.alternate,e=l.flags,l.tag){case 0:if((e&4)!==0&&(e=l.updateQueue,e=e!==null?e.events:null,e!==null))for(t=0;t title"))),Fe(u,a,t),u[Je]=e,Ke(u),a=u;break e;case"link":var i=So("link","href",n).get(a+(t.href||""));if(i){for(var f=0;f_e&&(i=_e,_e=P,P=i);var S=xf(f,P),h=xf(f,_e);if(S&&h&&(N.rangeCount!==1||N.anchorNode!==S.node||N.anchorOffset!==S.offset||N.focusNode!==h.node||N.focusOffset!==h.offset)){var x=M.createRange();x.setStart(S.node,S.offset),N.removeAllRanges(),P>_e?(N.addRange(x),N.extend(h.node,h.offset)):(x.setEnd(h.node,h.offset),N.addRange(x))}}}}for(M=[],N=f;N=N.parentNode;)N.nodeType===1&&M.push({element:N,left:N.scrollLeft,top:N.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;ft?32:t,b.T=null,t=wc,wc=null;var u=gt,i=Il;if(Ze=0,Ea=gt=null,Il=0,(je&6)!==0)throw Error(r(331));var f=je;if(je|=4,jd(u.current),pd(u,u.current,i,t),je=f,vn(0,!1),fl&&typeof fl.onPostCommitFiberRoot=="function")try{fl.onPostCommitFiberRoot(Ha,u)}catch{}return!0}finally{R.p=n,b.T=a,Yd(e,l)}}function Xd(e,l,t){l=jl(t,l),l=vc(e.stateNode,l,2),e=ft(e,l,2),e!==null&&(Ra(e,2),Bl(e))}function Te(e,l,t){if(e.tag===3)Xd(e,e,t);else for(;l!==null;){if(l.tag===3){Xd(l,e,t);break}else if(l.tag===1){var a=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(yt===null||!yt.has(a))){e=jl(t,e),t=Qr(2),a=ft(l,t,2),a!==null&&(Zr(t,a,l,e),Ra(a,2),Bl(a));break}}l=l.return}}function Xc(e,l,t){var a=e.pingCache;if(a===null){a=e.pingCache=new qh;var n=new Set;a.set(l,n)}else n=a.get(l),n===void 0&&(n=new Set,a.set(l,n));n.has(t)||(Hc=!0,n.add(t),e=Xh.bind(null,e,l,t),l.then(e,e))}function Xh(e,l,t){var a=e.pingCache;a!==null&&a.delete(l),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,Ue===e&&(me&t)===t&&(Re===4||Re===3&&(me&62914560)===me&&300>sl()-Eu?(je&2)===0&&Aa(e,0):Bc|=t,ja===me&&(ja=0)),Bl(e)}function Qd(e,l){l===0&&(l=Rs()),e=Mt(e,l),e!==null&&(Ra(e,l),Bl(e))}function Qh(e){var l=e.memoizedState,t=0;l!==null&&(t=l.retryLane),Qd(e,t)}function Zh(e,l){var t=0;switch(e.tag){case 31:case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(t=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(r(314))}a!==null&&a.delete(l),Qd(e,t)}function Kh(e,l){return li(e,l)}var Ou=null,Na=null,Qc=!1,Cu=!1,Zc=!1,St=0;function Bl(e){e!==Na&&e.next===null&&(Na===null?Ou=Na=e:Na=Na.next=e),Cu=!0,Qc||(Qc=!0,Jh())}function vn(e,l){if(!Zc&&Cu){Zc=!0;do for(var t=!1,a=Ou;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,f=a.pingedLanes;u=(1<<31-rl(42|e)+1)-1,u&=n&~(i&~f),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(t=!0,Jd(a,u))}else u=me,u=Bn(a,a===Ue?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||Ba(a,u)||(t=!0,Jd(a,u));a=a.next}while(t);Zc=!1}}function Vh(){Zd()}function Zd(){Cu=Qc=!1;var e=0;St!==0&&ay()&&(e=St);for(var l=sl(),t=null,a=Ou;a!==null;){var n=a.next,u=Kd(a,l);u===0?(a.next=null,t===null?Ou=n:t.next=n,n===null&&(Na=t)):(t=a,(e!==0||(u&3)!==0)&&(Cu=!0)),a=n}Ze!==0&&Ze!==5||vn(e),St!==0&&(St=0)}function Kd(e,l){for(var t=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0f)break;var U=o.transferSize,M=o.initiatorType;U&&lo(M)&&(o=o.responseEnd,i+=U*(o"u"?null:document;function ho(e,l,t){var a=za;if(a&&typeof l=="string"&&l){var n=bl(l);n='link[rel="'+e+'"][href="'+n+'"]',typeof t=="string"&&(n+='[crossorigin="'+t+'"]'),mo.has(n)||(mo.add(n),e={rel:e,crossOrigin:t,href:l},a.querySelector(n)===null&&(l=a.createElement("link"),Fe(l,"link",e),Ke(l),a.head.appendChild(l)))}}function oy(e){Pl.D(e),ho("dns-prefetch",e,null)}function my(e,l){Pl.C(e,l),ho("preconnect",e,l)}function hy(e,l,t){Pl.L(e,l,t);var a=za;if(a&&e&&l){var n='link[rel="preload"][as="'+bl(l)+'"]';l==="image"&&t&&t.imageSrcSet?(n+='[imagesrcset="'+bl(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(n+='[imagesizes="'+bl(t.imageSizes)+'"]')):n+='[href="'+bl(e)+'"]';var u=n;switch(l){case"style":u=_a(e);break;case"script":u=Ua(e)}_l.has(u)||(e=O({rel:"preload",href:l==="image"&&t&&t.imageSrcSet?void 0:e,as:l},t),_l.set(u,e),a.querySelector(n)!==null||l==="style"&&a.querySelector(xn(u))||l==="script"&&a.querySelector(jn(u))||(l=a.createElement("link"),Fe(l,"link",e),Ke(l),a.head.appendChild(l)))}}function yy(e,l){Pl.m(e,l);var t=za;if(t&&e){var a=l&&typeof l.as=="string"?l.as:"script",n='link[rel="modulepreload"][as="'+bl(a)+'"][href="'+bl(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ua(e)}if(!_l.has(u)&&(e=O({rel:"modulepreload",href:e},l),_l.set(u,e),t.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(jn(u)))return}a=t.createElement("link"),Fe(a,"link",e),Ke(a),t.head.appendChild(a)}}}function gy(e,l,t){Pl.S(e,l,t);var a=za;if(a&&e){var n=Wt(a).hoistableStyles,u=_a(e);l=l||"default";var i=n.get(u);if(!i){var f={loading:0,preload:null};if(i=a.querySelector(xn(u)))f.loading=5;else{e=O({rel:"stylesheet",href:e,"data-precedence":l},t),(t=_l.get(u))&&is(e,t);var o=i=a.createElement("link");Ke(o),Fe(o,"link",e),o._p=new Promise(function(j,U){o.onload=j,o.onerror=U}),o.addEventListener("load",function(){f.loading|=1}),o.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Ru(i,l,a)}i={type:"stylesheet",instance:i,count:1,state:f},n.set(u,i)}}}function vy(e,l){Pl.X(e,l);var t=za;if(t&&e){var a=Wt(t).hoistableScripts,n=Ua(e),u=a.get(n);u||(u=t.querySelector(jn(n)),u||(e=O({src:e,async:!0},l),(l=_l.get(n))&&cs(e,l),u=t.createElement("script"),Ke(u),Fe(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Sy(e,l){Pl.M(e,l);var t=za;if(t&&e){var a=Wt(t).hoistableScripts,n=Ua(e),u=a.get(n);u||(u=t.querySelector(jn(n)),u||(e=O({src:e,async:!0,type:"module"},l),(l=_l.get(n))&&cs(e,l),u=t.createElement("script"),Ke(u),Fe(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function yo(e,l,t,a){var n=(n=fe.current)?Bu(n):null;if(!n)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(l=_a(t.href),t=Wt(n).hoistableStyles,a=t.get(l),a||(a={type:"style",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){e=_a(t.href);var u=Wt(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(xn(e)))&&!u._p&&(i.instance=u,i.state.loading=5),_l.has(e)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},_l.set(e,t),u||py(n,e,t,i.state))),l&&a===null)throw Error(r(528,""));return i}if(l&&a!==null)throw Error(r(529,""));return null;case"script":return l=t.async,t=t.src,typeof t=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Ua(t),t=Wt(n).hoistableScripts,a=t.get(l),a||(a={type:"script",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function _a(e){return'href="'+bl(e)+'"'}function xn(e){return'link[rel="stylesheet"]['+e+"]"}function go(e){return O({},e,{"data-precedence":e.precedence,precedence:null})}function py(e,l,t,a){e.querySelector('link[rel="preload"][as="style"]['+l+"]")?a.loading=1:(l=e.createElement("link"),a.preload=l,l.addEventListener("load",function(){return a.loading|=1}),l.addEventListener("error",function(){return a.loading|=2}),Fe(l,"link",t),Ke(l),e.head.appendChild(l))}function Ua(e){return'[src="'+bl(e)+'"]'}function jn(e){return"script[async]"+e}function vo(e,l,t){if(l.count++,l.instance===null)switch(l.type){case"style":var a=e.querySelector('style[data-href~="'+bl(t.href)+'"]');if(a)return l.instance=a,Ke(a),a;var n=O({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Ke(a),Fe(a,"style",n),Ru(a,t.precedence,e),l.instance=a;case"stylesheet":n=_a(t.href);var u=e.querySelector(xn(n));if(u)return l.state.loading|=4,l.instance=u,Ke(u),u;a=go(t),(n=_l.get(n))&&is(a,n),u=(e.ownerDocument||e).createElement("link"),Ke(u);var i=u;return i._p=new Promise(function(f,o){i.onload=f,i.onerror=o}),Fe(u,"link",a),l.state.loading|=4,Ru(u,t.precedence,e),l.instance=u;case"script":return u=Ua(t.src),(n=e.querySelector(jn(u)))?(l.instance=n,Ke(n),n):(a=t,(n=_l.get(u))&&(a=O({},t),cs(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Ke(n),Fe(n,"link",a),e.head.appendChild(n),l.instance=n);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(a=l.instance,l.state.loading|=4,Ru(a,t.precedence,e));return l.instance}function Ru(e,l,t){for(var a=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function by(e,l,t){if(t===1||l.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return e=l.disabled,typeof l.precedence=="string"&&e==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function bo(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function xy(e,l,t,a){if(t.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var n=_a(a.href),u=l.querySelector(xn(n));if(u){l=u._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(e.count++,e=wu.bind(e),l.then(e,e)),t.state.loading|=4,t.instance=u,Ke(u);return}u=l.ownerDocument||l,a=go(a),(n=_l.get(n))&&is(a,n),u=u.createElement("link"),Ke(u);var i=u;i._p=new Promise(function(f,o){i.onload=f,i.onerror=o}),Fe(u,"link",a),t.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(t,l),(l=t.state.preload)&&(t.state.loading&3)===0&&(e.count++,t=wu.bind(e),l.addEventListener("load",t),l.addEventListener("error",t))}}var ss=0;function jy(e,l){return e.stylesheets&&e.count===0&&Yu(e,e.stylesheets),0ss?50:800)+l);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function wu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Yu(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Lu=null;function Yu(e,l){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Lu=new Map,l.forEach(Ey,e),Lu=null,wu.call(e))}function Ey(e,l){if(!(l.state.loading&4)){var t=Lu.get(e);if(t)var a=t.get(null);else{t=new Map,Lu.set(e,t);for(var n=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(d){console.error(d)}}return s(),vs.exports=Yy(),vs.exports}var Xy=Gy();class Qy{constructor(){ku(this,"worker");ku(this,"pending",new Map);ku(this,"dead",null);this.worker=new Worker(new URL("/assets/worker-BODSF7sU.js",import.meta.url),{type:"module"}),this.attachWorkerHandlers(this.worker)}attachWorkerHandlers(d){d.addEventListener("message",r=>{var H;const g=r.data,p=this.pending.get(g.id);if(!p)return;if("progress"in g){(H=p.onProgress)==null||H.call(p,g.progress);return}this.pending.delete(g.id),p.timer!=null&&clearTimeout(p.timer);const z=g.payload;if(z.ok){if(z.kind!==p.kind){p.reject(new Error(`response kind mismatch: expected ${p.kind}, got ${z.kind}`));return}p.resolve(z)}else{const A=new Error(z.message);A.code=z.code,p.reject(A)}});const m=r=>{this.dead=r;for(const[,g]of this.pending)g.timer!=null&&clearTimeout(g.timer),g.reject(r);this.pending.clear()};d.addEventListener("error",r=>{const g=r;console.error("[worker] error",g.message??g),m(new Error(`worker crashed: ${g.message||"unknown"}`))}),d.addEventListener("messageerror",r=>{console.error("[worker] messageerror",r),m(new Error("worker message deserialisation failed"))})}send(d,m={}){if(this.dead)return Promise.reject(this.dead);const r=Array.isArray(m)?{transfer:m}:m,g=r.transfer??[],p=crypto.randomUUID(),z={id:p,payload:d};return new Promise((H,A)=>{const v=r.timeoutMs&&r.timeoutMs>0?setTimeout(()=>{const w=this.pending.get(p);w&&(this.pending.delete(p),w.reject(new Error(`${d.kind} timed out after ${r.timeoutMs}ms`)))},r.timeoutMs):null;this.pending.set(p,{resolve:H,reject:A,kind:d.kind,timer:v,onProgress:r.onProgress});try{this.worker.postMessage(z,g)}catch(w){this.pending.delete(p),v!=null&&clearTimeout(v),A(w instanceof Error?w:new Error(String(w)))}})}static transferables(d){const m=[];for(const r of Object.values(d))if(r instanceof ArrayBuffer)m.push(r);else if(Array.isArray(r))for(const g of r)g instanceof ArrayBuffer&&m.push(g);return m}}function Zy(s,d){const m=(d??"").toLowerCase();return m.endsWith(".dat")||m.includes("key-6.dat")?"iit-dat":m.endsWith(".zs2")?"iit-zs2":m.endsWith(".pk8")?"iit-pk8":s.length>=4&&s[0]===254&&s[1]===237&&s[2]===254&&s[3]===237?"jks":s.length>=4&&s[0]===48&&(s[1]===128||s[1]===130||s[1]===131||s[1]===132)?"pkcs12":s.length>=4&&s[0]===80&&s[1]===75&&s[2]===3&&s[3]===4?"iit-zs2":m.endsWith(".pfx")||m.endsWith(".p12")?"pkcs12":m.endsWith(".jks")?"jks":"unknown"}function Ky(s){return s==="pkcs12"||s==="jks"||s==="iit-dat"||s==="iit-zs2"||s==="iit-pk8"}var Os=lm();function Vy({open:s,reason:d,onSubmit:m,onCancel:r}){const[g,p]=q.useState(""),[z,H]=q.useState(!1),A=q.useRef(null);if(q.useEffect(()=>{if(!s)return;const O=_=>{_.key==="Escape"&&r()};document.addEventListener("keydown",O);const T=document.body.style.overflow;return document.body.style.overflow="hidden",queueMicrotask(()=>{var _;return(_=A.current)==null?void 0:_.focus()}),()=>{document.removeEventListener("keydown",O),document.body.style.overflow=T}},[s,r]),q.useEffect(()=>{s||(p(""),H(!1))},[s]),!s)return null;const v=()=>{if(!g)return;const O=g,T=z;p(""),H(!1),m(O,T)},w=O=>{O.target===O.currentTarget&&r()};return Os.createPortal(c.jsx("div",{className:"modal-overlay",onMouseDown:w,children:c.jsxs("div",{className:"modal-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"password-prompt-title",children:[c.jsxs("header",{className:"modal-header",children:[c.jsx("h2",{id:"password-prompt-title",children:"Введіть пароль ключа"}),c.jsx("button",{type:"button",className:"modal-close","aria-label":"Скасувати",onClick:r,children:"×"})]}),c.jsxs("div",{className:"modal-body",children:[d&&c.jsx("p",{className:"muted",style:{marginTop:0},children:d}),c.jsx("input",{ref:A,className:"password",type:"password",placeholder:"Пароль",value:g,onChange:O=>p(O.target.value),onKeyDown:O=>{O.key==="Enter"&&v()},autoComplete:"off"}),c.jsxs("label",{className:"save-password",children:[c.jsx("input",{type:"checkbox",checked:z,onChange:O=>H(O.target.checked)}),c.jsx("span",{children:"Зберегти пароль (наступні дії — без повторного вводу)"})]})]}),c.jsxs("footer",{className:"modal-footer",children:[c.jsx("button",{type:"button",className:"link",onClick:r,children:"Скасувати"}),c.jsx("button",{type:"button",className:"primary",disabled:!g,onClick:v,children:"Підтвердити"})]})]})}),document.body)}const tm=q.createContext(null);function Jy({client:s,ready:d,cas:m,children:r}){const[g,p]=q.useState(null),[z,H]=q.useState({}),[A,v]=q.useState("idle"),[w,O]=q.useState(null),[T,_]=q.useState(null),[Y,F]=q.useState(!1),[J,B]=q.useState([]),[G,ce]=q.useState(!1),[oe,pe]=q.useState(void 0),ge=q.useRef(null),$=q.useMemo(()=>m.filter(Q=>!!Q.cmpAddress&&!Q.certsInKey),[m]),ee=q.useCallback(async({file:Q,password:b,caHint:R,savePassword:V})=>{_(null),v("loading"),O("читаємо ключ…");try{const ae=await Q.arrayBuffer(),xe=Zy(new Uint8Array(ae),Q.name);if(!Ky(xe))throw new Error(`Формат файлу «${Q.name}» не розпізнано. Підтримуються PKCS#12 (.pfx/.p12), IIT (.dat / Key-6 / .zs2 / .pk8) та JKS.`);const y=await s.send({kind:"loadKey",key:ae,password:b,autoFetchCert:!0,caHint:R||void 0,savePassword:V},{transfer:[ae],onProgress:D=>{O(D.total?`${D.current}/${D.total}: ${D.message}`:D.message)}});p(y.signer),H(y.ownCerts),B(y.supportedHashAlgos),F(V),v("idle")}catch(ae){throw _(ae.message),v("error"),ae}finally{O(null)}},[s]),k=q.useCallback(async()=>{try{await s.send({kind:"unloadKey"})}catch{}p(null),H({}),B([]),F(!1),_(null),v("idle")},[s]),le=q.useCallback(async()=>{try{await s.send({kind:"lockKey"})}catch{}F(!1)},[s]),I=q.useCallback(async Q=>{const b=await new Promise(R=>{ge.current=R,pe(Q),ce(!0)});if(!b)return null;if(b.save)try{await s.send({kind:"unlockKey",password:b.password}),F(!0)}catch(R){_(`Не вдалося зберегти пароль: ${R.message}`)}return b.password},[s]),se=q.useCallback(Q=>{ce(!1),pe(void 0);const b=ge.current;ge.current=null,b==null||b(Q)},[]),be=q.useCallback(()=>_(null),[]),De=q.useMemo(()=>({signer:g,ownCerts:z,status:A,busy:A==="loading",loaded:g!=null,progress:w,error:T,cas:$,ready:d,savePassword:Y,supportedHashAlgos:J,loadKey:ee,unloadKey:k,lockKey:le,requestPassword:I,clearError:be}),[g,z,A,w,T,$,d,Y,J,ee,k,le,I,be]);return c.jsxs(tm.Provider,{value:De,children:[r,c.jsx(Vy,{open:G,reason:oe,onSubmit:(Q,b)=>se({password:Q,save:b}),onCancel:()=>se(null)})]})}function Da(){const s=q.useContext(tm);if(!s)throw new Error("useLoadedKey must be used inside LoadedKeyProvider");return s}const ky=1,$y=7,Wy=8,Fy=9,Iy=1,xs=4,Py={GOST34311:{id:"GOST34311",ctxHashAlgo:ky,ctxSignAlgo:Iy,oid:"1.2.804.2.1.1.1.1.2.1",digestMethodUri:"http://www.w3.org/2001/04/xmlenc#gost34311",signatureMethodUri:"http://www.w3.org/2001/04/xmldsig-more#dstu4145-gost34311",displayName:"ГОСТ 34.311-95"},"DSTU7564-256":{id:"DSTU7564-256",ctxHashAlgo:$y,ctxSignAlgo:xs,oid:"1.2.804.2.1.1.1.1.2.2",digestMethodUri:"http://www.w3.org/2001/04/xmlenc#dstu7564-256",signatureMethodUri:"http://www.w3.org/2001/04/xmldsig-more#dstu4145-dstu7564-256",displayName:"ДСТУ 7564-256"},"DSTU7564-384":{id:"DSTU7564-384",ctxHashAlgo:Wy,ctxSignAlgo:xs,oid:"1.2.804.2.1.1.1.1.2.3",digestMethodUri:"http://www.w3.org/2001/04/xmlenc#dstu7564-384",signatureMethodUri:"http://www.w3.org/2001/04/xmldsig-more#dstu4145-dstu7564-384",displayName:"ДСТУ 7564-384"},"DSTU7564-512":{id:"DSTU7564-512",ctxHashAlgo:Fy,ctxSignAlgo:xs,oid:"1.2.804.2.1.1.1.1.2.3",digestMethodUri:"http://www.w3.org/2001/04/xmlenc#dstu7564-512",signatureMethodUri:"http://www.w3.org/2001/04/xmldsig-more#dstu4145-dstu7564-512",displayName:"ДСТУ 7564-512"}},e0=["DSTU7564-256","GOST34311"],l0="DSTU7564-256";function Nt({label:s,accept:d,onFile:m,onFiles:r,multiple:g,current:p}){const z=q.useRef(null),[H,A]=q.useState(!1),v=O=>{if(!O||O.length===0)return;const T=Array.from(O);g?r==null||r(T):m==null||m(T[0])},w=Array.isArray(p)?p:p?[p]:[];return c.jsxs("label",{className:`filedrop ${H?"over":""} ${w.length>0?"has-file":""}`,onDragOver:O=>{O.preventDefault(),A(!0)},onDragLeave:()=>A(!1),onDrop:O=>{O.preventDefault(),A(!1),v(O.dataTransfer.files)},children:[c.jsx("input",{ref:z,type:"file",accept:d,multiple:g,hidden:!0,onChange:O=>v(O.target.files)}),c.jsx("span",{className:"filedrop-label",children:s}),w.length>0?c.jsx("span",{className:"filedrop-file",children:w.map((O,T)=>c.jsxs("span",{className:"filedrop-file-row",children:[O.name," ",c.jsxs("span",{className:"muted",children:["(",O.size.toLocaleString()," bytes)"]})]},T))}):c.jsx("span",{className:"muted",children:"перетягніть файл або натисніть, щоб обрати"})]})}const Zo=["BES","T","C","X-Long"],Ko=["B-B","B-T"],Vo=["B-B","B-T","B-LT","B-LTA"],Jo=[{id:"CAdES",label:"CAdES (.p7s) — підпис у CMS-файлі"},{id:"PAdES",label:"PAdES (.pdf) — підпис вбудовано в PDF"},{id:"XAdES",label:"XAdES (.xml) — підпис у XML-файлі"},{id:"ASIC-S",label:"ASIC-S — простий контейнер"},{id:"ASIC-E",label:"ASIC-E — розширений контейнер"}];function t0({value:s,onChange:d,supported:m}){const r=m&&m.length>0?Jo.filter(z=>m.includes(z.id)):Jo,g=s.format==="CAdES"?Zo:s.format==="PAdES"?Ko:Vo,p=z=>{const H=z==="CAdES"?Zo:z==="PAdES"?Ko:Vo,A=H.includes(s.level)?s.level:H[0];d({...s,format:z,level:A,asicSignType:z==="ASIC-S"?"CAdES":z==="ASIC-E"?"XAdES":void 0})};return c.jsxs("div",{className:"formats",children:[c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Алгоритм гешування"}),e0.map(z=>c.jsxs("label",{className:"radio",children:[c.jsx("input",{type:"radio",name:"hashAlgo",checked:s.hashAlgo===z,onChange:()=>d({...s,hashAlgo:z})}),c.jsx("span",{children:Py[z].displayName})]},z))]}),c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Формат підпису"}),r.map(z=>c.jsxs("label",{className:"radio",children:[c.jsx("input",{type:"radio",name:"format",checked:s.format===z.id,onChange:()=>p(z.id)}),c.jsx("span",{children:z.label})]},z.id))]}),c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Рівень / профіль"}),c.jsx("select",{value:s.level,onChange:z=>d({...s,level:z.target.value}),children:g.map(z=>c.jsx("option",{value:z,children:z},z))})]}),s.format==="XAdES"&&c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Тип XAdES"}),c.jsxs("select",{value:s.xadesType??"enveloped",onChange:z=>d({...s,xadesType:z.target.value}),children:[c.jsx("option",{value:"enveloped",children:"enveloped"}),c.jsx("option",{value:"detached",children:"detached"})]})]}),s.format==="ASIC-E"&&c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Підпис у ASIC"}),c.jsxs("select",{value:s.asicSignType??"XAdES",onChange:z=>d({...s,asicSignType:z.target.value}),children:[c.jsx("option",{value:"XAdES",children:"XAdES"}),c.jsx("option",{value:"CAdES",children:"CAdES"})]})]}),s.format==="CAdES"&&c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Тип CAdES"}),c.jsxs("label",{className:"radio",children:[c.jsx("input",{type:"checkbox",checked:!!s.cadesExternal,onChange:z=>d({...s,cadesExternal:z.target.checked})}),c.jsx("span",{children:"Відокремлений (detached) — підпис без оригінального файлу"})]})]})]})}function a0({client:s,supportedFormats:d}){const{loaded:m,savePassword:r,requestPassword:g}=Da(),[p,z]=q.useState(null),[H,A]=q.useState({format:"CAdES",level:"BES",hashAlgo:l0}),[v,w]=q.useState(!1),[O,T]=q.useState(null),[_,Y]=q.useState(null),F=async()=>{if(!p)return;let J;if(!r){const B=await g("Підпис документа");if(B===null)return;J=B}T(null),w(!0),Y(null);try{const B=await p.arrayBuffer(),ce=H.format==="ASIC-S"||H.format==="ASIC-E"||H.format==="XAdES"?[{name:p.name,data:B}]:void 0,oe=await s.send({kind:"sign",data:B,format:H.format,level:H.level,xadesType:H.xadesType,asicSignType:H.asicSignType,hashAlgo:H.hashAlgo,external:H.format==="CAdES"?!!H.cadesExternal:void 0,references:ce,password:J},[B]),pe=new Blob([oe.signature],{type:"application/octet-stream"}),ge=p.name.replace(/\.[^.]+$/,"");let $;switch(H.format){case"CAdES":$=`${p.name}.p7s`;break;case"PAdES":$=`${ge}.signed.pdf`;break;case"XAdES":$=`${ge}.xml`;break;case"ASIC-S":$=`${ge}.asics`;break;case"ASIC-E":$=`${ge}.asice`;break}Y({url:URL.createObjectURL(pe),name:$,bytes:oe.signature.byteLength})}catch(B){T(B.message)}finally{w(!1)}};return c.jsxs("div",{className:"tab-sign",children:[c.jsxs("section",{className:m?"":"disabled",children:[c.jsx("h2",{children:"Документ"}),c.jsx(Nt,{label:"Будь-який файл для підпису",onFile:z,current:p&&{name:p.name,size:p.size}})]}),c.jsxs("section",{className:m?"":"disabled",children:[c.jsx("h2",{children:"Формат"}),c.jsx(t0,{value:H,onChange:A,supported:d})]}),c.jsxs("section",{children:[!m&&c.jsx("p",{className:"muted",children:"Потрібен завантажений ключ — натисніть «Завантажити ключ» вгорі."}),c.jsx("button",{className:"primary big",disabled:!m||!p||v,onClick:F,children:v?"Підписую…":"Підписати"}),O&&c.jsx("div",{className:"error",children:O}),_&&c.jsxs("div",{className:"result",children:[c.jsxs("a",{href:_.url,download:_.name,children:["Завантажити ",_.name]}),c.jsxs("span",{className:"muted",children:[" (",_.bytes.toLocaleString()," байт)"]})]})]})]})}function $u(s){const d=s.lastIndexOf(".");if(d<0)return"application/octet-stream";const m=s.slice(d+1).toLowerCase();return{pdf:"application/pdf",txt:"text/plain",xml:"application/xml",json:"application/json",html:"text/html",htm:"text/html",csv:"text/csv",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",zip:"application/zip",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",doc:"application/msword",xls:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",odt:"application/vnd.oasis.opendocument.text",ods:"application/vnd.oasis.opendocument.spreadsheet",rtf:"application/rtf",p7s:"application/pkcs7-signature"}[m]??"application/octet-stream"}function n0(s){var d;return((d=s.issuerCNs)==null?void 0:d[0])??s.address??""}function u0(s){var r;const d=((r=s.issuerCNs)==null?void 0:r[0])??s.address??"—";let m=d;for(let g=0;g<4;g++){const p=m;if(m=m.replace(/^Акредитований центр сертифікації ключів\s+/i,"").replace(/^Кваліфікований надавач електронних довірчих послуг\s+/i,"").replace(/^КНЕДП\s+/i,"").replace(/^АЦСК\s+/i,"").replace(/^ЦСК\s+/i,"").replace(/[.,]?\s*Кваліфікований надавач електронних довірчих послуг\s*$/i,"").trim(),m===p)break}return m||d}function i0(s){const d={},m=(s.taxCode??"").trim();/^\d{8}$/.test(m)?d.edrpou=m:/^\d{10}$/.test(m)&&(d.drfo=m);const r=(s.certFingerprint??"").trim();return r&&(d.certFingerprint=r.toLowerCase()),Object.keys(d).length===0?null:d}const c0=new TextEncoder,s0=new TextDecoder;let js=null;function f0(){if(js)return js;const s=new Uint32Array(256);for(let d=0;d<256;d++){let m=d;for(let r=0;r<8;r++)m=m&1?3988292384^m>>>1:m>>>1;s[d]=m>>>0}return js=s,s}function r0(s){const d=f0();let m=4294967295;for(let r=0;r>>8;return(m^4294967295)>>>0}function d0(s){if(!s)return{time:0,date:33};const d=(s.getHours()&31)<<11|(s.getMinutes()&63)<<5|Math.floor(s.getSeconds()/2)&31,m=(s.getFullYear()-1980&127)<<9|(s.getMonth()+1&15)<<5|s.getDate()&31;return{time:d&65535,date:m&65535}}function He(s,d,m){s[d]=m&255,s[d+1]=m>>>8&255}function Sl(s,d,m){s[d]=m&255,s[d+1]=m>>>8&255,s[d+2]=m>>>16&255,s[d+3]=m>>>24&255}function o0(s,d={}){const m=[...s];if(d.firstStoredEntry){const T=m.findIndex(_=>_.name===d.firstStoredEntry);if(T>0){const[_]=m.splice(T,1);m.unshift(_)}}const r=[];let g=[],p=0;for(const T of m){const _=c0.encode(T.name),Y=T.data,F=r0(Y),{time:J,date:B}=d0(T.mtime),G=new Uint8Array(30+_.length);Sl(G,0,67324752),He(G,4,20),He(G,6,0),He(G,8,0),He(G,10,J),He(G,12,B),Sl(G,14,F),Sl(G,18,Y.length),Sl(G,22,Y.length),He(G,26,_.length),He(G,28,0),G.set(_,30),r.push({name:_,data:Y,crc:F,size:Y.length,time:J,date:B,lfhOffset:p}),g.push(G,Y),p+=G.length+Y.length}const z=p;for(const T of r){const _=new Uint8Array(46+T.name.length);Sl(_,0,33639248),He(_,4,20),He(_,6,20),He(_,8,0),He(_,10,0),He(_,12,T.time),He(_,14,T.date),Sl(_,16,T.crc),Sl(_,20,T.size),Sl(_,24,T.size),He(_,28,T.name.length),He(_,30,0),He(_,32,0),He(_,34,0),He(_,36,0),Sl(_,38,0),Sl(_,42,T.lfhOffset),_.set(T.name,46),g.push(_),p+=_.length}const H=p-z,A=new Uint8Array(22);Sl(A,0,101010256),He(A,4,0),He(A,6,0),He(A,8,r.length),He(A,10,r.length),Sl(A,12,H),Sl(A,16,z),He(A,20,0),g.push(A);let v=0;for(const T of g)v+=T.length;const w=new Uint8Array(v);let O=0;for(const T of g)w.set(T,O),O+=T.length;return w}function Vt(s,d){return s[d]|s[d+1]<<8}function Ca(s,d){return(s[d]|s[d+1]<<8|s[d+2]<<16|s[d+3]<<24)>>>0}function m0(s){let d=-1;for(let z=s.length-22;z>=Math.max(0,s.length-65557);z--)if(Ca(s,z)===101010256){d=z;break}if(d<0)throw new Error("ZIP: end of central directory not found");const m=Vt(s,d+10),r=Ca(s,d+16),g=[];let p=r;for(let z=0;z matched",d);const m=_s(d);return m?Tt(m,"name-extension",`classified by file extension as ${m} — content unrecognised`,d):Tt(null,"unknown","no recognised signature container",d)}function Wo(s,d){if(s.length=3&&s[0]===Es[0]&&s[1]===Es[1]&&s[2]===Es[2]&&(d=3);dko+$o){const m=Wu.decode(s.subarray(s.length-$o));if(Fo(m))return!0}return!1}const x0=/<(?:[A-Za-z_][\w.\-]*:)?Signature[\s/>]/;function Fo(s){return s.indexOf(g0)!==-1&&x0.test(s)}function j0(s){const d=Wu.decode(s.subarray(0,Math.min(s.length,256)));if(d.indexOf(Ns)!==-1)return{variant:"ASIC-E",reason:`ASIC-E via mimetype (${Ns})`};if(d.indexOf(Ts)!==-1)return{variant:"ASIC-S",reason:`ASIC-S via mimetype (${Ts})`};let m;try{m=m0(s)}catch{return null}const r=m.find(p=>p.name==="mimetype");if(r&&r.method===0){const p=Wu.decode(r.data).trim();if(p===Ts)return{variant:"ASIC-S",reason:`ASIC-S via mimetype (${p})`};if(p===Ns)return{variant:"ASIC-E",reason:`ASIC-E via mimetype (${p})`}}const g=m.find(p=>/^META-INF\/signatures?\d*\.(p7s|xml)$/i.test(p.name));return g?{variant:"ASIC-E",reason:`ASIC-E via ${g.name} (no mimetype declared)`}:null}function _s(s){if(!s)return null;const d=s.toLowerCase();return d.endsWith(".p7s")?"CAdES":d.endsWith(".pdf")?"PAdES":d.endsWith(".asice")||d.endsWith(".sce")?"ASIC-E":d.endsWith(".asics")||d.endsWith(".scs")?"ASIC-S":null}function Tt(s,d,m,r){if(r&&d!=="name-extension"&&d!=="unknown"){const g=_s(r);g&&g!==s&&(m+=` (file name suggested ${g})`)}return{format:s,source:d,reason:m}}const E0=[{key:"subjCN",label:"Підписувач"},{key:"subjFullName",label:"Повне ім'я"},{key:"subjOrg",label:"Організація"},{key:"subjOrgUnit",label:"Підрозділ"},{key:"subjTitle",label:"Посада"},{key:"subjEDRPOUCode",label:"ЄДРПОУ"},{key:"subjDRFOCode",label:"РНОКПП"},{key:"subjUNZR",label:"УНЗР"},{key:"subjEMail",label:"Email"},{key:"subjLocality",label:"Місто"},{key:"subjState",label:"Область"},{key:"subjCountry",label:"Країна"},{key:"issuerCN",label:"Видавець"},{key:"serial",label:"Серійний номер"}];function am({signer:s}){return c.jsx(c.Fragment,{children:E0.map(d=>{const m=s[d.key];return typeof m!="string"||m.length===0?null:c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:d.label}),c.jsx("dd",{children:m})]},String(d.key))})})}const A0={"qualified-signature":"Кваліфікований сертифікат","qualified-seal":"Кваліфікований сертифікат","enhanced-signature":"Посилений сертифікат",qwac:"QWAC (автентифікація сайту)",unknown:"Тип сертифіката не визначено"},T0={"natural-person":"Фізична особа","employee-or-officer":"Представник юридичної особи","sole-proprietor":"ФОП","legal-entity":"Юридична особа","cash-register":"Прив'язка до ПРРО",ca:"Центр сертифікації (CA)","ocsp-responder":"OCSP-сервер","tsp-responder":"TSP-сервер","cmp-responder":"CMP-сервер",unknown:"Власник не визначений"},N0={signature:"Підпис",seal:"Печатка",encryption:"Шифрування",authentication:"Сертифікат"};function z0(s){const d=s.purposes.includes("seal"),m=s.purposes.includes("signature");if(!d&&!m)return null;const r=s.keyOnQscd===!0,g=d?s.kind==="qualified-seal":s.kind==="qualified-signature";return g&&r?d?{label:"Кваліфікована електронна печатка",cls:"badge-ok",hint:"Кваліфікований сертифікат + ключ на QSCD"}:{label:"КЕП",cls:"badge-ok",hint:"Кваліфікований сертифікат + ключ на QSCD"}:g?d?{label:"Посилена електронна печатка",cls:"badge-warn",hint:"Кваліфікований сертифікат, але ключ програмний — не КЕПч"}:{label:"Посилений електронний підпис",cls:"badge-warn",hint:"Кваліфікований сертифікат, але ключ програмний — не КЕП"}:d?{label:"Посилена електронна печатка",cls:"badge-muted",hint:"Сертифікат не кваліфікований"}:{label:"Посилений електронний підпис",cls:"badge-muted",hint:"Сертифікат не кваліфікований"}}function Io(s){return s?s.replace("T"," ").replace(/Z$/," UTC"):"—"}function Po(s){return/^https?:\/\//i.test(s)}function nm({details:s}){var J;const{info:d,validity:m,serialHex:r,algorithms:g,pubKeyHashGost:p,isSelfSigned:z,extensions:H,interpretation:A,der:v}=s,w=v.buffer.slice(v.byteOffset,v.byteOffset+v.byteLength),O={url:URL.createObjectURL(new Blob([w],{type:"application/pkix-cert"})),name:`cert-${(p||r).slice(0,8).toUpperCase()}.cer`,bytes:v.byteLength},T=H,_=A,Y=z0(_),F=_.keyOnQscd===!1?{text:"Програмний ключ",cls:"badge-warn"}:_.keyOnQscd===!0&&(Y==null?void 0:Y.cls)!=="badge-ok"?{text:"Ключ на захищеному носії",cls:"badge-ok"}:null;return c.jsxs("div",{className:"signer-card",children:[c.jsx("h3",{children:"Сертифікат"}),c.jsxs("div",{className:"cert-section",children:[c.jsxs("div",{className:"cert-pills",children:[_.purposes.map(B=>c.jsx("span",{className:"badge badge-ok",children:N0[B]},B)),Y&&c.jsx("span",{className:`badge ${Y.cls}`,title:Y.hint,children:Y.label}),c.jsx("span",{className:`badge ${_.kind==="unknown"?"badge-muted":"badge-ok"}`,children:A0[_.kind]}),c.jsx("span",{className:`badge ${_.holderType==="unknown"?"badge-muted":"badge-ok"}`,children:T0[_.holderType]}),F&&c.jsx("span",{className:`badge ${F.cls}`,children:F.text}),z&&c.jsx("span",{className:"badge badge-warn",children:"Самопідписаний"}),((J=T.basicConstraints)==null?void 0:J.isCA)&&c.jsx("span",{className:"badge badge-muted",children:"CA"}),_.legislationCountry&&c.jsxs("span",{className:"badge badge-muted",children:["Юрисдикція: ",_.legislationCountry]})]}),c.jsxs("dl",{style:{marginTop:10},children:[c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Алгоритм ключа"}),c.jsxs("dd",{children:[g.publicKey.name," ",c.jsx("span",{className:"muted mono",children:g.publicKey.oid})]})]}),c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Підпис ЦСК"}),c.jsxs("dd",{children:[g.signature.name," ",c.jsx("span",{className:"muted mono",children:g.signature.oid})]})]})]}),(_.taxId||_.unzr||_.pproNumber||_.pdsUrl)&&c.jsxs("dl",{style:{marginTop:10},children:[_.taxId&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:_.taxId.kind==="rnokpp"?"РНОКПП":"ЄДРПОУ"}),c.jsx("dd",{className:"mono",children:_.taxId.value})]}),_.pproNumber&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"ПРРО"}),c.jsxs("dd",{children:["№ ",_.pproNumber]})]}),_.pdsUrl&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"PKI Disclosure Statement"}),c.jsx("dd",{children:c.jsx("a",{href:_.pdsUrl,target:"_blank",rel:"noreferrer",children:_.pdsUrl})})]})]}),_.evidence.length>0&&c.jsxs("details",{style:{marginTop:8},children:[c.jsx("summary",{className:"muted",style:{cursor:"pointer"},children:"чому такі висновки?"}),c.jsx("ul",{style:{margin:"6px 0 0 18px",padding:0},children:_.evidence.map((B,G)=>c.jsx("li",{style:{fontSize:12.5},className:"muted",children:B},G))})]})]}),c.jsx("h4",{className:"cert-section-title",children:"Власник"}),c.jsx("dl",{children:c.jsx(am,{signer:d})}),c.jsx("h4",{className:"cert-section-title",children:"Чинність"}),c.jsxs("dl",{children:[c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Дійсний з"}),c.jsx("dd",{children:Io(m.notBefore)})]}),c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Дійсний до"}),c.jsx("dd",{children:Io(m.notAfter)})]})]}),c.jsxs("div",{className:"signer-card",style:{marginTop:10,marginBottom:10},children:[c.jsx("h4",{style:{margin:"0 0 6px",fontSize:14},children:"Сертифікат"}),c.jsxs("div",{children:[c.jsx("a",{href:O.url,download:O.name,children:O.name}),c.jsxs("span",{className:"muted",children:[" · ",O.bytes," bytes"]})]})]}),c.jsx("h4",{className:"cert-section-title",children:"Розширення (X.509)"}),c.jsxs("dl",{children:[T.keyUsage&&T.keyUsage.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Key Usage"}),c.jsx("dd",{children:T.keyUsage.map((B,G)=>c.jsx("span",{className:"badge badge-muted",children:B},G))})]}),T.extKeyUsage&&T.extKeyUsage.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Extended Key Usage"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.extKeyUsage.map((B,G)=>c.jsxs("li",{children:[B.name??B.oid," ",B.name&&c.jsx("span",{className:"muted mono",children:B.oid})]},G))})})]}),T.basicConstraints&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Basic Constraints"}),c.jsxs("dd",{children:[T.basicConstraints.isCA?"CA = TRUE":"CA = FALSE",typeof T.basicConstraints.pathLen=="number"&&c.jsxs("span",{className:"muted",children:[" · pathLen = ",T.basicConstraints.pathLen]})]})]}),T.subjectKeyId&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Subject Key ID"}),c.jsx("dd",{className:"mono",style:{wordBreak:"break-all"},children:T.subjectKeyId})]}),T.authorityKeyId&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Authority Key ID"}),c.jsx("dd",{className:"mono",style:{wordBreak:"break-all"},children:T.authorityKeyId})]}),T.subjectAltNames&&T.subjectAltNames.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Subject Alt Names"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.subjectAltNames.map((B,G)=>c.jsxs("li",{children:[c.jsxs("span",{className:"muted",children:[B.type,":"]})," ",B.value]},G))})})]}),T.crlDistributionPoints&&T.crlDistributionPoints.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"CRL Distribution Points"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.crlDistributionPoints.map((B,G)=>c.jsx("li",{children:Po(B)?c.jsx("a",{href:B,target:"_blank",rel:"noreferrer",children:B}):c.jsx("span",{className:"mono",children:B})},G))})})]}),T.authorityInfoAccess&&T.authorityInfoAccess.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Authority Info Access"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.authorityInfoAccess.map((B,G)=>c.jsxs("li",{children:[c.jsxs("span",{className:"muted",children:[B.method,":"]})," ",Po(B.location)?c.jsx("a",{href:B.location,target:"_blank",rel:"noreferrer",children:B.location}):c.jsx("span",{className:"mono",children:B.location})]},G))})})]}),T.certificatePolicies&&T.certificatePolicies.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Certificate Policies"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.certificatePolicies.map((B,G)=>c.jsxs("li",{children:[B.name??c.jsx("span",{className:"muted",children:"(без назви в каталозі)"})," ",c.jsx("span",{className:"muted mono",children:B.oid})]},G))})})]}),T.qcStatements&&T.qcStatements.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"QC Statements"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.qcStatements.map((B,G)=>c.jsxs("li",{children:[B.name??c.jsx("span",{className:"muted",children:"(невідомий OID)"})," ",c.jsx("span",{className:"muted mono",children:B.oid})]},G))})})]}),T.unknown&&T.unknown.length>0&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Інші розширення"}),c.jsx("dd",{children:c.jsx("ul",{style:{margin:0,paddingLeft:16},children:T.unknown.map((B,G)=>c.jsxs("li",{children:[c.jsx("span",{className:"mono",children:B.oid}),B.critical&&c.jsx("span",{className:"badge badge-warn",style:{marginLeft:8},children:"critical"})]},G))})})]})]})]})}function _0({client:s,der:d,title:m,onClose:r}){const[g,p]=q.useState(null),[z,H]=q.useState(null);if(q.useEffect(()=>{if(!d){p(null),H(null);return}let v=!1;return(async()=>{try{const w=new Uint8Array(d).buffer,O=await s.send({kind:"parseCertificateFile",file:w},[w]);if(v)return;p(O.certs[0]??null)}catch(w){v||H(w.message??String(w))}})(),()=>{v=!0}},[d,s]),q.useEffect(()=>{if(!d)return;const v=O=>{O.key==="Escape"&&r()};document.addEventListener("keydown",v);const w=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",v),document.body.style.overflow=w}},[d,r]),!d)return null;const A=v=>{v.target===v.currentTarget&&r()};return Os.createPortal(c.jsx("div",{className:"modal-overlay",onMouseDown:A,children:c.jsxs("div",{className:"modal-dialog modal-dialog-wide",role:"dialog","aria-modal":"true","aria-labelledby":"cert-details-title",children:[c.jsxs("header",{className:"modal-header",children:[c.jsx("h2",{id:"cert-details-title",children:m??"Сертифікат"}),c.jsx("button",{type:"button",className:"modal-close","aria-label":"Закрити",onClick:r,children:"×"})]}),c.jsxs("div",{className:"modal-body",children:[z&&c.jsx("div",{className:"error",children:z}),!z&&!g&&c.jsxs("div",{className:"progress",children:[c.jsx("span",{className:"spinner"})," розбираю сертифікат…"]}),g&&c.jsx(nm,{details:g})]})]})}),document.body)}function U0(s,d,m){if(!s)return null;const r=(s==="ASIC-S"||s==="ASIC-E")&&m?`${s} (${m})`:s;return d?`${r} ${d}`:r}function um(s){if(!s)return"—";const d=s instanceof Date?s:new Date(s);return Number.isNaN(d.getTime())?String(s):d.toISOString().replace("T"," ").replace(/\.\d+Z$/," UTC")}function O0(s){if(!s||!s.IsTimeAvail&&!s.IsTimeStamp)return null;const d=um(s.Time);switch(s.Source){case"tsa":return{label:"Час від TSA",badge:{text:"✓ перевірено",className:"badge-ok"},time:d,tsaSerial:typeof s.TsaSerial=="string"?s.TsaSerial:void 0};case"tsa-unverified":return{label:"Час від TSA",badge:{text:"⚠ хеш мітки не збігається",className:"badge-warn"},time:d,tsaSerial:typeof s.TsaSerial=="string"?s.TsaSerial:void 0};case"self":return{label:"Заявлений час підпису",badge:{text:"без TSA",className:"badge-muted"},time:d};default:return s.IsTimeStamp?{label:"Час від TSA",badge:{text:"✓ перевірено",className:"badge-ok"},time:d}:{label:"Заявлений час підпису",badge:{text:"без TSA",className:"badge-muted"},time:d}}}function C0(s){if(!s)return null;const d=g=>g&&g.length>0?g:void 0,m=s.atTime?um(s.atTime instanceof Date?s.atTime:new Date(s.atTime)):void 0,r=typeof s.responderUrl=="string"&&s.responderUrl.length>0?s.responderUrl:void 0;switch(s.status){case"good":return{badge:{text:"✓ дійсний",className:"badge-ok"},atTime:m,responder:r};case"revoked":return{badge:{text:"✗ відкликаний",className:"badge-bad"},atTime:m,responder:r};case"unknown":return{badge:{text:"? невідомий",className:"badge-warn"},detail:d(s.message),atTime:m,responder:r};case"unparseable":return{badge:{text:"⚠ некоректна відповідь OCSP",className:"badge-warn"},detail:d(s.message),responder:r};case"error":return{badge:{text:"⚠ не вдалося перевірити",className:"badge-warn"},detail:d(s.message),responder:r};case"unchecked":return{badge:{text:"не перевіряли",className:"badge-muted"},detail:d(s.message)};default:return null}}function D0({signer:s,signTime:d,certStatus:m,signatureAlgo:r,format:g,signatureLevel:p,levelReport:z,chain:H,asicInnerProfile:A,match:v,client:w,onEnrichForArchive:O}){const T=O0(d),_=C0(m),Y=U0(g,p,A),F=!!z&&z.declared!==z.effective,[J,B]=q.useState(null),[G,ce]=q.useState(!1),[oe,pe]=q.useState(null),ge=!!O&&g==="CAdES"&&p!=null&&p!=="X-Long"&&p!=="X-Long-Trusted",$=async()=>{if(!(!O||G)){ce(!0),pe(null);try{await O()}catch(ee){pe(ee.message??String(ee))}finally{ce(!1)}}};return c.jsxs("div",{className:"signer-card",children:[c.jsx("h3",{children:"Інформація про підпис"}),c.jsxs("dl",{children:[v&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Очікуваний підписувач"}),c.jsxs("dd",{children:[c.jsx("span",{className:`badge ${v.matched?"badge-ok":"badge-bad"}`,title:v.reasons.join("; "),children:v.matched?"✓ збігається":"✗ не збігається"}),!v.matched&&v.reasons.length>0&&c.jsxs("span",{className:"muted",children:["— ",v.reasons.join("; ")]})]})]}),Y&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Формат контейнера"}),c.jsxs("dd",{children:[c.jsx("span",{children:Y}),F&&z&&c.jsxs("span",{className:"badge badge-warn",children:["понижено з ",z.declared]}),F&&z&&z.warnings.length>0&&c.jsxs("span",{className:"muted",children:["— ",z.warnings.join("; ")]}),ge&&c.jsx("button",{type:"button",className:"btn-inline",onClick:$,disabled:G,title:"Доповнити підпис атрибутами архівного рівня (CAdES-X-Long): мітка часу, посилання на сертифікати ланцюга, статуси відкликання.",children:G?"Підготовка…":"Зберегти для архіву"}),oe&&c.jsxs("span",{className:"muted",children:["— ",oe]})]})]}),c.jsx(am,{signer:s}),T&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:T.label}),c.jsxs("dd",{children:[c.jsx("span",{children:T.time}),c.jsx("span",{className:`badge ${T.badge.className}`,children:T.badge.text}),T.tsaSerial&&c.jsxs("span",{className:"muted",children:[" (TSA #",T.tsaSerial,")"]})]})]}),!T&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Мітка часу"}),c.jsx("dd",{className:"muted",children:"не виявлено"})]}),_&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Статус сертифіката"}),c.jsxs("dd",{children:[c.jsx("span",{className:`badge ${_.badge.className}`,children:_.badge.text}),_.atTime&&c.jsxs("span",{className:"muted",children:["на ",_.atTime]}),_.detail&&c.jsxs("span",{className:"muted",children:["— ",_.detail]}),_.responder&&c.jsxs("span",{className:"muted",children:["(",_.responder,")"]})]})]}),r&&c.jsxs("div",{className:"row",children:[c.jsx("dt",{children:"Алгоритм підпису"}),c.jsxs("dd",{children:[c.jsx("span",{children:r.name}),r.id!==r.name&&c.jsx("span",{className:"muted mono",children:r.id})]})]})]}),H&&H.length>0&&c.jsxs("div",{className:"cert-chain",children:[c.jsxs("h4",{children:["Ланцюг сертифікатів (",H.length,")"]}),c.jsx("ol",{children:H.map((ee,k)=>{const le=c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"chain-row",children:[c.jsx("span",{className:"chain-name",children:ee.subjCN||"(без CN)"}),ee.isSigner&&c.jsx("span",{className:"badge badge-ok",children:"підписувач"}),ee.isTrustAnchor&&c.jsx("span",{className:"badge badge-ok",children:"довірений"}),ee.isSelfSigned&&!ee.isTrustAnchor&&c.jsx("span",{className:"badge badge-warn",children:"самопідписаний"})]}),c.jsxs("div",{className:"chain-meta muted",children:[c.jsxs("span",{children:["видавець: ",ee.issuerCN||"(невідомо)"]}),ee.notBefore&&ee.notAfter&&c.jsxs("span",{children:[" · дійсний ",ee.notBefore.slice(0,10)," … ",ee.notAfter.slice(0,10)]}),ee.serialHex&&c.jsxs("span",{className:"mono",children:[" · #",ee.serialHex.slice(0,16),ee.serialHex.length>16?"…":""]})]})]}),I=w&&ee.der&&ee.der.byteLength>0;return c.jsx("li",{children:I?c.jsx("button",{type:"button",className:"chain-link",onClick:()=>B({der:ee.der,title:ee.subjCN||"(без CN)"}),title:"Показати деталі сертифіката",children:le}):le},k)})})]}),w&&c.jsx(_0,{client:w,der:(J==null?void 0:J.der)??null,title:J==null?void 0:J.title,onClose:()=>B(null)})]})}async function M0(s){if(s.size<=32768)return new Uint8Array(await s.arrayBuffer());const r=new Uint8Array(await s.slice(0,16384).arrayBuffer()),g=new Uint8Array(await s.slice(s.size-16384).arrayBuffer()),p=new Uint8Array(r.length+g.length);return p.set(r,0),p.set(g,r.length),p}async function H0(s){const d=s.find(r=>/\.p7s$/i.test(r.name));if(d)return{sig:d,data:s.find(r=>r!==d)??null};const m=s.filter(r=>/\.xml$/i.test(r.name));if(m.length===2){const g=(await Promise.all(m.map(async p=>(await p.slice(0,256).text()).trimStart()))).findIndex(p=>/^(?:<\?xml[^?]*\?>\s*)?<(?:[\w-]+:)?Signature\b/.test(p));if(g>=0)return{sig:m[g],data:m[1-g]}}return{sig:s[0],data:s.find(r=>r!==s[0])??null}}function B0(s,d,m,r){if(r)return{name:r,mimeType:$u(r)};if(m)return{name:m,mimeType:$u(m)};if(s==="CAdES"){const p=d.replace(/\.p7s$/i,"");return{name:p,mimeType:$u(p)}}if(s==="PAdES")return{name:d,mimeType:"application/pdf"};if(s==="XAdES")return{name:d,mimeType:"application/xml"};const g=d.replace(/\.(asice|asics)$/i,"");return{name:g,mimeType:$u(g)}}function R0(s){return s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/1024/1024).toFixed(2)} MB`}function q0({client:s,supportedFormats:d}){const[m,r]=q.useState([]),[g,p]=q.useState(!1),[z,H]=q.useState(null),[A,v]=q.useState(null),[w,O]=q.useState(""),[T,_]=q.useState(null),[Y,F]=q.useState(null),J=q.useMemo(()=>i0({taxCode:w,certFingerprint:T??void 0}),[w,T]),B=w.trim(),G=B.length>0&&!/^\d{8}$/.test(B)&&!/^\d{10}$/.test(B),ce=async k=>{var I;if(!k){_(null),F(null);return}const le=await k.arrayBuffer();try{const be=(I=(await s.send({kind:"parseCertificateFile",file:le},[le])).certs[0])==null?void 0:I.pubKeyHashGost;if(!be)throw new Error("Не вдалось обчислити хеш відкритого ключа");_(be),F(k.name)}catch(se){_(null),F(null),H(se.message??String(se))}},oe=()=>{O(""),_(null),F(null)},pe=async(k,le,I,se,be)=>{const De=k.slice().buffer,Q=I?I.slice().buffer:null,b=await s.send({kind:"verify",sig:De,...Q?{data:Q}:{},format:se,autoFetchCert:!0,...J?{expected:J}:{}},Q?[De,Q]:[De]),{name:R,mimeType:V}=B0(b.format,le,b.payloadName,be),ae=new Blob([b.data],{type:V});v({signers:b.signers,asicInnerProfile:b.asicInnerProfile,format:b.format,payload:{url:URL.createObjectURL(ae),bytes:b.data.byteLength,name:R||"payload",mimeType:V},sigBytes:k,sigName:le,dataBytes:I})},ge=async()=>{if(m.length!==0){H(null),p(!0),v(null);try{const{sig:k,data:le}=await H0(m),I=await M0(k),se=v0(I,k.name);if(!se.format)throw new Error(`Cannot detect signature container — ${se.reason}`);const be=se.format,De=new Uint8Array(await k.arrayBuffer()),Q=(be==="CAdES"||be==="XAdES")&&le!=null,b=Q?new Uint8Array(await le.arrayBuffer()):null,R=Q?le.name:null;await pe(De,k.name,b,be,R)}catch(k){const le=k.message??String(k),I=m.length===1&&/\.p7s$/i.test(m[0].name);H(I?`${le} Якщо це відокремлений підпис, додайте оригінальний документ поряд з .p7s і повторіть.`:le)}finally{p(!1)}}},$=async k=>{if(!A)return;const le=A.sigBytes.slice().buffer,I=await s.send({kind:"enrichCadesToLong",sig:le,signIndex:k},[le]),se=new Uint8Array(I.bytes),be=A.sigName.replace(/\.p7s$/i,"")+".x-long.p7s",De=new Blob([se.slice()],{type:"application/pkcs7-signature"}),Q=URL.createObjectURL(De),b=document.createElement("a");b.href=Q,b.download=be,document.body.appendChild(b),b.click(),document.body.removeChild(b),setTimeout(()=>URL.revokeObjectURL(Q),6e4),I.warnings.length>0?H(I.warnings.join("; ")):H(null),await pe(se,be,A.dataBytes,A.format,null)},ee=m.map(k=>({name:k.name,size:k.size}));return c.jsxs("div",{className:"tab-verify",children:[c.jsxs("section",{children:[c.jsx("h2",{children:"Підписаний файл"}),c.jsx(Nt,{label:"p7s + оригінал, або pdf / xml / asics / asice",multiple:!0,onFiles:r,current:ee.length>0?ee:null})]}),c.jsxs("section",{children:[c.jsxs("details",{className:"expected-sender",children:[c.jsx("summary",{children:"Перевірити конкретного підписувача (необов'язково)"}),c.jsxs("div",{className:"row",children:[c.jsxs("label",{children:["ЄДРПОУ або РНОКПП",c.jsx("input",{type:"text",inputMode:"numeric",placeholder:"8 цифр (ЄДРПОУ) або 10 цифр (РНОКПП)",value:w,onChange:k=>O(k.target.value)})]}),G&&c.jsx("div",{className:"error",children:"Очікується 8 цифр (ЄДРПОУ) або 10 цифр (РНОКПП)"})]}),c.jsxs("div",{className:"row",children:[c.jsxs("label",{children:["Сертифікат підписувача (.cer / .crt / .der)",c.jsx("input",{type:"file",accept:".cer,.crt,.der,application/pkix-cert,application/x-x509-ca-cert",onChange:k=>{var le;return ce(((le=k.target.files)==null?void 0:le[0])??null)}})]}),T&&c.jsxs("div",{className:"cert-chip",children:[c.jsx("span",{children:Y}),c.jsxs("span",{className:"muted mono",children:["ГОСТ 34.311: ",T.slice(0,8),"…",T.slice(-8)]}),c.jsx("button",{type:"button",onClick:()=>ce(null),children:"×"})]})]}),c.jsx("div",{className:"row",children:c.jsx("button",{type:"button",onClick:oe,children:"Очистити"})})]}),c.jsx("button",{className:"primary big",disabled:m.length===0||g,onClick:ge,children:g?"Перевіряю…":"Перевірити"}),z&&c.jsx("div",{className:"error",children:z})]}),A&&c.jsxs("section",{children:[A.signers.length===0?c.jsx("div",{className:"error",children:"Жодного підпису не знайдено"}):c.jsxs(c.Fragment,{children:[J&&(()=>{const k=A.signers.length,le=A.signers.filter(be=>{var De;return(De=be.match)==null?void 0:De.matched}).length,I=le===k?"banner-ok":le===0?"banner-bad":"banner-warn",se=le===k?"Підпис від очікуваного підписувача":le===0?"Жоден підпис не від очікуваного підписувача":`${le} з ${k} підписів від очікуваного підписувача`;return c.jsx("div",{className:`banner ${I}`,children:se})})(),A.signers.length>1&&c.jsxs("div",{className:"signers-count",children:["Підписів: ",A.signers.length]}),A.signers.map((k,le)=>c.jsx(D0,{signer:k.signer,signTime:k.signTime,certStatus:k.certStatus,signatureAlgo:k.signatureAlgo,format:A.format,signatureLevel:k.signatureLevel,levelReport:k.levelReport,chain:k.chain,asicInnerProfile:A.asicInnerProfile,match:k.match,client:s,onEnrichForArchive:()=>$(le)},le))]}),A.payload&&A.payload.bytes>0&&c.jsxs("div",{className:"result",children:[c.jsxs("a",{href:A.payload.url,download:A.payload.name,title:`${A.payload.mimeType} · ${A.payload.bytes.toLocaleString()} байт`,children:["Завантажити «",A.payload.name,"»"]}),c.jsxs("span",{className:"muted",children:[" · ",R0(A.payload.bytes)]})]})]})]})}function w0({client:s}){const{loaded:d,savePassword:m,requestPassword:r}=Da(),[g,p]=q.useState(null),[z,H]=q.useState([]),[A,v]=q.useState(!1),[w,O]=q.useState(null),[T,_]=q.useState(null),Y=J=>H(B=>[...B,J]),F=async()=>{if(!g||z.length===0)return;let J;if(!m){const B=await r("Шифрування документа");if(B===null)return;J=B}O(null),v(!0),_(null);try{const B=await g.arrayBuffer(),G=await Promise.all(z.map(pe=>pe.arrayBuffer())),ce=await s.send({kind:"encrypt",data:B,recipients:G,password:J},{transfer:[B,...G]}),oe=new Blob([ce.envelope],{type:"application/octet-stream"});_({url:URL.createObjectURL(oe),bytes:ce.envelope.byteLength,name:`${g.name}.p7e`})}catch(B){O(B.message)}finally{v(!1)}};return c.jsxs("div",{className:"tab-encrypt",children:[c.jsxs("section",{children:[c.jsx("h2",{children:"1. Документ"}),c.jsx(Nt,{label:"Файл для шифрування",onFile:p,current:g&&{name:g.name,size:g.size}})]}),c.jsxs("section",{children:[c.jsx("h2",{children:"2. Сертифікат(и) одержувачів"}),c.jsx("p",{className:"muted",children:"Потрібен для кожного, хто має змогу розшифрувати — додавайте по одному."}),c.jsx(Nt,{label:"Сертифікат одержувача (.cer)",accept:".cer",onFile:Y,current:null}),z.length>0&&c.jsx("ul",{className:"recipients",children:z.map((J,B)=>c.jsxs("li",{children:[J.name," ",c.jsxs("span",{className:"muted",children:["(",J.size.toLocaleString()," байт)"]}),c.jsx("button",{className:"link",onClick:()=>H(G=>G.filter((ce,oe)=>oe!==B)),children:"видалити"})]},B))})]}),c.jsxs("section",{children:[c.jsx("p",{className:"muted",children:d?"Шифрування виконується в наявному контексті завантаженого ключа.":"Потрібен завантажений ключ — натисніть «Завантажити ключ» вгорі."}),c.jsx("button",{className:"primary big",disabled:!d||!g||z.length===0||A,onClick:F,children:A?"Шифрую…":"Зашифрувати"}),w&&c.jsx("div",{className:"error",children:w}),T&&c.jsxs("div",{className:"result",children:[c.jsxs("a",{href:T.url,download:T.name,children:["Завантажити ",T.name]}),c.jsxs("span",{className:"muted",children:[" (",T.bytes.toLocaleString()," байт)"]})]})]})]})}function L0({client:s}){const{loaded:d,savePassword:m,requestPassword:r}=Da(),[g,p]=q.useState(null),[z,H]=q.useState(null),[A,v]=q.useState(!1),[w,O]=q.useState(null),[T,_]=q.useState(null),Y=async()=>{if(!g)return;let F;if(!m){const J=await r("Розшифрування файлу");if(J===null)return;F=J}O(null),v(!0),_(null);try{const J=await g.arrayBuffer(),B=z?await z.arrayBuffer():void 0,G=B?[J,B]:[J],ce=await s.send({kind:"decrypt",envelope:J,senderCert:B,password:F},G),oe=new Blob([ce.data]),pe=g.name.replace(/\.p7e$/i,"");_({url:URL.createObjectURL(oe),bytes:ce.data.byteLength,name:pe||"decrypted"})}catch(J){O(J.message)}finally{v(!1)}};return c.jsxs("div",{className:"tab-decrypt",children:[c.jsxs("section",{children:[c.jsx("h2",{children:"Зашифрований файл"}),c.jsx(Nt,{label:"Зашифрований конверт (.p7e)",accept:".p7e",onFile:p,current:g&&{name:g.name,size:g.size}})]}),c.jsxs("section",{children:[c.jsx("h2",{children:"Сертифікат відправника (необов'язково)"}),c.jsx(Nt,{label:"Сертифікат відправника (.cer)",accept:".cer",onFile:H,current:z&&{name:z.name,size:z.size}})]}),c.jsxs("section",{children:[!d&&c.jsx("p",{className:"muted",children:"Потрібен завантажений ключ — натисніть «Завантажити ключ» вгорі."}),c.jsx("button",{className:"primary big",disabled:!d||!g||A,onClick:Y,children:A?"Розшифровую…":"Розшифрувати"}),w&&c.jsx("div",{className:"error",children:w}),T&&c.jsxs("div",{className:"result",children:[c.jsxs("a",{href:T.url,download:T.name,children:["Завантажити ",T.name]}),c.jsxs("span",{className:"muted",children:[" (",T.bytes.toLocaleString()," байт)"]})]})]})]})}function Y0({client:s}){const[d,m]=q.useState(null),[r,g]=q.useState(!1),[p,z]=q.useState(null),[H,A]=q.useState(null),[v,w]=q.useState(0),O=async _=>{m(_),z(null),g(!0),A(null),w(0);try{const Y=await _.arrayBuffer(),F=await s.send({kind:"parseCertificateFile",file:Y},[Y]);A({format:F.format,certs:F.certs})}catch(Y){z(Y.message??String(Y))}finally{g(!1)}},T=d?{name:d.name,size:d.size}:null;return c.jsxs("div",{className:"tab-certificate",children:[c.jsxs("section",{children:[c.jsx("h2",{children:"Сертифікат"}),c.jsx(Nt,{label:".cer / .crt / .der / .pem / .p7b",accept:".cer,.crt,.der,.pem,.p7b,.p7c,application/pkix-cert,application/x-x509-ca-cert,application/pkcs7-mime",onFile:O,current:T}),r&&c.jsxs("div",{className:"progress",children:[c.jsx("span",{className:"spinner"})," розбираю сертифікат…"]}),p&&c.jsx("div",{className:"error",style:{marginTop:10},children:p})]}),H&&H.certs.length===0&&c.jsx("div",{className:"banner banner-warn",children:"У файлі не знайдено жодного сертифіката."}),H&&H.certs.length>1&&c.jsxs("section",{children:[c.jsxs("div",{className:"signers-count",children:["У файлі ",H.certs.length," сертифікат",H.certs.length===1?"":H.certs.length<5?"и":"ів"," ","(формат: ",H.format,")"]}),c.jsx("div",{className:"cert-pills",style:{marginTop:8},children:H.certs.map((_,Y)=>c.jsxs("button",{type:"button",className:`badge ${Y===v?"badge-ok":"badge-muted"}`,style:{cursor:"pointer",font:"inherit"},onClick:()=>w(Y),children:[Y+1,". ",_.info.subjCN||_.info.issuerCN||"(без CN)"]},Y))})]}),H&&H.certs[v]&&c.jsx(nm,{details:H.certs[v]})]})}const G0=1,im=2,X0=3,Q0=1,cm=2;function Un(s,d,m="application/octet-stream"){return{url:URL.createObjectURL(new Blob([s],{type:m})),name:d,bytes:s.byteLength}}function em(s){const d=s.code;return d===51||d===49}function Z0({client:s}){const{loaded:d,signer:m,requestPassword:r,savePassword:g}=Da(),[p,z]=q.useState("new"),[H,A]=q.useState({}),[v,w]=q.useState(""),[O,T]=q.useState(""),[_,Y]=q.useState(im),[F,J]=q.useState(cm),[B,G]=q.useState(!1),[ce,oe]=q.useState(null),[pe,ge]=q.useState(null),[$,ee]=q.useState(null),[k,le]=q.useState(null);q.useEffect(()=>{!d&&p==="existing"&&z("new")},[d,p]);const I=Q=>b=>{A(R=>({...R,[Q]:b}))},se=async()=>{if(d){oe(null),G(!0);try{let Q;if(!g){const R=await r("Підтягнути реквізити з ключа");if(R==null)return;Q=R}const b=await s.send({kind:"getOwnerInfo",source:{kind:"loaded",password:Q}});A(R=>{const V={...R};for(const[ae,xe]of Object.entries(b.subject)){const y=R[ae];(y==null||y==="")&&(V[ae]=xe)}return V})}catch(Q){em(Q)||oe(Q.message??String(Q))}finally{G(!1)}}},be=async()=>{oe(null),ge(null),G(!0),ee(null),k&&(URL.revokeObjectURL(k.url),le(null));try{let Q;if(p==="new"){if(!v)throw new Error("Задайте пароль для нового файлу ключа.");if(v!==O)throw new Error("Паролі не збігаються.");Q=await s.send({kind:"generateCertRequest",mode:"new",subject:H,newPassword:v,uaDSKeysSpec:_,uaKEPKeysSpec:F})}else{if(!d)throw new Error("Спочатку завантажте ключ через кнопку у заголовку.");const ae=await r("Згенерувати запит на сертифікат");if(ae==null)return;Q=await s.send({kind:"generateCertRequest",mode:"existing",subject:H,source:{kind:"loaded",password:ae}})}ee(Q);const b=o0([{name:Q.signRequestName,data:new Uint8Array(Q.signRequest)},{name:Q.kepRequestName,data:new Uint8Array(Q.kepRequest)}]),R=`requests-${Q.signKeyHashHex.slice(0,8).toUpperCase()}-${Q.kepKeyHashHex.slice(0,8).toUpperCase()}.zip`,V=b.buffer.slice(b.byteOffset,b.byteOffset+b.byteLength);le(Un(V,R,"application/zip"))}catch(Q){p==="existing"&&em(Q)?ge("Цей файл ключа не містить сертифіката — переключіться на «Створити новий ключ»."):oe(Q.message??String(Q))}finally{G(!1)}},De=!B&&(p==="new"?v.length>0&&v===O:d);return c.jsxs("div",{className:"tab-request",children:[c.jsxs("section",{children:[c.jsx("h2",{children:"Запит на сертифікат"}),d&&c.jsxs("fieldset",{className:"formats",children:[c.jsx("legend",{children:"Режим"}),c.jsxs("label",{className:"radio",children:[c.jsx("input",{type:"radio",name:"req-mode",checked:p==="new",onChange:()=>z("new")}),"Створити новий ключ і запит"]}),c.jsxs("label",{className:"radio",children:[c.jsx("input",{type:"radio",name:"req-mode",checked:p==="existing",onChange:()=>z("existing")}),"На основі завантаженого ключа ",c.jsxs("span",{className:"muted",children:["— ",(m==null?void 0:m.subjCN)??"(без CN)"]})]})]})]}),c.jsx("section",{children:c.jsxs("details",{children:[c.jsx("summary",{style:{cursor:"pointer",userSelect:"none",fontSize:14},children:"Розширені параметри"}),c.jsxs("div",{style:{marginTop:12},children:[p==="new"&&c.jsx(K0,{uaDSKeysSpec:_,uaKEPKeysSpec:F,onChangeDS:Y,onChangeKEP:J}),p==="existing"&&c.jsx("div",{style:{marginBottom:10},children:c.jsx("button",{type:"button",className:"secondary",onClick:se,disabled:B||!d,children:"Підтягнути реквізити з ключа"})}),c.jsx("h3",{style:{marginTop:p==="existing"?14:0},children:"Реквізити"}),c.jsx(V0,{subject:H,setField:I})]})]})}),p==="new"&&c.jsxs("p",{className:"muted",style:{marginTop:0,fontSize:13},children:["Новий ключ зберігається у форматі PKCS#12 (",c.jsx("code",{children:".pfx"}),")."]}),p==="new"&&c.jsxs("section",{children:[c.jsx("h3",{children:"Пароль для нового ключа"}),c.jsx("input",{className:"password",type:"password",placeholder:"Пароль",value:v,onChange:Q=>w(Q.target.value),autoComplete:"new-password",style:{display:"block",marginBottom:8}}),c.jsx("input",{className:"password",type:"password",placeholder:"Підтвердіть пароль",value:O,onChange:Q=>T(Q.target.value),autoComplete:"new-password",style:{display:"block"}}),v.length>0&&O.length>0&&v!==O&&c.jsx("div",{className:"error",style:{marginTop:8},children:"Паролі не збігаються"})]}),c.jsxs("section",{children:[c.jsx("button",{className:"primary big",disabled:!De,onClick:be,children:B?"Генерую…":"Згенерувати запит"}),ce&&c.jsx("div",{className:"error",style:{marginTop:10},children:ce}),pe&&c.jsx("div",{className:"banner banner-warn",style:{marginTop:10},children:pe})]}),$&&c.jsxs("section",{children:[c.jsx("h3",{children:"Результат"}),c.jsx(J0,{result:$,zip:k})]})]})}function K0({uaDSKeysSpec:s,uaKEPKeysSpec:d,onChangeDS:m,onChangeKEP:r}){return c.jsxs("div",{style:{display:"grid",gap:8,marginBottom:12},children:[c.jsxs("label",{style:{display:"block",fontSize:13},children:[c.jsx("span",{className:"muted",style:{display:"block",marginBottom:2},children:"Довжина ключа підпису"}),c.jsxs("select",{value:s,onChange:g=>m(Number(g.target.value)),style:{display:"block",width:"100%",padding:"6px 10px",font:"inherit",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:4},children:[c.jsx("option",{value:G0,children:"191 біт (ДСТУ 4145)"}),c.jsx("option",{value:im,children:"257 біт (ДСТУ 4145, за замовч.)"}),c.jsx("option",{value:X0,children:"307 біт (ДСТУ 4145)"})]})]}),c.jsxs("label",{style:{display:"block",fontSize:13},children:[c.jsx("span",{className:"muted",style:{display:"block",marginBottom:2},children:"Довжина ключа узгодження"}),c.jsxs("select",{value:d,onChange:g=>r(Number(g.target.value)),style:{display:"block",width:"100%",padding:"6px 10px",font:"inherit",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:4},children:[c.jsx("option",{value:Q0,children:"257 біт (ДСТУ 4145)"}),c.jsx("option",{value:cm,children:"431 біт (ДСТУ 4145, за замовч.)"})]})]})]})}function V0({subject:s,setField:d}){const m=(r,g,p)=>c.jsxs("label",{style:{display:"block",marginBottom:8,fontSize:13},children:[c.jsx("span",{className:"muted",style:{display:"block",marginBottom:2},children:g}),c.jsx("input",{type:"text",value:s[r]??"",onChange:z=>d(r)(z.target.value),placeholder:p,style:{display:"block",width:"100%",padding:"6px 10px",font:"inherit",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:4}})]});return c.jsxs(c.Fragment,{children:[m("cn","ПІБ / Назва (CN) — обов'язково для CA, але можна залишити порожнім для тесту"),m("org","Організація (O)"),m("orgUnit","Підрозділ (OU)"),m("title","Посада (T)"),m("country","Країна (C)","UA"),m("state","Область (ST)"),m("locality","Місто (L)"),m("email","Email"),m("edrpou","ЄДРПОУ","8 цифр"),m("drfo","РНОКПП","10 цифр"),m("unzr","УНЗР","15 символів")]})}function J0({result:s,zip:d}){const m=Un(s.signRequest,s.signRequestName),r=Un(s.kepRequest,s.kepRequestName),g=s.privateKey?Un(s.privateKey,s.privateKeyName??"Key-6.dat"):null,p=s.privateKeyInfo?Un(s.privateKeyInfo,s.privateKeyInfoName??"Key-11.dat"):null,z=({label:H,dl:A,hash:v})=>c.jsxs("div",{className:"signer-card",style:{marginBottom:10},children:[c.jsx("h4",{style:{margin:"0 0 6px",fontSize:14},children:H}),c.jsxs("div",{children:[c.jsx("a",{href:A.url,download:A.name,children:A.name}),c.jsxs("span",{className:"muted",children:[" · ",A.bytes," bytes"]})]}),c.jsx("div",{className:"muted",style:{marginTop:4,fontSize:12},children:"Хеш відкритого ключа:"}),c.jsx("div",{className:"mono",style:{wordBreak:"break-all",fontSize:12},children:v})]});return c.jsxs(c.Fragment,{children:[c.jsx(z,{label:"Запит для ключа підпису",dl:m,hash:s.signKeyHashHex}),c.jsx(z,{label:"Запит для ключа узгодження",dl:r,hash:s.kepKeyHashHex}),d&&c.jsx("div",{style:{marginBottom:10},children:c.jsxs("a",{href:d.url,download:d.name,children:["Завантажити архів запитів (",d.name,")"]})}),g&&c.jsxs("div",{className:"banner banner-warn",children:[c.jsx("strong",{children:"Файл ключа"})," — зберігайте окремо, не пересилайте разом із запитами!",c.jsxs("div",{style:{marginTop:6},children:[c.jsx("a",{href:g.url,download:g.name,children:g.name}),c.jsxs("span",{className:"muted",children:[" · ",g.bytes," bytes"]}),p&&c.jsxs(c.Fragment,{children:[" · ",c.jsx("a",{href:p.url,download:p.name,children:p.name}),c.jsxs("span",{className:"muted",children:[" · ",p.bytes," bytes"]})]})]})]})]})}function k0({open:s,onClose:d,triggerRef:m}){const{signer:r,ownCerts:g,loaded:p,savePassword:z,cas:H,busy:A,progress:v,error:w,loadKey:O,unloadKey:T,lockKey:_}=Da(),[Y,F]=q.useState(null),[J,B]=q.useState(""),[G,ce]=q.useState(""),[oe,pe]=q.useState(!1),ge=q.useRef(null),$=()=>{F(null),B(""),ce(""),pe(!1)},ee=q.useRef(p);if(q.useEffect(()=>{ee.current&&!p&&$(),ee.current=p},[p]),q.useEffect(()=>{if(!s)return;const I=be=>{be.key==="Escape"&&!A&&d()};document.addEventListener("keydown",I);const se=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{var be;document.removeEventListener("keydown",I),document.body.style.overflow=se,(be=m.current)==null||be.focus()}},[s,A,d,m]),!s)return null;const k=async()=>{if(!(!Y||!J||A))try{await O({file:Y,password:J,caHint:G,savePassword:oe}),$(),d()}catch{}},le=I=>{A||I.target===I.currentTarget&&d()};return Os.createPortal(c.jsx("div",{className:"modal-overlay",onMouseDown:le,children:c.jsxs("div",{ref:ge,className:"modal-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"load-key-title",children:[c.jsxs("header",{className:"modal-header",children:[c.jsx("h2",{id:"load-key-title",children:p?"Поточний ключ":"Завантажити ключ"}),c.jsx("button",{type:"button",className:"modal-close","aria-label":"Закрити",disabled:A,onClick:d,children:"×"})]}),c.jsxs("div",{className:"modal-body",children:[p&&r?c.jsxs("div",{className:"modal-current-key",children:[c.jsxs("div",{className:"row",children:["Поточний ключ: ",c.jsx("strong",{children:r.subjCN??"—"})]}),g.sign&&c.jsxs("div",{className:"row muted",children:["Підпис: ",c.jsxs("span",{className:"mono",children:["#",g.sign.serial]}),g.sign.notBefore&&g.sign.notAfter&&c.jsxs(c.Fragment,{children:[" · дійсний ",g.sign.notBefore.slice(0,10)," … ",g.sign.notAfter.slice(0,10)]})]}),g.keyAgreement&&c.jsxs("div",{className:"row muted",children:["Шифрування: ",c.jsxs("span",{className:"mono",children:["#",g.keyAgreement.serial]}),g.keyAgreement.notBefore&&g.keyAgreement.notAfter&&c.jsxs(c.Fragment,{children:[" · дійсний ",g.keyAgreement.notBefore.slice(0,10)," … ",g.keyAgreement.notAfter.slice(0,10)]})]}),r.issuerCN&&c.jsxs("div",{className:"row muted",children:["Видавець: ",r.issuerCN]})]}):c.jsxs(c.Fragment,{children:[c.jsx(Nt,{label:"Файл ключа (.dat / .pfx / .p12 / .jks / .zs2 / .pk8)",accept:".dat,.pfx,.p12,.jks,.zs2,.pk8,.key",onFile:I=>F(I),current:Y&&{name:Y.name,size:Y.size}}),H.length>0&&c.jsxs("label",{className:"ca-picker",children:[c.jsx("span",{children:"Центр сертифікації"}),c.jsxs("select",{value:G,onChange:I=>ce(I.target.value),disabled:A,children:[c.jsx("option",{value:"",children:"Автоматично (за пріоритетом)"}),H.map(I=>{const se=n0(I);return c.jsx("option",{value:se,children:u0(I)},se)})]})]}),c.jsx("input",{className:"password",type:"password",placeholder:"Пароль",value:J,onChange:I=>B(I.target.value),autoComplete:"off",disabled:A}),c.jsxs("label",{className:"save-password",children:[c.jsx("input",{type:"checkbox",checked:oe,onChange:I=>pe(I.target.checked),disabled:A}),c.jsx("span",{children:"Зберегти пароль (підпис без повторного вводу)"})]})]}),A&&v&&c.jsxs("div",{className:"progress",role:"status",children:[c.jsx("span",{className:"spinner","aria-hidden":"true"}),c.jsx("span",{children:v})]}),w&&c.jsx("div",{className:"error",children:w})]}),c.jsx("footer",{className:"modal-footer",children:p?c.jsxs(c.Fragment,{children:[c.jsx("button",{type:"button",className:"danger",disabled:A,onClick:()=>{T()},children:"Видалити ключ"}),z&&c.jsx("button",{type:"button",className:"secondary",disabled:A,onClick:()=>{_()},title:"Скинути збережений пароль — наступний підпис або шифрування запитає пароль",children:"Запросити пароль наступного разу"})]}):c.jsx("button",{type:"button",className:"primary",disabled:!Y||!J||A,onClick:k,children:A?"Завантажую…":"Завантажити ключ"})})]})}),document.body)}function $0(){const{signer:s,ownCerts:d,busy:m,loaded:r,ready:g}=Da(),[p,z]=q.useState(!1),H=q.useRef(null),A=r?[s==null?void 0:s.subjCN,d.sign&&`підпис: #${d.sign.serial}`,d.keyAgreement&&`шифрування: #${d.keyAgreement.serial}`,(s==null?void 0:s.issuerCN)&&`видавець: ${s.issuerCN}`].filter(Boolean).join(` `):"Завантажити особистий ключ",v=m?"… завантаження":r?`✓ ${(s==null?void 0:s.subjCN)??"—"}`:"Завантажити ключ";return c.jsxs(c.Fragment,{children:[c.jsx("button",{ref:H,type:"button",className:`topbar-action${r?" loaded":""}`,title:A,disabled:g!=="ok"||m,onClick:()=>z(!0),children:v}),c.jsx(k0,{open:p,onClose:()=>z(!1),triggerRef:H})]})}const zs=[{id:"sign",label:"Підписати"},{id:"verify",label:"Перевірити"},{id:"encrypt",label:"Зашифрувати"},{id:"decrypt",label:"Розшифрувати"},{id:"certificate",label:"Сертифікат"},{id:"request",label:"Запит сертифіката"}];function W0(){const s=q.useMemo(()=>new Qy,[]),[d,m]=q.useState(()=>{const T=(window.location.hash||"").replace(/^#/,"");return zs.some(_=>_.id===T)?T:"sign"}),[r,g]=q.useState("pending"),[p,z]=q.useState(["CAdES"]),[H,A]=q.useState([]);q.useEffect(()=>{s.send({kind:"init"}).then(T=>{g("ok"),z(T.supportedFormats),A(T.cas)}).catch(T=>g(`failed: ${T.message}`))},[s]),q.useEffect(()=>{const T=()=>{const _=(window.location.hash||"").replace(/^#/,"");zs.some(Y=>Y.id===_)&&m(_)};return window.addEventListener("hashchange",T),()=>window.removeEventListener("hashchange",T)},[]);const v=T=>{m(T),window.location.hash=T},w=r==="ok"?"status-ok":r==="pending"?"status-pending":"status-error",O=r==="pending"?"завантаження бібліотеки…":r==="ok"?"готово":"помилка ініціалізації — спроби ще можливі";return c.jsx(Jy,{client:s,ready:r,cas:H,children:c.jsxs("div",{className:"app",children:[c.jsxs("header",{className:"topbar",children:[c.jsx("h1",{children:"UA PKI"}),c.jsx("span",{className:`status ${w}`,children:O}),c.jsx($0,{})]}),r!=="ok"&&r!=="pending"&&c.jsxs("div",{className:"error",style:{marginBottom:14},children:["Помилка під час завантаження бібліотеки в Worker: ",r,c.jsx("button",{className:"link",onClick:()=>window.location.reload(),children:"перезавантажити сторінку"})]}),c.jsx("nav",{className:"tabs",children:zs.map(T=>c.jsx("button",{className:`tab ${d===T.id?"active":""}`,onClick:()=>v(T.id),children:T.label},T.id))}),c.jsx("main",{className:"panel",children:d==="sign"?c.jsx(a0,{client:s,supportedFormats:p}):d==="verify"?c.jsx(q0,{client:s,supportedFormats:p}):d==="encrypt"?c.jsx(w0,{client:s}):d==="decrypt"?c.jsx(L0,{client:s}):d==="certificate"?c.jsx(Y0,{client:s}):c.jsx(Z0,{client:s})})]})})}const sm=document.getElementById("root");if(!sm)throw new Error("#root missing");Xy.createRoot(sm).render(c.jsx(q.StrictMode,{children:c.jsx(W0,{})}));