233 lines
1.6 MiB
233 lines
1.6 MiB
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const c of r.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&a(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();var Cf={exports:{}},xc={};var sv;function T8(){if(sv)return xc;sv=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(a,i,r){var c=null;if(r!==void 0&&(c=""+r),i.key!==void 0&&(c=""+i.key),"key"in i){r={};for(var l in i)l!=="key"&&(r[l]=i[l])}else r=i;return i=r.ref,{$$typeof:e,type:a,key:c,ref:i!==void 0?i:null,props:r}}return xc.Fragment=t,xc.jsx=n,xc.jsxs=n,xc}var rv;function f8(){return rv||(rv=1,Cf.exports=T8()),Cf.exports}var d=f8(),Ef={exports:{}},ft={};var ov;function h8(){if(ov)return ft;ov=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),T=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),g=Symbol.iterator;function S(ee){return ee===null||typeof ee!="object"?null:(ee=g&&ee[g]||ee["@@iterator"],typeof ee=="function"?ee:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,w={};function C(ee,M,Y){this.props=ee,this.context=M,this.refs=w,this.updater=Y||x}C.prototype.isReactComponent={},C.prototype.setState=function(ee,M){if(typeof ee!="object"&&typeof ee!="function"&&ee!=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,ee,M,"setState")},C.prototype.forceUpdate=function(ee){this.updater.enqueueForceUpdate(this,ee,"forceUpdate")};function k(){}k.prototype=C.prototype;function E(ee,M,Y){this.props=ee,this.context=M,this.refs=w,this.updater=Y||x}var O=E.prototype=new k;O.constructor=E,y(O,C.prototype),O.isPureReactComponent=!0;var N=Array.isArray;function B(){}var A={H:null,A:null,T:null,S:null},z=Object.prototype.hasOwnProperty;function P(ee,M,Y){var Z=Y.ref;return{$$typeof:e,type:ee,key:M,ref:Z!==void 0?Z:null,props:Y}}function K(ee,M){return P(ee.type,M,ee.props)}function I(ee){return typeof ee=="object"&&ee!==null&&ee.$$typeof===e}function L(ee){var M={"=":"=0",":":"=2"};return"$"+ee.replace(/[=:]/g,function(Y){return M[Y]})}var le=/\/+/g;function ue(ee,M){return typeof ee=="object"&&ee!==null&&ee.key!=null?L(""+ee.key):M.toString(36)}function X(ee){switch(ee.status){case"fulfilled":return ee.value;case"rejected":throw ee.reason;default:switch(typeof ee.status=="string"?ee.then(B,B):(ee.status="pending",ee.then(function(M){ee.status==="pending"&&(ee.status="fulfilled",ee.value=M)},function(M){ee.status==="pending"&&(ee.status="rejected",ee.reason=M)})),ee.status){case"fulfilled":return ee.value;case"rejected":throw ee.reason}}throw ee}function F(ee,M,Y,Z,J){var he=typeof ee;(he==="undefined"||he==="boolean")&&(ee=null);var ge=!1;if(ee===null)ge=!0;else switch(he){case"bigint":case"string":case"number":ge=!0;break;case"object":switch(ee.$$typeof){case e:case t:ge=!0;break;case p:return ge=ee._init,F(ge(ee._payload),M,Y,Z,J)}}if(ge)return J=J(ee),ge=Z===""?"."+ue(ee,0):Z,N(J)?(Y="",ge!=null&&(Y=ge.replace(le,"$&/")+"/"),F(J,M,Y,"",function(ye){return ye})):J!=null&&(I(J)&&(J=K(J,Y+(J.key==null||ee&&ee.key===J.key?"":(""+J.key).replace(le,"$&/")+"/")+ge)),M.push(J)),1;ge=0;var de=Z===""?".":Z+":";if(N(ee))for(var fe=0;fe<ee.length;fe++)Z=ee[fe],he=de+ue(Z,fe),ge+=F(Z,M,Y,he,J);else if(fe=S(ee),typeof fe=="function")for(ee=fe.call(ee),fe=0;!(Z=ee.next()).done;)Z=Z.value,he=de+ue(Z,fe++),ge+=F(Z,M,Y,he,J);else if(he==="object"){if(typeof ee.then=="function")return F(X(ee),M,Y,Z,J);throw M=String(ee),Error("Objects are not valid as a React child (found: "+(M==="[object Object]"?"object with keys {"+Object.keys(ee).join(", ")+"}":M)+"). If you meant to render a collection of children, use an array instead.")}return ge}function re(ee,M,Y){if(ee==null)return ee;var Z=[],J=0;return F(ee,Z,"","",function(he){return M.call(Y,he,J++)}),Z}function me(ee){if(ee._status===-1){var M=ee._result;M=M(),M.then(function(Y){(ee._status===0||ee._status===-1)&&(ee._status=1,ee._result=Y)},function(Y){(ee._status===0||ee._status===-1)&&(ee._status=2,ee._result=Y)}),ee._status===-1&&(ee._status=0,ee._result=M)}if(ee._status===1)return ee._result.default;throw ee._result}var te=typeof reportError=="function"?reportError:function(ee){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var M=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof ee=="object"&&ee!==null&&typeof ee.message=="string"?String(ee.message):String(ee),error:ee});if(!window.dispatchEvent(M))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",ee);return}console.error(ee)},Ce={map:re,forEach:function(ee,M,Y){re(ee,function(){M.apply(this,arguments)},Y)},count:function(ee){var M=0;return re(ee,function(){M++}),M},toArray:function(ee){return re(ee,function(M){return M})||[]},only:function(ee){if(!I(ee))throw Error("React.Children.only expected to receive a single React element child.");return ee}};return ft.Activity=m,ft.Children=Ce,ft.Component=C,ft.Fragment=n,ft.Profiler=i,ft.PureComponent=E,ft.StrictMode=a,ft.Suspense=f,ft.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=A,ft.__COMPILER_RUNTIME={__proto__:null,c:function(ee){return A.H.useMemoCache(ee)}},ft.cache=function(ee){return function(){return ee.apply(null,arguments)}},ft.cacheSignal=function(){return null},ft.cloneElement=function(ee,M,Y){if(ee==null)throw Error("The argument must be a React element, but you passed "+ee+".");var Z=y({},ee.props),J=ee.key;if(M!=null)for(he in M.key!==void 0&&(J=""+M.key),M)!z.call(M,he)||he==="key"||he==="__self"||he==="__source"||he==="ref"&&M.ref===void 0||(Z[he]=M[he]);var he=arguments.length-2;if(he===1)Z.children=Y;else if(1<he){for(var ge=Array(he),de=0;de<he;de++)ge[de]=arguments[de+2];Z.children=ge}return P(ee.type,J,Z)},ft.createContext=function(ee){return ee={$$typeof:c,_currentValue:ee,_currentValue2:ee,_threadCount:0,Provider:null,Consumer:null},ee.Provider=ee,ee.Consumer={$$typeof:r,_context:ee},ee},ft.createElement=function(ee,M,Y){var Z,J={},he=null;if(M!=null)for(Z in M.key!==void 0&&(he=""+M.key),M)z.call(M,Z)&&Z!=="key"&&Z!=="__self"&&Z!=="__source"&&(J[Z]=M[Z]);var ge=arguments.length-2;if(ge===1)J.children=Y;else if(1<ge){for(var de=Array(ge),fe=0;fe<ge;fe++)de[fe]=arguments[fe+2];J.children=de}if(ee&&ee.defaultProps)for(Z in ge=ee.defaultProps,ge)J[Z]===void 0&&(J[Z]=ge[Z]);return P(ee,he,J)},ft.createRef=function(){return{current:null}},ft.forwardRef=function(ee){return{$$typeof:l,render:ee}},ft.isValidElement=I,ft.lazy=function(ee){return{$$typeof:p,_payload:{_status:-1,_result:ee},_init:me}},ft.memo=function(ee,M){return{$$typeof:T,type:ee,compare:M===void 0?null:M}},ft.startTransition=function(ee){var M=A.T,Y={};A.T=Y;try{var Z=ee(),J=A.S;J!==null&&J(Y,Z),typeof Z=="object"&&Z!==null&&typeof Z.then=="function"&&Z.then(B,te)}catch(he){te(he)}finally{M!==null&&Y.types!==null&&(M.types=Y.types),A.T=M}},ft.unstable_useCacheRefresh=function(){return A.H.useCacheRefresh()},ft.use=function(ee){return A.H.use(ee)},ft.useActionState=function(ee,M,Y){return A.H.useActionState(ee,M,Y)},ft.useCallback=function(ee,M){return A.H.useCallback(ee,M)},ft.useContext=function(ee){return A.H.useContext(ee)},ft.useDebugValue=function(){},ft.useDeferredValue=function(ee,M){return A.H.useDeferredValue(ee,M)},ft.useEffect=function(ee,M){return A.H.useEffect(ee,M)},ft.useEffectEvent=function(ee){return A.H.useEffectEvent(ee)},ft.useId=function(){return A.H.useId()},ft.useImperativeHandle=function(ee,M,Y){return A.H.useImperativeHandle(ee,M,Y)},ft.useInsertionEffect=function(ee,M){return A.H.useInsertionEffect(ee,M)},ft.useLayoutEffect=function(ee,M){return A.H.useLayoutEffect(ee,M)},ft.useMemo=function(ee,M){return A.H.useMemo(ee,M)},ft.useOptimistic=function(ee,M){return A.H.useOptimistic(ee,M)},ft.useReducer=function(ee,M,Y){return A.H.useReducer(ee,M,Y)},ft.useRef=function(ee){return A.H.useRef(ee)},ft.useState=function(ee){return A.H.useState(ee)},ft.useSyncExternalStore=function(ee,M,Y){return A.H.useSyncExternalStore(ee,M,Y)},ft.useTransition=function(){return A.H.useTransition()},ft.version="19.2.4",ft}var cv;function wp(){return cv||(cv=1,Ef.exports=h8()),Ef.exports}var H=wp(),kf={exports:{}},yc={},Af={exports:{}},Rf={};var lv;function p8(){return lv||(lv=1,(function(e){function t(F,re){var me=F.length;F.push(re);e:for(;0<me;){var te=me-1>>>1,Ce=F[te];if(0<i(Ce,re))F[te]=re,F[me]=Ce,me=te;else break e}}function n(F){return F.length===0?null:F[0]}function a(F){if(F.length===0)return null;var re=F[0],me=F.pop();if(me!==re){F[0]=me;e:for(var te=0,Ce=F.length,ee=Ce>>>1;te<ee;){var M=2*(te+1)-1,Y=F[M],Z=M+1,J=F[Z];if(0>i(Y,me))Z<Ce&&0>i(J,Y)?(F[te]=J,F[Z]=me,te=Z):(F[te]=Y,F[M]=me,te=M);else if(Z<Ce&&0>i(J,me))F[te]=J,F[Z]=me,te=Z;else break e}}return re}function i(F,re){var me=F.sortIndex-re.sortIndex;return me!==0?me:F.id-re.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var c=Date,l=c.now();e.unstable_now=function(){return c.now()-l}}var f=[],T=[],p=1,m=null,g=3,S=!1,x=!1,y=!1,w=!1,C=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function O(F){for(var re=n(T);re!==null;){if(re.callback===null)a(T);else if(re.startTime<=F)a(T),re.sortIndex=re.expirationTime,t(f,re);else break;re=n(T)}}function N(F){if(y=!1,O(F),!x)if(n(f)!==null)x=!0,B||(B=!0,L());else{var re=n(T);re!==null&&X(N,re.startTime-F)}}var B=!1,A=-1,z=5,P=-1;function K(){return w?!0:!(e.unstable_now()-P<z)}function I(){if(w=!1,B){var F=e.unstable_now();P=F;var re=!0;try{e:{x=!1,y&&(y=!1,k(A),A=-1),S=!0;var me=g;try{t:{for(O(F),m=n(f);m!==null&&!(m.expirationTime>F&&K());){var te=m.callback;if(typeof te=="function"){m.callback=null,g=m.priorityLevel;var Ce=te(m.expirationTime<=F);if(F=e.unstable_now(),typeof Ce=="function"){m.callback=Ce,O(F),re=!0;break t}m===n(f)&&a(f),O(F)}else a(f);m=n(f)}if(m!==null)re=!0;else{var ee=n(T);ee!==null&&X(N,ee.startTime-F),re=!1}}break e}finally{m=null,g=me,S=!1}re=void 0}}finally{re?L():B=!1}}}var L;if(typeof E=="function")L=function(){E(I)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,ue=le.port2;le.port1.onmessage=I,L=function(){ue.postMessage(null)}}else L=function(){C(I,0)};function X(F,re){A=C(function(){F(e.unstable_now())},re)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_forceFrameRate=function(F){0>F||125<F?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):z=0<F?Math.floor(1e3/F):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function(F){switch(g){case 1:case 2:case 3:var re=3;break;default:re=g}var me=g;g=re;try{return F()}finally{g=me}},e.unstable_requestPaint=function(){w=!0},e.unstable_runWithPriority=function(F,re){switch(F){case 1:case 2:case 3:case 4:case 5:break;default:F=3}var me=g;g=F;try{return re()}finally{g=me}},e.unstable_scheduleCallback=function(F,re,me){var te=e.unstable_now();switch(typeof me=="object"&&me!==null?(me=me.delay,me=typeof me=="number"&&0<me?te+me:te):me=te,F){case 1:var Ce=-1;break;case 2:Ce=250;break;case 5:Ce=1073741823;break;case 4:Ce=1e4;break;default:Ce=5e3}return Ce=me+Ce,F={id:p++,callback:re,priorityLevel:F,startTime:me,expirationTime:Ce,sortIndex:-1},me>te?(F.sortIndex=me,t(T,F),n(f)===null&&F===n(T)&&(y?(k(A),A=-1):y=!0,X(N,me-te))):(F.sortIndex=Ce,t(f,F),x||S||(x=!0,B||(B=!0,L()))),F},e.unstable_shouldYield=K,e.unstable_wrapCallback=function(F){var re=g;return function(){var me=g;g=re;try{return F.apply(this,arguments)}finally{g=me}}}})(Rf)),Rf}var uv;function m8(){return uv||(uv=1,Af.exports=p8()),Af.exports}var Df={exports:{}},Ta={};var dv;function g8(){if(dv)return Ta;dv=1;var e=wp();function t(f){var T="https://react.dev/errors/"+f;if(1<arguments.length){T+="?args[]="+encodeURIComponent(arguments[1]);for(var p=2;p<arguments.length;p++)T+="&args[]="+encodeURIComponent(arguments[p])}return"Minified React error #"+f+"; visit "+T+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var a={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},i=Symbol.for("react.portal");function r(f,T,p){var m=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:i,key:m==null?null:""+m,children:f,containerInfo:T,implementation:p}}var c=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(f,T){if(f==="font")return"";if(typeof T=="string")return T==="use-credentials"?T:""}return Ta.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,Ta.createPortal=function(f,T){var p=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!T||T.nodeType!==1&&T.nodeType!==9&&T.nodeType!==11)throw Error(t(299));return r(f,T,null,p)},Ta.flushSync=function(f){var T=c.T,p=a.p;try{if(c.T=null,a.p=2,f)return f()}finally{c.T=T,a.p=p,a.d.f()}},Ta.preconnect=function(f,T){typeof f=="string"&&(T?(T=T.crossOrigin,T=typeof T=="string"?T==="use-credentials"?T:"":void 0):T=null,a.d.C(f,T))},Ta.prefetchDNS=function(f){typeof f=="string"&&a.d.D(f)},Ta.preinit=function(f,T){if(typeof f=="string"&&T&&typeof T.as=="string"){var p=T.as,m=l(p,T.crossOrigin),g=typeof T.integrity=="string"?T.integrity:void 0,S=typeof T.fetchPriority=="string"?T.fetchPriority:void 0;p==="style"?a.d.S(f,typeof T.precedence=="string"?T.precedence:void 0,{crossOrigin:m,integrity:g,fetchPriority:S}):p==="script"&&a.d.X(f,{crossOrigin:m,integrity:g,fetchPriority:S,nonce:typeof T.nonce=="string"?T.nonce:void 0})}},Ta.preinitModule=function(f,T){if(typeof f=="string")if(typeof T=="object"&&T!==null){if(T.as==null||T.as==="script"){var p=l(T.as,T.crossOrigin);a.d.M(f,{crossOrigin:p,integrity:typeof T.integrity=="string"?T.integrity:void 0,nonce:typeof T.nonce=="string"?T.nonce:void 0})}}else T==null&&a.d.M(f)},Ta.preload=function(f,T){if(typeof f=="string"&&typeof T=="object"&&T!==null&&typeof T.as=="string"){var p=T.as,m=l(p,T.crossOrigin);a.d.L(f,p,{crossOrigin:m,integrity:typeof T.integrity=="string"?T.integrity:void 0,nonce:typeof T.nonce=="string"?T.nonce:void 0,type:typeof T.type=="string"?T.type:void 0,fetchPriority:typeof T.fetchPriority=="string"?T.fetchPriority:void 0,referrerPolicy:typeof T.referrerPolicy=="string"?T.referrerPolicy:void 0,imageSrcSet:typeof T.imageSrcSet=="string"?T.imageSrcSet:void 0,imageSizes:typeof T.imageSizes=="string"?T.imageSizes:void 0,media:typeof T.media=="string"?T.media:void 0})}},Ta.preloadModule=function(f,T){if(typeof f=="string")if(T){var p=l(T.as,T.crossOrigin);a.d.m(f,{as:typeof T.as=="string"&&T.as!=="script"?T.as:void 0,crossOrigin:p,integrity:typeof T.integrity=="string"?T.integrity:void 0})}else a.d.m(f)},Ta.requestFormReset=function(f){a.d.r(f)},Ta.unstable_batchedUpdates=function(f,T){return f(T)},Ta.useFormState=function(f,T,p){return c.H.useFormState(f,T,p)},Ta.useFormStatus=function(){return c.H.useHostTransitionStatus()},Ta.version="19.2.4",Ta}var Tv;function Xy(){if(Tv)return Df.exports;Tv=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Df.exports=g8(),Df.exports}var fv;function v8(){if(fv)return yc;fv=1;var e=m8(),t=wp(),n=Xy();function a(s){var o="https://react.dev/errors/"+s;if(1<arguments.length){o+="?args[]="+encodeURIComponent(arguments[1]);for(var u=2;u<arguments.length;u++)o+="&args[]="+encodeURIComponent(arguments[u])}return"Minified React error #"+s+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11)}function r(s){var o=s,u=s;if(s.alternate)for(;o.return;)o=o.return;else{s=o;do o=s,(o.flags&4098)!==0&&(u=o.return),s=o.return;while(s)}return o.tag===3?u:null}function c(s){if(s.tag===13){var o=s.memoizedState;if(o===null&&(s=s.alternate,s!==null&&(o=s.memoizedState)),o!==null)return o.dehydrated}return null}function l(s){if(s.tag===31){var o=s.memoizedState;if(o===null&&(s=s.alternate,s!==null&&(o=s.memoizedState)),o!==null)return o.dehydrated}return null}function f(s){if(r(s)!==s)throw Error(a(188))}function T(s){var o=s.alternate;if(!o){if(o=r(s),o===null)throw Error(a(188));return o!==s?null:s}for(var u=s,h=o;;){var v=u.return;if(v===null)break;var b=v.alternate;if(b===null){if(h=v.return,h!==null){u=h;continue}break}if(v.child===b.child){for(b=v.child;b;){if(b===u)return f(v),s;if(b===h)return f(v),o;b=b.sibling}throw Error(a(188))}if(u.return!==h.return)u=v,h=b;else{for(var R=!1,U=v.child;U;){if(U===u){R=!0,u=v,h=b;break}if(U===h){R=!0,h=v,u=b;break}U=U.sibling}if(!R){for(U=b.child;U;){if(U===u){R=!0,u=b,h=v;break}if(U===h){R=!0,h=b,u=v;break}U=U.sibling}if(!R)throw Error(a(189))}}if(u.alternate!==h)throw Error(a(190))}if(u.tag!==3)throw Error(a(188));return u.stateNode.current===u?s:o}function p(s){var o=s.tag;if(o===5||o===26||o===27||o===6)return s;for(s=s.child;s!==null;){if(o=p(s),o!==null)return o;s=s.sibling}return null}var m=Object.assign,g=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),E=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),B=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),K=Symbol.for("react.memo_cache_sentinel"),I=Symbol.iterator;function L(s){return s===null||typeof s!="object"?null:(s=I&&s[I]||s["@@iterator"],typeof s=="function"?s:null)}var le=Symbol.for("react.client.reference");function ue(s){if(s==null)return null;if(typeof s=="function")return s.$$typeof===le?null:s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case y:return"Fragment";case C:return"Profiler";case w:return"StrictMode";case N:return"Suspense";case B:return"SuspenseList";case P:return"Activity"}if(typeof s=="object")switch(s.$$typeof){case x:return"Portal";case E:return s.displayName||"Context";case k:return(s._context.displayName||"Context")+".Consumer";case O:var o=s.render;return s=s.displayName,s||(s=o.displayName||o.name||"",s=s!==""?"ForwardRef("+s+")":"ForwardRef"),s;case A:return o=s.displayName||null,o!==null?o:ue(s.type)||"Memo";case z:o=s._payload,s=s._init;try{return ue(s(o))}catch{}}return null}var X=Array.isArray,F=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,re=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,me={pending:!1,data:null,method:null,action:null},te=[],Ce=-1;function ee(s){return{current:s}}function M(s){0>Ce||(s.current=te[Ce],te[Ce]=null,Ce--)}function Y(s,o){Ce++,te[Ce]=s.current,s.current=o}var Z=ee(null),J=ee(null),he=ee(null),ge=ee(null);function de(s,o){switch(Y(he,o),Y(J,s),Y(Z,null),o.nodeType){case 9:case 11:s=(s=o.documentElement)&&(s=s.namespaceURI)?R2(s):0;break;default:if(s=o.tagName,o=o.namespaceURI)o=R2(o),s=D2(o,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}M(Z),Y(Z,s)}function fe(){M(Z),M(J),M(he)}function ye(s){s.memoizedState!==null&&Y(ge,s);var o=Z.current,u=D2(o,s.type);o!==u&&(Y(J,s),Y(Z,u))}function qe(s){J.current===s&&(M(Z),M(J)),ge.current===s&&(M(ge),pc._currentValue=me)}var ae,Ne;function Ve(s){if(ae===void 0)try{throw Error()}catch(u){var o=u.stack.trim().match(/\n( *(at )?)/);ae=o&&o[1]||"",Ne=-1<u.stack.indexOf(`
|
||
at`)?" (<anonymous>)":-1<u.stack.indexOf("@")?"@unknown:0:0":""}return`
|
||
`+ae+s+Ne}var tt=!1;function We(s,o){if(!s||tt)return"";tt=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var h={DetermineComponentFrameRoot:function(){try{if(o){var Ie=function(){throw Error()};if(Object.defineProperty(Ie.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ie,[])}catch(ke){var we=ke}Reflect.construct(s,[],Ie)}else{try{Ie.call()}catch(ke){we=ke}s.call(Ie.prototype)}}else{try{throw Error()}catch(ke){we=ke}(Ie=s())&&typeof Ie.catch=="function"&&Ie.catch(function(){})}}catch(ke){if(ke&&we&&typeof ke.stack=="string")return[ke.stack,we.stack]}return[null,null]}};h.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var v=Object.getOwnPropertyDescriptor(h.DetermineComponentFrameRoot,"name");v&&v.configurable&&Object.defineProperty(h.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var b=h.DetermineComponentFrameRoot(),R=b[0],U=b[1];if(R&&U){var ce=R.split(`
|
||
`),be=U.split(`
|
||
`);for(v=h=0;h<ce.length&&!ce[h].includes("DetermineComponentFrameRoot");)h++;for(;v<be.length&&!be[v].includes("DetermineComponentFrameRoot");)v++;if(h===ce.length||v===be.length)for(h=ce.length-1,v=be.length-1;1<=h&&0<=v&&ce[h]!==be[v];)v--;for(;1<=h&&0<=v;h--,v--)if(ce[h]!==be[v]){if(h!==1||v!==1)do if(h--,v--,0>v||ce[h]!==be[v]){var Re=`
|
||
`+ce[h].replace(" at new "," at ");return s.displayName&&Re.includes("<anonymous>")&&(Re=Re.replace("<anonymous>",s.displayName)),Re}while(1<=h&&0<=v);break}}}finally{tt=!1,Error.prepareStackTrace=u}return(u=s?s.displayName||s.name:"")?Ve(u):""}function Le(s,o){switch(s.tag){case 26:case 27:case 5:return Ve(s.type);case 16:return Ve("Lazy");case 13:return s.child!==o&&o!==null?Ve("Suspense Fallback"):Ve("Suspense");case 19:return Ve("SuspenseList");case 0:case 15:return We(s.type,!1);case 11:return We(s.type.render,!1);case 1:return We(s.type,!0);case 31:return Ve("Activity");default:return""}}function _e(s){try{var o="",u=null;do o+=Le(s,u),u=s,s=s.return;while(s);return o}catch(h){return`
|
||
Error generating stack: `+h.message+`
|
||
`+h.stack}}var Xe=Object.prototype.hasOwnProperty,pt=e.unstable_scheduleCallback,Pt=e.unstable_cancelCallback,Kt=e.unstable_shouldYield,Dt=e.unstable_requestPaint,dt=e.unstable_now,jt=e.unstable_getCurrentPriorityLevel,Gt=e.unstable_ImmediatePriority,ln=e.unstable_UserBlockingPriority,Et=e.unstable_NormalPriority,_t=e.unstable_LowPriority,pe=e.unstable_IdlePriority,He=e.log,Je=e.unstable_setDisableYieldValue,rt=null,Ye=null;function mt(s){if(typeof He=="function"&&Je(s),Ye&&typeof Ye.setStrictMode=="function")try{Ye.setStrictMode(rt,s)}catch{}}var Qe=Math.clz32?Math.clz32:Pe,qt=Math.log,ot=Math.LN2;function Pe(s){return s>>>=0,s===0?32:31-(qt(s)/ot|0)|0}var Me=256,Ke=262144,st=4194304;function Vt(s){var o=s&42;if(o!==0)return o;switch(s&-s){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 s&261888;case 262144:case 524288:case 1048576:case 2097152:return s&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return s}}function Xt(s,o,u){var h=s.pendingLanes;if(h===0)return 0;var v=0,b=s.suspendedLanes,R=s.pingedLanes;s=s.warmLanes;var U=h&134217727;return U!==0?(h=U&~b,h!==0?v=Vt(h):(R&=U,R!==0?v=Vt(R):u||(u=U&~s,u!==0&&(v=Vt(u))))):(U=h&~b,U!==0?v=Vt(U):R!==0?v=Vt(R):u||(u=h&~s,u!==0&&(v=Vt(u)))),v===0?0:o!==0&&o!==v&&(o&b)===0&&(b=v&-v,u=o&-o,b>=u||b===32&&(u&4194048)!==0)?o:v}function Fn(s,o){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&o)===0}function Sa(s,o){switch(s){case 1:case 2:case 4:case 8:case 64:return o+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 o+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 Zn(){var s=st;return st<<=1,(st&62914560)===0&&(st=4194304),s}function ba(s){for(var o=[],u=0;31>u;u++)o.push(s);return o}function Wn(s,o){s.pendingLanes|=o,o!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function Ln(s,o,u,h,v,b){var R=s.pendingLanes;s.pendingLanes=u,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=u,s.entangledLanes&=u,s.errorRecoveryDisabledLanes&=u,s.shellSuspendCounter=0;var U=s.entanglements,ce=s.expirationTimes,be=s.hiddenUpdates;for(u=R&~u;0<u;){var Re=31-Qe(u),Ie=1<<Re;U[Re]=0,ce[Re]=-1;var we=be[Re];if(we!==null)for(be[Re]=null,Re=0;Re<we.length;Re++){var ke=we[Re];ke!==null&&(ke.lane&=-536870913)}u&=~Ie}h!==0&&Si(s,h,0),b!==0&&v===0&&s.tag!==0&&(s.suspendedLanes|=b&~(R&~o))}function Si(s,o,u){s.pendingLanes|=o,s.suspendedLanes&=~o;var h=31-Qe(o);s.entangledLanes|=o,s.entanglements[h]=s.entanglements[h]|1073741824|u&261930}function wa(s,o){var u=s.entangledLanes|=o;for(s=s.entanglements;u;){var h=31-Qe(u),v=1<<h;v&o|s[h]&o&&(s[h]|=o),u&=~v}}function ti(s,o){var u=o&-o;return u=(u&42)!==0?1:Pn(u),(u&(s.suspendedLanes|o))!==0?0:u}function Pn(s){switch(s){case 2:s=1;break;case 8:s=4;break;case 32:s=16;break;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:case 4194304:case 8388608:case 16777216:case 33554432:s=128;break;case 268435456:s=134217728;break;default:s=0}return s}function Vn(s){return s&=-s,2<s?8<s?(s&134217727)!==0?32:268435456:8:2}function q(){var s=re.p;return s!==0?s:(s=window.event,s===void 0?32:J2(s.type))}function ne(s,o){var u=re.p;try{return re.p=s,o()}finally{re.p=u}}var V=Math.random().toString(36).slice(2),G="__reactFiber$"+V,Q="__reactProps$"+V,ie="__reactContainer$"+V,W="__reactEvents$"+V,D="__reactListeners$"+V,j="__reactHandles$"+V,_="__reactResources$"+V,se="__reactMarker$"+V;function xe(s){delete s[G],delete s[Q],delete s[W],delete s[D],delete s[j]}function Ae(s){var o=s[G];if(o)return o;for(var u=s.parentNode;u;){if(o=u[ie]||u[G]){if(u=o.alternate,o.child!==null||u!==null&&u.child!==null)for(s=L2(s);s!==null;){if(u=s[G])return u;s=L2(s)}return o}s=u,u=s.parentNode}return null}function Fe(s){if(s=s[G]||s[ie]){var o=s.tag;if(o===5||o===6||o===13||o===31||o===26||o===27||o===3)return s}return null}function Oe(s){var o=s.tag;if(o===5||o===26||o===27||o===6)return s.stateNode;throw Error(a(33))}function Ue(s){var o=s[_];return o||(o=s[_]={hoistableStyles:new Map,hoistableScripts:new Map}),o}function Ge(s){s[se]=!0}var kt=new Set,Be={};function ct(s,o){St(s,o),St(s+"Capture",o)}function St(s,o){for(Be[s]=o,s=0;s<o.length;s++)kt.add(o[s])}var kn=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),ni={},Ca={};function ss(s){return Xe.call(Ca,s)?!0:Xe.call(ni,s)?!1:kn.test(s)?Ca[s]=!0:(ni[s]=!0,!1)}function la(s,o,u){if(ss(o))if(u===null)s.removeAttribute(o);else{switch(typeof u){case"undefined":case"function":case"symbol":s.removeAttribute(o);return;case"boolean":var h=o.toLowerCase().slice(0,5);if(h!=="data-"&&h!=="aria-"){s.removeAttribute(o);return}}s.setAttribute(o,""+u)}}function m0(s,o,u){if(u===null)s.removeAttribute(o);else{switch(typeof u){case"undefined":case"function":case"symbol":case"boolean":s.removeAttribute(o);return}s.setAttribute(o,""+u)}}function bi(s,o,u,h){if(h===null)s.removeAttribute(u);else{switch(typeof h){case"undefined":case"function":case"symbol":case"boolean":s.removeAttribute(u);return}s.setAttributeNS(o,u,""+h)}}function oe(s){switch(typeof s){case"bigint":case"boolean":case"number":case"string":case"undefined":return s;case"object":return s;default:return""}}function Ee(s){var o=s.type;return(s=s.nodeName)&&s.toLowerCase()==="input"&&(o==="checkbox"||o==="radio")}function ze(s,o,u){var h=Object.getOwnPropertyDescriptor(s.constructor.prototype,o);if(!s.hasOwnProperty(o)&&typeof h<"u"&&typeof h.get=="function"&&typeof h.set=="function"){var v=h.get,b=h.set;return Object.defineProperty(s,o,{configurable:!0,get:function(){return v.call(this)},set:function(R){u=""+R,b.call(this,R)}}),Object.defineProperty(s,o,{enumerable:h.enumerable}),{getValue:function(){return u},setValue:function(R){u=""+R},stopTracking:function(){s._valueTracker=null,delete s[o]}}}}function lt(s){if(!s._valueTracker){var o=Ee(s)?"checked":"value";s._valueTracker=ze(s,o,""+s[o])}}function nt(s){if(!s)return!1;var o=s._valueTracker;if(!o)return!0;var u=o.getValue(),h="";return s&&(h=Ee(s)?s.checked?"true":"false":s.value),s=h,s!==u?(o.setValue(s),!0):!1}function ut(s){if(s=s||(typeof document<"u"?document:void 0),typeof s>"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var Tt=/[\n"\\]/g;function bt(s){return s.replace(Tt,function(o){return"\\"+o.charCodeAt(0).toString(16)+" "})}function Ea(s,o,u,h,v,b,R,U){s.name="",R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?s.type=R:s.removeAttribute("type"),o!=null?R==="number"?(o===0&&s.value===""||s.value!=o)&&(s.value=""+oe(o)):s.value!==""+oe(o)&&(s.value=""+oe(o)):R!=="submit"&&R!=="reset"||s.removeAttribute("value"),o!=null?ua(s,R,oe(o)):u!=null?ua(s,R,oe(u)):h!=null&&s.removeAttribute("value"),v==null&&b!=null&&(s.defaultChecked=!!b),v!=null&&(s.checked=v&&typeof v!="function"&&typeof v!="symbol"),U!=null&&typeof U!="function"&&typeof U!="symbol"&&typeof U!="boolean"?s.name=""+oe(U):s.removeAttribute("name")}function za(s,o,u,h,v,b,R,U){if(b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"&&(s.type=b),o!=null||u!=null){if(!(b!=="submit"&&b!=="reset"||o!=null)){lt(s);return}u=u!=null?""+oe(u):"",o=o!=null?""+oe(o):u,U||o===s.value||(s.value=o),s.defaultValue=o}h=h??v,h=typeof h!="function"&&typeof h!="symbol"&&!!h,s.checked=U?s.checked:!!h,s.defaultChecked=!!h,R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"&&(s.name=R),lt(s)}function ua(s,o,u){o==="number"&&ut(s.ownerDocument)===s||s.defaultValue===""+u||(s.defaultValue=""+u)}function It(s,o,u,h){if(s=s.options,o){o={};for(var v=0;v<u.length;v++)o["$"+u[v]]=!0;for(u=0;u<s.length;u++)v=o.hasOwnProperty("$"+s[u].value),s[u].selected!==v&&(s[u].selected=v),v&&h&&(s[u].defaultSelected=!0)}else{for(u=""+oe(u),o=null,v=0;v<s.length;v++){if(s[v].value===u){s[v].selected=!0,h&&(s[v].defaultSelected=!0);return}o!==null||s[v].disabled||(o=s[v])}o!==null&&(o.selected=!0)}}function Bt(s,o,u){if(o!=null&&(o=""+oe(o),o!==s.value&&(s.value=o),u==null)){s.defaultValue!==o&&(s.defaultValue=o);return}s.defaultValue=u!=null?""+oe(u):""}function Hn(s,o,u,h){if(o==null){if(h!=null){if(u!=null)throw Error(a(92));if(X(h)){if(1<h.length)throw Error(a(93));h=h[0]}u=h}u==null&&(u=""),o=u}u=oe(o),s.defaultValue=u,h=s.textContent,h===u&&h!==""&&h!==null&&(s.value=h),lt(s)}function Jn(s,o){if(o){var u=s.firstChild;if(u&&u===s.lastChild&&u.nodeType===3){u.nodeValue=o;return}}s.textContent=o}var Tn=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function yn(s,o,u){var h=o.indexOf("--")===0;u==null||typeof u=="boolean"||u===""?h?s.setProperty(o,""):o==="float"?s.cssFloat="":s[o]="":h?s.setProperty(o,u):typeof u!="number"||u===0||Tn.has(o)?o==="float"?s.cssFloat=u:s[o]=(""+u).trim():s[o]=u+"px"}function da(s,o,u){if(o!=null&&typeof o!="object")throw Error(a(62));if(s=s.style,u!=null){for(var h in u)!u.hasOwnProperty(h)||o!=null&&o.hasOwnProperty(h)||(h.indexOf("--")===0?s.setProperty(h,""):h==="float"?s.cssFloat="":s[h]="");for(var v in o)h=o[v],o.hasOwnProperty(v)&&u[v]!==h&&yn(s,v,h)}else for(var b in o)o.hasOwnProperty(b)&&yn(s,b,o[b])}function rs(s){if(s.indexOf("-")===-1)return!1;switch(s){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Fs=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),os=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Gn(s){return os.test(""+s)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":s}function wi(){}var g0=null;function Do(s){return s=s.target||s.srcElement||window,s.correspondingUseElement&&(s=s.correspondingUseElement),s.nodeType===3?s.parentNode:s}var Ls=null,cs=null;function Io(s){var o=Fe(s);if(o&&(s=o.stateNode)){var u=s[Q]||null;e:switch(s=o.stateNode,o.type){case"input":if(Ea(s,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name),o=u.name,u.type==="radio"&&o!=null){for(u=s;u.parentNode;)u=u.parentNode;for(u=u.querySelectorAll('input[name="'+bt(""+o)+'"][type="radio"]'),o=0;o<u.length;o++){var h=u[o];if(h!==s&&h.form===s.form){var v=h[Q]||null;if(!v)throw Error(a(90));Ea(h,v.value,v.defaultValue,v.defaultValue,v.checked,v.defaultChecked,v.type,v.name)}}for(o=0;o<u.length;o++)h=u[o],h.form===s.form&&nt(h)}break e;case"textarea":Bt(s,u.value,u.defaultValue);break e;case"select":o=u.value,o!=null&&It(s,!!u.multiple,o,!1)}}}var No=!1;function L1(s,o,u){if(No)return s(o,u);No=!0;try{var h=s(o);return h}finally{if(No=!1,(Ls!==null||cs!==null)&&(xl(),Ls&&(o=Ls,s=cs,cs=Ls=null,Io(o),s)))for(o=0;o<s.length;o++)Io(s[o])}}function yr(s,o){var u=s.stateNode;if(u===null)return null;var h=u[Q]||null;if(h===null)return null;u=h[o];e:switch(o){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(h=!h.disabled)||(s=s.type,h=!(s==="button"||s==="input"||s==="select"||s==="textarea")),s=!h;break e;default:s=!1}if(s)return null;if(u&&typeof u!="function")throw Error(a(231,o,typeof u));return u}var Ci=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Oo=!1;if(Ci)try{var Sr={};Object.defineProperty(Sr,"passive",{get:function(){Oo=!0}}),window.addEventListener("test",Sr,Sr),window.removeEventListener("test",Sr,Sr)}catch{Oo=!1}var Ei=null,v0=null,x0=null;function Mo(){if(x0)return x0;var s,o=v0,u=o.length,h,v="value"in Ei?Ei.value:Ei.textContent,b=v.length;for(s=0;s<u&&o[s]===v[s];s++);var R=u-s;for(h=1;h<=R&&o[u-h]===v[b-h];h++);return x0=v.slice(s,1<h?1-h:void 0)}function ls(s){var o=s.keyCode;return"charCode"in s?(s=s.charCode,s===0&&o===13&&(s=13)):s=o,s===10&&(s=13),32<=s||s===13?s:0}function us(){return!0}function br(){return!1}function yt(s){function o(u,h,v,b,R){this._reactName=u,this._targetInst=v,this.type=h,this.nativeEvent=b,this.target=R,this.currentTarget=null;for(var U in s)s.hasOwnProperty(U)&&(u=s[U],this[U]=u?u(b):b[U]);return this.isDefaultPrevented=(b.defaultPrevented!=null?b.defaultPrevented:b.returnValue===!1)?us:br,this.isPropagationStopped=br,this}return m(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var u=this.nativeEvent;u&&(u.preventDefault?u.preventDefault():typeof u.returnValue!="unknown"&&(u.returnValue=!1),this.isDefaultPrevented=us)},stopPropagation:function(){var u=this.nativeEvent;u&&(u.stopPropagation?u.stopPropagation():typeof u.cancelBubble!="unknown"&&(u.cancelBubble=!0),this.isPropagationStopped=us)},persist:function(){},isPersistent:us}),o}var $t={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(s){return s.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=yt($t),wr=m({},$t,{view:0,detail:0}),kd=yt(wr),jo,Fo,hn,P1=m({},wr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Rd,button:0,buttons:0,relatedTarget:function(s){return s.relatedTarget===void 0?s.fromElement===s.srcElement?s.toElement:s.fromElement:s.relatedTarget},movementX:function(s){return"movementX"in s?s.movementX:(s!==hn&&(hn&&s.type==="mousemove"?(jo=s.screenX-hn.screenX,Fo=s.screenY-hn.screenY):Fo=jo=0,hn=s),jo)},movementY:function(s){return"movementY"in s?s.movementY:Fo}}),Nm=yt(P1),d7=m({},P1,{dataTransfer:0}),T7=yt(d7),f7=m({},wr,{relatedTarget:0}),Ad=yt(f7),h7=m({},$t,{animationName:0,elapsedTime:0,pseudoElement:0}),p7=yt(h7),m7=m({},$t,{clipboardData:function(s){return"clipboardData"in s?s.clipboardData:window.clipboardData}}),g7=yt(m7),v7=m({},$t,{data:0}),Om=yt(v7),x7={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},y7={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},S7={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function b7(s){var o=this.nativeEvent;return o.getModifierState?o.getModifierState(s):(s=S7[s])?!!o[s]:!1}function Rd(){return b7}var w7=m({},wr,{key:function(s){if(s.key){var o=x7[s.key]||s.key;if(o!=="Unidentified")return o}return s.type==="keypress"?(s=ls(s),s===13?"Enter":String.fromCharCode(s)):s.type==="keydown"||s.type==="keyup"?y7[s.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Rd,charCode:function(s){return s.type==="keypress"?ls(s):0},keyCode:function(s){return s.type==="keydown"||s.type==="keyup"?s.keyCode:0},which:function(s){return s.type==="keypress"?ls(s):s.type==="keydown"||s.type==="keyup"?s.keyCode:0}}),C7=yt(w7),E7=m({},P1,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Mm=yt(E7),k7=m({},wr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Rd}),A7=yt(k7),R7=m({},$t,{propertyName:0,elapsedTime:0,pseudoElement:0}),D7=yt(R7),I7=m({},P1,{deltaX:function(s){return"deltaX"in s?s.deltaX:"wheelDeltaX"in s?-s.wheelDeltaX:0},deltaY:function(s){return"deltaY"in s?s.deltaY:"wheelDeltaY"in s?-s.wheelDeltaY:"wheelDelta"in s?-s.wheelDelta:0},deltaZ:0,deltaMode:0}),N7=yt(I7),O7=m({},$t,{newState:0,oldState:0}),M7=yt(O7),j7=[9,13,27,32],Dd=Ci&&"CompositionEvent"in window,Lo=null;Ci&&"documentMode"in document&&(Lo=document.documentMode);var F7=Ci&&"TextEvent"in window&&!Lo,jm=Ci&&(!Dd||Lo&&8<Lo&&11>=Lo),Fm=" ",Lm=!1;function Pm(s,o){switch(s){case"keyup":return j7.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _m(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var y0=!1;function L7(s,o){switch(s){case"compositionend":return _m(o);case"keypress":return o.which!==32?null:(Lm=!0,Fm);case"textInput":return s=o.data,s===Fm&&Lm?null:s;default:return null}}function P7(s,o){if(y0)return s==="compositionend"||!Dd&&Pm(s,o)?(s=Mo(),x0=v0=Ei=null,y0=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(o.ctrlKey||o.altKey||o.metaKey)||o.ctrlKey&&o.altKey){if(o.char&&1<o.char.length)return o.char;if(o.which)return String.fromCharCode(o.which)}return null;case"compositionend":return jm&&o.locale!=="ko"?null:o.data;default:return null}}var _7={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function qm(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return o==="input"?!!_7[s.type]:o==="textarea"}function Bm(s,o,u,h){Ls?cs?cs.push(h):cs=[h]:Ls=h,o=kl(o,"onChange"),0<o.length&&(u=new fn("onChange","change",null,u,h),s.push({event:u,listeners:o}))}var Po=null,_o=null;function q7(s){b2(s,0)}function _1(s){var o=Oe(s);if(nt(o))return s}function Um(s,o){if(s==="change")return o}var zm=!1;if(Ci){var Id;if(Ci){var Nd="oninput"in document;if(!Nd){var Wm=document.createElement("div");Wm.setAttribute("oninput","return;"),Nd=typeof Wm.oninput=="function"}Id=Nd}else Id=!1;zm=Id&&(!document.documentMode||9<document.documentMode)}function Vm(){Po&&(Po.detachEvent("onpropertychange",Hm),_o=Po=null)}function Hm(s){if(s.propertyName==="value"&&_1(_o)){var o=[];Bm(o,_o,s,Do(s)),L1(q7,o)}}function B7(s,o,u){s==="focusin"?(Vm(),Po=o,_o=u,Po.attachEvent("onpropertychange",Hm)):s==="focusout"&&Vm()}function U7(s){if(s==="selectionchange"||s==="keyup"||s==="keydown")return _1(_o)}function z7(s,o){if(s==="click")return _1(o)}function W7(s,o){if(s==="input"||s==="change")return _1(o)}function V7(s,o){return s===o&&(s!==0||1/s===1/o)||s!==s&&o!==o}var Wa=typeof Object.is=="function"?Object.is:V7;function qo(s,o){if(Wa(s,o))return!0;if(typeof s!="object"||s===null||typeof o!="object"||o===null)return!1;var u=Object.keys(s),h=Object.keys(o);if(u.length!==h.length)return!1;for(h=0;h<u.length;h++){var v=u[h];if(!Xe.call(o,v)||!Wa(s[v],o[v]))return!1}return!0}function Gm(s){for(;s&&s.firstChild;)s=s.firstChild;return s}function Xm(s,o){var u=Gm(s);s=0;for(var h;u;){if(u.nodeType===3){if(h=s+u.textContent.length,s<=o&&h>=o)return{node:u,offset:o-s};s=h}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=Gm(u)}}function Km(s,o){return s&&o?s===o?!0:s&&s.nodeType===3?!1:o&&o.nodeType===3?Km(s,o.parentNode):"contains"in s?s.contains(o):s.compareDocumentPosition?!!(s.compareDocumentPosition(o)&16):!1:!1}function $m(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var o=ut(s.document);o instanceof s.HTMLIFrameElement;){try{var u=typeof o.contentWindow.location.href=="string"}catch{u=!1}if(u)s=o.contentWindow;else break;o=ut(s.document)}return o}function Od(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return o&&(o==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||o==="textarea"||s.contentEditable==="true")}var H7=Ci&&"documentMode"in document&&11>=document.documentMode,S0=null,Md=null,Bo=null,jd=!1;function Ym(s,o,u){var h=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;jd||S0==null||S0!==ut(h)||(h=S0,"selectionStart"in h&&Od(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),Bo&&qo(Bo,h)||(Bo=h,h=kl(Md,"onSelect"),0<h.length&&(o=new fn("onSelect","select",null,o,u),s.push({event:o,listeners:h}),o.target=S0)))}function Cr(s,o){var u={};return u[s.toLowerCase()]=o.toLowerCase(),u["Webkit"+s]="webkit"+o,u["Moz"+s]="moz"+o,u}var b0={animationend:Cr("Animation","AnimationEnd"),animationiteration:Cr("Animation","AnimationIteration"),animationstart:Cr("Animation","AnimationStart"),transitionrun:Cr("Transition","TransitionRun"),transitionstart:Cr("Transition","TransitionStart"),transitioncancel:Cr("Transition","TransitionCancel"),transitionend:Cr("Transition","TransitionEnd")},Fd={},Zm={};Ci&&(Zm=document.createElement("div").style,"AnimationEvent"in window||(delete b0.animationend.animation,delete b0.animationiteration.animation,delete b0.animationstart.animation),"TransitionEvent"in window||delete b0.transitionend.transition);function Er(s){if(Fd[s])return Fd[s];if(!b0[s])return s;var o=b0[s],u;for(u in o)if(o.hasOwnProperty(u)&&u in Zm)return Fd[s]=o[u];return s}var Jm=Er("animationend"),Qm=Er("animationiteration"),e5=Er("animationstart"),G7=Er("transitionrun"),X7=Er("transitionstart"),K7=Er("transitioncancel"),t5=Er("transitionend"),n5=new Map,Ld="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Ld.push("scrollEnd");function ki(s,o){n5.set(s,o),ct(o,[s])}var q1=typeof reportError=="function"?reportError:function(s){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var o=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof s=="object"&&s!==null&&typeof s.message=="string"?String(s.message):String(s),error:s});if(!window.dispatchEvent(o))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",s);return}console.error(s)},ai=[],w0=0,Pd=0;function B1(){for(var s=w0,o=Pd=w0=0;o<s;){var u=ai[o];ai[o++]=null;var h=ai[o];ai[o++]=null;var v=ai[o];ai[o++]=null;var b=ai[o];if(ai[o++]=null,h!==null&&v!==null){var R=h.pending;R===null?v.next=v:(v.next=R.next,R.next=v),h.pending=v}b!==0&&a5(u,v,b)}}function U1(s,o,u,h){ai[w0++]=s,ai[w0++]=o,ai[w0++]=u,ai[w0++]=h,Pd|=h,s.lanes|=h,s=s.alternate,s!==null&&(s.lanes|=h)}function _d(s,o,u,h){return U1(s,o,u,h),z1(s)}function kr(s,o){return U1(s,null,null,o),z1(s)}function a5(s,o,u){s.lanes|=u;var h=s.alternate;h!==null&&(h.lanes|=u);for(var v=!1,b=s.return;b!==null;)b.childLanes|=u,h=b.alternate,h!==null&&(h.childLanes|=u),b.tag===22&&(s=b.stateNode,s===null||s._visibility&1||(v=!0)),s=b,b=b.return;return s.tag===3?(b=s.stateNode,v&&o!==null&&(v=31-Qe(u),s=b.hiddenUpdates,h=s[v],h===null?s[v]=[o]:h.push(o),o.lane=u|536870912),b):null}function z1(s){if(50<cc)throw cc=0,XT=null,Error(a(185));for(var o=s.return;o!==null;)s=o,o=s.return;return s.tag===3?s.stateNode:null}var C0={};function $7(s,o,u,h){this.tag=s,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=o,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Va(s,o,u,h){return new $7(s,o,u,h)}function qd(s){return s=s.prototype,!(!s||!s.isReactComponent)}function ds(s,o){var u=s.alternate;return u===null?(u=Va(s.tag,o,s.key,s.mode),u.elementType=s.elementType,u.type=s.type,u.stateNode=s.stateNode,u.alternate=s,s.alternate=u):(u.pendingProps=o,u.type=s.type,u.flags=0,u.subtreeFlags=0,u.deletions=null),u.flags=s.flags&65011712,u.childLanes=s.childLanes,u.lanes=s.lanes,u.child=s.child,u.memoizedProps=s.memoizedProps,u.memoizedState=s.memoizedState,u.updateQueue=s.updateQueue,o=s.dependencies,u.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext},u.sibling=s.sibling,u.index=s.index,u.ref=s.ref,u.refCleanup=s.refCleanup,u}function i5(s,o){s.flags&=65011714;var u=s.alternate;return u===null?(s.childLanes=0,s.lanes=o,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,o=u.dependencies,s.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext}),s}function W1(s,o,u,h,v,b){var R=0;if(h=s,typeof s=="function")qd(s)&&(R=1);else if(typeof s=="string")R=e8(s,u,Z.current)?26:s==="html"||s==="head"||s==="body"?27:5;else e:switch(s){case P:return s=Va(31,u,o,v),s.elementType=P,s.lanes=b,s;case y:return Ar(u.children,v,b,o);case w:R=8,v|=24;break;case C:return s=Va(12,u,o,v|2),s.elementType=C,s.lanes=b,s;case N:return s=Va(13,u,o,v),s.elementType=N,s.lanes=b,s;case B:return s=Va(19,u,o,v),s.elementType=B,s.lanes=b,s;default:if(typeof s=="object"&&s!==null)switch(s.$$typeof){case E:R=10;break e;case k:R=9;break e;case O:R=11;break e;case A:R=14;break e;case z:R=16,h=null;break e}R=29,u=Error(a(130,s===null?"null":typeof s,"")),h=null}return o=Va(R,u,o,v),o.elementType=s,o.type=h,o.lanes=b,o}function Ar(s,o,u,h){return s=Va(7,s,h,o),s.lanes=u,s}function Bd(s,o,u){return s=Va(6,s,null,o),s.lanes=u,s}function s5(s){var o=Va(18,null,null,0);return o.stateNode=s,o}function Ud(s,o,u){return o=Va(4,s.children!==null?s.children:[],s.key,o),o.lanes=u,o.stateNode={containerInfo:s.containerInfo,pendingChildren:null,implementation:s.implementation},o}var r5=new WeakMap;function ii(s,o){if(typeof s=="object"&&s!==null){var u=r5.get(s);return u!==void 0?u:(o={value:s,source:o,stack:_e(o)},r5.set(s,o),o)}return{value:s,source:o,stack:_e(o)}}var E0=[],k0=0,V1=null,Uo=0,si=[],ri=0,Ps=null,Bi=1,Ui="";function Ts(s,o){E0[k0++]=Uo,E0[k0++]=V1,V1=s,Uo=o}function o5(s,o,u){si[ri++]=Bi,si[ri++]=Ui,si[ri++]=Ps,Ps=s;var h=Bi;s=Ui;var v=32-Qe(h)-1;h&=~(1<<v),u+=1;var b=32-Qe(o)+v;if(30<b){var R=v-v%5;b=(h&(1<<R)-1).toString(32),h>>=R,v-=R,Bi=1<<32-Qe(o)+v|u<<v|h,Ui=b+s}else Bi=1<<b|u<<v|h,Ui=s}function zd(s){s.return!==null&&(Ts(s,1),o5(s,1,0))}function Wd(s){for(;s===V1;)V1=E0[--k0],E0[k0]=null,Uo=E0[--k0],E0[k0]=null;for(;s===Ps;)Ps=si[--ri],si[ri]=null,Ui=si[--ri],si[ri]=null,Bi=si[--ri],si[ri]=null}function c5(s,o){si[ri++]=Bi,si[ri++]=Ui,si[ri++]=Ps,Bi=o.id,Ui=o.overflow,Ps=s}var Qn=null,on=null,Nt=!1,_s=null,oi=!1,Vd=Error(a(519));function qs(s){var o=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw zo(ii(o,s)),Vd}function l5(s){var o=s.stateNode,u=s.type,h=s.memoizedProps;switch(o[G]=s,o[Q]=h,u){case"dialog":Ct("cancel",o),Ct("close",o);break;case"iframe":case"object":case"embed":Ct("load",o);break;case"video":case"audio":for(u=0;u<uc.length;u++)Ct(uc[u],o);break;case"source":Ct("error",o);break;case"img":case"image":case"link":Ct("error",o),Ct("load",o);break;case"details":Ct("toggle",o);break;case"input":Ct("invalid",o),za(o,h.value,h.defaultValue,h.checked,h.defaultChecked,h.type,h.name,!0);break;case"select":Ct("invalid",o);break;case"textarea":Ct("invalid",o),Hn(o,h.value,h.defaultValue,h.children)}u=h.children,typeof u!="string"&&typeof u!="number"&&typeof u!="bigint"||o.textContent===""+u||h.suppressHydrationWarning===!0||k2(o.textContent,u)?(h.popover!=null&&(Ct("beforetoggle",o),Ct("toggle",o)),h.onScroll!=null&&Ct("scroll",o),h.onScrollEnd!=null&&Ct("scrollend",o),h.onClick!=null&&(o.onclick=wi),o=!0):o=!1,o||qs(s,!0)}function u5(s){for(Qn=s.return;Qn;)switch(Qn.tag){case 5:case 31:case 13:oi=!1;return;case 27:case 3:oi=!0;return;default:Qn=Qn.return}}function A0(s){if(s!==Qn)return!1;if(!Nt)return u5(s),Nt=!0,!1;var o=s.tag,u;if((u=o!==3&&o!==27)&&((u=o===5)&&(u=s.type,u=!(u!=="form"&&u!=="button")||lf(s.type,s.memoizedProps)),u=!u),u&&on&&qs(s),u5(s),o===13){if(s=s.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(a(317));on=F2(s)}else if(o===31){if(s=s.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(a(317));on=F2(s)}else o===27?(o=on,Qs(s.type)?(s=hf,hf=null,on=s):on=o):on=Qn?li(s.stateNode.nextSibling):null;return!0}function Rr(){on=Qn=null,Nt=!1}function Hd(){var s=_s;return s!==null&&(Pa===null?Pa=s:Pa.push.apply(Pa,s),_s=null),s}function zo(s){_s===null?_s=[s]:_s.push(s)}var Gd=ee(null),Dr=null,fs=null;function Bs(s,o,u){Y(Gd,o._currentValue),o._currentValue=u}function hs(s){s._currentValue=Gd.current,M(Gd)}function Xd(s,o,u){for(;s!==null;){var h=s.alternate;if((s.childLanes&o)!==o?(s.childLanes|=o,h!==null&&(h.childLanes|=o)):h!==null&&(h.childLanes&o)!==o&&(h.childLanes|=o),s===u)break;s=s.return}}function Kd(s,o,u,h){var v=s.child;for(v!==null&&(v.return=s);v!==null;){var b=v.dependencies;if(b!==null){var R=v.child;b=b.firstContext;e:for(;b!==null;){var U=b;b=v;for(var ce=0;ce<o.length;ce++)if(U.context===o[ce]){b.lanes|=u,U=b.alternate,U!==null&&(U.lanes|=u),Xd(b.return,u,s),h||(R=null);break e}b=U.next}}else if(v.tag===18){if(R=v.return,R===null)throw Error(a(341));R.lanes|=u,b=R.alternate,b!==null&&(b.lanes|=u),Xd(R,u,s),R=null}else R=v.child;if(R!==null)R.return=v;else for(R=v;R!==null;){if(R===s){R=null;break}if(v=R.sibling,v!==null){v.return=R.return,R=v;break}R=R.return}v=R}}function R0(s,o,u,h){s=null;for(var v=o,b=!1;v!==null;){if(!b){if((v.flags&524288)!==0)b=!0;else if((v.flags&262144)!==0)break}if(v.tag===10){var R=v.alternate;if(R===null)throw Error(a(387));if(R=R.memoizedProps,R!==null){var U=v.type;Wa(v.pendingProps.value,R.value)||(s!==null?s.push(U):s=[U])}}else if(v===ge.current){if(R=v.alternate,R===null)throw Error(a(387));R.memoizedState.memoizedState!==v.memoizedState.memoizedState&&(s!==null?s.push(pc):s=[pc])}v=v.return}s!==null&&Kd(o,s,u,h),o.flags|=262144}function H1(s){for(s=s.firstContext;s!==null;){if(!Wa(s.context._currentValue,s.memoizedValue))return!0;s=s.next}return!1}function Ir(s){Dr=s,fs=null,s=s.dependencies,s!==null&&(s.firstContext=null)}function ea(s){return d5(Dr,s)}function G1(s,o){return Dr===null&&Ir(s),d5(s,o)}function d5(s,o){var u=o._currentValue;if(o={context:o,memoizedValue:u,next:null},fs===null){if(s===null)throw Error(a(308));fs=o,s.dependencies={lanes:0,firstContext:o},s.flags|=524288}else fs=fs.next=o;return u}var Y7=typeof AbortController<"u"?AbortController:function(){var s=[],o=this.signal={aborted:!1,addEventListener:function(u,h){s.push(h)}};this.abort=function(){o.aborted=!0,s.forEach(function(u){return u()})}},Z7=e.unstable_scheduleCallback,J7=e.unstable_NormalPriority,An={$$typeof:E,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function $d(){return{controller:new Y7,data:new Map,refCount:0}}function Wo(s){s.refCount--,s.refCount===0&&Z7(J7,function(){s.controller.abort()})}var Vo=null,Yd=0,D0=0,I0=null;function Q7(s,o){if(Vo===null){var u=Vo=[];Yd=0,D0=QT(),I0={status:"pending",value:void 0,then:function(h){u.push(h)}}}return Yd++,o.then(T5,T5),o}function T5(){if(--Yd===0&&Vo!==null){I0!==null&&(I0.status="fulfilled");var s=Vo;Vo=null,D0=0,I0=null;for(var o=0;o<s.length;o++)(0,s[o])()}}function ew(s,o){var u=[],h={status:"pending",value:null,reason:null,then:function(v){u.push(v)}};return s.then(function(){h.status="fulfilled",h.value=o;for(var v=0;v<u.length;v++)(0,u[v])(o)},function(v){for(h.status="rejected",h.reason=v,v=0;v<u.length;v++)(0,u[v])(void 0)}),h}var f5=F.S;F.S=function(s,o){Yg=dt(),typeof o=="object"&&o!==null&&typeof o.then=="function"&&Q7(s,o),f5!==null&&f5(s,o)};var Nr=ee(null);function Zd(){var s=Nr.current;return s!==null?s:nn.pooledCache}function X1(s,o){o===null?Y(Nr,Nr.current):Y(Nr,o.pool)}function h5(){var s=Zd();return s===null?null:{parent:An._currentValue,pool:s}}var N0=Error(a(460)),Jd=Error(a(474)),K1=Error(a(542)),$1={then:function(){}};function p5(s){return s=s.status,s==="fulfilled"||s==="rejected"}function m5(s,o,u){switch(u=s[u],u===void 0?s.push(o):u!==o&&(o.then(wi,wi),o=u),o.status){case"fulfilled":return o.value;case"rejected":throw s=o.reason,v5(s),s;default:if(typeof o.status=="string")o.then(wi,wi);else{if(s=nn,s!==null&&100<s.shellSuspendCounter)throw Error(a(482));s=o,s.status="pending",s.then(function(h){if(o.status==="pending"){var v=o;v.status="fulfilled",v.value=h}},function(h){if(o.status==="pending"){var v=o;v.status="rejected",v.reason=h}})}switch(o.status){case"fulfilled":return o.value;case"rejected":throw s=o.reason,v5(s),s}throw Mr=o,N0}}function Or(s){try{var o=s._init;return o(s._payload)}catch(u){throw u!==null&&typeof u=="object"&&typeof u.then=="function"?(Mr=u,N0):u}}var Mr=null;function g5(){if(Mr===null)throw Error(a(459));var s=Mr;return Mr=null,s}function v5(s){if(s===N0||s===K1)throw Error(a(483))}var O0=null,Ho=0;function Y1(s){var o=Ho;return Ho+=1,O0===null&&(O0=[]),m5(O0,s,o)}function Go(s,o){o=o.props.ref,s.ref=o!==void 0?o:null}function Z1(s,o){throw o.$$typeof===g?Error(a(525)):(s=Object.prototype.toString.call(o),Error(a(31,s==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":s)))}function x5(s){function o(ve,Te){if(s){var Se=ve.deletions;Se===null?(ve.deletions=[Te],ve.flags|=16):Se.push(Te)}}function u(ve,Te){if(!s)return null;for(;Te!==null;)o(ve,Te),Te=Te.sibling;return null}function h(ve){for(var Te=new Map;ve!==null;)ve.key!==null?Te.set(ve.key,ve):Te.set(ve.index,ve),ve=ve.sibling;return Te}function v(ve,Te){return ve=ds(ve,Te),ve.index=0,ve.sibling=null,ve}function b(ve,Te,Se){return ve.index=Se,s?(Se=ve.alternate,Se!==null?(Se=Se.index,Se<Te?(ve.flags|=67108866,Te):Se):(ve.flags|=67108866,Te)):(ve.flags|=1048576,Te)}function R(ve){return s&&ve.alternate===null&&(ve.flags|=67108866),ve}function U(ve,Te,Se,De){return Te===null||Te.tag!==6?(Te=Bd(Se,ve.mode,De),Te.return=ve,Te):(Te=v(Te,Se),Te.return=ve,Te)}function ce(ve,Te,Se,De){var et=Se.type;return et===y?Re(ve,Te,Se.props.children,De,Se.key):Te!==null&&(Te.elementType===et||typeof et=="object"&&et!==null&&et.$$typeof===z&&Or(et)===Te.type)?(Te=v(Te,Se.props),Go(Te,Se),Te.return=ve,Te):(Te=W1(Se.type,Se.key,Se.props,null,ve.mode,De),Go(Te,Se),Te.return=ve,Te)}function be(ve,Te,Se,De){return Te===null||Te.tag!==4||Te.stateNode.containerInfo!==Se.containerInfo||Te.stateNode.implementation!==Se.implementation?(Te=Ud(Se,ve.mode,De),Te.return=ve,Te):(Te=v(Te,Se.children||[]),Te.return=ve,Te)}function Re(ve,Te,Se,De,et){return Te===null||Te.tag!==7?(Te=Ar(Se,ve.mode,De,et),Te.return=ve,Te):(Te=v(Te,Se),Te.return=ve,Te)}function Ie(ve,Te,Se){if(typeof Te=="string"&&Te!==""||typeof Te=="number"||typeof Te=="bigint")return Te=Bd(""+Te,ve.mode,Se),Te.return=ve,Te;if(typeof Te=="object"&&Te!==null){switch(Te.$$typeof){case S:return Se=W1(Te.type,Te.key,Te.props,null,ve.mode,Se),Go(Se,Te),Se.return=ve,Se;case x:return Te=Ud(Te,ve.mode,Se),Te.return=ve,Te;case z:return Te=Or(Te),Ie(ve,Te,Se)}if(X(Te)||L(Te))return Te=Ar(Te,ve.mode,Se,null),Te.return=ve,Te;if(typeof Te.then=="function")return Ie(ve,Y1(Te),Se);if(Te.$$typeof===E)return Ie(ve,G1(ve,Te),Se);Z1(ve,Te)}return null}function we(ve,Te,Se,De){var et=Te!==null?Te.key:null;if(typeof Se=="string"&&Se!==""||typeof Se=="number"||typeof Se=="bigint")return et!==null?null:U(ve,Te,""+Se,De);if(typeof Se=="object"&&Se!==null){switch(Se.$$typeof){case S:return Se.key===et?ce(ve,Te,Se,De):null;case x:return Se.key===et?be(ve,Te,Se,De):null;case z:return Se=Or(Se),we(ve,Te,Se,De)}if(X(Se)||L(Se))return et!==null?null:Re(ve,Te,Se,De,null);if(typeof Se.then=="function")return we(ve,Te,Y1(Se),De);if(Se.$$typeof===E)return we(ve,Te,G1(ve,Se),De);Z1(ve,Se)}return null}function ke(ve,Te,Se,De,et){if(typeof De=="string"&&De!==""||typeof De=="number"||typeof De=="bigint")return ve=ve.get(Se)||null,U(Te,ve,""+De,et);if(typeof De=="object"&&De!==null){switch(De.$$typeof){case S:return ve=ve.get(De.key===null?Se:De.key)||null,ce(Te,ve,De,et);case x:return ve=ve.get(De.key===null?Se:De.key)||null,be(Te,ve,De,et);case z:return De=Or(De),ke(ve,Te,Se,De,et)}if(X(De)||L(De))return ve=ve.get(Se)||null,Re(Te,ve,De,et,null);if(typeof De.then=="function")return ke(ve,Te,Se,Y1(De),et);if(De.$$typeof===E)return ke(ve,Te,Se,G1(Te,De),et);Z1(Te,De)}return null}function $e(ve,Te,Se,De){for(var et=null,zt=null,Ze=Te,xt=Te=0,Rt=null;Ze!==null&&xt<Se.length;xt++){Ze.index>xt?(Rt=Ze,Ze=null):Rt=Ze.sibling;var Wt=we(ve,Ze,Se[xt],De);if(Wt===null){Ze===null&&(Ze=Rt);break}s&&Ze&&Wt.alternate===null&&o(ve,Ze),Te=b(Wt,Te,xt),zt===null?et=Wt:zt.sibling=Wt,zt=Wt,Ze=Rt}if(xt===Se.length)return u(ve,Ze),Nt&&Ts(ve,xt),et;if(Ze===null){for(;xt<Se.length;xt++)Ze=Ie(ve,Se[xt],De),Ze!==null&&(Te=b(Ze,Te,xt),zt===null?et=Ze:zt.sibling=Ze,zt=Ze);return Nt&&Ts(ve,xt),et}for(Ze=h(Ze);xt<Se.length;xt++)Rt=ke(Ze,ve,xt,Se[xt],De),Rt!==null&&(s&&Rt.alternate!==null&&Ze.delete(Rt.key===null?xt:Rt.key),Te=b(Rt,Te,xt),zt===null?et=Rt:zt.sibling=Rt,zt=Rt);return s&&Ze.forEach(function(ir){return o(ve,ir)}),Nt&&Ts(ve,xt),et}function at(ve,Te,Se,De){if(Se==null)throw Error(a(151));for(var et=null,zt=null,Ze=Te,xt=Te=0,Rt=null,Wt=Se.next();Ze!==null&&!Wt.done;xt++,Wt=Se.next()){Ze.index>xt?(Rt=Ze,Ze=null):Rt=Ze.sibling;var ir=we(ve,Ze,Wt.value,De);if(ir===null){Ze===null&&(Ze=Rt);break}s&&Ze&&ir.alternate===null&&o(ve,Ze),Te=b(ir,Te,xt),zt===null?et=ir:zt.sibling=ir,zt=ir,Ze=Rt}if(Wt.done)return u(ve,Ze),Nt&&Ts(ve,xt),et;if(Ze===null){for(;!Wt.done;xt++,Wt=Se.next())Wt=Ie(ve,Wt.value,De),Wt!==null&&(Te=b(Wt,Te,xt),zt===null?et=Wt:zt.sibling=Wt,zt=Wt);return Nt&&Ts(ve,xt),et}for(Ze=h(Ze);!Wt.done;xt++,Wt=Se.next())Wt=ke(Ze,ve,xt,Wt.value,De),Wt!==null&&(s&&Wt.alternate!==null&&Ze.delete(Wt.key===null?xt:Wt.key),Te=b(Wt,Te,xt),zt===null?et=Wt:zt.sibling=Wt,zt=Wt);return s&&Ze.forEach(function(d8){return o(ve,d8)}),Nt&&Ts(ve,xt),et}function tn(ve,Te,Se,De){if(typeof Se=="object"&&Se!==null&&Se.type===y&&Se.key===null&&(Se=Se.props.children),typeof Se=="object"&&Se!==null){switch(Se.$$typeof){case S:e:{for(var et=Se.key;Te!==null;){if(Te.key===et){if(et=Se.type,et===y){if(Te.tag===7){u(ve,Te.sibling),De=v(Te,Se.props.children),De.return=ve,ve=De;break e}}else if(Te.elementType===et||typeof et=="object"&&et!==null&&et.$$typeof===z&&Or(et)===Te.type){u(ve,Te.sibling),De=v(Te,Se.props),Go(De,Se),De.return=ve,ve=De;break e}u(ve,Te);break}else o(ve,Te);Te=Te.sibling}Se.type===y?(De=Ar(Se.props.children,ve.mode,De,Se.key),De.return=ve,ve=De):(De=W1(Se.type,Se.key,Se.props,null,ve.mode,De),Go(De,Se),De.return=ve,ve=De)}return R(ve);case x:e:{for(et=Se.key;Te!==null;){if(Te.key===et)if(Te.tag===4&&Te.stateNode.containerInfo===Se.containerInfo&&Te.stateNode.implementation===Se.implementation){u(ve,Te.sibling),De=v(Te,Se.children||[]),De.return=ve,ve=De;break e}else{u(ve,Te);break}else o(ve,Te);Te=Te.sibling}De=Ud(Se,ve.mode,De),De.return=ve,ve=De}return R(ve);case z:return Se=Or(Se),tn(ve,Te,Se,De)}if(X(Se))return $e(ve,Te,Se,De);if(L(Se)){if(et=L(Se),typeof et!="function")throw Error(a(150));return Se=et.call(Se),at(ve,Te,Se,De)}if(typeof Se.then=="function")return tn(ve,Te,Y1(Se),De);if(Se.$$typeof===E)return tn(ve,Te,G1(ve,Se),De);Z1(ve,Se)}return typeof Se=="string"&&Se!==""||typeof Se=="number"||typeof Se=="bigint"?(Se=""+Se,Te!==null&&Te.tag===6?(u(ve,Te.sibling),De=v(Te,Se),De.return=ve,ve=De):(u(ve,Te),De=Bd(Se,ve.mode,De),De.return=ve,ve=De),R(ve)):u(ve,Te)}return function(ve,Te,Se,De){try{Ho=0;var et=tn(ve,Te,Se,De);return O0=null,et}catch(Ze){if(Ze===N0||Ze===K1)throw Ze;var zt=Va(29,Ze,null,ve.mode);return zt.lanes=De,zt.return=ve,zt}}}var jr=x5(!0),y5=x5(!1),Us=!1;function Qd(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function eT(s,o){s=s.updateQueue,o.updateQueue===s&&(o.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function zs(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Ws(s,o,u){var h=s.updateQueue;if(h===null)return null;if(h=h.shared,(Ht&2)!==0){var v=h.pending;return v===null?o.next=o:(o.next=v.next,v.next=o),h.pending=o,o=z1(s),a5(s,null,u),o}return U1(s,h,o,u),z1(s)}function Xo(s,o,u){if(o=o.updateQueue,o!==null&&(o=o.shared,(u&4194048)!==0)){var h=o.lanes;h&=s.pendingLanes,u|=h,o.lanes=u,wa(s,u)}}function tT(s,o){var u=s.updateQueue,h=s.alternate;if(h!==null&&(h=h.updateQueue,u===h)){var v=null,b=null;if(u=u.firstBaseUpdate,u!==null){do{var R={lane:u.lane,tag:u.tag,payload:u.payload,callback:null,next:null};b===null?v=b=R:b=b.next=R,u=u.next}while(u!==null);b===null?v=b=o:b=b.next=o}else v=b=o;u={baseState:h.baseState,firstBaseUpdate:v,lastBaseUpdate:b,shared:h.shared,callbacks:h.callbacks},s.updateQueue=u;return}s=u.lastBaseUpdate,s===null?u.firstBaseUpdate=o:s.next=o,u.lastBaseUpdate=o}var nT=!1;function Ko(){if(nT){var s=I0;if(s!==null)throw s}}function $o(s,o,u,h){nT=!1;var v=s.updateQueue;Us=!1;var b=v.firstBaseUpdate,R=v.lastBaseUpdate,U=v.shared.pending;if(U!==null){v.shared.pending=null;var ce=U,be=ce.next;ce.next=null,R===null?b=be:R.next=be,R=ce;var Re=s.alternate;Re!==null&&(Re=Re.updateQueue,U=Re.lastBaseUpdate,U!==R&&(U===null?Re.firstBaseUpdate=be:U.next=be,Re.lastBaseUpdate=ce))}if(b!==null){var Ie=v.baseState;R=0,Re=be=ce=null,U=b;do{var we=U.lane&-536870913,ke=we!==U.lane;if(ke?(At&we)===we:(h&we)===we){we!==0&&we===D0&&(nT=!0),Re!==null&&(Re=Re.next={lane:0,tag:U.tag,payload:U.payload,callback:null,next:null});e:{var $e=s,at=U;we=o;var tn=u;switch(at.tag){case 1:if($e=at.payload,typeof $e=="function"){Ie=$e.call(tn,Ie,we);break e}Ie=$e;break e;case 3:$e.flags=$e.flags&-65537|128;case 0:if($e=at.payload,we=typeof $e=="function"?$e.call(tn,Ie,we):$e,we==null)break e;Ie=m({},Ie,we);break e;case 2:Us=!0}}we=U.callback,we!==null&&(s.flags|=64,ke&&(s.flags|=8192),ke=v.callbacks,ke===null?v.callbacks=[we]:ke.push(we))}else ke={lane:we,tag:U.tag,payload:U.payload,callback:U.callback,next:null},Re===null?(be=Re=ke,ce=Ie):Re=Re.next=ke,R|=we;if(U=U.next,U===null){if(U=v.shared.pending,U===null)break;ke=U,U=ke.next,ke.next=null,v.lastBaseUpdate=ke,v.shared.pending=null}}while(!0);Re===null&&(ce=Ie),v.baseState=ce,v.firstBaseUpdate=be,v.lastBaseUpdate=Re,b===null&&(v.shared.lanes=0),Ks|=R,s.lanes=R,s.memoizedState=Ie}}function S5(s,o){if(typeof s!="function")throw Error(a(191,s));s.call(o)}function b5(s,o){var u=s.callbacks;if(u!==null)for(s.callbacks=null,s=0;s<u.length;s++)S5(u[s],o)}var M0=ee(null),J1=ee(0);function w5(s,o){s=ws,Y(J1,s),Y(M0,o),ws=s|o.baseLanes}function aT(){Y(J1,ws),Y(M0,M0.current)}function iT(){ws=J1.current,M(M0),M(J1)}var Ha=ee(null),ci=null;function Vs(s){var o=s.alternate;Y(Sn,Sn.current&1),Y(Ha,s),ci===null&&(o===null||M0.current!==null||o.memoizedState!==null)&&(ci=s)}function sT(s){Y(Sn,Sn.current),Y(Ha,s),ci===null&&(ci=s)}function C5(s){s.tag===22?(Y(Sn,Sn.current),Y(Ha,s),ci===null&&(ci=s)):Hs()}function Hs(){Y(Sn,Sn.current),Y(Ha,Ha.current)}function Ga(s){M(Ha),ci===s&&(ci=null),M(Sn)}var Sn=ee(0);function Q1(s){for(var o=s;o!==null;){if(o.tag===13){var u=o.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||Tf(u)||ff(u)))return o}else if(o.tag===19&&(o.memoizedProps.revealOrder==="forwards"||o.memoizedProps.revealOrder==="backwards"||o.memoizedProps.revealOrder==="unstable_legacy-backwards"||o.memoizedProps.revealOrder==="together")){if((o.flags&128)!==0)return o}else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===s)break;for(;o.sibling===null;){if(o.return===null||o.return===s)return null;o=o.return}o.sibling.return=o.return,o=o.sibling}return null}var ps=0,gt=null,Qt=null,Rn=null,el=!1,j0=!1,Fr=!1,tl=0,Yo=0,F0=null,tw=0;function pn(){throw Error(a(321))}function rT(s,o){if(o===null)return!1;for(var u=0;u<o.length&&u<s.length;u++)if(!Wa(s[u],o[u]))return!1;return!0}function oT(s,o,u,h,v,b){return ps=b,gt=o,o.memoizedState=null,o.updateQueue=null,o.lanes=0,F.H=s===null||s.memoizedState===null?og:bT,Fr=!1,b=u(h,v),Fr=!1,j0&&(b=k5(o,u,h,v)),E5(s),b}function E5(s){F.H=Qo;var o=Qt!==null&&Qt.next!==null;if(ps=0,Rn=Qt=gt=null,el=!1,Yo=0,F0=null,o)throw Error(a(300));s===null||Dn||(s=s.dependencies,s!==null&&H1(s)&&(Dn=!0))}function k5(s,o,u,h){gt=s;var v=0;do{if(j0&&(F0=null),Yo=0,j0=!1,25<=v)throw Error(a(301));if(v+=1,Rn=Qt=null,s.updateQueue!=null){var b=s.updateQueue;b.lastEffect=null,b.events=null,b.stores=null,b.memoCache!=null&&(b.memoCache.index=0)}F.H=cg,b=o(u,h)}while(j0);return b}function nw(){var s=F.H,o=s.useState()[0];return o=typeof o.then=="function"?Zo(o):o,s=s.useState()[0],(Qt!==null?Qt.memoizedState:null)!==s&&(gt.flags|=1024),o}function cT(){var s=tl!==0;return tl=0,s}function lT(s,o,u){o.updateQueue=s.updateQueue,o.flags&=-2053,s.lanes&=~u}function uT(s){if(el){for(s=s.memoizedState;s!==null;){var o=s.queue;o!==null&&(o.pending=null),s=s.next}el=!1}ps=0,Rn=Qt=gt=null,j0=!1,Yo=tl=0,F0=null}function ka(){var s={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Rn===null?gt.memoizedState=Rn=s:Rn=Rn.next=s,Rn}function bn(){if(Qt===null){var s=gt.alternate;s=s!==null?s.memoizedState:null}else s=Qt.next;var o=Rn===null?gt.memoizedState:Rn.next;if(o!==null)Rn=o,Qt=s;else{if(s===null)throw gt.alternate===null?Error(a(467)):Error(a(310));Qt=s,s={memoizedState:Qt.memoizedState,baseState:Qt.baseState,baseQueue:Qt.baseQueue,queue:Qt.queue,next:null},Rn===null?gt.memoizedState=Rn=s:Rn=Rn.next=s}return Rn}function nl(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Zo(s){var o=Yo;return Yo+=1,F0===null&&(F0=[]),s=m5(F0,s,o),o=gt,(Rn===null?o.memoizedState:Rn.next)===null&&(o=o.alternate,F.H=o===null||o.memoizedState===null?og:bT),s}function al(s){if(s!==null&&typeof s=="object"){if(typeof s.then=="function")return Zo(s);if(s.$$typeof===E)return ea(s)}throw Error(a(438,String(s)))}function dT(s){var o=null,u=gt.updateQueue;if(u!==null&&(o=u.memoCache),o==null){var h=gt.alternate;h!==null&&(h=h.updateQueue,h!==null&&(h=h.memoCache,h!=null&&(o={data:h.data.map(function(v){return v.slice()}),index:0})))}if(o==null&&(o={data:[],index:0}),u===null&&(u=nl(),gt.updateQueue=u),u.memoCache=o,u=o.data[o.index],u===void 0)for(u=o.data[o.index]=Array(s),h=0;h<s;h++)u[h]=K;return o.index++,u}function ms(s,o){return typeof o=="function"?o(s):o}function il(s){var o=bn();return TT(o,Qt,s)}function TT(s,o,u){var h=s.queue;if(h===null)throw Error(a(311));h.lastRenderedReducer=u;var v=s.baseQueue,b=h.pending;if(b!==null){if(v!==null){var R=v.next;v.next=b.next,b.next=R}o.baseQueue=v=b,h.pending=null}if(b=s.baseState,v===null)s.memoizedState=b;else{o=v.next;var U=R=null,ce=null,be=o,Re=!1;do{var Ie=be.lane&-536870913;if(Ie!==be.lane?(At&Ie)===Ie:(ps&Ie)===Ie){var we=be.revertLane;if(we===0)ce!==null&&(ce=ce.next={lane:0,revertLane:0,gesture:null,action:be.action,hasEagerState:be.hasEagerState,eagerState:be.eagerState,next:null}),Ie===D0&&(Re=!0);else if((ps&we)===we){be=be.next,we===D0&&(Re=!0);continue}else Ie={lane:0,revertLane:be.revertLane,gesture:null,action:be.action,hasEagerState:be.hasEagerState,eagerState:be.eagerState,next:null},ce===null?(U=ce=Ie,R=b):ce=ce.next=Ie,gt.lanes|=we,Ks|=we;Ie=be.action,Fr&&u(b,Ie),b=be.hasEagerState?be.eagerState:u(b,Ie)}else we={lane:Ie,revertLane:be.revertLane,gesture:be.gesture,action:be.action,hasEagerState:be.hasEagerState,eagerState:be.eagerState,next:null},ce===null?(U=ce=we,R=b):ce=ce.next=we,gt.lanes|=Ie,Ks|=Ie;be=be.next}while(be!==null&&be!==o);if(ce===null?R=b:ce.next=U,!Wa(b,s.memoizedState)&&(Dn=!0,Re&&(u=I0,u!==null)))throw u;s.memoizedState=b,s.baseState=R,s.baseQueue=ce,h.lastRenderedState=b}return v===null&&(h.lanes=0),[s.memoizedState,h.dispatch]}function fT(s){var o=bn(),u=o.queue;if(u===null)throw Error(a(311));u.lastRenderedReducer=s;var h=u.dispatch,v=u.pending,b=o.memoizedState;if(v!==null){u.pending=null;var R=v=v.next;do b=s(b,R.action),R=R.next;while(R!==v);Wa(b,o.memoizedState)||(Dn=!0),o.memoizedState=b,o.baseQueue===null&&(o.baseState=b),u.lastRenderedState=b}return[b,h]}function A5(s,o,u){var h=gt,v=bn(),b=Nt;if(b){if(u===void 0)throw Error(a(407));u=u()}else u=o();var R=!Wa((Qt||v).memoizedState,u);if(R&&(v.memoizedState=u,Dn=!0),v=v.queue,mT(I5.bind(null,h,v,s),[s]),v.getSnapshot!==o||R||Rn!==null&&Rn.memoizedState.tag&1){if(h.flags|=2048,L0(9,{destroy:void 0},D5.bind(null,h,v,u,o),null),nn===null)throw Error(a(349));b||(ps&127)!==0||R5(h,o,u)}return u}function R5(s,o,u){s.flags|=16384,s={getSnapshot:o,value:u},o=gt.updateQueue,o===null?(o=nl(),gt.updateQueue=o,o.stores=[s]):(u=o.stores,u===null?o.stores=[s]:u.push(s))}function D5(s,o,u,h){o.value=u,o.getSnapshot=h,N5(o)&&O5(s)}function I5(s,o,u){return u(function(){N5(o)&&O5(s)})}function N5(s){var o=s.getSnapshot;s=s.value;try{var u=o();return!Wa(s,u)}catch{return!0}}function O5(s){var o=kr(s,2);o!==null&&_a(o,s,2)}function hT(s){var o=ka();if(typeof s=="function"){var u=s;if(s=u(),Fr){mt(!0);try{u()}finally{mt(!1)}}}return o.memoizedState=o.baseState=s,o.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:s},o}function M5(s,o,u,h){return s.baseState=u,TT(s,Qt,typeof h=="function"?h:ms)}function aw(s,o,u,h,v){if(ol(s))throw Error(a(485));if(s=o.action,s!==null){var b={payload:v,action:s,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(R){b.listeners.push(R)}};F.T!==null?u(!0):b.isTransition=!1,h(b),u=o.pending,u===null?(b.next=o.pending=b,j5(o,b)):(b.next=u.next,o.pending=u.next=b)}}function j5(s,o){var u=o.action,h=o.payload,v=s.state;if(o.isTransition){var b=F.T,R={};F.T=R;try{var U=u(v,h),ce=F.S;ce!==null&&ce(R,U),F5(s,o,U)}catch(be){pT(s,o,be)}finally{b!==null&&R.types!==null&&(b.types=R.types),F.T=b}}else try{b=u(v,h),F5(s,o,b)}catch(be){pT(s,o,be)}}function F5(s,o,u){u!==null&&typeof u=="object"&&typeof u.then=="function"?u.then(function(h){L5(s,o,h)},function(h){return pT(s,o,h)}):L5(s,o,u)}function L5(s,o,u){o.status="fulfilled",o.value=u,P5(o),s.state=u,o=s.pending,o!==null&&(u=o.next,u===o?s.pending=null:(u=u.next,o.next=u,j5(s,u)))}function pT(s,o,u){var h=s.pending;if(s.pending=null,h!==null){h=h.next;do o.status="rejected",o.reason=u,P5(o),o=o.next;while(o!==h)}s.action=null}function P5(s){s=s.listeners;for(var o=0;o<s.length;o++)(0,s[o])()}function _5(s,o){return o}function q5(s,o){if(Nt){var u=nn.formState;if(u!==null){e:{var h=gt;if(Nt){if(on){t:{for(var v=on,b=oi;v.nodeType!==8;){if(!b){v=null;break t}if(v=li(v.nextSibling),v===null){v=null;break t}}b=v.data,v=b==="F!"||b==="F"?v:null}if(v){on=li(v.nextSibling),h=v.data==="F!";break e}}qs(h)}h=!1}h&&(o=u[0])}}return u=ka(),u.memoizedState=u.baseState=o,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:_5,lastRenderedState:o},u.queue=h,u=ig.bind(null,gt,h),h.dispatch=u,h=hT(!1),b=ST.bind(null,gt,!1,h.queue),h=ka(),v={state:o,dispatch:null,action:s,pending:null},h.queue=v,u=aw.bind(null,gt,v,b,u),v.dispatch=u,h.memoizedState=s,[o,u,!1]}function B5(s){var o=bn();return U5(o,Qt,s)}function U5(s,o,u){if(o=TT(s,o,_5)[0],s=il(ms)[0],typeof o=="object"&&o!==null&&typeof o.then=="function")try{var h=Zo(o)}catch(R){throw R===N0?K1:R}else h=o;o=bn();var v=o.queue,b=v.dispatch;return u!==o.memoizedState&&(gt.flags|=2048,L0(9,{destroy:void 0},iw.bind(null,v,u),null)),[h,b,s]}function iw(s,o){s.action=o}function z5(s){var o=bn(),u=Qt;if(u!==null)return U5(o,u,s);bn(),o=o.memoizedState,u=bn();var h=u.queue.dispatch;return u.memoizedState=s,[o,h,!1]}function L0(s,o,u,h){return s={tag:s,create:u,deps:h,inst:o,next:null},o=gt.updateQueue,o===null&&(o=nl(),gt.updateQueue=o),u=o.lastEffect,u===null?o.lastEffect=s.next=s:(h=u.next,u.next=s,s.next=h,o.lastEffect=s),s}function W5(){return bn().memoizedState}function sl(s,o,u,h){var v=ka();gt.flags|=s,v.memoizedState=L0(1|o,{destroy:void 0},u,h===void 0?null:h)}function rl(s,o,u,h){var v=bn();h=h===void 0?null:h;var b=v.memoizedState.inst;Qt!==null&&h!==null&&rT(h,Qt.memoizedState.deps)?v.memoizedState=L0(o,b,u,h):(gt.flags|=s,v.memoizedState=L0(1|o,b,u,h))}function V5(s,o){sl(8390656,8,s,o)}function mT(s,o){rl(2048,8,s,o)}function sw(s){gt.flags|=4;var o=gt.updateQueue;if(o===null)o=nl(),gt.updateQueue=o,o.events=[s];else{var u=o.events;u===null?o.events=[s]:u.push(s)}}function H5(s){var o=bn().memoizedState;return sw({ref:o,nextImpl:s}),function(){if((Ht&2)!==0)throw Error(a(440));return o.impl.apply(void 0,arguments)}}function G5(s,o){return rl(4,2,s,o)}function X5(s,o){return rl(4,4,s,o)}function K5(s,o){if(typeof o=="function"){s=s();var u=o(s);return function(){typeof u=="function"?u():o(null)}}if(o!=null)return s=s(),o.current=s,function(){o.current=null}}function $5(s,o,u){u=u!=null?u.concat([s]):null,rl(4,4,K5.bind(null,o,s),u)}function gT(){}function Y5(s,o){var u=bn();o=o===void 0?null:o;var h=u.memoizedState;return o!==null&&rT(o,h[1])?h[0]:(u.memoizedState=[s,o],s)}function Z5(s,o){var u=bn();o=o===void 0?null:o;var h=u.memoizedState;if(o!==null&&rT(o,h[1]))return h[0];if(h=s(),Fr){mt(!0);try{s()}finally{mt(!1)}}return u.memoizedState=[h,o],h}function vT(s,o,u){return u===void 0||(ps&1073741824)!==0&&(At&261930)===0?s.memoizedState=o:(s.memoizedState=u,s=Jg(),gt.lanes|=s,Ks|=s,u)}function J5(s,o,u,h){return Wa(u,o)?u:M0.current!==null?(s=vT(s,u,h),Wa(s,o)||(Dn=!0),s):(ps&42)===0||(ps&1073741824)!==0&&(At&261930)===0?(Dn=!0,s.memoizedState=u):(s=Jg(),gt.lanes|=s,Ks|=s,o)}function Q5(s,o,u,h,v){var b=re.p;re.p=b!==0&&8>b?b:8;var R=F.T,U={};F.T=U,ST(s,!1,o,u);try{var ce=v(),be=F.S;if(be!==null&&be(U,ce),ce!==null&&typeof ce=="object"&&typeof ce.then=="function"){var Re=ew(ce,h);Jo(s,o,Re,$a(s))}else Jo(s,o,h,$a(s))}catch(Ie){Jo(s,o,{then:function(){},status:"rejected",reason:Ie},$a())}finally{re.p=b,R!==null&&U.types!==null&&(R.types=U.types),F.T=R}}function rw(){}function xT(s,o,u,h){if(s.tag!==5)throw Error(a(476));var v=eg(s).queue;Q5(s,v,o,me,u===null?rw:function(){return tg(s),u(h)})}function eg(s){var o=s.memoizedState;if(o!==null)return o;o={memoizedState:me,baseState:me,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:me},next:null};var u={};return o.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:u},next:null},s.memoizedState=o,s=s.alternate,s!==null&&(s.memoizedState=o),o}function tg(s){var o=eg(s);o.next===null&&(o=s.alternate.memoizedState),Jo(s,o.next.queue,{},$a())}function yT(){return ea(pc)}function ng(){return bn().memoizedState}function ag(){return bn().memoizedState}function ow(s){for(var o=s.return;o!==null;){switch(o.tag){case 24:case 3:var u=$a();s=zs(u);var h=Ws(o,s,u);h!==null&&(_a(h,o,u),Xo(h,o,u)),o={cache:$d()},s.payload=o;return}o=o.return}}function cw(s,o,u){var h=$a();u={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null},ol(s)?sg(o,u):(u=_d(s,o,u,h),u!==null&&(_a(u,s,h),rg(u,o,h)))}function ig(s,o,u){var h=$a();Jo(s,o,u,h)}function Jo(s,o,u,h){var v={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null};if(ol(s))sg(o,v);else{var b=s.alternate;if(s.lanes===0&&(b===null||b.lanes===0)&&(b=o.lastRenderedReducer,b!==null))try{var R=o.lastRenderedState,U=b(R,u);if(v.hasEagerState=!0,v.eagerState=U,Wa(U,R))return U1(s,o,v,0),nn===null&&B1(),!1}catch{}if(u=_d(s,o,v,h),u!==null)return _a(u,s,h),rg(u,o,h),!0}return!1}function ST(s,o,u,h){if(h={lane:2,revertLane:QT(),gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},ol(s)){if(o)throw Error(a(479))}else o=_d(s,u,h,2),o!==null&&_a(o,s,2)}function ol(s){var o=s.alternate;return s===gt||o!==null&&o===gt}function sg(s,o){j0=el=!0;var u=s.pending;u===null?o.next=o:(o.next=u.next,u.next=o),s.pending=o}function rg(s,o,u){if((u&4194048)!==0){var h=o.lanes;h&=s.pendingLanes,u|=h,o.lanes=u,wa(s,u)}}var Qo={readContext:ea,use:al,useCallback:pn,useContext:pn,useEffect:pn,useImperativeHandle:pn,useLayoutEffect:pn,useInsertionEffect:pn,useMemo:pn,useReducer:pn,useRef:pn,useState:pn,useDebugValue:pn,useDeferredValue:pn,useTransition:pn,useSyncExternalStore:pn,useId:pn,useHostTransitionStatus:pn,useFormState:pn,useActionState:pn,useOptimistic:pn,useMemoCache:pn,useCacheRefresh:pn};Qo.useEffectEvent=pn;var og={readContext:ea,use:al,useCallback:function(s,o){return ka().memoizedState=[s,o===void 0?null:o],s},useContext:ea,useEffect:V5,useImperativeHandle:function(s,o,u){u=u!=null?u.concat([s]):null,sl(4194308,4,K5.bind(null,o,s),u)},useLayoutEffect:function(s,o){return sl(4194308,4,s,o)},useInsertionEffect:function(s,o){sl(4,2,s,o)},useMemo:function(s,o){var u=ka();o=o===void 0?null:o;var h=s();if(Fr){mt(!0);try{s()}finally{mt(!1)}}return u.memoizedState=[h,o],h},useReducer:function(s,o,u){var h=ka();if(u!==void 0){var v=u(o);if(Fr){mt(!0);try{u(o)}finally{mt(!1)}}}else v=o;return h.memoizedState=h.baseState=v,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:v},h.queue=s,s=s.dispatch=cw.bind(null,gt,s),[h.memoizedState,s]},useRef:function(s){var o=ka();return s={current:s},o.memoizedState=s},useState:function(s){s=hT(s);var o=s.queue,u=ig.bind(null,gt,o);return o.dispatch=u,[s.memoizedState,u]},useDebugValue:gT,useDeferredValue:function(s,o){var u=ka();return vT(u,s,o)},useTransition:function(){var s=hT(!1);return s=Q5.bind(null,gt,s.queue,!0,!1),ka().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,o,u){var h=gt,v=ka();if(Nt){if(u===void 0)throw Error(a(407));u=u()}else{if(u=o(),nn===null)throw Error(a(349));(At&127)!==0||R5(h,o,u)}v.memoizedState=u;var b={value:u,getSnapshot:o};return v.queue=b,V5(I5.bind(null,h,b,s),[s]),h.flags|=2048,L0(9,{destroy:void 0},D5.bind(null,h,b,u,o),null),u},useId:function(){var s=ka(),o=nn.identifierPrefix;if(Nt){var u=Ui,h=Bi;u=(h&~(1<<32-Qe(h)-1)).toString(32)+u,o="_"+o+"R_"+u,u=tl++,0<u&&(o+="H"+u.toString(32)),o+="_"}else u=tw++,o="_"+o+"r_"+u.toString(32)+"_";return s.memoizedState=o},useHostTransitionStatus:yT,useFormState:q5,useActionState:q5,useOptimistic:function(s){var o=ka();o.memoizedState=o.baseState=s;var u={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return o.queue=u,o=ST.bind(null,gt,!0,u),u.dispatch=o,[s,o]},useMemoCache:dT,useCacheRefresh:function(){return ka().memoizedState=ow.bind(null,gt)},useEffectEvent:function(s){var o=ka(),u={impl:s};return o.memoizedState=u,function(){if((Ht&2)!==0)throw Error(a(440));return u.impl.apply(void 0,arguments)}}},bT={readContext:ea,use:al,useCallback:Y5,useContext:ea,useEffect:mT,useImperativeHandle:$5,useInsertionEffect:G5,useLayoutEffect:X5,useMemo:Z5,useReducer:il,useRef:W5,useState:function(){return il(ms)},useDebugValue:gT,useDeferredValue:function(s,o){var u=bn();return J5(u,Qt.memoizedState,s,o)},useTransition:function(){var s=il(ms)[0],o=bn().memoizedState;return[typeof s=="boolean"?s:Zo(s),o]},useSyncExternalStore:A5,useId:ng,useHostTransitionStatus:yT,useFormState:B5,useActionState:B5,useOptimistic:function(s,o){var u=bn();return M5(u,Qt,s,o)},useMemoCache:dT,useCacheRefresh:ag};bT.useEffectEvent=H5;var cg={readContext:ea,use:al,useCallback:Y5,useContext:ea,useEffect:mT,useImperativeHandle:$5,useInsertionEffect:G5,useLayoutEffect:X5,useMemo:Z5,useReducer:fT,useRef:W5,useState:function(){return fT(ms)},useDebugValue:gT,useDeferredValue:function(s,o){var u=bn();return Qt===null?vT(u,s,o):J5(u,Qt.memoizedState,s,o)},useTransition:function(){var s=fT(ms)[0],o=bn().memoizedState;return[typeof s=="boolean"?s:Zo(s),o]},useSyncExternalStore:A5,useId:ng,useHostTransitionStatus:yT,useFormState:z5,useActionState:z5,useOptimistic:function(s,o){var u=bn();return Qt!==null?M5(u,Qt,s,o):(u.baseState=s,[s,u.queue.dispatch])},useMemoCache:dT,useCacheRefresh:ag};cg.useEffectEvent=H5;function wT(s,o,u,h){o=s.memoizedState,u=u(h,o),u=u==null?o:m({},o,u),s.memoizedState=u,s.lanes===0&&(s.updateQueue.baseState=u)}var CT={enqueueSetState:function(s,o,u){s=s._reactInternals;var h=$a(),v=zs(h);v.payload=o,u!=null&&(v.callback=u),o=Ws(s,v,h),o!==null&&(_a(o,s,h),Xo(o,s,h))},enqueueReplaceState:function(s,o,u){s=s._reactInternals;var h=$a(),v=zs(h);v.tag=1,v.payload=o,u!=null&&(v.callback=u),o=Ws(s,v,h),o!==null&&(_a(o,s,h),Xo(o,s,h))},enqueueForceUpdate:function(s,o){s=s._reactInternals;var u=$a(),h=zs(u);h.tag=2,o!=null&&(h.callback=o),o=Ws(s,h,u),o!==null&&(_a(o,s,u),Xo(o,s,u))}};function lg(s,o,u,h,v,b,R){return s=s.stateNode,typeof s.shouldComponentUpdate=="function"?s.shouldComponentUpdate(h,b,R):o.prototype&&o.prototype.isPureReactComponent?!qo(u,h)||!qo(v,b):!0}function ug(s,o,u,h){s=o.state,typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps(u,h),typeof o.UNSAFE_componentWillReceiveProps=="function"&&o.UNSAFE_componentWillReceiveProps(u,h),o.state!==s&&CT.enqueueReplaceState(o,o.state,null)}function Lr(s,o){var u=o;if("ref"in o){u={};for(var h in o)h!=="ref"&&(u[h]=o[h])}if(s=s.defaultProps){u===o&&(u=m({},u));for(var v in s)u[v]===void 0&&(u[v]=s[v])}return u}function dg(s){q1(s)}function Tg(s){console.error(s)}function fg(s){q1(s)}function cl(s,o){try{var u=s.onUncaughtError;u(o.value,{componentStack:o.stack})}catch(h){setTimeout(function(){throw h})}}function hg(s,o,u){try{var h=s.onCaughtError;h(u.value,{componentStack:u.stack,errorBoundary:o.tag===1?o.stateNode:null})}catch(v){setTimeout(function(){throw v})}}function ET(s,o,u){return u=zs(u),u.tag=3,u.payload={element:null},u.callback=function(){cl(s,o)},u}function pg(s){return s=zs(s),s.tag=3,s}function mg(s,o,u,h){var v=u.type.getDerivedStateFromError;if(typeof v=="function"){var b=h.value;s.payload=function(){return v(b)},s.callback=function(){hg(o,u,h)}}var R=u.stateNode;R!==null&&typeof R.componentDidCatch=="function"&&(s.callback=function(){hg(o,u,h),typeof v!="function"&&($s===null?$s=new Set([this]):$s.add(this));var U=h.stack;this.componentDidCatch(h.value,{componentStack:U!==null?U:""})})}function lw(s,o,u,h,v){if(u.flags|=32768,h!==null&&typeof h=="object"&&typeof h.then=="function"){if(o=u.alternate,o!==null&&R0(o,u,v,!0),u=Ha.current,u!==null){switch(u.tag){case 31:case 13:return ci===null?yl():u.alternate===null&&mn===0&&(mn=3),u.flags&=-257,u.flags|=65536,u.lanes=v,h===$1?u.flags|=16384:(o=u.updateQueue,o===null?u.updateQueue=new Set([h]):o.add(h),YT(s,h,v)),!1;case 22:return u.flags|=65536,h===$1?u.flags|=16384:(o=u.updateQueue,o===null?(o={transitions:null,markerInstances:null,retryQueue:new Set([h])},u.updateQueue=o):(u=o.retryQueue,u===null?o.retryQueue=new Set([h]):u.add(h)),YT(s,h,v)),!1}throw Error(a(435,u.tag))}return YT(s,h,v),yl(),!1}if(Nt)return o=Ha.current,o!==null?((o.flags&65536)===0&&(o.flags|=256),o.flags|=65536,o.lanes=v,h!==Vd&&(s=Error(a(422),{cause:h}),zo(ii(s,u)))):(h!==Vd&&(o=Error(a(423),{cause:h}),zo(ii(o,u))),s=s.current.alternate,s.flags|=65536,v&=-v,s.lanes|=v,h=ii(h,u),v=ET(s.stateNode,h,v),tT(s,v),mn!==4&&(mn=2)),!1;var b=Error(a(520),{cause:h});if(b=ii(b,u),oc===null?oc=[b]:oc.push(b),mn!==4&&(mn=2),o===null)return!0;h=ii(h,u),u=o;do{switch(u.tag){case 3:return u.flags|=65536,s=v&-v,u.lanes|=s,s=ET(u.stateNode,h,s),tT(u,s),!1;case 1:if(o=u.type,b=u.stateNode,(u.flags&128)===0&&(typeof o.getDerivedStateFromError=="function"||b!==null&&typeof b.componentDidCatch=="function"&&($s===null||!$s.has(b))))return u.flags|=65536,v&=-v,u.lanes|=v,v=pg(v),mg(v,s,u,h),tT(u,v),!1}u=u.return}while(u!==null);return!1}var kT=Error(a(461)),Dn=!1;function ta(s,o,u,h){o.child=s===null?y5(o,null,u,h):jr(o,s.child,u,h)}function gg(s,o,u,h,v){u=u.render;var b=o.ref;if("ref"in h){var R={};for(var U in h)U!=="ref"&&(R[U]=h[U])}else R=h;return Ir(o),h=oT(s,o,u,R,b,v),U=cT(),s!==null&&!Dn?(lT(s,o,v),gs(s,o,v)):(Nt&&U&&zd(o),o.flags|=1,ta(s,o,h,v),o.child)}function vg(s,o,u,h,v){if(s===null){var b=u.type;return typeof b=="function"&&!qd(b)&&b.defaultProps===void 0&&u.compare===null?(o.tag=15,o.type=b,xg(s,o,b,h,v)):(s=W1(u.type,null,h,o,o.mode,v),s.ref=o.ref,s.return=o,o.child=s)}if(b=s.child,!jT(s,v)){var R=b.memoizedProps;if(u=u.compare,u=u!==null?u:qo,u(R,h)&&s.ref===o.ref)return gs(s,o,v)}return o.flags|=1,s=ds(b,h),s.ref=o.ref,s.return=o,o.child=s}function xg(s,o,u,h,v){if(s!==null){var b=s.memoizedProps;if(qo(b,h)&&s.ref===o.ref)if(Dn=!1,o.pendingProps=h=b,jT(s,v))(s.flags&131072)!==0&&(Dn=!0);else return o.lanes=s.lanes,gs(s,o,v)}return AT(s,o,u,h,v)}function yg(s,o,u,h){var v=h.children,b=s!==null?s.memoizedState:null;if(s===null&&o.stateNode===null&&(o.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),h.mode==="hidden"){if((o.flags&128)!==0){if(b=b!==null?b.baseLanes|u:u,s!==null){for(h=o.child=s.child,v=0;h!==null;)v=v|h.lanes|h.childLanes,h=h.sibling;h=v&~b}else h=0,o.child=null;return Sg(s,o,b,u,h)}if((u&536870912)!==0)o.memoizedState={baseLanes:0,cachePool:null},s!==null&&X1(o,b!==null?b.cachePool:null),b!==null?w5(o,b):aT(),C5(o);else return h=o.lanes=536870912,Sg(s,o,b!==null?b.baseLanes|u:u,u,h)}else b!==null?(X1(o,b.cachePool),w5(o,b),Hs(),o.memoizedState=null):(s!==null&&X1(o,null),aT(),Hs());return ta(s,o,v,u),o.child}function ec(s,o){return s!==null&&s.tag===22||o.stateNode!==null||(o.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.sibling}function Sg(s,o,u,h,v){var b=Zd();return b=b===null?null:{parent:An._currentValue,pool:b},o.memoizedState={baseLanes:u,cachePool:b},s!==null&&X1(o,null),aT(),C5(o),s!==null&&R0(s,o,h,!0),o.childLanes=v,null}function ll(s,o){return o=dl({mode:o.mode,children:o.children},s.mode),o.ref=s.ref,s.child=o,o.return=s,o}function bg(s,o,u){return jr(o,s.child,null,u),s=ll(o,o.pendingProps),s.flags|=2,Ga(o),o.memoizedState=null,s}function uw(s,o,u){var h=o.pendingProps,v=(o.flags&128)!==0;if(o.flags&=-129,s===null){if(Nt){if(h.mode==="hidden")return s=ll(o,h),o.lanes=536870912,ec(null,s);if(sT(o),(s=on)?(s=j2(s,oi),s=s!==null&&s.data==="&"?s:null,s!==null&&(o.memoizedState={dehydrated:s,treeContext:Ps!==null?{id:Bi,overflow:Ui}:null,retryLane:536870912,hydrationErrors:null},u=s5(s),u.return=o,o.child=u,Qn=o,on=null)):s=null,s===null)throw qs(o);return o.lanes=536870912,null}return ll(o,h)}var b=s.memoizedState;if(b!==null){var R=b.dehydrated;if(sT(o),v)if(o.flags&256)o.flags&=-257,o=bg(s,o,u);else if(o.memoizedState!==null)o.child=s.child,o.flags|=128,o=null;else throw Error(a(558));else if(Dn||R0(s,o,u,!1),v=(u&s.childLanes)!==0,Dn||v){if(h=nn,h!==null&&(R=ti(h,u),R!==0&&R!==b.retryLane))throw b.retryLane=R,kr(s,R),_a(h,s,R),kT;yl(),o=bg(s,o,u)}else s=b.treeContext,on=li(R.nextSibling),Qn=o,Nt=!0,_s=null,oi=!1,s!==null&&c5(o,s),o=ll(o,h),o.flags|=4096;return o}return s=ds(s.child,{mode:h.mode,children:h.children}),s.ref=o.ref,o.child=s,s.return=o,s}function ul(s,o){var u=o.ref;if(u===null)s!==null&&s.ref!==null&&(o.flags|=4194816);else{if(typeof u!="function"&&typeof u!="object")throw Error(a(284));(s===null||s.ref!==u)&&(o.flags|=4194816)}}function AT(s,o,u,h,v){return Ir(o),u=oT(s,o,u,h,void 0,v),h=cT(),s!==null&&!Dn?(lT(s,o,v),gs(s,o,v)):(Nt&&h&&zd(o),o.flags|=1,ta(s,o,u,v),o.child)}function wg(s,o,u,h,v,b){return Ir(o),o.updateQueue=null,u=k5(o,h,u,v),E5(s),h=cT(),s!==null&&!Dn?(lT(s,o,b),gs(s,o,b)):(Nt&&h&&zd(o),o.flags|=1,ta(s,o,u,b),o.child)}function Cg(s,o,u,h,v){if(Ir(o),o.stateNode===null){var b=C0,R=u.contextType;typeof R=="object"&&R!==null&&(b=ea(R)),b=new u(h,b),o.memoizedState=b.state!==null&&b.state!==void 0?b.state:null,b.updater=CT,o.stateNode=b,b._reactInternals=o,b=o.stateNode,b.props=h,b.state=o.memoizedState,b.refs={},Qd(o),R=u.contextType,b.context=typeof R=="object"&&R!==null?ea(R):C0,b.state=o.memoizedState,R=u.getDerivedStateFromProps,typeof R=="function"&&(wT(o,u,R,h),b.state=o.memoizedState),typeof u.getDerivedStateFromProps=="function"||typeof b.getSnapshotBeforeUpdate=="function"||typeof b.UNSAFE_componentWillMount!="function"&&typeof b.componentWillMount!="function"||(R=b.state,typeof b.componentWillMount=="function"&&b.componentWillMount(),typeof b.UNSAFE_componentWillMount=="function"&&b.UNSAFE_componentWillMount(),R!==b.state&&CT.enqueueReplaceState(b,b.state,null),$o(o,h,b,v),Ko(),b.state=o.memoizedState),typeof b.componentDidMount=="function"&&(o.flags|=4194308),h=!0}else if(s===null){b=o.stateNode;var U=o.memoizedProps,ce=Lr(u,U);b.props=ce;var be=b.context,Re=u.contextType;R=C0,typeof Re=="object"&&Re!==null&&(R=ea(Re));var Ie=u.getDerivedStateFromProps;Re=typeof Ie=="function"||typeof b.getSnapshotBeforeUpdate=="function",U=o.pendingProps!==U,Re||typeof b.UNSAFE_componentWillReceiveProps!="function"&&typeof b.componentWillReceiveProps!="function"||(U||be!==R)&&ug(o,b,h,R),Us=!1;var we=o.memoizedState;b.state=we,$o(o,h,b,v),Ko(),be=o.memoizedState,U||we!==be||Us?(typeof Ie=="function"&&(wT(o,u,Ie,h),be=o.memoizedState),(ce=Us||lg(o,u,ce,h,we,be,R))?(Re||typeof b.UNSAFE_componentWillMount!="function"&&typeof b.componentWillMount!="function"||(typeof b.componentWillMount=="function"&&b.componentWillMount(),typeof b.UNSAFE_componentWillMount=="function"&&b.UNSAFE_componentWillMount()),typeof b.componentDidMount=="function"&&(o.flags|=4194308)):(typeof b.componentDidMount=="function"&&(o.flags|=4194308),o.memoizedProps=h,o.memoizedState=be),b.props=h,b.state=be,b.context=R,h=ce):(typeof b.componentDidMount=="function"&&(o.flags|=4194308),h=!1)}else{b=o.stateNode,eT(s,o),R=o.memoizedProps,Re=Lr(u,R),b.props=Re,Ie=o.pendingProps,we=b.context,be=u.contextType,ce=C0,typeof be=="object"&&be!==null&&(ce=ea(be)),U=u.getDerivedStateFromProps,(be=typeof U=="function"||typeof b.getSnapshotBeforeUpdate=="function")||typeof b.UNSAFE_componentWillReceiveProps!="function"&&typeof b.componentWillReceiveProps!="function"||(R!==Ie||we!==ce)&&ug(o,b,h,ce),Us=!1,we=o.memoizedState,b.state=we,$o(o,h,b,v),Ko();var ke=o.memoizedState;R!==Ie||we!==ke||Us||s!==null&&s.dependencies!==null&&H1(s.dependencies)?(typeof U=="function"&&(wT(o,u,U,h),ke=o.memoizedState),(Re=Us||lg(o,u,Re,h,we,ke,ce)||s!==null&&s.dependencies!==null&&H1(s.dependencies))?(be||typeof b.UNSAFE_componentWillUpdate!="function"&&typeof b.componentWillUpdate!="function"||(typeof b.componentWillUpdate=="function"&&b.componentWillUpdate(h,ke,ce),typeof b.UNSAFE_componentWillUpdate=="function"&&b.UNSAFE_componentWillUpdate(h,ke,ce)),typeof b.componentDidUpdate=="function"&&(o.flags|=4),typeof b.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof b.componentDidUpdate!="function"||R===s.memoizedProps&&we===s.memoizedState||(o.flags|=4),typeof b.getSnapshotBeforeUpdate!="function"||R===s.memoizedProps&&we===s.memoizedState||(o.flags|=1024),o.memoizedProps=h,o.memoizedState=ke),b.props=h,b.state=ke,b.context=ce,h=Re):(typeof b.componentDidUpdate!="function"||R===s.memoizedProps&&we===s.memoizedState||(o.flags|=4),typeof b.getSnapshotBeforeUpdate!="function"||R===s.memoizedProps&&we===s.memoizedState||(o.flags|=1024),h=!1)}return b=h,ul(s,o),h=(o.flags&128)!==0,b||h?(b=o.stateNode,u=h&&typeof u.getDerivedStateFromError!="function"?null:b.render(),o.flags|=1,s!==null&&h?(o.child=jr(o,s.child,null,v),o.child=jr(o,null,u,v)):ta(s,o,u,v),o.memoizedState=b.state,s=o.child):s=gs(s,o,v),s}function Eg(s,o,u,h){return Rr(),o.flags|=256,ta(s,o,u,h),o.child}var RT={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function DT(s){return{baseLanes:s,cachePool:h5()}}function IT(s,o,u){return s=s!==null?s.childLanes&~u:0,o&&(s|=Ka),s}function kg(s,o,u){var h=o.pendingProps,v=!1,b=(o.flags&128)!==0,R;if((R=b)||(R=s!==null&&s.memoizedState===null?!1:(Sn.current&2)!==0),R&&(v=!0,o.flags&=-129),R=(o.flags&32)!==0,o.flags&=-33,s===null){if(Nt){if(v?Vs(o):Hs(),(s=on)?(s=j2(s,oi),s=s!==null&&s.data!=="&"?s:null,s!==null&&(o.memoizedState={dehydrated:s,treeContext:Ps!==null?{id:Bi,overflow:Ui}:null,retryLane:536870912,hydrationErrors:null},u=s5(s),u.return=o,o.child=u,Qn=o,on=null)):s=null,s===null)throw qs(o);return ff(s)?o.lanes=32:o.lanes=536870912,null}var U=h.children;return h=h.fallback,v?(Hs(),v=o.mode,U=dl({mode:"hidden",children:U},v),h=Ar(h,v,u,null),U.return=o,h.return=o,U.sibling=h,o.child=U,h=o.child,h.memoizedState=DT(u),h.childLanes=IT(s,R,u),o.memoizedState=RT,ec(null,h)):(Vs(o),NT(o,U))}var ce=s.memoizedState;if(ce!==null&&(U=ce.dehydrated,U!==null)){if(b)o.flags&256?(Vs(o),o.flags&=-257,o=OT(s,o,u)):o.memoizedState!==null?(Hs(),o.child=s.child,o.flags|=128,o=null):(Hs(),U=h.fallback,v=o.mode,h=dl({mode:"visible",children:h.children},v),U=Ar(U,v,u,null),U.flags|=2,h.return=o,U.return=o,h.sibling=U,o.child=h,jr(o,s.child,null,u),h=o.child,h.memoizedState=DT(u),h.childLanes=IT(s,R,u),o.memoizedState=RT,o=ec(null,h));else if(Vs(o),ff(U)){if(R=U.nextSibling&&U.nextSibling.dataset,R)var be=R.dgst;R=be,h=Error(a(419)),h.stack="",h.digest=R,zo({value:h,source:null,stack:null}),o=OT(s,o,u)}else if(Dn||R0(s,o,u,!1),R=(u&s.childLanes)!==0,Dn||R){if(R=nn,R!==null&&(h=ti(R,u),h!==0&&h!==ce.retryLane))throw ce.retryLane=h,kr(s,h),_a(R,s,h),kT;Tf(U)||yl(),o=OT(s,o,u)}else Tf(U)?(o.flags|=192,o.child=s.child,o=null):(s=ce.treeContext,on=li(U.nextSibling),Qn=o,Nt=!0,_s=null,oi=!1,s!==null&&c5(o,s),o=NT(o,h.children),o.flags|=4096);return o}return v?(Hs(),U=h.fallback,v=o.mode,ce=s.child,be=ce.sibling,h=ds(ce,{mode:"hidden",children:h.children}),h.subtreeFlags=ce.subtreeFlags&65011712,be!==null?U=ds(be,U):(U=Ar(U,v,u,null),U.flags|=2),U.return=o,h.return=o,h.sibling=U,o.child=h,ec(null,h),h=o.child,U=s.child.memoizedState,U===null?U=DT(u):(v=U.cachePool,v!==null?(ce=An._currentValue,v=v.parent!==ce?{parent:ce,pool:ce}:v):v=h5(),U={baseLanes:U.baseLanes|u,cachePool:v}),h.memoizedState=U,h.childLanes=IT(s,R,u),o.memoizedState=RT,ec(s.child,h)):(Vs(o),u=s.child,s=u.sibling,u=ds(u,{mode:"visible",children:h.children}),u.return=o,u.sibling=null,s!==null&&(R=o.deletions,R===null?(o.deletions=[s],o.flags|=16):R.push(s)),o.child=u,o.memoizedState=null,u)}function NT(s,o){return o=dl({mode:"visible",children:o},s.mode),o.return=s,s.child=o}function dl(s,o){return s=Va(22,s,null,o),s.lanes=0,s}function OT(s,o,u){return jr(o,s.child,null,u),s=NT(o,o.pendingProps.children),s.flags|=2,o.memoizedState=null,s}function Ag(s,o,u){s.lanes|=o;var h=s.alternate;h!==null&&(h.lanes|=o),Xd(s.return,o,u)}function MT(s,o,u,h,v,b){var R=s.memoizedState;R===null?s.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:h,tail:u,tailMode:v,treeForkCount:b}:(R.isBackwards=o,R.rendering=null,R.renderingStartTime=0,R.last=h,R.tail=u,R.tailMode=v,R.treeForkCount=b)}function Rg(s,o,u){var h=o.pendingProps,v=h.revealOrder,b=h.tail;h=h.children;var R=Sn.current,U=(R&2)!==0;if(U?(R=R&1|2,o.flags|=128):R&=1,Y(Sn,R),ta(s,o,h,u),h=Nt?Uo:0,!U&&s!==null&&(s.flags&128)!==0)e:for(s=o.child;s!==null;){if(s.tag===13)s.memoizedState!==null&&Ag(s,u,o);else if(s.tag===19)Ag(s,u,o);else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===o)break e;for(;s.sibling===null;){if(s.return===null||s.return===o)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}switch(v){case"forwards":for(u=o.child,v=null;u!==null;)s=u.alternate,s!==null&&Q1(s)===null&&(v=u),u=u.sibling;u=v,u===null?(v=o.child,o.child=null):(v=u.sibling,u.sibling=null),MT(o,!1,v,u,b,h);break;case"backwards":case"unstable_legacy-backwards":for(u=null,v=o.child,o.child=null;v!==null;){if(s=v.alternate,s!==null&&Q1(s)===null){o.child=v;break}s=v.sibling,v.sibling=u,u=v,v=s}MT(o,!0,u,null,b,h);break;case"together":MT(o,!1,null,null,void 0,h);break;default:o.memoizedState=null}return o.child}function gs(s,o,u){if(s!==null&&(o.dependencies=s.dependencies),Ks|=o.lanes,(u&o.childLanes)===0)if(s!==null){if(R0(s,o,u,!1),(u&o.childLanes)===0)return null}else return null;if(s!==null&&o.child!==s.child)throw Error(a(153));if(o.child!==null){for(s=o.child,u=ds(s,s.pendingProps),o.child=u,u.return=o;s.sibling!==null;)s=s.sibling,u=u.sibling=ds(s,s.pendingProps),u.return=o;u.sibling=null}return o.child}function jT(s,o){return(s.lanes&o)!==0?!0:(s=s.dependencies,!!(s!==null&&H1(s)))}function dw(s,o,u){switch(o.tag){case 3:de(o,o.stateNode.containerInfo),Bs(o,An,s.memoizedState.cache),Rr();break;case 27:case 5:ye(o);break;case 4:de(o,o.stateNode.containerInfo);break;case 10:Bs(o,o.type,o.memoizedProps.value);break;case 31:if(o.memoizedState!==null)return o.flags|=128,sT(o),null;break;case 13:var h=o.memoizedState;if(h!==null)return h.dehydrated!==null?(Vs(o),o.flags|=128,null):(u&o.child.childLanes)!==0?kg(s,o,u):(Vs(o),s=gs(s,o,u),s!==null?s.sibling:null);Vs(o);break;case 19:var v=(s.flags&128)!==0;if(h=(u&o.childLanes)!==0,h||(R0(s,o,u,!1),h=(u&o.childLanes)!==0),v){if(h)return Rg(s,o,u);o.flags|=128}if(v=o.memoizedState,v!==null&&(v.rendering=null,v.tail=null,v.lastEffect=null),Y(Sn,Sn.current),h)break;return null;case 22:return o.lanes=0,yg(s,o,u,o.pendingProps);case 24:Bs(o,An,s.memoizedState.cache)}return gs(s,o,u)}function Dg(s,o,u){if(s!==null)if(s.memoizedProps!==o.pendingProps)Dn=!0;else{if(!jT(s,u)&&(o.flags&128)===0)return Dn=!1,dw(s,o,u);Dn=(s.flags&131072)!==0}else Dn=!1,Nt&&(o.flags&1048576)!==0&&o5(o,Uo,o.index);switch(o.lanes=0,o.tag){case 16:e:{var h=o.pendingProps;if(s=Or(o.elementType),o.type=s,typeof s=="function")qd(s)?(h=Lr(s,h),o.tag=1,o=Cg(null,o,s,h,u)):(o.tag=0,o=AT(null,o,s,h,u));else{if(s!=null){var v=s.$$typeof;if(v===O){o.tag=11,o=gg(null,o,s,h,u);break e}else if(v===A){o.tag=14,o=vg(null,o,s,h,u);break e}}throw o=ue(s)||s,Error(a(306,o,""))}}return o;case 0:return AT(s,o,o.type,o.pendingProps,u);case 1:return h=o.type,v=Lr(h,o.pendingProps),Cg(s,o,h,v,u);case 3:e:{if(de(o,o.stateNode.containerInfo),s===null)throw Error(a(387));h=o.pendingProps;var b=o.memoizedState;v=b.element,eT(s,o),$o(o,h,null,u);var R=o.memoizedState;if(h=R.cache,Bs(o,An,h),h!==b.cache&&Kd(o,[An],u,!0),Ko(),h=R.element,b.isDehydrated)if(b={element:h,isDehydrated:!1,cache:R.cache},o.updateQueue.baseState=b,o.memoizedState=b,o.flags&256){o=Eg(s,o,h,u);break e}else if(h!==v){v=ii(Error(a(424)),o),zo(v),o=Eg(s,o,h,u);break e}else for(s=o.stateNode.containerInfo,s.nodeType===9?s=s.body:s=s.nodeName==="HTML"?s.ownerDocument.body:s,on=li(s.firstChild),Qn=o,Nt=!0,_s=null,oi=!0,u=y5(o,null,h,u),o.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling;else{if(Rr(),h===v){o=gs(s,o,u);break e}ta(s,o,h,u)}o=o.child}return o;case 26:return ul(s,o),s===null?(u=B2(o.type,null,o.pendingProps,null))?o.memoizedState=u:Nt||(u=o.type,s=o.pendingProps,h=Al(he.current).createElement(u),h[G]=o,h[Q]=s,na(h,u,s),Ge(h),o.stateNode=h):o.memoizedState=B2(o.type,s.memoizedProps,o.pendingProps,s.memoizedState),null;case 27:return ye(o),s===null&&Nt&&(h=o.stateNode=P2(o.type,o.pendingProps,he.current),Qn=o,oi=!0,v=on,Qs(o.type)?(hf=v,on=li(h.firstChild)):on=v),ta(s,o,o.pendingProps.children,u),ul(s,o),s===null&&(o.flags|=4194304),o.child;case 5:return s===null&&Nt&&((v=h=on)&&(h=Uw(h,o.type,o.pendingProps,oi),h!==null?(o.stateNode=h,Qn=o,on=li(h.firstChild),oi=!1,v=!0):v=!1),v||qs(o)),ye(o),v=o.type,b=o.pendingProps,R=s!==null?s.memoizedProps:null,h=b.children,lf(v,b)?h=null:R!==null&&lf(v,R)&&(o.flags|=32),o.memoizedState!==null&&(v=oT(s,o,nw,null,null,u),pc._currentValue=v),ul(s,o),ta(s,o,h,u),o.child;case 6:return s===null&&Nt&&((s=u=on)&&(u=zw(u,o.pendingProps,oi),u!==null?(o.stateNode=u,Qn=o,on=null,s=!0):s=!1),s||qs(o)),null;case 13:return kg(s,o,u);case 4:return de(o,o.stateNode.containerInfo),h=o.pendingProps,s===null?o.child=jr(o,null,h,u):ta(s,o,h,u),o.child;case 11:return gg(s,o,o.type,o.pendingProps,u);case 7:return ta(s,o,o.pendingProps,u),o.child;case 8:return ta(s,o,o.pendingProps.children,u),o.child;case 12:return ta(s,o,o.pendingProps.children,u),o.child;case 10:return h=o.pendingProps,Bs(o,o.type,h.value),ta(s,o,h.children,u),o.child;case 9:return v=o.type._context,h=o.pendingProps.children,Ir(o),v=ea(v),h=h(v),o.flags|=1,ta(s,o,h,u),o.child;case 14:return vg(s,o,o.type,o.pendingProps,u);case 15:return xg(s,o,o.type,o.pendingProps,u);case 19:return Rg(s,o,u);case 31:return uw(s,o,u);case 22:return yg(s,o,u,o.pendingProps);case 24:return Ir(o),h=ea(An),s===null?(v=Zd(),v===null&&(v=nn,b=$d(),v.pooledCache=b,b.refCount++,b!==null&&(v.pooledCacheLanes|=u),v=b),o.memoizedState={parent:h,cache:v},Qd(o),Bs(o,An,v)):((s.lanes&u)!==0&&(eT(s,o),$o(o,null,null,u),Ko()),v=s.memoizedState,b=o.memoizedState,v.parent!==h?(v={parent:h,cache:h},o.memoizedState=v,o.lanes===0&&(o.memoizedState=o.updateQueue.baseState=v),Bs(o,An,h)):(h=b.cache,Bs(o,An,h),h!==v.cache&&Kd(o,[An],u,!0))),ta(s,o,o.pendingProps.children,u),o.child;case 29:throw o.pendingProps}throw Error(a(156,o.tag))}function vs(s){s.flags|=4}function FT(s,o,u,h,v){if((o=(s.mode&32)!==0)&&(o=!1),o){if(s.flags|=16777216,(v&335544128)===v)if(s.stateNode.complete)s.flags|=8192;else if(n2())s.flags|=8192;else throw Mr=$1,Jd}else s.flags&=-16777217}function Ig(s,o){if(o.type!=="stylesheet"||(o.state.loading&4)!==0)s.flags&=-16777217;else if(s.flags|=16777216,!H2(o))if(n2())s.flags|=8192;else throw Mr=$1,Jd}function Tl(s,o){o!==null&&(s.flags|=4),s.flags&16384&&(o=s.tag!==22?Zn():536870912,s.lanes|=o,B0|=o)}function tc(s,o){if(!Nt)switch(s.tailMode){case"hidden":o=s.tail;for(var u=null;o!==null;)o.alternate!==null&&(u=o),o=o.sibling;u===null?s.tail=null:u.sibling=null;break;case"collapsed":u=s.tail;for(var h=null;u!==null;)u.alternate!==null&&(h=u),u=u.sibling;h===null?o||s.tail===null?s.tail=null:s.tail.sibling=null:h.sibling=null}}function cn(s){var o=s.alternate!==null&&s.alternate.child===s.child,u=0,h=0;if(o)for(var v=s.child;v!==null;)u|=v.lanes|v.childLanes,h|=v.subtreeFlags&65011712,h|=v.flags&65011712,v.return=s,v=v.sibling;else for(v=s.child;v!==null;)u|=v.lanes|v.childLanes,h|=v.subtreeFlags,h|=v.flags,v.return=s,v=v.sibling;return s.subtreeFlags|=h,s.childLanes=u,o}function Tw(s,o,u){var h=o.pendingProps;switch(Wd(o),o.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return cn(o),null;case 1:return cn(o),null;case 3:return u=o.stateNode,h=null,s!==null&&(h=s.memoizedState.cache),o.memoizedState.cache!==h&&(o.flags|=2048),hs(An),fe(),u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(s===null||s.child===null)&&(A0(o)?vs(o):s===null||s.memoizedState.isDehydrated&&(o.flags&256)===0||(o.flags|=1024,Hd())),cn(o),null;case 26:var v=o.type,b=o.memoizedState;return s===null?(vs(o),b!==null?(cn(o),Ig(o,b)):(cn(o),FT(o,v,null,h,u))):b?b!==s.memoizedState?(vs(o),cn(o),Ig(o,b)):(cn(o),o.flags&=-16777217):(s=s.memoizedProps,s!==h&&vs(o),cn(o),FT(o,v,s,h,u)),null;case 27:if(qe(o),u=he.current,v=o.type,s!==null&&o.stateNode!=null)s.memoizedProps!==h&&vs(o);else{if(!h){if(o.stateNode===null)throw Error(a(166));return cn(o),null}s=Z.current,A0(o)?l5(o):(s=P2(v,h,u),o.stateNode=s,vs(o))}return cn(o),null;case 5:if(qe(o),v=o.type,s!==null&&o.stateNode!=null)s.memoizedProps!==h&&vs(o);else{if(!h){if(o.stateNode===null)throw Error(a(166));return cn(o),null}if(b=Z.current,A0(o))l5(o);else{var R=Al(he.current);switch(b){case 1:b=R.createElementNS("http://www.w3.org/2000/svg",v);break;case 2:b=R.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;default:switch(v){case"svg":b=R.createElementNS("http://www.w3.org/2000/svg",v);break;case"math":b=R.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;case"script":b=R.createElement("div"),b.innerHTML="<script><\/script>",b=b.removeChild(b.firstChild);break;case"select":b=typeof h.is=="string"?R.createElement("select",{is:h.is}):R.createElement("select"),h.multiple?b.multiple=!0:h.size&&(b.size=h.size);break;default:b=typeof h.is=="string"?R.createElement(v,{is:h.is}):R.createElement(v)}}b[G]=o,b[Q]=h;e:for(R=o.child;R!==null;){if(R.tag===5||R.tag===6)b.appendChild(R.stateNode);else if(R.tag!==4&&R.tag!==27&&R.child!==null){R.child.return=R,R=R.child;continue}if(R===o)break e;for(;R.sibling===null;){if(R.return===null||R.return===o)break e;R=R.return}R.sibling.return=R.return,R=R.sibling}o.stateNode=b;e:switch(na(b,v,h),v){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}h&&vs(o)}}return cn(o),FT(o,o.type,s===null?null:s.memoizedProps,o.pendingProps,u),null;case 6:if(s&&o.stateNode!=null)s.memoizedProps!==h&&vs(o);else{if(typeof h!="string"&&o.stateNode===null)throw Error(a(166));if(s=he.current,A0(o)){if(s=o.stateNode,u=o.memoizedProps,h=null,v=Qn,v!==null)switch(v.tag){case 27:case 5:h=v.memoizedProps}s[G]=o,s=!!(s.nodeValue===u||h!==null&&h.suppressHydrationWarning===!0||k2(s.nodeValue,u)),s||qs(o,!0)}else s=Al(s).createTextNode(h),s[G]=o,o.stateNode=s}return cn(o),null;case 31:if(u=o.memoizedState,s===null||s.memoizedState!==null){if(h=A0(o),u!==null){if(s===null){if(!h)throw Error(a(318));if(s=o.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(a(557));s[G]=o}else Rr(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;cn(o),s=!1}else u=Hd(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=u),s=!0;if(!s)return o.flags&256?(Ga(o),o):(Ga(o),null);if((o.flags&128)!==0)throw Error(a(558))}return cn(o),null;case 13:if(h=o.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(v=A0(o),h!==null&&h.dehydrated!==null){if(s===null){if(!v)throw Error(a(318));if(v=o.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(a(317));v[G]=o}else Rr(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;cn(o),v=!1}else v=Hd(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=v),v=!0;if(!v)return o.flags&256?(Ga(o),o):(Ga(o),null)}return Ga(o),(o.flags&128)!==0?(o.lanes=u,o):(u=h!==null,s=s!==null&&s.memoizedState!==null,u&&(h=o.child,v=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(v=h.alternate.memoizedState.cachePool.pool),b=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(b=h.memoizedState.cachePool.pool),b!==v&&(h.flags|=2048)),u!==s&&u&&(o.child.flags|=8192),Tl(o,o.updateQueue),cn(o),null);case 4:return fe(),s===null&&af(o.stateNode.containerInfo),cn(o),null;case 10:return hs(o.type),cn(o),null;case 19:if(M(Sn),h=o.memoizedState,h===null)return cn(o),null;if(v=(o.flags&128)!==0,b=h.rendering,b===null)if(v)tc(h,!1);else{if(mn!==0||s!==null&&(s.flags&128)!==0)for(s=o.child;s!==null;){if(b=Q1(s),b!==null){for(o.flags|=128,tc(h,!1),s=b.updateQueue,o.updateQueue=s,Tl(o,s),o.subtreeFlags=0,s=u,u=o.child;u!==null;)i5(u,s),u=u.sibling;return Y(Sn,Sn.current&1|2),Nt&&Ts(o,h.treeForkCount),o.child}s=s.sibling}h.tail!==null&&dt()>gl&&(o.flags|=128,v=!0,tc(h,!1),o.lanes=4194304)}else{if(!v)if(s=Q1(b),s!==null){if(o.flags|=128,v=!0,s=s.updateQueue,o.updateQueue=s,Tl(o,s),tc(h,!0),h.tail===null&&h.tailMode==="hidden"&&!b.alternate&&!Nt)return cn(o),null}else 2*dt()-h.renderingStartTime>gl&&u!==536870912&&(o.flags|=128,v=!0,tc(h,!1),o.lanes=4194304);h.isBackwards?(b.sibling=o.child,o.child=b):(s=h.last,s!==null?s.sibling=b:o.child=b,h.last=b)}return h.tail!==null?(s=h.tail,h.rendering=s,h.tail=s.sibling,h.renderingStartTime=dt(),s.sibling=null,u=Sn.current,Y(Sn,v?u&1|2:u&1),Nt&&Ts(o,h.treeForkCount),s):(cn(o),null);case 22:case 23:return Ga(o),iT(),h=o.memoizedState!==null,s!==null?s.memoizedState!==null!==h&&(o.flags|=8192):h&&(o.flags|=8192),h?(u&536870912)!==0&&(o.flags&128)===0&&(cn(o),o.subtreeFlags&6&&(o.flags|=8192)):cn(o),u=o.updateQueue,u!==null&&Tl(o,u.retryQueue),u=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(u=s.memoizedState.cachePool.pool),h=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),h!==u&&(o.flags|=2048),s!==null&&M(Nr),null;case 24:return u=null,s!==null&&(u=s.memoizedState.cache),o.memoizedState.cache!==u&&(o.flags|=2048),hs(An),cn(o),null;case 25:return null;case 30:return null}throw Error(a(156,o.tag))}function fw(s,o){switch(Wd(o),o.tag){case 1:return s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 3:return hs(An),fe(),s=o.flags,(s&65536)!==0&&(s&128)===0?(o.flags=s&-65537|128,o):null;case 26:case 27:case 5:return qe(o),null;case 31:if(o.memoizedState!==null){if(Ga(o),o.alternate===null)throw Error(a(340));Rr()}return s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 13:if(Ga(o),s=o.memoizedState,s!==null&&s.dehydrated!==null){if(o.alternate===null)throw Error(a(340));Rr()}return s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 19:return M(Sn),null;case 4:return fe(),null;case 10:return hs(o.type),null;case 22:case 23:return Ga(o),iT(),s!==null&&M(Nr),s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 24:return hs(An),null;case 25:return null;default:return null}}function Ng(s,o){switch(Wd(o),o.tag){case 3:hs(An),fe();break;case 26:case 27:case 5:qe(o);break;case 4:fe();break;case 31:o.memoizedState!==null&&Ga(o);break;case 13:Ga(o);break;case 19:M(Sn);break;case 10:hs(o.type);break;case 22:case 23:Ga(o),iT(),s!==null&&M(Nr);break;case 24:hs(An)}}function nc(s,o){try{var u=o.updateQueue,h=u!==null?u.lastEffect:null;if(h!==null){var v=h.next;u=v;do{if((u.tag&s)===s){h=void 0;var b=u.create,R=u.inst;h=b(),R.destroy=h}u=u.next}while(u!==v)}}catch(U){Zt(o,o.return,U)}}function Gs(s,o,u){try{var h=o.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var b=v.next;h=b;do{if((h.tag&s)===s){var R=h.inst,U=R.destroy;if(U!==void 0){R.destroy=void 0,v=o;var ce=u,be=U;try{be()}catch(Re){Zt(v,ce,Re)}}}h=h.next}while(h!==b)}}catch(Re){Zt(o,o.return,Re)}}function Og(s){var o=s.updateQueue;if(o!==null){var u=s.stateNode;try{b5(o,u)}catch(h){Zt(s,s.return,h)}}}function Mg(s,o,u){u.props=Lr(s.type,s.memoizedProps),u.state=s.memoizedState;try{u.componentWillUnmount()}catch(h){Zt(s,o,h)}}function ac(s,o){try{var u=s.ref;if(u!==null){switch(s.tag){case 26:case 27:case 5:var h=s.stateNode;break;case 30:h=s.stateNode;break;default:h=s.stateNode}typeof u=="function"?s.refCleanup=u(h):u.current=h}}catch(v){Zt(s,o,v)}}function zi(s,o){var u=s.ref,h=s.refCleanup;if(u!==null)if(typeof h=="function")try{h()}catch(v){Zt(s,o,v)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof u=="function")try{u(null)}catch(v){Zt(s,o,v)}else u.current=null}function jg(s){var o=s.type,u=s.memoizedProps,h=s.stateNode;try{e:switch(o){case"button":case"input":case"select":case"textarea":u.autoFocus&&h.focus();break e;case"img":u.src?h.src=u.src:u.srcSet&&(h.srcset=u.srcSet)}}catch(v){Zt(s,s.return,v)}}function LT(s,o,u){try{var h=s.stateNode;Fw(h,s.type,u,o),h[Q]=o}catch(v){Zt(s,s.return,v)}}function Fg(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&Qs(s.type)||s.tag===4}function PT(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||Fg(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&Qs(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function _T(s,o,u){var h=s.tag;if(h===5||h===6)s=s.stateNode,o?(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u).insertBefore(s,o):(o=u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,o.appendChild(s),u=u._reactRootContainer,u!=null||o.onclick!==null||(o.onclick=wi));else if(h!==4&&(h===27&&Qs(s.type)&&(u=s.stateNode,o=null),s=s.child,s!==null))for(_T(s,o,u),s=s.sibling;s!==null;)_T(s,o,u),s=s.sibling}function fl(s,o,u){var h=s.tag;if(h===5||h===6)s=s.stateNode,o?u.insertBefore(s,o):u.appendChild(s);else if(h!==4&&(h===27&&Qs(s.type)&&(u=s.stateNode),s=s.child,s!==null))for(fl(s,o,u),s=s.sibling;s!==null;)fl(s,o,u),s=s.sibling}function Lg(s){var o=s.stateNode,u=s.memoizedProps;try{for(var h=s.type,v=o.attributes;v.length;)o.removeAttributeNode(v[0]);na(o,h,u),o[G]=s,o[Q]=u}catch(b){Zt(s,s.return,b)}}var xs=!1,In=!1,qT=!1,Pg=typeof WeakSet=="function"?WeakSet:Set,Xn=null;function hw(s,o){if(s=s.containerInfo,of=jl,s=$m(s),Od(s)){if("selectionStart"in s)var u={start:s.selectionStart,end:s.selectionEnd};else e:{u=(u=s.ownerDocument)&&u.defaultView||window;var h=u.getSelection&&u.getSelection();if(h&&h.rangeCount!==0){u=h.anchorNode;var v=h.anchorOffset,b=h.focusNode;h=h.focusOffset;try{u.nodeType,b.nodeType}catch{u=null;break e}var R=0,U=-1,ce=-1,be=0,Re=0,Ie=s,we=null;t:for(;;){for(var ke;Ie!==u||v!==0&&Ie.nodeType!==3||(U=R+v),Ie!==b||h!==0&&Ie.nodeType!==3||(ce=R+h),Ie.nodeType===3&&(R+=Ie.nodeValue.length),(ke=Ie.firstChild)!==null;)we=Ie,Ie=ke;for(;;){if(Ie===s)break t;if(we===u&&++be===v&&(U=R),we===b&&++Re===h&&(ce=R),(ke=Ie.nextSibling)!==null)break;Ie=we,we=Ie.parentNode}Ie=ke}u=U===-1||ce===-1?null:{start:U,end:ce}}else u=null}u=u||{start:0,end:0}}else u=null;for(cf={focusedElem:s,selectionRange:u},jl=!1,Xn=o;Xn!==null;)if(o=Xn,s=o.child,(o.subtreeFlags&1028)!==0&&s!==null)s.return=o,Xn=s;else for(;Xn!==null;){switch(o=Xn,b=o.alternate,s=o.flags,o.tag){case 0:if((s&4)!==0&&(s=o.updateQueue,s=s!==null?s.events:null,s!==null))for(u=0;u<s.length;u++)v=s[u],v.ref.impl=v.nextImpl;break;case 11:case 15:break;case 1:if((s&1024)!==0&&b!==null){s=void 0,u=o,v=b.memoizedProps,b=b.memoizedState,h=u.stateNode;try{var $e=Lr(u.type,v);s=h.getSnapshotBeforeUpdate($e,b),h.__reactInternalSnapshotBeforeUpdate=s}catch(at){Zt(u,u.return,at)}}break;case 3:if((s&1024)!==0){if(s=o.stateNode.containerInfo,u=s.nodeType,u===9)df(s);else if(u===1)switch(s.nodeName){case"HEAD":case"HTML":case"BODY":df(s);break;default:s.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((s&1024)!==0)throw Error(a(163))}if(s=o.sibling,s!==null){s.return=o.return,Xn=s;break}Xn=o.return}}function _g(s,o,u){var h=u.flags;switch(u.tag){case 0:case 11:case 15:Ss(s,u),h&4&&nc(5,u);break;case 1:if(Ss(s,u),h&4)if(s=u.stateNode,o===null)try{s.componentDidMount()}catch(R){Zt(u,u.return,R)}else{var v=Lr(u.type,o.memoizedProps);o=o.memoizedState;try{s.componentDidUpdate(v,o,s.__reactInternalSnapshotBeforeUpdate)}catch(R){Zt(u,u.return,R)}}h&64&&Og(u),h&512&&ac(u,u.return);break;case 3:if(Ss(s,u),h&64&&(s=u.updateQueue,s!==null)){if(o=null,u.child!==null)switch(u.child.tag){case 27:case 5:o=u.child.stateNode;break;case 1:o=u.child.stateNode}try{b5(s,o)}catch(R){Zt(u,u.return,R)}}break;case 27:o===null&&h&4&&Lg(u);case 26:case 5:Ss(s,u),o===null&&h&4&&jg(u),h&512&&ac(u,u.return);break;case 12:Ss(s,u);break;case 31:Ss(s,u),h&4&&Ug(s,u);break;case 13:Ss(s,u),h&4&&zg(s,u),h&64&&(s=u.memoizedState,s!==null&&(s=s.dehydrated,s!==null&&(u=ww.bind(null,u),Ww(s,u))));break;case 22:if(h=u.memoizedState!==null||xs,!h){o=o!==null&&o.memoizedState!==null||In,v=xs;var b=In;xs=h,(In=o)&&!b?bs(s,u,(u.subtreeFlags&8772)!==0):Ss(s,u),xs=v,In=b}break;case 30:break;default:Ss(s,u)}}function qg(s){var o=s.alternate;o!==null&&(s.alternate=null,qg(o)),s.child=null,s.deletions=null,s.sibling=null,s.tag===5&&(o=s.stateNode,o!==null&&xe(o)),s.stateNode=null,s.return=null,s.dependencies=null,s.memoizedProps=null,s.memoizedState=null,s.pendingProps=null,s.stateNode=null,s.updateQueue=null}var un=null,ja=!1;function ys(s,o,u){for(u=u.child;u!==null;)Bg(s,o,u),u=u.sibling}function Bg(s,o,u){if(Ye&&typeof Ye.onCommitFiberUnmount=="function")try{Ye.onCommitFiberUnmount(rt,u)}catch{}switch(u.tag){case 26:In||zi(u,o),ys(s,o,u),u.memoizedState?u.memoizedState.count--:u.stateNode&&(u=u.stateNode,u.parentNode.removeChild(u));break;case 27:In||zi(u,o);var h=un,v=ja;Qs(u.type)&&(un=u.stateNode,ja=!1),ys(s,o,u),Tc(u.stateNode),un=h,ja=v;break;case 5:In||zi(u,o);case 6:if(h=un,v=ja,un=null,ys(s,o,u),un=h,ja=v,un!==null)if(ja)try{(un.nodeType===9?un.body:un.nodeName==="HTML"?un.ownerDocument.body:un).removeChild(u.stateNode)}catch(b){Zt(u,o,b)}else try{un.removeChild(u.stateNode)}catch(b){Zt(u,o,b)}break;case 18:un!==null&&(ja?(s=un,O2(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,u.stateNode),K0(s)):O2(un,u.stateNode));break;case 4:h=un,v=ja,un=u.stateNode.containerInfo,ja=!0,ys(s,o,u),un=h,ja=v;break;case 0:case 11:case 14:case 15:Gs(2,u,o),In||Gs(4,u,o),ys(s,o,u);break;case 1:In||(zi(u,o),h=u.stateNode,typeof h.componentWillUnmount=="function"&&Mg(u,o,h)),ys(s,o,u);break;case 21:ys(s,o,u);break;case 22:In=(h=In)||u.memoizedState!==null,ys(s,o,u),In=h;break;default:ys(s,o,u)}}function Ug(s,o){if(o.memoizedState===null&&(s=o.alternate,s!==null&&(s=s.memoizedState,s!==null))){s=s.dehydrated;try{K0(s)}catch(u){Zt(o,o.return,u)}}}function zg(s,o){if(o.memoizedState===null&&(s=o.alternate,s!==null&&(s=s.memoizedState,s!==null&&(s=s.dehydrated,s!==null))))try{K0(s)}catch(u){Zt(o,o.return,u)}}function pw(s){switch(s.tag){case 31:case 13:case 19:var o=s.stateNode;return o===null&&(o=s.stateNode=new Pg),o;case 22:return s=s.stateNode,o=s._retryCache,o===null&&(o=s._retryCache=new Pg),o;default:throw Error(a(435,s.tag))}}function hl(s,o){var u=pw(s);o.forEach(function(h){if(!u.has(h)){u.add(h);var v=Cw.bind(null,s,h);h.then(v,v)}})}function Fa(s,o){var u=o.deletions;if(u!==null)for(var h=0;h<u.length;h++){var v=u[h],b=s,R=o,U=R;e:for(;U!==null;){switch(U.tag){case 27:if(Qs(U.type)){un=U.stateNode,ja=!1;break e}break;case 5:un=U.stateNode,ja=!1;break e;case 3:case 4:un=U.stateNode.containerInfo,ja=!0;break e}U=U.return}if(un===null)throw Error(a(160));Bg(b,R,v),un=null,ja=!1,b=v.alternate,b!==null&&(b.return=null),v.return=null}if(o.subtreeFlags&13886)for(o=o.child;o!==null;)Wg(o,s),o=o.sibling}var Ai=null;function Wg(s,o){var u=s.alternate,h=s.flags;switch(s.tag){case 0:case 11:case 14:case 15:Fa(o,s),La(s),h&4&&(Gs(3,s,s.return),nc(3,s),Gs(5,s,s.return));break;case 1:Fa(o,s),La(s),h&512&&(In||u===null||zi(u,u.return)),h&64&&xs&&(s=s.updateQueue,s!==null&&(h=s.callbacks,h!==null&&(u=s.shared.hiddenCallbacks,s.shared.hiddenCallbacks=u===null?h:u.concat(h))));break;case 26:var v=Ai;if(Fa(o,s),La(s),h&512&&(In||u===null||zi(u,u.return)),h&4){var b=u!==null?u.memoizedState:null;if(h=s.memoizedState,u===null)if(h===null)if(s.stateNode===null){e:{h=s.type,u=s.memoizedProps,v=v.ownerDocument||v;t:switch(h){case"title":b=v.getElementsByTagName("title")[0],(!b||b[se]||b[G]||b.namespaceURI==="http://www.w3.org/2000/svg"||b.hasAttribute("itemprop"))&&(b=v.createElement(h),v.head.insertBefore(b,v.querySelector("head > title"))),na(b,h,u),b[G]=s,Ge(b),h=b;break e;case"link":var R=W2("link","href",v).get(h+(u.href||""));if(R){for(var U=0;U<R.length;U++)if(b=R[U],b.getAttribute("href")===(u.href==null||u.href===""?null:u.href)&&b.getAttribute("rel")===(u.rel==null?null:u.rel)&&b.getAttribute("title")===(u.title==null?null:u.title)&&b.getAttribute("crossorigin")===(u.crossOrigin==null?null:u.crossOrigin)){R.splice(U,1);break t}}b=v.createElement(h),na(b,h,u),v.head.appendChild(b);break;case"meta":if(R=W2("meta","content",v).get(h+(u.content||""))){for(U=0;U<R.length;U++)if(b=R[U],b.getAttribute("content")===(u.content==null?null:""+u.content)&&b.getAttribute("name")===(u.name==null?null:u.name)&&b.getAttribute("property")===(u.property==null?null:u.property)&&b.getAttribute("http-equiv")===(u.httpEquiv==null?null:u.httpEquiv)&&b.getAttribute("charset")===(u.charSet==null?null:u.charSet)){R.splice(U,1);break t}}b=v.createElement(h),na(b,h,u),v.head.appendChild(b);break;default:throw Error(a(468,h))}b[G]=s,Ge(b),h=b}s.stateNode=h}else V2(v,s.type,s.stateNode);else s.stateNode=z2(v,h,s.memoizedProps);else b!==h?(b===null?u.stateNode!==null&&(u=u.stateNode,u.parentNode.removeChild(u)):b.count--,h===null?V2(v,s.type,s.stateNode):z2(v,h,s.memoizedProps)):h===null&&s.stateNode!==null&<(s,s.memoizedProps,u.memoizedProps)}break;case 27:Fa(o,s),La(s),h&512&&(In||u===null||zi(u,u.return)),u!==null&&h&4&<(s,s.memoizedProps,u.memoizedProps);break;case 5:if(Fa(o,s),La(s),h&512&&(In||u===null||zi(u,u.return)),s.flags&32){v=s.stateNode;try{Jn(v,"")}catch($e){Zt(s,s.return,$e)}}h&4&&s.stateNode!=null&&(v=s.memoizedProps,LT(s,v,u!==null?u.memoizedProps:v)),h&1024&&(qT=!0);break;case 6:if(Fa(o,s),La(s),h&4){if(s.stateNode===null)throw Error(a(162));h=s.memoizedProps,u=s.stateNode;try{u.nodeValue=h}catch($e){Zt(s,s.return,$e)}}break;case 3:if(Il=null,v=Ai,Ai=Rl(o.containerInfo),Fa(o,s),Ai=v,La(s),h&4&&u!==null&&u.memoizedState.isDehydrated)try{K0(o.containerInfo)}catch($e){Zt(s,s.return,$e)}qT&&(qT=!1,Vg(s));break;case 4:h=Ai,Ai=Rl(s.stateNode.containerInfo),Fa(o,s),La(s),Ai=h;break;case 12:Fa(o,s),La(s);break;case 31:Fa(o,s),La(s),h&4&&(h=s.updateQueue,h!==null&&(s.updateQueue=null,hl(s,h)));break;case 13:Fa(o,s),La(s),s.child.flags&8192&&s.memoizedState!==null!=(u!==null&&u.memoizedState!==null)&&(ml=dt()),h&4&&(h=s.updateQueue,h!==null&&(s.updateQueue=null,hl(s,h)));break;case 22:v=s.memoizedState!==null;var ce=u!==null&&u.memoizedState!==null,be=xs,Re=In;if(xs=be||v,In=Re||ce,Fa(o,s),In=Re,xs=be,La(s),h&8192)e:for(o=s.stateNode,o._visibility=v?o._visibility&-2:o._visibility|1,v&&(u===null||ce||xs||In||Pr(s)),u=null,o=s;;){if(o.tag===5||o.tag===26){if(u===null){ce=u=o;try{if(b=ce.stateNode,v)R=b.style,typeof R.setProperty=="function"?R.setProperty("display","none","important"):R.display="none";else{U=ce.stateNode;var Ie=ce.memoizedProps.style,we=Ie!=null&&Ie.hasOwnProperty("display")?Ie.display:null;U.style.display=we==null||typeof we=="boolean"?"":(""+we).trim()}}catch($e){Zt(ce,ce.return,$e)}}}else if(o.tag===6){if(u===null){ce=o;try{ce.stateNode.nodeValue=v?"":ce.memoizedProps}catch($e){Zt(ce,ce.return,$e)}}}else if(o.tag===18){if(u===null){ce=o;try{var ke=ce.stateNode;v?M2(ke,!0):M2(ce.stateNode,!1)}catch($e){Zt(ce,ce.return,$e)}}}else if((o.tag!==22&&o.tag!==23||o.memoizedState===null||o===s)&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===s)break e;for(;o.sibling===null;){if(o.return===null||o.return===s)break e;u===o&&(u=null),o=o.return}u===o&&(u=null),o.sibling.return=o.return,o=o.sibling}h&4&&(h=s.updateQueue,h!==null&&(u=h.retryQueue,u!==null&&(h.retryQueue=null,hl(s,u))));break;case 19:Fa(o,s),La(s),h&4&&(h=s.updateQueue,h!==null&&(s.updateQueue=null,hl(s,h)));break;case 30:break;case 21:break;default:Fa(o,s),La(s)}}function La(s){var o=s.flags;if(o&2){try{for(var u,h=s.return;h!==null;){if(Fg(h)){u=h;break}h=h.return}if(u==null)throw Error(a(160));switch(u.tag){case 27:var v=u.stateNode,b=PT(s);fl(s,b,v);break;case 5:var R=u.stateNode;u.flags&32&&(Jn(R,""),u.flags&=-33);var U=PT(s);fl(s,U,R);break;case 3:case 4:var ce=u.stateNode.containerInfo,be=PT(s);_T(s,be,ce);break;default:throw Error(a(161))}}catch(Re){Zt(s,s.return,Re)}s.flags&=-3}o&4096&&(s.flags&=-4097)}function Vg(s){if(s.subtreeFlags&1024)for(s=s.child;s!==null;){var o=s;Vg(o),o.tag===5&&o.flags&1024&&o.stateNode.reset(),s=s.sibling}}function Ss(s,o){if(o.subtreeFlags&8772)for(o=o.child;o!==null;)_g(s,o.alternate,o),o=o.sibling}function Pr(s){for(s=s.child;s!==null;){var o=s;switch(o.tag){case 0:case 11:case 14:case 15:Gs(4,o,o.return),Pr(o);break;case 1:zi(o,o.return);var u=o.stateNode;typeof u.componentWillUnmount=="function"&&Mg(o,o.return,u),Pr(o);break;case 27:Tc(o.stateNode);case 26:case 5:zi(o,o.return),Pr(o);break;case 22:o.memoizedState===null&&Pr(o);break;case 30:Pr(o);break;default:Pr(o)}s=s.sibling}}function bs(s,o,u){for(u=u&&(o.subtreeFlags&8772)!==0,o=o.child;o!==null;){var h=o.alternate,v=s,b=o,R=b.flags;switch(b.tag){case 0:case 11:case 15:bs(v,b,u),nc(4,b);break;case 1:if(bs(v,b,u),h=b,v=h.stateNode,typeof v.componentDidMount=="function")try{v.componentDidMount()}catch(be){Zt(h,h.return,be)}if(h=b,v=h.updateQueue,v!==null){var U=h.stateNode;try{var ce=v.shared.hiddenCallbacks;if(ce!==null)for(v.shared.hiddenCallbacks=null,v=0;v<ce.length;v++)S5(ce[v],U)}catch(be){Zt(h,h.return,be)}}u&&R&64&&Og(b),ac(b,b.return);break;case 27:Lg(b);case 26:case 5:bs(v,b,u),u&&h===null&&R&4&&jg(b),ac(b,b.return);break;case 12:bs(v,b,u);break;case 31:bs(v,b,u),u&&R&4&&Ug(v,b);break;case 13:bs(v,b,u),u&&R&4&&zg(v,b);break;case 22:b.memoizedState===null&&bs(v,b,u),ac(b,b.return);break;case 30:break;default:bs(v,b,u)}o=o.sibling}}function BT(s,o){var u=null;s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(u=s.memoizedState.cachePool.pool),s=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(s=o.memoizedState.cachePool.pool),s!==u&&(s!=null&&s.refCount++,u!=null&&Wo(u))}function UT(s,o){s=null,o.alternate!==null&&(s=o.alternate.memoizedState.cache),o=o.memoizedState.cache,o!==s&&(o.refCount++,s!=null&&Wo(s))}function Ri(s,o,u,h){if(o.subtreeFlags&10256)for(o=o.child;o!==null;)Hg(s,o,u,h),o=o.sibling}function Hg(s,o,u,h){var v=o.flags;switch(o.tag){case 0:case 11:case 15:Ri(s,o,u,h),v&2048&&nc(9,o);break;case 1:Ri(s,o,u,h);break;case 3:Ri(s,o,u,h),v&2048&&(s=null,o.alternate!==null&&(s=o.alternate.memoizedState.cache),o=o.memoizedState.cache,o!==s&&(o.refCount++,s!=null&&Wo(s)));break;case 12:if(v&2048){Ri(s,o,u,h),s=o.stateNode;try{var b=o.memoizedProps,R=b.id,U=b.onPostCommit;typeof U=="function"&&U(R,o.alternate===null?"mount":"update",s.passiveEffectDuration,-0)}catch(ce){Zt(o,o.return,ce)}}else Ri(s,o,u,h);break;case 31:Ri(s,o,u,h);break;case 13:Ri(s,o,u,h);break;case 23:break;case 22:b=o.stateNode,R=o.alternate,o.memoizedState!==null?b._visibility&2?Ri(s,o,u,h):ic(s,o):b._visibility&2?Ri(s,o,u,h):(b._visibility|=2,P0(s,o,u,h,(o.subtreeFlags&10256)!==0||!1)),v&2048&&BT(R,o);break;case 24:Ri(s,o,u,h),v&2048&&UT(o.alternate,o);break;default:Ri(s,o,u,h)}}function P0(s,o,u,h,v){for(v=v&&((o.subtreeFlags&10256)!==0||!1),o=o.child;o!==null;){var b=s,R=o,U=u,ce=h,be=R.flags;switch(R.tag){case 0:case 11:case 15:P0(b,R,U,ce,v),nc(8,R);break;case 23:break;case 22:var Re=R.stateNode;R.memoizedState!==null?Re._visibility&2?P0(b,R,U,ce,v):ic(b,R):(Re._visibility|=2,P0(b,R,U,ce,v)),v&&be&2048&&BT(R.alternate,R);break;case 24:P0(b,R,U,ce,v),v&&be&2048&&UT(R.alternate,R);break;default:P0(b,R,U,ce,v)}o=o.sibling}}function ic(s,o){if(o.subtreeFlags&10256)for(o=o.child;o!==null;){var u=s,h=o,v=h.flags;switch(h.tag){case 22:ic(u,h),v&2048&&BT(h.alternate,h);break;case 24:ic(u,h),v&2048&&UT(h.alternate,h);break;default:ic(u,h)}o=o.sibling}}var sc=8192;function _0(s,o,u){if(s.subtreeFlags&sc)for(s=s.child;s!==null;)Gg(s,o,u),s=s.sibling}function Gg(s,o,u){switch(s.tag){case 26:_0(s,o,u),s.flags&sc&&s.memoizedState!==null&&t8(u,Ai,s.memoizedState,s.memoizedProps);break;case 5:_0(s,o,u);break;case 3:case 4:var h=Ai;Ai=Rl(s.stateNode.containerInfo),_0(s,o,u),Ai=h;break;case 22:s.memoizedState===null&&(h=s.alternate,h!==null&&h.memoizedState!==null?(h=sc,sc=16777216,_0(s,o,u),sc=h):_0(s,o,u));break;default:_0(s,o,u)}}function Xg(s){var o=s.alternate;if(o!==null&&(s=o.child,s!==null)){o.child=null;do o=s.sibling,s.sibling=null,s=o;while(s!==null)}}function rc(s){var o=s.deletions;if((s.flags&16)!==0){if(o!==null)for(var u=0;u<o.length;u++){var h=o[u];Xn=h,$g(h,s)}Xg(s)}if(s.subtreeFlags&10256)for(s=s.child;s!==null;)Kg(s),s=s.sibling}function Kg(s){switch(s.tag){case 0:case 11:case 15:rc(s),s.flags&2048&&Gs(9,s,s.return);break;case 3:rc(s);break;case 12:rc(s);break;case 22:var o=s.stateNode;s.memoizedState!==null&&o._visibility&2&&(s.return===null||s.return.tag!==13)?(o._visibility&=-3,pl(s)):rc(s);break;default:rc(s)}}function pl(s){var o=s.deletions;if((s.flags&16)!==0){if(o!==null)for(var u=0;u<o.length;u++){var h=o[u];Xn=h,$g(h,s)}Xg(s)}for(s=s.child;s!==null;){switch(o=s,o.tag){case 0:case 11:case 15:Gs(8,o,o.return),pl(o);break;case 22:u=o.stateNode,u._visibility&2&&(u._visibility&=-3,pl(o));break;default:pl(o)}s=s.sibling}}function $g(s,o){for(;Xn!==null;){var u=Xn;switch(u.tag){case 0:case 11:case 15:Gs(8,u,o);break;case 23:case 22:if(u.memoizedState!==null&&u.memoizedState.cachePool!==null){var h=u.memoizedState.cachePool.pool;h!=null&&h.refCount++}break;case 24:Wo(u.memoizedState.cache)}if(h=u.child,h!==null)h.return=u,Xn=h;else e:for(u=s;Xn!==null;){h=Xn;var v=h.sibling,b=h.return;if(qg(h),h===u){Xn=null;break e}if(v!==null){v.return=b,Xn=v;break e}Xn=b}}}var mw={getCacheForType:function(s){var o=ea(An),u=o.data.get(s);return u===void 0&&(u=s(),o.data.set(s,u)),u},cacheSignal:function(){return ea(An).controller.signal}},gw=typeof WeakMap=="function"?WeakMap:Map,Ht=0,nn=null,wt=null,At=0,Yt=0,Xa=null,Xs=!1,q0=!1,zT=!1,ws=0,mn=0,Ks=0,_r=0,WT=0,Ka=0,B0=0,oc=null,Pa=null,VT=!1,ml=0,Yg=0,gl=1/0,vl=null,$s=null,_n=0,Ys=null,U0=null,Cs=0,HT=0,GT=null,Zg=null,cc=0,XT=null;function $a(){return(Ht&2)!==0&&At!==0?At&-At:F.T!==null?QT():q()}function Jg(){if(Ka===0)if((At&536870912)===0||Nt){var s=Ke;Ke<<=1,(Ke&3932160)===0&&(Ke=262144),Ka=s}else Ka=536870912;return s=Ha.current,s!==null&&(s.flags|=32),Ka}function _a(s,o,u){(s===nn&&(Yt===2||Yt===9)||s.cancelPendingCommit!==null)&&(z0(s,0),Zs(s,At,Ka,!1)),Wn(s,u),((Ht&2)===0||s!==nn)&&(s===nn&&((Ht&2)===0&&(_r|=u),mn===4&&Zs(s,At,Ka,!1)),Wi(s))}function Qg(s,o,u){if((Ht&6)!==0)throw Error(a(327));var h=!u&&(o&127)===0&&(o&s.expiredLanes)===0||Fn(s,o),v=h?yw(s,o):$T(s,o,!0),b=h;do{if(v===0){q0&&!h&&Zs(s,o,0,!1);break}else{if(u=s.current.alternate,b&&!vw(u)){v=$T(s,o,!1),b=!1;continue}if(v===2){if(b=o,s.errorRecoveryDisabledLanes&b)var R=0;else R=s.pendingLanes&-536870913,R=R!==0?R:R&536870912?536870912:0;if(R!==0){o=R;e:{var U=s;v=oc;var ce=U.current.memoizedState.isDehydrated;if(ce&&(z0(U,R).flags|=256),R=$T(U,R,!1),R!==2){if(zT&&!ce){U.errorRecoveryDisabledLanes|=b,_r|=b,v=4;break e}b=Pa,Pa=v,b!==null&&(Pa===null?Pa=b:Pa.push.apply(Pa,b))}v=R}if(b=!1,v!==2)continue}}if(v===1){z0(s,0),Zs(s,o,0,!0);break}e:{switch(h=s,b=v,b){case 0:case 1:throw Error(a(345));case 4:if((o&4194048)!==o)break;case 6:Zs(h,o,Ka,!Xs);break e;case 2:Pa=null;break;case 3:case 5:break;default:throw Error(a(329))}if((o&62914560)===o&&(v=ml+300-dt(),10<v)){if(Zs(h,o,Ka,!Xs),Xt(h,0,!0)!==0)break e;Cs=o,h.timeoutHandle=I2(e2.bind(null,h,u,Pa,vl,VT,o,Ka,_r,B0,Xs,b,"Throttled",-0,0),v);break e}e2(h,u,Pa,vl,VT,o,Ka,_r,B0,Xs,b,null,-0,0)}}break}while(!0);Wi(s)}function e2(s,o,u,h,v,b,R,U,ce,be,Re,Ie,we,ke){if(s.timeoutHandle=-1,Ie=o.subtreeFlags,Ie&8192||(Ie&16785408)===16785408){Ie={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:wi},Gg(o,b,Ie);var $e=(b&62914560)===b?ml-dt():(b&4194048)===b?Yg-dt():0;if($e=n8(Ie,$e),$e!==null){Cs=b,s.cancelPendingCommit=$e(c2.bind(null,s,o,b,u,h,v,R,U,ce,Re,Ie,null,we,ke)),Zs(s,b,R,!be);return}}c2(s,o,b,u,h,v,R,U,ce)}function vw(s){for(var o=s;;){var u=o.tag;if((u===0||u===11||u===15)&&o.flags&16384&&(u=o.updateQueue,u!==null&&(u=u.stores,u!==null)))for(var h=0;h<u.length;h++){var v=u[h],b=v.getSnapshot;v=v.value;try{if(!Wa(b(),v))return!1}catch{return!1}}if(u=o.child,o.subtreeFlags&16384&&u!==null)u.return=o,o=u;else{if(o===s)break;for(;o.sibling===null;){if(o.return===null||o.return===s)return!0;o=o.return}o.sibling.return=o.return,o=o.sibling}}return!0}function Zs(s,o,u,h){o&=~WT,o&=~_r,s.suspendedLanes|=o,s.pingedLanes&=~o,h&&(s.warmLanes|=o),h=s.expirationTimes;for(var v=o;0<v;){var b=31-Qe(v),R=1<<b;h[b]=-1,v&=~R}u!==0&&Si(s,u,o)}function xl(){return(Ht&6)===0?(lc(0),!1):!0}function KT(){if(wt!==null){if(Yt===0)var s=wt.return;else s=wt,fs=Dr=null,uT(s),O0=null,Ho=0,s=wt;for(;s!==null;)Ng(s.alternate,s),s=s.return;wt=null}}function z0(s,o){var u=s.timeoutHandle;u!==-1&&(s.timeoutHandle=-1,_w(u)),u=s.cancelPendingCommit,u!==null&&(s.cancelPendingCommit=null,u()),Cs=0,KT(),nn=s,wt=u=ds(s.current,null),At=o,Yt=0,Xa=null,Xs=!1,q0=Fn(s,o),zT=!1,B0=Ka=WT=_r=Ks=mn=0,Pa=oc=null,VT=!1,(o&8)!==0&&(o|=o&32);var h=s.entangledLanes;if(h!==0)for(s=s.entanglements,h&=o;0<h;){var v=31-Qe(h),b=1<<v;o|=s[v],h&=~b}return ws=o,B1(),u}function t2(s,o){gt=null,F.H=Qo,o===N0||o===K1?(o=g5(),Yt=3):o===Jd?(o=g5(),Yt=4):Yt=o===kT?8:o!==null&&typeof o=="object"&&typeof o.then=="function"?6:1,Xa=o,wt===null&&(mn=1,cl(s,ii(o,s.current)))}function n2(){var s=Ha.current;return s===null?!0:(At&4194048)===At?ci===null:(At&62914560)===At||(At&536870912)!==0?s===ci:!1}function a2(){var s=F.H;return F.H=Qo,s===null?Qo:s}function i2(){var s=F.A;return F.A=mw,s}function yl(){mn=4,Xs||(At&4194048)!==At&&Ha.current!==null||(q0=!0),(Ks&134217727)===0&&(_r&134217727)===0||nn===null||Zs(nn,At,Ka,!1)}function $T(s,o,u){var h=Ht;Ht|=2;var v=a2(),b=i2();(nn!==s||At!==o)&&(vl=null,z0(s,o)),o=!1;var R=mn;e:do try{if(Yt!==0&&wt!==null){var U=wt,ce=Xa;switch(Yt){case 8:KT(),R=6;break e;case 3:case 2:case 9:case 6:Ha.current===null&&(o=!0);var be=Yt;if(Yt=0,Xa=null,W0(s,U,ce,be),u&&q0){R=0;break e}break;default:be=Yt,Yt=0,Xa=null,W0(s,U,ce,be)}}xw(),R=mn;break}catch(Re){t2(s,Re)}while(!0);return o&&s.shellSuspendCounter++,fs=Dr=null,Ht=h,F.H=v,F.A=b,wt===null&&(nn=null,At=0,B1()),R}function xw(){for(;wt!==null;)s2(wt)}function yw(s,o){var u=Ht;Ht|=2;var h=a2(),v=i2();nn!==s||At!==o?(vl=null,gl=dt()+500,z0(s,o)):q0=Fn(s,o);e:do try{if(Yt!==0&&wt!==null){o=wt;var b=Xa;t:switch(Yt){case 1:Yt=0,Xa=null,W0(s,o,b,1);break;case 2:case 9:if(p5(b)){Yt=0,Xa=null,r2(o);break}o=function(){Yt!==2&&Yt!==9||nn!==s||(Yt=7),Wi(s)},b.then(o,o);break e;case 3:Yt=7;break e;case 4:Yt=5;break e;case 7:p5(b)?(Yt=0,Xa=null,r2(o)):(Yt=0,Xa=null,W0(s,o,b,7));break;case 5:var R=null;switch(wt.tag){case 26:R=wt.memoizedState;case 5:case 27:var U=wt;if(R?H2(R):U.stateNode.complete){Yt=0,Xa=null;var ce=U.sibling;if(ce!==null)wt=ce;else{var be=U.return;be!==null?(wt=be,Sl(be)):wt=null}break t}}Yt=0,Xa=null,W0(s,o,b,5);break;case 6:Yt=0,Xa=null,W0(s,o,b,6);break;case 8:KT(),mn=6;break e;default:throw Error(a(462))}}Sw();break}catch(Re){t2(s,Re)}while(!0);return fs=Dr=null,F.H=h,F.A=v,Ht=u,wt!==null?0:(nn=null,At=0,B1(),mn)}function Sw(){for(;wt!==null&&!Kt();)s2(wt)}function s2(s){var o=Dg(s.alternate,s,ws);s.memoizedProps=s.pendingProps,o===null?Sl(s):wt=o}function r2(s){var o=s,u=o.alternate;switch(o.tag){case 15:case 0:o=wg(u,o,o.pendingProps,o.type,void 0,At);break;case 11:o=wg(u,o,o.pendingProps,o.type.render,o.ref,At);break;case 5:uT(o);default:Ng(u,o),o=wt=i5(o,ws),o=Dg(u,o,ws)}s.memoizedProps=s.pendingProps,o===null?Sl(s):wt=o}function W0(s,o,u,h){fs=Dr=null,uT(o),O0=null,Ho=0;var v=o.return;try{if(lw(s,v,o,u,At)){mn=1,cl(s,ii(u,s.current)),wt=null;return}}catch(b){if(v!==null)throw wt=v,b;mn=1,cl(s,ii(u,s.current)),wt=null;return}o.flags&32768?(Nt||h===1?s=!0:q0||(At&536870912)!==0?s=!1:(Xs=s=!0,(h===2||h===9||h===3||h===6)&&(h=Ha.current,h!==null&&h.tag===13&&(h.flags|=16384))),o2(o,s)):Sl(o)}function Sl(s){var o=s;do{if((o.flags&32768)!==0){o2(o,Xs);return}s=o.return;var u=Tw(o.alternate,o,ws);if(u!==null){wt=u;return}if(o=o.sibling,o!==null){wt=o;return}wt=o=s}while(o!==null);mn===0&&(mn=5)}function o2(s,o){do{var u=fw(s.alternate,s);if(u!==null){u.flags&=32767,wt=u;return}if(u=s.return,u!==null&&(u.flags|=32768,u.subtreeFlags=0,u.deletions=null),!o&&(s=s.sibling,s!==null)){wt=s;return}wt=s=u}while(s!==null);mn=6,wt=null}function c2(s,o,u,h,v,b,R,U,ce){s.cancelPendingCommit=null;do bl();while(_n!==0);if((Ht&6)!==0)throw Error(a(327));if(o!==null){if(o===s.current)throw Error(a(177));if(b=o.lanes|o.childLanes,b|=Pd,Ln(s,u,b,R,U,ce),s===nn&&(wt=nn=null,At=0),U0=o,Ys=s,Cs=u,HT=b,GT=v,Zg=h,(o.subtreeFlags&10256)!==0||(o.flags&10256)!==0?(s.callbackNode=null,s.callbackPriority=0,Ew(Et,function(){return f2(),null})):(s.callbackNode=null,s.callbackPriority=0),h=(o.flags&13878)!==0,(o.subtreeFlags&13878)!==0||h){h=F.T,F.T=null,v=re.p,re.p=2,R=Ht,Ht|=4;try{hw(s,o,u)}finally{Ht=R,re.p=v,F.T=h}}_n=1,l2(),u2(),d2()}}function l2(){if(_n===1){_n=0;var s=Ys,o=U0,u=(o.flags&13878)!==0;if((o.subtreeFlags&13878)!==0||u){u=F.T,F.T=null;var h=re.p;re.p=2;var v=Ht;Ht|=4;try{Wg(o,s);var b=cf,R=$m(s.containerInfo),U=b.focusedElem,ce=b.selectionRange;if(R!==U&&U&&U.ownerDocument&&Km(U.ownerDocument.documentElement,U)){if(ce!==null&&Od(U)){var be=ce.start,Re=ce.end;if(Re===void 0&&(Re=be),"selectionStart"in U)U.selectionStart=be,U.selectionEnd=Math.min(Re,U.value.length);else{var Ie=U.ownerDocument||document,we=Ie&&Ie.defaultView||window;if(we.getSelection){var ke=we.getSelection(),$e=U.textContent.length,at=Math.min(ce.start,$e),tn=ce.end===void 0?at:Math.min(ce.end,$e);!ke.extend&&at>tn&&(R=tn,tn=at,at=R);var ve=Xm(U,at),Te=Xm(U,tn);if(ve&&Te&&(ke.rangeCount!==1||ke.anchorNode!==ve.node||ke.anchorOffset!==ve.offset||ke.focusNode!==Te.node||ke.focusOffset!==Te.offset)){var Se=Ie.createRange();Se.setStart(ve.node,ve.offset),ke.removeAllRanges(),at>tn?(ke.addRange(Se),ke.extend(Te.node,Te.offset)):(Se.setEnd(Te.node,Te.offset),ke.addRange(Se))}}}}for(Ie=[],ke=U;ke=ke.parentNode;)ke.nodeType===1&&Ie.push({element:ke,left:ke.scrollLeft,top:ke.scrollTop});for(typeof U.focus=="function"&&U.focus(),U=0;U<Ie.length;U++){var De=Ie[U];De.element.scrollLeft=De.left,De.element.scrollTop=De.top}}jl=!!of,cf=of=null}finally{Ht=v,re.p=h,F.T=u}}s.current=o,_n=2}}function u2(){if(_n===2){_n=0;var s=Ys,o=U0,u=(o.flags&8772)!==0;if((o.subtreeFlags&8772)!==0||u){u=F.T,F.T=null;var h=re.p;re.p=2;var v=Ht;Ht|=4;try{_g(s,o.alternate,o)}finally{Ht=v,re.p=h,F.T=u}}_n=3}}function d2(){if(_n===4||_n===3){_n=0,Dt();var s=Ys,o=U0,u=Cs,h=Zg;(o.subtreeFlags&10256)!==0||(o.flags&10256)!==0?_n=5:(_n=0,U0=Ys=null,T2(s,s.pendingLanes));var v=s.pendingLanes;if(v===0&&($s=null),Vn(u),o=o.stateNode,Ye&&typeof Ye.onCommitFiberRoot=="function")try{Ye.onCommitFiberRoot(rt,o,void 0,(o.current.flags&128)===128)}catch{}if(h!==null){o=F.T,v=re.p,re.p=2,F.T=null;try{for(var b=s.onRecoverableError,R=0;R<h.length;R++){var U=h[R];b(U.value,{componentStack:U.stack})}}finally{F.T=o,re.p=v}}(Cs&3)!==0&&bl(),Wi(s),v=s.pendingLanes,(u&261930)!==0&&(v&42)!==0?s===XT?cc++:(cc=0,XT=s):cc=0,lc(0)}}function T2(s,o){(s.pooledCacheLanes&=o)===0&&(o=s.pooledCache,o!=null&&(s.pooledCache=null,Wo(o)))}function bl(){return l2(),u2(),d2(),f2()}function f2(){if(_n!==5)return!1;var s=Ys,o=HT;HT=0;var u=Vn(Cs),h=F.T,v=re.p;try{re.p=32>u?32:u,F.T=null,u=GT,GT=null;var b=Ys,R=Cs;if(_n=0,U0=Ys=null,Cs=0,(Ht&6)!==0)throw Error(a(331));var U=Ht;if(Ht|=4,Kg(b.current),Hg(b,b.current,R,u),Ht=U,lc(0,!1),Ye&&typeof Ye.onPostCommitFiberRoot=="function")try{Ye.onPostCommitFiberRoot(rt,b)}catch{}return!0}finally{re.p=v,F.T=h,T2(s,o)}}function h2(s,o,u){o=ii(u,o),o=ET(s.stateNode,o,2),s=Ws(s,o,2),s!==null&&(Wn(s,2),Wi(s))}function Zt(s,o,u){if(s.tag===3)h2(s,s,u);else for(;o!==null;){if(o.tag===3){h2(o,s,u);break}else if(o.tag===1){var h=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&($s===null||!$s.has(h))){s=ii(u,s),u=pg(2),h=Ws(o,u,2),h!==null&&(mg(u,h,o,s),Wn(h,2),Wi(h));break}}o=o.return}}function YT(s,o,u){var h=s.pingCache;if(h===null){h=s.pingCache=new gw;var v=new Set;h.set(o,v)}else v=h.get(o),v===void 0&&(v=new Set,h.set(o,v));v.has(u)||(zT=!0,v.add(u),s=bw.bind(null,s,o,u),o.then(s,s))}function bw(s,o,u){var h=s.pingCache;h!==null&&h.delete(o),s.pingedLanes|=s.suspendedLanes&u,s.warmLanes&=~u,nn===s&&(At&u)===u&&(mn===4||mn===3&&(At&62914560)===At&&300>dt()-ml?(Ht&2)===0&&z0(s,0):WT|=u,B0===At&&(B0=0)),Wi(s)}function p2(s,o){o===0&&(o=Zn()),s=kr(s,o),s!==null&&(Wn(s,o),Wi(s))}function ww(s){var o=s.memoizedState,u=0;o!==null&&(u=o.retryLane),p2(s,u)}function Cw(s,o){var u=0;switch(s.tag){case 31:case 13:var h=s.stateNode,v=s.memoizedState;v!==null&&(u=v.retryLane);break;case 19:h=s.stateNode;break;case 22:h=s.stateNode._retryCache;break;default:throw Error(a(314))}h!==null&&h.delete(o),p2(s,u)}function Ew(s,o){return pt(s,o)}var wl=null,V0=null,ZT=!1,Cl=!1,JT=!1,Js=0;function Wi(s){s!==V0&&s.next===null&&(V0===null?wl=V0=s:V0=V0.next=s),Cl=!0,ZT||(ZT=!0,Aw())}function lc(s,o){if(!JT&&Cl){JT=!0;do for(var u=!1,h=wl;h!==null;){if(s!==0){var v=h.pendingLanes;if(v===0)var b=0;else{var R=h.suspendedLanes,U=h.pingedLanes;b=(1<<31-Qe(42|s)+1)-1,b&=v&~(R&~U),b=b&201326741?b&201326741|1:b?b|2:0}b!==0&&(u=!0,x2(h,b))}else b=At,b=Xt(h,h===nn?b:0,h.cancelPendingCommit!==null||h.timeoutHandle!==-1),(b&3)===0||Fn(h,b)||(u=!0,x2(h,b));h=h.next}while(u);JT=!1}}function kw(){m2()}function m2(){Cl=ZT=!1;var s=0;Js!==0&&Pw()&&(s=Js);for(var o=dt(),u=null,h=wl;h!==null;){var v=h.next,b=g2(h,o);b===0?(h.next=null,u===null?wl=v:u.next=v,v===null&&(V0=u)):(u=h,(s!==0||(b&3)!==0)&&(Cl=!0)),h=v}_n!==0&&_n!==5||lc(s),Js!==0&&(Js=0)}function g2(s,o){for(var u=s.suspendedLanes,h=s.pingedLanes,v=s.expirationTimes,b=s.pendingLanes&-62914561;0<b;){var R=31-Qe(b),U=1<<R,ce=v[R];ce===-1?((U&u)===0||(U&h)!==0)&&(v[R]=Sa(U,o)):ce<=o&&(s.expiredLanes|=U),b&=~U}if(o=nn,u=At,u=Xt(s,s===o?u:0,s.cancelPendingCommit!==null||s.timeoutHandle!==-1),h=s.callbackNode,u===0||s===o&&(Yt===2||Yt===9)||s.cancelPendingCommit!==null)return h!==null&&h!==null&&Pt(h),s.callbackNode=null,s.callbackPriority=0;if((u&3)===0||Fn(s,u)){if(o=u&-u,o===s.callbackPriority)return o;switch(h!==null&&Pt(h),Vn(u)){case 2:case 8:u=ln;break;case 32:u=Et;break;case 268435456:u=pe;break;default:u=Et}return h=v2.bind(null,s),u=pt(u,h),s.callbackPriority=o,s.callbackNode=u,o}return h!==null&&h!==null&&Pt(h),s.callbackPriority=2,s.callbackNode=null,2}function v2(s,o){if(_n!==0&&_n!==5)return s.callbackNode=null,s.callbackPriority=0,null;var u=s.callbackNode;if(bl()&&s.callbackNode!==u)return null;var h=At;return h=Xt(s,s===nn?h:0,s.cancelPendingCommit!==null||s.timeoutHandle!==-1),h===0?null:(Qg(s,h,o),g2(s,dt()),s.callbackNode!=null&&s.callbackNode===u?v2.bind(null,s):null)}function x2(s,o){if(bl())return null;Qg(s,o,!0)}function Aw(){qw(function(){(Ht&6)!==0?pt(Gt,kw):m2()})}function QT(){if(Js===0){var s=D0;s===0&&(s=Me,Me<<=1,(Me&261888)===0&&(Me=256)),Js=s}return Js}function y2(s){return s==null||typeof s=="symbol"||typeof s=="boolean"?null:typeof s=="function"?s:Gn(""+s)}function S2(s,o){var u=o.ownerDocument.createElement("input");return u.name=o.name,u.value=o.value,s.id&&u.setAttribute("form",s.id),o.parentNode.insertBefore(u,o),s=new FormData(s),u.parentNode.removeChild(u),s}function Rw(s,o,u,h,v){if(o==="submit"&&u&&u.stateNode===v){var b=y2((v[Q]||null).action),R=h.submitter;R&&(o=(o=R[Q]||null)?y2(o.formAction):R.getAttribute("formAction"),o!==null&&(b=o,R=null));var U=new fn("action","action",null,h,v);s.push({event:U,listeners:[{instance:null,listener:function(){if(h.defaultPrevented){if(Js!==0){var ce=R?S2(v,R):new FormData(v);xT(u,{pending:!0,data:ce,method:v.method,action:b},null,ce)}}else typeof b=="function"&&(U.preventDefault(),ce=R?S2(v,R):new FormData(v),xT(u,{pending:!0,data:ce,method:v.method,action:b},b,ce))},currentTarget:v}]})}}for(var ef=0;ef<Ld.length;ef++){var tf=Ld[ef],Dw=tf.toLowerCase(),Iw=tf[0].toUpperCase()+tf.slice(1);ki(Dw,"on"+Iw)}ki(Jm,"onAnimationEnd"),ki(Qm,"onAnimationIteration"),ki(e5,"onAnimationStart"),ki("dblclick","onDoubleClick"),ki("focusin","onFocus"),ki("focusout","onBlur"),ki(G7,"onTransitionRun"),ki(X7,"onTransitionStart"),ki(K7,"onTransitionCancel"),ki(t5,"onTransitionEnd"),St("onMouseEnter",["mouseout","mouseover"]),St("onMouseLeave",["mouseout","mouseover"]),St("onPointerEnter",["pointerout","pointerover"]),St("onPointerLeave",["pointerout","pointerover"]),ct("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ct("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ct("onBeforeInput",["compositionend","keypress","textInput","paste"]),ct("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ct("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ct("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var uc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Nw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(uc));function b2(s,o){o=(o&4)!==0;for(var u=0;u<s.length;u++){var h=s[u],v=h.event;h=h.listeners;e:{var b=void 0;if(o)for(var R=h.length-1;0<=R;R--){var U=h[R],ce=U.instance,be=U.currentTarget;if(U=U.listener,ce!==b&&v.isPropagationStopped())break e;b=U,v.currentTarget=be;try{b(v)}catch(Re){q1(Re)}v.currentTarget=null,b=ce}else for(R=0;R<h.length;R++){if(U=h[R],ce=U.instance,be=U.currentTarget,U=U.listener,ce!==b&&v.isPropagationStopped())break e;b=U,v.currentTarget=be;try{b(v)}catch(Re){q1(Re)}v.currentTarget=null,b=ce}}}}function Ct(s,o){var u=o[W];u===void 0&&(u=o[W]=new Set);var h=s+"__bubble";u.has(h)||(w2(o,s,2,!1),u.add(h))}function nf(s,o,u){var h=0;o&&(h|=4),w2(u,s,h,o)}var El="_reactListening"+Math.random().toString(36).slice(2);function af(s){if(!s[El]){s[El]=!0,kt.forEach(function(u){u!=="selectionchange"&&(Nw.has(u)||nf(u,!1,s),nf(u,!0,s))});var o=s.nodeType===9?s:s.ownerDocument;o===null||o[El]||(o[El]=!0,nf("selectionchange",!1,o))}}function w2(s,o,u,h){switch(J2(o)){case 2:var v=s8;break;case 8:v=r8;break;default:v=xf}u=v.bind(null,o,u,s),v=void 0,!Oo||o!=="touchstart"&&o!=="touchmove"&&o!=="wheel"||(v=!0),h?v!==void 0?s.addEventListener(o,u,{capture:!0,passive:v}):s.addEventListener(o,u,!0):v!==void 0?s.addEventListener(o,u,{passive:v}):s.addEventListener(o,u,!1)}function sf(s,o,u,h,v){var b=h;if((o&1)===0&&(o&2)===0&&h!==null)e:for(;;){if(h===null)return;var R=h.tag;if(R===3||R===4){var U=h.stateNode.containerInfo;if(U===v)break;if(R===4)for(R=h.return;R!==null;){var ce=R.tag;if((ce===3||ce===4)&&R.stateNode.containerInfo===v)return;R=R.return}for(;U!==null;){if(R=Ae(U),R===null)return;if(ce=R.tag,ce===5||ce===6||ce===26||ce===27){h=b=R;continue e}U=U.parentNode}}h=h.return}L1(function(){var be=b,Re=Do(u),Ie=[];e:{var we=n5.get(s);if(we!==void 0){var ke=fn,$e=s;switch(s){case"keypress":if(ls(u)===0)break e;case"keydown":case"keyup":ke=C7;break;case"focusin":$e="focus",ke=Ad;break;case"focusout":$e="blur",ke=Ad;break;case"beforeblur":case"afterblur":ke=Ad;break;case"click":if(u.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ke=Nm;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ke=T7;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ke=A7;break;case Jm:case Qm:case e5:ke=p7;break;case t5:ke=D7;break;case"scroll":case"scrollend":ke=kd;break;case"wheel":ke=N7;break;case"copy":case"cut":case"paste":ke=g7;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ke=Mm;break;case"toggle":case"beforetoggle":ke=M7}var at=(o&4)!==0,tn=!at&&(s==="scroll"||s==="scrollend"),ve=at?we!==null?we+"Capture":null:we;at=[];for(var Te=be,Se;Te!==null;){var De=Te;if(Se=De.stateNode,De=De.tag,De!==5&&De!==26&&De!==27||Se===null||ve===null||(De=yr(Te,ve),De!=null&&at.push(dc(Te,De,Se))),tn)break;Te=Te.return}0<at.length&&(we=new ke(we,$e,null,u,Re),Ie.push({event:we,listeners:at}))}}if((o&7)===0){e:{if(we=s==="mouseover"||s==="pointerover",ke=s==="mouseout"||s==="pointerout",we&&u!==g0&&($e=u.relatedTarget||u.fromElement)&&(Ae($e)||$e[ie]))break e;if((ke||we)&&(we=Re.window===Re?Re:(we=Re.ownerDocument)?we.defaultView||we.parentWindow:window,ke?($e=u.relatedTarget||u.toElement,ke=be,$e=$e?Ae($e):null,$e!==null&&(tn=r($e),at=$e.tag,$e!==tn||at!==5&&at!==27&&at!==6)&&($e=null)):(ke=null,$e=be),ke!==$e)){if(at=Nm,De="onMouseLeave",ve="onMouseEnter",Te="mouse",(s==="pointerout"||s==="pointerover")&&(at=Mm,De="onPointerLeave",ve="onPointerEnter",Te="pointer"),tn=ke==null?we:Oe(ke),Se=$e==null?we:Oe($e),we=new at(De,Te+"leave",ke,u,Re),we.target=tn,we.relatedTarget=Se,De=null,Ae(Re)===be&&(at=new at(ve,Te+"enter",$e,u,Re),at.target=Se,at.relatedTarget=tn,De=at),tn=De,ke&&$e)t:{for(at=Ow,ve=ke,Te=$e,Se=0,De=ve;De;De=at(De))Se++;De=0;for(var et=Te;et;et=at(et))De++;for(;0<Se-De;)ve=at(ve),Se--;for(;0<De-Se;)Te=at(Te),De--;for(;Se--;){if(ve===Te||Te!==null&&ve===Te.alternate){at=ve;break t}ve=at(ve),Te=at(Te)}at=null}else at=null;ke!==null&&C2(Ie,we,ke,at,!1),$e!==null&&tn!==null&&C2(Ie,tn,$e,at,!0)}}e:{if(we=be?Oe(be):window,ke=we.nodeName&&we.nodeName.toLowerCase(),ke==="select"||ke==="input"&&we.type==="file")var zt=Um;else if(qm(we))if(zm)zt=W7;else{zt=U7;var Ze=B7}else ke=we.nodeName,!ke||ke.toLowerCase()!=="input"||we.type!=="checkbox"&&we.type!=="radio"?be&&rs(be.elementType)&&(zt=Um):zt=z7;if(zt&&(zt=zt(s,be))){Bm(Ie,zt,u,Re);break e}Ze&&Ze(s,we,be),s==="focusout"&&be&&we.type==="number"&&be.memoizedProps.value!=null&&ua(we,"number",we.value)}switch(Ze=be?Oe(be):window,s){case"focusin":(qm(Ze)||Ze.contentEditable==="true")&&(S0=Ze,Md=be,Bo=null);break;case"focusout":Bo=Md=S0=null;break;case"mousedown":jd=!0;break;case"contextmenu":case"mouseup":case"dragend":jd=!1,Ym(Ie,u,Re);break;case"selectionchange":if(H7)break;case"keydown":case"keyup":Ym(Ie,u,Re)}var xt;if(Dd)e:{switch(s){case"compositionstart":var Rt="onCompositionStart";break e;case"compositionend":Rt="onCompositionEnd";break e;case"compositionupdate":Rt="onCompositionUpdate";break e}Rt=void 0}else y0?Pm(s,u)&&(Rt="onCompositionEnd"):s==="keydown"&&u.keyCode===229&&(Rt="onCompositionStart");Rt&&(jm&&u.locale!=="ko"&&(y0||Rt!=="onCompositionStart"?Rt==="onCompositionEnd"&&y0&&(xt=Mo()):(Ei=Re,v0="value"in Ei?Ei.value:Ei.textContent,y0=!0)),Ze=kl(be,Rt),0<Ze.length&&(Rt=new Om(Rt,s,null,u,Re),Ie.push({event:Rt,listeners:Ze}),xt?Rt.data=xt:(xt=_m(u),xt!==null&&(Rt.data=xt)))),(xt=F7?L7(s,u):P7(s,u))&&(Rt=kl(be,"onBeforeInput"),0<Rt.length&&(Ze=new Om("onBeforeInput","beforeinput",null,u,Re),Ie.push({event:Ze,listeners:Rt}),Ze.data=xt)),Rw(Ie,s,be,u,Re)}b2(Ie,o)})}function dc(s,o,u){return{instance:s,listener:o,currentTarget:u}}function kl(s,o){for(var u=o+"Capture",h=[];s!==null;){var v=s,b=v.stateNode;if(v=v.tag,v!==5&&v!==26&&v!==27||b===null||(v=yr(s,u),v!=null&&h.unshift(dc(s,v,b)),v=yr(s,o),v!=null&&h.push(dc(s,v,b))),s.tag===3)return h;s=s.return}return[]}function Ow(s){if(s===null)return null;do s=s.return;while(s&&s.tag!==5&&s.tag!==27);return s||null}function C2(s,o,u,h,v){for(var b=o._reactName,R=[];u!==null&&u!==h;){var U=u,ce=U.alternate,be=U.stateNode;if(U=U.tag,ce!==null&&ce===h)break;U!==5&&U!==26&&U!==27||be===null||(ce=be,v?(be=yr(u,b),be!=null&&R.unshift(dc(u,be,ce))):v||(be=yr(u,b),be!=null&&R.push(dc(u,be,ce)))),u=u.return}R.length!==0&&s.push({event:o,listeners:R})}var Mw=/\r\n?/g,jw=/\u0000|\uFFFD/g;function E2(s){return(typeof s=="string"?s:""+s).replace(Mw,`
|
||
`).replace(jw,"")}function k2(s,o){return o=E2(o),E2(s)===o}function en(s,o,u,h,v,b){switch(u){case"children":typeof h=="string"?o==="body"||o==="textarea"&&h===""||Jn(s,h):(typeof h=="number"||typeof h=="bigint")&&o!=="body"&&Jn(s,""+h);break;case"className":m0(s,"class",h);break;case"tabIndex":m0(s,"tabindex",h);break;case"dir":case"role":case"viewBox":case"width":case"height":m0(s,u,h);break;case"style":da(s,h,b);break;case"data":if(o!=="object"){m0(s,"data",h);break}case"src":case"href":if(h===""&&(o!=="a"||u!=="href")){s.removeAttribute(u);break}if(h==null||typeof h=="function"||typeof h=="symbol"||typeof h=="boolean"){s.removeAttribute(u);break}h=Gn(""+h),s.setAttribute(u,h);break;case"action":case"formAction":if(typeof h=="function"){s.setAttribute(u,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof b=="function"&&(u==="formAction"?(o!=="input"&&en(s,o,"name",v.name,v,null),en(s,o,"formEncType",v.formEncType,v,null),en(s,o,"formMethod",v.formMethod,v,null),en(s,o,"formTarget",v.formTarget,v,null)):(en(s,o,"encType",v.encType,v,null),en(s,o,"method",v.method,v,null),en(s,o,"target",v.target,v,null)));if(h==null||typeof h=="symbol"||typeof h=="boolean"){s.removeAttribute(u);break}h=Gn(""+h),s.setAttribute(u,h);break;case"onClick":h!=null&&(s.onclick=wi);break;case"onScroll":h!=null&&Ct("scroll",s);break;case"onScrollEnd":h!=null&&Ct("scrollend",s);break;case"dangerouslySetInnerHTML":if(h!=null){if(typeof h!="object"||!("__html"in h))throw Error(a(61));if(u=h.__html,u!=null){if(v.children!=null)throw Error(a(60));s.innerHTML=u}}break;case"multiple":s.multiple=h&&typeof h!="function"&&typeof h!="symbol";break;case"muted":s.muted=h&&typeof h!="function"&&typeof h!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(h==null||typeof h=="function"||typeof h=="boolean"||typeof h=="symbol"){s.removeAttribute("xlink:href");break}u=Gn(""+h),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",u);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":h!=null&&typeof h!="function"&&typeof h!="symbol"?s.setAttribute(u,""+h):s.removeAttribute(u);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":h&&typeof h!="function"&&typeof h!="symbol"?s.setAttribute(u,""):s.removeAttribute(u);break;case"capture":case"download":h===!0?s.setAttribute(u,""):h!==!1&&h!=null&&typeof h!="function"&&typeof h!="symbol"?s.setAttribute(u,h):s.removeAttribute(u);break;case"cols":case"rows":case"size":case"span":h!=null&&typeof h!="function"&&typeof h!="symbol"&&!isNaN(h)&&1<=h?s.setAttribute(u,h):s.removeAttribute(u);break;case"rowSpan":case"start":h==null||typeof h=="function"||typeof h=="symbol"||isNaN(h)?s.removeAttribute(u):s.setAttribute(u,h);break;case"popover":Ct("beforetoggle",s),Ct("toggle",s),la(s,"popover",h);break;case"xlinkActuate":bi(s,"http://www.w3.org/1999/xlink","xlink:actuate",h);break;case"xlinkArcrole":bi(s,"http://www.w3.org/1999/xlink","xlink:arcrole",h);break;case"xlinkRole":bi(s,"http://www.w3.org/1999/xlink","xlink:role",h);break;case"xlinkShow":bi(s,"http://www.w3.org/1999/xlink","xlink:show",h);break;case"xlinkTitle":bi(s,"http://www.w3.org/1999/xlink","xlink:title",h);break;case"xlinkType":bi(s,"http://www.w3.org/1999/xlink","xlink:type",h);break;case"xmlBase":bi(s,"http://www.w3.org/XML/1998/namespace","xml:base",h);break;case"xmlLang":bi(s,"http://www.w3.org/XML/1998/namespace","xml:lang",h);break;case"xmlSpace":bi(s,"http://www.w3.org/XML/1998/namespace","xml:space",h);break;case"is":la(s,"is",h);break;case"innerText":case"textContent":break;default:(!(2<u.length)||u[0]!=="o"&&u[0]!=="O"||u[1]!=="n"&&u[1]!=="N")&&(u=Fs.get(u)||u,la(s,u,h))}}function rf(s,o,u,h,v,b){switch(u){case"style":da(s,h,b);break;case"dangerouslySetInnerHTML":if(h!=null){if(typeof h!="object"||!("__html"in h))throw Error(a(61));if(u=h.__html,u!=null){if(v.children!=null)throw Error(a(60));s.innerHTML=u}}break;case"children":typeof h=="string"?Jn(s,h):(typeof h=="number"||typeof h=="bigint")&&Jn(s,""+h);break;case"onScroll":h!=null&&Ct("scroll",s);break;case"onScrollEnd":h!=null&&Ct("scrollend",s);break;case"onClick":h!=null&&(s.onclick=wi);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Be.hasOwnProperty(u))e:{if(u[0]==="o"&&u[1]==="n"&&(v=u.endsWith("Capture"),o=u.slice(2,v?u.length-7:void 0),b=s[Q]||null,b=b!=null?b[u]:null,typeof b=="function"&&s.removeEventListener(o,b,v),typeof h=="function")){typeof b!="function"&&b!==null&&(u in s?s[u]=null:s.hasAttribute(u)&&s.removeAttribute(u)),s.addEventListener(o,h,v);break e}u in s?s[u]=h:h===!0?s.setAttribute(u,""):la(s,u,h)}}}function na(s,o,u){switch(o){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ct("error",s),Ct("load",s);var h=!1,v=!1,b;for(b in u)if(u.hasOwnProperty(b)){var R=u[b];if(R!=null)switch(b){case"src":h=!0;break;case"srcSet":v=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,o));default:en(s,o,b,R,u,null)}}v&&en(s,o,"srcSet",u.srcSet,u,null),h&&en(s,o,"src",u.src,u,null);return;case"input":Ct("invalid",s);var U=b=R=v=null,ce=null,be=null;for(h in u)if(u.hasOwnProperty(h)){var Re=u[h];if(Re!=null)switch(h){case"name":v=Re;break;case"type":R=Re;break;case"checked":ce=Re;break;case"defaultChecked":be=Re;break;case"value":b=Re;break;case"defaultValue":U=Re;break;case"children":case"dangerouslySetInnerHTML":if(Re!=null)throw Error(a(137,o));break;default:en(s,o,h,Re,u,null)}}za(s,b,U,ce,be,R,v,!1);return;case"select":Ct("invalid",s),h=R=b=null;for(v in u)if(u.hasOwnProperty(v)&&(U=u[v],U!=null))switch(v){case"value":b=U;break;case"defaultValue":R=U;break;case"multiple":h=U;default:en(s,o,v,U,u,null)}o=b,u=R,s.multiple=!!h,o!=null?It(s,!!h,o,!1):u!=null&&It(s,!!h,u,!0);return;case"textarea":Ct("invalid",s),b=v=h=null;for(R in u)if(u.hasOwnProperty(R)&&(U=u[R],U!=null))switch(R){case"value":h=U;break;case"defaultValue":v=U;break;case"children":b=U;break;case"dangerouslySetInnerHTML":if(U!=null)throw Error(a(91));break;default:en(s,o,R,U,u,null)}Hn(s,h,v,b);return;case"option":for(ce in u)u.hasOwnProperty(ce)&&(h=u[ce],h!=null)&&(ce==="selected"?s.selected=h&&typeof h!="function"&&typeof h!="symbol":en(s,o,ce,h,u,null));return;case"dialog":Ct("beforetoggle",s),Ct("toggle",s),Ct("cancel",s),Ct("close",s);break;case"iframe":case"object":Ct("load",s);break;case"video":case"audio":for(h=0;h<uc.length;h++)Ct(uc[h],s);break;case"image":Ct("error",s),Ct("load",s);break;case"details":Ct("toggle",s);break;case"embed":case"source":case"link":Ct("error",s),Ct("load",s);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(be in u)if(u.hasOwnProperty(be)&&(h=u[be],h!=null))switch(be){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,o));default:en(s,o,be,h,u,null)}return;default:if(rs(o)){for(Re in u)u.hasOwnProperty(Re)&&(h=u[Re],h!==void 0&&rf(s,o,Re,h,u,void 0));return}}for(U in u)u.hasOwnProperty(U)&&(h=u[U],h!=null&&en(s,o,U,h,u,null))}function Fw(s,o,u,h){switch(o){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var v=null,b=null,R=null,U=null,ce=null,be=null,Re=null;for(ke in u){var Ie=u[ke];if(u.hasOwnProperty(ke)&&Ie!=null)switch(ke){case"checked":break;case"value":break;case"defaultValue":ce=Ie;default:h.hasOwnProperty(ke)||en(s,o,ke,null,h,Ie)}}for(var we in h){var ke=h[we];if(Ie=u[we],h.hasOwnProperty(we)&&(ke!=null||Ie!=null))switch(we){case"type":b=ke;break;case"name":v=ke;break;case"checked":be=ke;break;case"defaultChecked":Re=ke;break;case"value":R=ke;break;case"defaultValue":U=ke;break;case"children":case"dangerouslySetInnerHTML":if(ke!=null)throw Error(a(137,o));break;default:ke!==Ie&&en(s,o,we,ke,h,Ie)}}Ea(s,R,U,ce,be,Re,b,v);return;case"select":ke=R=U=we=null;for(b in u)if(ce=u[b],u.hasOwnProperty(b)&&ce!=null)switch(b){case"value":break;case"multiple":ke=ce;default:h.hasOwnProperty(b)||en(s,o,b,null,h,ce)}for(v in h)if(b=h[v],ce=u[v],h.hasOwnProperty(v)&&(b!=null||ce!=null))switch(v){case"value":we=b;break;case"defaultValue":U=b;break;case"multiple":R=b;default:b!==ce&&en(s,o,v,b,h,ce)}o=U,u=R,h=ke,we!=null?It(s,!!u,we,!1):!!h!=!!u&&(o!=null?It(s,!!u,o,!0):It(s,!!u,u?[]:"",!1));return;case"textarea":ke=we=null;for(U in u)if(v=u[U],u.hasOwnProperty(U)&&v!=null&&!h.hasOwnProperty(U))switch(U){case"value":break;case"children":break;default:en(s,o,U,null,h,v)}for(R in h)if(v=h[R],b=u[R],h.hasOwnProperty(R)&&(v!=null||b!=null))switch(R){case"value":we=v;break;case"defaultValue":ke=v;break;case"children":break;case"dangerouslySetInnerHTML":if(v!=null)throw Error(a(91));break;default:v!==b&&en(s,o,R,v,h,b)}Bt(s,we,ke);return;case"option":for(var $e in u)we=u[$e],u.hasOwnProperty($e)&&we!=null&&!h.hasOwnProperty($e)&&($e==="selected"?s.selected=!1:en(s,o,$e,null,h,we));for(ce in h)we=h[ce],ke=u[ce],h.hasOwnProperty(ce)&&we!==ke&&(we!=null||ke!=null)&&(ce==="selected"?s.selected=we&&typeof we!="function"&&typeof we!="symbol":en(s,o,ce,we,h,ke));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var at in u)we=u[at],u.hasOwnProperty(at)&&we!=null&&!h.hasOwnProperty(at)&&en(s,o,at,null,h,we);for(be in h)if(we=h[be],ke=u[be],h.hasOwnProperty(be)&&we!==ke&&(we!=null||ke!=null))switch(be){case"children":case"dangerouslySetInnerHTML":if(we!=null)throw Error(a(137,o));break;default:en(s,o,be,we,h,ke)}return;default:if(rs(o)){for(var tn in u)we=u[tn],u.hasOwnProperty(tn)&&we!==void 0&&!h.hasOwnProperty(tn)&&rf(s,o,tn,void 0,h,we);for(Re in h)we=h[Re],ke=u[Re],!h.hasOwnProperty(Re)||we===ke||we===void 0&&ke===void 0||rf(s,o,Re,we,h,ke);return}}for(var ve in u)we=u[ve],u.hasOwnProperty(ve)&&we!=null&&!h.hasOwnProperty(ve)&&en(s,o,ve,null,h,we);for(Ie in h)we=h[Ie],ke=u[Ie],!h.hasOwnProperty(Ie)||we===ke||we==null&&ke==null||en(s,o,Ie,we,h,ke)}function A2(s){switch(s){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Lw(){if(typeof performance.getEntriesByType=="function"){for(var s=0,o=0,u=performance.getEntriesByType("resource"),h=0;h<u.length;h++){var v=u[h],b=v.transferSize,R=v.initiatorType,U=v.duration;if(b&&U&&A2(R)){for(R=0,U=v.responseEnd,h+=1;h<u.length;h++){var ce=u[h],be=ce.startTime;if(be>U)break;var Re=ce.transferSize,Ie=ce.initiatorType;Re&&A2(Ie)&&(ce=ce.responseEnd,R+=Re*(ce<U?1:(U-be)/(ce-be)))}if(--h,o+=8*(b+R)/(v.duration/1e3),s++,10<s)break}}if(0<s)return o/s/1e6}return navigator.connection&&(s=navigator.connection.downlink,typeof s=="number")?s:5}var of=null,cf=null;function Al(s){return s.nodeType===9?s:s.ownerDocument}function R2(s){switch(s){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function D2(s,o){if(s===0)switch(o){case"svg":return 1;case"math":return 2;default:return 0}return s===1&&o==="foreignObject"?0:s}function lf(s,o){return s==="textarea"||s==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.children=="bigint"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}var uf=null;function Pw(){var s=window.event;return s&&s.type==="popstate"?s===uf?!1:(uf=s,!0):(uf=null,!1)}var I2=typeof setTimeout=="function"?setTimeout:void 0,_w=typeof clearTimeout=="function"?clearTimeout:void 0,N2=typeof Promise=="function"?Promise:void 0,qw=typeof queueMicrotask=="function"?queueMicrotask:typeof N2<"u"?function(s){return N2.resolve(null).then(s).catch(Bw)}:I2;function Bw(s){setTimeout(function(){throw s})}function Qs(s){return s==="head"}function O2(s,o){var u=o,h=0;do{var v=u.nextSibling;if(s.removeChild(u),v&&v.nodeType===8)if(u=v.data,u==="/$"||u==="/&"){if(h===0){s.removeChild(v),K0(o);return}h--}else if(u==="$"||u==="$?"||u==="$~"||u==="$!"||u==="&")h++;else if(u==="html")Tc(s.ownerDocument.documentElement);else if(u==="head"){u=s.ownerDocument.head,Tc(u);for(var b=u.firstChild;b;){var R=b.nextSibling,U=b.nodeName;b[se]||U==="SCRIPT"||U==="STYLE"||U==="LINK"&&b.rel.toLowerCase()==="stylesheet"||u.removeChild(b),b=R}}else u==="body"&&Tc(s.ownerDocument.body);u=v}while(u);K0(o)}function M2(s,o){var u=s;s=0;do{var h=u.nextSibling;if(u.nodeType===1?o?(u._stashedDisplay=u.style.display,u.style.display="none"):(u.style.display=u._stashedDisplay||"",u.getAttribute("style")===""&&u.removeAttribute("style")):u.nodeType===3&&(o?(u._stashedText=u.nodeValue,u.nodeValue=""):u.nodeValue=u._stashedText||""),h&&h.nodeType===8)if(u=h.data,u==="/$"){if(s===0)break;s--}else u!=="$"&&u!=="$?"&&u!=="$~"&&u!=="$!"||s++;u=h}while(u)}function df(s){var o=s.firstChild;for(o&&o.nodeType===10&&(o=o.nextSibling);o;){var u=o;switch(o=o.nextSibling,u.nodeName){case"HTML":case"HEAD":case"BODY":df(u),xe(u);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(u.rel.toLowerCase()==="stylesheet")continue}s.removeChild(u)}}function Uw(s,o,u,h){for(;s.nodeType===1;){var v=u;if(s.nodeName.toLowerCase()!==o.toLowerCase()){if(!h&&(s.nodeName!=="INPUT"||s.type!=="hidden"))break}else if(h){if(!s[se])switch(o){case"meta":if(!s.hasAttribute("itemprop"))break;return s;case"link":if(b=s.getAttribute("rel"),b==="stylesheet"&&s.hasAttribute("data-precedence"))break;if(b!==v.rel||s.getAttribute("href")!==(v.href==null||v.href===""?null:v.href)||s.getAttribute("crossorigin")!==(v.crossOrigin==null?null:v.crossOrigin)||s.getAttribute("title")!==(v.title==null?null:v.title))break;return s;case"style":if(s.hasAttribute("data-precedence"))break;return s;case"script":if(b=s.getAttribute("src"),(b!==(v.src==null?null:v.src)||s.getAttribute("type")!==(v.type==null?null:v.type)||s.getAttribute("crossorigin")!==(v.crossOrigin==null?null:v.crossOrigin))&&b&&s.hasAttribute("async")&&!s.hasAttribute("itemprop"))break;return s;default:return s}}else if(o==="input"&&s.type==="hidden"){var b=v.name==null?null:""+v.name;if(v.type==="hidden"&&s.getAttribute("name")===b)return s}else return s;if(s=li(s.nextSibling),s===null)break}return null}function zw(s,o,u){if(o==="")return null;for(;s.nodeType!==3;)if((s.nodeType!==1||s.nodeName!=="INPUT"||s.type!=="hidden")&&!u||(s=li(s.nextSibling),s===null))return null;return s}function j2(s,o){for(;s.nodeType!==8;)if((s.nodeType!==1||s.nodeName!=="INPUT"||s.type!=="hidden")&&!o||(s=li(s.nextSibling),s===null))return null;return s}function Tf(s){return s.data==="$?"||s.data==="$~"}function ff(s){return s.data==="$!"||s.data==="$?"&&s.ownerDocument.readyState!=="loading"}function Ww(s,o){var u=s.ownerDocument;if(s.data==="$~")s._reactRetry=o;else if(s.data!=="$?"||u.readyState!=="loading")o();else{var h=function(){o(),u.removeEventListener("DOMContentLoaded",h)};u.addEventListener("DOMContentLoaded",h),s._reactRetry=h}}function li(s){for(;s!=null;s=s.nextSibling){var o=s.nodeType;if(o===1||o===3)break;if(o===8){if(o=s.data,o==="$"||o==="$!"||o==="$?"||o==="$~"||o==="&"||o==="F!"||o==="F")break;if(o==="/$"||o==="/&")return null}}return s}var hf=null;function F2(s){s=s.nextSibling;for(var o=0;s;){if(s.nodeType===8){var u=s.data;if(u==="/$"||u==="/&"){if(o===0)return li(s.nextSibling);o--}else u!=="$"&&u!=="$!"&&u!=="$?"&&u!=="$~"&&u!=="&"||o++}s=s.nextSibling}return null}function L2(s){s=s.previousSibling;for(var o=0;s;){if(s.nodeType===8){var u=s.data;if(u==="$"||u==="$!"||u==="$?"||u==="$~"||u==="&"){if(o===0)return s;o--}else u!=="/$"&&u!=="/&"||o++}s=s.previousSibling}return null}function P2(s,o,u){switch(o=Al(u),s){case"html":if(s=o.documentElement,!s)throw Error(a(452));return s;case"head":if(s=o.head,!s)throw Error(a(453));return s;case"body":if(s=o.body,!s)throw Error(a(454));return s;default:throw Error(a(451))}}function Tc(s){for(var o=s.attributes;o.length;)s.removeAttributeNode(o[0]);xe(s)}var ui=new Map,_2=new Set;function Rl(s){return typeof s.getRootNode=="function"?s.getRootNode():s.nodeType===9?s:s.ownerDocument}var Es=re.d;re.d={f:Vw,r:Hw,D:Gw,C:Xw,L:Kw,m:$w,X:Zw,S:Yw,M:Jw};function Vw(){var s=Es.f(),o=xl();return s||o}function Hw(s){var o=Fe(s);o!==null&&o.tag===5&&o.type==="form"?tg(o):Es.r(s)}var H0=typeof document>"u"?null:document;function q2(s,o,u){var h=H0;if(h&&typeof o=="string"&&o){var v=bt(o);v='link[rel="'+s+'"][href="'+v+'"]',typeof u=="string"&&(v+='[crossorigin="'+u+'"]'),_2.has(v)||(_2.add(v),s={rel:s,crossOrigin:u,href:o},h.querySelector(v)===null&&(o=h.createElement("link"),na(o,"link",s),Ge(o),h.head.appendChild(o)))}}function Gw(s){Es.D(s),q2("dns-prefetch",s,null)}function Xw(s,o){Es.C(s,o),q2("preconnect",s,o)}function Kw(s,o,u){Es.L(s,o,u);var h=H0;if(h&&s&&o){var v='link[rel="preload"][as="'+bt(o)+'"]';o==="image"&&u&&u.imageSrcSet?(v+='[imagesrcset="'+bt(u.imageSrcSet)+'"]',typeof u.imageSizes=="string"&&(v+='[imagesizes="'+bt(u.imageSizes)+'"]')):v+='[href="'+bt(s)+'"]';var b=v;switch(o){case"style":b=G0(s);break;case"script":b=X0(s)}ui.has(b)||(s=m({rel:"preload",href:o==="image"&&u&&u.imageSrcSet?void 0:s,as:o},u),ui.set(b,s),h.querySelector(v)!==null||o==="style"&&h.querySelector(fc(b))||o==="script"&&h.querySelector(hc(b))||(o=h.createElement("link"),na(o,"link",s),Ge(o),h.head.appendChild(o)))}}function $w(s,o){Es.m(s,o);var u=H0;if(u&&s){var h=o&&typeof o.as=="string"?o.as:"script",v='link[rel="modulepreload"][as="'+bt(h)+'"][href="'+bt(s)+'"]',b=v;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":b=X0(s)}if(!ui.has(b)&&(s=m({rel:"modulepreload",href:s},o),ui.set(b,s),u.querySelector(v)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(u.querySelector(hc(b)))return}h=u.createElement("link"),na(h,"link",s),Ge(h),u.head.appendChild(h)}}}function Yw(s,o,u){Es.S(s,o,u);var h=H0;if(h&&s){var v=Ue(h).hoistableStyles,b=G0(s);o=o||"default";var R=v.get(b);if(!R){var U={loading:0,preload:null};if(R=h.querySelector(fc(b)))U.loading=5;else{s=m({rel:"stylesheet",href:s,"data-precedence":o},u),(u=ui.get(b))&&pf(s,u);var ce=R=h.createElement("link");Ge(ce),na(ce,"link",s),ce._p=new Promise(function(be,Re){ce.onload=be,ce.onerror=Re}),ce.addEventListener("load",function(){U.loading|=1}),ce.addEventListener("error",function(){U.loading|=2}),U.loading|=4,Dl(R,o,h)}R={type:"stylesheet",instance:R,count:1,state:U},v.set(b,R)}}}function Zw(s,o){Es.X(s,o);var u=H0;if(u&&s){var h=Ue(u).hoistableScripts,v=X0(s),b=h.get(v);b||(b=u.querySelector(hc(v)),b||(s=m({src:s,async:!0},o),(o=ui.get(v))&&mf(s,o),b=u.createElement("script"),Ge(b),na(b,"link",s),u.head.appendChild(b)),b={type:"script",instance:b,count:1,state:null},h.set(v,b))}}function Jw(s,o){Es.M(s,o);var u=H0;if(u&&s){var h=Ue(u).hoistableScripts,v=X0(s),b=h.get(v);b||(b=u.querySelector(hc(v)),b||(s=m({src:s,async:!0,type:"module"},o),(o=ui.get(v))&&mf(s,o),b=u.createElement("script"),Ge(b),na(b,"link",s),u.head.appendChild(b)),b={type:"script",instance:b,count:1,state:null},h.set(v,b))}}function B2(s,o,u,h){var v=(v=he.current)?Rl(v):null;if(!v)throw Error(a(446));switch(s){case"meta":case"title":return null;case"style":return typeof u.precedence=="string"&&typeof u.href=="string"?(o=G0(u.href),u=Ue(v).hoistableStyles,h=u.get(o),h||(h={type:"style",instance:null,count:0,state:null},u.set(o,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(u.rel==="stylesheet"&&typeof u.href=="string"&&typeof u.precedence=="string"){s=G0(u.href);var b=Ue(v).hoistableStyles,R=b.get(s);if(R||(v=v.ownerDocument||v,R={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},b.set(s,R),(b=v.querySelector(fc(s)))&&!b._p&&(R.instance=b,R.state.loading=5),ui.has(s)||(u={rel:"preload",as:"style",href:u.href,crossOrigin:u.crossOrigin,integrity:u.integrity,media:u.media,hrefLang:u.hrefLang,referrerPolicy:u.referrerPolicy},ui.set(s,u),b||Qw(v,s,u,R.state))),o&&h===null)throw Error(a(528,""));return R}if(o&&h!==null)throw Error(a(529,""));return null;case"script":return o=u.async,u=u.src,typeof u=="string"&&o&&typeof o!="function"&&typeof o!="symbol"?(o=X0(u),u=Ue(v).hoistableScripts,h=u.get(o),h||(h={type:"script",instance:null,count:0,state:null},u.set(o,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,s))}}function G0(s){return'href="'+bt(s)+'"'}function fc(s){return'link[rel="stylesheet"]['+s+"]"}function U2(s){return m({},s,{"data-precedence":s.precedence,precedence:null})}function Qw(s,o,u,h){s.querySelector('link[rel="preload"][as="style"]['+o+"]")?h.loading=1:(o=s.createElement("link"),h.preload=o,o.addEventListener("load",function(){return h.loading|=1}),o.addEventListener("error",function(){return h.loading|=2}),na(o,"link",u),Ge(o),s.head.appendChild(o))}function X0(s){return'[src="'+bt(s)+'"]'}function hc(s){return"script[async]"+s}function z2(s,o,u){if(o.count++,o.instance===null)switch(o.type){case"style":var h=s.querySelector('style[data-href~="'+bt(u.href)+'"]');if(h)return o.instance=h,Ge(h),h;var v=m({},u,{"data-href":u.href,"data-precedence":u.precedence,href:null,precedence:null});return h=(s.ownerDocument||s).createElement("style"),Ge(h),na(h,"style",v),Dl(h,u.precedence,s),o.instance=h;case"stylesheet":v=G0(u.href);var b=s.querySelector(fc(v));if(b)return o.state.loading|=4,o.instance=b,Ge(b),b;h=U2(u),(v=ui.get(v))&&pf(h,v),b=(s.ownerDocument||s).createElement("link"),Ge(b);var R=b;return R._p=new Promise(function(U,ce){R.onload=U,R.onerror=ce}),na(b,"link",h),o.state.loading|=4,Dl(b,u.precedence,s),o.instance=b;case"script":return b=X0(u.src),(v=s.querySelector(hc(b)))?(o.instance=v,Ge(v),v):(h=u,(v=ui.get(b))&&(h=m({},u),mf(h,v)),s=s.ownerDocument||s,v=s.createElement("script"),Ge(v),na(v,"link",h),s.head.appendChild(v),o.instance=v);case"void":return null;default:throw Error(a(443,o.type))}else o.type==="stylesheet"&&(o.state.loading&4)===0&&(h=o.instance,o.state.loading|=4,Dl(h,u.precedence,s));return o.instance}function Dl(s,o,u){for(var h=u.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),v=h.length?h[h.length-1]:null,b=v,R=0;R<h.length;R++){var U=h[R];if(U.dataset.precedence===o)b=U;else if(b!==v)break}b?b.parentNode.insertBefore(s,b.nextSibling):(o=u.nodeType===9?u.head:u,o.insertBefore(s,o.firstChild))}function pf(s,o){s.crossOrigin==null&&(s.crossOrigin=o.crossOrigin),s.referrerPolicy==null&&(s.referrerPolicy=o.referrerPolicy),s.title==null&&(s.title=o.title)}function mf(s,o){s.crossOrigin==null&&(s.crossOrigin=o.crossOrigin),s.referrerPolicy==null&&(s.referrerPolicy=o.referrerPolicy),s.integrity==null&&(s.integrity=o.integrity)}var Il=null;function W2(s,o,u){if(Il===null){var h=new Map,v=Il=new Map;v.set(u,h)}else v=Il,h=v.get(u),h||(h=new Map,v.set(u,h));if(h.has(s))return h;for(h.set(s,null),u=u.getElementsByTagName(s),v=0;v<u.length;v++){var b=u[v];if(!(b[se]||b[G]||s==="link"&&b.getAttribute("rel")==="stylesheet")&&b.namespaceURI!=="http://www.w3.org/2000/svg"){var R=b.getAttribute(o)||"";R=s+R;var U=h.get(R);U?U.push(b):h.set(R,[b])}}return h}function V2(s,o,u){s=s.ownerDocument||s,s.head.insertBefore(u,o==="title"?s.querySelector("head > title"):null)}function e8(s,o,u){if(u===1||o.itemProp!=null)return!1;switch(s){case"meta":case"title":return!0;case"style":if(typeof o.precedence!="string"||typeof o.href!="string"||o.href==="")break;return!0;case"link":if(typeof o.rel!="string"||typeof o.href!="string"||o.href===""||o.onLoad||o.onError)break;return o.rel==="stylesheet"?(s=o.disabled,typeof o.precedence=="string"&&s==null):!0;case"script":if(o.async&&typeof o.async!="function"&&typeof o.async!="symbol"&&!o.onLoad&&!o.onError&&o.src&&typeof o.src=="string")return!0}return!1}function H2(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function t8(s,o,u,h){if(u.type==="stylesheet"&&(typeof h.media!="string"||matchMedia(h.media).matches!==!1)&&(u.state.loading&4)===0){if(u.instance===null){var v=G0(h.href),b=o.querySelector(fc(v));if(b){o=b._p,o!==null&&typeof o=="object"&&typeof o.then=="function"&&(s.count++,s=Nl.bind(s),o.then(s,s)),u.state.loading|=4,u.instance=b,Ge(b);return}b=o.ownerDocument||o,h=U2(h),(v=ui.get(v))&&pf(h,v),b=b.createElement("link"),Ge(b);var R=b;R._p=new Promise(function(U,ce){R.onload=U,R.onerror=ce}),na(b,"link",h),u.instance=b}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(u,o),(o=u.state.preload)&&(u.state.loading&3)===0&&(s.count++,u=Nl.bind(s),o.addEventListener("load",u),o.addEventListener("error",u))}}var gf=0;function n8(s,o){return s.stylesheets&&s.count===0&&Ml(s,s.stylesheets),0<s.count||0<s.imgCount?function(u){var h=setTimeout(function(){if(s.stylesheets&&Ml(s,s.stylesheets),s.unsuspend){var b=s.unsuspend;s.unsuspend=null,b()}},6e4+o);0<s.imgBytes&&gf===0&&(gf=62500*Lw());var v=setTimeout(function(){if(s.waitingForImages=!1,s.count===0&&(s.stylesheets&&Ml(s,s.stylesheets),s.unsuspend)){var b=s.unsuspend;s.unsuspend=null,b()}},(s.imgBytes>gf?50:800)+o);return s.unsuspend=u,function(){s.unsuspend=null,clearTimeout(h),clearTimeout(v)}}:null}function Nl(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ml(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Ol=null;function Ml(s,o){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Ol=new Map,o.forEach(a8,s),Ol=null,Nl.call(s))}function a8(s,o){if(!(o.state.loading&4)){var u=Ol.get(s);if(u)var h=u.get(null);else{u=new Map,Ol.set(s,u);for(var v=s.querySelectorAll("link[data-precedence],style[data-precedence]"),b=0;b<v.length;b++){var R=v[b];(R.nodeName==="LINK"||R.getAttribute("media")!=="not all")&&(u.set(R.dataset.precedence,R),h=R)}h&&u.set(null,h)}v=o.instance,R=v.getAttribute("data-precedence"),b=u.get(R)||h,b===h&&u.set(null,v),u.set(R,v),this.count++,h=Nl.bind(this),v.addEventListener("load",h),v.addEventListener("error",h),b?b.parentNode.insertBefore(v,b.nextSibling):(s=s.nodeType===9?s.head:s,s.insertBefore(v,s.firstChild)),o.state.loading|=4}}var pc={$$typeof:E,Provider:null,Consumer:null,_currentValue:me,_currentValue2:me,_threadCount:0};function i8(s,o,u,h,v,b,R,U,ce){this.tag=1,this.containerInfo=s,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ba(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ba(0),this.hiddenUpdates=ba(null),this.identifierPrefix=h,this.onUncaughtError=v,this.onCaughtError=b,this.onRecoverableError=R,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=ce,this.incompleteTransitions=new Map}function G2(s,o,u,h,v,b,R,U,ce,be,Re,Ie){return s=new i8(s,o,u,R,ce,be,Re,Ie,U),o=1,b===!0&&(o|=24),b=Va(3,null,null,o),s.current=b,b.stateNode=s,o=$d(),o.refCount++,s.pooledCache=o,o.refCount++,b.memoizedState={element:h,isDehydrated:u,cache:o},Qd(b),s}function X2(s){return s?(s=C0,s):C0}function K2(s,o,u,h,v,b){v=X2(v),h.context===null?h.context=v:h.pendingContext=v,h=zs(o),h.payload={element:u},b=b===void 0?null:b,b!==null&&(h.callback=b),u=Ws(s,h,o),u!==null&&(_a(u,s,o),Xo(u,s,o))}function $2(s,o){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var u=s.retryLane;s.retryLane=u!==0&&u<o?u:o}}function vf(s,o){$2(s,o),(s=s.alternate)&&$2(s,o)}function Y2(s){if(s.tag===13||s.tag===31){var o=kr(s,67108864);o!==null&&_a(o,s,67108864),vf(s,67108864)}}function Z2(s){if(s.tag===13||s.tag===31){var o=$a();o=Pn(o);var u=kr(s,o);u!==null&&_a(u,s,o),vf(s,o)}}var jl=!0;function s8(s,o,u,h){var v=F.T;F.T=null;var b=re.p;try{re.p=2,xf(s,o,u,h)}finally{re.p=b,F.T=v}}function r8(s,o,u,h){var v=F.T;F.T=null;var b=re.p;try{re.p=8,xf(s,o,u,h)}finally{re.p=b,F.T=v}}function xf(s,o,u,h){if(jl){var v=yf(h);if(v===null)sf(s,o,h,Fl,u),Q2(s,h);else if(c8(v,s,o,u,h))h.stopPropagation();else if(Q2(s,h),o&4&&-1<o8.indexOf(s)){for(;v!==null;){var b=Fe(v);if(b!==null)switch(b.tag){case 3:if(b=b.stateNode,b.current.memoizedState.isDehydrated){var R=Vt(b.pendingLanes);if(R!==0){var U=b;for(U.pendingLanes|=2,U.entangledLanes|=2;R;){var ce=1<<31-Qe(R);U.entanglements[1]|=ce,R&=~ce}Wi(b),(Ht&6)===0&&(gl=dt()+500,lc(0))}}break;case 31:case 13:U=kr(b,2),U!==null&&_a(U,b,2),xl(),vf(b,2)}if(b=yf(h),b===null&&sf(s,o,h,Fl,u),b===v)break;v=b}v!==null&&h.stopPropagation()}else sf(s,o,h,null,u)}}function yf(s){return s=Do(s),Sf(s)}var Fl=null;function Sf(s){if(Fl=null,s=Ae(s),s!==null){var o=r(s);if(o===null)s=null;else{var u=o.tag;if(u===13){if(s=c(o),s!==null)return s;s=null}else if(u===31){if(s=l(o),s!==null)return s;s=null}else if(u===3){if(o.stateNode.current.memoizedState.isDehydrated)return o.tag===3?o.stateNode.containerInfo:null;s=null}else o!==s&&(s=null)}}return Fl=s,null}function J2(s){switch(s){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(jt()){case Gt:return 2;case ln:return 8;case Et:case _t:return 32;case pe:return 268435456;default:return 32}default:return 32}}var bf=!1,er=null,tr=null,nr=null,mc=new Map,gc=new Map,ar=[],o8="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Q2(s,o){switch(s){case"focusin":case"focusout":er=null;break;case"dragenter":case"dragleave":tr=null;break;case"mouseover":case"mouseout":nr=null;break;case"pointerover":case"pointerout":mc.delete(o.pointerId);break;case"gotpointercapture":case"lostpointercapture":gc.delete(o.pointerId)}}function vc(s,o,u,h,v,b){return s===null||s.nativeEvent!==b?(s={blockedOn:o,domEventName:u,eventSystemFlags:h,nativeEvent:b,targetContainers:[v]},o!==null&&(o=Fe(o),o!==null&&Y2(o)),s):(s.eventSystemFlags|=h,o=s.targetContainers,v!==null&&o.indexOf(v)===-1&&o.push(v),s)}function c8(s,o,u,h,v){switch(o){case"focusin":return er=vc(er,s,o,u,h,v),!0;case"dragenter":return tr=vc(tr,s,o,u,h,v),!0;case"mouseover":return nr=vc(nr,s,o,u,h,v),!0;case"pointerover":var b=v.pointerId;return mc.set(b,vc(mc.get(b)||null,s,o,u,h,v)),!0;case"gotpointercapture":return b=v.pointerId,gc.set(b,vc(gc.get(b)||null,s,o,u,h,v)),!0}return!1}function ev(s){var o=Ae(s.target);if(o!==null){var u=r(o);if(u!==null){if(o=u.tag,o===13){if(o=c(u),o!==null){s.blockedOn=o,ne(s.priority,function(){Z2(u)});return}}else if(o===31){if(o=l(u),o!==null){s.blockedOn=o,ne(s.priority,function(){Z2(u)});return}}else if(o===3&&u.stateNode.current.memoizedState.isDehydrated){s.blockedOn=u.tag===3?u.stateNode.containerInfo:null;return}}}s.blockedOn=null}function Ll(s){if(s.blockedOn!==null)return!1;for(var o=s.targetContainers;0<o.length;){var u=yf(s.nativeEvent);if(u===null){u=s.nativeEvent;var h=new u.constructor(u.type,u);g0=h,u.target.dispatchEvent(h),g0=null}else return o=Fe(u),o!==null&&Y2(o),s.blockedOn=u,!1;o.shift()}return!0}function tv(s,o,u){Ll(s)&&u.delete(o)}function l8(){bf=!1,er!==null&&Ll(er)&&(er=null),tr!==null&&Ll(tr)&&(tr=null),nr!==null&&Ll(nr)&&(nr=null),mc.forEach(tv),gc.forEach(tv)}function Pl(s,o){s.blockedOn===o&&(s.blockedOn=null,bf||(bf=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,l8)))}var _l=null;function nv(s){_l!==s&&(_l=s,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){_l===s&&(_l=null);for(var o=0;o<s.length;o+=3){var u=s[o],h=s[o+1],v=s[o+2];if(typeof h!="function"){if(Sf(h||u)===null)continue;break}var b=Fe(u);b!==null&&(s.splice(o,3),o-=3,xT(b,{pending:!0,data:v,method:u.method,action:h},h,v))}}))}function K0(s){function o(ce){return Pl(ce,s)}er!==null&&Pl(er,s),tr!==null&&Pl(tr,s),nr!==null&&Pl(nr,s),mc.forEach(o),gc.forEach(o);for(var u=0;u<ar.length;u++){var h=ar[u];h.blockedOn===s&&(h.blockedOn=null)}for(;0<ar.length&&(u=ar[0],u.blockedOn===null);)ev(u),u.blockedOn===null&&ar.shift();if(u=(s.ownerDocument||s).$$reactFormReplay,u!=null)for(h=0;h<u.length;h+=3){var v=u[h],b=u[h+1],R=v[Q]||null;if(typeof b=="function")R||nv(u);else if(R){var U=null;if(b&&b.hasAttribute("formAction")){if(v=b,R=b[Q]||null)U=R.formAction;else if(Sf(v)!==null)continue}else U=R.action;typeof U=="function"?u[h+1]=U:(u.splice(h,3),h-=3),nv(u)}}}function av(){function s(b){b.canIntercept&&b.info==="react-transition"&&b.intercept({handler:function(){return new Promise(function(R){return v=R})},focusReset:"manual",scroll:"manual"})}function o(){v!==null&&(v(),v=null),h||setTimeout(u,20)}function u(){if(!h&&!navigation.transition){var b=navigation.currentEntry;b&&b.url!=null&&navigation.navigate(b.url,{state:b.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var h=!1,v=null;return navigation.addEventListener("navigate",s),navigation.addEventListener("navigatesuccess",o),navigation.addEventListener("navigateerror",o),setTimeout(u,100),function(){h=!0,navigation.removeEventListener("navigate",s),navigation.removeEventListener("navigatesuccess",o),navigation.removeEventListener("navigateerror",o),v!==null&&(v(),v=null)}}}function wf(s){this._internalRoot=s}ql.prototype.render=wf.prototype.render=function(s){var o=this._internalRoot;if(o===null)throw Error(a(409));var u=o.current,h=$a();K2(u,h,s,o,null,null)},ql.prototype.unmount=wf.prototype.unmount=function(){var s=this._internalRoot;if(s!==null){this._internalRoot=null;var o=s.containerInfo;K2(s.current,2,null,s,null,null),xl(),o[ie]=null}};function ql(s){this._internalRoot=s}ql.prototype.unstable_scheduleHydration=function(s){if(s){var o=q();s={blockedOn:null,target:s,priority:o};for(var u=0;u<ar.length&&o!==0&&o<ar[u].priority;u++);ar.splice(u,0,s),u===0&&ev(s)}};var iv=t.version;if(iv!=="19.2.4")throw Error(a(527,iv,"19.2.4"));re.findDOMNode=function(s){var o=s._reactInternals;if(o===void 0)throw typeof s.render=="function"?Error(a(188)):(s=Object.keys(s).join(","),Error(a(268,s)));return s=T(o),s=s!==null?p(s):null,s=s===null?null:s.stateNode,s};var u8={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:F,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bl.isDisabled&&Bl.supportsFiber)try{rt=Bl.inject(u8),Ye=Bl}catch{}}return yc.createRoot=function(s,o){if(!i(s))throw Error(a(299));var u=!1,h="",v=dg,b=Tg,R=fg;return o!=null&&(o.unstable_strictMode===!0&&(u=!0),o.identifierPrefix!==void 0&&(h=o.identifierPrefix),o.onUncaughtError!==void 0&&(v=o.onUncaughtError),o.onCaughtError!==void 0&&(b=o.onCaughtError),o.onRecoverableError!==void 0&&(R=o.onRecoverableError)),o=G2(s,1,!1,null,null,u,h,null,v,b,R,av),s[ie]=o.current,af(s),new wf(o)},yc.hydrateRoot=function(s,o,u){if(!i(s))throw Error(a(299));var h=!1,v="",b=dg,R=Tg,U=fg,ce=null;return u!=null&&(u.unstable_strictMode===!0&&(h=!0),u.identifierPrefix!==void 0&&(v=u.identifierPrefix),u.onUncaughtError!==void 0&&(b=u.onUncaughtError),u.onCaughtError!==void 0&&(R=u.onCaughtError),u.onRecoverableError!==void 0&&(U=u.onRecoverableError),u.formState!==void 0&&(ce=u.formState)),o=G2(s,1,!0,o,u??null,h,v,ce,b,R,U,av),o.context=X2(null),u=o.current,h=$a(),h=Pn(h),v=zs(h),v.callback=null,Ws(u,v,h),u=h,o.current.lanes=u,Wn(o,u),Wi(o),s[ie]=o.current,af(s),new ql(o)},yc.version="19.2.4",yc}var hv;function x8(){if(hv)return kf.exports;hv=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),kf.exports=v8(),kf.exports}var y8=x8();const S8="/api/v1",b8="X-Assessor-Request";class w8 extends Error{constructor(t,n,a,i){super(t),this.status=n,this.code=a,this.requestId=i,this.name="AssessorApiError"}status;code;requestId}function Lh(e){let n="";for(let a=0;a<e.length;a+=32768)n+=String.fromCharCode(...e.subarray(a,a+32768));return btoa(n)}async function pv(e,t){const n=new Uint8Array(await e.arrayBuffer());return{fileName:e.name,sizeBytes:e.size,lastModified:e.lastModified,mediaType:e.type||void 0,bytesBase64:Lh(n),delimiter:t}}function If(e,t={}){const n=new URLSearchParams;Object.entries(t).forEach(([i,r])=>{r!==void 0&&(Array.isArray(r)?r.forEach(c=>n.append(i,String(c))):n.set(i,String(r)))});const a=n.toString();return a?`${e}?${a}`:e}class qi{baseUrl;fetcher;constructor(t={}){this.baseUrl=(t.baseUrl??S8).replace(/\/$/,""),this.fetcher=t.fetcher??globalThis.fetch.bind(globalThis)}async request(t,n={}){const a=new Headers(n.headers);a.set("Accept","application/json"),n.body!==void 0&&a.set("Content-Type","application/json"),n.method&&n.method!=="GET"&&a.set(b8,"1");const i=await this.fetcher(`${this.baseUrl}${t}`,{...n,headers:a}),r=await i.json().catch(()=>null);if(!i.ok){const c=r&&typeof r=="object"&&"error"in r?r.error:void 0;throw new w8(c?.message??`API-Anfrage fehlgeschlagen (${i.status}).`,i.status,c?.code??"api_error",c?.requestId)}return r}health(){return this.request("/health")}getDatabaseStructure(){return this.request("/db-structure")}listProjects(){return this.request("/projects")}saveProject(t){return this.request("/projects",{method:"POST",body:JSON.stringify(t)})}getProject(t){return this.request(`/projects/${encodeURIComponent(t)}`)}exportProject(t){return this.request(`/projects/${encodeURIComponent(t)}/export`)}listProjectImportFiles(t){return this.request(`/projects/${encodeURIComponent(t)}/import-files`)}listProjectAssessmentHistory(t){return this.request(`/projects/${encodeURIComponent(t)}/assessment-history`)}saveAssessment(t){return this.request("/assessments",{method:"POST",body:JSON.stringify(t)})}listProjectAssessments(t){return this.request(`/projects/${encodeURIComponent(t)}/assessments`)}loadAssessmentModel(t){return this.request(`/assessments/${encodeURIComponent(t)}/model`)}listProjectReviews(t){return this.request(`/projects/${encodeURIComponent(t)}/reviews`)}saveReview(t,n){return this.request("/reviews",{method:"POST",body:JSON.stringify({review:t,expectedRevision:n})})}recordRiskAcceptance(t,n,a,i){return this.request(`/projects/${encodeURIComponent(t)}/risk-acceptances`,{method:"POST",body:JSON.stringify({occurrenceId:n,command:a,expectedRevision:i})})}queryUnifiedResults(t={}){return this.request(If("/results",t))}queryUnifiedResultFacets(t={}){return this.request(If("/results/facets",t))}getUnifiedResultById(t){return this.request(`/results/${encodeURIComponent(t)}`)}listResultCategories(t={}){return this.request(If("/results/categories",t))}deleteProject(t){return this.request(`/projects/${encodeURIComponent(t)}`,{method:"DELETE",body:JSON.stringify({projectId:t,cascade:!0})})}getEnvironmentSnapshot(t){const n=new URLSearchParams;t.assessmentId&&n.set("assessmentId",t.assessmentId),t.scanRunIds?.forEach(i=>n.append("scanRunIds",i));const a=n.size?`?${n.toString()}`:"";return this.request(`/projects/${encodeURIComponent(t.projectId)}/environment-snapshot${a}`)}deleteAssessment(t,n){return this.request(`/projects/${encodeURIComponent(t)}/assessments/${encodeURIComponent(n)}`,{method:"DELETE",body:JSON.stringify({projectId:t,assessmentId:n,cascade:!0})})}deleteScanRun(t,n){return this.request(`/projects/${encodeURIComponent(t)}/scan-runs/${encodeURIComponent(n)}`,{method:"DELETE",body:JSON.stringify({projectId:t,scanRunId:n,cascade:!0})})}evaluateGpoBackup(t,n){return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups/${encodeURIComponent(n)}/evaluate`,{method:"POST",body:JSON.stringify({})})}async submitGpoBackup(t,n,a,i){const r=new Uint8Array(await n.arrayBuffer());return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups`,{method:"POST",body:JSON.stringify({fileName:n.name,sizeBytes:n.size,bytesBase64:Lh(r),assessmentId:a,restoreArtifactId:i})})}listProjectGpoBackupStatus(t){return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups/status`)}retryGpoBackup(t,n){return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups/${encodeURIComponent(n)}/retry`,{method:"POST",body:JSON.stringify({})})}reprocessGpoBackup(t,n,a){return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups/${encodeURIComponent(n)}/reprocess`,{method:"POST",body:JSON.stringify({expectedLatestProcessingRunId:a})})}listProjectGpoPolicyAnalyses(t){return this.request(`/projects/${encodeURIComponent(t)}/policy-analyses`)}listEnvironmentProfiles(t){return this.request("/projects/"+encodeURIComponent(t)+"/environment-profiles")}createEnvironmentProfile(t,n){return this.request("/projects/"+encodeURIComponent(t)+"/environment-profiles",{method:"POST",body:JSON.stringify(n)})}listPolicySnapshotAggregations(t){return this.request("/projects/"+encodeURIComponent(t)+"/policy-snapshot-aggregations")}aggregatePolicySnapshot(t,n){return this.request("/projects/"+encodeURIComponent(t)+"/policy-snapshot-aggregations",{method:"POST",body:JSON.stringify(n)})}listPolicyEvaluations(t){return this.request("/projects/"+encodeURIComponent(t)+"/policy-evaluations")}evaluatePolicy(t,n){return this.request("/projects/"+encodeURIComponent(t)+"/policy-evaluations",{method:"POST",body:JSON.stringify(n)})}listPolicyFindingRuns(t){return this.request("/projects/"+encodeURIComponent(t)+"/policy-finding-runs")}createPolicyFindingRun(t,n){return this.request("/projects/"+encodeURIComponent(t)+"/policy-finding-runs",{method:"POST",body:JSON.stringify(n)})}getPolicyAnalysisOverview(t){return this.request("/projects/"+encodeURIComponent(t)+"/policy-analysis-overview")}deleteGpoBackup(t,n){return this.request(`/projects/${encodeURIComponent(t)}/gpo-backups/${encodeURIComponent(n)}`,{method:"DELETE",body:JSON.stringify({artifactId:n,confirmDelete:!0})})}getPolicyEvaluationRuleCatalog(){return this.request("/reference-data/policy-evaluation-rule-catalog")}listMicrosoftSecurityBaselines(){return this.request("/reference-data/microsoft-security-baselines")}async submitMicrosoftSecurityBaseline(t){const n=new Uint8Array(await t.arrayBuffer());return this.request("/reference-data/microsoft-security-baselines",{method:"POST",body:JSON.stringify({fileName:t.name,sizeBytes:t.size,bytesBase64:Lh(n)})})}adoptScanRunReplacement(t,n,a){return this.request(`/projects/${encodeURIComponent(t)}/scan-runs/${encodeURIComponent(n)}/adopt-replacement`,{method:"POST",body:JSON.stringify({replacementScanRunId:a})})}deleteMicrosoftSecurityBaseline(t){return this.request(`/reference-data/microsoft-security-baselines/${encodeURIComponent(t)}`,{method:"DELETE",body:JSON.stringify({confirmDelete:!0})})}listMicrosoftSecurityBaselineAnalyses(t){return this.request(`/reference-data/microsoft-security-baselines/${encodeURIComponent(t)}/analysis`)}reprocessMicrosoftSecurityBaseline(t){return this.request(`/reference-data/microsoft-security-baselines/${encodeURIComponent(t)}/reprocess`,{method:"POST",body:JSON.stringify({})})}selectMicrosoftSecurityBaseline(t){return this.request("/reference-data/microsoft-security-baselines/select",{method:"POST",body:JSON.stringify(t)})}async importFile(t,n){return this.request("/import-sources/parse",{method:"POST",body:JSON.stringify(await pv(t,n))})}async previewImportBatch(t,n,a,i,r){const c=await Promise.all(t.map(l=>pv(l,n)));return this.request("/import-batches/preview",{method:"POST",body:JSON.stringify({files:c,targetProjectId:a,targetAssessmentId:i,replacesScanRunId:r})})}completeImportBatch(t,n,a,i,r){return this.request("/import-batches/complete",{method:"POST",body:JSON.stringify({batchId:t,entries:n,targetProjectId:a,targetAssessmentId:i,replacesScanRunId:r})})}}const hr=()=>({riskAcceptance:void 0,include:!1,status:"Open",priority:"Medium",owner:"",due:"",prerequisites:"",access:"",nextStep:"",evidence:"",comment:"",markerQuestion:!1,markerBlocked:!1,markerQuickwin:!1,markerExternal:!1,markerNotRelevant:!1});async function C8(e){return{metadata:{name:e.name,sizeBytes:e.size,lastModified:e.lastModified,...e.type?{mediaType:e.type}:{}},bytes:new Uint8Array(await e.arrayBuffer())}}class Ia extends Error{constructor(t,n=[],a){super(t,a),this.diagnostics=n,this.name="ImportError"}diagnostics}function sd(e,t=!1){const n=[];let a=0,i=0;for(;(i=e.indexOf("<",i))>=0;){if(e.startsWith("<!--",i)){const S=e.indexOf("-->",i+4);i=S<0?e.length:S+3;continue}const r=/^<\/?([a-z][\w:-]*)(?=[\s/>])/i.exec(e.slice(i,i+256));if(!r){i++;continue}const c=i,l=n.length,f=a;let T="",p=!1,m=!1,g=!1;for(i+=r[0].length;i<e.length;i++){const S=e[i];if(T)S===T?T="":(S==="<"||S===">")&&(n.push(e.slice(a,i),S==="<"?"<":">"),a=i+1);else if(S===">"){i++,g=!0;break}else if(m)/\s/.test(S)&&(m=!1);else if(p){if(/\s/.test(S))continue;p=!1,S==='"'||S==="'"?T=S:m=!0}else S==="="&&(p=!0)}if(!g&&t)return n.slice(0,l).join("")+e.slice(f,c);if(!g&&T)throw new Ia("HTML enthält ein nicht abgeschlossenes Attribut.",[{severity:"error",code:"html-unclosed-attribute",stage:"structure-decoding",message:"Eine Attributzeichenkette endet nicht innerhalb des HTML-Dokuments."}]);if(e[c+1]!=="/"&&/^(script|style|textarea|title|xmp|iframe|noembed|noframes)$/i.test(r[1])){const S=new RegExp("</"+r[1]+"\\s*>","ig");S.lastIndex=i;const x=S.exec(e);i=x?x.index+x[0].length:e.length}}return n.length?n.join("")+e.slice(a):e}function*Cp(e){let t=0;for(;t<e.length;){if(/[\s/=>]/.test(e[t])){t++;continue}const n=t;for(;t<e.length&&!/[\s/=>]/.test(e[t]);)t++;const a=e.slice(n,t).toLowerCase(),i=t;for(;t<e.length&&/\s/.test(e[t]);)t++;let r;if(e[t]==="="){for(t++;t<e.length&&/\s/.test(e[t]);)t++;const c=e[t];if(c==='"'||c==="'"){const l=++t;for(;t<e.length&&e[t]!==c;)t++;r=e.slice(l,t),t<e.length&&t++}else{const l=t;for(;t<e.length&&!/[\s>]/.test(e[t]);)t++;r=e.slice(l,t)}}yield{name:a,value:r,start:n,end:r===void 0?i:t}}}function Kr(e,t){const n=t.toLowerCase();for(const a of Cp(e))if(a.name===n&&a.value!==void 0)return a.value;return""}const E8=1*1024*1024,Ep=10001,Iu=250001,Nu=500001,mv=1e5,k8=new Set(["SCRIPT","STYLE","IFRAME","OBJECT","EMBED","SVG","LINK","META","BASE","FORM","INPUT","BUTTON","TEXTAREA","SELECT","TEMPLATE","CANVAS","AUDIO","VIDEO","SOURCE"]),A8=new Set(["ADDRESS","ARTICLE","ASIDE","BLOCKQUOTE","BR","DIV","DL","FIELDSET","FIGCAPTION","FIGURE","FOOTER","H1","H2","H3","H4","H5","H6","HEADER","HR","LI","MAIN","NAV","OL","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"]),R8=/^(?:on.*|srcdoc|src|action|formaction|xlink:href)$/i,D8=/^https?:\/\/[^\s"'<>]+$/i;function g1(e){return D8.test(e.trim())}function t1(e){return e.replace(/[&<>"]/g,t=>t==="&"?"&":t==="<"?"<":t===">"?">":""")}function I8(e){return e.length>E8}function N8(e){return e instanceof RangeError||e instanceof Error&&/maximum call stack|stack overflow/i.test(e.message)}function kp(e){return e.replace(/\s+/g," ").trim()}function v1(e){const t={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:'"'};return e.replace(/&(?:#(\d+)|#x([\da-f]+)|([a-z][\da-z]+));/gi,(n,a,i,r)=>{if(a||i){const c=Number.parseInt(a??i,a?10:16);if(Number.isInteger(c)&&c>=0&&c<=1114111)try{return String.fromCodePoint(c)}catch{return n}return n}return t[String(r).toLocaleLowerCase("en-US")]??n})}function Nf(e,t=!1,n=!1){const a=[],i=[{node:e,closing:!1}];for(;i.length;){const r=i.pop(),c=r.node;if(c.nodeType===3||c.nodeType===4){const m=c.nodeValue??"";a.push(n?t1(m):m);continue}if(c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11)continue;const l=c.nodeType===1?c:null,f=t&&!!(l&&A8.has(l.tagName.toLocaleUpperCase("en-US"))),T=n&&l&&l.tagName.toLocaleUpperCase("en-US")==="A"?l.getAttribute("href")??"":"",p=!!T&&g1(T);if(r.closing){p&&a.push("</a>"),f&&a.push(`
|
||
`);continue}f&&a.push(`
|
||
`),p&&a.push(`<a href="${t1(T.trim())}">`),i.push({node:c,closing:!0});for(let m=c.lastChild;m;m=m.previousSibling)i.push({node:m,closing:!1})}return t?a.join(""):kp(a.join(" "))}function O8(e){const t=e.documentElement;if(!t)return 0;let n=0;const a=[t];for(;a.length;){const i=a.pop();if(k8.has(i.tagName.toLocaleUpperCase("en-US"))){i.remove(),n+=1;continue}for(let r=i.attributes.length-1;r>=0;r-=1){const c=i.attributes.item(r);if(!c)continue;const l=c.name.toLocaleLowerCase("en-US")==="href";!(l&&i.tagName.toLocaleUpperCase("en-US")==="A"&&g1(c.value??""))&&(l||R8.test(c.name))&&(i.removeAttribute(c.name),n+=1)}for(let r=i.lastElementChild;r;r=r.previousElementSibling)a.push(r)}return n}const gv=1e3;function Ky(e){const t=new Map;return e.map(n=>{const a=[],i=[];let r=0;for(const c of n){for(;t.has(r)&&t.get(r).remaining>0;){const T=t.get(r);a[r]=T.text,i[r]=T.selector,T.remaining-=1,T.remaining<=0&&t.delete(r),r+=1}const l=Math.min(Math.max(c.colSpan,1),gv),f=Math.min(Math.max(c.rowSpan,1),gv);for(let T=0;T<l;T+=1)a[r]=c.text,i[r]=c.selector,f>1&&t.set(r,{remaining:f-1,text:c.text,selector:c.selector}),r+=1}for(;t.has(r)&&t.get(r).remaining>0;){const c=t.get(r);a[r]=c.text,i[r]=c.selector,c.remaining-=1,c.remaining<=0&&t.delete(r),r+=1}return{values:a,selectors:i}})}function Ap(e){const t=[];for(const n of e.split(/\r\n|\r|\n/)){const a=kp(n);if(a){for(let i=0;i<a.length&&t.length<Iu;i+=mv)t.push([a.slice(i,i+mv)]);if(t.length>=Iu)break}}return t}function M8(e){const t=O8(e),n=[],a=e.getElementsByTagName("table"),i=Math.min(a.length,Ep);let r=0;for(let f=0;f<i&&r<Nu;f+=1){const T=a.item(f);if(!T)continue;const p=T.caption?Nf(T.caption):"",m=T.getAttribute("aria-label")?.trim()??"",g=p||T.id||m||`Tabelle ${f+1}`,S=Math.min(T.rows.length,Iu),x=[],y=[];for(let O=0;O<S&&r<Nu;O+=1){const N=T.rows.item(O);if(!N||!N.cells.length)continue;const B=[];for(let A=0;A<N.cells.length;A+=1){const z=N.cells.item(A);B.push({text:z?Nf(z,!1,!0):"",colSpan:z?.colSpan??1,rowSpan:z?.rowSpan??1,selector:`table:nth-of-type(${f+1}) tr:nth-of-type(${O+1}) > :nth-child(${A+1})`})}x.push(B),y.push($y(N.className??"")),r+=1}const w=Ky(x),C=w.map(O=>O.values),k=w.map(O=>O.selectors),E={kind:"html-table"};p&&(E.caption=p),T.id&&(E.elementId=T.id),m&&(E.ariaLabel=m),n.push({name:g,rows:C,cellSelectors:k,attributes:E,highlightedRows:y})}const c=Nf(e.body??e.documentElement,!0),l=n.length?[]:Ap(c);return{tables:n,fallbackRows:l,documentText:c,removedContentCount:t,extractionMode:"dom"}}function wo(e){let t=0,n=sd(e).replace(/<(script|style|iframe|object|embed|svg|form|template|canvas|audio|video)\b[^>]*>[\s\S]*?<\/\1\s*>/gi,()=>(t+=1," "));return n=n.replace(/<(?:script|style|iframe|object|embed|svg|link|meta|base|form|input|button|textarea|select|template|canvas|audio|video|source)\b[^>]*\/?>/gi,()=>(t+=1," ")),n=n.replace(/(<\/?[a-z][\w:-]*)([^>]*)(>)/gi,(a,i,r,c)=>{const l=[i];let f=0;for(const T of Cp(r)){const{name:p,value:m,start:g,end:S}=T;let x;if(/^(?:on[\w:-]*|srcdoc|src|action|formaction|xlink:href)$/.test(p))t+=1,x="";else if(p==="href"){const y=v1(m??"").trim();g1(y)?x=`href="${t1(y)}"`:(t+=1,x="")}x!==void 0&&(l.push(r.slice(f,g),x),f=S)}return l.push(r.slice(f),c),l.join("")}),n=n.replace(/<!--[\s\S]*?-->/g," "),{text:n,removedContentCount:t}}function Sc(e,t){return v1(Kr(e,t)).trim()}function $y(e){return/(?:^|\s)evaluated(?:$|\s)/i.test(e)}function sn(e){return kp(v1(sd(e,!0).replace(/<!--[\s\S]*?-->/g," ").replace(/<[^>]*>/g," ")))}const j8=Ep*4;function rd(e){const t=/<table\b([^>]*)>|<\/table\s*>/gi,n=[],a=[];let i;for(;a.length<j8&&(i=t.exec(e));){if(!(i[0].charCodeAt(1)===47)){const l={start:i.index,attributesText:i[1]??"",bodyStart:t.lastIndex,bodyEnd:-1,end:-1,children:[]};n.length&&n[n.length-1].children.push(l),n.push(l),a.push(l);continue}const c=n.pop();c&&(c.bodyEnd=i.index,c.end=t.lastIndex)}return a.filter(r=>r.end>=0)}function F8(e,t,n,a){let i=e.slice(t,n);for(let r=a.length-1;r>=0;r-=1){const c=a[r];c.end<0||(i=i.slice(0,c.start-t)+i.slice(c.end-t))}return i}function L8(e){const t=e.replace(/<br\s*\/?>/gi,`
|
||
`).replace(/<\/?(?:address|article|aside|blockquote|div|dl|fieldset|figcaption|figure|footer|h[1-6]|header|hr|li|main|nav|ol|p|pre|section|table|tbody|td|tfoot|th|thead|tr|ul)\b[^>]*>/gi,`
|
||
`).replace(/<[^>]*>/g," ");return Ap(v1(t))}function vv(e){const t=wo(e),n=[],a=rd(t.text);let i=0;for(let c=0;c<a.length&&n.length<Ep&&i<Nu;c+=1){const l=a[c],f=l.attributesText,T=F8(t.text,l.bodyStart,l.bodyEnd,l.children),p=sn(/<caption\b[^>]*>([\s\S]*?)<\/caption\s*>/i.exec(T)?.[1]??""),m=Sc(f,"id"),g=Sc(f,"aria-label"),S=[],x=[],y=/<tr\b([^>]*)>([\s\S]*?)<\/tr\s*>/gi;let w;for(;S.length<Iu&&i<Nu&&(w=y.exec(T));){const N=[],B=/<t[hd]\b([^>]*)>([\s\S]*?)<\/t[hd]\s*>/gi;let A;for(;A=B.exec(w[2]??"");){const z=N.length,P=A[1]??"";N.push({text:sn(A[2]??""),colSpan:Number.parseInt(Sc(P,"colspan"),10)||1,rowSpan:Number.parseInt(Sc(P,"rowspan"),10)||1,selector:`table:nth-of-type(${c+1}) tr:nth-of-type(${S.length+1}) > :nth-child(${z+1})`})}N.length&&(S.push(N),x.push($y(Sc(w[1]??"","class"))),i+=1)}const C=Ky(S),k=C.map(N=>N.values),E=C.map(N=>N.selectors),O={kind:"html-table",extractionMode:"bounded-lexical"};p&&(O.caption=p),m&&(O.elementId=m),g&&(O.ariaLabel=g),n.push({name:p||m||g||`Tabelle ${c+1}`,rows:k,cellSelectors:E,attributes:O,highlightedRows:x})}const r=L8(t.text).map(c=>c[0]??"").filter(Boolean).join(`
|
||
`);return{tables:n,fallbackRows:n.length?[]:Ap(r),documentText:r,removedContentCount:t.removedContentCount,extractionMode:"bounded-lexical"}}function Yy(e,t,n){const a=[...e.attributes].map(c=>`${c.name}="${c.value}"`).join("; "),i=Object.fromEntries([...e.attributes].map(c=>[c.name,c.value])),r=[...e.childNodes].filter(c=>c.nodeType===3||c.nodeType===4).map(c=>c.textContent?.trim()??"").filter(Boolean).join(" ");n.push({path:t,attributes:a,attributeValues:i,text:r}),[...e.children].forEach((c,l)=>Yy(c,`${t}/${c.nodeName}[${l+1}]`,n))}const P8={decodeHtml(e){if(I8(e))return vv(e);try{const t=new DOMParser().parseFromString(e,"text/html");return M8(t)}catch(t){if(N8(t))return vv(e);throw t}},decodeXml(e){if(/<!DOCTYPE\b|<!ENTITY\b|\bSYSTEM\s+["']|\bPUBLIC\s+["']/i.test(e))return{valid:!1,message:"XML-Dokumenttyp-, Entitäts- und externe Referenzdeklarationen sind nicht zulässig. xml-doctype-rejected-by-adapter"};const t=new DOMParser().parseFromString(e,"application/xml");if(t.querySelector("parsererror"))return{valid:!1,message:"Die XML-Struktur ist nicht wohlgeformt."};const n=t.documentElement,a=[];return Yy(n,n.nodeName,a),{valid:!0,rootName:n.nodeName,rows:a}}},_8={decode(e){try{return{text:new TextDecoder("utf-8",{fatal:!0}).decode(e),encoding:"utf-8"}}catch{return{text:new TextDecoder("windows-1252").decode(e),encoding:"windows-1252"}}}},q8={textDecoder:_8,markup:P8};function Rp(e){return e.name.includes(".")?e.name.split(".").pop()?.toLocaleLowerCase("en-US")??"":""}const x1=[{normalizedValue:"critical",patterns:[/critical|kritisch/i]},{normalizedValue:"high",patterns:[/high|hoch/i]},{normalizedValue:"medium",patterns:[/medium|mittel|warning/i]},{normalizedValue:"low",patterns:[/low|niedrig/i]},{normalizedValue:"info",patterns:[/info|informational/i]}],y1=[{normalizedValue:"passed",patterns:[/^pass(?:ed)?$/i]},{normalizedValue:"failed",patterns:[/^fail(?:ed)?$|ioes?\s+found/i]},{normalizedValue:"open",patterns:[/^open$/i]},{normalizedValue:"resolved",patterns:[/^(?:closed|resolved)$/i]},{normalizedValue:"error",patterns:[/error|failed\s+to\s+run/i]},{normalizedValue:"manual",patterns:[/manual/i]},{normalizedValue:"not-applicable",patterns:[/not\s+(?:applicable|relevant)|irrelevant/i]},{normalizedValue:"not-run",patterns:[/not\s+(?:run|selected)|skipped|cancelled?|canceled/i]}],S1=[{role:"rule-id",headers:[{pattern:/^(?:id|rule\s*id|control\s*id|test\s*id|short\s*name)$/i,contribution:.96,message:"Die Kopfzeile bezeichnet eine Regel- oder Control-ID."},{pattern:/^recommendation$/i,contribution:.86,message:"„Recommendation“ enthält in Assessment-Exports häufig die Regel-ID."},{pattern:/(?:rule|control|test).*(?:id|key)|(?:id|key).*(?:rule|control|test)/i,contribution:.78,message:"Die Kopfzeile kombiniert Regelbezug und Identifikator."}]},{role:"title",headers:[{pattern:/^(?:title|titel|finding|benchmark\s*item|indicator\s*name|security\s*indicator)$/i,contribution:.98,message:"Die Kopfzeile ist ein eindeutiges Titelfeld."},{pattern:/^name$/i,contribution:.7,message:"„Name“ ist ein wahrscheinliches, aber mehrdeutiges Titelfeld."},{pattern:/(?:finding|indicator|recommendation|benchmark).*title|title.*(?:finding|indicator|recommendation|benchmark)|benchmark\s*item/i,contribution:.94,message:"Die Kopfzeile bezeichnet einen Finding-Titel."}]},{role:"description",headers:[{pattern:/^(?:description|beschreibung|rationale|explanation)$/i,contribution:.96,message:"Die Kopfzeile bezeichnet eine Beschreibung oder Begründung."},{pattern:/technical\s+explanation/i,contribution:.94,message:"Die Kopfzeile bezeichnet eine technische Erklärung."}]},{role:"category",headers:[{pattern:/^(?:category|kategorie|tag|tags)$/i,contribution:.94,message:"Die Kopfzeile bezeichnet eine Kategorie oder Tags."},{pattern:/^(?:block|level|profile|group)$/i,contribution:.66,message:"Die Kopfzeile bezeichnet eine mögliche Gruppierung."}]},{role:"severity",headers:[{pattern:/^(?:severity|criticality|kritikalität|risk\s*level)$/i,contribution:.99,message:"Die Kopfzeile bezeichnet den Schweregrad."},{pattern:/^(?:priority|priorität)$/i,contribution:.82,message:"Priorität wird als möglicher Schweregrad interpretiert."}]},{role:"status",headers:[{pattern:/^(?:status|result|outcome|evaluation|zustand)$/i,contribution:.96,message:"Die Kopfzeile bezeichnet ein Ergebnis oder einen Status."},{pattern:/^(?:passed|failed|compliance)$/i,contribution:.78,message:"Die Kopfzeile beschreibt einen Ergebniszustand."}]},{role:"score",headers:[{pattern:/^(?:score|risk\s*score|points?)$/i,contribution:.96,message:"Die Kopfzeile bezeichnet einen Score oder Punktewert."},{pattern:/^(?:weight|gewicht)$/i,contribution:.8,message:"„Weight“ ist ein wahrscheinlicher Bewertungswert."}]},{role:"asset",headers:[{pattern:/^(?:asset|host|hostname|domain|target|resource|system)$/i,contribution:.94,message:"Die Kopfzeile bezeichnet ein betroffenes Asset oder Ziel."},{pattern:/^(?:object|objekt|scope)$/i,contribution:.56,message:"Die Kopfzeile könnte ein betroffenes Objekt bezeichnen."}]},{role:"evidence",headers:[{pattern:/^(?:evidence|resultdetail|result\s*detail|proof|nachweis)$/i,contribution:.97,message:"Die Kopfzeile bezeichnet Evidenz oder Ergebnisdetails."},{pattern:/^(?:details?|assessment|check)$/i,contribution:.68,message:"Die Kopfzeile enthält mögliche Evidenzdetails."}]},{role:"recommendation",headers:[{pattern:/^(?:remediation|recommended\s*action|advised\s*solution|lösung|maßnahme)$/i,contribution:.98,message:"Die Kopfzeile bezeichnet eine Abhilfemaßnahme."},{pattern:/^(?:fix|solution)$/i,contribution:.78,message:"Die Kopfzeile bezeichnet wahrscheinlich eine Lösung."}]},{role:"framework-reference",headers:[{pattern:/^(?:framework|reference|references|helpurl|help\s*url|control)$/i,contribution:.86,message:"Die Kopfzeile bezeichnet eine Framework- oder Hilfereferenz."},{pattern:/mitre|cis\s*control|nist|iso\s*270/i,contribution:.94,message:"Die Kopfzeile nennt ein Security-Framework."}]}],Zy={schemaVersion:1,id:"cis-cat",securityScoring:{version:"1.0.0",native:{kind:"mapped",properties:["benchmark.score"],scope:"overall",scale:"0-100",direction:"higher-is-better"},targets:["host.name"],benchmark:["benchmark.name"],resultPopulation:"complete"},priorityBasis:{version:"1.0.0",basis:{kind:"unavailable",reason:"CIS benchmarks state no per-recommendation criticality. Findings stay unranked."},excludedProperties:[{property:"recommendation.level",reason:"Level 1 / Level 2 is a hardening profile tier, not a criticality. Promoting it would manufacture severities the benchmark never stated."},{property:"recommendation.scored",reason:"Marks score participation, not risk."}]},timeslotComparison:{version:"1.0.0",kind:"available",granularity:"scope",scope:{kind:"cis-benchmark-target",properties:["host.name","benchmark.name"]},observationTimeProperties:["report.generated_at"],resultEvidence:"explicit-results",negativeEvidence:"unsupported",diagnosticPolicy:"fail-closed-by-impact"},name:"CIS-CAT Pro",version:"1.4.0",processing:{mappingVersion:"1.3.0",normalizationVersion:"1.3.0",presentationVersion:"1.3.0",compatibilityKey:"cis-cat-canonical-v1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context"]},sourceSignals:[{scope:"file-name",pattern:/cis[\s_.-]*(?:cat|benchmark|microsoft|windows|linux|ubuntu|rhel|_)/i,contribution:.65,message:"Der Dateiname enthält CIS/Benchmark."},{scope:"raw-text",pattern:/cis(?:-cat)?\s+(?:benchmark|controls?|microsoft|windows|linux|ubuntu|rhel|assessment)/i,contribution:.45,message:"Der Bericht enthält einen CIS-Benchmark-Marker."},{scope:"raw-text",pattern:/center\s+for\s+internet\s+security/i,contribution:.4,message:"Enthält „Center for Internet Security“."},{scope:"table-name",pattern:/^(?:assessment\s+results?|assessmentresulttable)$/i,contribution:.28,message:"Eine Tabelle heißt „Assessment Results“."},{scope:"header",pattern:/^recommendation$/i,contribution:.13,message:"Die Kopfzeile „Recommendation“ wurde gefunden."},{scope:"header",pattern:/^scored$/i,contribution:.09,message:"Die Kopfzeile „Scored“ wurde gefunden."},{scope:"header",pattern:/^level$/i,contribution:.07,message:"Die Kopfzeile „Level“ wurde gefunden."}],tableRules:{preferredNames:[{pattern:/^(?:assessment\s+results?|assessmentresulttable)$/i,contribution:1,message:"CIS-CAT Assessment Results."},{pattern:/^result(?:s)?|recommendation(?:s)?|rules?|table\s*\d+|html/i,contribution:.8,message:"CIS-CAT Ergebnis-Tabelle."}],discouragedNames:[{pattern:/^summary$|^selected\s+profiles?$/i,contribution:.4,message:"Zusammenfassung oder Profilauswahl."}]},fieldRules:[...S1,{role:"rule-id",headers:[{pattern:/^rule\s*id$/i,contribution:1,message:"CIS-CAT-Regelkennung aus dem Benchmark Item."}]},{role:"title",headers:[{pattern:/^benchmark\s*item$/i,contribution:1,message:"CIS-CAT Benchmark Item ist der Finding-Titel."}]}],normalization:{severity:x1,status:y1},presentation:{titleHeaders:[/^benchmark\s*item$/i,/^title$/i],severityHeaders:[/^(?:severity|level)$/i],sortHeaders:[/^recommendation$/i],sortDirection:"asc",defaultStatusFilter:"failed",statusFilters:[{value:"all",label:"All Results",patterns:[]},{value:"failed",label:"Fail",patterns:[/^fail(?:ed)?$/i]},{value:"passed",label:"Pass",patterns:[/^pass(?:ed)?$/i]},{value:"manual",label:"Manual",patterns:[/^manual$/i]},{value:"error",label:"Error",patterns:[/^error$/i]}],resultSectionHeaders:[/^control mappings$/i],showResultSheetTitles:!0,resultSheetTitleRules:[{pattern:/^assessment evidence(?:\s*\u00c2?\u00b7.*)?$/i,replacement:"Assessment"},{pattern:/^(.+?)\s*\u00c2?\u00b7\s*.*$/i,replacement:"$1"}],resultSectionListSheetTitles:[/^control mappings$/i],resultSheetHighlightedRowPatterns:[/^no matching system items were found\.$/i],resultSheetCriterionRowPatterns:[/(?:^|\s)criterion\s*:/i],resultSheetEvaluatedRowTone:"violation"},comparisonKeys:[["rule-id","asset"],["rule-id"]]},B8=[{value:"all",label:"All Results",patterns:[]},{value:"deviation",label:"Deviation",patterns:[/^fail(?:ed)?$/,/^not passed?$/,/^nicht bestanden$/,/^ioes? (?:found|detected)$/,/^matched$/,/^detected$/,/^open$/,/^offen$/,/^investigate$/,/^warning$/,/^pr(?:ue|ü)fen$/]},{value:"passed",label:"Passed",patterns:[/^pass(?:ed)?$/,/^bestanden$/]},{value:"not-configured",label:"Not configured",patterns:[/^not configured$/]},{value:"no-baseline-rule",label:"No baseline rule",patterns:[/^no baseline rule$/]},{value:"not-comparable",label:"Not comparable",patterns:[/^not comparable$/]},{value:"conflicts",label:"Conflicts",patterns:[/^conflicts$/]},{value:"duplicates",label:"Duplicates",patterns:[/^duplicates$/]},{value:"not-applicable",label:"Not Applicable",patterns:[/^not (?:applicable|relevant)$/,/^irrelevant$/,/^nicht (?:anwendbar|relevant)$/]},{value:"not-run",label:"Not Run",patterns:[/^not (?:run|selected|executed)$/,/^skipped$/,/^cancell?ed$/,/^nicht ausgef(?:ue|ü)hrt$/]},{value:"error",label:"Error",patterns:[/^error$/,/^failed to run$/,/^fehler$/]}],Dp={schemaVersion:1,id:"generic",securityScoring:{version:"1.0.0",native:{kind:"unavailable",reason:"Unrecognized tabular fields do not establish native overall-score scope, scale or direction."},targets:[],resultPopulation:"unknown"},priorityBasis:{version:"1.0.0",basis:{kind:"unavailable",reason:"Unrecognized tabular fields establish no criticality scale or direction."}},timeslotComparison:{version:"1.0.0",kind:"unavailable",reason:"A generic import does not establish a typed target scope or a scanner-specific result contract."},name:"Tabular Data",version:"1.0.0",processing:{mappingVersion:"1.0.0",normalizationVersion:"1.0.0",presentationVersion:"1.0.0",compatibilityKey:"generic-canonical-v1",changeClass:"compatible",reimportRequired:!1,affectedDimensions:[]},fallback:!0,sourceSignals:[],tableRules:{preferredNames:[],discouragedNames:[]},fieldRules:S1,normalization:{severity:x1,status:y1},presentation:{titleHeaders:[/^(?:name|title|titel|finding|benchmark\s*item|recommendation|beschreibung)$/i],severityHeaders:[/^(?:severity|kritikalität|criticality|priority|priorität|status)$/i],sortHeaders:[],sortDirection:"desc",defaultStatusFilter:"deviation",statusFilters:B8},comparisonKeys:[["rule-id","asset"],["rule-id"]]},Jy={schemaVersion:1,id:"maester",securityScoring:{version:"1.0.0",native:{kind:"unavailable",reason:"Supported Maester reports expose result counts, without a native numeric overall score."},targets:["entra.tenant_id"],resultPopulation:"complete"},priorityBasis:{version:"1.0.0",basis:{kind:"severity",properties:["test.severity"]},excludedProperties:[{property:"test.result",reason:"Descriptive result text, not a criticality."}]},timeslotComparison:{version:"1.0.0",kind:"available",granularity:"scope",scope:{kind:"entra-tenant",properties:["entra.tenant_id"]},observationTimeProperties:["report.generated_at"],resultEvidence:"explicit-results",negativeEvidence:"unsupported",diagnosticPolicy:"fail-closed-by-impact"},name:"Maester",version:"1.1.0",processing:{mappingVersion:"1.1.0",normalizationVersion:"1.0.0",presentationVersion:"1.1.0",compatibilityKey:"maester-canonical-v1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["evidence","environment-context","presentation"]},sourceSignals:[{scope:"file-name",pattern:/maester|test[\s_.-]*results?/i,contribution:.25,message:"Der Dateiname entspricht einem Maester-Testexport."},{scope:"raw-text",pattern:/maester\s+security\s+tests/i,contribution:.55,message:"Der Dateiinhalt enthält „Maester Security Tests“."},{scope:"raw-text",pattern:/maester\.dev/i,contribution:.35,message:"Der Dateiinhalt enthält eine Maester-Referenz."},{scope:"header",pattern:/^testscriptfile$/i,contribution:.24,message:"Die Kopfzeile „TestScriptFile“ wurde gefunden."},{scope:"header",pattern:/^resultdetail$/i,contribution:.16,message:"Die Kopfzeile „ResultDetail“ wurde gefunden."},{scope:"header",pattern:/^testskipped$/i,contribution:.13,message:"Die Kopfzeile „TestSkipped“ wurde gefunden."},{scope:"cell-value",pattern:/^MT\.\d+/i,contribution:.3,message:"Ein Maester-Testbezeichner wurde gefunden."}],tableRules:{preferredNames:[{pattern:/test|result|finding/i,contribution:.7,message:"Maester-Testresultate."}],discouragedNames:[]},fieldRules:[...S1.filter(e=>e.role!=="status"),{role:"status",headers:[{pattern:/^(?:status|result|outcome|evaluation|zustand)$/i,contribution:.96,message:"Native Maester status field."}],whenHeadersAbsent:[/^status$/i]},{role:"status",headers:[{pattern:/^(?:status|outcome|evaluation|zustand)$/i,contribution:.96,message:"Separate Maester status column."}],whenHeadersPresent:[/^status$/i]},{role:"evidence",headers:[{pattern:/^result$/i,contribution:1,message:"Maester result text next to a separate Status column."}],whenHeadersPresent:[/^status$/i]}],normalization:{severity:x1,status:y1},presentation:{titleHeaders:[/^title$/i],severityHeaders:[/^severity$/i],sortHeaders:[/^severity$/i],sortDirection:"desc",resultMessageHeaders:[/^resultdetail$/i,/^result$/i],statusHeaders:[/^status$/i,/^result$/i],defaultStatusFilter:"deviation",statusFilters:[{value:"all",label:"All Results",patterns:[]},{value:"deviation",label:"Deviation",patterns:[/^fail(?:ed)?$/i,/^investigate$/i]},{value:"failed",label:"Failed",patterns:[/^fail(?:ed)?$/i]},{value:"investigate",label:"Investigate",patterns:[/^investigate$/i]},{value:"passed",label:"Passed",patterns:[/^pass(?:ed)?$/i]},{value:"skipped",label:"Skipped",patterns:[/^skipped$/i,/^notrun$/i]}]},comparisonKeys:[["rule-id","asset"],["rule-id"]]},U8=y1.map(e=>e.normalizedValue==="failed"?{...e,patterns:[...e.patterns,/^matched$/i]}:e),Qy={schemaVersion:1,id:"pingcastle",securityScoring:{version:"1.0.0",native:{kind:"mapped",properties:["risk.domain","risk.global"],scope:"overall",scale:"0-100",direction:"lower-is-better"},targets:["domain.fqdn"],resultPopulation:"findings-only"},priorityBasis:{version:"1.0.0",basis:{kind:"numeric",properties:["rule.points"],scale:"0-50+",direction:"higher-is-worse"},excludedProperties:[{property:"rule.points_scale",reason:"Static scoring-scheme description, not the awarded value."},{property:"risk.domain",reason:"Category or domain risk total, not a per-finding rank."}]},timeslotComparison:{version:"1.0.0",kind:"available",granularity:"scope",scope:{kind:"ad-domain",properties:["domain.fqdn"]},observationTimeProperties:["report.generated_at"],resultEvidence:"findings-only",negativeEvidence:"unsupported",diagnosticPolicy:"fail-closed-by-impact"},name:"PingCastle",version:"1.5.0",processing:{mappingVersion:"1.2.0",normalizationVersion:"1.1.0",presentationVersion:"1.2.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context","evidence","import-diagnostics"]},sourceSignals:[{scope:"file-name",pattern:/ping[\s_.-]*castle|^ad[_-]hc[_-]/i,contribution:.5,message:"Der Dateiname entspricht einem PingCastle-Healthcheck."},{scope:"raw-text",pattern:/ping[\s_-]*castle/i,contribution:.7,message:"Der Dateiinhalt enthält einen PingCastle-Marker."},{scope:"raw-text",pattern:/rule\s+id\s*:/i,contribution:.1,message:"Der Bericht enthält Rule-ID-Details."},{scope:"table-name",pattern:/^healthcheckdata$/i,contribution:.7,message:"Das XML-Wurzelelement entspricht einem PingCastle-Healthcheck."},{scope:"table-name",pattern:/^risk\s+scores?$/i,contribution:.2,message:"Eine Tabelle heißt „Risk Scores“."},{scope:"header",pattern:/^rules?\s+matched$/i,contribution:.12,message:"Die Kopfzeile „Rules matched“ wurde gefunden."}],tableRules:{preferredNames:[{pattern:/risk\s+scores?|rule|finding/i,contribution:.8,message:"PingCastle-Risiko- oder Regeltabelle."}],discouragedNames:[{pattern:/domain\s+information|summary/i,contribution:.35,message:"Domänenmetadaten oder Zusammenfassung."}]},fieldRules:S1,normalization:{severity:x1,status:U8},presentation:{titleHeaders:[/^title$/i],severityHeaders:[/^(?:severity|risk\s*level|score)$/i],sortHeaders:[/^(?:points?|score)$/i],sortDirection:"desc",defaultStatusFilter:"all",statusFilters:[],showResultSheetTitles:!0,resultSheetTitleRules:[{pattern:/^PingCastle\s*·\s*/i,replacement:""}]},comparisonKeys:[["rule-id","asset"],["rule-id"]]},e4={schemaVersion:1,id:"purple-knight",securityScoring:{version:"1.0.0",native:{kind:"mapped",properties:["purple_knight.ad.security_posture_score"],scope:"overall",scale:"0-100",direction:"higher-is-better",incompatibleProperties:["purple_knight.entra.security_posture_score","purple_knight.aad.security_posture_score","purple_knight.okta.security_posture_score"]},targets:["forest.name"],resultPopulation:"complete"},priorityBasis:{version:"1.0.0",basis:{kind:"severity",properties:["indicator.severity"]},excludedProperties:[{property:"indicator.weight",reason:"Scoring weight, not comparable with another tool ordering."}]},timeslotComparison:{version:"1.0.0",kind:"available",granularity:"scope",scope:{kind:"ad-forest",properties:["forest.name"]},observationTimeProperties:["report.generated_at"],resultEvidence:"explicit-results",negativeEvidence:"unsupported",diagnosticPolicy:"fail-closed-by-impact"},name:"PurpleKnight",version:"1.3.0",processing:{mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.1.0",compatibilityKey:"purple-knight-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context","evidence","import-diagnostics"]},sourceSignals:[{scope:"file-name",pattern:/^Security_Assessment_Report_.+_\(Indicators_results\)\.csv$/i,contribution:.25,message:"Native PurpleKnight indicator CSV naming structure."},{scope:"header",pattern:/^number of results$/i,contribution:.15,message:"Native result-count column."},{scope:"file-name",pattern:/purple[\s_.-]*knight/i,contribution:.55,message:"Der Dateiname enthält Purple Knight."},{scope:"raw-text",pattern:/purple[\s_-]*knight/i,contribution:.7,message:"Der Dateiinhalt enthält einen Purple-Knight-Marker."},{scope:"table-name",pattern:/^indicator(?:s)?\s+results?$/i,contribution:.38,message:"Ein Sheet heißt „Indicator Results“."},{scope:"header",pattern:/^short\s*name$/i,contribution:.14,message:"Die Kopfzeile „Short Name“ wurde gefunden."},{scope:"header",pattern:/^si\s*version$/i,contribution:.16,message:"Die Kopfzeile „SI Version“ wurde gefunden."},{scope:"header",pattern:/^weight$/i,contribution:.08,message:"Die Kopfzeile „Weight“ wurde gefunden."},{scope:"cell-value",pattern:/^ioes?\s+found$/i,contribution:.16,message:"Ein typischer IOE-Ergebniswert wurde gefunden."},{scope:"raw-text",pattern:/(?:^|[\r\n"])AD:\s*security posture score/i,contribution:.6,message:"Die Datei nennt den Purple-Knight-Posture-Score."},{scope:"raw-text",pattern:/(?:^|[\r\n"])AD category score:/i,contribution:.4,message:"Die Datei nennt Purple-Knight-Kategoriewerte."}],tableRules:{preferredNames:[{pattern:/^indicator(?:s)?\s+results?$/i,contribution:1,message:"Haupttabelle mit Indicator Results."},{pattern:/indicators?|findings?|ioe/i,contribution:.35,message:"Tabellenname deutet auf Indicators oder Findings."}],discouragedNames:[{pattern:/assessment|summary|overview|dashboard/i,contribution:.15,message:"Zusammenfassungs- oder Dashboardtabelle."}]},fieldRules:S1,normalization:{severity:x1,status:y1},presentation:{titleHeaders:[/^(?:name|indicator\s+name|security\s+indicator|finding|title)$/i],severityHeaders:[/^(?:severity|criticality|priority|status)$/i],sortHeaders:[/^weight$/i],sortDirection:"desc",defaultStatusFilter:"ioes-found",statusHeaders:[/^status$/i,/^(?:result|evaluation)$/i],statusDisplayRules:[{label:"Passed",patterns:[/^pass(?:ed)?$/i]},{label:"Failed",patterns:[/^fail(?:ed)?$|^ioes?\s+found$/i]}],statusFilters:[{value:"all",label:"All Results",patterns:[]},{value:"evaluated",label:"Evaluated",patterns:[/^(?:evaluated|ioes? found|passed?|pass)$/i]},{value:"not-selected",label:"Not selected",patterns:[/^not selected$/i]},{value:"ioes-found",label:"IOEs found",patterns:[/^ioes? found$/i]},{value:"passed",label:"Passed",patterns:[/^pass(?:ed)?$/i]},{value:"failed-to-run",label:"Failed to run",patterns:[/^failed to run$/i]},{value:"not-relevant",label:"Not Relevant",patterns:[/^(?:not relevant|irrelevant)$/i]},{value:"canceled",label:"Canceled",patterns:[/^cancel(?:ed|led)$/i]}]},comparisonKeys:[["rule-id","asset"],["rule-id"]]},ei=[e4,Qy,Zy,Jy,Dp];function Fi(e){return e instanceof Date?e.toLocaleString("en-US"):e==null?"":typeof e=="object"?JSON.stringify(e):String(e)}function je(e){return Fi(e).replace(/\s+/g," ").trim()}function ts(e){return Fi(e).replace(/\r\n?/g,`
|
||
`).replace(/[^\S\n]+/g," ").replace(/ *\n */g,`
|
||
`).trim()}function ga(e){return String(e??"").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<[^>]+>/g," ").replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/�?39;/gi,"'").replace(/\s+/g," ").trim()}function vi(e){let t=je(e).replace(/[\s']/g,"").replace(/%$/,"");if(!t)return null;if(/^[+-]?\d{1,3}(?:\.\d{3})+(?:,\d+)?$/.test(t))t=t.replace(/\./g,"").replace(",",".");else if(/^[+-]?\d{1,3}(?:,\d{3})+(?:\.\d+)?$/.test(t))t=t.replace(/,/g,"");else if(/^[+-]?(?:\d+(?:[.,]\d+)?|[.,]\d+)$/.test(t))t=t.replace(",",".");else return null;const n=Number(t);return Number.isFinite(n)?n:null}function z8(e){return e>=.82?"high":e>=.62?"medium":e>=.35?"low":"unknown"}function Qi(e,t){const n=Math.max(0,Math.min(1,e));return{level:z8(n),score:Number(n.toFixed(3)),reasons:t.map(a=>a.message)}}function Of(e,t){return e.lastIndex=0,e.test(t)}function W8(e,t){if(!t.length)return[];const n=r=>t.filter(r).length/t.length,a=[];e==="severity"&&n(r=>/^(?:critical|high|medium|low|info|kritisch|hoch|mittel|niedrig)$/i.test(r))>=.6&&a.push({signal:"value-distribution",contribution:.88,message:"Die Werte entsprechen überwiegend bekannten Schweregraden."}),e==="status"&&n(r=>/^(?:pass(?:ed)?|fail(?:ed)?|open|closed|resolved|error|unknown|manual|not selected|not run|ioes? found)$/i.test(r))>=.6&&a.push({signal:"value-distribution",contribution:.86,message:"Die Werte entsprechen überwiegend bekannten Ergebnis- oder Statuswerten."}),e==="rule-id"&&n(r=>/^(?:[A-Z]{1,8}[.-])?[A-Z0-9]+(?:[._-][A-Z0-9]+)+$/i.test(r))>=.6&&a.push({signal:"value-shape",contribution:.7,message:"Die Werte besitzen überwiegend die Form stabiler Regelbezeichner."}),e==="score"&&n(r=>vi(r)!==null)>=.8&&a.push({signal:"detected-type",contribution:.36,message:"Die Spalte besteht überwiegend aus Zahlenwerten."}),e==="framework-reference"&&n(r=>/^(?:https?:\/\/|[A-Z]+[- ]?\d)/i.test(r))>=.5&&a.push({signal:"value-shape",contribution:.48,message:"Die Werte ähneln URLs oder Control-Referenzen."});const i=t.reduce((r,c)=>r+c.length,0)/t.length;return e==="description"&&i>=80&&a.push({signal:"value-length",contribution:.52,message:"Die Werte sind überwiegend längere beschreibende Texte."}),e==="evidence"&&i>=40&&a.push({signal:"value-length",contribution:.4,message:"Die Werte besitzen die typische Länge von Evidenzdetails."}),a}function t4(e,t,n,a=[e]){return n.filter(i=>(i.whenHeadersPresent??[]).every(r=>a.some(c=>Of(r,c.trim())))&&(i.whenHeadersAbsent??[]).every(r=>!a.some(c=>Of(r,c.trim())))).map(i=>{const c=[...i.headers.filter(f=>Of(f.pattern,e)).map(f=>({signal:"header",contribution:f.contribution,message:f.message})),...W8(i.role,t)],l=c.length?Math.min(1,c.reduce((f,T)=>f+T.contribution,0)):0;return{role:i.role,evidence:c,confidence:Qi(l,c)}}).filter(i=>i.confidence.score>=.2).sort((i,r)=>r.confidence.score-i.confidence.score||i.role.localeCompare(r.role))}const V8=ei.filter(e=>!e.fallback).map(e=>({toolId:e.id,toolName:e.name,signals:e.sourceSignals}));function n4(e){return JSON.stringify([e.source.tableIndex??null,e.key,e.label])}function H8(e,t){const n=new Map,a=new Map,i=t.flatMap(r=>[...r.whenHeadersPresent??[],...r.whenHeadersAbsent??[]]);return e.forEach(r=>{const c=i.length?r.fields.map(f=>f.label):[],l=i.map(f=>c.some(T=>(f.lastIndex=0,f.test(T.trim())))?"1":"0").join("");a.set(r,l),r.fields.forEach(f=>{const T=`${n4(f)}:${l}`,p=n.get(T);if(p){p.values.length<250&&f.decodedValue.trim()&&p.values.push(f.decodedValue.trim());return}n.set(T,{id:`candidate-field-${n.size}`,identity:T,fieldKey:f.key,sourceLabel:f.label,tableIndex:f.source.tableIndex,headers:c,values:f.decodedValue.trim()?[f.decodedValue.trim()]:[]})})}),{groups:[...n.values()],contexts:a}}function G8(e,t){if(t.tableIndex===void 0)return;const n=Number(/^column-(\d+)$/.exec(t.fieldKey)?.[1]);if(Number.isInteger(n))return e?.fields.find(a=>a.tableIndex===t.tableIndex&&a.columnIndex===n&&a.decisionSource==="user-confirmed")}function X8(e,t,n){const a=G8(n,e);if(a)return{id:e.id,fieldKey:e.fieldKey,sourceLabel:e.sourceLabel,sourceScope:{tableIndex:e.tableIndex},proposedRole:a.proposedRole,appliedRole:a.appliedRole,alternatives:a.alternatives,confidence:a.confidence,evidence:a.evidence,decisionSource:"user-confirmed",requiresConfirmation:!1};const i=t4(e.sourceLabel,e.values,t.definition.fieldRules,e.headers),r=i[0],c=r&&r.confidence.level!=="unknown"?r.role:null,l=r&&["high","medium"].includes(r.confidence.level);return{id:e.id,fieldKey:e.fieldKey,sourceLabel:e.sourceLabel,sourceScope:{tableIndex:e.tableIndex},proposedRole:c,appliedRole:l?r.role:"additional",alternatives:i.map(({role:f,confidence:T})=>({role:f,confidence:T})),confidence:r?.confidence??Qi(0,[]),evidence:r?.evidence??[],decisionSource:c?"automatic":"fallback",requiresConfirmation:r?.confidence.level==="low"}}function a4(e,t,n,a){const{groups:i,contexts:r}=H8(e.candidates,t.definition.fieldRules),c=new Map((a?.candidateFieldRoles??[]).map(p=>[p.decisionId,p.role])),l=i.map(p=>X8(p,t,n)).map(p=>{const m=p.sourceScope.tableIndex===void 0?c.get(p.id):void 0;if(!m)return p;const g=[{signal:"user-confirmation",contribution:1,message:"Die Candidate-Feldrolle wurde durch den Benutzer bestätigt oder korrigiert."}];return{...p,proposedRole:m,appliedRole:m,confidence:Qi(1,g),evidence:g,decisionSource:"user-confirmed",requiresConfirmation:!1}}),f=new Map(i.map((p,m)=>[p.identity,l[m]])),T={kind:"mapping-profile",id:t.id,version:t.definition.processing.mappingVersion};return{version:1,extractor:e.extractor,mappingProfile:T,fieldDecisions:l,candidates:e.candidates.map(p=>({version:1,id:p.id,source:p.source,fields:p.fields.map(m=>{const g=f.get(`${n4(m)}:${r.get(p)??""}`);if(!g)throw new Error(`Keine Mappingentscheidung für Quellfeld ${m.key} vorhanden.`);return{...m,mappingDecisionId:g.id,role:g.appliedRole}})})),diagnostics:[],processing:{stage:"mapping",status:"complete",processor:T,diagnosticCodes:[]}}}function K8(e,t){const n=e.headerCandidates[0]?.rowIndex??0;return e.rows.filter(a=>a.index!==n).map(a=>je(a.cells[t]?.decodedValue)).filter(Boolean).slice(0,250)}function $8(e,t){const n=e.headerCandidates[0];return je(n?.headers[t]??e.rows[n?.rowIndex??0]?.cells[t]?.decodedValue)}function Y8(e,t,n){const a=$8(e,t),i=K8(e,t),r=t4(a,i,n,e.headerCandidates[0]?.headers??[]),c=r[0],l=c&&c.confidence.level!=="unknown"?c.role:null,f=c&&["high","medium"].includes(c.confidence.level);return{tableId:e.id,tableIndex:e.index,columnIndex:t,sourceHeader:a,proposedRole:l,appliedRole:f?c.role:"additional",alternatives:r.map(({role:T,confidence:p})=>({role:T,confidence:p})),confidence:c?.confidence??Qi(0,[]),evidence:c?.evidence??[],decisionSource:l?"automatic":"fallback",requiresConfirmation:c?.confidence.level==="low"}}function Z8(e,t){return t==="file-name"?[e.file.name]:t==="raw-text"?[e.rawText.slice(0,25e4)]:t==="table-name"?e.tables.map(n=>n.name):t==="header"?e.tables.flatMap(n=>n.headerCandidates.flatMap(a=>a.headers)):e.tables.flatMap(n=>n.rows.slice(0,80).flatMap(a=>a.cells.map(i=>i.decodedValue)))}function J8(e,t){const n=V8.map(f=>{const T=f.signals.flatMap(m=>Z8(e,m.scope).some(g=>m.pattern.test(g))?[{signal:m.scope,contribution:m.contribution,message:m.message}]:[]);t?.match.toolId===f.toolId&&t.processing.status!=="failed"&&T.push({signal:"source-extractor",contribution:t.match.score,message:"Das registrierte Quellenmodul hat die native Berichtsstruktur validiert."});const p=Math.min(1,T.reduce((m,g)=>m+g.contribution,0));return{toolId:f.toolId,toolName:f.toolName,confidence:Qi(p,T),evidence:T}}).sort((f,T)=>T.confidence.score-f.confidence.score||f.toolName.localeCompare(T.toolName)),a=n[0],i=n[1],r=a?.confidence.level!=="unknown"?a:{toolId:"unknown",toolName:"Unknown",confidence:Qi(0,[]),evidence:[]},c=r.evidence.some(f=>f.signal!=="file-name"),l=r.toolId!=="unknown"&&i!==void 0&&i.confidence.level!=="unknown"&&r.confidence.score-i.confidence.score<.15;return{selected:r,candidates:n,decisionSource:r.toolId==="unknown"?"fallback":"automatic",requiresConfirmation:r.toolId!=="unknown"&&(r.confidence.level==="low"||!c||l)}}function Q8(e,t,n){const a=[],i=je(e.name);n.tableRules.preferredNames.forEach(f=>{f.pattern.lastIndex=0,f.pattern.test(i)&&a.push({signal:"profile-table-name",contribution:f.contribution,message:f.message})}),n.tableRules.discouragedNames.forEach(f=>{f.pattern.lastIndex=0,f.pattern.test(i)&&a.push({signal:"profile-table-name-penalty",contribution:-f.contribution,message:f.message})}),e.rows.length>1&&a.push({signal:"row-count",contribution:.1,message:"Die Tabelle enthält Datenzeilen unterhalb der Kopfzeile."});const r=new Set(t.filter(f=>f.appliedRole!=="additional").map(f=>f.appliedRole));r.size&&a.push({signal:"semantic-columns",contribution:Math.min(.55,r.size*.12),message:`${r.size} semantische Spaltenrollen wurden automatisch erkannt.`}),["title","rule-id"].some(f=>r.has(f))&&["status","severity","score"].some(f=>r.has(f))?a.push({signal:"role-combination",contribution:.3,message:"Identität und Bewertung eines Findings sind gemeinsam vorhanden."}):r.has("category")&&r.has("score")&&a.push({signal:"role-combination",contribution:.2,message:"Kategorie und Score bilden gemeinsam eine auswertbare Risikotabelle."});const c=Math.max(0,Math.min(1,a.reduce((f,T)=>f+T.contribution,0))),l=Qi(c,a);return{tableId:e.id,tableIndex:e.index,tableName:e.name,selected:["high","medium"].includes(l.level),confidence:l,evidence:a,decisionSource:l.level==="unknown"?"fallback":"automatic",requiresConfirmation:l.level==="low"}}function eC(e,t){const n=J8(e,t),a=ei.find(c=>c.id===n.selected.toolId)??Dp,i=e.tables.flatMap(c=>c.columns.map(l=>Y8(c,l.index,a.fieldRules))),r=e.tables.map(c=>Q8(c,i.filter(l=>l.tableId===c.id),a));return{version:1,source:n,tables:r,fields:i}}function i4(e,t){const n=t.sourceTool?{selected:{toolId:t.sourceTool.toolId,toolName:t.sourceTool.toolName,confidence:Qi(1,[{signal:"user-confirmation",contribution:1,message:"Die Quelle wurde durch den Benutzer bestätigt oder korrigiert."}]),evidence:[{signal:"user-confirmation",contribution:1,message:"Die Quelle wurde durch den Benutzer bestätigt oder korrigiert."}]},candidates:e.source.candidates,decisionSource:"user-confirmed",requiresConfirmation:!1}:e.source,a=t.tableSelections??{},i=e.tables.map(l=>Object.hasOwn(a,l.tableId)?{...l,selected:a[l.tableId],confidence:Qi(1,[{signal:"user-confirmation",contribution:1,message:"Die Tabellenauswahl wurde durch den Benutzer bestätigt oder korrigiert."}]),decisionSource:"user-confirmed",requiresConfirmation:!1}:l),r=new Map((t.fieldRoles??[]).map(l=>[`${l.tableId}:${l.columnIndex}`,l.role])),c=e.fields.map(l=>{const f=r.get(`${l.tableId}:${l.columnIndex}`);if(!f)return l;const T=[{signal:"user-confirmation",contribution:1,message:"Die Feldrolle wurde durch den Benutzer bestätigt oder korrigiert."}];return{...l,proposedRole:f,appliedRole:f,confidence:Qi(1,T),evidence:T,decisionSource:"user-confirmed",requiresConfirmation:!1}});return{...e,source:n,tables:i,fields:c}}function s4(e,t){if(!t.length)throw new Error("Für die Profilentscheidung ist mindestens ein Importprofil erforderlich.");const n=t.find(a=>a.definition.fallback)??t.find(a=>a.id==="generic")??t[0];return e.source.selected.toolId==="unknown"||e.source.requiresConfirmation?n:t.find(a=>a.id===e.source.selected.toolId)??n}function xv(e,t,n){if(!e.recognition)return e;const a=i4(e.recognition,t),i=s4(a,n),r=e.extraction?a4(e.extraction,i,a,t):e.mapping;return{...e,sheets:i.prioritizeSheets(e.sheets),profileId:i.id,profileVersion:i.version,scanTool:i.name,recognition:a,mapping:r,intermediate:e.intermediate&&r?{...e.intermediate,diagnostics:[...e.intermediate.diagnostics.filter(c=>c.stage!=="mapping"),...r.diagnostics],processing:[...e.intermediate.processing.filter(c=>c.stage!=="mapping"),r.processing]}:e.intermediate}}function r4(e){return/^\d{1,2}[./-]\d{1,2}[./-]\d{2,4}$/.test(je(e))}const tC=/^.{1,42}:$/;function o4(e){return tC.test(je(e))}function nC(e){if(e.length<2||e.some(n=>n.length!==2))return!1;const t=e.filter(n=>o4(n[0]));return t.length>=2&&t.length>=Math.ceil(e.length*.6)}function c4(e){let t={index:0,score:Number.NEGATIVE_INFINITY};return e.slice(0,12).forEach((n,a)=>{const i=n.map(je).filter(Boolean),c=e.slice(a+1,a+5).reduce((g,S)=>g+S.filter(x=>je(x)).length,0),l=new Set(i.map(g=>g.toLocaleLowerCase("de-DE"))).size,f=i.filter(g=>/[A-Za-zÄÖÜäöüß]/.test(g)&&g.length<=42).length,T=i.some(g=>g.length>55||g.includes(`
|
||
`))?4:0,p=i.filter(r4).length*1.5,m=i.length*2+l+f+c*.35-T-p-a*.25;m>t.score&&(t={index:a,score:m})}),t.index}function Ph(e){const t=new Map;return e.map((n,a)=>{const i=je(n)||`Feld ${a+1}`,r=t.get(i)??0;return t.set(i,r+1),r?`${i} (${r+1})`:i})}function od(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function _h(e){const t=e.headers.map((a,i)=>[je(a).toLocaleLowerCase("de-DE"),je(e.row[i]).toLocaleLowerCase("de-DE")]).filter(([,a])=>a).sort(([a],[i])=>a.localeCompare(i)),n=JSON.stringify({sourceFile:je(e.sourceFile).toLocaleLowerCase("de-DE"),sheetName:je(e.sheetName).toLocaleLowerCase("de-DE"),values:t,occurrence:e.occurrence??0});return`record-${od(n)}`}function Ou(e,t,n){const a=n===void 0?"":`::${n}`;return`sheet-${od(`${je(e)}::${je(t)}${a}`.toLocaleLowerCase("de-DE"))}`}function hu(e,t,n){return`project-${od(`${je(e)}::${t}::${n}`)}`}function aC(e,t){return`assessment-${od(`${je(e)}::${je(t)}`.toLocaleLowerCase("en-US"))}`}function iC(e){const t=e.map(je).filter(Boolean);if(!t.length)return"leer";const n=t.slice(0,30);return n.filter(r4).length/n.length>.65?"Datum":n.filter(a=>/^-?\d+([,.]\d+)?$/.test(a)).length/n.length>.75?"Zahl":new Set(n.map(a=>a.toLocaleLowerCase("de-DE"))).size<=Math.max(5,n.length*.35)?"Kategorie":n.some(a=>a.length>80)?"Text":"Text kurz"}function sC(e,t){const n=t.map(je).filter(Boolean),a=new Map;return n.forEach(i=>a.set(i,(a.get(i)??0)+1)),{header:e,type:iC(n),filled:n.length,total:t.length,fillRate:t.length?Math.round(n.length/t.length*100):0,unique:new Set(n.map(i=>i.toLocaleLowerCase("de-DE"))).size,topValues:[...a.entries()].sort((i,r)=>r[1]-i[1]).slice(0,4).map(([i,r])=>({value:i,count:r}))}}const rC=["benchmark item","benchmark","tätigkeit","aktivität","aufgabe","title","titel","name","finding","recommendation","indicator","scope","ziel","beschreibung","description","tool"],oC=["datum","status","zustand","norm","scope","priorität","risiko"];function l4(e){const t=e.headers.map((l,f)=>({label:l,value:ts(e.row[f]),index:f})),n=t.filter(l=>l.value),a=l=>/^(?:short\s*name|shortname|rule\s*id|control\s*id|test\s*id|id|key|code)$/i.test(l.trim()),i=n.filter(l=>!/^(?:quelle:|source:|datei|file|sheet|blatt|scan)/i.test(l.label.trim())),r=je(rC.map(l=>n.find(f=>!a(f.label)&&f.label.toLocaleLowerCase("de-DE").includes(l)&&f.value)).find(Boolean)?.value??i.find(l=>!a(l.label))?.value??i[0]?.value??n[0]?.value??`Datensatz ${e.index+1}`),c=n.filter(l=>oC.some(f=>l.label.toLocaleLowerCase("de-DE").includes(f))).slice(0,4);return{id:_h({sourceFile:e.sourceFile,sheetName:e.sheetName,headers:e.headers,row:e.row,occurrence:e.occurrence}),index:e.index,title:r,fields:t,filled:n,meta:c,sourceFile:e.sourceFile,sourceSheet:e.sheetName,highlighted:e.highlighted}}function cC(e,t,n="",a){const r=e.map((E,O)=>({row:E,highlighted:a?.[O]??!1})).filter(E=>E.row.some(O=>je(O))),c=r.map(E=>E.row);if(!c.length)return{headerIndex:0,headers:[],records:[],columns:[],signals:["Keine auswertbaren Inhalte gefunden."],title:""};const l=c.length===1,f=!l&&nC(c),T=l?-1:f?Math.max(0,c.findIndex(E=>o4(E[0]))):c4(c),p=T>0?c.slice(0,T).flat().map(je).filter(Boolean).join(" · "):"",m=l?c[0].length===1?["Hinweis"]:Ph(c[0].map(()=>"")):f?["Feld","Wert"]:Ph(c[T]??[]),g=l?r:r.slice(f?T:T+1).filter(E=>E.row.some(O=>je(O))),S=g.map(E=>E.row),x=new Map,y=g.map((E,O)=>{const N=JSON.stringify(E.row.map(je)),B=x.get(N)??0;return x.set(N,B+1),l4({row:E.row,headers:m,index:O,sourceFile:n,sheetName:t,occurrence:B,highlighted:E.highlighted})}),w=m.map((E,O)=>sC(E,S.map(N=>N[O]))),C=[];p&&C.push(`Titelbereich erkannt: ${p.slice(0,120)}`),f?C.push("Schlüssel/Wert-Tabelle ohne Kopfzeile erkannt: jede Zeile ist ein Wertepaar."):T>0&&C.push(`Die eigentliche Kopfzeile wurde in Zeile ${T+1} erkannt.`);const k=w.filter(E=>E.total&&E.fillRate<20).map(E=>E.header).slice(0,4);return k.length&&C.push(`Sehr leere Felder: ${k.join(", ")}.`),y.length||C.push("Nur Struktur erkannt, aber keine Datensätze unterhalb der Kopfzeile."),C.length||C.push("Struktur wirkt konsistent: Kopfzeile, Datensätze und Felder konnten abgeleitet werden."),{headerIndex:T,headers:m,records:y,columns:w,signals:C,title:p}}function lC(e){const t=e.reduce((n,a)=>Math.max(n,a.length),0);return e.map(n=>Array.from({length:t},(a,i)=>Fi(n[i]??"")))}function es(e,t,n,a,i={},r){const c=lC(t);return{id:Ou(a,e),name:e,rows:c,raw:n,sourceFile:a,sourceSheet:e,analysis:cC(c,e,a,r),...i}}function Mu(e){return e==null?null:e instanceof Date?e.toISOString():typeof e=="string"||typeof e=="number"||typeof e=="boolean"?e:Array.isArray(e)?e.map(Mu):typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Mu(n)])):String(e)}function uC(e,t){return e==null||t===""?"empty":e instanceof Date||/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2})?/.test(t)?"date":typeof e=="number"||vi(t)!==null?"number":typeof e=="boolean"||/^(?:true|false)$/i.test(t)?"boolean":typeof e=="object"?"json":"string"}function dC(e){return{...e,extension:Rp(e)}}function TC(e){return{kind:"format-adapter",id:`${e.toLocaleLowerCase("en-US")}-format-adapter`,version:e==="HTML"?"1.1.1":e==="XML"?"1.1.0":"1.0.0"}}function Mf(e,t,n={},a=[]){return{version:1,source:{fileName:e,...n},processor:t,transformations:[{id:t.id,version:t.version,kind:"decode",lossless:!0},...a]}}function vo(e){const t=e.rawRows??e.decodedRows,n=e.decodedRows.reduce((c,l)=>Math.max(c,l.length),t.reduce((c,l)=>Math.max(c,l.length),0)),a=e.decodedRows.length?c4(e.decodedRows):-1,i=a>=0?[{rowIndex:a,headers:Ph(e.decodedRows[a]??[]),confidence:.7,reason:"Strukturell stärkste Kopfzeile der ersten zwölf Zeilen."}]:[],r=e.decodedRows.map((c,l)=>{const f=t[l]??[],T=Array.from({length:Math.max(c.length,f.length)},(p,m)=>{const g=f[m],S=Fi(c[m]);return{rawValue:Mu(g),decodedValue:S,detectedType:uC(g,S),source:{fileName:e.sourceFile,tableIndex:e.index,rowIndex:l,columnIndex:m,...e.positionForCell?.(l,m)}}});return{index:l,cells:T,source:{fileName:e.sourceFile,tableIndex:e.index,rowIndex:l},highlighted:e.highlightedRows?.[l]}});return{id:Ou(e.sourceFile,e.name,e.index),name:e.name,index:e.index,columns:Array.from({length:n},(c,l)=>({index:l,headerCandidates:i.map(f=>({rowIndex:f.rowIndex,value:f.headers[l]??"",confidence:f.confidence})).filter(f=>je(f.value)!=="")})),rows:r,rawText:e.rawText??e.decodedRows.map(c=>c.map(Fi).join(";")).join(`
|
||
`),headerCandidates:i,attributes:e.attributes??{}}}function b1(e){const t=TC(e.format),n=(e.diagnostics??[]).map(f=>({...f,stage:f.stage??"structure-decoding",provenance:f.provenance??Mf(e.file.name,t)})),a=e.discardedContent??[],i=n.some(f=>f.severity==="error")?"failed":n.some(f=>f.severity==="warning")||a.length?"partial":"complete",r=e.transformations??[],c=e.tables.map(f=>({kind:"table",id:`view-${f.id}`,name:f.name,tableId:f.id,source:{fileName:e.file.name,tableIndex:f.index},provenance:Mf(e.file.name,t,{tableIndex:f.index},[...r,...f.attributes.compatibilityProjection===!0?[{id:"tabular-compatibility-projection",version:"1.0.0",kind:"flatten-for-compatibility",lossless:!1}]:[]]),attributes:f.attributes})),l=(e.additionalViews??[]).map(f=>{const T={fileName:e.file.name,...f.source},p=Mf(e.file.name,t,f.source,r);return f.kind==="hierarchy"?{...f,source:T,provenance:p,attributes:f.attributes??{},nodes:f.nodes.map(m=>({...m,attributes:m.attributes??{},source:{fileName:e.file.name,objectPath:m.path,...m.source}}))}:f.kind==="container"?{...f,source:T,provenance:p,attributes:f.attributes??{},entries:f.entries.map(m=>({...m,source:{fileName:e.file.name,containerEntryPath:m.path}}))}:{...f,source:T,provenance:p,attributes:f.attributes??{}}});return{version:1,status:i,format:e.format,file:dC(e.file),rawText:e.rawText,tables:e.tables,diagnostics:n,discardedContent:a,views:[...c,...l],processing:[{stage:"format-decoding",status:i==="failed"?"failed":"complete",processor:t,diagnosticCodes:[]},{stage:"structure-decoding",status:i,processor:t,diagnosticCodes:n.map(f=>f.code)}]}}function w1(e){return{fileName:e.file.name,fileSize:e.file.sizeBytes,lastModified:e.file.lastModified,format:e.format,rawText:e.rawText,sheets:e.tables.map(t=>es(t.name,t.rows.map(n=>n.cells.map(a=>a.decodedValue)),t.rawText,e.file.name,{id:t.id,sourceTableIndex:t.index,workbookIndex:typeof t.attributes.workbookIndex=="number"?t.attributes.workbookIndex:void 0,hidden:typeof t.attributes.hidden=="number"?t.attributes.hidden:void 0},t.rows.map(n=>n.highlighted??!1))),intermediate:e}}function u4(e,t){const n=[],a=[];let i=[],r="",c=!1,l=1,f=1;for(let T=0;T<e.length;T+=1){const p=e[T],m=e[T+1];p==='"'?c&&m==='"'?(r+='"',T+=1):c=!c:p===t&&!c?(i.push(r),r=""):(p===`
|
||
`||p==="\r")&&!c?(p==="\r"&&m===`
|
||
`&&(T+=1),i.push(r),i.some(g=>g!=="")&&(n.push(i),a.push(f)),i=[],r="",l+=1,f=l):(r+=p,(p===`
|
||
`||p==="\r")&&c&&(p==="\r"&&m===`
|
||
`&&(r+=`
|
||
`,T+=1),l+=1))}return i.push(r),i.some(T=>T!=="")&&(n.push(i),a.push(f)),{rows:n,rowStartLines:a,unclosedQuote:c}}function fC(e,t){return u4(e,t).rows}function hC(e){const t=e.split(/\r?\n/).filter(Boolean).slice(0,8);return[",",";"," ","|"].map(a=>{const r=t.map(l=>fC(l,a)[0]?.length??1).filter(l=>l>1),c=r.length?r.filter(l=>l===r[0]).length:0;return{candidate:a,score:c*100+(r[0]??1)}}).sort((a,i)=>i.score-a.score)[0].candidate}function pC(e,t,n="auto"){const a=n==="auto"||!n?hC(t):n,i=a==="\\t"?" ":a,r=u4(t,i),c=r.unclosedQuote?[{severity:"warning",code:"csv-unclosed-quote",message:"Die CSV-Datei endet innerhalb eines nicht geschlossenen Textfelds."}]:[];return b1({file:e,format:"CSV",rawText:t,tables:[vo({sourceFile:e.name,name:"CSV",index:0,decodedRows:r.rows,rawRows:r.rows,rawText:t,attributes:{delimiter:i}})],diagnostics:c})}function mC(e,t,n="auto"){return w1(pC(e,t,n))}var d4=1252,gC=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],Ip={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},Np=function(e){gC.indexOf(e)!=-1&&(d4=Ip[0]=e)};function vC(){Np(1252)}var Li=function(e){Np(e)};function T4(){Li(1200),vC()}function yv(e){for(var t=[],n=0,a=e.length;n<a;++n)t[n]=e.charCodeAt(n);return t}function xC(e){for(var t=[],n=0;n<e.length>>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n)+(e.charCodeAt(2*n+1)<<8));return t.join("")}function f4(e){for(var t=[],n=0;n<e.length>>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n+1)+(e.charCodeAt(2*n)<<8));return t.join("")}var Oc=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return t==255&&n==254?xC(e.slice(2)):t==254&&n==255?f4(e.slice(2)):t==65279?e.slice(1):e},Ul=function(t){return String.fromCharCode(t)},Sv=function(t){return String.fromCharCode(t)},n1,dr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function bv(e){for(var t="",n=0,a=0,i=0,r=0,c=0,l=0,f=0,T=0;T<e.length;)n=e.charCodeAt(T++),r=n>>2,a=e.charCodeAt(T++),c=(n&3)<<4|a>>4,i=e.charCodeAt(T++),l=(a&15)<<2|i>>6,f=i&63,isNaN(a)?l=f=64:isNaN(i)&&(f=64),t+=dr.charAt(r)+dr.charAt(c)+dr.charAt(l)+dr.charAt(f);return t}function Qa(e){var t="",n=0,a=0,i=0,r=0,c=0,l=0,f=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var T=0;T<e.length;)r=dr.indexOf(e.charAt(T++)),c=dr.indexOf(e.charAt(T++)),n=r<<2|c>>4,t+=String.fromCharCode(n),l=dr.indexOf(e.charAt(T++)),a=(c&15)<<4|l>>2,l!==64&&(t+=String.fromCharCode(a)),f=dr.indexOf(e.charAt(T++)),i=(l&3)<<6|f,f!==64&&(t+=String.fromCharCode(i));return t}var Mt=(function(){return typeof Buffer<"u"&&typeof process<"u"&&typeof process.versions<"u"&&!!process.versions.node})(),u0=(function(){if(typeof Buffer<"u"){var e=!Buffer.from;if(!e)try{Buffer.from("foo","utf8")}catch{e=!0}return e?function(t,n){return n?new Buffer(t,n):new Buffer(t)}:Buffer.from.bind(Buffer)}return function(){}})();function pr(e){return Mt?Buffer.alloc?Buffer.alloc(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}function wv(e){return Mt?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}var Oi=function(t){return Mt?u0(t,"binary"):t.split("").map(function(n){return n.charCodeAt(0)&255})};function d0(e){if(Array.isArray(e))return e.map(function(a){return String.fromCharCode(a)}).join("");for(var t=[],n=0;n<e.length;++n)t[n]=String.fromCharCode(e[n]);return t.join("")}function Op(e){if(typeof ArrayBuffer>"u")throw new Error("Unsupported");if(e instanceof ArrayBuffer)return Op(new Uint8Array(e));for(var t=new Array(e.length),n=0;n<e.length;++n)t[n]=e[n];return t}var lr=Mt?function(e){return Buffer.concat(e.map(function(t){return Buffer.isBuffer(t)?t:u0(t)}))}:function(e){if(typeof Uint8Array<"u"){var t=0,n=0;for(t=0;t<e.length;++t)n+=e[t].length;var a=new Uint8Array(n),i=0;for(t=0,n=0;t<e.length;n+=i,++t)if(i=e[t].length,e[t]instanceof Uint8Array)a.set(e[t],n);else{if(typeof e[t]=="string")throw"wtf";a.set(new Uint8Array(e[t]),n)}return a}return[].concat.apply([],e.map(function(r){return Array.isArray(r)?r:[].slice.call(r)}))};function yC(e){for(var t=[],n=0,a=e.length+250,i=pr(e.length+255),r=0;r<e.length;++r){var c=e.charCodeAt(r);if(c<128)i[n++]=c;else if(c<2048)i[n++]=192|c>>6&31,i[n++]=128|c&63;else if(c>=55296&&c<57344){c=(c&1023)+64;var l=e.charCodeAt(++r)&1023;i[n++]=240|c>>8&7,i[n++]=128|c>>2&63,i[n++]=128|l>>6&15|(c&3)<<4,i[n++]=128|l&63}else i[n++]=224|c>>12&15,i[n++]=128|c>>6&63,i[n++]=128|c&63;n>a&&(t.push(i.slice(0,n)),n=0,i=pr(65535),a=65530)}return t.push(i.slice(0,n)),lr(t)}var Oa=/\u0000/g,Mc=/[\u0001-\u0006]/g;function uo(e){for(var t="",n=e.length-1;n>=0;)t+=e.charAt(n--);return t}function Pi(e,t){var n=""+e;return n.length>=t?n:gn("0",t-n.length)+n}function Mp(e,t){var n=""+e;return n.length>=t?n:gn(" ",t-n.length)+n}function ju(e,t){var n=""+e;return n.length>=t?n:n+gn(" ",t-n.length)}function SC(e,t){var n=""+Math.round(e);return n.length>=t?n:gn("0",t-n.length)+n}function bC(e,t){var n=""+e;return n.length>=t?n:gn("0",t-n.length)+n}var Cv=Math.pow(2,32);function $0(e,t){if(e>Cv||e<-Cv)return SC(e,t);var n=Math.round(e);return bC(n,t)}function Fu(e,t){return t=t||0,e.length>=7+t&&(e.charCodeAt(t)|32)===103&&(e.charCodeAt(t+1)|32)===101&&(e.charCodeAt(t+2)|32)===110&&(e.charCodeAt(t+3)|32)===101&&(e.charCodeAt(t+4)|32)===114&&(e.charCodeAt(t+5)|32)===97&&(e.charCodeAt(t+6)|32)===108}var Ev=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],jf=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function wC(e){return e||(e={}),e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',e}var vt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "'},kv={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},CC={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function Lu(e,t,n){for(var a=e<0?-1:1,i=e*a,r=0,c=1,l=0,f=1,T=0,p=0,m=Math.floor(i);T<t&&(m=Math.floor(i),l=m*c+r,p=m*T+f,!(i-m<5e-8));)i=1/(i-m),r=c,c=l,f=T,T=p;if(p>t&&(T>t?(p=f,l=r):(p=T,l=c)),!n)return[0,a*l,p];var g=Math.floor(a*l/p);return[g,a*l-g*p,p]}function $r(e,t,n){if(e>2958465||e<0)return null;var a=e|0,i=Math.floor(86400*(e-a)),r=0,c=[],l={D:a,T:i,u:86400*(e-a)-i,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6&&(l.u=0),t&&t.date1904&&(a+=1462),l.u>.9999&&(l.u=0,++i==86400&&(l.T=i=0,++a,++l.D)),a===60)c=n?[1317,10,29]:[1900,2,29],r=3;else if(a===0)c=n?[1317,8,29]:[1900,1,0],r=6;else{a>60&&--a;var f=new Date(1900,0,1);f.setDate(f.getDate()+a-1),c=[f.getFullYear(),f.getMonth()+1,f.getDate()],r=f.getDay(),a<60&&(r=(r+6)%7),n&&(r=IC(f,c))}return l.y=c[0],l.m=c[1],l.d=c[2],l.S=i%60,i=Math.floor(i/60),l.M=i%60,i=Math.floor(i/60),l.H=i,l.q=r,l}var h4=new Date(1899,11,31,0,0,0),EC=h4.getTime(),kC=new Date(1900,2,1,0,0,0);function p4(e,t){var n=e.getTime();return t?n-=1461*24*60*60*1e3:e>=kC&&(n+=1440*60*1e3),(n-(EC+(e.getTimezoneOffset()-h4.getTimezoneOffset())*6e4))/(1440*60*1e3)}function jp(e){return e.indexOf(".")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function AC(e){return e.indexOf("E")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}function RC(e){var t=e<0?12:11,n=jp(e.toFixed(12));return n.length<=t||(n=e.toPrecision(10),n.length<=t)?n:e.toExponential(5)}function DC(e){var t=jp(e.toFixed(11));return t.length>(e<0?12:11)||t==="0"||t==="-0"?e.toPrecision(6):t}function a1(e){var t=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),n;return t>=-4&&t<=-1?n=e.toPrecision(10+t):Math.abs(t)<=9?n=RC(e):t===10?n=e.toFixed(10).substr(0,12):n=DC(e),jp(AC(n.toUpperCase()))}function i0(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?e.toString(10):a1(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return xi(14,p4(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function IC(e,t){t[0]-=581;var n=e.getDay();return e<60&&(n=(n+6)%7),n}function NC(e,t,n,a){var i="",r=0,c=0,l=n.y,f,T=0;switch(e){case 98:l=n.y+543;case 121:switch(t.length){case 1:case 2:f=l%100,T=2;break;default:f=l%1e4,T=4;break}break;case 109:switch(t.length){case 1:case 2:f=n.m,T=t.length;break;case 3:return jf[n.m-1][1];case 5:return jf[n.m-1][0];default:return jf[n.m-1][2]}break;case 100:switch(t.length){case 1:case 2:f=n.d,T=t.length;break;case 3:return Ev[n.q][0];default:return Ev[n.q][1]}break;case 104:switch(t.length){case 1:case 2:f=1+(n.H+11)%12,T=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:f=n.H,T=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:f=n.M,T=t.length;break;default:throw"bad minute format: "+t}break;case 115:if(t!="s"&&t!="ss"&&t!=".0"&&t!=".00"&&t!=".000")throw"bad second format: "+t;return n.u===0&&(t=="s"||t=="ss")?Pi(n.S,t.length):(a>=2?c=a===3?1e3:100:c=a===1?10:1,r=Math.round(c*(n.S+n.u)),r>=60*c&&(r=0),t==="s"?r===0?"0":""+r/c:(i=Pi(r,2+a),t==="ss"?i.substr(0,2):"."+i.substr(2,t.length-1)));case 90:switch(t){case"[h]":case"[hh]":f=n.D*24+n.H;break;case"[m]":case"[mm]":f=(n.D*24+n.H)*60+n.M;break;case"[s]":case"[ss]":f=((n.D*24+n.H)*60+n.M)*60+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+t}T=t.length===3?1:2;break;case 101:f=l,T=1;break}var p=T>0?Pi(f,T):"";return p}function Tr(e){var t=3;if(e.length<=t)return e;for(var n=e.length%t,a=e.substr(0,n);n!=e.length;n+=t)a+=(a.length>0?",":"")+e.substr(n,t);return a}var m4=/%/g;function OC(e,t,n){var a=t.replace(m4,""),i=t.length-a.length;return Ds(e,a,n*Math.pow(10,2*i))+gn("%",i)}function MC(e,t,n){for(var a=t.length-1;t.charCodeAt(a-1)===44;)--a;return Ds(e,t.substr(0,a),n/Math.pow(10,3*(t.length-a)))}function g4(e,t){var n,a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(t==0)return"0.0E+0";if(t<0)return"-"+g4(e,-t);var i=e.indexOf(".");i===-1&&(i=e.indexOf("E"));var r=Math.floor(Math.log(t)*Math.LOG10E)%i;if(r<0&&(r+=i),n=(t/Math.pow(10,r)).toPrecision(a+1+(i+r)%i),n.indexOf("e")===-1){var c=Math.floor(Math.log(t)*Math.LOG10E);for(n.indexOf(".")===-1?n=n.charAt(0)+"."+n.substr(1)+"E+"+(c-n.length+r):n+="E+"+(c-r);n.substr(0,2)==="0.";)n=n.charAt(0)+n.substr(2,i)+"."+n.substr(2+i),n=n.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(l,f,T,p){return f+T+p.substr(0,(i+r)%i)+"."+p.substr(r)+"E"})}else n=t.toExponential(a);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}var v4=/# (\?+)( ?)\/( ?)(\d+)/;function jC(e,t,n){var a=parseInt(e[4],10),i=Math.round(t*a),r=Math.floor(i/a),c=i-r*a,l=a;return n+(r===0?"":""+r)+" "+(c===0?gn(" ",e[1].length+1+e[4].length):Mp(c,e[1].length)+e[2]+"/"+e[3]+Pi(l,e[4].length))}function FC(e,t,n){return n+(t===0?"":""+t)+gn(" ",e[1].length+2+e[4].length)}var x4=/^#*0*\.([0#]+)/,y4=/\).*[0#]/,S4=/\(###\) ###\\?-####/;function Aa(e){for(var t="",n,a=0;a!=e.length;++a)switch(n=e.charCodeAt(a)){case 35:break;case 63:t+=" ";break;case 48:t+="0";break;default:t+=String.fromCharCode(n)}return t}function Av(e,t){var n=Math.pow(10,t);return""+Math.round(e*n)/n}function Rv(e,t){var n=e-Math.floor(e),a=Math.pow(10,t);return t<(""+Math.round(n*a)).length?0:Math.round(n*a)}function LC(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}function PC(e){return e<2147483647&&e>-2147483648?""+(e>=0?e|0:e-1|0):""+Math.floor(e)}function fi(e,t,n){if(e.charCodeAt(0)===40&&!t.match(y4)){var a=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return n>=0?fi("n",a,n):"("+fi("n",a,-n)+")"}if(t.charCodeAt(t.length-1)===44)return MC(e,t,n);if(t.indexOf("%")!==-1)return OC(e,t,n);if(t.indexOf("E")!==-1)return g4(t,n);if(t.charCodeAt(0)===36)return"$"+fi(e,t.substr(t.charAt(1)==" "?2:1),n);var i,r,c,l,f=Math.abs(n),T=n<0?"-":"";if(t.match(/^00+$/))return T+$0(f,t.length);if(t.match(/^[#?]+$/))return i=$0(n,0),i==="0"&&(i=""),i.length>t.length?i:Aa(t.substr(0,t.length-i.length))+i;if(r=t.match(v4))return jC(r,f,T);if(t.match(/^#+0+$/))return T+$0(f,t.length-t.indexOf("0"));if(r=t.match(x4))return i=Av(n,r[1].length).replace(/^([^\.]+)$/,"$1."+Aa(r[1])).replace(/\.$/,"."+Aa(r[1])).replace(/\.(\d*)$/,function(x,y){return"."+y+gn("0",Aa(r[1]).length-y.length)}),t.indexOf("0.")!==-1?i:i.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),r=t.match(/^(0*)\.(#*)$/))return T+Av(f,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".");if(r=t.match(/^#{1,3},##0(\.?)$/))return T+Tr($0(f,0));if(r=t.match(/^#,##0\.([#0]*0)$/))return n<0?"-"+fi(e,t,-n):Tr(""+(Math.floor(n)+LC(n,r[1].length)))+"."+Pi(Rv(n,r[1].length),r[1].length);if(r=t.match(/^#,#*,#0/))return fi(e,t.replace(/^#,#*,/,""),n);if(r=t.match(/^([0#]+)(\\?-([0#]+))+$/))return i=uo(fi(e,t.replace(/[\\-]/g,""),n)),c=0,uo(uo(t.replace(/\\/g,"")).replace(/[0#]/g,function(x){return c<i.length?i.charAt(c++):x==="0"?"0":""}));if(t.match(S4))return i=fi(e,"##########",n),"("+i.substr(0,3)+") "+i.substr(3,3)+"-"+i.substr(6);var p="";if(r=t.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return c=Math.min(r[4].length,7),l=Lu(f,Math.pow(10,c)-1,!1),i=""+T,p=Ds("n",r[1],l[1]),p.charAt(p.length-1)==" "&&(p=p.substr(0,p.length-1)+"0"),i+=p+r[2]+"/"+r[3],p=ju(l[2],c),p.length<r[4].length&&(p=Aa(r[4].substr(r[4].length-p.length))+p),i+=p,i;if(r=t.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return c=Math.min(Math.max(r[1].length,r[4].length),7),l=Lu(f,Math.pow(10,c)-1,!0),T+(l[0]||(l[1]?"":"0"))+" "+(l[1]?Mp(l[1],c)+r[2]+"/"+r[3]+ju(l[2],c):gn(" ",2*c+1+r[2].length+r[3].length));if(r=t.match(/^[#0?]+$/))return i=$0(n,0),t.length<=i.length?i:Aa(t.substr(0,t.length-i.length))+i;if(r=t.match(/^([#0?]+)\.([#0]+)$/)){i=""+n.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1"),c=i.indexOf(".");var m=t.indexOf(".")-c,g=t.length-i.length-m;return Aa(t.substr(0,m)+i+t.substr(t.length-g))}if(r=t.match(/^00,000\.([#0]*0)$/))return c=Rv(n,r[1].length),n<0?"-"+fi(e,t,-n):Tr(PC(n)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(x){return"00,"+(x.length<3?Pi(0,3-x.length):"")+x})+"."+Pi(c,r[1].length);switch(t){case"###,##0.00":return fi(e,"#,##0.00",n);case"###,###":case"##,###":case"#,###":var S=Tr($0(f,0));return S!=="0"?T+S:"";case"###,###.00":return fi(e,"###,##0.00",n).replace(/^0\./,".");case"#,###.00":return fi(e,"#,##0.00",n).replace(/^0\./,".")}throw new Error("unsupported format |"+t+"|")}function _C(e,t,n){for(var a=t.length-1;t.charCodeAt(a-1)===44;)--a;return Ds(e,t.substr(0,a),n/Math.pow(10,3*(t.length-a)))}function qC(e,t,n){var a=t.replace(m4,""),i=t.length-a.length;return Ds(e,a,n*Math.pow(10,2*i))+gn("%",i)}function b4(e,t){var n,a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(t==0)return"0.0E+0";if(t<0)return"-"+b4(e,-t);var i=e.indexOf(".");i===-1&&(i=e.indexOf("E"));var r=Math.floor(Math.log(t)*Math.LOG10E)%i;if(r<0&&(r+=i),n=(t/Math.pow(10,r)).toPrecision(a+1+(i+r)%i),!n.match(/[Ee]/)){var c=Math.floor(Math.log(t)*Math.LOG10E);n.indexOf(".")===-1?n=n.charAt(0)+"."+n.substr(1)+"E+"+(c-n.length+r):n+="E+"+(c-r),n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(l,f,T,p){return f+T+p.substr(0,(i+r)%i)+"."+p.substr(r)+"E"})}else n=t.toExponential(a);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}function Ki(e,t,n){if(e.charCodeAt(0)===40&&!t.match(y4)){var a=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return n>=0?Ki("n",a,n):"("+Ki("n",a,-n)+")"}if(t.charCodeAt(t.length-1)===44)return _C(e,t,n);if(t.indexOf("%")!==-1)return qC(e,t,n);if(t.indexOf("E")!==-1)return b4(t,n);if(t.charCodeAt(0)===36)return"$"+Ki(e,t.substr(t.charAt(1)==" "?2:1),n);var i,r,c,l,f=Math.abs(n),T=n<0?"-":"";if(t.match(/^00+$/))return T+Pi(f,t.length);if(t.match(/^[#?]+$/))return i=""+n,n===0&&(i=""),i.length>t.length?i:Aa(t.substr(0,t.length-i.length))+i;if(r=t.match(v4))return FC(r,f,T);if(t.match(/^#+0+$/))return T+Pi(f,t.length-t.indexOf("0"));if(r=t.match(x4))return i=(""+n).replace(/^([^\.]+)$/,"$1."+Aa(r[1])).replace(/\.$/,"."+Aa(r[1])),i=i.replace(/\.(\d*)$/,function(x,y){return"."+y+gn("0",Aa(r[1]).length-y.length)}),t.indexOf("0.")!==-1?i:i.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),r=t.match(/^(0*)\.(#*)$/))return T+(""+f).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".");if(r=t.match(/^#{1,3},##0(\.?)$/))return T+Tr(""+f);if(r=t.match(/^#,##0\.([#0]*0)$/))return n<0?"-"+Ki(e,t,-n):Tr(""+n)+"."+gn("0",r[1].length);if(r=t.match(/^#,#*,#0/))return Ki(e,t.replace(/^#,#*,/,""),n);if(r=t.match(/^([0#]+)(\\?-([0#]+))+$/))return i=uo(Ki(e,t.replace(/[\\-]/g,""),n)),c=0,uo(uo(t.replace(/\\/g,"")).replace(/[0#]/g,function(x){return c<i.length?i.charAt(c++):x==="0"?"0":""}));if(t.match(S4))return i=Ki(e,"##########",n),"("+i.substr(0,3)+") "+i.substr(3,3)+"-"+i.substr(6);var p="";if(r=t.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return c=Math.min(r[4].length,7),l=Lu(f,Math.pow(10,c)-1,!1),i=""+T,p=Ds("n",r[1],l[1]),p.charAt(p.length-1)==" "&&(p=p.substr(0,p.length-1)+"0"),i+=p+r[2]+"/"+r[3],p=ju(l[2],c),p.length<r[4].length&&(p=Aa(r[4].substr(r[4].length-p.length))+p),i+=p,i;if(r=t.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return c=Math.min(Math.max(r[1].length,r[4].length),7),l=Lu(f,Math.pow(10,c)-1,!0),T+(l[0]||(l[1]?"":"0"))+" "+(l[1]?Mp(l[1],c)+r[2]+"/"+r[3]+ju(l[2],c):gn(" ",2*c+1+r[2].length+r[3].length));if(r=t.match(/^[#0?]+$/))return i=""+n,t.length<=i.length?i:Aa(t.substr(0,t.length-i.length))+i;if(r=t.match(/^([#0]+)\.([#0]+)$/)){i=""+n.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1"),c=i.indexOf(".");var m=t.indexOf(".")-c,g=t.length-i.length-m;return Aa(t.substr(0,m)+i+t.substr(t.length-g))}if(r=t.match(/^00,000\.([#0]*0)$/))return n<0?"-"+Ki(e,t,-n):Tr(""+n).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(x){return"00,"+(x.length<3?Pi(0,3-x.length):"")+x})+"."+Pi(0,r[1].length);switch(t){case"###,###":case"##,###":case"#,###":var S=Tr(""+f);return S!=="0"?T+S:"";default:if(t.match(/\.[0#?]*$/))return Ki(e,t.slice(0,t.lastIndexOf(".")),n)+Aa(t.slice(t.lastIndexOf(".")))}throw new Error("unsupported format |"+t+"|")}function Ds(e,t,n){return(n|0)===n?Ki(e,t,n):fi(e,t,n)}function BC(e){for(var t=[],n=!1,a=0,i=0;a<e.length;++a)switch(e.charCodeAt(a)){case 34:n=!n;break;case 95:case 42:case 92:++a;break;case 59:t[t.length]=e.substr(i,a-i),i=a+1}if(t[t.length]=e.substr(i),n===!0)throw new Error("Format |"+e+"| unterminated string ");return t}var w4=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function Co(e){for(var t=0,n="",a="";t<e.length;)switch(n=e.charAt(t)){case"G":Fu(e,t)&&(t+=6),t++;break;case'"':for(;e.charCodeAt(++t)!==34&&t<e.length;);++t;break;case"\\":t+=2;break;case"_":t+=2;break;case"@":++t;break;case"B":case"b":if(e.charAt(t+1)==="1"||e.charAt(t+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(e.substr(t,3).toUpperCase()==="A/P"||e.substr(t,5).toUpperCase()==="AM/PM"||e.substr(t,5).toUpperCase()==="上午/下午")return!0;++t;break;case"[":for(a=n;e.charAt(t++)!=="]"&&t<e.length;)a+=e.charAt(t);if(a.match(w4))return!0;break;case".":case"0":case"#":for(;t<e.length&&("0#?.,E+-%".indexOf(n=e.charAt(++t))>-1||n=="\\"&&e.charAt(t+1)=="-"&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===n;);break;case"*":++t,(e.charAt(t)==" "||e.charAt(t)=="*")&&++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t<e.length&&"0123456789".indexOf(e.charAt(++t))>-1;);break;case" ":++t;break;default:++t;break}return!1}function UC(e,t,n,a){for(var i=[],r="",c=0,l="",f="t",T,p,m,g="H";c<e.length;)switch(l=e.charAt(c)){case"G":if(!Fu(e,c))throw new Error("unrecognized character "+l+" in "+e);i[i.length]={t:"G",v:"General"},c+=7;break;case'"':for(r="";(m=e.charCodeAt(++c))!==34&&c<e.length;)r+=String.fromCharCode(m);i[i.length]={t:"t",v:r},++c;break;case"\\":var S=e.charAt(++c),x=S==="("||S===")"?S:"t";i[i.length]={t:x,v:S},++c;break;case"_":i[i.length]={t:"t",v:" "},c+=2;break;case"@":i[i.length]={t:"T",v:t},++c;break;case"B":case"b":if(e.charAt(c+1)==="1"||e.charAt(c+1)==="2"){if(T==null&&(T=$r(t,n,e.charAt(c+1)==="2"),T==null))return"";i[i.length]={t:"X",v:e.substr(c,2)},f=l,c+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":l=l.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if(t<0||T==null&&(T=$r(t,n),T==null))return"";for(r=l;++c<e.length&&e.charAt(c).toLowerCase()===l;)r+=l;l==="m"&&f.toLowerCase()==="h"&&(l="M"),l==="h"&&(l=g),i[i.length]={t:l,v:r},f=l;break;case"A":case"a":case"上":var y={t:l,v:l};if(T==null&&(T=$r(t,n)),e.substr(c,3).toUpperCase()==="A/P"?(T!=null&&(y.v=T.H>=12?"P":"A"),y.t="T",g="h",c+=3):e.substr(c,5).toUpperCase()==="AM/PM"?(T!=null&&(y.v=T.H>=12?"PM":"AM"),y.t="T",c+=5,g="h"):e.substr(c,5).toUpperCase()==="上午/下午"?(T!=null&&(y.v=T.H>=12?"下午":"上午"),y.t="T",c+=5,g="h"):(y.t="t",++c),T==null&&y.t==="T")return"";i[i.length]=y,f=l;break;case"[":for(r=l;e.charAt(c++)!=="]"&&c<e.length;)r+=e.charAt(c);if(r.slice(-1)!=="]")throw'unterminated "[" block: |'+r+"|";if(r.match(w4)){if(T==null&&(T=$r(t,n),T==null))return"";i[i.length]={t:"Z",v:r.toLowerCase()},f=r.charAt(1)}else r.indexOf("$")>-1&&(r=(r.match(/\$([^-\[\]]*)/)||[])[1]||"$",Co(e)||(i[i.length]={t:"t",v:r}));break;case".":if(T!=null){for(r=l;++c<e.length&&(l=e.charAt(c))==="0";)r+=l;i[i.length]={t:"s",v:r};break}case"0":case"#":for(r=l;++c<e.length&&"0#?.,E+-%".indexOf(l=e.charAt(c))>-1;)r+=l;i[i.length]={t:"n",v:r};break;case"?":for(r=l;e.charAt(++c)===l;)r+=l;i[i.length]={t:l,v:r},f=l;break;case"*":++c,(e.charAt(c)==" "||e.charAt(c)=="*")&&++c;break;case"(":case")":i[i.length]={t:a===1?"t":l,v:l},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(r=l;c<e.length&&"0123456789".indexOf(e.charAt(++c))>-1;)r+=e.charAt(c);i[i.length]={t:"D",v:r};break;case" ":i[i.length]={t:l,v:l},++c;break;case"$":i[i.length]={t:"t",v:"$"},++c;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(l)===-1)throw new Error("unrecognized character "+l+" in "+e);i[i.length]={t:"t",v:l},++c;break}var w=0,C=0,k;for(c=i.length-1,f="t";c>=0;--c)switch(i[c].t){case"h":case"H":i[c].t=g,f="h",w<1&&(w=1);break;case"s":(k=i[c].v.match(/\.0+$/))&&(C=Math.max(C,k[0].length-1)),w<3&&(w=3);case"d":case"y":case"M":case"e":f=i[c].t;break;case"m":f==="s"&&(i[c].t="M",w<2&&(w=2));break;case"X":break;case"Z":w<1&&i[c].v.match(/[Hh]/)&&(w=1),w<2&&i[c].v.match(/[Mm]/)&&(w=2),w<3&&i[c].v.match(/[Ss]/)&&(w=3)}switch(w){case 0:break;case 1:T.u>=.5&&(T.u=0,++T.S),T.S>=60&&(T.S=0,++T.M),T.M>=60&&(T.M=0,++T.H);break;case 2:T.u>=.5&&(T.u=0,++T.S),T.S>=60&&(T.S=0,++T.M);break}var E="",O;for(c=0;c<i.length;++c)switch(i[c].t){case"t":case"T":case" ":case"D":break;case"X":i[c].v="",i[c].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":i[c].v=NC(i[c].t.charCodeAt(0),i[c].v,T,C),i[c].t="t";break;case"n":case"?":for(O=c+1;i[O]!=null&&((l=i[O].t)==="?"||l==="D"||(l===" "||l==="t")&&i[O+1]!=null&&(i[O+1].t==="?"||i[O+1].t==="t"&&i[O+1].v==="/")||i[c].t==="("&&(l===" "||l==="n"||l===")")||l==="t"&&(i[O].v==="/"||i[O].v===" "&&i[O+1]!=null&&i[O+1].t=="?"));)i[c].v+=i[O].v,i[O]={v:"",t:";"},++O;E+=i[c].v,c=O-1;break;case"G":i[c].t="t",i[c].v=i0(t,n);break}var N="",B,A;if(E.length>0){E.charCodeAt(0)==40?(B=t<0&&E.charCodeAt(0)===45?-t:t,A=Ds("n",E,B)):(B=t<0&&a>1?-t:t,A=Ds("n",E,B),B<0&&i[0]&&i[0].t=="t"&&(A=A.substr(1),i[0].v="-"+i[0].v)),O=A.length-1;var z=i.length;for(c=0;c<i.length;++c)if(i[c]!=null&&i[c].t!="t"&&i[c].v.indexOf(".")>-1){z=c;break}var P=i.length;if(z===i.length&&A.indexOf("E")===-1){for(c=i.length-1;c>=0;--c)i[c]==null||"n?".indexOf(i[c].t)===-1||(O>=i[c].v.length-1?(O-=i[c].v.length,i[c].v=A.substr(O+1,i[c].v.length)):O<0?i[c].v="":(i[c].v=A.substr(0,O+1),O=-1),i[c].t="t",P=c);O>=0&&P<i.length&&(i[P].v=A.substr(0,O+1)+i[P].v)}else if(z!==i.length&&A.indexOf("E")===-1){for(O=A.indexOf(".")-1,c=z;c>=0;--c)if(!(i[c]==null||"n?".indexOf(i[c].t)===-1)){for(p=i[c].v.indexOf(".")>-1&&c===z?i[c].v.indexOf(".")-1:i[c].v.length-1,N=i[c].v.substr(p+1);p>=0;--p)O>=0&&(i[c].v.charAt(p)==="0"||i[c].v.charAt(p)==="#")&&(N=A.charAt(O--)+N);i[c].v=N,i[c].t="t",P=c}for(O>=0&&P<i.length&&(i[P].v=A.substr(0,O+1)+i[P].v),O=A.indexOf(".")+1,c=z;c<i.length;++c)if(!(i[c]==null||"n?(".indexOf(i[c].t)===-1&&c!==z)){for(p=i[c].v.indexOf(".")>-1&&c===z?i[c].v.indexOf(".")+1:0,N=i[c].v.substr(0,p);p<i[c].v.length;++p)O<A.length&&(N+=A.charAt(O++));i[c].v=N,i[c].t="t",P=c}}}for(c=0;c<i.length;++c)i[c]!=null&&"n?".indexOf(i[c].t)>-1&&(B=a>1&&t<0&&c>0&&i[c-1].v==="-"?-t:t,i[c].v=Ds(i[c].t,i[c].v,B),i[c].t="t");var K="";for(c=0;c!==i.length;++c)i[c]!=null&&(K+=i[c].v);return K}var Dv=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function Iv(e,t){if(t==null)return!1;var n=parseFloat(t[2]);switch(t[1]){case"=":if(e==n)return!0;break;case">":if(e>n)return!0;break;case"<":if(e<n)return!0;break;case"<>":if(e!=n)return!0;break;case">=":if(e>=n)return!0;break;case"<=":if(e<=n)return!0;break}return!1}function zC(e,t){var n=BC(e),a=n.length,i=n[a-1].indexOf("@");if(a<4&&i>-1&&--a,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if(typeof t!="number")return[4,n.length===4||i>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=i>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=i>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=i>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"];break}var r=t>0?n[0]:t<0?n[1]:n[2];if(n[0].indexOf("[")===-1&&n[1].indexOf("[")===-1)return[a,r];if(n[0].match(/\[[=<>]/)!=null||n[1].match(/\[[=<>]/)!=null){var c=n[0].match(Dv),l=n[1].match(Dv);return Iv(t,c)?[a,n[0]]:Iv(t,l)?[a,n[1]]:[a,n[c!=null&&l!=null?2:1]]}return[a,r]}function xi(e,t,n){n==null&&(n={});var a="";switch(typeof e){case"string":e=="m/d/yy"&&n.dateNF?a=n.dateNF:a=e;break;case"number":e==14&&n.dateNF?a=n.dateNF:a=(n.table!=null?n.table:vt)[e],a==null&&(a=n.table&&n.table[kv[e]]||vt[kv[e]]),a==null&&(a=CC[e]||"General");break}if(Fu(a,0))return i0(t,n);t instanceof Date&&(t=p4(t,n.date1904));var i=zC(a,t);if(Fu(i[1]))return i0(t,n);if(t===!0)t="TRUE";else if(t===!1)t="FALSE";else if(t===""||t==null)return"";return UC(i[1],t,n,i[0])}function e0(e,t){if(typeof t!="number"){t=+t||-1;for(var n=0;n<392;++n){if(vt[n]==null){t<0&&(t=n);continue}if(vt[n]==e){t=n;break}}t<0&&(t=391)}return vt[t]=e,t}function C4(){vt=wC()}var WC={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},E4=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function VC(e){var t=typeof e=="number"?vt[e]:e;return t=t.replace(E4,"(\\d+)"),new RegExp("^"+t+"$")}function HC(e,t,n){var a=-1,i=-1,r=-1,c=-1,l=-1,f=-1;(t.match(E4)||[]).forEach(function(m,g){var S=parseInt(n[g+1],10);switch(m.toLowerCase().charAt(0)){case"y":a=S;break;case"d":r=S;break;case"h":c=S;break;case"s":f=S;break;case"m":c>=0?l=S:i=S;break}}),f>=0&&l==-1&&i>=0&&(l=i,i=-1);var T=(""+(a>=0?a:new Date().getFullYear())).slice(-4)+"-"+("00"+(i>=1?i:1)).slice(-2)+"-"+("00"+(r>=1?r:1)).slice(-2);T.length==7&&(T="0"+T),T.length==8&&(T="20"+T);var p=("00"+(c>=0?c:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2)+":"+("00"+(f>=0?f:0)).slice(-2);return c==-1&&l==-1&&f==-1?T:a==-1&&i==-1&&r==-1?p:T+"T"+p}var GC=(function(){var e={};e.version="1.2.0";function t(){for(var A=0,z=new Array(256),P=0;P!=256;++P)A=P,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,A=A&1?-306674912^A>>>1:A>>>1,z[P]=A;return typeof Int32Array<"u"?new Int32Array(z):z}var n=t();function a(A){var z=0,P=0,K=0,I=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(K=0;K!=256;++K)I[K]=A[K];for(K=0;K!=256;++K)for(P=A[K],z=256+K;z<4096;z+=256)P=I[z]=P>>>8^A[P&255];var L=[];for(K=1;K!=16;++K)L[K-1]=typeof Int32Array<"u"?I.subarray(K*256,K*256+256):I.slice(K*256,K*256+256);return L}var i=a(n),r=i[0],c=i[1],l=i[2],f=i[3],T=i[4],p=i[5],m=i[6],g=i[7],S=i[8],x=i[9],y=i[10],w=i[11],C=i[12],k=i[13],E=i[14];function O(A,z){for(var P=z^-1,K=0,I=A.length;K<I;)P=P>>>8^n[(P^A.charCodeAt(K++))&255];return~P}function N(A,z){for(var P=z^-1,K=A.length-15,I=0;I<K;)P=E[A[I++]^P&255]^k[A[I++]^P>>8&255]^C[A[I++]^P>>16&255]^w[A[I++]^P>>>24]^y[A[I++]]^x[A[I++]]^S[A[I++]]^g[A[I++]]^m[A[I++]]^p[A[I++]]^T[A[I++]]^f[A[I++]]^l[A[I++]]^c[A[I++]]^r[A[I++]]^n[A[I++]];for(K+=15;I<K;)P=P>>>8^n[(P^A[I++])&255];return~P}function B(A,z){for(var P=z^-1,K=0,I=A.length,L=0,le=0;K<I;)L=A.charCodeAt(K++),L<128?P=P>>>8^n[(P^L)&255]:L<2048?(P=P>>>8^n[(P^(192|L>>6&31))&255],P=P>>>8^n[(P^(128|L&63))&255]):L>=55296&&L<57344?(L=(L&1023)+64,le=A.charCodeAt(K++)&1023,P=P>>>8^n[(P^(240|L>>8&7))&255],P=P>>>8^n[(P^(128|L>>2&63))&255],P=P>>>8^n[(P^(128|le>>6&15|(L&3)<<4))&255],P=P>>>8^n[(P^(128|le&63))&255]):(P=P>>>8^n[(P^(224|L>>12&15))&255],P=P>>>8^n[(P^(128|L>>6&63))&255],P=P>>>8^n[(P^(128|L&63))&255]);return~P}return e.table=n,e.bstr=O,e.buf=N,e.str=B,e})(),Ft=(function(){var t={};t.version="1.2.1";function n(q,ne){for(var V=q.split("/"),G=ne.split("/"),Q=0,ie=0,W=Math.min(V.length,G.length);Q<W;++Q){if(ie=V[Q].length-G[Q].length)return ie;if(V[Q]!=G[Q])return V[Q]<G[Q]?-1:1}return V.length-G.length}function a(q){if(q.charAt(q.length-1)=="/")return q.slice(0,-1).indexOf("/")===-1?q:a(q.slice(0,-1));var ne=q.lastIndexOf("/");return ne===-1?q:q.slice(0,ne+1)}function i(q){if(q.charAt(q.length-1)=="/")return i(q.slice(0,-1));var ne=q.lastIndexOf("/");return ne===-1?q:q.slice(ne+1)}function r(q,ne){typeof ne=="string"&&(ne=new Date(ne));var V=ne.getHours();V=V<<6|ne.getMinutes(),V=V<<5|ne.getSeconds()>>>1,q.write_shift(2,V);var G=ne.getFullYear()-1980;G=G<<4|ne.getMonth()+1,G=G<<5|ne.getDate(),q.write_shift(2,G)}function c(q){var ne=q.read_shift(2)&65535,V=q.read_shift(2)&65535,G=new Date,Q=V&31;V>>>=5;var ie=V&15;V>>>=4,G.setMilliseconds(0),G.setFullYear(V+1980),G.setMonth(ie-1),G.setDate(Q);var W=ne&31;ne>>>=5;var D=ne&63;return ne>>>=6,G.setHours(ne),G.setMinutes(D),G.setSeconds(W<<1),G}function l(q){aa(q,0);for(var ne={},V=0;q.l<=q.length-4;){var G=q.read_shift(2),Q=q.read_shift(2),ie=q.l+Q,W={};G===21589&&(V=q.read_shift(1),V&1&&(W.mtime=q.read_shift(4)),Q>5&&(V&2&&(W.atime=q.read_shift(4)),V&4&&(W.ctime=q.read_shift(4))),W.mtime&&(W.mt=new Date(W.mtime*1e3))),q.l=ie,ne[G]=W}return ne}var f;function T(){return f||(f={})}function p(q,ne){if(q[0]==80&&q[1]==75)return Me(q,ne);if((q[0]|32)==109&&(q[1]|32)==105)return Wn(q,ne);if(q.length<512)throw new Error("CFB file size "+q.length+" < 512");var V=3,G=512,Q=0,ie=0,W=0,D=0,j=0,_=[],se=q.slice(0,512);aa(se,0);var xe=m(se);switch(V=xe[0],V){case 3:G=512;break;case 4:G=4096;break;case 0:if(xe[1]==0)return Me(q,ne);default:throw new Error("Major Version: Expected 3 or 4 saw "+V)}G!==512&&(se=q.slice(0,G),aa(se,28));var Ae=q.slice(0,G);g(se,V);var Fe=se.read_shift(4,"i");if(V===3&&Fe!==0)throw new Error("# Directory Sectors: Expected 0 saw "+Fe);se.l+=4,W=se.read_shift(4,"i"),se.l+=4,se.chk("00100000","Mini Stream Cutoff Size: "),D=se.read_shift(4,"i"),Q=se.read_shift(4,"i"),j=se.read_shift(4,"i"),ie=se.read_shift(4,"i");for(var Oe=-1,Ue=0;Ue<109&&(Oe=se.read_shift(4,"i"),!(Oe<0));++Ue)_[Ue]=Oe;var Ge=S(q,G);w(j,ie,Ge,G,_);var kt=k(Ge,W,_,G);kt[W].name="!Directory",Q>0&&D!==le&&(kt[D].name="!MiniFAT"),kt[_[0]].name="!FAT",kt.fat_addrs=_,kt.ssz=G;var Be={},ct=[],St=[],kn=[];E(W,kt,Ge,ct,Q,Be,St,D),x(St,kn,ct),ct.shift();var ni={FileIndex:St,FullPaths:kn};return ne&&ne.raw&&(ni.raw={header:Ae,sectors:Ge}),ni}function m(q){if(q[q.l]==80&&q[q.l+1]==75)return[0,0];q.chk(ue,"Header Signature: "),q.l+=16;var ne=q.read_shift(2,"u");return[q.read_shift(2,"u"),ne]}function g(q,ne){var V=9;switch(q.l+=2,V=q.read_shift(2)){case 9:if(ne!=3)throw new Error("Sector Shift: Expected 9 saw "+V);break;case 12:if(ne!=4)throw new Error("Sector Shift: Expected 12 saw "+V);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+V)}q.chk("0600","Mini Sector Shift: "),q.chk("000000000000","Reserved: ")}function S(q,ne){for(var V=Math.ceil(q.length/ne)-1,G=[],Q=1;Q<V;++Q)G[Q-1]=q.slice(Q*ne,(Q+1)*ne);return G[V-1]=q.slice(V*ne),G}function x(q,ne,V){for(var G=0,Q=0,ie=0,W=0,D=0,j=V.length,_=[],se=[];G<j;++G)_[G]=se[G]=G,ne[G]=V[G];for(;D<se.length;++D)G=se[D],Q=q[G].L,ie=q[G].R,W=q[G].C,_[G]===G&&(Q!==-1&&_[Q]!==Q&&(_[G]=_[Q]),ie!==-1&&_[ie]!==ie&&(_[G]=_[ie])),W!==-1&&(_[W]=G),Q!==-1&&G!=_[G]&&(_[Q]=_[G],se.lastIndexOf(Q)<D&&se.push(Q)),ie!==-1&&G!=_[G]&&(_[ie]=_[G],se.lastIndexOf(ie)<D&&se.push(ie));for(G=1;G<j;++G)_[G]===G&&(ie!==-1&&_[ie]!==ie?_[G]=_[ie]:Q!==-1&&_[Q]!==Q&&(_[G]=_[Q]));for(G=1;G<j;++G)if(q[G].type!==0){if(D=G,D!=_[D])do D=_[D],ne[G]=ne[D]+"/"+ne[G];while(D!==0&&_[D]!==-1&&D!=_[D]);_[G]=-1}for(ne[0]+="/",G=1;G<j;++G)q[G].type!==2&&(ne[G]+="/")}function y(q,ne,V){for(var G=q.start,Q=q.size,ie=[],W=G;V&&Q>0&&W>=0;)ie.push(ne.slice(W*L,W*L+L)),Q-=L,W=Xr(V,W*4);return ie.length===0?Bn(0):lr(ie).slice(0,q.size)}function w(q,ne,V,G,Q){var ie=le;if(q===le){if(ne!==0)throw new Error("DIFAT chain shorter than expected")}else if(q!==-1){var W=V[q],D=(G>>>2)-1;if(!W)return;for(var j=0;j<D&&(ie=Xr(W,j*4))!==le;++j)Q.push(ie);w(Xr(W,G-4),ne-1,V,G,Q)}}function C(q,ne,V,G,Q){var ie=[],W=[];Q||(Q=[]);var D=G-1,j=0,_=0;for(j=ne;j>=0;){Q[j]=!0,ie[ie.length]=j,W.push(q[j]);var se=V[Math.floor(j*4/G)];if(_=j*4&D,G<4+_)throw new Error("FAT boundary crossed: "+j+" 4 "+G);if(!q[se])break;j=Xr(q[se],_)}return{nodes:ie,data:Bv([W])}}function k(q,ne,V,G){var Q=q.length,ie=[],W=[],D=[],j=[],_=G-1,se=0,xe=0,Ae=0,Fe=0;for(se=0;se<Q;++se)if(D=[],Ae=se+ne,Ae>=Q&&(Ae-=Q),!W[Ae]){j=[];var Oe=[];for(xe=Ae;xe>=0;){Oe[xe]=!0,W[xe]=!0,D[D.length]=xe,j.push(q[xe]);var Ue=V[Math.floor(xe*4/G)];if(Fe=xe*4&_,G<4+Fe)throw new Error("FAT boundary crossed: "+xe+" 4 "+G);if(!q[Ue]||(xe=Xr(q[Ue],Fe),Oe[xe]))break}ie[Ae]={nodes:D,data:Bv([j])}}return ie}function E(q,ne,V,G,Q,ie,W,D){for(var j=0,_=G.length?2:0,se=ne[q].data,xe=0,Ae=0,Fe;xe<se.length;xe+=128){var Oe=se.slice(xe,xe+128);aa(Oe,64),Ae=Oe.read_shift(2),Fe=qp(Oe,0,Ae-_),G.push(Fe);var Ue={name:Fe,type:Oe.read_shift(1),color:Oe.read_shift(1),L:Oe.read_shift(4,"i"),R:Oe.read_shift(4,"i"),C:Oe.read_shift(4,"i"),clsid:Oe.read_shift(16),state:Oe.read_shift(4,"i"),start:0,size:0},Ge=Oe.read_shift(2)+Oe.read_shift(2)+Oe.read_shift(2)+Oe.read_shift(2);Ge!==0&&(Ue.ct=O(Oe,Oe.l-8));var kt=Oe.read_shift(2)+Oe.read_shift(2)+Oe.read_shift(2)+Oe.read_shift(2);kt!==0&&(Ue.mt=O(Oe,Oe.l-8)),Ue.start=Oe.read_shift(4,"i"),Ue.size=Oe.read_shift(4,"i"),Ue.size<0&&Ue.start<0&&(Ue.size=Ue.type=0,Ue.start=le,Ue.name=""),Ue.type===5?(j=Ue.start,Q>0&&j!==le&&(ne[j].name="!StreamData")):Ue.size>=4096?(Ue.storage="fat",ne[Ue.start]===void 0&&(ne[Ue.start]=C(V,Ue.start,ne.fat_addrs,ne.ssz)),ne[Ue.start].name=Ue.name,Ue.content=ne[Ue.start].data.slice(0,Ue.size)):(Ue.storage="minifat",Ue.size<0?Ue.size=0:j!==le&&Ue.start!==le&&ne[j]&&(Ue.content=y(Ue,ne[j].data,(ne[D]||{}).data))),Ue.content&&aa(Ue.content,0),ie[Fe]=Ue,W.push(Ue)}}function O(q,ne){return new Date((Za(q,ne+4)/1e7*Math.pow(2,32)+Za(q,ne)/1e7-11644473600)*1e3)}function N(q,ne){return T(),p(f.readFileSync(q),ne)}function B(q,ne){var V=ne&&ne.type;switch(V||Mt&&Buffer.isBuffer(q)&&(V="buffer"),V||"base64"){case"file":return N(q,ne);case"base64":return p(Oi(Qa(q)),ne);case"binary":return p(Oi(q),ne)}return p(q,ne)}function A(q,ne){var V=ne||{},G=V.root||"Root Entry";if(q.FullPaths||(q.FullPaths=[]),q.FileIndex||(q.FileIndex=[]),q.FullPaths.length!==q.FileIndex.length)throw new Error("inconsistent CFB structure");q.FullPaths.length===0&&(q.FullPaths[0]=G+"/",q.FileIndex[0]={name:G,type:5}),V.CLSID&&(q.FileIndex[0].clsid=V.CLSID),z(q)}function z(q){var ne="Sh33tJ5";if(!Ft.find(q,"/"+ne)){var V=Bn(4);V[0]=55,V[1]=V[3]=50,V[2]=54,q.FileIndex.push({name:ne,type:2,content:V,size:4,L:69,R:69,C:69}),q.FullPaths.push(q.FullPaths[0]+ne),P(q)}}function P(q,ne){A(q);for(var V=!1,G=!1,Q=q.FullPaths.length-1;Q>=0;--Q){var ie=q.FileIndex[Q];switch(ie.type){case 0:G?V=!0:(q.FileIndex.pop(),q.FullPaths.pop());break;case 1:case 2:case 5:G=!0,isNaN(ie.R*ie.L*ie.C)&&(V=!0),ie.R>-1&&ie.L>-1&&ie.R==ie.L&&(V=!0);break;default:V=!0;break}}if(!(!V&&!ne)){var W=new Date(1987,1,19),D=0,j=Object.create?Object.create(null):{},_=[];for(Q=0;Q<q.FullPaths.length;++Q)j[q.FullPaths[Q]]=!0,q.FileIndex[Q].type!==0&&_.push([q.FullPaths[Q],q.FileIndex[Q]]);for(Q=0;Q<_.length;++Q){var se=a(_[Q][0]);G=j[se],G||(_.push([se,{name:i(se).replace("/",""),type:1,clsid:F,ct:W,mt:W,content:null}]),j[se]=!0)}for(_.sort(function(Fe,Oe){return n(Fe[0],Oe[0])}),q.FullPaths=[],q.FileIndex=[],Q=0;Q<_.length;++Q)q.FullPaths[Q]=_[Q][0],q.FileIndex[Q]=_[Q][1];for(Q=0;Q<_.length;++Q){var xe=q.FileIndex[Q],Ae=q.FullPaths[Q];if(xe.name=i(Ae).replace("/",""),xe.L=xe.R=xe.C=-(xe.color=1),xe.size=xe.content?xe.content.length:0,xe.start=0,xe.clsid=xe.clsid||F,Q===0)xe.C=_.length>1?1:-1,xe.size=0,xe.type=5;else if(Ae.slice(-1)=="/"){for(D=Q+1;D<_.length&&a(q.FullPaths[D])!=Ae;++D);for(xe.C=D>=_.length?-1:D,D=Q+1;D<_.length&&a(q.FullPaths[D])!=a(Ae);++D);xe.R=D>=_.length?-1:D,xe.type=1}else a(q.FullPaths[Q+1]||"")==a(Ae)&&(xe.R=Q+1),xe.type=2}}}function K(q,ne){var V=ne||{};if(V.fileType=="mad")return Ln(q,V);if(P(q),V.fileType==="zip")return st(q,V);var G=(function(Fe){for(var Oe=0,Ue=0,Ge=0;Ge<Fe.FileIndex.length;++Ge){var kt=Fe.FileIndex[Ge];if(kt.content){var Be=kt.content.length;Be>0&&(Be<4096?Oe+=Be+63>>6:Ue+=Be+511>>9)}}for(var ct=Fe.FullPaths.length+3>>2,St=Oe+7>>3,kn=Oe+127>>7,ni=St+Ue+ct+kn,Ca=ni+127>>7,ss=Ca<=109?0:Math.ceil((Ca-109)/127);ni+Ca+ss+127>>7>Ca;)ss=++Ca<=109?0:Math.ceil((Ca-109)/127);var la=[1,ss,Ca,kn,ct,Ue,Oe,0];return Fe.FileIndex[0].size=Oe<<6,la[7]=(Fe.FileIndex[0].start=la[0]+la[1]+la[2]+la[3]+la[4]+la[5])+(la[6]+7>>3),la})(q),Q=Bn(G[7]<<9),ie=0,W=0;{for(ie=0;ie<8;++ie)Q.write_shift(1,X[ie]);for(ie=0;ie<8;++ie)Q.write_shift(2,0);for(Q.write_shift(2,62),Q.write_shift(2,3),Q.write_shift(2,65534),Q.write_shift(2,9),Q.write_shift(2,6),ie=0;ie<3;++ie)Q.write_shift(2,0);for(Q.write_shift(4,0),Q.write_shift(4,G[2]),Q.write_shift(4,G[0]+G[1]+G[2]+G[3]-1),Q.write_shift(4,0),Q.write_shift(4,4096),Q.write_shift(4,G[3]?G[0]+G[1]+G[2]-1:le),Q.write_shift(4,G[3]),Q.write_shift(-4,G[1]?G[0]-1:le),Q.write_shift(4,G[1]),ie=0;ie<109;++ie)Q.write_shift(-4,ie<G[2]?G[1]+ie:-1)}if(G[1])for(W=0;W<G[1];++W){for(;ie<236+W*127;++ie)Q.write_shift(-4,ie<G[2]?G[1]+ie:-1);Q.write_shift(-4,W===G[1]-1?le:W+1)}var D=function(Fe){for(W+=Fe;ie<W-1;++ie)Q.write_shift(-4,ie+1);Fe&&(++ie,Q.write_shift(-4,le))};for(W=ie=0,W+=G[1];ie<W;++ie)Q.write_shift(-4,re.DIFSECT);for(W+=G[2];ie<W;++ie)Q.write_shift(-4,re.FATSECT);D(G[3]),D(G[4]);for(var j=0,_=0,se=q.FileIndex[0];j<q.FileIndex.length;++j)se=q.FileIndex[j],se.content&&(_=se.content.length,!(_<4096)&&(se.start=W,D(_+511>>9)));for(D(G[6]+7>>3);Q.l&511;)Q.write_shift(-4,re.ENDOFCHAIN);for(W=ie=0,j=0;j<q.FileIndex.length;++j)se=q.FileIndex[j],se.content&&(_=se.content.length,!(!_||_>=4096)&&(se.start=W,D(_+63>>6)));for(;Q.l&511;)Q.write_shift(-4,re.ENDOFCHAIN);for(ie=0;ie<G[4]<<2;++ie){var xe=q.FullPaths[ie];if(!xe||xe.length===0){for(j=0;j<17;++j)Q.write_shift(4,0);for(j=0;j<3;++j)Q.write_shift(4,-1);for(j=0;j<12;++j)Q.write_shift(4,0);continue}se=q.FileIndex[ie],ie===0&&(se.start=se.size?se.start-1:le);var Ae=ie===0&&V.root||se.name;if(_=2*(Ae.length+1),Q.write_shift(64,Ae,"utf16le"),Q.write_shift(2,_),Q.write_shift(1,se.type),Q.write_shift(1,se.color),Q.write_shift(-4,se.L),Q.write_shift(-4,se.R),Q.write_shift(-4,se.C),se.clsid)Q.write_shift(16,se.clsid,"hex");else for(j=0;j<4;++j)Q.write_shift(4,0);Q.write_shift(4,se.state||0),Q.write_shift(4,0),Q.write_shift(4,0),Q.write_shift(4,0),Q.write_shift(4,0),Q.write_shift(4,se.start),Q.write_shift(4,se.size),Q.write_shift(4,0)}for(ie=1;ie<q.FileIndex.length;++ie)if(se=q.FileIndex[ie],se.size>=4096)if(Q.l=se.start+1<<9,Mt&&Buffer.isBuffer(se.content))se.content.copy(Q,Q.l,0,se.size),Q.l+=se.size+511&-512;else{for(j=0;j<se.size;++j)Q.write_shift(1,se.content[j]);for(;j&511;++j)Q.write_shift(1,0)}for(ie=1;ie<q.FileIndex.length;++ie)if(se=q.FileIndex[ie],se.size>0&&se.size<4096)if(Mt&&Buffer.isBuffer(se.content))se.content.copy(Q,Q.l,0,se.size),Q.l+=se.size+63&-64;else{for(j=0;j<se.size;++j)Q.write_shift(1,se.content[j]);for(;j&63;++j)Q.write_shift(1,0)}if(Mt)Q.l=Q.length;else for(;Q.l<Q.length;)Q.write_shift(1,0);return Q}function I(q,ne){var V=q.FullPaths.map(function(j){return j.toUpperCase()}),G=V.map(function(j){var _=j.split("/");return _[_.length-(j.slice(-1)=="/"?2:1)]}),Q=!1;ne.charCodeAt(0)===47?(Q=!0,ne=V[0].slice(0,-1)+ne):Q=ne.indexOf("/")!==-1;var ie=ne.toUpperCase(),W=Q===!0?V.indexOf(ie):G.indexOf(ie);if(W!==-1)return q.FileIndex[W];var D=!ie.match(Mc);for(ie=ie.replace(Oa,""),D&&(ie=ie.replace(Mc,"!")),W=0;W<V.length;++W)if((D?V[W].replace(Mc,"!"):V[W]).replace(Oa,"")==ie||(D?G[W].replace(Mc,"!"):G[W]).replace(Oa,"")==ie)return q.FileIndex[W];return null}var L=64,le=-2,ue="d0cf11e0a1b11ae1",X=[208,207,17,224,161,177,26,225],F="00000000000000000000000000000000",re={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:le,FREESECT:-1,HEADER_SIGNATURE:ue,HEADER_MINOR_VERSION:"3e00",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:F,EntryTypes:["unknown","storage","stream","lockbytes","property","root"]};function me(q,ne,V){T();var G=K(q,V);f.writeFileSync(ne,G)}function te(q){for(var ne=new Array(q.length),V=0;V<q.length;++V)ne[V]=String.fromCharCode(q[V]);return ne.join("")}function Ce(q,ne){var V=K(q,ne);switch(ne&&ne.type||"buffer"){case"file":return T(),f.writeFileSync(ne.filename,V),V;case"binary":return typeof V=="string"?V:te(V);case"base64":return bv(typeof V=="string"?V:te(V));case"buffer":if(Mt)return Buffer.isBuffer(V)?V:u0(V);case"array":return typeof V=="string"?Oi(V):V}return V}var ee;function M(q){try{var ne=q.InflateRaw,V=new ne;if(V._processChunk(new Uint8Array([3,0]),V._finishFlushFlag),V.bytesRead)ee=q;else throw new Error("zlib does not expose bytesRead")}catch(G){console.error("cannot use native zlib: "+(G.message||G))}}function Y(q,ne){if(!ee)return ot(q,ne);var V=ee.InflateRaw,G=new V,Q=G._processChunk(q.slice(q.l),G._finishFlushFlag);return q.l+=G.bytesRead,Q}function Z(q){return ee?ee.deflateRawSync(q):pe(q)}var J=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],he=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],ge=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];function de(q){var ne=(q<<1|q<<11)&139536|(q<<5|q<<15)&558144;return(ne>>16|ne>>8|ne)&255}for(var fe=typeof Uint8Array<"u",ye=fe?new Uint8Array(256):[],qe=0;qe<256;++qe)ye[qe]=de(qe);function ae(q,ne){var V=ye[q&255];return ne<=8?V>>>8-ne:(V=V<<8|ye[q>>8&255],ne<=16?V>>>16-ne:(V=V<<8|ye[q>>16&255],V>>>24-ne))}function Ne(q,ne){var V=ne&7,G=ne>>>3;return(q[G]|(V<=6?0:q[G+1]<<8))>>>V&3}function Ve(q,ne){var V=ne&7,G=ne>>>3;return(q[G]|(V<=5?0:q[G+1]<<8))>>>V&7}function tt(q,ne){var V=ne&7,G=ne>>>3;return(q[G]|(V<=4?0:q[G+1]<<8))>>>V&15}function We(q,ne){var V=ne&7,G=ne>>>3;return(q[G]|(V<=3?0:q[G+1]<<8))>>>V&31}function Le(q,ne){var V=ne&7,G=ne>>>3;return(q[G]|(V<=1?0:q[G+1]<<8))>>>V&127}function _e(q,ne,V){var G=ne&7,Q=ne>>>3,ie=(1<<V)-1,W=q[Q]>>>G;return V<8-G||(W|=q[Q+1]<<8-G,V<16-G)||(W|=q[Q+2]<<16-G,V<24-G)||(W|=q[Q+3]<<24-G),W&ie}function Xe(q,ne,V){var G=ne&7,Q=ne>>>3;return G<=5?q[Q]|=(V&7)<<G:(q[Q]|=V<<G&255,q[Q+1]=(V&7)>>8-G),ne+3}function pt(q,ne,V){var G=ne&7,Q=ne>>>3;return V=(V&1)<<G,q[Q]|=V,ne+1}function Pt(q,ne,V){var G=ne&7,Q=ne>>>3;return V<<=G,q[Q]|=V&255,V>>>=8,q[Q+1]=V,ne+8}function Kt(q,ne,V){var G=ne&7,Q=ne>>>3;return V<<=G,q[Q]|=V&255,V>>>=8,q[Q+1]=V&255,q[Q+2]=V>>>8,ne+16}function Dt(q,ne){var V=q.length,G=2*V>ne?2*V:ne+5,Q=0;if(V>=ne)return q;if(Mt){var ie=wv(G);if(q.copy)q.copy(ie);else for(;Q<q.length;++Q)ie[Q]=q[Q];return ie}else if(fe){var W=new Uint8Array(G);if(W.set)W.set(q);else for(;Q<V;++Q)W[Q]=q[Q];return W}return q.length=G,q}function dt(q){for(var ne=new Array(q),V=0;V<q;++V)ne[V]=0;return ne}function jt(q,ne,V){var G=1,Q=0,ie=0,W=0,D=0,j=q.length,_=fe?new Uint16Array(32):dt(32);for(ie=0;ie<32;++ie)_[ie]=0;for(ie=j;ie<V;++ie)q[ie]=0;j=q.length;var se=fe?new Uint16Array(j):dt(j);for(ie=0;ie<j;++ie)_[Q=q[ie]]++,G<Q&&(G=Q),se[ie]=0;for(_[0]=0,ie=1;ie<=G;++ie)_[ie+16]=D=D+_[ie-1]<<1;for(ie=0;ie<j;++ie)D=q[ie],D!=0&&(se[ie]=_[D+16]++);var xe=0;for(ie=0;ie<j;++ie)if(xe=q[ie],xe!=0)for(D=ae(se[ie],G)>>G-xe,W=(1<<G+4-xe)-1;W>=0;--W)ne[D|W<<xe]=xe&15|ie<<4;return G}var Gt=fe?new Uint16Array(512):dt(512),ln=fe?new Uint16Array(32):dt(32);if(!fe){for(var Et=0;Et<512;++Et)Gt[Et]=0;for(Et=0;Et<32;++Et)ln[Et]=0}(function(){for(var q=[],ne=0;ne<32;ne++)q.push(5);jt(q,ln,32);var V=[];for(ne=0;ne<=143;ne++)V.push(8);for(;ne<=255;ne++)V.push(9);for(;ne<=279;ne++)V.push(7);for(;ne<=287;ne++)V.push(8);jt(V,Gt,288)})();var _t=(function(){for(var ne=fe?new Uint8Array(32768):[],V=0,G=0;V<ge.length-1;++V)for(;G<ge[V+1];++G)ne[G]=V;for(;G<32768;++G)ne[G]=29;var Q=fe?new Uint8Array(259):[];for(V=0,G=0;V<he.length-1;++V)for(;G<he[V+1];++G)Q[G]=V;function ie(D,j){for(var _=0;_<D.length;){var se=Math.min(65535,D.length-_),xe=_+se==D.length;for(j.write_shift(1,+xe),j.write_shift(2,se),j.write_shift(2,~se&65535);se-- >0;)j[j.l++]=D[_++]}return j.l}function W(D,j){for(var _=0,se=0,xe=fe?new Uint16Array(32768):[];se<D.length;){var Ae=Math.min(65535,D.length-se);if(Ae<10){for(_=Xe(j,_,+(se+Ae==D.length)),_&7&&(_+=8-(_&7)),j.l=_/8|0,j.write_shift(2,Ae),j.write_shift(2,~Ae&65535);Ae-- >0;)j[j.l++]=D[se++];_=j.l*8;continue}_=Xe(j,_,+(se+Ae==D.length)+2);for(var Fe=0;Ae-- >0;){var Oe=D[se];Fe=(Fe<<5^Oe)&32767;var Ue=-1,Ge=0;if((Ue=xe[Fe])&&(Ue|=se&-32768,Ue>se&&(Ue-=32768),Ue<se))for(;D[Ue+Ge]==D[se+Ge]&&Ge<250;)++Ge;if(Ge>2){Oe=Q[Ge],Oe<=22?_=Pt(j,_,ye[Oe+1]>>1)-1:(Pt(j,_,3),_+=5,Pt(j,_,ye[Oe-23]>>5),_+=3);var kt=Oe<8?0:Oe-4>>2;kt>0&&(Kt(j,_,Ge-he[Oe]),_+=kt),Oe=ne[se-Ue],_=Pt(j,_,ye[Oe]>>3),_-=3;var Be=Oe<4?0:Oe-2>>1;Be>0&&(Kt(j,_,se-Ue-ge[Oe]),_+=Be);for(var ct=0;ct<Ge;++ct)xe[Fe]=se&32767,Fe=(Fe<<5^D[se])&32767,++se;Ae-=Ge-1}else Oe<=143?Oe=Oe+48:_=pt(j,_,1),_=Pt(j,_,ye[Oe]),xe[Fe]=se&32767,++se}_=Pt(j,_,0)-1}return j.l=(_+7)/8|0,j.l}return function(j,_){return j.length<8?ie(j,_):W(j,_)}})();function pe(q){var ne=Bn(50+Math.floor(q.length*1.1)),V=_t(q,ne);return ne.slice(0,V)}var He=fe?new Uint16Array(32768):dt(32768),Je=fe?new Uint16Array(32768):dt(32768),rt=fe?new Uint16Array(128):dt(128),Ye=1,mt=1;function Qe(q,ne){var V=We(q,ne)+257;ne+=5;var G=We(q,ne)+1;ne+=5;var Q=tt(q,ne)+4;ne+=4;for(var ie=0,W=fe?new Uint8Array(19):dt(19),D=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],j=1,_=fe?new Uint8Array(8):dt(8),se=fe?new Uint8Array(8):dt(8),xe=W.length,Ae=0;Ae<Q;++Ae)W[J[Ae]]=ie=Ve(q,ne),j<ie&&(j=ie),_[ie]++,ne+=3;var Fe=0;for(_[0]=0,Ae=1;Ae<=j;++Ae)se[Ae]=Fe=Fe+_[Ae-1]<<1;for(Ae=0;Ae<xe;++Ae)(Fe=W[Ae])!=0&&(D[Ae]=se[Fe]++);var Oe=0;for(Ae=0;Ae<xe;++Ae)if(Oe=W[Ae],Oe!=0){Fe=ye[D[Ae]]>>8-Oe;for(var Ue=(1<<7-Oe)-1;Ue>=0;--Ue)rt[Fe|Ue<<Oe]=Oe&7|Ae<<3}var Ge=[];for(j=1;Ge.length<V+G;)switch(Fe=rt[Le(q,ne)],ne+=Fe&7,Fe>>>=3){case 16:for(ie=3+Ne(q,ne),ne+=2,Fe=Ge[Ge.length-1];ie-- >0;)Ge.push(Fe);break;case 17:for(ie=3+Ve(q,ne),ne+=3;ie-- >0;)Ge.push(0);break;case 18:for(ie=11+Le(q,ne),ne+=7;ie-- >0;)Ge.push(0);break;default:Ge.push(Fe),j<Fe&&(j=Fe);break}var kt=Ge.slice(0,V),Be=Ge.slice(V);for(Ae=V;Ae<286;++Ae)kt[Ae]=0;for(Ae=G;Ae<30;++Ae)Be[Ae]=0;return Ye=jt(kt,He,286),mt=jt(Be,Je,30),ne}function qt(q,ne){if(q[0]==3&&!(q[1]&3))return[pr(ne),2];for(var V=0,G=0,Q=wv(ne||1<<18),ie=0,W=Q.length>>>0,D=0,j=0;(G&1)==0;){if(G=Ve(q,V),V+=3,G>>>1)G>>1==1?(D=9,j=5):(V=Qe(q,V),D=Ye,j=mt);else{V&7&&(V+=8-(V&7));var _=q[V>>>3]|q[(V>>>3)+1]<<8;if(V+=32,_>0)for(!ne&&W<ie+_&&(Q=Dt(Q,ie+_),W=Q.length);_-- >0;)Q[ie++]=q[V>>>3],V+=8;continue}for(;;){!ne&&W<ie+32767&&(Q=Dt(Q,ie+32767),W=Q.length);var se=_e(q,V,D),xe=G>>>1==1?Gt[se]:He[se];if(V+=xe&15,xe>>>=4,(xe>>>8&255)===0)Q[ie++]=xe;else{if(xe==256)break;xe-=257;var Ae=xe<8?0:xe-4>>2;Ae>5&&(Ae=0);var Fe=ie+he[xe];Ae>0&&(Fe+=_e(q,V,Ae),V+=Ae),se=_e(q,V,j),xe=G>>>1==1?ln[se]:Je[se],V+=xe&15,xe>>>=4;var Oe=xe<4?0:xe-2>>1,Ue=ge[xe];for(Oe>0&&(Ue+=_e(q,V,Oe),V+=Oe),!ne&&W<Fe&&(Q=Dt(Q,Fe+100),W=Q.length);ie<Fe;)Q[ie]=Q[ie-Ue],++ie}}}return ne?[Q,V+7>>>3]:[Q.slice(0,ie),V+7>>>3]}function ot(q,ne){var V=q.slice(q.l||0),G=qt(V,ne);return q.l+=G[1],G[0]}function Pe(q,ne){if(q)typeof console<"u"&&console.error(ne);else throw new Error(ne)}function Me(q,ne){var V=q;aa(V,0);var G=[],Q=[],ie={FileIndex:G,FullPaths:Q};A(ie,{root:ne.root});for(var W=V.length-4;(V[W]!=80||V[W+1]!=75||V[W+2]!=5||V[W+3]!=6)&&W>=0;)--W;V.l=W+4,V.l+=4;var D=V.read_shift(2);V.l+=6;var j=V.read_shift(4);for(V.l=j,W=0;W<D;++W){V.l+=20;var _=V.read_shift(4),se=V.read_shift(4),xe=V.read_shift(2),Ae=V.read_shift(2),Fe=V.read_shift(2);V.l+=8;var Oe=V.read_shift(4),Ue=l(V.slice(V.l+xe,V.l+xe+Ae));V.l+=xe+Ae+Fe;var Ge=V.l;V.l=Oe+4,Ke(V,_,se,ie,Ue),V.l=Ge}return ie}function Ke(q,ne,V,G,Q){q.l+=2;var ie=q.read_shift(2),W=q.read_shift(2),D=c(q);if(ie&8257)throw new Error("Unsupported ZIP encryption");for(var j=q.read_shift(4),_=q.read_shift(4),se=q.read_shift(4),xe=q.read_shift(2),Ae=q.read_shift(2),Fe="",Oe=0;Oe<xe;++Oe)Fe+=String.fromCharCode(q[q.l++]);if(Ae){var Ue=l(q.slice(q.l,q.l+Ae));(Ue[21589]||{}).mt&&(D=Ue[21589].mt),((Q||{})[21589]||{}).mt&&(D=Q[21589].mt)}q.l+=Ae;var Ge=q.slice(q.l,q.l+_);switch(W){case 8:Ge=Y(q,se);break;case 0:break;default:throw new Error("Unsupported ZIP Compression method "+W)}var kt=!1;ie&8&&(j=q.read_shift(4),j==134695760&&(j=q.read_shift(4),kt=!0),_=q.read_shift(4),se=q.read_shift(4)),_!=ne&&Pe(kt,"Bad compressed size: "+ne+" != "+_),se!=V&&Pe(kt,"Bad uncompressed size: "+V+" != "+se),wa(G,Fe,Ge,{unsafe:!0,mt:D})}function st(q,ne){var V=ne||{},G=[],Q=[],ie=Bn(1),W=V.compression?8:0,D=0,j=0,_=0,se=0,xe=0,Ae=q.FullPaths[0],Fe=Ae,Oe=q.FileIndex[0],Ue=[],Ge=0;for(j=1;j<q.FullPaths.length;++j)if(Fe=q.FullPaths[j].slice(Ae.length),Oe=q.FileIndex[j],!(!Oe.size||!Oe.content||Fe=="Sh33tJ5")){var kt=se,Be=Bn(Fe.length);for(_=0;_<Fe.length;++_)Be.write_shift(1,Fe.charCodeAt(_)&127);Be=Be.slice(0,Be.l),Ue[xe]=GC.buf(Oe.content,0);var ct=Oe.content;W==8&&(ct=Z(ct)),ie=Bn(30),ie.write_shift(4,67324752),ie.write_shift(2,20),ie.write_shift(2,D),ie.write_shift(2,W),Oe.mt?r(ie,Oe.mt):ie.write_shift(4,0),ie.write_shift(-4,Ue[xe]),ie.write_shift(4,ct.length),ie.write_shift(4,Oe.content.length),ie.write_shift(2,Be.length),ie.write_shift(2,0),se+=ie.length,G.push(ie),se+=Be.length,G.push(Be),se+=ct.length,G.push(ct),ie=Bn(46),ie.write_shift(4,33639248),ie.write_shift(2,0),ie.write_shift(2,20),ie.write_shift(2,D),ie.write_shift(2,W),ie.write_shift(4,0),ie.write_shift(-4,Ue[xe]),ie.write_shift(4,ct.length),ie.write_shift(4,Oe.content.length),ie.write_shift(2,Be.length),ie.write_shift(2,0),ie.write_shift(2,0),ie.write_shift(2,0),ie.write_shift(2,0),ie.write_shift(4,0),ie.write_shift(4,kt),Ge+=ie.l,Q.push(ie),Ge+=Be.length,Q.push(Be),++xe}return ie=Bn(22),ie.write_shift(4,101010256),ie.write_shift(2,0),ie.write_shift(2,0),ie.write_shift(2,xe),ie.write_shift(2,xe),ie.write_shift(4,Ge),ie.write_shift(4,se),ie.write_shift(2,0),lr([lr(G),lr(Q),ie])}var Vt={htm:"text/html",xml:"text/xml",gif:"image/gif",jpg:"image/jpeg",png:"image/png",mso:"application/x-mso",thmx:"application/vnd.ms-officetheme",sh33tj5:"application/octet-stream"};function Xt(q,ne){if(q.ctype)return q.ctype;var V=q.name||"",G=V.match(/\.([^\.]+)$/);return G&&Vt[G[1]]||ne&&(G=(V=ne).match(/[\.\\]([^\.\\])+$/),G&&Vt[G[1]])?Vt[G[1]]:"application/octet-stream"}function Fn(q){for(var ne=bv(q),V=[],G=0;G<ne.length;G+=76)V.push(ne.slice(G,G+76));return V.join(`\r
|
||
`)+`\r
|
||
`}function Sa(q){var ne=q.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g,function(_){var se=_.charCodeAt(0).toString(16).toUpperCase();return"="+(se.length==1?"0"+se:se)});ne=ne.replace(/ $/mg,"=20").replace(/\t$/mg,"=09"),ne.charAt(0)==`
|
||
`&&(ne="=0D"+ne.slice(1)),ne=ne.replace(/\r(?!\n)/mg,"=0D").replace(/\n\n/mg,`
|
||
=0A`).replace(/([^\r\n])\n/mg,"$1=0A");for(var V=[],G=ne.split(`\r
|
||
`),Q=0;Q<G.length;++Q){var ie=G[Q];if(ie.length==0){V.push("");continue}for(var W=0;W<ie.length;){var D=76,j=ie.slice(W,W+D);j.charAt(D-1)=="="?D--:j.charAt(D-2)=="="?D-=2:j.charAt(D-3)=="="&&(D-=3),j=ie.slice(W,W+D),W+=D,W<ie.length&&(j+="="),V.push(j)}}return V.join(`\r
|
||
`)}function Zn(q){for(var ne=[],V=0;V<q.length;++V){for(var G=q[V];V<=q.length&&G.charAt(G.length-1)=="=";)G=G.slice(0,G.length-1)+q[++V];ne.push(G)}for(var Q=0;Q<ne.length;++Q)ne[Q]=ne[Q].replace(/[=][0-9A-Fa-f]{2}/g,function(ie){return String.fromCharCode(parseInt(ie.slice(1),16))});return Oi(ne.join(`\r
|
||
`))}function ba(q,ne,V){for(var G="",Q="",ie="",W,D=0;D<10;++D){var j=ne[D];if(!j||j.match(/^\s*$/))break;var _=j.match(/^(.*?):\s*([^\s].*)$/);if(_)switch(_[1].toLowerCase()){case"content-location":G=_[2].trim();break;case"content-type":ie=_[2].trim();break;case"content-transfer-encoding":Q=_[2].trim();break}}switch(++D,Q.toLowerCase()){case"base64":W=Oi(Qa(ne.slice(D).join("")));break;case"quoted-printable":W=Zn(ne.slice(D));break;default:throw new Error("Unsupported Content-Transfer-Encoding "+Q)}var se=wa(q,G.slice(V.length),W,{unsafe:!0});ie&&(se.ctype=ie)}function Wn(q,ne){if(te(q.slice(0,13)).toLowerCase()!="mime-version:")throw new Error("Unsupported MAD header");var V=ne&&ne.root||"",G=(Mt&&Buffer.isBuffer(q)?q.toString("binary"):te(q)).split(`\r
|
||
`),Q=0,ie="";for(Q=0;Q<G.length;++Q)if(ie=G[Q],!!/^Content-Location:/i.test(ie)&&(ie=ie.slice(ie.indexOf("file")),V||(V=ie.slice(0,ie.lastIndexOf("/")+1)),ie.slice(0,V.length)!=V))for(;V.length>0&&(V=V.slice(0,V.length-1),V=V.slice(0,V.lastIndexOf("/")+1),ie.slice(0,V.length)!=V););var W=(G[1]||"").match(/boundary="(.*?)"/);if(!W)throw new Error("MAD cannot find boundary");var D="--"+(W[1]||""),j=[],_=[],se={FileIndex:j,FullPaths:_};A(se);var xe,Ae=0;for(Q=0;Q<G.length;++Q){var Fe=G[Q];Fe!==D&&Fe!==D+"--"||(Ae++&&ba(se,G.slice(xe,Q),V),xe=Q)}return se}function Ln(q,ne){var V=ne||{},G=V.boundary||"SheetJS";G="------="+G;for(var Q=["MIME-Version: 1.0",'Content-Type: multipart/related; boundary="'+G.slice(2)+'"',"","",""],ie=q.FullPaths[0],W=ie,D=q.FileIndex[0],j=1;j<q.FullPaths.length;++j)if(W=q.FullPaths[j].slice(ie.length),D=q.FileIndex[j],!(!D.size||!D.content||W=="Sh33tJ5")){W=W.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF]/g,function(Ge){return"_x"+Ge.charCodeAt(0).toString(16)+"_"}).replace(/[\u0080-\uFFFF]/g,function(Ge){return"_u"+Ge.charCodeAt(0).toString(16)+"_"});for(var _=D.content,se=Mt&&Buffer.isBuffer(_)?_.toString("binary"):te(_),xe=0,Ae=Math.min(1024,se.length),Fe=0,Oe=0;Oe<=Ae;++Oe)(Fe=se.charCodeAt(Oe))>=32&&Fe<128&&++xe;var Ue=xe>=Ae*4/5;Q.push(G),Q.push("Content-Location: "+(V.root||"file:///C:/SheetJS/")+W),Q.push("Content-Transfer-Encoding: "+(Ue?"quoted-printable":"base64")),Q.push("Content-Type: "+Xt(D,W)),Q.push(""),Q.push(Ue?Sa(se):Fn(se))}return Q.push(G+`--\r
|
||
`),Q.join(`\r
|
||
`)}function Si(q){var ne={};return A(ne,q),ne}function wa(q,ne,V,G){var Q=G&&G.unsafe;Q||A(q);var ie=!Q&&Ft.find(q,ne);if(!ie){var W=q.FullPaths[0];ne.slice(0,W.length)==W?W=ne:(W.slice(-1)!="/"&&(W+="/"),W=(W+ne).replace("//","/")),ie={name:i(ne),type:2},q.FileIndex.push(ie),q.FullPaths.push(W),Q||Ft.utils.cfb_gc(q)}return ie.content=V,ie.size=V?V.length:0,G&&(G.CLSID&&(ie.clsid=G.CLSID),G.mt&&(ie.mt=G.mt),G.ct&&(ie.ct=G.ct)),ie}function ti(q,ne){A(q);var V=Ft.find(q,ne);if(V){for(var G=0;G<q.FileIndex.length;++G)if(q.FileIndex[G]==V)return q.FileIndex.splice(G,1),q.FullPaths.splice(G,1),!0}return!1}function Pn(q,ne,V){A(q);var G=Ft.find(q,ne);if(G){for(var Q=0;Q<q.FileIndex.length;++Q)if(q.FileIndex[Q]==G)return q.FileIndex[Q].name=i(V),q.FullPaths[Q]=V,!0}return!1}function Vn(q){P(q,!0)}return t.find=I,t.read=B,t.parse=p,t.write=Ce,t.writeFile=me,t.utils={cfb_new:Si,cfb_add:wa,cfb_del:ti,cfb_mov:Pn,cfb_gc:Vn,ReadShift:Wc,CheckField:X4,prep_blob:aa,bconcat:lr,use_zlib:M,_deflateRaw:pe,_inflateRaw:ot,consts:re},t})();function XC(e){if(typeof Deno<"u")return Deno.readFileSync(e);if(typeof $<"u"&&typeof File<"u"&&typeof Folder<"u")try{var t=File(e);t.open("r"),t.encoding="binary";var n=t.read();return t.close(),n}catch(a){if(!a.message||!a.message.match(/onstruct/))throw a}throw new Error("Cannot access file "+e)}function ns(e){for(var t=Object.keys(e),n=[],a=0;a<t.length;++a)Object.prototype.hasOwnProperty.call(e,t[a])&&n.push(t[a]);return n}function Fp(e){for(var t=[],n=ns(e),a=0;a!==n.length;++a)t[e[n[a]]]=n[a];return t}var Pu=new Date(1899,11,30,0,0,0);function Ma(e,t){var n=e.getTime(),a=Pu.getTime()+(e.getTimezoneOffset()-Pu.getTimezoneOffset())*6e4;return(n-a)/(1440*60*1e3)}var k4=new Date,KC=Pu.getTime()+(k4.getTimezoneOffset()-Pu.getTimezoneOffset())*6e4,Nv=k4.getTimezoneOffset();function cd(e){var t=new Date;return t.setTime(e*24*60*60*1e3+KC),t.getTimezoneOffset()!==Nv&&t.setTime(t.getTime()+(t.getTimezoneOffset()-Nv)*6e4),t}function $C(e){var t=0,n=0,a=!1,i=e.match(/P([0-9\.]+Y)?([0-9\.]+M)?([0-9\.]+D)?T([0-9\.]+H)?([0-9\.]+M)?([0-9\.]+S)?/);if(!i)throw new Error("|"+e+"| is not an ISO8601 Duration");for(var r=1;r!=i.length;++r)if(i[r]){switch(n=1,r>3&&(a=!0),i[r].slice(i[r].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+i[r].slice(i[r].length-1));case"D":n*=24;case"H":n*=60;case"M":if(a)n*=60;else throw new Error("Unsupported ISO Duration Field: M")}t+=n*parseInt(i[r],10)}return t}var Ov=new Date("2017-02-19T19:06:09.000Z"),A4=isNaN(Ov.getFullYear())?new Date("2/19/17"):Ov,YC=A4.getFullYear()==2017;function Yn(e,t){var n=new Date(e);if(YC)return t>0?n.setTime(n.getTime()+n.getTimezoneOffset()*60*1e3):t<0&&n.setTime(n.getTime()-n.getTimezoneOffset()*60*1e3),n;if(e instanceof Date)return e;if(A4.getFullYear()==1917&&!isNaN(n.getFullYear())){var a=n.getFullYear();return e.indexOf(""+a)>-1||n.setFullYear(n.getFullYear()+100),n}var i=e.match(/\d+/g)||["2017","2","19","0","0","0"],r=new Date(+i[0],+i[1]-1,+i[2],+i[3]||0,+i[4]||0,+i[5]||0);return e.indexOf("Z")>-1&&(r=new Date(r.getTime()-r.getTimezoneOffset()*60*1e3)),r}function s0(e,t){if(Mt&&Buffer.isBuffer(e)){if(t){if(e[0]==255&&e[1]==254)return Fc(e.slice(2).toString("utf16le"));if(e[1]==254&&e[2]==255)return Fc(f4(e.slice(2).toString("binary")))}return e.toString("binary")}if(typeof TextDecoder<"u")try{if(t){if(e[0]==255&&e[1]==254)return Fc(new TextDecoder("utf-16le").decode(e.slice(2)));if(e[0]==254&&e[1]==255)return Fc(new TextDecoder("utf-16be").decode(e.slice(2)))}var n={"€":"","‚":"",ƒ:"","„":"","…":"
","†":"","‡":"","ˆ":"","‰":"",Š:"","‹":"",Œ:"",Ž:"","‘":"","’":"","“":"","”":"","•":"","–":"","—":"","˜":"","™":"",š:"","›":"",œ:"",ž:"",Ÿ:""};return Array.isArray(e)&&(e=new Uint8Array(e)),new TextDecoder("latin1").decode(e).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g,function(r){return n[r]||r})}catch{}for(var a=[],i=0;i!=e.length;++i)a.push(String.fromCharCode(e[i]));return a.join("")}function sa(e){if(typeof JSON<"u"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=sa(e[n]));return t}function gn(e,t){for(var n="";n.length<t;)n+=e;return n}function _i(e){var t=Number(e);if(!isNaN(t))return isFinite(t)?t:NaN;if(!/\d/.test(e))return t;var n=1,a=e.replace(/([\d]),([\d])/g,"$1$2").replace(/[$]/g,"").replace(/[%]/g,function(){return n*=100,""});return!isNaN(t=Number(a))||(a=a.replace(/[(](.*)[)]/,function(i,r){return n=-n,r}),!isNaN(t=Number(a)))?t/n:t}var ZC=["january","february","march","april","may","june","july","august","september","october","november","december"];function xo(e){var t=new Date(e),n=new Date(NaN),a=t.getYear(),i=t.getMonth(),r=t.getDate();if(isNaN(r))return n;var c=e.toLowerCase();if(c.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)){if(c=c.replace(/[^a-z]/g,"").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,""),c.length>3&&ZC.indexOf(c)==-1)return n}else if(c.match(/[a-z]/))return n;return a<0||a>8099?n:(i>0||r>1)&&a!=101?t:e.match(/[^-0-9:,\/\\]/)?n:t}var JC=(function(){var e="abacaba".split(/(:?b)/i).length==5;return function(n,a,i){if(e||typeof a=="string")return n.split(a);for(var r=n.split(a),c=[r[0]],l=1;l<r.length;++l)c.push(i),c.push(r[l]);return c}})();function R4(e){return e?e.content&&e.type?s0(e.content,!0):e.data?Oc(e.data):e.asNodeBuffer&&Mt?Oc(e.asNodeBuffer().toString("binary")):e.asBinary?Oc(e.asBinary()):e._data&&e._data.getContent?Oc(s0(Array.prototype.slice.call(e._data.getContent(),0))):null:null}function D4(e){if(!e)return null;if(e.data)return yv(e.data);if(e.asNodeBuffer&&Mt)return e.asNodeBuffer();if(e._data&&e._data.getContent){var t=e._data.getContent();return typeof t=="string"?yv(t):Array.prototype.slice.call(t)}return e.content&&e.type?e.content:null}function QC(e){return e&&e.name.slice(-4)===".bin"?D4(e):R4(e)}function hi(e,t){for(var n=e.FullPaths||ns(e.files),a=t.toLowerCase().replace(/[\/]/g,"\\"),i=a.replace(/\\/g,"/"),r=0;r<n.length;++r){var c=n[r].replace(/^Root Entry[\/]/,"").toLowerCase();if(a==c||i==c)return e.files?e.files[n[r]]:e.FileIndex[r]}return null}function Lp(e,t){var n=hi(e,t);if(n==null)throw new Error("Cannot find file "+t+" in zip");return n}function Mn(e,t,n){if(!n)return QC(Lp(e,t));if(!t)return null;try{return Mn(e,t)}catch{return null}}function Ja(e,t,n){if(!n)return R4(Lp(e,t));if(!t)return null;try{return Ja(e,t)}catch{return null}}function eE(e,t,n){return D4(Lp(e,t))}function Mv(e){for(var t=e.FullPaths||ns(e.files),n=[],a=0;a<t.length;++a)t[a].slice(-1)!="/"&&n.push(t[a].replace(/^Root Entry[\/]/,""));return n.sort()}function tE(e,t,n){if(e.FullPaths){if(typeof n=="string"){var a;return Mt?a=u0(n):a=yC(n),Ft.utils.cfb_add(e,t,a)}Ft.utils.cfb_add(e,t,n)}else e.file(t,n)}function I4(e,t){switch(t.type){case"base64":return Ft.read(e,{type:"base64"});case"binary":return Ft.read(e,{type:"binary"});case"buffer":case"array":return Ft.read(e,{type:"buffer"})}throw new Error("Unrecognized type "+t.type)}function jc(e,t){if(e.charAt(0)=="/")return e.slice(1);var n=t.split("/");t.slice(-1)!="/"&&n.pop();for(var a=e.split("/");a.length!==0;){var i=a.shift();i===".."?n.pop():i!=="."&&n.push(i)}return n.join("/")}var N4=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
|
||
`,nE=/([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,jv=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s*[\/\?]?>/mg,aE=/<[^>]*>/g,ya=N4.match(jv)?jv:aE,iE=/<\w*:/,sE=/<(\/?)\w+:/;function it(e,t,n){for(var a={},i=0,r=0;i!==e.length&&!((r=e.charCodeAt(i))===32||r===10||r===13);++i);if(t||(a[0]=e.slice(0,i)),i===e.length)return a;var c=e.match(nE),l=0,f="",T=0,p="",m="",g=1;if(c)for(T=0;T!=c.length;++T){for(m=c[T],r=0;r!=m.length&&m.charCodeAt(r)!==61;++r);for(p=m.slice(0,r).trim();m.charCodeAt(r+1)==32;)++r;for(g=(i=m.charCodeAt(r+1))==34||i==39?1:0,f=m.slice(r+1+g,m.length-g),l=0;l!=p.length&&p.charCodeAt(l)!==58;++l);if(l===p.length)p.indexOf("_")>0&&(p=p.slice(0,p.indexOf("_"))),a[p]=f,a[p.toLowerCase()]=f;else{var S=(l===5&&p.slice(0,5)==="xmlns"?"xmlns":"")+p.slice(l+1);if(a[S]&&p.slice(l-3,l)=="ext")continue;a[S]=f,a[S.toLowerCase()]=f}}return a}function as(e){return e.replace(sE,"<$1")}var O4={""":'"',"'":"'",">":">","<":"<","&":"&"},rE=Fp(O4),Ut=(function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/ig,t=/_x([\da-fA-F]{4})_/ig;return function n(a){var i=a+"",r=i.indexOf("<![CDATA[");if(r==-1)return i.replace(e,function(l,f){return O4[l]||String.fromCharCode(parseInt(f,l.indexOf("x")>-1?16:10))||l}).replace(t,function(l,f){return String.fromCharCode(parseInt(f,16))});var c=i.indexOf("]]>");return n(i.slice(0,r))+i.slice(r+9,c)+n(i.slice(c+3))}})(),oE=/[&<>'"]/g,cE=/[\u0000-\u001f]/g;function Pp(e){var t=e+"";return t.replace(oE,function(n){return rE[n]}).replace(/\n/g,"<br/>").replace(cE,function(n){return"&#x"+("000"+n.charCodeAt(0).toString(16)).slice(-4)+";"})}var Fv=(function(){var e=/&#(\d+);/g;function t(n,a){return String.fromCharCode(parseInt(a,10))}return function(a){return a.replace(e,t)}})();function dn(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}function Ff(e){for(var t="",n=0,a=0,i=0,r=0,c=0,l=0;n<e.length;){if(a=e.charCodeAt(n++),a<128){t+=String.fromCharCode(a);continue}if(i=e.charCodeAt(n++),a>191&&a<224){c=(a&31)<<6,c|=i&63,t+=String.fromCharCode(c);continue}if(r=e.charCodeAt(n++),a<240){t+=String.fromCharCode((a&15)<<12|(i&63)<<6|r&63);continue}c=e.charCodeAt(n++),l=((a&7)<<18|(i&63)<<12|(r&63)<<6|c&63)-65536,t+=String.fromCharCode(55296+(l>>>10&1023)),t+=String.fromCharCode(56320+(l&1023))}return t}function Lv(e){var t=pr(2*e.length),n,a,i=1,r=0,c=0,l;for(a=0;a<e.length;a+=i)i=1,(l=e.charCodeAt(a))<128?n=l:l<224?(n=(l&31)*64+(e.charCodeAt(a+1)&63),i=2):l<240?(n=(l&15)*4096+(e.charCodeAt(a+1)&63)*64+(e.charCodeAt(a+2)&63),i=3):(i=4,n=(l&7)*262144+(e.charCodeAt(a+1)&63)*4096+(e.charCodeAt(a+2)&63)*64+(e.charCodeAt(a+3)&63),n-=65536,c=55296+(n>>>10&1023),n=56320+(n&1023)),c!==0&&(t[r++]=c&255,t[r++]=c>>>8,c=0),t[r++]=n%256,t[r++]=n>>>8;return t.slice(0,r).toString("ucs2")}function Pv(e){return u0(e,"binary").toString("utf8")}var zl="foo bar bazâð£",rn=Mt&&(Pv(zl)==Ff(zl)&&Pv||Lv(zl)==Ff(zl)&&Lv)||Ff,Fc=Mt?function(e){return u0(e,"utf8").toString("binary")}:function(e){for(var t=[],n=0,a=0,i=0;n<e.length;)switch(a=e.charCodeAt(n++),!0){case a<128:t.push(String.fromCharCode(a));break;case a<2048:t.push(String.fromCharCode(192+(a>>6))),t.push(String.fromCharCode(128+(a&63)));break;case(a>=55296&&a<57344):a-=55296,i=e.charCodeAt(n++)-56320+(a<<10),t.push(String.fromCharCode(240+(i>>18&7))),t.push(String.fromCharCode(144+(i>>12&63))),t.push(String.fromCharCode(128+(i>>6&63))),t.push(String.fromCharCode(128+(i&63)));break;default:t.push(String.fromCharCode(224+(a>>12))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(a&63)))}return t.join("")},i1=(function(){var e={};return function(n,a){var i=n+"|"+(a||"");return e[i]?e[i]:e[i]=new RegExp("<(?:\\w+:)?"+n+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)</(?:\\w+:)?'+n+">",a||"")}})(),M4=(function(){var e=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map(function(t){return[new RegExp("&"+t[0]+";","ig"),t[1]]});return function(n){for(var a=n.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+</g,"<").replace(/[\t\n\r ]+/g," ").replace(/<\s*[bB][rR]\s*\/?>/g,`
|
||
`).replace(/<[^>]*>/g,""),i=0;i<e.length;++i)a=a.replace(e[i][0],e[i][1]);return a}})(),lE=(function(){var e={};return function(n){return e[n]!==void 0?e[n]:e[n]=new RegExp("<(?:vt:)?"+n+">([\\s\\S]*?)</(?:vt:)?"+n+">","g")}})(),uE=/<\/?(?:vt:)?variant>/g,dE=/<(?:vt:)([^>]*)>([\s\S]*)</;function _v(e,t){var n=it(e),a=e.match(lE(n.baseType))||[],i=[];if(a.length!=n.size){if(t.WTF)throw new Error("unexpected vector length "+a.length+" != "+n.size);return i}return a.forEach(function(r){var c=r.replace(uE,"").match(dE);c&&i.push({v:rn(c[2]),t:c[1]})}),i}var TE=/(^\s|\s$|\n)/;function fE(e){return ns(e).map(function(t){return" "+t+'="'+e[t]+'"'}).join("")}function hE(e,t,n){return"<"+e+(n!=null?fE(n):"")+(t!=null?(t.match(TE)?' xml:space="preserve"':"")+">"+t+"</"+e:"/")+">"}function _p(e){if(Mt&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e=="string")return e;if(typeof Uint8Array<"u"&&e instanceof Uint8Array)return rn(d0(Op(e)));throw new Error("Bad input format: expected Buffer or string")}var s1=/<(\/?)([^\s?><!\/:]*:|)([^\s?<>:\/]+)(?:[\s?:\/][^>]*)?>/mg,pE={CT:"http://schemas.openxmlformats.org/package/2006/content-types"},mE=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function gE(e,t){for(var n=1-2*(e[t+7]>>>7),a=((e[t+7]&127)<<4)+(e[t+6]>>>4&15),i=e[t+6]&15,r=5;r>=0;--r)i=i*256+e[t+r];return a==2047?i==0?n*(1/0):NaN:(a==0?a=-1022:(a-=1023,i+=Math.pow(2,52)),n*Math.pow(2,a-52)*i)}function vE(e,t,n){var a=(t<0||1/t==-1/0?1:0)<<7,i=0,r=0,c=a?-t:t;isFinite(c)?c==0?i=r=0:(i=Math.floor(Math.log(c)/Math.LN2),r=c*Math.pow(2,52-i),i<=-1023&&(!isFinite(r)||r<Math.pow(2,52))?i=-1022:(r-=Math.pow(2,52),i+=1023)):(i=2047,r=isNaN(t)?26985:0);for(var l=0;l<=5;++l,r/=256)e[n+l]=r&255;e[n+6]=(i&15)<<4|r&15,e[n+7]=i>>4|a}var qv=function(e){for(var t=[],n=10240,a=0;a<e[0].length;++a)if(e[0][a])for(var i=0,r=e[0][a].length;i<r;i+=n)t.push.apply(t,e[0][a].slice(i,i+n));return t},Bv=Mt?function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0].map(function(t){return Buffer.isBuffer(t)?t:u0(t)})):qv(e)}:qv,Uv=function(e,t,n){for(var a=[],i=t;i<n;i+=2)a.push(String.fromCharCode(Rs(e,i)));return a.join("").replace(Oa,"")},qp=Mt?function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf16le",t,n).replace(Oa,""):Uv(e,t,n)}:Uv,zv=function(e,t,n){for(var a=[],i=t;i<t+n;++i)a.push(("0"+e[i].toString(16)).slice(-2));return a.join("")},j4=Mt?function(e,t,n){return Buffer.isBuffer(e)?e.toString("hex",t,t+n):zv(e,t,n)}:zv,Wv=function(e,t,n){for(var a=[],i=t;i<n;i++)a.push(String.fromCharCode(ro(e,i)));return a.join("")},C1=Mt?function(t,n,a){return Buffer.isBuffer(t)?t.toString("utf8",n,a):Wv(t,n,a)}:Wv,F4=function(e,t){var n=Za(e,t);return n>0?C1(e,t+4,t+4+n-1):""},L4=F4,P4=function(e,t){var n=Za(e,t);return n>0?C1(e,t+4,t+4+n-1):""},_4=P4,q4=function(e,t){var n=2*Za(e,t);return n>0?C1(e,t+4,t+4+n-1):""},B4=q4,U4=function(t,n){var a=Za(t,n);return a>0?qp(t,n+4,n+4+a):""},z4=U4,W4=function(e,t){var n=Za(e,t);return n>0?C1(e,t+4,t+4+n):""},V4=W4,H4=function(e,t){return gE(e,t)},_u=H4,G4=function(t){return Array.isArray(t)||typeof Uint8Array<"u"&&t instanceof Uint8Array};Mt&&(L4=function(t,n){if(!Buffer.isBuffer(t))return F4(t,n);var a=t.readUInt32LE(n);return a>0?t.toString("utf8",n+4,n+4+a-1):""},_4=function(t,n){if(!Buffer.isBuffer(t))return P4(t,n);var a=t.readUInt32LE(n);return a>0?t.toString("utf8",n+4,n+4+a-1):""},B4=function(t,n){if(!Buffer.isBuffer(t))return q4(t,n);var a=2*t.readUInt32LE(n);return t.toString("utf16le",n+4,n+4+a-1)},z4=function(t,n){if(!Buffer.isBuffer(t))return U4(t,n);var a=t.readUInt32LE(n);return t.toString("utf16le",n+4,n+4+a)},V4=function(t,n){if(!Buffer.isBuffer(t))return W4(t,n);var a=t.readUInt32LE(n);return t.toString("utf8",n+4,n+4+a)},_u=function(t,n){return Buffer.isBuffer(t)?t.readDoubleLE(n):H4(t,n)},G4=function(t){return Buffer.isBuffer(t)||Array.isArray(t)||typeof Uint8Array<"u"&&t instanceof Uint8Array});var ro=function(e,t){return e[t]},Rs=function(e,t){return e[t+1]*256+e[t]},xE=function(e,t){var n=e[t+1]*256+e[t];return n<32768?n:(65535-n+1)*-1},Za=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},Xr=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},yE=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function Wc(e,t){var n="",a,i,r=[],c,l,f,T;switch(t){case"dbcs":if(T=this.l,Mt&&Buffer.isBuffer(this))n=this.slice(this.l,this.l+2*e).toString("utf16le");else for(f=0;f<e;++f)n+=String.fromCharCode(Rs(this,T)),T+=2;e*=2;break;case"utf8":n=C1(this,this.l,this.l+e);break;case"utf16le":e*=2,n=qp(this,this.l,this.l+e);break;case"wstr":return Wc.call(this,e,"dbcs");case"lpstr-ansi":n=L4(this,this.l),e=4+Za(this,this.l);break;case"lpstr-cp":n=_4(this,this.l),e=4+Za(this,this.l);break;case"lpwstr":n=B4(this,this.l),e=4+2*Za(this,this.l);break;case"lpp4":e=4+Za(this,this.l),n=z4(this,this.l),e&2&&(e+=2);break;case"8lpp4":e=4+Za(this,this.l),n=V4(this,this.l),e&3&&(e+=4-(e&3));break;case"cstr":for(e=0,n="";(c=ro(this,this.l+e++))!==0;)r.push(Ul(c));n=r.join("");break;case"_wstr":for(e=0,n="";(c=Rs(this,this.l+e))!==0;)r.push(Ul(c)),e+=2;e+=2,n=r.join("");break;case"dbcs-cont":for(n="",T=this.l,f=0;f<e;++f){if(this.lens&&this.lens.indexOf(T)!==-1)return c=ro(this,T),this.l=T+1,l=Wc.call(this,e-f,c?"dbcs-cont":"sbcs-cont"),r.join("")+l;r.push(Ul(Rs(this,T))),T+=2}n=r.join(""),e*=2;break;case"cpstr":case"sbcs-cont":for(n="",T=this.l,f=0;f!=e;++f){if(this.lens&&this.lens.indexOf(T)!==-1)return c=ro(this,T),this.l=T+1,l=Wc.call(this,e-f,c?"dbcs-cont":"sbcs-cont"),r.join("")+l;r.push(Ul(ro(this,T))),T+=1}n=r.join("");break;default:switch(e){case 1:return a=ro(this,this.l),this.l++,a;case 2:return a=(t==="i"?xE:Rs)(this,this.l),this.l+=2,a;case 4:case-4:return t==="i"||(this[this.l+3]&128)===0?(a=(e>0?Xr:yE)(this,this.l),this.l+=4,a):(i=Za(this,this.l),this.l+=4,i);case 8:case-8:if(t==="f")return e==8?i=_u(this,this.l):i=_u([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,i;e=8;case 16:n=j4(this,this.l,e);break}}return this.l+=e,n}var SE=function(e,t,n){e[n]=t&255,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24&255},bE=function(e,t,n){e[n]=t&255,e[n+1]=t>>8&255,e[n+2]=t>>16&255,e[n+3]=t>>24&255},wE=function(e,t,n){e[n]=t&255,e[n+1]=t>>>8&255};function CE(e,t,n){var a=0,i=0;if(n==="dbcs"){for(i=0;i!=t.length;++i)wE(this,t.charCodeAt(i),this.l+2*i);a=2*t.length}else if(n==="sbcs"){for(t=t.replace(/[^\x00-\x7F]/g,"_"),i=0;i!=t.length;++i)this[this.l+i]=t.charCodeAt(i)&255;a=t.length}else if(n==="hex"){for(;i<e;++i)this[this.l++]=parseInt(t.slice(2*i,2*i+2),16)||0;return this}else if(n==="utf16le"){var r=Math.min(this.l+e,this.length);for(i=0;i<Math.min(t.length,e);++i){var c=t.charCodeAt(i);this[this.l++]=c&255,this[this.l++]=c>>8}for(;this.l<r;)this[this.l++]=0;return this}else switch(e){case 1:a=1,this[this.l]=t&255;break;case 2:a=2,this[this.l]=t&255,t>>>=8,this[this.l+1]=t&255;break;case 3:a=3,this[this.l]=t&255,t>>>=8,this[this.l+1]=t&255,t>>>=8,this[this.l+2]=t&255;break;case 4:a=4,SE(this,t,this.l);break;case 8:if(a=8,n==="f"){vE(this,t,this.l);break}case 16:break;case-4:a=4,bE(this,t,this.l);break}return this.l+=a,this}function X4(e,t){var n=j4(this,this.l,e.length>>1);if(n!==e)throw new Error(t+"Expected "+e+" saw "+n);this.l+=e.length>>1}function aa(e,t){e.l=t,e.read_shift=Wc,e.chk=X4,e.write_shift=CE}function xa(e,t){e.l+=t}function Bn(e){var t=pr(e);return aa(t,0),t}function js(e,t,n){if(e){var a,i,r;aa(e,e.l||0);for(var c=e.length,l=0,f=0;e.l<c;){l=e.read_shift(1),l&128&&(l=(l&127)+((e.read_shift(1)&127)<<7));var T=Vu[l]||Vu[65535];for(a=e.read_shift(1),r=a&127,i=1;i<4&&a&128;++i)r+=((a=e.read_shift(1))&127)<<7*i;f=e.l+r;var p=T.f&&T.f(e,r,n);if(e.l=f,t(p,T,l))return}}}function qh(){var e=[],t=Mt?256:2048,n=function(T){var p=Bn(T);return aa(p,0),p},a=n(t),i=function(){a&&(a.length>a.l&&(a=a.slice(0,a.l),a.l=a.length),a.length>0&&e.push(a),a=null)},r=function(T){return a&&T<a.length-a.l?a:(i(),a=n(Math.max(T+1,t)))},c=function(){return i(),lr(e)},l=function(T){i(),a=T,a.l==null&&(a.l=a.length),r(t)};return{next:r,push:l,end:c,_bufs:e}}function Vc(e,t,n){var a=sa(e);if(t.s?(a.cRel&&(a.c+=t.s.c),a.rRel&&(a.r+=t.s.r)):(a.cRel&&(a.c+=t.c),a.rRel&&(a.r+=t.r)),!n||n.biff<12){for(;a.c>=256;)a.c-=256;for(;a.r>=65536;)a.r-=65536}return a}function Vv(e,t,n){var a=sa(e);return a.s=Vc(a.s,t.s,n),a.e=Vc(a.e,t.s,n),a}function Hc(e,t){if(e.cRel&&e.c<0)for(e=sa(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=sa(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var n=ht(e);return!e.cRel&&e.cRel!=null&&(n=AE(n)),!e.rRel&&e.rRel!=null&&(n=EE(n)),n}function Lf(e,t){return e.s.r==0&&!e.s.rRel&&e.e.r==(t.biff>=12?1048575:t.biff>=8?65536:16384)&&!e.e.rRel?(e.s.cRel?"":"$")+Un(e.s.c)+":"+(e.e.cRel?"":"$")+Un(e.e.c):e.s.c==0&&!e.s.cRel&&e.e.c==(t.biff>=12?16383:255)&&!e.e.cRel?(e.s.rRel?"":"$")+ra(e.s.r)+":"+(e.e.rRel?"":"$")+ra(e.e.r):Hc(e.s,t.biff)+":"+Hc(e.e,t.biff)}function Bp(e){return parseInt(kE(e),10)-1}function ra(e){return""+(e+1)}function EE(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function kE(e){return e.replace(/\$(\d+)$/,"$1")}function Up(e){for(var t=RE(e),n=0,a=0;a!==t.length;++a)n=26*n+t.charCodeAt(a)-64;return n-1}function Un(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function AE(e){return e.replace(/^([A-Z])/,"$$$1")}function RE(e){return e.replace(/^\$([A-Z])/,"$1")}function DE(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Na(e){for(var t=0,n=0,a=0;a<e.length;++a){var i=e.charCodeAt(a);i>=48&&i<=57?t=10*t+(i-48):i>=65&&i<=90&&(n=26*n+(i-64))}return{c:n-1,r:t-1}}function ht(e){for(var t=e.c+1,n="";t;t=(t-1)/26|0)n=String.fromCharCode((t-1)%26+65)+n;return n+(e.r+1)}function Eo(e){var t=e.indexOf(":");return t==-1?{s:Na(e),e:Na(e)}:{s:Na(e.slice(0,t)),e:Na(e.slice(t+1))}}function Lt(e,t){return typeof t>"u"||typeof t=="number"?Lt(e.s,e.e):(typeof e!="string"&&(e=ht(e)),typeof t!="string"&&(t=ht(t)),e==t?e:e+":"+t)}function xn(e){var t={s:{c:0,r:0},e:{c:0,r:0}},n=0,a=0,i=0,r=e.length;for(n=0;a<r&&!((i=e.charCodeAt(a)-64)<1||i>26);++a)n=26*n+i;for(t.s.c=--n,n=0;a<r&&!((i=e.charCodeAt(a)-48)<0||i>9);++a)n=10*n+i;if(t.s.r=--n,a===r||i!=10)return t.e.c=t.s.c,t.e.r=t.s.r,t;for(++a,n=0;a!=r&&!((i=e.charCodeAt(a)-64)<1||i>26);++a)n=26*n+i;for(t.e.c=--n,n=0;a!=r&&!((i=e.charCodeAt(a)-48)<0||i>9);++a)n=10*n+i;return t.e.r=--n,t}function Hv(e,t){var n=e.t=="d"&&t instanceof Date;if(e.z!=null)try{return e.w=xi(e.z,n?Ma(t):t)}catch{}try{return e.w=xi((e.XF||{}).numFmtId||(n?14:0),n?Ma(t):t)}catch{return""+t}}function Ms(e,t,n){return e==null||e.t==null||e.t=="z"?"":e.w!==void 0?e.w:(e.t=="d"&&!e.z&&n&&n.dateNF&&(e.z=n.dateNF),e.t=="e"?h0[e.v]||e.v:t==null?Hv(e,e.v):Hv(e,t))}function xr(e,t){var n=t&&t.sheet?t.sheet:"Sheet1",a={};return a[n]=e,{SheetNames:[n],Sheets:a}}function K4(e,t,n){var a=n||{},i=e?Array.isArray(e):a.dense,r=e||(i?[]:{}),c=0,l=0;if(r&&a.origin!=null){if(typeof a.origin=="number")c=a.origin;else{var f=typeof a.origin=="string"?Na(a.origin):a.origin;c=f.r,l=f.c}r["!ref"]||(r["!ref"]="A1:A1")}var T={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(r["!ref"]){var p=xn(r["!ref"]);T.s.c=p.s.c,T.s.r=p.s.r,T.e.c=Math.max(T.e.c,p.e.c),T.e.r=Math.max(T.e.r,p.e.r),c==-1&&(T.e.r=c=p.e.r+1)}for(var m=0;m!=t.length;++m)if(t[m]){if(!Array.isArray(t[m]))throw new Error("aoa_to_sheet expects an array of arrays");for(var g=0;g!=t[m].length;++g)if(!(typeof t[m][g]>"u")){var S={v:t[m][g]},x=c+m,y=l+g;if(T.s.r>x&&(T.s.r=x),T.s.c>y&&(T.s.c=y),T.e.r<x&&(T.e.r=x),T.e.c<y&&(T.e.c=y),t[m][g]&&typeof t[m][g]=="object"&&!Array.isArray(t[m][g])&&!(t[m][g]instanceof Date))S=t[m][g];else if(Array.isArray(S.v)&&(S.f=t[m][g][1],S.v=S.v[0]),S.v===null)if(S.f)S.t="n";else if(a.nullError)S.t="e",S.v=0;else if(a.sheetStubs)S.t="z";else continue;else typeof S.v=="number"?S.t="n":typeof S.v=="boolean"?S.t="b":S.v instanceof Date?(S.z=a.dateNF||vt[14],a.cellDates?(S.t="d",S.w=xi(S.z,Ma(S.v))):(S.t="n",S.v=Ma(S.v),S.w=xi(S.z,S.v))):S.t="s";if(i)r[x]||(r[x]=[]),r[x][y]&&r[x][y].z&&(S.z=r[x][y].z),r[x][y]=S;else{var w=ht({c:y,r:x});r[w]&&r[w].z&&(S.z=r[w].z),r[w]=S}}}return T.s.c<1e7&&(r["!ref"]=Lt(T)),r}function ko(e,t){return K4(null,e,t)}function IE(e){return e.read_shift(4,"i")}function va(e){var t=e.read_shift(4);return t===0?"":e.read_shift(t,"dbcs")}function NE(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function zp(e,t){var n=e.l,a=e.read_shift(1),i=va(e),r=[],c={t:i,h:i};if((a&1)!==0){for(var l=e.read_shift(4),f=0;f!=l;++f)r.push(NE(e));c.r=r}else c.r=[{ich:0,ifnt:0}];return e.l=n+t,c}var OE=zp;function yi(e){var t=e.read_shift(4),n=e.read_shift(2);return n+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:n}}function T0(e){var t=e.read_shift(2);return t+=e.read_shift(1)<<16,e.l++,{c:-1,iStyleRef:t}}var ME=va;function Wp(e){var t=e.read_shift(4);return t===0||t===4294967295?"":e.read_shift(t,"dbcs")}var jE=va,Bh=Wp;function Vp(e){var t=e.slice(e.l,e.l+4),n=t[0]&1,a=t[0]&2;e.l+=4;var i=a===0?_u([0,0,0,0,t[0]&252,t[1],t[2],t[3]],0):Xr(t,0)>>2;return n?i/100:i}function $4(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}var f0=$4;function pa(e){if(e.length-e.l<8)throw"XLS Xnum Buffer underflow";return e.read_shift(8,"f")}function FE(e){var t={},n=e.read_shift(1),a=n>>>1,i=e.read_shift(1),r=e.read_shift(2,"i"),c=e.read_shift(1),l=e.read_shift(1),f=e.read_shift(1);switch(e.l++,a){case 0:t.auto=1;break;case 1:t.index=i;var T=t0[i];T&&(t.rgb=o1(T));break;case 2:t.rgb=o1([c,l,f]);break;case 3:t.theme=i;break}return r!=0&&(t.tint=r>0?r/32767:r/32768),t}function LE(e){var t=e.read_shift(1);e.l++;var n={fBold:t&1,fItalic:t&2,fUnderline:t&4,fStrikeout:t&8,fOutline:t&16,fShadow:t&32,fCondense:t&64,fExtend:t&128};return n}function Y4(e,t){var n={2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"},a=e.read_shift(4);switch(a){case 0:return"";case 4294967295:case 4294967294:return n[e.read_shift(4)]||""}if(a>400)throw new Error("Unsupported Clipboard: "+a.toString(16));return e.l-=4,e.read_shift(0,t==1?"lpstr":"lpwstr")}function PE(e){return Y4(e,1)}function _E(e){return Y4(e,2)}var Hp=2,Ba=3,Wl=11,Gv=12,qu=19,Vl=64,qE=65,BE=71,UE=4108,zE=4126,$n=80,Z4=81,WE=[$n,Z4],VE={1:{n:"CodePage",t:Hp},2:{n:"Category",t:$n},3:{n:"PresentationFormat",t:$n},4:{n:"ByteCount",t:Ba},5:{n:"LineCount",t:Ba},6:{n:"ParagraphCount",t:Ba},7:{n:"SlideCount",t:Ba},8:{n:"NoteCount",t:Ba},9:{n:"HiddenCount",t:Ba},10:{n:"MultimediaClipCount",t:Ba},11:{n:"ScaleCrop",t:Wl},12:{n:"HeadingPairs",t:UE},13:{n:"TitlesOfParts",t:zE},14:{n:"Manager",t:$n},15:{n:"Company",t:$n},16:{n:"LinksUpToDate",t:Wl},17:{n:"CharacterCount",t:Ba},19:{n:"SharedDoc",t:Wl},22:{n:"HyperlinksChanged",t:Wl},23:{n:"AppVersion",t:Ba,p:"version"},24:{n:"DigSig",t:qE},26:{n:"ContentType",t:$n},27:{n:"ContentStatus",t:$n},28:{n:"Language",t:$n},29:{n:"Version",t:$n},255:{},2147483648:{n:"Locale",t:qu},2147483651:{n:"Behavior",t:qu},1919054434:{}},HE={1:{n:"CodePage",t:Hp},2:{n:"Title",t:$n},3:{n:"Subject",t:$n},4:{n:"Author",t:$n},5:{n:"Keywords",t:$n},6:{n:"Comments",t:$n},7:{n:"Template",t:$n},8:{n:"LastAuthor",t:$n},9:{n:"RevNumber",t:$n},10:{n:"EditTime",t:Vl},11:{n:"LastPrinted",t:Vl},12:{n:"CreatedDate",t:Vl},13:{n:"ModifiedDate",t:Vl},14:{n:"PageCount",t:Ba},15:{n:"WordCount",t:Ba},16:{n:"CharCount",t:Ba},17:{n:"Thumbnail",t:BE},18:{n:"Application",t:$n},19:{n:"DocSecurity",t:Ba},255:{},2147483648:{n:"Locale",t:qu},2147483651:{n:"Behavior",t:qu},1919054434:{}},Xv={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},GE=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function XE(e){return e.map(function(t){return[t>>16&255,t>>8&255,t&255]})}var KE=XE([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t0=sa(KE),h0={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},J4={"#NULL!":0,"#DIV/0!":7,"#VALUE!":15,"#REF!":23,"#NAME?":29,"#NUM!":36,"#N/A":42,"#GETTING_DATA":43,"#WTF?":255},Kv={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.sheet.macroEnabled.main+xml":"workbooks","application/vnd.ms-excel.sheet.binary.macroEnabled.main":"workbooks","application/vnd.ms-excel.addin.macroEnabled.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":"sheets","application/vnd.ms-excel.worksheet":"sheets","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"charts","application/vnd.ms-excel.chartsheet":"charts","application/vnd.ms-excel.macrosheet+xml":"macros","application/vnd.ms-excel.macrosheet":"macros","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"dialogs","application/vnd.ms-excel.dialogsheet":"dialogs","application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml":"strs","application/vnd.ms-excel.sharedStrings":"strs","application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":"styles","application/vnd.ms-excel.styles":"styles","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.comments":"comments","application/vnd.ms-excel.threadedcomments+xml":"threadedcomments","application/vnd.ms-excel.person+xml":"people","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"metadata","application/vnd.ms-excel.sheetMetadata":"metadata","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"TODO","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};function $E(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:""}}function YE(e){var t=$E();if(!e||!e.match)return t;var n={};if((e.match(ya)||[]).forEach(function(a){var i=it(a);switch(i[0].replace(iE,"<")){case"<?xml":break;case"<Types":t.xmlns=i["xmlns"+(i[0].match(/<(\w+):/)||["",""])[1]];break;case"<Default":n[i.Extension]=i.ContentType;break;case"<Override":t[Kv[i.ContentType]]!==void 0&&t[Kv[i.ContentType]].push(i.PartName);break}}),t.xmlns!==pE.CT)throw new Error("Unknown Namespace: "+t.xmlns);return t.calcchain=t.calcchains.length>0?t.calcchains[0]:"",t.sst=t.strs.length>0?t.strs[0]:"",t.style=t.styles.length>0?t.styles[0]:"",t.defaults=n,delete t.calcchains,t}var co={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",CMNT:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",SST:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",STY:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",THEME:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",CHART:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",CHARTEX:"http://schemas.microsoft.com/office/2014/relationships/chartEx",CS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",WS:["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],DS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",MS:"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",IMG:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",DRAW:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",XLMETA:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",TCMNT:"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",PEOPLE:"http://schemas.microsoft.com/office/2017/10/relationships/person",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Uh(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Gc(e,t){var n={"!id":{}};if(!e)return n;t.charAt(0)!=="/"&&(t="/"+t);var a={};return(e.match(ya)||[]).forEach(function(i){var r=it(i);if(r[0]==="<Relationship"){var c={};c.Type=r.Type,c.Target=r.Target,c.Id=r.Id,r.TargetMode&&(c.TargetMode=r.TargetMode);var l=r.TargetMode==="External"?r.Target:jc(r.Target,t);n[l]=c,a[r.Id]=c}}),n["!id"]=a,n}var ZE="application/vnd.oasis.opendocument.spreadsheet";function JE(e,t){for(var n=_p(e),a,i;a=s1.exec(n);)switch(a[3]){case"manifest":break;case"file-entry":if(i=it(a[0],!1),i.path=="/"&&i.type!==ZE)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(t&&t.WTF)throw a}}var Xc=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]],QE=(function(){for(var e=new Array(Xc.length),t=0;t<Xc.length;++t){var n=Xc[t],a="(?:"+n[0].slice(0,n[0].indexOf(":"))+":)"+n[0].slice(n[0].indexOf(":")+1);e[t]=new RegExp("<"+a+"[^>]*>([\\s\\S]*?)</"+a+">")}return e})();function Q4(e){var t={};e=rn(e);for(var n=0;n<Xc.length;++n){var a=Xc[n],i=e.match(QE[n]);i!=null&&i.length>0&&(t[a[1]]=Ut(i[1])),a[2]==="date"&&t[a[1]]&&(t[a[1]]=Yn(t[a[1]]))}return t}var ek=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function eS(e,t,n,a){var i=[];if(typeof e=="string")i=_v(e,a);else for(var r=0;r<e.length;++r)i=i.concat(e[r].map(function(p){return{v:p}}));var c=typeof t=="string"?_v(t,a).map(function(p){return p.v}):t,l=0,f=0;if(c.length>0)for(var T=0;T!==i.length;T+=2){switch(f=+i[T+1].v,i[T].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":n.Worksheets=f,n.SheetNames=c.slice(l,l+f);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":n.NamedRanges=f,n.DefinedNames=c.slice(l,l+f);break;case"Charts":case"Diagramme":n.Chartsheets=f,n.ChartNames=c.slice(l,l+f);break}l+=f}}function tk(e,t,n){var a={};return t||(t={}),e=rn(e),ek.forEach(function(i){var r=(e.match(i1(i[0]))||[])[1];switch(i[2]){case"string":r&&(t[i[1]]=Ut(r));break;case"bool":t[i[1]]=r==="true";break;case"raw":var c=e.match(new RegExp("<"+i[0]+"[^>]*>([\\s\\S]*?)</"+i[0]+">"));c&&c.length>0&&(a[i[1]]=c[1]);break}}),a.HeadingPairs&&a.TitlesOfParts&&eS(a.HeadingPairs,a.TitlesOfParts,t,n),t}var nk=/<[^>]+>[^<]*/g;function ak(e,t){var n={},a="",i=e.match(nk);if(i)for(var r=0;r!=i.length;++r){var c=i[r],l=it(c);switch(l[0]){case"<?xml":break;case"<Properties":break;case"<property":a=Ut(l.name);break;case"</property>":a=null;break;default:if(c.indexOf("<vt:")===0){var f=c.split(">"),T=f[0].slice(4),p=f[1];switch(T){case"lpstr":case"bstr":case"lpwstr":n[a]=Ut(p);break;case"bool":n[a]=dn(p);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":n[a]=parseInt(p,10);break;case"r4":case"r8":case"decimal":n[a]=parseFloat(p);break;case"filetime":case"date":n[a]=Yn(p);break;case"cy":case"error":n[a]=Ut(p);break;default:if(T.slice(-1)=="/")break;t.WTF&&typeof console<"u"&&console.warn("Unexpected",c,T,f)}}else if(c.slice(0,2)!=="</"){if(t.WTF)throw new Error(c)}}}return n}var ik={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},Pf;function sk(e,t,n){Pf||(Pf=Fp(ik)),t=Pf[t]||t,e[t]=n}function Gp(e){var t=e.read_shift(4),n=e.read_shift(4);return new Date((n/1e7*Math.pow(2,32)+t/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function tS(e,t,n){var a=e.l,i=e.read_shift(0,"lpstr-cp");if(n)for(;e.l-a&3;)++e.l;return i}function nS(e,t,n){var a=e.read_shift(0,"lpwstr");return a}function aS(e,t,n){return t===31?nS(e):tS(e,t,n)}function zh(e,t,n){return aS(e,t,n===!1?0:4)}function rk(e,t){if(!t)throw new Error("VtUnalignedString must have positive length");return aS(e,t,0)}function ok(e){for(var t=e.read_shift(4),n=[],a=0;a!=t;++a){var i=e.l;n[a]=e.read_shift(0,"lpwstr").replace(Oa,""),e.l-i&2&&(e.l+=2)}return n}function ck(e){for(var t=e.read_shift(4),n=[],a=0;a!=t;++a)n[a]=e.read_shift(0,"lpstr-cp").replace(Oa,"");return n}function lk(e){var t=e.l,n=Bu(e,Z4);e[e.l]==0&&e[e.l+1]==0&&e.l-t&2&&(e.l+=2);var a=Bu(e,Ba);return[n,a]}function uk(e){for(var t=e.read_shift(4),n=[],a=0;a<t/2;++a)n.push(lk(e));return n}function $v(e,t){for(var n=e.read_shift(4),a={},i=0;i!=n;++i){var r=e.read_shift(4),c=e.read_shift(4);a[r]=e.read_shift(c,t===1200?"utf16le":"utf8").replace(Oa,"").replace(Mc,"!"),t===1200&&c%2&&(e.l+=2)}return e.l&3&&(e.l=e.l>>3<<2),a}function iS(e){var t=e.read_shift(4),n=e.slice(e.l,e.l+t);return e.l+=t,(t&3)>0&&(e.l+=4-(t&3)&3),n}function dk(e){var t={};return t.Size=e.read_shift(4),e.l+=t.Size+3-(t.Size-1)%4,t}function Bu(e,t,n){var a=e.read_shift(2),i,r=n||{};if(e.l+=2,t!==Gv&&a!==t&&WE.indexOf(t)===-1&&!((t&65534)==4126&&(a&65534)==4126))throw new Error("Expected type "+t+" saw "+a);switch(t===Gv?a:t){case 2:return i=e.read_shift(2,"i"),r.raw||(e.l+=2),i;case 3:return i=e.read_shift(4,"i"),i;case 11:return e.read_shift(4)!==0;case 19:return i=e.read_shift(4),i;case 30:return tS(e,a,4).replace(Oa,"");case 31:return nS(e);case 64:return Gp(e);case 65:return iS(e);case 71:return dk(e);case 80:return zh(e,a,!r.raw).replace(Oa,"");case 81:return rk(e,a).replace(Oa,"");case 4108:return uk(e);case 4126:case 4127:return a==4127?ok(e):ck(e);default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+a)}}function Yv(e,t){var n=e.l,a=e.read_shift(4),i=e.read_shift(4),r=[],c=0,l=0,f=-1,T={};for(c=0;c!=i;++c){var p=e.read_shift(4),m=e.read_shift(4);r[c]=[p,m+n]}r.sort(function(k,E){return k[1]-E[1]});var g={};for(c=0;c!=i;++c){if(e.l!==r[c][1]){var S=!0;if(c>0&&t)switch(t[r[c-1][0]].t){case 2:e.l+2===r[c][1]&&(e.l+=2,S=!1);break;case 80:e.l<=r[c][1]&&(e.l=r[c][1],S=!1);break;case 4108:e.l<=r[c][1]&&(e.l=r[c][1],S=!1);break}if((!t||c==0)&&e.l<=r[c][1]&&(S=!1,e.l=r[c][1]),S)throw new Error("Read Error: Expected address "+r[c][1]+" at "+e.l+" :"+c)}if(t){var x=t[r[c][0]];if(g[x.n]=Bu(e,x.t,{raw:!0}),x.p==="version"&&(g[x.n]=String(g[x.n]>>16)+"."+("0000"+String(g[x.n]&65535)).slice(-4)),x.n=="CodePage")switch(g[x.n]){case 0:g[x.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:Li(l=g[x.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+g[x.n])}}else if(r[c][0]===1){if(l=g.CodePage=Bu(e,Hp),Li(l),f!==-1){var y=e.l;e.l=r[f][1],T=$v(e,l),e.l=y}}else if(r[c][0]===0){if(l===0){f=c,e.l=r[c+1][1];continue}T=$v(e,l)}else{var w=T[r[c][0]],C;switch(e[e.l]){case 65:e.l+=4,C=iS(e);break;case 30:e.l+=4,C=zh(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 31:e.l+=4,C=zh(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,C=e.read_shift(4,"i");break;case 19:e.l+=4,C=e.read_shift(4);break;case 5:e.l+=4,C=e.read_shift(8,"f");break;case 11:e.l+=4,C=Cn(e,4);break;case 64:e.l+=4,C=Yn(Gp(e));break;default:throw new Error("unparsed value: "+e[e.l])}g[w]=C}}return e.l=n+a,g}function Zv(e,t,n){var a=e.content;if(!a)return{};aa(a,0);var i,r,c,l,f=0;a.chk("feff","Byte Order: "),a.read_shift(2);var T=a.read_shift(4),p=a.read_shift(16);if(p!==Ft.utils.consts.HEADER_CLSID&&p!==n)throw new Error("Bad PropertySet CLSID "+p);if(i=a.read_shift(4),i!==1&&i!==2)throw new Error("Unrecognized #Sets: "+i);if(r=a.read_shift(16),l=a.read_shift(4),i===1&&l!==a.l)throw new Error("Length mismatch: "+l+" !== "+a.l);i===2&&(c=a.read_shift(16),f=a.read_shift(4));var m=Yv(a,t),g={SystemIdentifier:T};for(var S in m)g[S]=m[S];if(g.FMTID=r,i===1)return g;if(f-a.l==2&&(a.l+=2),a.l!==f)throw new Error("Length mismatch 2: "+a.l+" !== "+f);var x;try{x=Yv(a,null)}catch{}for(S in x)g[S]=x[S];return g.FMTID=[r,c],g}function sr(e,t){return e.read_shift(t),null}function Tk(e,t,n){for(var a=[],i=e.l+t;e.l<i;)a.push(n(e,i-e.l));if(i!==e.l)throw new Error("Slurp error");return a}function Cn(e,t){return e.read_shift(t)===1}function jn(e){return e.read_shift(2,"u")}function sS(e,t){return Tk(e,t,jn)}function fk(e){var t=e.read_shift(1),n=e.read_shift(1);return n===1?t:t===1}function E1(e,t,n){var a=e.read_shift(n&&n.biff>=12?2:1),i="sbcs-cont";if(n&&n.biff>=8,!n||n.biff==8){var r=e.read_shift(1);r&&(i="dbcs-cont")}else n.biff==12&&(i="wstr");n.biff>=2&&n.biff<=5&&(i="cpstr");var c=a?e.read_shift(a,i):"";return c}function hk(e){var t=e.read_shift(2),n=e.read_shift(1),a=n&4,i=n&8,r=1+(n&1),c=0,l,f={};i&&(c=e.read_shift(2)),a&&(l=e.read_shift(4));var T=r==2?"dbcs-cont":"sbcs-cont",p=t===0?"":e.read_shift(t,T);return i&&(e.l+=4*c),a&&(e.l+=l),f.t=p,i||(f.raw="<t>"+f.t+"</t>",f.r=f.t),f}function r0(e,t,n){var a;if(n){if(n.biff>=2&&n.biff<=5)return e.read_shift(t,"cpstr");if(n.biff>=12)return e.read_shift(t,"dbcs-cont")}var i=e.read_shift(1);return i===0?a=e.read_shift(t,"sbcs-cont"):a=e.read_shift(t,"dbcs-cont"),a}function k1(e,t,n){var a=e.read_shift(n&&n.biff==2?1:2);return a===0?(e.l++,""):r0(e,a,n)}function p0(e,t,n){if(n.biff>5)return k1(e,t,n);var a=e.read_shift(1);return a===0?(e.l++,""):e.read_shift(a,n.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function pk(e){var t=e.read_shift(1);e.l++;var n=e.read_shift(2);return e.l+=2,[t,n]}function mk(e){var t=e.read_shift(4),n=e.l,a=!1;t>24&&(e.l+=t-24,e.read_shift(16)==="795881f43b1d7f48af2c825dc4852763"&&(a=!0),e.l=n);var i=e.read_shift((a?t-24:t)>>1,"utf16le").replace(Oa,"");return a&&(e.l+=24),i}function gk(e){for(var t=e.read_shift(2),n="";t-- >0;)n+="../";var a=e.read_shift(0,"lpstr-ansi");if(e.l+=2,e.read_shift(2)!=57005)throw new Error("Bad FileMoniker");var i=e.read_shift(4);if(i===0)return n+a.replace(/\\/g,"/");var r=e.read_shift(4);if(e.read_shift(2)!=3)throw new Error("Bad FileMoniker");var c=e.read_shift(r>>1,"utf16le").replace(Oa,"");return n+c}function vk(e,t){var n=e.read_shift(16);switch(n){case"e0c9ea79f9bace118c8200aa004ba90b":return mk(e);case"0303000000000000c000000000000046":return gk(e);default:throw new Error("Unsupported Moniker "+n)}}function Hl(e){var t=e.read_shift(4),n=t>0?e.read_shift(t,"utf16le").replace(Oa,""):"";return n}function xk(e,t){var n=e.l+t,a=e.read_shift(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var i=e.read_shift(2);e.l+=2;var r,c,l,f,T="",p,m;i&16&&(r=Hl(e,n-e.l)),i&128&&(c=Hl(e,n-e.l)),(i&257)===257&&(l=Hl(e,n-e.l)),(i&257)===1&&(f=vk(e,n-e.l)),i&8&&(T=Hl(e,n-e.l)),i&32&&(p=e.read_shift(16)),i&64&&(m=Gp(e)),e.l=n;var g=c||l||f||"";g&&T&&(g+="#"+T),g||(g="#"+T),i&2&&g.charAt(0)=="/"&&g.charAt(1)!="/"&&(g="file://"+g);var S={Target:g};return p&&(S.guid=p),m&&(S.time=m),r&&(S.Tooltip=r),S}function rS(e){var t=e.read_shift(1),n=e.read_shift(1),a=e.read_shift(1),i=e.read_shift(1);return[t,n,a,i]}function oS(e,t){var n=rS(e);return n[3]=0,n}function is(e){var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2);return{r:t,c:n,ixfe:a}}function yk(e){var t=e.read_shift(2),n=e.read_shift(2);return e.l+=8,{type:t,flags:n}}function Sk(e,t,n){return t===0?"":p0(e,t,n)}function bk(e,t,n){var a=n.biff>8?4:2,i=e.read_shift(a),r=e.read_shift(a,"i"),c=e.read_shift(a,"i");return[i,r,c]}function cS(e){var t=e.read_shift(2),n=Vp(e);return[t,n]}function wk(e,t,n){e.l+=4,t-=4;var a=e.l+t,i=E1(e,t,n),r=e.read_shift(2);if(a-=e.l,r!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+r);return e.l+=r,i}function ld(e){var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2),i=e.read_shift(2);return{s:{c:a,r:t},e:{c:i,r:n}}}function lS(e){var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(1),i=e.read_shift(1);return{s:{c:a,r:t},e:{c:i,r:n}}}var Ck=lS;function uS(e){e.l+=4;var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2);return e.l+=12,[n,t,a]}function Ek(e){var t={};return e.l+=4,e.l+=16,t.fSharedNote=e.read_shift(2),e.l+=4,t}function kk(e){var t={};return e.l+=4,e.cf=e.read_shift(2),t}function fa(e){e.l+=2,e.l+=e.read_shift(2)}var Ak={0:fa,4:fa,5:fa,6:fa,7:kk,8:fa,9:fa,10:fa,11:fa,12:fa,13:Ek,14:fa,15:fa,16:fa,17:fa,18:fa,19:fa,20:fa,21:uS};function Rk(e,t){for(var n=e.l+t,a=[];e.l<n;){var i=e.read_shift(2);e.l-=2;try{a.push(Ak[i](e,n-e.l))}catch{return e.l=n,a}}return e.l!=n&&(e.l=n),a}function Gl(e,t){var n={BIFFVer:0,dt:0};switch(n.BIFFVer=e.read_shift(2),t-=2,t>=2&&(n.dt=e.read_shift(2),e.l-=2),n.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(t>6)throw new Error("Unexpected BIFF Ver "+n.BIFFVer)}return e.read_shift(t),n}function Dk(e,t){return t===0||e.read_shift(2),1200}function Ik(e,t,n){if(n.enc)return e.l+=t,"";var a=e.l,i=p0(e,0,n);return e.read_shift(t+a-e.l),i}function Nk(e,t,n){var a=n&&n.biff==8||t==2?e.read_shift(2):(e.l+=t,0);return{fDialog:a&16,fBelow:a&64,fRight:a&128}}function Ok(e,t,n){var a=e.read_shift(4),i=e.read_shift(1)&3,r=e.read_shift(1);switch(r){case 0:r="Worksheet";break;case 1:r="Macrosheet";break;case 2:r="Chartsheet";break;case 6:r="VBAModule";break}var c=E1(e,0,n);return c.length===0&&(c="Sheet1"),{pos:a,hs:i,dt:r,name:c}}function Mk(e,t){for(var n=e.l+t,a=e.read_shift(4),i=e.read_shift(4),r=[],c=0;c!=i&&e.l<n;++c)r.push(hk(e));return r.Count=a,r.Unique=i,r}function jk(e,t){var n={};return n.dsst=e.read_shift(2),e.l+=t-2,n}function Fk(e){var t={};t.r=e.read_shift(2),t.c=e.read_shift(2),t.cnt=e.read_shift(2)-t.c;var n=e.read_shift(2);e.l+=4;var a=e.read_shift(1);return e.l+=3,a&7&&(t.level=a&7),a&32&&(t.hidden=!0),a&64&&(t.hpt=n/20),t}function Lk(e){var t=yk(e);if(t.type!=2211)throw new Error("Invalid Future Record "+t.type);var n=e.read_shift(4);return n!==0}function Pk(e){return e.read_shift(2),e.read_shift(4)}function Jv(e,t,n){var a=0;n&&n.biff==2||(a=e.read_shift(2));var i=e.read_shift(2);n&&n.biff==2&&(a=1-(i>>15),i&=32767);var r={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[r,i]}function _k(e){var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2),i=e.read_shift(2),r=e.read_shift(2),c=e.read_shift(2),l=e.read_shift(2),f=e.read_shift(2),T=e.read_shift(2);return{Pos:[t,n],Dim:[a,i],Flags:r,CurTab:c,FirstTab:l,Selected:f,TabRatio:T}}function qk(e,t,n){if(n&&n.biff>=2&&n.biff<5)return{};var a=e.read_shift(2);return{RTL:a&64}}function Bk(){}function Uk(e,t,n){var a={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(n&&n.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10;break}return a.name=E1(e,0,n),a}function zk(e){var t=is(e);return t.isst=e.read_shift(4),t}function Wk(e,t,n){n.biffguess&&n.biff==2&&(n.biff=5);var a=e.l+t,i=is(e);n.biff==2&&e.l++;var r=k1(e,a-e.l,n);return i.val=r,i}function Vk(e,t,n){var a=e.read_shift(2),i=p0(e,0,n);return[a,i]}var Hk=p0;function Qv(e,t,n){var a=e.l+t,i=n.biff==8||!n.biff?4:2,r=e.read_shift(i),c=e.read_shift(i),l=e.read_shift(2),f=e.read_shift(2);return e.l=a,{s:{r,c:l},e:{r:c,c:f}}}function Gk(e){var t=e.read_shift(2),n=e.read_shift(2),a=cS(e);return{r:t,c:n,ixfe:a[0],rknum:a[1]}}function Xk(e,t){for(var n=e.l+t-2,a=e.read_shift(2),i=e.read_shift(2),r=[];e.l<n;)r.push(cS(e));if(e.l!==n)throw new Error("MulRK read error");var c=e.read_shift(2);if(r.length!=c-i+1)throw new Error("MulRK length mismatch");return{r:a,c:i,C:c,rkrec:r}}function Kk(e,t){for(var n=e.l+t-2,a=e.read_shift(2),i=e.read_shift(2),r=[];e.l<n;)r.push(e.read_shift(2));if(e.l!==n)throw new Error("MulBlank read error");var c=e.read_shift(2);if(r.length!=c-i+1)throw new Error("MulBlank length mismatch");return{r:a,c:i,C:c,ixfe:r}}function $k(e,t,n,a){var i={},r=e.read_shift(4),c=e.read_shift(4),l=e.read_shift(4),f=e.read_shift(2);return i.patternType=GE[l>>26],a.cellStyles&&(i.alc=r&7,i.fWrap=r>>3&1,i.alcV=r>>4&7,i.fJustLast=r>>7&1,i.trot=r>>8&255,i.cIndent=r>>16&15,i.fShrinkToFit=r>>20&1,i.iReadOrder=r>>22&2,i.fAtrNum=r>>26&1,i.fAtrFnt=r>>27&1,i.fAtrAlc=r>>28&1,i.fAtrBdr=r>>29&1,i.fAtrPat=r>>30&1,i.fAtrProt=r>>31&1,i.dgLeft=c&15,i.dgRight=c>>4&15,i.dgTop=c>>8&15,i.dgBottom=c>>12&15,i.icvLeft=c>>16&127,i.icvRight=c>>23&127,i.grbitDiag=c>>30&3,i.icvTop=l&127,i.icvBottom=l>>7&127,i.icvDiag=l>>14&127,i.dgDiag=l>>21&15,i.icvFore=f&127,i.icvBack=f>>7&127,i.fsxButton=f>>14&1),i}function Yk(e,t,n){var a={};return a.ifnt=e.read_shift(2),a.numFmtId=e.read_shift(2),a.flags=e.read_shift(2),a.fStyle=a.flags>>2&1,t-=6,a.data=$k(e,t,a.fStyle,n),a}function Zk(e){e.l+=4;var t=[e.read_shift(2),e.read_shift(2)];if(t[0]!==0&&t[0]--,t[1]!==0&&t[1]--,t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function ex(e,t,n){var a=is(e);(n.biff==2||t==9)&&++e.l;var i=fk(e);return a.val=i,a.t=i===!0||i===!1?"b":"e",a}function Jk(e,t,n){n.biffguess&&n.biff==2&&(n.biff=5);var a=is(e),i=pa(e);return a.val=i,a}var tx=Sk;function Qk(e,t,n){var a=e.l+t,i=e.read_shift(2),r=e.read_shift(2);if(n.sbcch=r,r==1025||r==14849)return[r,i];if(r<1||r>255)throw new Error("Unexpected SupBook type: "+r);for(var c=r0(e,r),l=[];a>e.l;)l.push(k1(e));return[r,i,c,l]}function nx(e,t,n){var a=e.read_shift(2),i,r={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};return n.sbcch===14849&&(i=wk(e,t-2,n)),r.body=i||e.read_shift(t-2),typeof i=="string"&&(r.Name=i),r}var e9=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function ax(e,t,n){var a=e.l+t,i=e.read_shift(2),r=e.read_shift(1),c=e.read_shift(1),l=e.read_shift(n&&n.biff==2?1:2),f=0;(!n||n.biff>=5)&&(n.biff!=5&&(e.l+=2),f=e.read_shift(2),n.biff==5&&(e.l+=2),e.l+=4);var T=r0(e,c,n);i&32&&(T=e9[T.charCodeAt(0)]);var p=a-e.l;n&&n.biff==2&&--p;var m=a==e.l||l===0||!(p>0)?[]:FD(e,p,n,l);return{chKey:r,Name:T,itab:f,rgce:m}}function dS(e,t,n){if(n.biff<8)return t9(e,t,n);for(var a=[],i=e.l+t,r=e.read_shift(n.biff>8?4:2);r--!==0;)a.push(bk(e,n.biff>8?12:6,n));if(e.l!=i)throw new Error("Bad ExternSheet: "+e.l+" != "+i);return a}function t9(e,t,n){e[e.l+1]==3&&e[e.l]++;var a=E1(e,t,n);return a.charCodeAt(0)==3?a.slice(1):a}function n9(e,t,n){if(n.biff<8){e.l+=t;return}var a=e.read_shift(2),i=e.read_shift(2),r=r0(e,a,n),c=r0(e,i,n);return[r,c]}function a9(e,t,n){var a=lS(e);e.l++;var i=e.read_shift(1);return t-=8,[LD(e,t,n),i,a]}function ix(e,t,n){var a=Ck(e);switch(n.biff){case 2:e.l++,t-=7;break;case 3:case 4:e.l+=2,t-=8;break;default:e.l+=6,t-=12}return[a,MD(e,t,n)]}function i9(e){var t=e.read_shift(4)!==0,n=e.read_shift(4)!==0,a=e.read_shift(4);return[t,n,a]}function s9(e,t,n){if(!(n.biff<8)){var a=e.read_shift(2),i=e.read_shift(2),r=e.read_shift(2),c=e.read_shift(2),l=p0(e,0,n);return n.biff<8&&e.read_shift(1),[{r:a,c:i},l,c,r]}}function r9(e,t,n){return s9(e,t,n)}function o9(e,t){for(var n=[],a=e.read_shift(2);a--;)n.push(ld(e));return n}function c9(e,t,n){if(n&&n.biff<8)return u9(e,t,n);var a=uS(e),i=Rk(e,t-22,a[1]);return{cmo:a,ft:i}}var l9={8:function(e,t){var n=e.l+t;e.l+=10;var a=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var i=e.read_shift(1);return e.l+=i,e.l=n,{fmt:a}}};function u9(e,t,n){e.l+=4;var a=e.read_shift(2),i=e.read_shift(2),r=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6,t-=36;var c=[];return c.push((l9[a]||xa)(e,t,n)),{cmo:[i,a,r],ft:c}}function d9(e,t,n){var a=e.l,i="";try{e.l+=4;var r=(n.lastobj||{cmo:[0,0]}).cmo[1],c;[0,5,7,11,12,14].indexOf(r)==-1?e.l+=6:c=pk(e,6,n);var l=e.read_shift(2);e.read_shift(2),jn(e,2);var f=e.read_shift(2);e.l+=f;for(var T=1;T<e.lens.length-1;++T){if(e.l-a!=e.lens[T])throw new Error("TxO: bad continue record");var p=e[e.l],m=r0(e,e.lens[T+1]-e.lens[T]-1);if(i+=m,i.length>=(p?l:2*l))break}if(i.length!==l&&i.length!==l*2)throw new Error("cchText: "+l+" != "+i.length);return e.l=a+t,{t:i}}catch{return e.l=a+t,{t:i}}}function T9(e,t){var n=ld(e);e.l+=16;var a=xk(e,t-24);return[n,a]}function f9(e,t){e.read_shift(2);var n=ld(e),a=e.read_shift((t-10)/2,"dbcs-cont");return a=a.replace(Oa,""),[n,a]}function h9(e){var t=[0,0],n;return n=e.read_shift(2),t[0]=Xv[n]||n,n=e.read_shift(2),t[1]=Xv[n]||n,t}function p9(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(oS(e));return n}function m9(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(oS(e));return n}function g9(e){e.l+=2;var t={cxfs:0,crc:0};return t.cxfs=e.read_shift(2),t.crc=e.read_shift(4),t}function TS(e,t,n){if(!n.cellStyles)return xa(e,t);var a=n&&n.biff>=12?4:2,i=e.read_shift(a),r=e.read_shift(a),c=e.read_shift(a),l=e.read_shift(a),f=e.read_shift(2);a==2&&(e.l+=2);var T={s:i,e:r,w:c,ixfe:l,flags:f};return(n.biff>=5||!n.biff)&&(T.level=f>>8&7),T}function v9(e,t){var n={};return t<32||(e.l+=16,n.header=pa(e),n.footer=pa(e),e.l+=2),n}function x9(e,t,n){var a={area:!1};if(n.biff!=5)return e.l+=t,a;var i=e.read_shift(1);return e.l+=3,i&16&&(a.area=!0),a}var y9=is,S9=sS,b9=k1;function w9(e){var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(4),i={fmt:t,env:n,len:a,data:e.slice(e.l,e.l+a)};return e.l+=a,i}function C9(e,t,n){n.biffguess&&n.biff==5&&(n.biff=2);var a=is(e);++e.l;var i=p0(e,t-7,n);return a.t="str",a.val=i,a}function E9(e){var t=is(e);++e.l;var n=pa(e);return t.t="n",t.val=n,t}function k9(e){var t=is(e);++e.l;var n=e.read_shift(2);return t.t="n",t.val=n,t}function A9(e){var t=e.read_shift(1);return t===0?(e.l++,""):e.read_shift(t,"sbcs-cont")}function R9(e,t){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=t-13}function D9(e,t,n){var a=e.l+t,i=is(e),r=e.read_shift(2),c=r0(e,r,n);return e.l=a,i.t="str",i.val=c,i}var I9=[2,3,48,49,131,139,140,245],sx=(function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,108:863,134:737,135:852,136:857,204:1257,255:16969},t=Fp({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function n(l,f){var T=[],p=pr(1);switch(f.type){case"base64":p=Oi(Qa(l));break;case"binary":p=Oi(l);break;case"buffer":case"array":p=l;break}aa(p,0);var m=p.read_shift(1),g=!!(m&136),S=!1,x=!1;switch(m){case 2:break;case 3:break;case 48:S=!0,g=!0;break;case 49:S=!0,g=!0;break;case 131:break;case 139:break;case 140:x=!0;break;case 245:break;default:throw new Error("DBF Unsupported Version: "+m.toString(16))}var y=0,w=521;m==2&&(y=p.read_shift(2)),p.l+=3,m!=2&&(y=p.read_shift(4)),y>1048576&&(y=1e6),m!=2&&(w=p.read_shift(2));var C=p.read_shift(2),k=f.codepage||1252;m!=2&&(p.l+=16,p.read_shift(1),p[p.l]!==0&&(k=e[p[p.l]]),p.l+=1,p.l+=2),x&&(p.l+=36);for(var E=[],O={},N=Math.min(p.length,m==2?521:w-10-(S?264:0)),B=x?32:11;p.l<N&&p[p.l]!=13;)switch(O={},O.name=n1.utils.decode(k,p.slice(p.l,p.l+B)).replace(/[\u0000\r\n].*$/g,""),p.l+=B,O.type=String.fromCharCode(p.read_shift(1)),m!=2&&!x&&(O.offset=p.read_shift(4)),O.len=p.read_shift(1),m==2&&(O.offset=p.read_shift(2)),O.dec=p.read_shift(1),O.name.length&&E.push(O),m!=2&&(p.l+=x?13:14),O.type){case"B":(!S||O.len!=8)&&f.WTF&&console.log("Skipping "+O.name+":"+O.type);break;case"G":case"P":f.WTF&&console.log("Skipping "+O.name+":"+O.type);break;case"+":case"0":case"@":case"C":case"D":case"F":case"I":case"L":case"M":case"N":case"O":case"T":case"Y":break;default:throw new Error("Unknown Field Type: "+O.type)}if(p[p.l]!==13&&(p.l=w-1),p.read_shift(1)!==13)throw new Error("DBF Terminator not found "+p.l+" "+p[p.l]);p.l=w;var A=0,z=0;for(T[0]=[],z=0;z!=E.length;++z)T[0][z]=E[z].name;for(;y-- >0;){if(p[p.l]===42){p.l+=C;continue}for(++p.l,T[++A]=[],z=0,z=0;z!=E.length;++z){var P=p.slice(p.l,p.l+E[z].len);p.l+=E[z].len,aa(P,0);var K=n1.utils.decode(k,P);switch(E[z].type){case"C":K.trim().length&&(T[A][z]=K.replace(/\s+$/,""));break;case"D":K.length===8?T[A][z]=new Date(+K.slice(0,4),+K.slice(4,6)-1,+K.slice(6,8)):T[A][z]=K;break;case"F":T[A][z]=parseFloat(K.trim());break;case"+":case"I":T[A][z]=x?P.read_shift(-4,"i")^2147483648:P.read_shift(4,"i");break;case"L":switch(K.trim().toUpperCase()){case"Y":case"T":T[A][z]=!0;break;case"N":case"F":T[A][z]=!1;break;case"":case"?":break;default:throw new Error("DBF Unrecognized L:|"+K+"|")}break;case"M":if(!g)throw new Error("DBF Unexpected MEMO for type "+m.toString(16));T[A][z]="##MEMO##"+(x?parseInt(K.trim(),10):P.read_shift(4));break;case"N":K=K.replace(/\u0000/g,"").trim(),K&&K!="."&&(T[A][z]=+K||0);break;case"@":T[A][z]=new Date(P.read_shift(-8,"f")-621356832e5);break;case"T":T[A][z]=new Date((P.read_shift(4)-2440588)*864e5+P.read_shift(4));break;case"Y":T[A][z]=P.read_shift(4,"i")/1e4+P.read_shift(4,"i")/1e4*Math.pow(2,32);break;case"O":T[A][z]=-P.read_shift(-8,"f");break;case"B":if(S&&E[z].len==8){T[A][z]=P.read_shift(8,"f");break}case"G":case"P":P.l+=E[z].len;break;case"0":if(E[z].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+E[z].type)}}}if(m!=2&&p.l<p.length&&p[p.l++]!=26)throw new Error("DBF EOF Marker missing "+(p.l-1)+" of "+p.length+" "+p[p.l-1].toString(16));return f&&f.sheetRows&&(T=T.slice(0,f.sheetRows)),f.DBF=E,T}function a(l,f){var T=f||{};T.dateNF||(T.dateNF="yyyymmdd");var p=ko(n(l,T),T);return p["!cols"]=T.DBF.map(function(m){return{wch:m.len,DBF:m}}),delete T.DBF,p}function i(l,f){try{return xr(a(l,f),f)}catch(T){if(f&&f.WTF)throw T}return{SheetNames:[],Sheets:{}}}var r={B:8,C:250,L:1,D:8,"?":0,"":0};function c(l,f){var T=f||{};if(+T.codepage>=0&&Li(+T.codepage),T.type=="string")throw new Error("Cannot write DBF to JS string");var p=qh(),m=$h(l,{header:1,raw:!0,cellDates:!0}),g=m[0],S=m.slice(1),x=l["!cols"]||[],y=0,w=0,C=0,k=1;for(y=0;y<g.length;++y){if(((x[y]||{}).DBF||{}).name){g[y]=x[y].DBF.name,++C;continue}if(g[y]!=null){if(++C,typeof g[y]=="number"&&(g[y]=g[y].toString(10)),typeof g[y]!="string")throw new Error("DBF Invalid column name "+g[y]+" |"+typeof g[y]+"|");if(g.indexOf(g[y])!==y){for(w=0;w<1024;++w)if(g.indexOf(g[y]+"_"+w)==-1){g[y]+="_"+w;break}}}}var E=xn(l["!ref"]),O=[],N=[],B=[];for(y=0;y<=E.e.c-E.s.c;++y){var A="",z="",P=0,K=[];for(w=0;w<S.length;++w)S[w][y]!=null&&K.push(S[w][y]);if(K.length==0||g[y]==null){O[y]="?";continue}for(w=0;w<K.length;++w){switch(typeof K[w]){case"number":z="B";break;case"string":z="C";break;case"boolean":z="L";break;case"object":z=K[w]instanceof Date?"D":"C";break;default:z="C"}P=Math.max(P,String(K[w]).length),A=A&&A!=z?"C":z}P>250&&(P=250),z=((x[y]||{}).DBF||{}).type,z=="C"&&x[y].DBF.len>P&&(P=x[y].DBF.len),A=="B"&&z=="N"&&(A="N",B[y]=x[y].DBF.dec,P=x[y].DBF.len),N[y]=A=="C"||z=="N"?P:r[A]||0,k+=N[y],O[y]=A}var I=p.next(32);for(I.write_shift(4,318902576),I.write_shift(4,S.length),I.write_shift(2,296+32*C),I.write_shift(2,k),y=0;y<4;++y)I.write_shift(4,0);for(I.write_shift(4,0|(+t[d4]||3)<<8),y=0,w=0;y<g.length;++y)if(g[y]!=null){var L=p.next(32),le=(g[y].slice(-10)+"\0\0\0\0\0\0\0\0\0\0\0").slice(0,11);L.write_shift(1,le,"sbcs"),L.write_shift(1,O[y]=="?"?"C":O[y],"sbcs"),L.write_shift(4,w),L.write_shift(1,N[y]||r[O[y]]||0),L.write_shift(1,B[y]||0),L.write_shift(1,2),L.write_shift(4,0),L.write_shift(1,0),L.write_shift(4,0),L.write_shift(4,0),w+=N[y]||r[O[y]]||0}var ue=p.next(264);for(ue.write_shift(4,13),y=0;y<65;++y)ue.write_shift(4,0);for(y=0;y<S.length;++y){var X=p.next(k);for(X.write_shift(1,0),w=0;w<g.length;++w)if(g[w]!=null)switch(O[w]){case"L":X.write_shift(1,S[y][w]==null?63:S[y][w]?84:70);break;case"B":X.write_shift(8,S[y][w]||0,"f");break;case"N":var F="0";for(typeof S[y][w]=="number"&&(F=S[y][w].toFixed(B[w]||0)),C=0;C<N[w]-F.length;++C)X.write_shift(1,32);X.write_shift(1,F,"sbcs");break;case"D":S[y][w]?(X.write_shift(4,("0000"+S[y][w].getFullYear()).slice(-4),"sbcs"),X.write_shift(2,("00"+(S[y][w].getMonth()+1)).slice(-2),"sbcs"),X.write_shift(2,("00"+S[y][w].getDate()).slice(-2),"sbcs")):X.write_shift(8,"00000000","sbcs");break;case"C":var re=String(S[y][w]!=null?S[y][w]:"").slice(0,N[w]);for(X.write_shift(1,re,"sbcs"),C=0;C<N[w]-re.length;++C)X.write_shift(1,32);break}}return p.next(1).write_shift(1,26),p.end()}return{to_workbook:i,to_sheet:a,from_sheet:c}})(),N9=(function(){var e={AA:"À",BA:"Á",CA:"Â",DA:195,HA:"Ä",JA:197,AE:"È",BE:"É",CE:"Ê",HE:"Ë",AI:"Ì",BI:"Í",CI:"Î",HI:"Ï",AO:"Ò",BO:"Ó",CO:"Ô",DO:213,HO:"Ö",AU:"Ù",BU:"Ú",CU:"Û",HU:"Ü",Aa:"à",Ba:"á",Ca:"â",Da:227,Ha:"ä",Ja:229,Ae:"è",Be:"é",Ce:"ê",He:"ë",Ai:"ì",Bi:"í",Ci:"î",Hi:"ï",Ao:"ò",Bo:"ó",Co:"ô",Do:245,Ho:"ö",Au:"ù",Bu:"ú",Cu:"û",Hu:"ü",KC:"Ç",Kc:"ç",q:"æ",z:"œ",a:"Æ",j:"Œ",DN:209,Dn:241,Hy:255,S:169,c:170,R:174,"B ":180,0:176,1:177,2:178,3:179,5:181,6:182,7:183,Q:185,k:186,b:208,i:216,l:222,s:240,y:248,"!":161,'"':162,"#":163,"(":164,"%":165,"'":167,"H ":168,"+":171,";":187,"<":188,"=":189,">":190,"?":191,"{":223},t=new RegExp("\x1BN("+ns(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),n=function(g,S){var x=e[S];return typeof x=="number"?Sv(x):x},a=function(g,S,x){var y=S.charCodeAt(0)-32<<4|x.charCodeAt(0)-48;return y==59?g:Sv(y)};e["|"]=254;function i(g,S){switch(S.type){case"base64":return r(Qa(g),S);case"binary":return r(g,S);case"buffer":return r(Mt&&Buffer.isBuffer(g)?g.toString("binary"):d0(g),S);case"array":return r(s0(g),S)}throw new Error("Unrecognized type "+S.type)}function r(g,S){var x=g.split(/[\n\r]+/),y=-1,w=-1,C=0,k=0,E=[],O=[],N=null,B={},A=[],z=[],P=[],K=0,I;for(+S.codepage>=0&&Li(+S.codepage);C!==x.length;++C){K=0;var L=x[C].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,a).replace(t,n),le=L.replace(/;;/g,"\0").split(";").map(function(J){return J.replace(/\u0000/g,";")}),ue=le[0],X;if(L.length>0)switch(ue){case"ID":break;case"E":break;case"B":break;case"O":break;case"W":break;case"P":le[1].charAt(0)=="P"&&O.push(L.slice(3).replace(/;;/g,";"));break;case"C":var F=!1,re=!1,me=!1,te=!1,Ce=-1,ee=-1;for(k=1;k<le.length;++k)switch(le[k].charAt(0)){case"A":break;case"X":w=parseInt(le[k].slice(1))-1,re=!0;break;case"Y":for(y=parseInt(le[k].slice(1))-1,re||(w=0),I=E.length;I<=y;++I)E[I]=[];break;case"K":X=le[k].slice(1),X.charAt(0)==='"'?X=X.slice(1,X.length-1):X==="TRUE"?X=!0:X==="FALSE"?X=!1:isNaN(_i(X))?isNaN(xo(X).getDate())||(X=Yn(X)):(X=_i(X),N!==null&&Co(N)&&(X=cd(X))),F=!0;break;case"E":te=!0;var M=To(le[k].slice(1),{r:y,c:w});E[y][w]=[E[y][w],M];break;case"S":me=!0,E[y][w]=[E[y][w],"S5S"];break;case"G":break;case"R":Ce=parseInt(le[k].slice(1))-1;break;case"C":ee=parseInt(le[k].slice(1))-1;break;default:if(S&&S.WTF)throw new Error("SYLK bad record "+L)}if(F&&(E[y][w]&&E[y][w].length==2?E[y][w][0]=X:E[y][w]=X,N=null),me){if(te)throw new Error("SYLK shared formula cannot have own formula");var Y=Ce>-1&&E[Ce][ee];if(!Y||!Y[1])throw new Error("SYLK shared formula cannot find base");E[y][w][1]=bS(Y[1],{r:y-Ce,c:w-ee})}break;case"F":var Z=0;for(k=1;k<le.length;++k)switch(le[k].charAt(0)){case"X":w=parseInt(le[k].slice(1))-1,++Z;break;case"Y":for(y=parseInt(le[k].slice(1))-1,I=E.length;I<=y;++I)E[I]=[];break;case"M":K=parseInt(le[k].slice(1))/20;break;case"F":break;case"G":break;case"P":N=O[parseInt(le[k].slice(1))];break;case"S":break;case"D":break;case"N":break;case"W":for(P=le[k].slice(1).split(" "),I=parseInt(P[0],10);I<=parseInt(P[1],10);++I)K=parseInt(P[2],10),z[I-1]=K===0?{hidden:!0}:{wch:K},yo(z[I-1]);break;case"C":w=parseInt(le[k].slice(1))-1,z[w]||(z[w]={});break;case"R":y=parseInt(le[k].slice(1))-1,A[y]||(A[y]={}),K>0?(A[y].hpt=K,A[y].hpx=c1(K)):K===0&&(A[y].hidden=!0);break;default:if(S&&S.WTF)throw new Error("SYLK bad record "+L)}Z<1&&(N=null);break;default:if(S&&S.WTF)throw new Error("SYLK bad record "+L)}}return A.length>0&&(B["!rows"]=A),z.length>0&&(B["!cols"]=z),S&&S.sheetRows&&(E=E.slice(0,S.sheetRows)),[E,B]}function c(g,S){var x=i(g,S),y=x[0],w=x[1],C=ko(y,S);return ns(w).forEach(function(k){C[k]=w[k]}),C}function l(g,S){return xr(c(g,S),S)}function f(g,S,x,y){var w="C;Y"+(x+1)+";X"+(y+1)+";K";switch(g.t){case"n":w+=g.v||0,g.f&&!g.F&&(w+=";E"+gR(g.f,{r:x,c:y}));break;case"b":w+=g.v?"TRUE":"FALSE";break;case"e":w+=g.w||g.v;break;case"d":w+='"'+(g.w||g.v)+'"';break;case"s":w+='"'+g.v.replace(/"/g,"").replace(/;/g,";;")+'"';break}return w}function T(g,S){S.forEach(function(x,y){var w="F;W"+(y+1)+" "+(y+1)+" ";x.hidden?w+="0":(typeof x.width=="number"&&!x.wpx&&(x.wpx=zu(x.width)),typeof x.wpx=="number"&&!x.wch&&(x.wch=Wu(x.wpx)),typeof x.wch=="number"&&(w+=Math.round(x.wch))),w.charAt(w.length-1)!=" "&&g.push(w)})}function p(g,S){S.forEach(function(x,y){var w="F;";x.hidden?w+="M0;":x.hpt?w+="M"+20*x.hpt+";":x.hpx&&(w+="M"+20*xS(x.hpx)+";"),w.length>2&&g.push(w+"R"+(y+1))})}function m(g,S){var x=["ID;PWXL;N;E"],y=[],w=xn(g["!ref"]),C,k=Array.isArray(g),E=`\r
|
||
`;x.push("P;PGeneral"),x.push("F;P0;DG0G8;M255"),g["!cols"]&&T(x,g["!cols"]),g["!rows"]&&p(x,g["!rows"]),x.push("B;Y"+(w.e.r-w.s.r+1)+";X"+(w.e.c-w.s.c+1)+";D"+[w.s.c,w.s.r,w.e.c,w.e.r].join(" "));for(var O=w.s.r;O<=w.e.r;++O)for(var N=w.s.c;N<=w.e.c;++N){var B=ht({r:O,c:N});C=k?(g[O]||[])[N]:g[B],!(!C||C.v==null&&(!C.f||C.F))&&y.push(f(C,g,O,N))}return x.join(E)+E+y.join(E)+E+"E"+E}return{to_workbook:l,to_sheet:c,from_sheet:m}})(),O9=(function(){function e(r,c){switch(c.type){case"base64":return t(Qa(r),c);case"binary":return t(r,c);case"buffer":return t(Mt&&Buffer.isBuffer(r)?r.toString("binary"):d0(r),c);case"array":return t(s0(r),c)}throw new Error("Unrecognized type "+c.type)}function t(r,c){for(var l=r.split(`
|
||
`),f=-1,T=-1,p=0,m=[];p!==l.length;++p){if(l[p].trim()==="BOT"){m[++f]=[],T=0;continue}if(!(f<0)){var g=l[p].trim().split(","),S=g[0],x=g[1];++p;for(var y=l[p]||"";(y.match(/["]/g)||[]).length&1&&p<l.length-1;)y+=`
|
||
`+l[++p];switch(y=y.trim(),+S){case-1:if(y==="BOT"){m[++f]=[],T=0;continue}else if(y!=="EOD")throw new Error("Unrecognized DIF special command "+y);break;case 0:y==="TRUE"?m[f][T]=!0:y==="FALSE"?m[f][T]=!1:isNaN(_i(x))?isNaN(xo(x).getDate())?m[f][T]=x:m[f][T]=Yn(x):m[f][T]=_i(x),++T;break;case 1:y=y.slice(1,y.length-1),y=y.replace(/""/g,'"'),y&&y.match(/^=".*"$/)&&(y=y.slice(2,-1)),m[f][T++]=y!==""?y:null;break}if(y==="EOD")break}}return c&&c.sheetRows&&(m=m.slice(0,c.sheetRows)),m}function n(r,c){return ko(e(r,c),c)}function a(r,c){return xr(n(r,c),c)}var i=(function(){var r=function(f,T,p,m,g){f.push(T),f.push(p+","+m),f.push('"'+g.replace(/"/g,'""')+'"')},c=function(f,T,p,m){f.push(T+","+p),f.push(T==1?'"'+m.replace(/"/g,'""')+'"':m)};return function(f){var T=[],p=xn(f["!ref"]),m,g=Array.isArray(f);r(T,"TABLE",0,1,"sheetjs"),r(T,"VECTORS",0,p.e.r-p.s.r+1,""),r(T,"TUPLES",0,p.e.c-p.s.c+1,""),r(T,"DATA",0,0,"");for(var S=p.s.r;S<=p.e.r;++S){c(T,-1,0,"BOT");for(var x=p.s.c;x<=p.e.c;++x){var y=ht({r:S,c:x});if(m=g?(f[S]||[])[x]:f[y],!m){c(T,1,0,"");continue}switch(m.t){case"n":var w=m.w;!w&&m.v!=null&&(w=m.v),w==null?m.f&&!m.F?c(T,1,0,"="+m.f):c(T,1,0,""):c(T,0,w,"V");break;case"b":c(T,0,m.v?1:0,m.v?"TRUE":"FALSE");break;case"s":c(T,1,0,isNaN(m.v)?m.v:'="'+m.v+'"');break;case"d":m.w||(m.w=xi(m.z||vt[14],Ma(Yn(m.v)))),c(T,0,m.w,"V");break;default:c(T,1,0,"")}}}c(T,-1,0,"EOD");var C=`\r
|
||
`,k=T.join(C);return k}})();return{to_workbook:a,to_sheet:n,from_sheet:i}})(),M9=(function(){function e(m){return m.replace(/\\b/g,"\\").replace(/\\c/g,":").replace(/\\n/g,`
|
||
`)}function t(m){return m.replace(/\\/g,"\\b").replace(/:/g,"\\c").replace(/\n/g,"\\n")}function n(m,g){for(var S=m.split(`
|
||
`),x=-1,y=-1,w=0,C=[];w!==S.length;++w){var k=S[w].trim().split(":");if(k[0]==="cell"){var E=Na(k[1]);if(C.length<=E.r)for(x=C.length;x<=E.r;++x)C[x]||(C[x]=[]);switch(x=E.r,y=E.c,k[2]){case"t":C[x][y]=e(k[3]);break;case"v":C[x][y]=+k[3];break;case"vtf":var O=k[k.length-1];case"vtc":k[3]==="nl"?C[x][y]=!!+k[4]:C[x][y]=+k[4],k[2]=="vtf"&&(C[x][y]=[C[x][y],O])}}}return g&&g.sheetRows&&(C=C.slice(0,g.sheetRows)),C}function a(m,g){return ko(n(m,g),g)}function i(m,g){return xr(a(m,g),g)}var r=["socialcalc:version:1.5","MIME-Version: 1.0","Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join(`
|
||
`),c=["--SocialCalcSpreadsheetControlSave","Content-type: text/plain; charset=UTF-8"].join(`
|
||
`)+`
|
||
`,l=["# SocialCalc Spreadsheet Control Save","part:sheet"].join(`
|
||
`),f="--SocialCalcSpreadsheetControlSave--";function T(m){if(!m||!m["!ref"])return"";for(var g=[],S=[],x,y="",w=Eo(m["!ref"]),C=Array.isArray(m),k=w.s.r;k<=w.e.r;++k)for(var E=w.s.c;E<=w.e.c;++E)if(y=ht({r:k,c:E}),x=C?(m[k]||[])[E]:m[y],!(!x||x.v==null||x.t==="z")){switch(S=["cell",y,"t"],x.t){case"s":case"str":S.push(t(x.v));break;case"n":x.f?(S[2]="vtf",S[3]="n",S[4]=x.v,S[5]=t(x.f)):(S[2]="v",S[3]=x.v);break;case"b":S[2]="vt"+(x.f?"f":"c"),S[3]="nl",S[4]=x.v?"1":"0",S[5]=t(x.f||(x.v?"TRUE":"FALSE"));break;case"d":var O=Ma(Yn(x.v));S[2]="vtc",S[3]="nd",S[4]=""+O,S[5]=x.w||xi(x.z||vt[14],O);break;case"e":continue}g.push(S.join(":"))}return g.push("sheet:c:"+(w.e.c-w.s.c+1)+":r:"+(w.e.r-w.s.r+1)+":tvf:1"),g.push("valueformat:1:text-wiki"),g.join(`
|
||
`)}function p(m){return[r,c,l,c,T(m),f].join(`
|
||
`)}return{to_workbook:i,to_sheet:a,from_sheet:p}})(),r1=(function(){function e(p,m,g,S,x){x.raw?m[g][S]=p:p===""||(p==="TRUE"?m[g][S]=!0:p==="FALSE"?m[g][S]=!1:isNaN(_i(p))?isNaN(xo(p).getDate())?m[g][S]=p:m[g][S]=Yn(p):m[g][S]=_i(p))}function t(p,m){var g=m||{},S=[];if(!p||p.length===0)return S;for(var x=p.split(/[\r\n]/),y=x.length-1;y>=0&&x[y].length===0;)--y;for(var w=10,C=0,k=0;k<=y;++k)C=x[k].indexOf(" "),C==-1?C=x[k].length:C++,w=Math.max(w,C);for(k=0;k<=y;++k){S[k]=[];var E=0;for(e(x[k].slice(0,w).trim(),S,k,E,g),E=1;E<=(x[k].length-w)/10+1;++E)e(x[k].slice(w+(E-1)*10,w+E*10).trim(),S,k,E,g)}return g.sheetRows&&(S=S.slice(0,g.sheetRows)),S}var n={44:",",9:" ",59:";",124:"|"},a={44:3,9:2,59:1,124:0};function i(p){for(var m={},g=!1,S=0,x=0;S<p.length;++S)(x=p.charCodeAt(S))==34?g=!g:!g&&x in n&&(m[x]=(m[x]||0)+1);x=[];for(S in m)Object.prototype.hasOwnProperty.call(m,S)&&x.push([m[S],S]);if(!x.length){m=a;for(S in m)Object.prototype.hasOwnProperty.call(m,S)&&x.push([m[S],S])}return x.sort(function(y,w){return y[0]-w[0]||a[y[1]]-a[w[1]]}),n[x.pop()[1]]||44}function r(p,m){var g=m||{},S="",x=g.dense?[]:{},y={s:{c:0,r:0},e:{c:0,r:0}};p.slice(0,4)=="sep="?p.charCodeAt(5)==13&&p.charCodeAt(6)==10?(S=p.charAt(4),p=p.slice(7)):p.charCodeAt(5)==13||p.charCodeAt(5)==10?(S=p.charAt(4),p=p.slice(6)):S=i(p.slice(0,1024)):g&&g.FS?S=g.FS:S=i(p.slice(0,1024));var w=0,C=0,k=0,E=0,O=0,N=S.charCodeAt(0),B=!1,A=0,z=p.charCodeAt(0);p=p.replace(/\r\n/mg,`
|
||
`);var P=g.dateNF!=null?VC(g.dateNF):null;function K(){var I=p.slice(E,O),L={};if(I.charAt(0)=='"'&&I.charAt(I.length-1)=='"'&&(I=I.slice(1,-1).replace(/""/g,'"')),I.length===0)L.t="z";else if(g.raw)L.t="s",L.v=I;else if(I.trim().length===0)L.t="s",L.v=I;else if(I.charCodeAt(0)==61)I.charCodeAt(1)==34&&I.charCodeAt(I.length-1)==34?(L.t="s",L.v=I.slice(2,-1).replace(/""/g,'"')):xR(I)?(L.t="n",L.f=I.slice(1)):(L.t="s",L.v=I);else if(I=="TRUE")L.t="b",L.v=!0;else if(I=="FALSE")L.t="b",L.v=!1;else if(!isNaN(k=_i(I)))L.t="n",g.cellText!==!1&&(L.w=I),L.v=k;else if(!isNaN(xo(I).getDate())||P&&I.match(P)){L.z=g.dateNF||vt[14];var le=0;P&&I.match(P)&&(I=HC(I,g.dateNF,I.match(P)||[]),le=1),g.cellDates?(L.t="d",L.v=Yn(I,le)):(L.t="n",L.v=Ma(Yn(I,le))),g.cellText!==!1&&(L.w=xi(L.z,L.v instanceof Date?Ma(L.v):L.v)),g.cellNF||delete L.z}else L.t="s",L.v=I;if(L.t=="z"||(g.dense?(x[w]||(x[w]=[]),x[w][C]=L):x[ht({c:C,r:w})]=L),E=O+1,z=p.charCodeAt(E),y.e.c<C&&(y.e.c=C),y.e.r<w&&(y.e.r=w),A==N)++C;else if(C=0,++w,g.sheetRows&&g.sheetRows<=w)return!0}e:for(;O<p.length;++O)switch(A=p.charCodeAt(O)){case 34:z===34&&(B=!B);break;case N:case 10:case 13:if(!B&&K())break e;break}return O-E>0&&K(),x["!ref"]=Lt(y),x}function c(p,m){return!(m&&m.PRN)||m.FS||p.slice(0,4)=="sep="||p.indexOf(" ")>=0||p.indexOf(",")>=0||p.indexOf(";")>=0?r(p,m):ko(t(p,m),m)}function l(p,m){var g="",S=m.type=="string"?[0,0,0,0]:em(p,m);switch(m.type){case"base64":g=Qa(p);break;case"binary":g=p;break;case"buffer":m.codepage==65001?g=p.toString("utf8"):m.codepage&&typeof n1<"u"||(g=Mt&&Buffer.isBuffer(p)?p.toString("binary"):d0(p));break;case"array":g=s0(p);break;case"string":g=p;break;default:throw new Error("Unrecognized type "+m.type)}return S[0]==239&&S[1]==187&&S[2]==191?g=rn(g.slice(3)):m.type!="string"&&m.type!="buffer"&&m.codepage==65001?g=rn(g):m.type=="binary"&&typeof n1<"u",g.slice(0,19)=="socialcalc:version:"?M9.to_sheet(m.type=="string"?g:rn(g),m):c(g,m)}function f(p,m){return xr(l(p,m),m)}function T(p){for(var m=[],g=xn(p["!ref"]),S,x=Array.isArray(p),y=g.s.r;y<=g.e.r;++y){for(var w=[],C=g.s.c;C<=g.e.c;++C){var k=ht({r:y,c:C});if(S=x?(p[y]||[])[C]:p[k],!S||S.v==null){w.push(" ");continue}for(var E=(S.w||(Ms(S),S.w)||"").slice(0,10);E.length<10;)E+=" ";w.push(E+(C===0?" ":""))}m.push(w.join(""))}return m.join(`
|
||
`)}return{to_workbook:f,to_sheet:l,from_sheet:T}})();function j9(e,t){var n=t||{},a=!!n.WTF;n.WTF=!0;try{var i=N9.to_workbook(e,n);return n.WTF=a,i}catch(r){if(n.WTF=a,!r.message.match(/SYLK bad record ID/)&&a)throw r;return r1.to_workbook(e,t)}}var Kc=(function(){function e(M,Y,Z){if(M){aa(M,M.l||0);for(var J=Z.Enum||Ce;M.l<M.length;){var he=M.read_shift(2),ge=J[he]||J[65535],de=M.read_shift(2),fe=M.l+de,ye=ge.f&&ge.f(M,de,Z);if(M.l=fe,Y(ye,ge,he))return}}}function t(M,Y){switch(Y.type){case"base64":return n(Oi(Qa(M)),Y);case"binary":return n(Oi(M),Y);case"buffer":case"array":return n(M,Y)}throw"Unsupported type "+Y.type}function n(M,Y){if(!M)return M;var Z=Y||{},J=Z.dense?[]:{},he="Sheet1",ge="",de=0,fe={},ye=[],qe=[],ae={s:{r:0,c:0},e:{r:0,c:0}},Ne=Z.sheetRows||0;if(M[2]==0&&(M[3]==8||M[3]==9)&&M.length>=16&&M[14]==5&&M[15]===108)throw new Error("Unsupported Works 3 for Mac file");if(M[2]==2)Z.Enum=Ce,e(M,function(Le,_e,Xe){switch(Xe){case 0:Z.vers=Le,Le>=4096&&(Z.qpro=!0);break;case 6:ae=Le;break;case 204:Le&&(ge=Le);break;case 222:ge=Le;break;case 15:case 51:Z.qpro||(Le[1].v=Le[1].v.slice(1));case 13:case 14:case 16:Xe==14&&(Le[2]&112)==112&&(Le[2]&15)>1&&(Le[2]&15)<15&&(Le[1].z=Z.dateNF||vt[14],Z.cellDates&&(Le[1].t="d",Le[1].v=cd(Le[1].v))),Z.qpro&&Le[3]>de&&(J["!ref"]=Lt(ae),fe[he]=J,ye.push(he),J=Z.dense?[]:{},ae={s:{r:0,c:0},e:{r:0,c:0}},de=Le[3],he=ge||"Sheet"+(de+1),ge="");var pt=Z.dense?(J[Le[0].r]||[])[Le[0].c]:J[ht(Le[0])];if(pt){pt.t=Le[1].t,pt.v=Le[1].v,Le[1].z!=null&&(pt.z=Le[1].z),Le[1].f!=null&&(pt.f=Le[1].f);break}Z.dense?(J[Le[0].r]||(J[Le[0].r]=[]),J[Le[0].r][Le[0].c]=Le[1]):J[ht(Le[0])]=Le[1];break}},Z);else if(M[2]==26||M[2]==14)Z.Enum=ee,M[2]==14&&(Z.qpro=!0,M.l=0),e(M,function(Le,_e,Xe){switch(Xe){case 204:he=Le;break;case 22:Le[1].v=Le[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(Le[3]>de&&(J["!ref"]=Lt(ae),fe[he]=J,ye.push(he),J=Z.dense?[]:{},ae={s:{r:0,c:0},e:{r:0,c:0}},de=Le[3],he="Sheet"+(de+1)),Ne>0&&Le[0].r>=Ne)break;Z.dense?(J[Le[0].r]||(J[Le[0].r]=[]),J[Le[0].r][Le[0].c]=Le[1]):J[ht(Le[0])]=Le[1],ae.e.c<Le[0].c&&(ae.e.c=Le[0].c),ae.e.r<Le[0].r&&(ae.e.r=Le[0].r);break;case 27:Le[14e3]&&(qe[Le[14e3][0]]=Le[14e3][1]);break;case 1537:qe[Le[0]]=Le[1],Le[0]==de&&(he=Le[1]);break}},Z);else throw new Error("Unrecognized LOTUS BOF "+M[2]);if(J["!ref"]=Lt(ae),fe[ge||he]=J,ye.push(ge||he),!qe.length)return{SheetNames:ye,Sheets:fe};for(var Ve={},tt=[],We=0;We<qe.length;++We)fe[ye[We]]?(tt.push(qe[We]||ye[We]),Ve[qe[We]]=fe[qe[We]]||fe[ye[We]]):(tt.push(qe[We]),Ve[qe[We]]={"!ref":"A1"});return{SheetNames:tt,Sheets:Ve}}function a(M,Y){var Z=Y||{};if(+Z.codepage>=0&&Li(+Z.codepage),Z.type=="string")throw new Error("Cannot write WK1 to JS string");var J=qh(),he=xn(M["!ref"]),ge=Array.isArray(M),de=[];Ii(J,0,r(1030)),Ii(J,6,f(he));for(var fe=Math.min(he.e.r,8191),ye=he.s.r;ye<=fe;++ye)for(var qe=ra(ye),ae=he.s.c;ae<=he.e.c;++ae){ye===he.s.r&&(de[ae]=Un(ae));var Ne=de[ae]+qe,Ve=ge?(M[ye]||[])[ae]:M[Ne];if(!(!Ve||Ve.t=="z"))if(Ve.t=="n")(Ve.v|0)==Ve.v&&Ve.v>=-32768&&Ve.v<=32767?Ii(J,13,S(ye,ae,Ve.v)):Ii(J,14,y(ye,ae,Ve.v));else{var tt=Ms(Ve);Ii(J,15,m(ye,ae,tt.slice(0,239)))}}return Ii(J,1),J.end()}function i(M,Y){var Z=Y||{};if(+Z.codepage>=0&&Li(+Z.codepage),Z.type=="string")throw new Error("Cannot write WK3 to JS string");var J=qh();Ii(J,0,c(M));for(var he=0,ge=0;he<M.SheetNames.length;++he)(M.Sheets[M.SheetNames[he]]||{})["!ref"]&&Ii(J,27,te(M.SheetNames[he],ge++));var de=0;for(he=0;he<M.SheetNames.length;++he){var fe=M.Sheets[M.SheetNames[he]];if(!(!fe||!fe["!ref"])){for(var ye=xn(fe["!ref"]),qe=Array.isArray(fe),ae=[],Ne=Math.min(ye.e.r,8191),Ve=ye.s.r;Ve<=Ne;++Ve)for(var tt=ra(Ve),We=ye.s.c;We<=ye.e.c;++We){Ve===ye.s.r&&(ae[We]=Un(We));var Le=ae[We]+tt,_e=qe?(fe[Ve]||[])[We]:fe[Le];if(!(!_e||_e.t=="z"))if(_e.t=="n")Ii(J,23,K(Ve,We,de,_e.v));else{var Xe=Ms(_e);Ii(J,22,A(Ve,We,de,Xe.slice(0,239)))}}++de}}return Ii(J,1),J.end()}function r(M){var Y=Bn(2);return Y.write_shift(2,M),Y}function c(M){var Y=Bn(26);Y.write_shift(2,4096),Y.write_shift(2,4),Y.write_shift(4,0);for(var Z=0,J=0,he=0,ge=0;ge<M.SheetNames.length;++ge){var de=M.SheetNames[ge],fe=M.Sheets[de];if(!(!fe||!fe["!ref"])){++he;var ye=Eo(fe["!ref"]);Z<ye.e.r&&(Z=ye.e.r),J<ye.e.c&&(J=ye.e.c)}}return Z>8191&&(Z=8191),Y.write_shift(2,Z),Y.write_shift(1,he),Y.write_shift(1,J),Y.write_shift(2,0),Y.write_shift(2,0),Y.write_shift(1,1),Y.write_shift(1,2),Y.write_shift(4,0),Y.write_shift(4,0),Y}function l(M,Y,Z){var J={s:{c:0,r:0},e:{c:0,r:0}};return Y==8&&Z.qpro?(J.s.c=M.read_shift(1),M.l++,J.s.r=M.read_shift(2),J.e.c=M.read_shift(1),M.l++,J.e.r=M.read_shift(2),J):(J.s.c=M.read_shift(2),J.s.r=M.read_shift(2),Y==12&&Z.qpro&&(M.l+=2),J.e.c=M.read_shift(2),J.e.r=M.read_shift(2),Y==12&&Z.qpro&&(M.l+=2),J.s.c==65535&&(J.s.c=J.e.c=J.s.r=J.e.r=0),J)}function f(M){var Y=Bn(8);return Y.write_shift(2,M.s.c),Y.write_shift(2,M.s.r),Y.write_shift(2,M.e.c),Y.write_shift(2,M.e.r),Y}function T(M,Y,Z){var J=[{c:0,r:0},{t:"n",v:0},0,0];return Z.qpro&&Z.vers!=20768?(J[0].c=M.read_shift(1),J[3]=M.read_shift(1),J[0].r=M.read_shift(2),M.l+=2):(J[2]=M.read_shift(1),J[0].c=M.read_shift(2),J[0].r=M.read_shift(2)),J}function p(M,Y,Z){var J=M.l+Y,he=T(M,Y,Z);if(he[1].t="s",Z.vers==20768){M.l++;var ge=M.read_shift(1);return he[1].v=M.read_shift(ge,"utf8"),he}return Z.qpro&&M.l++,he[1].v=M.read_shift(J-M.l,"cstr"),he}function m(M,Y,Z){var J=Bn(7+Z.length);J.write_shift(1,255),J.write_shift(2,Y),J.write_shift(2,M),J.write_shift(1,39);for(var he=0;he<J.length;++he){var ge=Z.charCodeAt(he);J.write_shift(1,ge>=128?95:ge)}return J.write_shift(1,0),J}function g(M,Y,Z){var J=T(M,Y,Z);return J[1].v=M.read_shift(2,"i"),J}function S(M,Y,Z){var J=Bn(7);return J.write_shift(1,255),J.write_shift(2,Y),J.write_shift(2,M),J.write_shift(2,Z,"i"),J}function x(M,Y,Z){var J=T(M,Y,Z);return J[1].v=M.read_shift(8,"f"),J}function y(M,Y,Z){var J=Bn(13);return J.write_shift(1,255),J.write_shift(2,Y),J.write_shift(2,M),J.write_shift(8,Z,"f"),J}function w(M,Y,Z){var J=M.l+Y,he=T(M,Y,Z);if(he[1].v=M.read_shift(8,"f"),Z.qpro)M.l=J;else{var ge=M.read_shift(2);O(M.slice(M.l,M.l+ge),he),M.l+=ge}return he}function C(M,Y,Z){var J=Y&32768;return Y&=-32769,Y=(J?M:0)+(Y>=8192?Y-16384:Y),(J?"":"$")+(Z?Un(Y):ra(Y))}var k={51:["FALSE",0],52:["TRUE",0],70:["LEN",1],80:["SUM",69],81:["AVERAGEA",69],82:["COUNTA",69],83:["MINA",69],84:["MAXA",69],111:["T",1]},E=["","","","","","","","","","+","-","*","/","^","=","<>","<=",">=","<",">","","","","","&","","","","","","",""];function O(M,Y){aa(M,0);for(var Z=[],J=0,he="",ge="",de="",fe="";M.l<M.length;){var ye=M[M.l++];switch(ye){case 0:Z.push(M.read_shift(8,"f"));break;case 1:ge=C(Y[0].c,M.read_shift(2),!0),he=C(Y[0].r,M.read_shift(2),!1),Z.push(ge+he);break;case 2:{var qe=C(Y[0].c,M.read_shift(2),!0),ae=C(Y[0].r,M.read_shift(2),!1);ge=C(Y[0].c,M.read_shift(2),!0),he=C(Y[0].r,M.read_shift(2),!1),Z.push(qe+ae+":"+ge+he)}break;case 3:if(M.l<M.length){console.error("WK1 premature formula end");return}break;case 4:Z.push("("+Z.pop()+")");break;case 5:Z.push(M.read_shift(2));break;case 6:{for(var Ne="";ye=M[M.l++];)Ne+=String.fromCharCode(ye);Z.push('"'+Ne.replace(/"/g,'""')+'"')}break;case 8:Z.push("-"+Z.pop());break;case 23:Z.push("+"+Z.pop());break;case 22:Z.push("NOT("+Z.pop()+")");break;case 20:case 21:fe=Z.pop(),de=Z.pop(),Z.push(["AND","OR"][ye-20]+"("+de+","+fe+")");break;default:if(ye<32&&E[ye])fe=Z.pop(),de=Z.pop(),Z.push(de+E[ye]+fe);else if(k[ye]){if(J=k[ye][1],J==69&&(J=M[M.l++]),J>Z.length){console.error("WK1 bad formula parse 0x"+ye.toString(16)+":|"+Z.join("|")+"|");return}var Ve=Z.slice(-J);Z.length-=J,Z.push(k[ye][0]+"("+Ve.join(",")+")")}else return ye<=7?console.error("WK1 invalid opcode "+ye.toString(16)):ye<=24?console.error("WK1 unsupported op "+ye.toString(16)):ye<=30?console.error("WK1 invalid opcode "+ye.toString(16)):ye<=115?console.error("WK1 unsupported function opcode "+ye.toString(16)):console.error("WK1 unrecognized opcode "+ye.toString(16))}}Z.length==1?Y[1].f=""+Z[0]:console.error("WK1 bad formula parse |"+Z.join("|")+"|")}function N(M){var Y=[{c:0,r:0},{t:"n",v:0},0];return Y[0].r=M.read_shift(2),Y[3]=M[M.l++],Y[0].c=M[M.l++],Y}function B(M,Y){var Z=N(M);return Z[1].t="s",Z[1].v=M.read_shift(Y-4,"cstr"),Z}function A(M,Y,Z,J){var he=Bn(6+J.length);he.write_shift(2,M),he.write_shift(1,Z),he.write_shift(1,Y),he.write_shift(1,39);for(var ge=0;ge<J.length;++ge){var de=J.charCodeAt(ge);he.write_shift(1,de>=128?95:de)}return he.write_shift(1,0),he}function z(M,Y){var Z=N(M);Z[1].v=M.read_shift(2);var J=Z[1].v>>1;if(Z[1].v&1)switch(J&7){case 0:J=(J>>3)*5e3;break;case 1:J=(J>>3)*500;break;case 2:J=(J>>3)/20;break;case 3:J=(J>>3)/200;break;case 4:J=(J>>3)/2e3;break;case 5:J=(J>>3)/2e4;break;case 6:J=(J>>3)/16;break;case 7:J=(J>>3)/64;break}return Z[1].v=J,Z}function P(M,Y){var Z=N(M),J=M.read_shift(4),he=M.read_shift(4),ge=M.read_shift(2);if(ge==65535)return J===0&&he===3221225472?(Z[1].t="e",Z[1].v=15):J===0&&he===3489660928?(Z[1].t="e",Z[1].v=42):Z[1].v=0,Z;var de=ge&32768;return ge=(ge&32767)-16446,Z[1].v=(1-de*2)*(he*Math.pow(2,ge+32)+J*Math.pow(2,ge)),Z}function K(M,Y,Z,J){var he=Bn(14);if(he.write_shift(2,M),he.write_shift(1,Z),he.write_shift(1,Y),J==0)return he.write_shift(4,0),he.write_shift(4,0),he.write_shift(2,65535),he;var ge=0,de=0,fe=0,ye=0;return J<0&&(ge=1,J=-J),de=Math.log2(J)|0,J/=Math.pow(2,de-31),ye=J>>>0,(ye&2147483648)==0&&(J/=2,++de,ye=J>>>0),J-=ye,ye|=2147483648,ye>>>=0,J*=Math.pow(2,32),fe=J>>>0,he.write_shift(4,fe),he.write_shift(4,ye),de+=16383+(ge?32768:0),he.write_shift(2,de),he}function I(M,Y){var Z=P(M);return M.l+=Y-14,Z}function L(M,Y){var Z=N(M),J=M.read_shift(4);return Z[1].v=J>>6,Z}function le(M,Y){var Z=N(M),J=M.read_shift(8,"f");return Z[1].v=J,Z}function ue(M,Y){var Z=le(M);return M.l+=Y-10,Z}function X(M,Y){return M[M.l+Y-1]==0?M.read_shift(Y,"cstr"):""}function F(M,Y){var Z=M[M.l++];Z>Y-1&&(Z=Y-1);for(var J="";J.length<Z;)J+=String.fromCharCode(M[M.l++]);return J}function re(M,Y,Z){if(!(!Z.qpro||Y<21)){var J=M.read_shift(1);M.l+=17,M.l+=1,M.l+=2;var he=M.read_shift(Y-21,"cstr");return[J,he]}}function me(M,Y){for(var Z={},J=M.l+Y;M.l<J;){var he=M.read_shift(2);if(he==14e3){for(Z[he]=[0,""],Z[he][0]=M.read_shift(2);M[M.l];)Z[he][1]+=String.fromCharCode(M[M.l]),M.l++;M.l++}}return Z}function te(M,Y){var Z=Bn(5+M.length);Z.write_shift(2,14e3),Z.write_shift(2,Y);for(var J=0;J<M.length;++J){var he=M.charCodeAt(J);Z[Z.l++]=he>127?95:he}return Z[Z.l++]=0,Z}var Ce={0:{n:"BOF",f:jn},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:l},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:g},14:{n:"NUMBER",f:x},15:{n:"LABEL",f:p},16:{n:"FORMULA",f:w},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:p},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},102:{n:"PRANGES??"},103:{n:"RRANGES??"},104:{n:"FNAME??"},105:{n:"MRANGES??"},204:{n:"SHEETNAMECS",f:X},222:{n:"SHEETNAMELP",f:F},65535:{n:""}},ee={0:{n:"BOF"},1:{n:"EOF"},2:{n:"PASSWORD"},3:{n:"CALCSET"},4:{n:"WINDOWSET"},5:{n:"SHEETCELLPTR"},6:{n:"SHEETLAYOUT"},7:{n:"COLUMNWIDTH"},8:{n:"HIDDENCOLUMN"},9:{n:"USERRANGE"},10:{n:"SYSTEMRANGE"},11:{n:"ZEROFORCE"},12:{n:"SORTKEYDIR"},13:{n:"FILESEAL"},14:{n:"DATAFILLNUMS"},15:{n:"PRINTMAIN"},16:{n:"PRINTSTRING"},17:{n:"GRAPHMAIN"},18:{n:"GRAPHSTRING"},19:{n:"??"},20:{n:"ERRCELL"},21:{n:"NACELL"},22:{n:"LABEL16",f:B},23:{n:"NUMBER17",f:P},24:{n:"NUMBER18",f:z},25:{n:"FORMULA19",f:I},26:{n:"FORMULA1A"},27:{n:"XFORMAT",f:me},28:{n:"DTLABELMISC"},29:{n:"DTLABELCELL"},30:{n:"GRAPHWINDOW"},31:{n:"CPA"},32:{n:"LPLAUTO"},33:{n:"QUERY"},34:{n:"HIDDENSHEET"},35:{n:"??"},37:{n:"NUMBER25",f:L},38:{n:"??"},39:{n:"NUMBER27",f:le},40:{n:"FORMULA28",f:ue},142:{n:"??"},147:{n:"??"},150:{n:"??"},151:{n:"??"},152:{n:"??"},153:{n:"??"},154:{n:"??"},155:{n:"??"},156:{n:"??"},163:{n:"??"},174:{n:"??"},175:{n:"??"},176:{n:"??"},177:{n:"??"},184:{n:"??"},185:{n:"??"},186:{n:"??"},187:{n:"??"},188:{n:"??"},195:{n:"??"},201:{n:"??"},204:{n:"SHEETNAMECS",f:X},205:{n:"??"},206:{n:"??"},207:{n:"??"},208:{n:"??"},256:{n:"??"},259:{n:"??"},260:{n:"??"},261:{n:"??"},262:{n:"??"},263:{n:"??"},265:{n:"??"},266:{n:"??"},267:{n:"??"},268:{n:"??"},270:{n:"??"},271:{n:"??"},384:{n:"??"},389:{n:"??"},390:{n:"??"},393:{n:"??"},396:{n:"??"},512:{n:"??"},514:{n:"??"},513:{n:"??"},516:{n:"??"},517:{n:"??"},640:{n:"??"},641:{n:"??"},642:{n:"??"},643:{n:"??"},644:{n:"??"},645:{n:"??"},646:{n:"??"},647:{n:"??"},648:{n:"??"},658:{n:"??"},659:{n:"??"},660:{n:"??"},661:{n:"??"},662:{n:"??"},665:{n:"??"},666:{n:"??"},768:{n:"??"},772:{n:"??"},1537:{n:"SHEETINFOQP",f:re},1600:{n:"??"},1602:{n:"??"},1793:{n:"??"},1794:{n:"??"},1795:{n:"??"},1796:{n:"??"},1920:{n:"??"},2048:{n:"??"},2049:{n:"??"},2052:{n:"??"},2688:{n:"??"},10998:{n:"??"},12849:{n:"??"},28233:{n:"??"},28484:{n:"??"},65535:{n:""}};return{sheet_to_wk1:a,book_to_wk3:i,to_workbook:t}})();function F9(e){var t={},n=e.match(ya),a=0,i=!1;if(n)for(;a!=n.length;++a){var r=it(n[a]);switch(r[0].replace(/\w*:/g,"")){case"<condense":break;case"<extend":break;case"<shadow":if(!r.val)break;case"<shadow>":case"<shadow/>":t.shadow=1;break;case"</shadow>":break;case"<charset":if(r.val=="1")break;t.cp=Ip[parseInt(r.val,10)];break;case"<outline":if(!r.val)break;case"<outline>":case"<outline/>":t.outline=1;break;case"</outline>":break;case"<rFont":t.name=r.val;break;case"<sz":t.sz=r.val;break;case"<strike":if(!r.val)break;case"<strike>":case"<strike/>":t.strike=1;break;case"</strike>":break;case"<u":if(!r.val)break;switch(r.val){case"double":t.uval="double";break;case"singleAccounting":t.uval="single-accounting";break;case"doubleAccounting":t.uval="double-accounting";break}case"<u>":case"<u/>":t.u=1;break;case"</u>":break;case"<b":if(r.val=="0")break;case"<b>":case"<b/>":t.b=1;break;case"</b>":break;case"<i":if(r.val=="0")break;case"<i>":case"<i/>":t.i=1;break;case"</i>":break;case"<color":r.rgb&&(t.color=r.rgb.slice(2,8));break;case"<color>":case"<color/>":case"</color>":break;case"<family":t.family=r.val;break;case"<family>":case"<family/>":case"</family>":break;case"<vertAlign":t.valign=r.val;break;case"<vertAlign>":case"<vertAlign/>":case"</vertAlign>":break;case"<scheme":break;case"<scheme>":case"<scheme/>":case"</scheme>":break;case"<extLst":case"<extLst>":case"</extLst>":break;case"<ext":i=!0;break;case"</ext>":i=!1;break;default:if(r[0].charCodeAt(1)!==47&&!i)throw new Error("Unrecognized rich format "+r[0])}}return t}var L9=(function(){var e=i1("t"),t=i1("rPr");function n(r){var c=r.match(e);if(!c)return{t:"s",v:""};var l={t:"s",v:Ut(c[1])},f=r.match(t);return f&&(l.s=F9(f[1])),l}var a=/<(?:\w+:)?r>/g,i=/<\/(?:\w+:)?r>/;return function(c){return c.replace(a,"").split(i).map(n).filter(function(l){return l.v})}})(),P9=(function(){var t=/(\r\n|\n)/g;function n(i,r,c){var l=[];i.u&&l.push("text-decoration: underline;"),i.uval&&l.push("text-underline-style:"+i.uval+";"),i.sz&&l.push("font-size:"+i.sz+"pt;"),i.outline&&l.push("text-effect: outline;"),i.shadow&&l.push("text-shadow: auto;"),r.push('<span style="'+l.join("")+'">'),i.b&&(r.push("<b>"),c.push("</b>")),i.i&&(r.push("<i>"),c.push("</i>")),i.strike&&(r.push("<s>"),c.push("</s>"));var f=i.valign||"";return f=="superscript"||f=="super"?f="sup":f=="subscript"&&(f="sub"),f!=""&&(r.push("<"+f+">"),c.push("</"+f+">")),c.push("</span>"),i}function a(i){var r=[[],i.v,[]];return i.v?(i.s&&n(i.s,r[0],r[2]),r[0].join("")+r[1].replace(t,"<br/>")+r[2].join("")):""}return function(r){return r.map(a).join("")}})(),_9=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,q9=/<(?:\w+:)?r>/,B9=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Xp(e,t){var n=t?t.cellHTML:!0,a={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(a.t=Ut(rn(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),a.r=rn(e),n&&(a.h=Pp(a.t))):e.match(q9)&&(a.r=rn(e),a.t=Ut(rn((e.replace(B9,"").match(_9)||[]).join("").replace(ya,""))),n&&(a.h=P9(L9(a.r)))),a):{t:""}}var U9=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,z9=/<(?:\w+:)?(?:si|sstItem)>/g,W9=/<\/(?:\w+:)?(?:si|sstItem)>/;function V9(e,t){var n=[],a="";if(!e)return n;var i=e.match(U9);if(i){a=i[2].replace(z9,"").split(W9);for(var r=0;r!=a.length;++r){var c=Xp(a[r].trim(),t);c!=null&&(n[n.length]=c)}i=it(i[1]),n.Count=i.count,n.Unique=i.uniqueCount}return n}function H9(e){return[e.read_shift(4),e.read_shift(4)]}function G9(e,t){var n=[],a=!1;return js(e,function(r,c,l){switch(l){case 159:n.Count=r[0],n.Unique=r[1];break;case 19:n.push(r);break;case 160:return!0;case 35:a=!0;break;case 36:a=!1;break;default:if(c.T,!a||t.WTF)throw new Error("Unexpected record 0x"+l.toString(16))}}),n}function fS(e){for(var t=[],n=e.split(""),a=0;a<n.length;++a)t[a]=n[a].charCodeAt(0);return t}function Is(e,t){var n={};return n.Major=e.read_shift(2),n.Minor=e.read_shift(2),t>=4&&(e.l+=t-4),n}function X9(e){var t={};return t.id=e.read_shift(0,"lpp4"),t.R=Is(e,4),t.U=Is(e,4),t.W=Is(e,4),t}function K9(e){for(var t=e.read_shift(4),n=e.l+t-4,a={},i=e.read_shift(4),r=[];i-- >0;)r.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(a.name=e.read_shift(0,"lpp4"),a.comps=r,e.l!=n)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+n);return a}function $9(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(K9(e));return t}function Y9(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(e.read_shift(0,"lpp4"));return t}function Z9(e){var t={};return e.read_shift(4),e.l+=4,t.id=e.read_shift(0,"lpp4"),t.name=e.read_shift(0,"lpp4"),t.R=Is(e,4),t.U=Is(e,4),t.W=Is(e,4),t}function J9(e){var t=Z9(e);if(t.ename=e.read_shift(0,"8lpp4"),t.blksz=e.read_shift(4),t.cmode=e.read_shift(4),e.read_shift(4)!=4)throw new Error("Bad !Primary record");return t}function hS(e,t){var n=e.l+t,a={};a.Flags=e.read_shift(4)&63,e.l+=4,a.AlgID=e.read_shift(4);var i=!1;switch(a.AlgID){case 26126:case 26127:case 26128:i=a.Flags==36;break;case 26625:i=a.Flags==4;break;case 0:i=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID}if(!i)throw new Error("Encryption Flags/AlgID mismatch");return a.AlgIDHash=e.read_shift(4),a.KeySize=e.read_shift(4),a.ProviderType=e.read_shift(4),e.l+=8,a.CSPName=e.read_shift(n-e.l>>1,"utf16le"),e.l=n,a}function pS(e,t){var n={},a=e.l+t;return e.l+=4,n.Salt=e.slice(e.l,e.l+16),e.l+=16,n.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),n.VerifierHash=e.slice(e.l,a),e.l=a,n}function Q9(e){var t=Is(e);switch(t.Minor){case 2:return[t.Minor,eA(e)];case 3:return[t.Minor,tA()];case 4:return[t.Minor,nA(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function eA(e){var t=e.read_shift(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var n=e.read_shift(4),a=hS(e,n),i=pS(e,e.length-e.l);return{t:"Std",h:a,v:i}}function tA(){throw new Error("File is password-protected: ECMA-376 Extensible")}function nA(e){var t=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var n=e.read_shift(e.length-e.l,"utf8"),a={};return n.replace(ya,function(r){var c=it(r);switch(as(c[0])){case"<?xml":break;case"<encryption":case"</encryption>":break;case"<keyData":t.forEach(function(l){a[l]=c[l]});break;case"<dataIntegrity":a.encryptedHmacKey=c.encryptedHmacKey,a.encryptedHmacValue=c.encryptedHmacValue;break;case"<keyEncryptors>":case"<keyEncryptors":a.encs=[];break;case"</keyEncryptors>":break;case"<keyEncryptor":a.uri=c.uri;break;case"</keyEncryptor>":break;case"<encryptedKey":a.encs.push(c);break;default:throw c[0]}}),a}function aA(e,t){var n={},a=n.EncryptionVersionInfo=Is(e,4);if(t-=4,a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);n.Flags=e.read_shift(4),t-=4;var i=e.read_shift(4);return t-=4,n.EncryptionHeader=hS(e,i),t-=i,n.EncryptionVerifier=pS(e,t),n}function iA(e){var t={},n=t.EncryptionVersionInfo=Is(e,4);if(n.Major!=1||n.Minor!=1)throw"unrecognized version code "+n.Major+" : "+n.Minor;return t.Salt=e.read_shift(16),t.EncryptedVerifier=e.read_shift(16),t.EncryptedVerifierHash=e.read_shift(16),t}function sA(e){var t=0,n,a=fS(e),i=a.length+1,r,c,l,f,T;for(n=pr(i),n[0]=a.length,r=1;r!=i;++r)n[r]=a[r-1];for(r=i-1;r>=0;--r)c=n[r],l=(t&16384)===0?0:1,f=t<<1&32767,T=l|f,t=T^c;return t^52811}var mS=(function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],t=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],n=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],a=function(c){return(c/2|c*128)&255},i=function(c,l){return a(c^l)},r=function(c){for(var l=t[c.length-1],f=104,T=c.length-1;T>=0;--T)for(var p=c[T],m=0;m!=7;++m)p&64&&(l^=n[f]),p*=2,--f;return l};return function(c){for(var l=fS(c),f=r(l),T=l.length,p=pr(16),m=0;m!=16;++m)p[m]=0;var g,S,x;for((T&1)===1&&(g=f>>8,p[T]=i(e[0],g),--T,g=f&255,S=l[l.length-1],p[T]=i(S,g));T>0;)--T,g=f>>8,p[T]=i(l[T],g),--T,g=f&255,p[T]=i(l[T],g);for(T=15,x=15-l.length;x>0;)g=f>>8,p[T]=i(e[x],g),--T,--x,g=f&255,p[T]=i(l[T],g),--T,--x;return p}})(),rA=function(e,t,n,a,i){i||(i=t),a||(a=mS(e));var r,c;for(r=0;r!=t.length;++r)c=t[r],c^=a[n],c=(c>>5|c<<3)&255,i[r]=c,++n;return[i,n,a]},oA=function(e){var t=0,n=mS(e);return function(a){var i=rA("",a,t,n);return t=i[1],i[0]}};function cA(e,t,n,a){var i={key:jn(e),verificationBytes:jn(e)};return n.password&&(i.verifier=sA(n.password)),a.valid=i.verificationBytes===i.verifier,a.valid&&(a.insitu=oA(n.password)),i}function lA(e,t,n){var a=n||{};return a.Info=e.read_shift(2),e.l-=2,a.Info===1?a.Data=iA(e):a.Data=aA(e,t),a}function uA(e,t,n){var a={Type:n.biff>=8?e.read_shift(2):0};return a.Type?lA(e,t-2,a):cA(e,n.biff>=8?t:t-2,n,a),a}var dA=(function(){function e(i,r){switch(r.type){case"base64":return t(Qa(i),r);case"binary":return t(i,r);case"buffer":return t(Mt&&Buffer.isBuffer(i)?i.toString("binary"):d0(i),r);case"array":return t(s0(i),r)}throw new Error("Unrecognized type "+r.type)}function t(i,r){var c=r||{},l=c.dense?[]:{},f=i.match(/\\trowd.*?\\row\b/g);if(!f.length)throw new Error("RTF missing table");var T={s:{c:0,r:0},e:{c:0,r:f.length-1}};return f.forEach(function(p,m){Array.isArray(l)&&(l[m]=[]);for(var g=/\\\w+\b/g,S=0,x,y=-1;x=g.exec(p);){switch(x[0]){case"\\cell":var w=p.slice(S,g.lastIndex-x[0].length);if(w[0]==" "&&(w=w.slice(1)),++y,w.length){var C={v:w,t:"s"};Array.isArray(l)?l[m][y]=C:l[ht({r:m,c:y})]=C}break}S=g.lastIndex}y>T.e.c&&(T.e.c=y)}),l["!ref"]=Lt(T),l}function n(i,r){return xr(e(i,r),r)}function a(i){for(var r=["{\\rtf1\\ansi"],c=xn(i["!ref"]),l,f=Array.isArray(i),T=c.s.r;T<=c.e.r;++T){r.push("\\trowd\\trautofit1");for(var p=c.s.c;p<=c.e.c;++p)r.push("\\cellx"+(p+1));for(r.push("\\pard\\intbl"),p=c.s.c;p<=c.e.c;++p){var m=ht({r:T,c:p});l=f?(i[T]||[])[p]:i[m],!(!l||l.v==null&&(!l.f||l.F))&&(r.push(" "+(l.w||(Ms(l),l.w))),r.push("\\cell"))}r.push("\\pard\\intbl\\row")}return r.join("")+"}"}return{to_workbook:n,to_sheet:e,from_sheet:a}})();function TA(e){var t=e.slice(e[0]==="#"?1:0).slice(0,6);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function o1(e){for(var t=0,n=1;t!=3;++t)n=n*256+(e[t]>255?255:e[t]<0?0:e[t]);return n.toString(16).toUpperCase().slice(1)}function fA(e){var t=e[0]/255,n=e[1]/255,a=e[2]/255,i=Math.max(t,n,a),r=Math.min(t,n,a),c=i-r;if(c===0)return[0,0,t];var l=0,f=0,T=i+r;switch(f=c/(T>1?2-T:T),i){case t:l=((n-a)/c+6)%6;break;case n:l=(a-t)/c+2;break;case a:l=(t-n)/c+4;break}return[l/6,f,T/2]}function hA(e){var t=e[0],n=e[1],a=e[2],i=n*2*(a<.5?a:1-a),r=a-i/2,c=[r,r,r],l=6*t,f;if(n!==0)switch(l|0){case 0:case 6:f=i*l,c[0]+=i,c[1]+=f;break;case 1:f=i*(2-l),c[0]+=f,c[1]+=i;break;case 2:f=i*(l-2),c[1]+=i,c[2]+=f;break;case 3:f=i*(4-l),c[1]+=f,c[2]+=i;break;case 4:f=i*(l-4),c[2]+=i,c[0]+=f;break;case 5:f=i*(6-l),c[2]+=f,c[0]+=i;break}for(var T=0;T!=3;++T)c[T]=Math.round(c[T]*255);return c}function Uu(e,t){if(t===0)return e;var n=fA(TA(e));return t<0?n[2]=n[2]*(1+t):n[2]=1-(1-n[2])*(1-t),o1(hA(n))}var gS=6,pA=15,mA=1,Da=gS;function zu(e){return Math.floor((e+Math.round(128/Da)/256)*Da)}function Wu(e){return Math.floor((e-5)/Da*100+.5)/100}function Wh(e){return Math.round((e*Da+5)/Da*256)/256}function _f(e){return Wh(Wu(zu(e)))}function Kp(e){var t=Math.abs(e-_f(e)),n=Da;if(t>.005)for(Da=mA;Da<pA;++Da)Math.abs(e-_f(e))<=t&&(t=Math.abs(e-_f(e)),n=Da);Da=n}function yo(e){e.width?(e.wpx=zu(e.width),e.wch=Wu(e.wpx),e.MDW=Da):e.wpx?(e.wch=Wu(e.wpx),e.width=Wh(e.wch),e.MDW=Da):typeof e.wch=="number"&&(e.width=Wh(e.wch),e.wpx=zu(e.width),e.MDW=Da),e.customWidth&&delete e.customWidth}var gA=96,vS=gA;function xS(e){return e*96/vS}function c1(e){return e*vS/96}var vA={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"};function xA(e,t,n,a){t.Borders=[];var i={},r=!1;(e[0].match(ya)||[]).forEach(function(c){var l=it(c);switch(as(l[0])){case"<borders":case"<borders>":case"</borders>":break;case"<border":case"<border>":case"<border/>":i={},l.diagonalUp&&(i.diagonalUp=dn(l.diagonalUp)),l.diagonalDown&&(i.diagonalDown=dn(l.diagonalDown)),t.Borders.push(i);break;case"</border>":break;case"<left/>":break;case"<left":case"<left>":break;case"</left>":break;case"<right/>":break;case"<right":case"<right>":break;case"</right>":break;case"<top/>":break;case"<top":case"<top>":break;case"</top>":break;case"<bottom/>":break;case"<bottom":case"<bottom>":break;case"</bottom>":break;case"<diagonal":case"<diagonal>":case"<diagonal/>":break;case"</diagonal>":break;case"<horizontal":case"<horizontal>":case"<horizontal/>":break;case"</horizontal>":break;case"<vertical":case"<vertical>":case"<vertical/>":break;case"</vertical>":break;case"<start":case"<start>":case"<start/>":break;case"</start>":break;case"<end":case"<end>":case"<end/>":break;case"</end>":break;case"<color":case"<color>":break;case"<color/>":case"</color>":break;case"<extLst":case"<extLst>":case"</extLst>":break;case"<ext":r=!0;break;case"</ext>":r=!1;break;default:if(a&&a.WTF&&!r)throw new Error("unrecognized "+l[0]+" in borders")}})}function yA(e,t,n,a){t.Fills=[];var i={},r=!1;(e[0].match(ya)||[]).forEach(function(c){var l=it(c);switch(as(l[0])){case"<fills":case"<fills>":case"</fills>":break;case"<fill>":case"<fill":case"<fill/>":i={},t.Fills.push(i);break;case"</fill>":break;case"<gradientFill>":break;case"<gradientFill":case"</gradientFill>":t.Fills.push(i),i={};break;case"<patternFill":case"<patternFill>":l.patternType&&(i.patternType=l.patternType);break;case"<patternFill/>":case"</patternFill>":break;case"<bgColor":i.bgColor||(i.bgColor={}),l.indexed&&(i.bgColor.indexed=parseInt(l.indexed,10)),l.theme&&(i.bgColor.theme=parseInt(l.theme,10)),l.tint&&(i.bgColor.tint=parseFloat(l.tint)),l.rgb&&(i.bgColor.rgb=l.rgb.slice(-6));break;case"<bgColor/>":case"</bgColor>":break;case"<fgColor":i.fgColor||(i.fgColor={}),l.theme&&(i.fgColor.theme=parseInt(l.theme,10)),l.tint&&(i.fgColor.tint=parseFloat(l.tint)),l.rgb!=null&&(i.fgColor.rgb=l.rgb.slice(-6));break;case"<fgColor/>":case"</fgColor>":break;case"<stop":case"<stop/>":break;case"</stop>":break;case"<color":case"<color/>":break;case"</color>":break;case"<extLst":case"<extLst>":case"</extLst>":break;case"<ext":r=!0;break;case"</ext>":r=!1;break;default:if(a&&a.WTF&&!r)throw new Error("unrecognized "+l[0]+" in fills")}})}function SA(e,t,n,a){t.Fonts=[];var i={},r=!1;(e[0].match(ya)||[]).forEach(function(c){var l=it(c);switch(as(l[0])){case"<fonts":case"<fonts>":case"</fonts>":break;case"<font":case"<font>":break;case"</font>":case"<font/>":t.Fonts.push(i),i={};break;case"<name":l.val&&(i.name=rn(l.val));break;case"<name/>":case"</name>":break;case"<b":i.bold=l.val?dn(l.val):1;break;case"<b/>":i.bold=1;break;case"<i":i.italic=l.val?dn(l.val):1;break;case"<i/>":i.italic=1;break;case"<u":switch(l.val){case"none":i.underline=0;break;case"single":i.underline=1;break;case"double":i.underline=2;break;case"singleAccounting":i.underline=33;break;case"doubleAccounting":i.underline=34;break}break;case"<u/>":i.underline=1;break;case"<strike":i.strike=l.val?dn(l.val):1;break;case"<strike/>":i.strike=1;break;case"<outline":i.outline=l.val?dn(l.val):1;break;case"<outline/>":i.outline=1;break;case"<shadow":i.shadow=l.val?dn(l.val):1;break;case"<shadow/>":i.shadow=1;break;case"<condense":i.condense=l.val?dn(l.val):1;break;case"<condense/>":i.condense=1;break;case"<extend":i.extend=l.val?dn(l.val):1;break;case"<extend/>":i.extend=1;break;case"<sz":l.val&&(i.sz=+l.val);break;case"<sz/>":case"</sz>":break;case"<vertAlign":l.val&&(i.vertAlign=l.val);break;case"<vertAlign/>":case"</vertAlign>":break;case"<family":l.val&&(i.family=parseInt(l.val,10));break;case"<family/>":case"</family>":break;case"<scheme":l.val&&(i.scheme=l.val);break;case"<scheme/>":case"</scheme>":break;case"<charset":if(l.val=="1")break;l.codepage=Ip[parseInt(l.val,10)];break;case"<color":if(i.color||(i.color={}),l.auto&&(i.color.auto=dn(l.auto)),l.rgb)i.color.rgb=l.rgb.slice(-6);else if(l.indexed){i.color.index=parseInt(l.indexed,10);var f=t0[i.color.index];i.color.index==81&&(f=t0[1]),f||(f=t0[1]),i.color.rgb=f[0].toString(16)+f[1].toString(16)+f[2].toString(16)}else l.theme&&(i.color.theme=parseInt(l.theme,10),l.tint&&(i.color.tint=parseFloat(l.tint)),l.theme&&n.themeElements&&n.themeElements.clrScheme&&(i.color.rgb=Uu(n.themeElements.clrScheme[i.color.theme].rgb,i.color.tint||0)));break;case"<color/>":case"</color>":break;case"<AlternateContent":r=!0;break;case"</AlternateContent>":r=!1;break;case"<extLst":case"<extLst>":case"</extLst>":break;case"<ext":r=!0;break;case"</ext>":r=!1;break;default:if(a&&a.WTF&&!r)throw new Error("unrecognized "+l[0]+" in fonts")}})}function bA(e,t,n){t.NumberFmt=[];for(var a=ns(vt),i=0;i<a.length;++i)t.NumberFmt[a[i]]=vt[a[i]];var r=e[0].match(ya);if(r)for(i=0;i<r.length;++i){var c=it(r[i]);switch(as(c[0])){case"<numFmts":case"</numFmts>":case"<numFmts/>":case"<numFmts>":break;case"<numFmt":{var l=Ut(rn(c.formatCode)),f=parseInt(c.numFmtId,10);if(t.NumberFmt[f]=l,f>0){if(f>392){for(f=392;f>60&&t.NumberFmt[f]!=null;--f);t.NumberFmt[f]=l}e0(l,f)}}break;case"</numFmt>":break;default:if(n.WTF)throw new Error("unrecognized "+c[0]+" in numFmts")}}}var Xl=["numFmtId","fillId","fontId","borderId","xfId"],Kl=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function wA(e,t,n){t.CellXf=[];var a,i=!1;(e[0].match(ya)||[]).forEach(function(r){var c=it(r),l=0;switch(as(c[0])){case"<cellXfs":case"<cellXfs>":case"<cellXfs/>":case"</cellXfs>":break;case"<xf":case"<xf/>":for(a=c,delete a[0],l=0;l<Xl.length;++l)a[Xl[l]]&&(a[Xl[l]]=parseInt(a[Xl[l]],10));for(l=0;l<Kl.length;++l)a[Kl[l]]&&(a[Kl[l]]=dn(a[Kl[l]]));if(t.NumberFmt&&a.numFmtId>392){for(l=392;l>60;--l)if(t.NumberFmt[a.numFmtId]==t.NumberFmt[l]){a.numFmtId=l;break}}t.CellXf.push(a);break;case"</xf>":break;case"<alignment":case"<alignment/>":var f={};c.vertical&&(f.vertical=c.vertical),c.horizontal&&(f.horizontal=c.horizontal),c.textRotation!=null&&(f.textRotation=c.textRotation),c.indent&&(f.indent=c.indent),c.wrapText&&(f.wrapText=dn(c.wrapText)),a.alignment=f;break;case"</alignment>":break;case"<protection":break;case"</protection>":case"<protection/>":break;case"<AlternateContent":i=!0;break;case"</AlternateContent>":i=!1;break;case"<extLst":case"<extLst>":case"</extLst>":break;case"<ext":i=!0;break;case"</ext>":i=!1;break;default:if(n&&n.WTF&&!i)throw new Error("unrecognized "+c[0]+" in cellXfs")}})}var CA=(function(){var t=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,n=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,a=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,i=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,r=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/;return function(l,f,T){var p={};if(!l)return p;l=l.replace(/<!--([\s\S]*?)-->/mg,"").replace(/<!DOCTYPE[^\[]*\[[^\]]*\]>/gm,"");var m;return(m=l.match(t))&&bA(m,p,T),(m=l.match(i))&&SA(m,p,f,T),(m=l.match(a))&&yA(m,p,f,T),(m=l.match(r))&&xA(m,p,f,T),(m=l.match(n))&&wA(m,p,T),p}})();function EA(e,t){var n=e.read_shift(2),a=va(e);return[n,a]}function kA(e,t,n){var a={};a.sz=e.read_shift(2)/20;var i=LE(e);i.fItalic&&(a.italic=1),i.fCondense&&(a.condense=1),i.fExtend&&(a.extend=1),i.fShadow&&(a.shadow=1),i.fOutline&&(a.outline=1),i.fStrikeout&&(a.strike=1);var r=e.read_shift(2);switch(r===700&&(a.bold=1),e.read_shift(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break}var c=e.read_shift(1);c!=0&&(a.underline=c);var l=e.read_shift(1);l>0&&(a.family=l);var f=e.read_shift(1);switch(f>0&&(a.charset=f),e.l++,a.color=FE(e),e.read_shift(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break}return a.name=va(e),a}var AA=xa;function RA(e,t){var n=e.l+t,a=e.read_shift(2),i=e.read_shift(2);return e.l=n,{ixfe:a,numFmtId:i}}var DA=xa;function IA(e,t,n){var a={};a.NumberFmt=[];for(var i in vt)a.NumberFmt[i]=vt[i];a.CellXf=[],a.Fonts=[];var r=[],c=!1;return js(e,function(f,T,p){switch(p){case 44:a.NumberFmt[f[0]]=f[1],e0(f[1],f[0]);break;case 43:a.Fonts.push(f),f.color.theme!=null&&t&&t.themeElements&&t.themeElements.clrScheme&&(f.color.rgb=Uu(t.themeElements.clrScheme[f.color.theme].rgb,f.color.tint||0));break;case 1025:break;case 45:break;case 46:break;case 47:r[r.length-1]==617&&a.CellXf.push(f);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:c=!0;break;case 36:c=!1;break;case 37:r.push(p),c=!0;break;case 38:r.pop(),c=!1;break;default:if(T.T>0)r.push(p);else if(T.T<0)r.pop();else if(!c||n.WTF&&r[r.length-1]!=37)throw new Error("Unexpected record 0x"+p.toString(16))}}),a}var NA=["</a:lt1>","</a:dk1>","</a:lt2>","</a:dk2>","</a:accent1>","</a:accent2>","</a:accent3>","</a:accent4>","</a:accent5>","</a:accent6>","</a:hlink>","</a:folHlink>"];function OA(e,t,n){t.themeElements.clrScheme=[];var a={};(e[0].match(ya)||[]).forEach(function(i){var r=it(i);switch(r[0]){case"<a:clrScheme":case"</a:clrScheme>":break;case"<a:srgbClr":a.rgb=r.val;break;case"<a:sysClr":a.rgb=r.lastClr;break;case"<a:dk1>":case"</a:dk1>":case"<a:lt1>":case"</a:lt1>":case"<a:dk2>":case"</a:dk2>":case"<a:lt2>":case"</a:lt2>":case"<a:accent1>":case"</a:accent1>":case"<a:accent2>":case"</a:accent2>":case"<a:accent3>":case"</a:accent3>":case"<a:accent4>":case"</a:accent4>":case"<a:accent5>":case"</a:accent5>":case"<a:accent6>":case"</a:accent6>":case"<a:hlink>":case"</a:hlink>":case"<a:folHlink>":case"</a:folHlink>":r[0].charAt(1)==="/"?(t.themeElements.clrScheme[NA.indexOf(r[0])]=a,a={}):a.name=r[0].slice(3,r[0].length-1);break;default:if(n&&n.WTF)throw new Error("Unrecognized "+r[0]+" in clrScheme")}})}function MA(){}function jA(){}var FA=/<a:clrScheme([^>]*)>[\s\S]*<\/a:clrScheme>/,LA=/<a:fontScheme([^>]*)>[\s\S]*<\/a:fontScheme>/,PA=/<a:fmtScheme([^>]*)>[\s\S]*<\/a:fmtScheme>/;function _A(e,t,n){t.themeElements={};var a;[["clrScheme",FA,OA],["fontScheme",LA,MA],["fmtScheme",PA,jA]].forEach(function(i){if(!(a=e.match(i[1])))throw new Error(i[0]+" not found in themeElements");i[2](a,t,n)})}var qA=/<a:themeElements([^>]*)>[\s\S]*<\/a:themeElements>/;function yS(e,t){(!e||e.length===0)&&(e=BA());var n,a={};if(!(n=e.match(qA)))throw new Error("themeElements not found in theme");return _A(n[0],a,t),a.raw=e,a}function BA(e,t){var n=[N4];return n[n.length]='<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">',n[n.length]="<a:themeElements>",n[n.length]='<a:clrScheme name="Office">',n[n.length]='<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1>',n[n.length]='<a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>',n[n.length]='<a:dk2><a:srgbClr val="1F497D"/></a:dk2>',n[n.length]='<a:lt2><a:srgbClr val="EEECE1"/></a:lt2>',n[n.length]='<a:accent1><a:srgbClr val="4F81BD"/></a:accent1>',n[n.length]='<a:accent2><a:srgbClr val="C0504D"/></a:accent2>',n[n.length]='<a:accent3><a:srgbClr val="9BBB59"/></a:accent3>',n[n.length]='<a:accent4><a:srgbClr val="8064A2"/></a:accent4>',n[n.length]='<a:accent5><a:srgbClr val="4BACC6"/></a:accent5>',n[n.length]='<a:accent6><a:srgbClr val="F79646"/></a:accent6>',n[n.length]='<a:hlink><a:srgbClr val="0000FF"/></a:hlink>',n[n.length]='<a:folHlink><a:srgbClr val="800080"/></a:folHlink>',n[n.length]="</a:clrScheme>",n[n.length]='<a:fontScheme name="Office">',n[n.length]="<a:majorFont>",n[n.length]='<a:latin typeface="Cambria"/>',n[n.length]='<a:ea typeface=""/>',n[n.length]='<a:cs typeface=""/>',n[n.length]='<a:font script="Jpan" typeface="MS Pゴシック"/>',n[n.length]='<a:font script="Hang" typeface="맑은 고딕"/>',n[n.length]='<a:font script="Hans" typeface="宋体"/>',n[n.length]='<a:font script="Hant" typeface="新細明體"/>',n[n.length]='<a:font script="Arab" typeface="Times New Roman"/>',n[n.length]='<a:font script="Hebr" typeface="Times New Roman"/>',n[n.length]='<a:font script="Thai" typeface="Tahoma"/>',n[n.length]='<a:font script="Ethi" typeface="Nyala"/>',n[n.length]='<a:font script="Beng" typeface="Vrinda"/>',n[n.length]='<a:font script="Gujr" typeface="Shruti"/>',n[n.length]='<a:font script="Khmr" typeface="MoolBoran"/>',n[n.length]='<a:font script="Knda" typeface="Tunga"/>',n[n.length]='<a:font script="Guru" typeface="Raavi"/>',n[n.length]='<a:font script="Cans" typeface="Euphemia"/>',n[n.length]='<a:font script="Cher" typeface="Plantagenet Cherokee"/>',n[n.length]='<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>',n[n.length]='<a:font script="Tibt" typeface="Microsoft Himalaya"/>',n[n.length]='<a:font script="Thaa" typeface="MV Boli"/>',n[n.length]='<a:font script="Deva" typeface="Mangal"/>',n[n.length]='<a:font script="Telu" typeface="Gautami"/>',n[n.length]='<a:font script="Taml" typeface="Latha"/>',n[n.length]='<a:font script="Syrc" typeface="Estrangelo Edessa"/>',n[n.length]='<a:font script="Orya" typeface="Kalinga"/>',n[n.length]='<a:font script="Mlym" typeface="Kartika"/>',n[n.length]='<a:font script="Laoo" typeface="DokChampa"/>',n[n.length]='<a:font script="Sinh" typeface="Iskoola Pota"/>',n[n.length]='<a:font script="Mong" typeface="Mongolian Baiti"/>',n[n.length]='<a:font script="Viet" typeface="Times New Roman"/>',n[n.length]='<a:font script="Uigh" typeface="Microsoft Uighur"/>',n[n.length]='<a:font script="Geor" typeface="Sylfaen"/>',n[n.length]="</a:majorFont>",n[n.length]="<a:minorFont>",n[n.length]='<a:latin typeface="Calibri"/>',n[n.length]='<a:ea typeface=""/>',n[n.length]='<a:cs typeface=""/>',n[n.length]='<a:font script="Jpan" typeface="MS Pゴシック"/>',n[n.length]='<a:font script="Hang" typeface="맑은 고딕"/>',n[n.length]='<a:font script="Hans" typeface="宋体"/>',n[n.length]='<a:font script="Hant" typeface="新細明體"/>',n[n.length]='<a:font script="Arab" typeface="Arial"/>',n[n.length]='<a:font script="Hebr" typeface="Arial"/>',n[n.length]='<a:font script="Thai" typeface="Tahoma"/>',n[n.length]='<a:font script="Ethi" typeface="Nyala"/>',n[n.length]='<a:font script="Beng" typeface="Vrinda"/>',n[n.length]='<a:font script="Gujr" typeface="Shruti"/>',n[n.length]='<a:font script="Khmr" typeface="DaunPenh"/>',n[n.length]='<a:font script="Knda" typeface="Tunga"/>',n[n.length]='<a:font script="Guru" typeface="Raavi"/>',n[n.length]='<a:font script="Cans" typeface="Euphemia"/>',n[n.length]='<a:font script="Cher" typeface="Plantagenet Cherokee"/>',n[n.length]='<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>',n[n.length]='<a:font script="Tibt" typeface="Microsoft Himalaya"/>',n[n.length]='<a:font script="Thaa" typeface="MV Boli"/>',n[n.length]='<a:font script="Deva" typeface="Mangal"/>',n[n.length]='<a:font script="Telu" typeface="Gautami"/>',n[n.length]='<a:font script="Taml" typeface="Latha"/>',n[n.length]='<a:font script="Syrc" typeface="Estrangelo Edessa"/>',n[n.length]='<a:font script="Orya" typeface="Kalinga"/>',n[n.length]='<a:font script="Mlym" typeface="Kartika"/>',n[n.length]='<a:font script="Laoo" typeface="DokChampa"/>',n[n.length]='<a:font script="Sinh" typeface="Iskoola Pota"/>',n[n.length]='<a:font script="Mong" typeface="Mongolian Baiti"/>',n[n.length]='<a:font script="Viet" typeface="Arial"/>',n[n.length]='<a:font script="Uigh" typeface="Microsoft Uighur"/>',n[n.length]='<a:font script="Geor" typeface="Sylfaen"/>',n[n.length]="</a:minorFont>",n[n.length]="</a:fontScheme>",n[n.length]='<a:fmtScheme name="Office">',n[n.length]="<a:fillStyleLst>",n[n.length]='<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>',n[n.length]='<a:gradFill rotWithShape="1">',n[n.length]="<a:gsLst>",n[n.length]='<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs>',n[n.length]="</a:gsLst>",n[n.length]='<a:lin ang="16200000" scaled="1"/>',n[n.length]="</a:gradFill>",n[n.length]='<a:gradFill rotWithShape="1">',n[n.length]="<a:gsLst>",n[n.length]='<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/><a:satMod val="130000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/><a:satMod val="350000"/></a:schemeClr></a:gs>',n[n.length]="</a:gsLst>",n[n.length]='<a:lin ang="16200000" scaled="0"/>',n[n.length]="</a:gradFill>",n[n.length]="</a:fillStyleLst>",n[n.length]="<a:lnStyleLst>",n[n.length]='<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln>',n[n.length]='<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>',n[n.length]='<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>',n[n.length]="</a:lnStyleLst>",n[n.length]="<a:effectStyleLst>",n[n.length]="<a:effectStyle>",n[n.length]="<a:effectLst>",n[n.length]='<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw>',n[n.length]="</a:effectLst>",n[n.length]="</a:effectStyle>",n[n.length]="<a:effectStyle>",n[n.length]="<a:effectLst>",n[n.length]='<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>',n[n.length]="</a:effectLst>",n[n.length]="</a:effectStyle>",n[n.length]="<a:effectStyle>",n[n.length]="<a:effectLst>",n[n.length]='<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>',n[n.length]="</a:effectLst>",n[n.length]='<a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d>',n[n.length]='<a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d>',n[n.length]="</a:effectStyle>",n[n.length]="</a:effectStyleLst>",n[n.length]="<a:bgFillStyleLst>",n[n.length]='<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>',n[n.length]='<a:gradFill rotWithShape="1">',n[n.length]="<a:gsLst>",n[n.length]='<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs>',n[n.length]="</a:gsLst>",n[n.length]='<a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path>',n[n.length]="</a:gradFill>",n[n.length]='<a:gradFill rotWithShape="1">',n[n.length]="<a:gsLst>",n[n.length]='<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs>',n[n.length]='<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs>',n[n.length]="</a:gsLst>",n[n.length]='<a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path>',n[n.length]="</a:gradFill>",n[n.length]="</a:bgFillStyleLst>",n[n.length]="</a:fmtScheme>",n[n.length]="</a:themeElements>",n[n.length]="<a:objectDefaults>",n[n.length]="<a:spDef>",n[n.length]='<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="1"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="2"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></a:style>',n[n.length]="</a:spDef>",n[n.length]="<a:lnDef>",n[n.length]='<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="2"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="1"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="tx1"/></a:fontRef></a:style>',n[n.length]="</a:lnDef>",n[n.length]="</a:objectDefaults>",n[n.length]="<a:extraClrSchemeLst/>",n[n.length]="</a:theme>",n.join("")}function UA(e,t,n){var a=e.l+t,i=e.read_shift(4);if(i!==124226){if(!n.cellStyles){e.l=a;return}var r=e.slice(e.l);e.l=a;var c;try{c=I4(r,{type:"array"})}catch{return}var l=Ja(c,"theme/theme/theme1.xml",!0);if(l)return yS(l,n)}}function zA(e){return e.read_shift(4)}function WA(e){var t={};switch(t.xclrType=e.read_shift(2),t.nTintShade=e.read_shift(2),t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=VA(e,4);break;case 2:t.xclrValue=rS(e);break;case 3:t.xclrValue=zA(e);break;case 4:e.l+=4;break}return e.l+=8,t}function VA(e,t){return xa(e,t)}function HA(e,t){return xa(e,t)}function GA(e){var t=e.read_shift(2),n=e.read_shift(2)-4,a=[t];switch(t){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:a[1]=WA(e);break;case 6:a[1]=HA(e,n);break;case 14:case 15:a[1]=e.read_shift(n===1?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+n)}return a}function XA(e,t){var n=e.l+t;e.l+=2;var a=e.read_shift(2);e.l+=2;for(var i=e.read_shift(2),r=[];i-- >0;)r.push(GA(e,n-e.l));return{ixfe:a,ext:r}}function KA(e,t){t.forEach(function(n){n[0]})}function $A(e,t){return{flags:e.read_shift(4),version:e.read_shift(4),name:va(e)}}function YA(e){for(var t=[],n=e.read_shift(4);n-- >0;)t.push([e.read_shift(4),e.read_shift(4)]);return t}function ZA(e){return e.l+=4,e.read_shift(4)!=0}function JA(e,t,n){var a={Types:[],Cell:[],Value:[]},i=n||{},r=[],c=!1,l=2;return js(e,function(f,T,p){switch(p){case 335:a.Types.push({name:f.name});break;case 51:f.forEach(function(m){l==1?a.Cell.push({type:a.Types[m[0]-1].name,index:m[1]}):l==0&&a.Value.push({type:a.Types[m[0]-1].name,index:m[1]})});break;case 337:l=f?1:0;break;case 338:l=2;break;case 35:r.push(p),c=!0;break;case 36:r.pop(),c=!1;break;default:if(!T.T){if(!c||i.WTF&&r[r.length-1]!=35)throw new Error("Unexpected record 0x"+p.toString(16))}}}),a}function QA(e,t,n){var a={Types:[],Cell:[],Value:[]};if(!e)return a;var i=!1,r=2,c;return e.replace(ya,function(l){var f=it(l);switch(as(f[0])){case"<?xml":break;case"<metadata":case"</metadata>":break;case"<metadataTypes":case"</metadataTypes>":break;case"<metadataType":a.Types.push({name:f.name});break;case"</metadataType>":break;case"<futureMetadata":for(var T=0;T<a.Types.length;++T)a.Types[T].name==f.name&&(c=a.Types[T]);break;case"</futureMetadata>":break;case"<bk>":break;case"</bk>":break;case"<rc":r==1?a.Cell.push({type:a.Types[f.t-1].name,index:+f.v}):r==0&&a.Value.push({type:a.Types[f.t-1].name,index:+f.v});break;case"</rc>":break;case"<cellMetadata":r=1;break;case"</cellMetadata>":r=2;break;case"<valueMetadata":r=0;break;case"</valueMetadata>":r=2;break;case"<extLst":case"<extLst>":case"</extLst>":case"<extLst/>":break;case"<ext":i=!0;break;case"</ext>":i=!1;break;case"<rvb":if(!c)break;c.offsets||(c.offsets=[]),c.offsets.push(+f.i);break;default:if(!i&&n.WTF)throw new Error("unrecognized "+f[0]+" in metadata")}return l}),a}function eR(e){var t=[];if(!e)return t;var n=1;return(e.match(ya)||[]).forEach(function(a){var i=it(a);switch(i[0]){case"<?xml":break;case"<calcChain":case"<calcChain>":case"</calcChain>":break;case"<c":delete i[0],i.i?n=i.i:i.i=n,t.push(i);break}}),t}function tR(e){var t={};t.i=e.read_shift(4);var n={};n.r=e.read_shift(4),n.c=e.read_shift(4),t.r=ht(n);var a=e.read_shift(1);return a&2&&(t.l="1"),a&8&&(t.a="1"),t}function nR(e,t,n){var a=[];return js(e,function(r,c,l){switch(l){case 63:a.push(r);break;default:if(!c.T)throw new Error("Unexpected record 0x"+l.toString(16))}}),a}function aR(e,t,n,a){if(!e)return e;var i=a||{},r=!1;js(e,function(l,f,T){switch(T){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:r=!0;break;case 36:r=!1;break;default:if(!f.T){if(!r||i.WTF)throw new Error("Unexpected record 0x"+T.toString(16))}}},i)}function iR(e,t){if(!e)return"??";var n=(e.match(/<c:chart [^>]*r:id="([^"]*)"/)||["",""])[1];return t["!id"][n].Target}function rx(e,t,n,a){var i=Array.isArray(e),r;t.forEach(function(c){var l=Na(c.ref);if(i?(e[l.r]||(e[l.r]=[]),r=e[l.r][l.c]):r=e[c.ref],!r){r={t:"z"},i?e[l.r][l.c]=r:e[c.ref]=r;var f=xn(e["!ref"]||"BDWGO1000001:A1");f.s.r>l.r&&(f.s.r=l.r),f.e.r<l.r&&(f.e.r=l.r),f.s.c>l.c&&(f.s.c=l.c),f.e.c<l.c&&(f.e.c=l.c);var T=Lt(f);T!==e["!ref"]&&(e["!ref"]=T)}r.c||(r.c=[]);var p={a:c.author,t:c.t,r:c.r,T:n};c.h&&(p.h=c.h);for(var m=r.c.length-1;m>=0;--m){if(!n&&r.c[m].T)return;n&&!r.c[m].T&&r.c.splice(m,1)}if(n&&a){for(m=0;m<a.length;++m)if(p.a==a[m].id){p.a=a[m].name||p.a;break}}r.c.push(p)})}function sR(e,t){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var n=[],a=[],i=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);i&&i[1]&&i[1].split(/<\/\w*:?author>/).forEach(function(c){if(!(c===""||c.trim()==="")){var l=c.match(/<(?:\w+:)?author[^>]*>(.*)/);l&&n.push(l[1])}});var r=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return r&&r[1]&&r[1].split(/<\/\w*:?comment>/).forEach(function(c){if(!(c===""||c.trim()==="")){var l=c.match(/<(?:\w+:)?comment[^>]*>/);if(l){var f=it(l[0]),T={author:f.authorId&&n[f.authorId]||"sheetjsghost",ref:f.ref,guid:f.guid},p=Na(f.ref);if(!(t.sheetRows&&t.sheetRows<=p.r)){var m=c.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),g=!!m&&!!m[1]&&Xp(m[1])||{r:"",t:"",h:""};T.r=g.r,g.r=="<t></t>"&&(g.t=g.h=""),T.t=(g.t||"").replace(/\r\n/g,`
|
||
`).replace(/\r/g,`
|
||
`),t.cellHTML&&(T.h=g.h),a.push(T)}}}}),a}function rR(e,t){var n=[],a=!1,i={},r=0;return e.replace(ya,function(l,f){var T=it(l);switch(as(T[0])){case"<?xml":break;case"<ThreadedComments":break;case"</ThreadedComments>":break;case"<threadedComment":i={author:T.personId,guid:T.id,ref:T.ref,T:1};break;case"</threadedComment>":i.t!=null&&n.push(i);break;case"<text>":case"<text":r=f+l.length;break;case"</text>":i.t=e.slice(r,f).replace(/\r\n/g,`
|
||
`).replace(/\r/g,`
|
||
`);break;case"<mentions":case"<mentions>":a=!0;break;case"</mentions>":a=!1;break;case"<extLst":case"<extLst>":case"</extLst>":case"<extLst/>":break;case"<ext":a=!0;break;case"</ext>":a=!1;break;default:if(!a&&t.WTF)throw new Error("unrecognized "+T[0]+" in threaded comments")}return l}),n}function oR(e,t){var n=[],a=!1;return e.replace(ya,function(r){var c=it(r);switch(as(c[0])){case"<?xml":break;case"<personList":break;case"</personList>":break;case"<person":n.push({name:c.displayname,id:c.id});break;case"</person>":break;case"<extLst":case"<extLst>":case"</extLst>":case"<extLst/>":break;case"<ext":a=!0;break;case"</ext>":a=!1;break;default:if(!a&&t.WTF)throw new Error("unrecognized "+c[0]+" in threaded comments")}return r}),n}function cR(e){var t={};t.iauthor=e.read_shift(4);var n=f0(e);return t.rfx=n.s,t.ref=ht(n.s),e.l+=16,t}var lR=va;function uR(e,t){var n=[],a=[],i={},r=!1;return js(e,function(l,f,T){switch(T){case 632:a.push(l);break;case 635:i=l;break;case 637:i.t=l.t,i.h=l.h,i.r=l.r;break;case 636:if(i.author=a[i.iauthor],delete i.iauthor,t.sheetRows&&i.rfx&&t.sheetRows<=i.rfx.r)break;i.t||(i.t=""),delete i.rfx,n.push(i);break;case 3072:break;case 35:r=!0;break;case 36:r=!1;break;case 37:break;case 38:break;default:if(!f.T){if(!r||t.WTF)throw new Error("Unexpected record 0x"+T.toString(16))}}}),n}var dR="application/vnd.ms-office.vbaProject";function TR(e){var t=Ft.utils.cfb_new({root:"R"});return e.FullPaths.forEach(function(n,a){if(!(n.slice(-1)==="/"||!n.match(/_VBA_PROJECT_CUR/))){var i=n.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");Ft.utils.cfb_add(t,i,e.FileIndex[a].content)}}),Ft.write(t)}function fR(){return{"!type":"dialog"}}function hR(){return{"!type":"dialog"}}function pR(){return{"!type":"macro"}}function mR(){return{"!type":"macro"}}var To=(function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function n(a,i,r,c){var l=!1,f=!1;r.length==0?f=!0:r.charAt(0)=="["&&(f=!0,r=r.slice(1,-1)),c.length==0?l=!0:c.charAt(0)=="["&&(l=!0,c=c.slice(1,-1));var T=r.length>0?parseInt(r,10)|0:0,p=c.length>0?parseInt(c,10)|0:0;return l?p+=t.c:--p,f?T+=t.r:--T,i+(l?"":"$")+Un(p)+(f?"":"$")+ra(T)}return function(i,r){return t=r,i.replace(e,n)}})(),SS=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,gR=(function(){return function(t,n){return t.replace(SS,function(a,i,r,c,l,f){var T=Up(c)-(r?0:n.c),p=Bp(f)-(l?0:n.r),m=p==0?"":l?p+1:"["+p+"]",g=T==0?"":r?T+1:"["+T+"]";return i+"R"+m+"C"+g})}})();function bS(e,t){return e.replace(SS,function(n,a,i,r,c,l){return a+(i=="$"?i+r:Un(Up(r)+t.c))+(c=="$"?c+l:ra(Bp(l)+t.r))})}function vR(e,t,n){var a=Eo(t),i=a.s,r=Na(n),c={r:r.r-i.r,c:r.c-i.c};return bS(e,c)}function xR(e){return e.length!=1}function ox(e){return e.replace(/_xlfn\./g,"")}function Nn(e){e.l+=1}function mr(e,t){var n=e.read_shift(2);return[n&16383,n>>14&1,n>>15&1]}function wS(e,t,n){var a=2;if(n){if(n.biff>=2&&n.biff<=5)return CS(e);n.biff==12&&(a=4)}var i=e.read_shift(a),r=e.read_shift(a),c=mr(e),l=mr(e);return{s:{r:i,c:c[0],cRel:c[1],rRel:c[2]},e:{r,c:l[0],cRel:l[1],rRel:l[2]}}}function CS(e){var t=mr(e),n=mr(e),a=e.read_shift(1),i=e.read_shift(1);return{s:{r:t[0],c:a,cRel:t[1],rRel:t[2]},e:{r:n[0],c:i,cRel:n[1],rRel:n[2]}}}function yR(e,t,n){if(n.biff<8)return CS(e);var a=e.read_shift(n.biff==12?4:2),i=e.read_shift(n.biff==12?4:2),r=mr(e),c=mr(e);return{s:{r:a,c:r[0],cRel:r[1],rRel:r[2]},e:{r:i,c:c[0],cRel:c[1],rRel:c[2]}}}function ES(e,t,n){if(n&&n.biff>=2&&n.biff<=5)return SR(e);var a=e.read_shift(n&&n.biff==12?4:2),i=mr(e);return{r:a,c:i[0],cRel:i[1],rRel:i[2]}}function SR(e){var t=mr(e),n=e.read_shift(1);return{r:t[0],c:n,cRel:t[1],rRel:t[2]}}function bR(e){var t=e.read_shift(2),n=e.read_shift(2);return{r:t,c:n&255,fQuoted:!!(n&16384),cRel:n>>15,rRel:n>>15}}function wR(e,t,n){var a=n&&n.biff?n.biff:8;if(a>=2&&a<=5)return CR(e);var i=e.read_shift(a>=12?4:2),r=e.read_shift(2),c=(r&16384)>>14,l=(r&32768)>>15;if(r&=16383,l==1)for(;i>524287;)i-=1048576;if(c==1)for(;r>8191;)r=r-16384;return{r:i,c:r,cRel:c,rRel:l}}function CR(e){var t=e.read_shift(2),n=e.read_shift(1),a=(t&32768)>>15,i=(t&16384)>>14;return t&=16383,a==1&&t>=8192&&(t=t-16384),i==1&&n>=128&&(n=n-256),{r:t,c:n,cRel:i,rRel:a}}function ER(e,t,n){var a=(e[e.l++]&96)>>5,i=wS(e,n.biff>=2&&n.biff<=5?6:8,n);return[a,i]}function kR(e,t,n){var a=(e[e.l++]&96)>>5,i=e.read_shift(2,"i"),r=8;if(n)switch(n.biff){case 5:e.l+=12,r=6;break;case 12:r=12;break}var c=wS(e,r,n);return[a,i,c]}function AR(e,t,n){var a=(e[e.l++]&96)>>5;return e.l+=n&&n.biff>8?12:n.biff<8?6:8,[a]}function RR(e,t,n){var a=(e[e.l++]&96)>>5,i=e.read_shift(2),r=8;if(n)switch(n.biff){case 5:e.l+=12,r=6;break;case 12:r=12;break}return e.l+=r,[a,i]}function DR(e,t,n){var a=(e[e.l++]&96)>>5,i=yR(e,t-1,n);return[a,i]}function IR(e,t,n){var a=(e[e.l++]&96)>>5;return e.l+=n.biff==2?6:n.biff==12?14:7,[a]}function cx(e){var t=e[e.l+1]&1,n=1;return e.l+=4,[t,n]}function NR(e,t,n){e.l+=2;for(var a=e.read_shift(n&&n.biff==2?1:2),i=[],r=0;r<=a;++r)i.push(e.read_shift(n&&n.biff==2?1:2));return i}function OR(e,t,n){var a=e[e.l+1]&255?1:0;return e.l+=2,[a,e.read_shift(n&&n.biff==2?1:2)]}function MR(e,t,n){var a=e[e.l+1]&255?1:0;return e.l+=2,[a,e.read_shift(n&&n.biff==2?1:2)]}function jR(e){var t=e[e.l+1]&255?1:0;return e.l+=2,[t,e.read_shift(2)]}function FR(e,t,n){var a=e[e.l+1]&255?1:0;return e.l+=n&&n.biff==2?3:4,[a]}function kS(e){var t=e.read_shift(1),n=e.read_shift(1);return[t,n]}function LR(e){return e.read_shift(2),kS(e)}function PR(e){return e.read_shift(2),kS(e)}function _R(e,t,n){var a=(e[e.l]&96)>>5;e.l+=1;var i=ES(e,0,n);return[a,i]}function qR(e,t,n){var a=(e[e.l]&96)>>5;e.l+=1;var i=wR(e,0,n);return[a,i]}function BR(e,t,n){var a=(e[e.l]&96)>>5;e.l+=1;var i=e.read_shift(2);n&&n.biff==5&&(e.l+=12);var r=ES(e,0,n);return[a,i,r]}function UR(e,t,n){var a=(e[e.l]&96)>>5;e.l+=1;var i=e.read_shift(n&&n.biff<=3?1:2);return[zD[i],DS[i],a]}function zR(e,t,n){var a=e[e.l++],i=e.read_shift(1),r=n&&n.biff<=3?[a==88?-1:0,e.read_shift(1)]:WR(e);return[i,(r[0]===0?DS:UD)[r[1]]]}function WR(e){return[e[e.l+1]>>7,e.read_shift(2)&32767]}function VR(e,t,n){e.l+=n&&n.biff==2?3:4}function HR(e,t,n){if(e.l++,n&&n.biff==12)return[e.read_shift(4,"i"),0];var a=e.read_shift(2),i=e.read_shift(n&&n.biff==2?1:2);return[a,i]}function GR(e){return e.l++,h0[e.read_shift(1)]}function XR(e){return e.l++,e.read_shift(2)}function KR(e){return e.l++,e.read_shift(1)!==0}function $R(e){return e.l++,pa(e)}function YR(e,t,n){return e.l++,E1(e,t-1,n)}function ZR(e,t){var n=[e.read_shift(1)];if(t==12)switch(n[0]){case 2:n[0]=4;break;case 4:n[0]=16;break;case 0:n[0]=1;break;case 1:n[0]=2;break}switch(n[0]){case 4:n[1]=Cn(e,1)?"TRUE":"FALSE",t!=12&&(e.l+=7);break;case 37:case 16:n[1]=h0[e[e.l]],e.l+=t==12?4:8;break;case 0:e.l+=8;break;case 1:n[1]=pa(e);break;case 2:n[1]=p0(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error("Bad SerAr: "+n[0])}return n}function JR(e,t,n){for(var a=e.read_shift(n.biff==12?4:2),i=[],r=0;r!=a;++r)i.push((n.biff==12?f0:ld)(e));return i}function QR(e,t,n){var a=0,i=0;n.biff==12?(a=e.read_shift(4),i=e.read_shift(4)):(i=1+e.read_shift(1),a=1+e.read_shift(2)),n.biff>=2&&n.biff<8&&(--a,--i==0&&(i=256));for(var r=0,c=[];r!=a&&(c[r]=[]);++r)for(var l=0;l!=i;++l)c[r][l]=ZR(e,n.biff);return c}function eD(e,t,n){var a=e.read_shift(1)>>>5&3,i=!n||n.biff>=8?4:2,r=e.read_shift(i);switch(n.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12;break}return[a,0,r]}function tD(e,t,n){if(n.biff==5)return nD(e);var a=e.read_shift(1)>>>5&3,i=e.read_shift(2),r=e.read_shift(4);return[a,i,r]}function nD(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2,"i");e.l+=8;var a=e.read_shift(2);return e.l+=12,[t,n,a]}function aD(e,t,n){var a=e.read_shift(1)>>>5&3;e.l+=n&&n.biff==2?3:4;var i=e.read_shift(n&&n.biff==2?1:2);return[a,i]}function iD(e,t,n){var a=e.read_shift(1)>>>5&3,i=e.read_shift(n&&n.biff==2?1:2);return[a,i]}function sD(e,t,n){var a=e.read_shift(1)>>>5&3;return e.l+=4,n.biff<8&&e.l--,n.biff==12&&(e.l+=2),[a]}function rD(e,t,n){var a=(e[e.l++]&96)>>5,i=e.read_shift(2),r=4;if(n)switch(n.biff){case 5:r=15;break;case 12:r=6;break}return e.l+=r,[a,i]}var oD=xa,cD=xa,lD=xa;function A1(e,t,n){return e.l+=2,[bR(e)]}function $p(e){return e.l+=6,[]}var uD=A1,dD=$p,TD=$p,fD=A1;function AS(e){return e.l+=2,[jn(e),e.read_shift(2)&1]}var hD=A1,pD=AS,mD=$p,gD=A1,vD=A1,xD=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"];function yD(e){e.l+=2;var t=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(4),i=e.read_shift(2),r=e.read_shift(2),c=xD[n>>2&31];return{ixti:t,coltype:n&3,rt:c,idx:a,c:i,C:r}}function SD(e){return e.l+=2,[e.read_shift(4)]}function bD(e,t,n){return e.l+=5,e.l+=2,e.l+=n.biff==2?1:4,["PTGSHEET"]}function wD(e,t,n){return e.l+=n.biff==2?4:5,["PTGENDSHEET"]}function CD(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2);return[t,n]}function ED(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2);return[t,n]}function kD(e){return e.l+=4,[0,0]}var lx={1:{n:"PtgExp",f:HR},2:{n:"PtgTbl",f:lD},3:{n:"PtgAdd",f:Nn},4:{n:"PtgSub",f:Nn},5:{n:"PtgMul",f:Nn},6:{n:"PtgDiv",f:Nn},7:{n:"PtgPower",f:Nn},8:{n:"PtgConcat",f:Nn},9:{n:"PtgLt",f:Nn},10:{n:"PtgLe",f:Nn},11:{n:"PtgEq",f:Nn},12:{n:"PtgGe",f:Nn},13:{n:"PtgGt",f:Nn},14:{n:"PtgNe",f:Nn},15:{n:"PtgIsect",f:Nn},16:{n:"PtgUnion",f:Nn},17:{n:"PtgRange",f:Nn},18:{n:"PtgUplus",f:Nn},19:{n:"PtgUminus",f:Nn},20:{n:"PtgPercent",f:Nn},21:{n:"PtgParen",f:Nn},22:{n:"PtgMissArg",f:Nn},23:{n:"PtgStr",f:YR},26:{n:"PtgSheet",f:bD},27:{n:"PtgEndSheet",f:wD},28:{n:"PtgErr",f:GR},29:{n:"PtgBool",f:KR},30:{n:"PtgInt",f:XR},31:{n:"PtgNum",f:$R},32:{n:"PtgArray",f:IR},33:{n:"PtgFunc",f:UR},34:{n:"PtgFuncVar",f:zR},35:{n:"PtgName",f:eD},36:{n:"PtgRef",f:_R},37:{n:"PtgArea",f:ER},38:{n:"PtgMemArea",f:aD},39:{n:"PtgMemErr",f:oD},40:{n:"PtgMemNoMem",f:cD},41:{n:"PtgMemFunc",f:iD},42:{n:"PtgRefErr",f:sD},43:{n:"PtgAreaErr",f:AR},44:{n:"PtgRefN",f:qR},45:{n:"PtgAreaN",f:DR},46:{n:"PtgMemAreaN",f:CD},47:{n:"PtgMemNoMemN",f:ED},57:{n:"PtgNameX",f:tD},58:{n:"PtgRef3d",f:BR},59:{n:"PtgArea3d",f:kR},60:{n:"PtgRefErr3d",f:rD},61:{n:"PtgAreaErr3d",f:RR},255:{}},AD={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61},RD={1:{n:"PtgElfLel",f:AS},2:{n:"PtgElfRw",f:gD},3:{n:"PtgElfCol",f:uD},6:{n:"PtgElfRwV",f:vD},7:{n:"PtgElfColV",f:fD},10:{n:"PtgElfRadical",f:hD},11:{n:"PtgElfRadicalS",f:mD},13:{n:"PtgElfColS",f:dD},15:{n:"PtgElfColSV",f:TD},16:{n:"PtgElfRadicalLel",f:pD},25:{n:"PtgList",f:yD},29:{n:"PtgSxName",f:SD},255:{}},DD={0:{n:"PtgAttrNoop",f:kD},1:{n:"PtgAttrSemi",f:FR},2:{n:"PtgAttrIf",f:MR},4:{n:"PtgAttrChoose",f:NR},8:{n:"PtgAttrGoto",f:OR},16:{n:"PtgAttrSum",f:VR},32:{n:"PtgAttrBaxcel",f:cx},33:{n:"PtgAttrBaxcel",f:cx},64:{n:"PtgAttrSpace",f:LR},65:{n:"PtgAttrSpaceSemi",f:PR},128:{n:"PtgAttrIfError",f:jR},255:{}};function R1(e,t,n,a){if(a.biff<8)return xa(e,t);for(var i=e.l+t,r=[],c=0;c!==n.length;++c)switch(n[c][0]){case"PtgArray":n[c][1]=QR(e,0,a),r.push(n[c][1]);break;case"PtgMemArea":n[c][2]=JR(e,n[c][1],a),r.push(n[c][2]);break;case"PtgExp":a&&a.biff==12&&(n[c][1][1]=e.read_shift(4),r.push(n[c][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+n[c][0]}return t=i-e.l,t!==0&&r.push(xa(e,t)),r}function D1(e,t,n){for(var a=e.l+t,i,r,c=[];a!=e.l;)t=a-e.l,r=e[e.l],i=lx[r]||lx[AD[r]],(r===24||r===25)&&(i=(r===24?RD:DD)[e[e.l+1]]),!i||!i.f?xa(e,t):c.push([i.n,i.f(e,t,n)]);return c}function ID(e){for(var t=[],n=0;n<e.length;++n){for(var a=e[n],i=[],r=0;r<a.length;++r){var c=a[r];c?c[0]===2?i.push('"'+c[1].replace(/"/g,'""')+'"'):i.push(c[1]):i.push("")}t.push(i.join(","))}return t.join(";")}var ND={PtgAdd:"+",PtgConcat:"&",PtgDiv:"/",PtgEq:"=",PtgGe:">=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function OD(e,t){if(!e&&!(t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(e)?"'"+e+"'":e}function RS(e,t,n){if(!e)return"SH33TJSERR0";if(n.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return"SH33TJSERR6";var a=e.XTI[t];if(n.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),t==0?"":e.XTI[t-1];if(!a)return"SH33TJSERR1";var i="";if(n.biff>8)switch(e[a[0]][0]){case 357:return i=a[1]==-1?"#REF":e.SheetNames[a[1]],a[1]==a[2]?i:i+":"+e.SheetNames[a[2]];case 358:return n.SID!=null?e.SheetNames[n.SID]:"SH33TJSSAME"+e[a[0]][0];default:return"SH33TJSSRC"+e[a[0]][0]}switch(e[a[0]][0][0]){case 1025:return i=a[1]==-1?"#REF":e.SheetNames[a[1]]||"SH33TJSERR3",a[1]==a[2]?i:i+":"+e.SheetNames[a[2]];case 14849:return e[a[0]].slice(1).map(function(r){return r.Name}).join(";;");default:return e[a[0]][0][3]?(i=a[1]==-1?"#REF":e[a[0]][0][3][a[1]]||"SH33TJSERR4",a[1]==a[2]?i:i+":"+e[a[0]][0][3][a[2]]):"SH33TJSERR2"}}function ux(e,t,n){var a=RS(e,t,n);return a=="#REF"?a:OD(a,n)}function ha(e,t,n,a,i){var r=i&&i.biff||8,c={s:{c:0,r:0}},l=[],f,T,p,m=0,g=0,S,x="";if(!e[0]||!e[0][0])return"";for(var y=-1,w="",C=0,k=e[0].length;C<k;++C){var E=e[0][C];switch(E[0]){case"PtgUminus":l.push("-"+l.pop());break;case"PtgUplus":l.push("+"+l.pop());break;case"PtgPercent":l.push(l.pop()+"%");break;case"PtgAdd":case"PtgConcat":case"PtgDiv":case"PtgEq":case"PtgGe":case"PtgGt":case"PtgLe":case"PtgLt":case"PtgMul":case"PtgNe":case"PtgPower":case"PtgSub":if(f=l.pop(),T=l.pop(),y>=0){switch(e[0][y][1][0]){case 0:w=gn(" ",e[0][y][1][1]);break;case 1:w=gn("\r",e[0][y][1][1]);break;default:if(w="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][y][1][0])}T=T+w,y=-1}l.push(T+ND[E[0]]+f);break;case"PtgIsect":f=l.pop(),T=l.pop(),l.push(T+" "+f);break;case"PtgUnion":f=l.pop(),T=l.pop(),l.push(T+","+f);break;case"PtgRange":f=l.pop(),T=l.pop(),l.push(T+":"+f);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":p=Vc(E[1][1],c,i),l.push(Hc(p,r));break;case"PtgRefN":p=n?Vc(E[1][1],n,i):E[1][1],l.push(Hc(p,r));break;case"PtgRef3d":m=E[1][1],p=Vc(E[1][2],c,i),x=ux(a,m,i),l.push(x+"!"+Hc(p,r));break;case"PtgFunc":case"PtgFuncVar":var O=E[1][0],N=E[1][1];O||(O=0),O&=127;var B=O==0?[]:l.slice(-O);l.length-=O,N==="User"&&(N=B.shift()),l.push(N+"("+B.join(",")+")");break;case"PtgBool":l.push(E[1]?"TRUE":"FALSE");break;case"PtgInt":l.push(E[1]);break;case"PtgNum":l.push(String(E[1]));break;case"PtgStr":l.push('"'+E[1].replace(/"/g,'""')+'"');break;case"PtgErr":l.push(E[1]);break;case"PtgAreaN":S=Vv(E[1][1],n?{s:n}:c,i),l.push(Lf(S,i));break;case"PtgArea":S=Vv(E[1][1],c,i),l.push(Lf(S,i));break;case"PtgArea3d":m=E[1][1],S=E[1][2],x=ux(a,m,i),l.push(x+"!"+Lf(S,i));break;case"PtgAttrSum":l.push("SUM("+l.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":g=E[1][2];var A=(a.names||[])[g-1]||(a[0]||[])[g],z=A?A.Name:"SH33TJSNAME"+String(g);z&&z.slice(0,6)=="_xlfn."&&!i.xlfn&&(z=z.slice(6)),l.push(z);break;case"PtgNameX":var P=E[1][1];g=E[1][2];var K;if(i.biff<=5)P<0&&(P=-P),a[P]&&(K=a[P][g]);else{var I="";if(((a[P]||[])[0]||[])[0]==14849||(((a[P]||[])[0]||[])[0]==1025?a[P][g]&&a[P][g].itab>0&&(I=a.SheetNames[a[P][g].itab-1]+"!"):I=a.SheetNames[g-1]+"!"),a[P]&&a[P][g])I+=a[P][g].Name;else if(a[0]&&a[0][g])I+=a[0][g].Name;else{var L=(RS(a,P,i)||"").split(";;");L[g-1]?I=L[g-1]:I+="SH33TJSERRX"}l.push(I);break}K||(K={Name:"SH33TJSERRY"}),l.push(K.Name);break;case"PtgParen":var le="(",ue=")";if(y>=0){switch(w="",e[0][y][1][0]){case 2:le=gn(" ",e[0][y][1][1])+le;break;case 3:le=gn("\r",e[0][y][1][1])+le;break;case 4:ue=gn(" ",e[0][y][1][1])+ue;break;case 5:ue=gn("\r",e[0][y][1][1])+ue;break;default:if(i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][y][1][0])}y=-1}l.push(le+l.pop()+ue);break;case"PtgRefErr":l.push("#REF!");break;case"PtgRefErr3d":l.push("#REF!");break;case"PtgExp":p={c:E[1][1],r:E[1][0]};var X={c:n.c,r:n.r};if(a.sharedf[ht(p)]){var F=a.sharedf[ht(p)];l.push(ha(F,c,X,a,i))}else{var re=!1;for(f=0;f!=a.arrayf.length;++f)if(T=a.arrayf[f],!(p.c<T[0].s.c||p.c>T[0].e.c)&&!(p.r<T[0].s.r||p.r>T[0].e.r)){l.push(ha(T[1],c,X,a,i)),re=!0;break}re||l.push(E[1])}break;case"PtgArray":l.push("{"+ID(E[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":y=C;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":l.push("");break;case"PtgAreaErr":l.push("#REF!");break;case"PtgAreaErr3d":l.push("#REF!");break;case"PtgList":l.push("Table"+E[1].idx+"[#"+E[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":break;case"PtgMemFunc":break;case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(E));default:throw new Error("Unrecognized Formula Token: "+String(E))}var me=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(i.biff!=3&&y>=0&&me.indexOf(e[0][C][0])==-1){E=e[0][y];var te=!0;switch(E[1][0]){case 4:te=!1;case 0:w=gn(" ",E[1][1]);break;case 5:te=!1;case 1:w=gn("\r",E[1][1]);break;default:if(w="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+E[1][0])}l.push((te?w:"")+l.pop()+(te?"":w)),y=-1}}if(l.length>1&&i.WTF)throw new Error("bad formula stack");return l[0]}function MD(e,t,n){var a=e.l+t,i=n.biff==2?1:2,r,c=e.read_shift(i);if(c==65535)return[[],xa(e,t-2)];var l=D1(e,c,n);return t!==c+i&&(r=R1(e,t-c-i,l,n)),e.l=a,[l,r]}function jD(e,t,n){var a=e.l+t,i=n.biff==2?1:2,r,c=e.read_shift(i);if(c==65535)return[[],xa(e,t-2)];var l=D1(e,c,n);return t!==c+i&&(r=R1(e,t-c-i,l,n)),e.l=a,[l,r]}function FD(e,t,n,a){var i=e.l+t,r=D1(e,a,n),c;return i!==e.l&&(c=R1(e,i-e.l,r,n)),[r,c]}function LD(e,t,n){var a=e.l+t,i,r=e.read_shift(2),c=D1(e,r,n);return r==65535?[[],xa(e,t-2)]:(t!==r+2&&(i=R1(e,a-r-2,c,n)),[c,i])}function PD(e){var t;if(Rs(e,e.l+6)!==65535)return[pa(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return t=e[e.l+2]===1,e.l+=8,[t,"b"];case 2:return t=e[e.l+2],e.l+=8,[t,"e"];case 3:return e.l+=8,["","s"]}return[]}function qf(e,t,n){var a=e.l+t,i=is(e);n.biff==2&&++e.l;var r=PD(e),c=e.read_shift(1);n.biff!=2&&(e.read_shift(1),n.biff>=5&&e.read_shift(4));var l=jD(e,a-e.l,n);return{cell:i,val:r[0],formula:l,shared:c>>3&1,tt:r[1]}}function ud(e,t,n){var a=e.read_shift(4),i=D1(e,a,n),r=e.read_shift(4),c=r>0?R1(e,r,i,n):null;return[i,c]}var _D=ud,dd=ud,qD=ud,BD=ud,UD={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},DS={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},zD={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};function dx(e){return e.slice(0,3)=="of:"&&(e=e.slice(3)),e.charCodeAt(0)==61&&(e=e.slice(1),e.charCodeAt(0)==61&&(e=e.slice(1))),e=e.replace(/COM\.MICROSOFT\./g,""),e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(t,n){return n.replace(/\./g,"")}),e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1"),e.replace(/[;~]/g,",").replace(/\|/g,";")}function Bf(e){var t=e.split(":"),n=t[0].split(".")[0];return[n,t[0].split(".")[1]+(t.length>1?":"+(t[1].split(".")[1]||t[1].split(".")[0]):"")]}var $c={},fo={};function Yc(e,t){if(e){var n=[.7,.7,.75,.75,.3,.3];t=="xlml"&&(n=[1,1,1,1,.5,.5]),e.left==null&&(e.left=n[0]),e.right==null&&(e.right=n[1]),e.top==null&&(e.top=n[2]),e.bottom==null&&(e.bottom=n[3]),e.header==null&&(e.header=n[4]),e.footer==null&&(e.footer=n[5])}}function IS(e,t,n,a,i,r){try{a.cellNF&&(e.z=vt[t])}catch(l){if(a.WTF)throw l}if(!(e.t==="z"&&!a.cellStyles)){if(e.t==="d"&&typeof e.v=="string"&&(e.v=Yn(e.v)),(!a||a.cellText!==!1)&&e.t!=="z")try{if(vt[t]==null&&e0(WC[t]||"General",t),e.t==="e")e.w=e.w||h0[e.v];else if(t===0)if(e.t==="n")(e.v|0)===e.v?e.w=e.v.toString(10):e.w=a1(e.v);else if(e.t==="d"){var c=Ma(e.v);(c|0)===c?e.w=c.toString(10):e.w=a1(c)}else{if(e.v===void 0)return"";e.w=i0(e.v,fo)}else e.t==="d"?e.w=xi(t,Ma(e.v),fo):e.w=xi(t,e.v,fo)}catch(l){if(a.WTF)throw l}if(a.cellStyles&&n!=null)try{e.s=r.Fills[n],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=Uu(i.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),a.WTF&&(e.s.fgColor.raw_rgb=i.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=Uu(i.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),a.WTF&&(e.s.bgColor.raw_rgb=i.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(l){if(a.WTF&&r.Fills)throw l}}}function WD(e,t){var n=xn(t);n.s.r<=n.e.r&&n.s.c<=n.e.c&&n.s.r>=0&&n.s.c>=0&&(e["!ref"]=Lt(n))}var VD=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g,HD=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,GD=/<(?:\w:)?hyperlink [^>]*>/mg,XD=/"(\w*:\w*)"/,KD=/<(?:\w:)?col\b[^>]*[\/]?>/g,$D=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,YD=/<(?:\w:)?pageMargins[^>]*\/>/g,NS=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,ZD=/<(?:\w:)?sheetPr[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetPr)>/,JD=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function QD(e,t,n,a,i,r,c){if(!e)return e;a||(a={"!id":{}});var l=t.dense?[]:{},f={s:{r:2e6,c:2e6},e:{r:0,c:0}},T="",p="",m=e.match(HD);m?(T=e.slice(0,m.index),p=e.slice(m.index+m[0].length)):T=p=e;var g=T.match(NS);g?Yp(g[0],l,i,n):(g=T.match(ZD))&&eI(g[0],g[1]||"",l,i,n);var S=(T.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(S>0){var x=T.slice(S,S+50).match(XD);x&&WD(l,x[1])}var y=T.match(JD);y&&y[1]&&rI(y[1],i);var w=[];if(t.cellStyles){var C=T.match(KD);C&&aI(w,C)}m&&oI(m[1],l,t,f,r,c);var k=p.match($D);k&&(l["!autofilter"]=iI(k[0]));var E=[],O=p.match(VD);if(O)for(S=0;S!=O.length;++S)E[S]=xn(O[S].slice(O[S].indexOf('"')+1));var N=p.match(GD);N&&tI(l,N,a);var B=p.match(YD);if(B&&(l["!margins"]=nI(it(B[0]))),!l["!ref"]&&f.e.c>=f.s.c&&f.e.r>=f.s.r&&(l["!ref"]=Lt(f)),t.sheetRows>0&&l["!ref"]){var A=xn(l["!ref"]);t.sheetRows<=+A.e.r&&(A.e.r=t.sheetRows-1,A.e.r>f.e.r&&(A.e.r=f.e.r),A.e.r<A.s.r&&(A.s.r=A.e.r),A.e.c>f.e.c&&(A.e.c=f.e.c),A.e.c<A.s.c&&(A.s.c=A.e.c),l["!fullref"]=l["!ref"],l["!ref"]=Lt(A))}return w.length>0&&(l["!cols"]=w),E.length>0&&(l["!merges"]=E),l}function Yp(e,t,n,a){var i=it(e);n.Sheets[a]||(n.Sheets[a]={}),i.codeName&&(n.Sheets[a].CodeName=Ut(rn(i.codeName)))}function eI(e,t,n,a,i){Yp(e.slice(0,e.indexOf(">")),n,a,i)}function tI(e,t,n){for(var a=Array.isArray(e),i=0;i!=t.length;++i){var r=it(rn(t[i]),!0);if(!r.ref)return;var c=((n||{})["!id"]||[])[r.id];c?(r.Target=c.Target,r.location&&(r.Target+="#"+Ut(r.location))):(r.Target="#"+Ut(r.location),c={Target:r.Target,TargetMode:"Internal"}),r.Rel=c,r.tooltip&&(r.Tooltip=r.tooltip,delete r.tooltip);for(var l=xn(r.ref),f=l.s.r;f<=l.e.r;++f)for(var T=l.s.c;T<=l.e.c;++T){var p=ht({c:T,r:f});a?(e[f]||(e[f]=[]),e[f][T]||(e[f][T]={t:"z",v:void 0}),e[f][T].l=r):(e[p]||(e[p]={t:"z",v:void 0}),e[p].l=r)}}}function nI(e){var t={};return["left","right","top","bottom","header","footer"].forEach(function(n){e[n]&&(t[n]=parseFloat(e[n]))}),t}function aI(e,t){for(var n=!1,a=0;a!=t.length;++a){var i=it(t[a],!0);i.hidden&&(i.hidden=dn(i.hidden));var r=parseInt(i.min,10)-1,c=parseInt(i.max,10)-1;for(i.outlineLevel&&(i.level=+i.outlineLevel||0),delete i.min,delete i.max,i.width=+i.width,!n&&i.width&&(n=!0,Kp(i.width)),yo(i);r<=c;)e[r++]=sa(i)}}function iI(e){var t={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return t}var sI=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;function rI(e,t){t.Views||(t.Views=[{}]),(e.match(sI)||[]).forEach(function(n,a){var i=it(n);t.Views[a]||(t.Views[a]={}),+i.zoomScale&&(t.Views[a].zoom=+i.zoomScale),dn(i.rightToLeft)&&(t.Views[a].RTL=!0)})}var oI=(function(){var e=/<(?:\w+:)?c[ \/>]/,t=/<\/(?:\w+:)?row>/,n=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,i=/ref=["']([^"']*)["']/,r=i1("v"),c=i1("f");return function(f,T,p,m,g,S){for(var x=0,y="",w=[],C=[],k=0,E=0,O=0,N="",B,A,z=0,P=0,K,I,L=0,le=0,ue=Array.isArray(S.CellXf),X,F=[],re=[],me=Array.isArray(T),te=[],Ce={},ee=!1,M=!!p.sheetStubs,Y=f.split(t),Z=0,J=Y.length;Z!=J;++Z){y=Y[Z].trim();var he=y.length;if(he!==0){var ge=0;e:for(x=0;x<he;++x)switch(y[x]){case">":if(y[x-1]!="/"){++x;break e}if(p&&p.cellStyles){if(A=it(y.slice(ge,x),!0),z=A.r!=null?parseInt(A.r,10):z+1,P=-1,p.sheetRows&&p.sheetRows<z)continue;Ce={},ee=!1,A.ht&&(ee=!0,Ce.hpt=parseFloat(A.ht),Ce.hpx=c1(Ce.hpt)),A.hidden=="1"&&(ee=!0,Ce.hidden=!0),A.outlineLevel!=null&&(ee=!0,Ce.level=+A.outlineLevel),ee&&(te[z-1]=Ce)}break;case"<":ge=x;break}if(ge>=x)break;if(A=it(y.slice(ge,x),!0),z=A.r!=null?parseInt(A.r,10):z+1,P=-1,!(p.sheetRows&&p.sheetRows<z)){m.s.r>z-1&&(m.s.r=z-1),m.e.r<z-1&&(m.e.r=z-1),p&&p.cellStyles&&(Ce={},ee=!1,A.ht&&(ee=!0,Ce.hpt=parseFloat(A.ht),Ce.hpx=c1(Ce.hpt)),A.hidden=="1"&&(ee=!0,Ce.hidden=!0),A.outlineLevel!=null&&(ee=!0,Ce.level=+A.outlineLevel),ee&&(te[z-1]=Ce)),w=y.slice(x).split(e);for(var de=0;de!=w.length&&w[de].trim().charAt(0)=="<";++de);for(w=w.slice(de),x=0;x!=w.length;++x)if(y=w[x].trim(),y.length!==0){if(C=y.match(n),k=x,E=0,O=0,y="<c "+(y.slice(0,1)=="<"?">":"")+y,C!=null&&C.length===2){for(k=0,N=C[1],E=0;E!=N.length&&!((O=N.charCodeAt(E)-64)<1||O>26);++E)k=26*k+O;--k,P=k}else++P;for(E=0;E!=y.length&&y.charCodeAt(E)!==62;++E);if(++E,A=it(y.slice(0,E),!0),A.r||(A.r=ht({r:z-1,c:P})),N=y.slice(E),B={t:""},(C=N.match(r))!=null&&C[1]!==""&&(B.v=Ut(C[1])),p.cellFormula){if((C=N.match(c))!=null&&C[1]!==""){if(B.f=Ut(rn(C[1])).replace(/\r\n/g,`
|
||
`),p.xlfn||(B.f=ox(B.f)),C[0].indexOf('t="array"')>-1)B.F=(N.match(i)||[])[1],B.F.indexOf(":")>-1&&F.push([xn(B.F),B.F]);else if(C[0].indexOf('t="shared"')>-1){I=it(C[0]);var fe=Ut(rn(C[1]));p.xlfn||(fe=ox(fe)),re[parseInt(I.si,10)]=[I,fe,A.r]}}else(C=N.match(/<f[^>]*\/>/))&&(I=it(C[0]),re[I.si]&&(B.f=vR(re[I.si][1],re[I.si][2],A.r)));var ye=Na(A.r);for(E=0;E<F.length;++E)ye.r>=F[E][0].s.r&&ye.r<=F[E][0].e.r&&ye.c>=F[E][0].s.c&&ye.c<=F[E][0].e.c&&(B.F=F[E][1])}if(A.t==null&&B.v===void 0)if(B.f||B.F)B.v=0,B.t="n";else if(M)B.t="z";else continue;else B.t=A.t||"n";switch(m.s.c>P&&(m.s.c=P),m.e.c<P&&(m.e.c=P),B.t){case"n":if(B.v==""||B.v==null){if(!M)continue;B.t="z"}else B.v=parseFloat(B.v);break;case"s":if(typeof B.v>"u"){if(!M)continue;B.t="z"}else K=$c[parseInt(B.v,10)],B.v=K.t,B.r=K.r,p.cellHTML&&(B.h=K.h);break;case"str":B.t="s",B.v=B.v!=null?rn(B.v):"",p.cellHTML&&(B.h=Pp(B.v));break;case"inlineStr":C=N.match(a),B.t="s",C!=null&&(K=Xp(C[1]))?(B.v=K.t,p.cellHTML&&(B.h=K.h)):B.v="";break;case"b":B.v=dn(B.v);break;case"d":p.cellDates?B.v=Yn(B.v,1):(B.v=Ma(Yn(B.v,1)),B.t="n");break;case"e":(!p||p.cellText!==!1)&&(B.w=B.v),B.v=J4[B.v];break}if(L=le=0,X=null,ue&&A.s!==void 0&&(X=S.CellXf[A.s],X!=null&&(X.numFmtId!=null&&(L=X.numFmtId),p.cellStyles&&X.fillId!=null&&(le=X.fillId))),IS(B,L,le,p,g,S),p.cellDates&&ue&&B.t=="n"&&Co(vt[L])&&(B.t="d",B.v=cd(B.v)),A.cm&&p.xlmeta){var qe=(p.xlmeta.Cell||[])[+A.cm-1];qe&&qe.type=="XLDAPR"&&(B.D=!0)}if(me){var ae=Na(A.r);T[ae.r]||(T[ae.r]=[]),T[ae.r][ae.c]=B}else T[A.r]=B}}}}te.length>0&&(T["!rows"]=te)}})();function cI(e,t){var n={},a=e.l+t;n.r=e.read_shift(4),e.l+=4;var i=e.read_shift(2);e.l+=1;var r=e.read_shift(1);return e.l=a,r&7&&(n.level=r&7),r&16&&(n.hidden=!0),r&32&&(n.hpt=i/20),n}var lI=f0;function uI(){}function dI(e,t){var n={},a=e[e.l];return++e.l,n.above=!(a&64),n.left=!(a&128),e.l+=18,n.name=ME(e),n}function TI(e){var t=yi(e);return[t]}function fI(e){var t=T0(e);return[t]}function hI(e){var t=yi(e),n=e.read_shift(1);return[t,n,"b"]}function pI(e){var t=T0(e),n=e.read_shift(1);return[t,n,"b"]}function mI(e){var t=yi(e),n=e.read_shift(1);return[t,n,"e"]}function gI(e){var t=T0(e),n=e.read_shift(1);return[t,n,"e"]}function vI(e){var t=yi(e),n=e.read_shift(4);return[t,n,"s"]}function xI(e){var t=T0(e),n=e.read_shift(4);return[t,n,"s"]}function yI(e){var t=yi(e),n=pa(e);return[t,n,"n"]}function OS(e){var t=T0(e),n=pa(e);return[t,n,"n"]}function SI(e){var t=yi(e),n=Vp(e);return[t,n,"n"]}function bI(e){var t=T0(e),n=Vp(e);return[t,n,"n"]}function wI(e){var t=yi(e),n=zp(e);return[t,n,"is"]}function CI(e){var t=yi(e),n=va(e);return[t,n,"str"]}function EI(e){var t=T0(e),n=va(e);return[t,n,"str"]}function kI(e,t,n){var a=e.l+t,i=yi(e);i.r=n["!row"];var r=e.read_shift(1),c=[i,r,"b"];if(n.cellFormula){e.l+=2;var l=dd(e,a-e.l,n);c[3]=ha(l,null,i,n.supbooks,n)}else e.l=a;return c}function AI(e,t,n){var a=e.l+t,i=yi(e);i.r=n["!row"];var r=e.read_shift(1),c=[i,r,"e"];if(n.cellFormula){e.l+=2;var l=dd(e,a-e.l,n);c[3]=ha(l,null,i,n.supbooks,n)}else e.l=a;return c}function RI(e,t,n){var a=e.l+t,i=yi(e);i.r=n["!row"];var r=pa(e),c=[i,r,"n"];if(n.cellFormula){e.l+=2;var l=dd(e,a-e.l,n);c[3]=ha(l,null,i,n.supbooks,n)}else e.l=a;return c}function DI(e,t,n){var a=e.l+t,i=yi(e);i.r=n["!row"];var r=va(e),c=[i,r,"str"];if(n.cellFormula){e.l+=2;var l=dd(e,a-e.l,n);c[3]=ha(l,null,i,n.supbooks,n)}else e.l=a;return c}var II=f0;function NI(e,t){var n=e.l+t,a=f0(e),i=Wp(e),r=va(e),c=va(e),l=va(e);e.l=n;var f={rfx:a,relId:i,loc:r,display:l};return c&&(f.Tooltip=c),f}function OI(){}function MI(e,t,n){var a=e.l+t,i=$4(e),r=e.read_shift(1),c=[i];if(c[2]=r,n.cellFormula){var l=_D(e,a-e.l,n);c[1]=l}else e.l=a;return c}function jI(e,t,n){var a=e.l+t,i=f0(e),r=[i];if(n.cellFormula){var c=BD(e,a-e.l,n);r[1]=c,e.l=a}else e.l=a;return r}var FI=["left","right","top","bottom","header","footer"];function LI(e){var t={};return FI.forEach(function(n){t[n]=pa(e)}),t}function PI(e){var t=e.read_shift(2);return e.l+=28,{RTL:t&32}}function _I(){}function qI(){}function BI(e,t,n,a,i,r,c){if(!e)return e;var l=t||{};a||(a={"!id":{}});var f=l.dense?[]:{},T,p={s:{r:2e6,c:2e6},e:{r:0,c:0}},m=!1,g=!1,S,x,y,w,C,k,E,O,N,B=[];l.biff=12,l["!row"]=0;var A=0,z=!1,P=[],K={},I=l.supbooks||i.supbooks||[[]];if(I.sharedf=K,I.arrayf=P,I.SheetNames=i.SheetNames||i.Sheets.map(function(me){return me.name}),!l.supbooks&&(l.supbooks=I,i.Names))for(var L=0;L<i.Names.length;++L)I[0][L+1]=i.Names[L];var le=[],ue=[],X=!1;Vu[16]={n:"BrtShortReal",f:OS};var F;if(js(e,function(te,Ce,ee){if(!g)switch(ee){case 148:T=te;break;case 0:S=te,l.sheetRows&&l.sheetRows<=S.r&&(g=!0),O=ra(w=S.r),l["!row"]=S.r,(te.hidden||te.hpt||te.level!=null)&&(te.hpt&&(te.hpx=c1(te.hpt)),ue[te.r]=te);break;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 17:case 18:case 62:switch(x={t:te[2]},te[2]){case"n":x.v=te[1];break;case"s":E=$c[te[1]],x.v=E.t,x.r=E.r;break;case"b":x.v=!!te[1];break;case"e":x.v=te[1],l.cellText!==!1&&(x.w=h0[x.v]);break;case"str":x.t="s",x.v=te[1];break;case"is":x.t="s",x.v=te[1].t;break}if((y=c.CellXf[te[0].iStyleRef])&&IS(x,y.numFmtId,null,l,r,c),C=te[0].c==-1?C+1:te[0].c,l.dense?(f[w]||(f[w]=[]),f[w][C]=x):f[Un(C)+O]=x,l.cellFormula){for(z=!1,A=0;A<P.length;++A){var M=P[A];S.r>=M[0].s.r&&S.r<=M[0].e.r&&C>=M[0].s.c&&C<=M[0].e.c&&(x.F=Lt(M[0]),z=!0)}!z&&te.length>3&&(x.f=te[3])}if(p.s.r>S.r&&(p.s.r=S.r),p.s.c>C&&(p.s.c=C),p.e.r<S.r&&(p.e.r=S.r),p.e.c<C&&(p.e.c=C),l.cellDates&&y&&x.t=="n"&&Co(vt[y.numFmtId])){var Y=$r(x.v);Y&&(x.t="d",x.v=new Date(Y.y,Y.m-1,Y.d,Y.H,Y.M,Y.S,Y.u))}F&&(F.type=="XLDAPR"&&(x.D=!0),F=void 0);break;case 1:case 12:if(!l.sheetStubs||m)break;x={t:"z",v:void 0},C=te[0].c==-1?C+1:te[0].c,l.dense?(f[w]||(f[w]=[]),f[w][C]=x):f[Un(C)+O]=x,p.s.r>S.r&&(p.s.r=S.r),p.s.c>C&&(p.s.c=C),p.e.r<S.r&&(p.e.r=S.r),p.e.c<C&&(p.e.c=C),F&&(F.type=="XLDAPR"&&(x.D=!0),F=void 0);break;case 176:B.push(te);break;case 49:F=((l.xlmeta||{}).Cell||[])[te-1];break;case 494:var Z=a["!id"][te.relId];for(Z?(te.Target=Z.Target,te.loc&&(te.Target+="#"+te.loc),te.Rel=Z):te.relId==""&&(te.Target="#"+te.loc),w=te.rfx.s.r;w<=te.rfx.e.r;++w)for(C=te.rfx.s.c;C<=te.rfx.e.c;++C)l.dense?(f[w]||(f[w]=[]),f[w][C]||(f[w][C]={t:"z",v:void 0}),f[w][C].l=te):(k=ht({c:C,r:w}),f[k]||(f[k]={t:"z",v:void 0}),f[k].l=te);break;case 426:if(!l.cellFormula)break;P.push(te),N=l.dense?f[w][C]:f[Un(C)+O],N.f=ha(te[1],p,{r:S.r,c:C},I,l),N.F=Lt(te[0]);break;case 427:if(!l.cellFormula)break;K[ht(te[0].s)]=te[1],N=l.dense?f[w][C]:f[Un(C)+O],N.f=ha(te[1],p,{r:S.r,c:C},I,l);break;case 60:if(!l.cellStyles)break;for(;te.e>=te.s;)le[te.e--]={width:te.w/256,hidden:!!(te.flags&1),level:te.level},X||(X=!0,Kp(te.w/256)),yo(le[te.e+1]);break;case 161:f["!autofilter"]={ref:Lt(te)};break;case 476:f["!margins"]=te;break;case 147:i.Sheets[n]||(i.Sheets[n]={}),te.name&&(i.Sheets[n].CodeName=te.name),(te.above||te.left)&&(f["!outline"]={above:te.above,left:te.left});break;case 137:i.Views||(i.Views=[{}]),i.Views[0]||(i.Views[0]={}),te.RTL&&(i.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:break;case 151:break;case 152:case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:m=!0;break;case 36:m=!1;break;case 37:m=!0;break;case 38:m=!1;break;default:if(!Ce.T){if(!m||l.WTF)throw new Error("Unexpected record 0x"+ee.toString(16))}}},l),delete l.supbooks,delete l["!row"],!f["!ref"]&&(p.s.r<2e6||T&&(T.e.r>0||T.e.c>0||T.s.r>0||T.s.c>0))&&(f["!ref"]=Lt(T||p)),l.sheetRows&&f["!ref"]){var re=xn(f["!ref"]);l.sheetRows<=+re.e.r&&(re.e.r=l.sheetRows-1,re.e.r>p.e.r&&(re.e.r=p.e.r),re.e.r<re.s.r&&(re.s.r=re.e.r),re.e.c>p.e.c&&(re.e.c=p.e.c),re.e.c<re.s.c&&(re.s.c=re.e.c),f["!fullref"]=f["!ref"],f["!ref"]=Lt(re))}return B.length>0&&(f["!merges"]=B),le.length>0&&(f["!cols"]=le),ue.length>0&&(f["!rows"]=ue),f}function UI(e){var t=[],n=e.match(/^<c:numCache>/),a;(e.match(/<c:pt idx="(\d*)">(.*?)<\/c:pt>/mg)||[]).forEach(function(r){var c=r.match(/<c:pt idx="(\d*?)"><c:v>(.*)<\/c:v><\/c:pt>/);c&&(t[+c[1]]=n?+c[2]:c[2])});var i=Ut((e.match(/<c:formatCode>([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/<c:f>(.*?)<\/c:f>/mg)||[]).forEach(function(r){a=r.replace(/<.*?>/g,"")}),[t,i,a]}function zI(e,t,n,a,i,r){var c=r||{"!type":"chart"};if(!e)return r;var l=0,f=0,T="A",p={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/<c:numCache>[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(m){var g=UI(m);p.s.r=p.s.c=0,p.e.c=l,T=Un(l),g[0].forEach(function(S,x){c[T+ra(x)]={t:"n",v:S,z:g[1]},f=x}),p.e.r<f&&(p.e.r=f),++l}),l>0&&(c["!ref"]=Lt(p)),c}function WI(e,t,n,a,i){if(!e)return e;a||(a={"!id":{}});var r={"!type":"chart","!drawel":null,"!rel":""},c,l=e.match(NS);return l&&Yp(l[0],r,i,n),(c=e.match(/drawing r:id="(.*?)"/))&&(r["!rel"]=c[1]),a["!id"][r["!rel"]]&&(r["!drawel"]=a["!id"][r["!rel"]]),r}function VI(e,t){e.l+=10;var n=va(e);return{name:n}}function HI(e,t,n,a,i){if(!e)return e;a||(a={"!id":{}});var r={"!type":"chart","!drawel":null,"!rel":""},c=!1;return js(e,function(f,T,p){switch(p){case 550:r["!rel"]=f;break;case 651:i.Sheets[n]||(i.Sheets[n]={}),f.name&&(i.Sheets[n].CodeName=f.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:c=!0;break;case 36:c=!1;break;case 37:break;case 38:break;default:if(!(T.T>0)){if(!(T.T<0)){if(!c||t.WTF)throw new Error("Unexpected record 0x"+p.toString(16))}}}},t),a["!id"][r["!rel"]]&&(r["!drawel"]=a["!id"][r["!rel"]]),r}var MS=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],GI=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],XI=[],KI=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function Tx(e,t){for(var n=0;n!=e.length;++n)for(var a=e[n],i=0;i!=t.length;++i){var r=t[i];if(a[r[0]]==null)a[r[0]]=r[1];else switch(r[2]){case"bool":typeof a[r[0]]=="string"&&(a[r[0]]=dn(a[r[0]]));break;case"int":typeof a[r[0]]=="string"&&(a[r[0]]=parseInt(a[r[0]],10));break}}}function fx(e,t){for(var n=0;n!=t.length;++n){var a=t[n];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":typeof e[a[0]]=="string"&&(e[a[0]]=dn(e[a[0]]));break;case"int":typeof e[a[0]]=="string"&&(e[a[0]]=parseInt(e[a[0]],10));break}}}function jS(e){fx(e.WBProps,MS),fx(e.CalcPr,KI),Tx(e.WBView,GI),Tx(e.Sheets,XI),fo.date1904=dn(e.WBProps.date1904)}var $I="][*?/\\".split("");function YI(e,t){if(e.length>31)throw new Error("Sheet names cannot exceed 31 chars");var n=!0;return $I.forEach(function(a){if(e.indexOf(a)!=-1)throw new Error("Sheet name cannot contain : \\ / ? * [ ]")}),n}var ZI=/<\w+:workbook/;function JI(e,t){if(!e)throw new Error("Could not find file");var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},a=!1,i="xmlns",r={},c=0;if(e.replace(ya,function(f,T){var p=it(f);switch(as(p[0])){case"<?xml":break;case"<workbook":f.match(ZI)&&(i="xmlns"+f.match(/<(\w+):/)[1]),n.xmlns=p[i];break;case"</workbook>":break;case"<fileVersion":delete p[0],n.AppVersion=p;break;case"<fileVersion/>":case"</fileVersion>":break;case"<fileSharing":break;case"<fileSharing/>":break;case"<workbookPr":case"<workbookPr/>":MS.forEach(function(m){if(p[m[0]]!=null)switch(m[2]){case"bool":n.WBProps[m[0]]=dn(p[m[0]]);break;case"int":n.WBProps[m[0]]=parseInt(p[m[0]],10);break;default:n.WBProps[m[0]]=p[m[0]]}}),p.codeName&&(n.WBProps.CodeName=rn(p.codeName));break;case"</workbookPr>":break;case"<workbookProtection":break;case"<workbookProtection/>":break;case"<bookViews":case"<bookViews>":case"</bookViews>":break;case"<workbookView":case"<workbookView/>":delete p[0],n.WBView.push(p);break;case"</workbookView>":break;case"<sheets":case"<sheets>":case"</sheets>":break;case"<sheet":switch(p.state){case"hidden":p.Hidden=1;break;case"veryHidden":p.Hidden=2;break;default:p.Hidden=0}delete p.state,p.name=Ut(rn(p.name)),delete p[0],n.Sheets.push(p);break;case"</sheet>":break;case"<functionGroups":case"<functionGroups/>":break;case"<functionGroup":break;case"<externalReferences":case"</externalReferences>":case"<externalReferences>":break;case"<externalReference":break;case"<definedNames/>":break;case"<definedNames>":case"<definedNames":a=!0;break;case"</definedNames>":a=!1;break;case"<definedName":r={},r.Name=rn(p.name),p.comment&&(r.Comment=p.comment),p.localSheetId&&(r.Sheet=+p.localSheetId),dn(p.hidden||"0")&&(r.Hidden=!0),c=T+f.length;break;case"</definedName>":r.Ref=Ut(rn(e.slice(c,T))),n.Names.push(r);break;case"<definedName/>":break;case"<calcPr":delete p[0],n.CalcPr=p;break;case"<calcPr/>":delete p[0],n.CalcPr=p;break;case"</calcPr>":break;case"<oleSize":break;case"<customWorkbookViews>":case"</customWorkbookViews>":case"<customWorkbookViews":break;case"<customWorkbookView":case"</customWorkbookView>":break;case"<pivotCaches>":case"</pivotCaches>":case"<pivotCaches":break;case"<pivotCache":break;case"<smartTagPr":case"<smartTagPr/>":break;case"<smartTagTypes":case"<smartTagTypes>":case"</smartTagTypes>":break;case"<smartTagType":break;case"<webPublishing":case"<webPublishing/>":break;case"<fileRecoveryPr":case"<fileRecoveryPr/>":break;case"<webPublishObjects>":case"<webPublishObjects":case"</webPublishObjects>":break;case"<webPublishObject":break;case"<extLst":case"<extLst>":case"</extLst>":case"<extLst/>":break;case"<ext":a=!0;break;case"</ext>":a=!1;break;case"<ArchID":break;case"<AlternateContent":case"<AlternateContent>":a=!0;break;case"</AlternateContent>":a=!1;break;case"<revisionPtr":break;default:if(!a&&t.WTF)throw new Error("unrecognized "+p[0]+" in workbook")}return f}),mE.indexOf(n.xmlns)===-1)throw new Error("Unknown Namespace: "+n.xmlns);return jS(n),n}function QI(e,t){var n={};return n.Hidden=e.read_shift(4),n.iTabID=e.read_shift(4),n.strRelID=Bh(e),n.name=va(e),n}function eN(e,t){var n={},a=e.read_shift(4);n.defaultThemeVersion=e.read_shift(4);var i=t>8?va(e):"";return i.length>0&&(n.CodeName=i),n.autoCompressPictures=!!(a&65536),n.backupFile=!!(a&64),n.checkCompatibility=!!(a&4096),n.date1904=!!(a&1),n.filterPrivacy=!!(a&8),n.hidePivotFieldList=!!(a&1024),n.promptedSolutions=!!(a&16),n.publishItems=!!(a&2048),n.refreshAllConnections=!!(a&262144),n.saveExternalLinkValues=!!(a&128),n.showBorderUnselectedTables=!!(a&4),n.showInkAnnotation=!!(a&32),n.showObjects=["all","placeholders","none"][a>>13&3],n.showPivotChartFilter=!!(a&32768),n.updateLinks=["userSet","never","always"][a>>8&3],n}function tN(e,t){var n={};return e.read_shift(4),n.ArchID=e.read_shift(4),e.l+=t-8,n}function nN(e,t,n){var a=e.l+t;e.l+=4,e.l+=1;var i=e.read_shift(4),r=jE(e),c=qD(e,0,n),l=Wp(e);e.l=a;var f={Name:r,Ptg:c};return i<268435455&&(f.Sheet=i),l&&(f.Comment=l),f}function aN(e,t){var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},a=[],i=!1;t||(t={}),t.biff=12;var r=[],c=[[]];return c.SheetNames=[],c.XTI=[],Vu[16]={n:"BrtFRTArchID$",f:tN},js(e,function(f,T,p){switch(p){case 156:c.SheetNames.push(f.name),n.Sheets.push(f);break;case 153:n.WBProps=f;break;case 39:f.Sheet!=null&&(t.SID=f.Sheet),f.Ref=ha(f.Ptg,null,null,c,t),delete t.SID,delete f.Ptg,r.push(f);break;case 1036:break;case 357:case 358:case 355:case 667:c[0].length?c.push([p,f]):c[0]=[p,f],c[c.length-1].XTI=[];break;case 362:c.length===0&&(c[0]=[],c[0].XTI=[]),c[c.length-1].XTI=c[c.length-1].XTI.concat(f),c.XTI=c.XTI.concat(f);break;case 361:break;case 2071:case 158:case 143:case 664:case 353:break;case 3072:case 3073:case 534:case 677:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:a.push(p),i=!0;break;case 36:a.pop(),i=!1;break;case 37:a.push(p),i=!0;break;case 38:a.pop(),i=!1;break;case 16:break;default:if(!T.T){if(!i||t.WTF&&a[a.length-1]!=37&&a[a.length-1]!=35)throw new Error("Unexpected record 0x"+p.toString(16))}}},t),jS(n),n.Names=r,n.supbooks=c,n}function iN(e,t,n){return t.slice(-4)===".bin"?aN(e,n):JI(e,n)}function sN(e,t,n,a,i,r,c,l){return t.slice(-4)===".bin"?BI(e,a,n,i,r,c,l):QD(e,a,n,i,r,c,l)}function rN(e,t,n,a,i,r,c,l){return t.slice(-4)===".bin"?HI(e,a,n,i,r):WI(e,a,n,i,r)}function oN(e,t,n,a,i,r,c,l){return t.slice(-4)===".bin"?pR():mR()}function cN(e,t,n,a,i,r,c,l){return t.slice(-4)===".bin"?fR():hR()}function lN(e,t,n,a){return t.slice(-4)===".bin"?IA(e,n,a):CA(e,n,a)}function uN(e,t,n){return yS(e,n)}function dN(e,t,n){return t.slice(-4)===".bin"?G9(e,n):V9(e,n)}function TN(e,t,n){return t.slice(-4)===".bin"?uR(e,n):sR(e,n)}function fN(e,t,n){return t.slice(-4)===".bin"?nR(e):eR(e)}function hN(e,t,n,a){return n.slice(-4)===".bin"?aR(e,t,n,a):void 0}function pN(e,t,n){return t.slice(-4)===".bin"?JA(e,t,n):QA(e,t,n)}var FS=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,LS=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function Di(e,t){var n=e.split(/\s+/),a=[];if(a[0]=n[0],n.length===1)return a;var i=e.match(FS),r,c,l,f;if(i)for(f=0;f!=i.length;++f)r=i[f].match(LS),(c=r[1].indexOf(":"))===-1?a[r[1]]=r[2].slice(1,r[2].length-1):(r[1].slice(0,6)==="xmlns:"?l="xmlns"+r[1].slice(6):l=r[1].slice(c+1),a[l]=r[2].slice(1,r[2].length-1));return a}function mN(e){var t=e.split(/\s+/),n={};if(t.length===1)return n;var a=e.match(FS),i,r,c,l;if(a)for(l=0;l!=a.length;++l)i=a[l].match(LS),(r=i[1].indexOf(":"))===-1?n[i[1]]=i[2].slice(1,i[2].length-1):(i[1].slice(0,6)==="xmlns:"?c="xmlns"+i[1].slice(6):c=i[1].slice(r+1),n[c]=i[2].slice(1,i[2].length-1));return n}var Zc;function gN(e,t){var n=Zc[e]||Ut(e);return n==="General"?i0(t):xi(n,t)}function vN(e,t,n,a){var i=a;switch((n[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":i=dn(a);break;case"i2":case"int":i=parseInt(a,10);break;case"r4":case"float":i=parseFloat(a);break;case"date":case"dateTime.tz":i=Yn(a);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+n[0])}e[Ut(t)]=i}function xN(e,t,n){if(e.t!=="z"){if(!n||n.cellText!==!1)try{e.t==="e"?e.w=e.w||h0[e.v]:t==="General"?e.t==="n"?(e.v|0)===e.v?e.w=e.v.toString(10):e.w=a1(e.v):e.w=i0(e.v):e.w=gN(t||"General",e.v)}catch(r){if(n.WTF)throw r}try{var a=Zc[t]||t||"General";if(n.cellNF&&(e.z=a),n.cellDates&&e.t=="n"&&Co(a)){var i=$r(e.v);i&&(e.t="d",e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u))}}catch(r){if(n.WTF)throw r}}}function yN(e,t,n){if(n.cellStyles&&t.Interior){var a=t.Interior;a.Pattern&&(a.patternType=vA[a.Pattern]||a.Pattern)}e[t.ID]=t}function SN(e,t,n,a,i,r,c,l,f,T){var p="General",m=a.StyleID,g={};T=T||{};var S=[],x=0;for(m===void 0&&l&&(m=l.StyleID),m===void 0&&c&&(m=c.StyleID);r[m]!==void 0&&(r[m].nf&&(p=r[m].nf),r[m].Interior&&S.push(r[m].Interior),!!r[m].Parent);)m=r[m].Parent;switch(n.Type){case"Boolean":a.t="b",a.v=dn(e);break;case"String":a.t="s",a.r=Fv(Ut(e)),a.v=e.indexOf("<")>-1?Ut(t||e).replace(/<.*?>/g,""):a.r;break;case"DateTime":e.slice(-1)!="Z"&&(e+="Z"),a.v=(Yn(e)-new Date(Date.UTC(1899,11,30)))/(1440*60*1e3),a.v!==a.v?a.v=Ut(e):a.v<60&&(a.v=a.v-1),(!p||p=="General")&&(p="yyyy-mm-dd");case"Number":a.v===void 0&&(a.v=+e),a.t||(a.t="n");break;case"Error":a.t="e",a.v=J4[e],T.cellText!==!1&&(a.w=e);break;default:e==""&&t==""?a.t="z":(a.t="s",a.v=Fv(t||e));break}if(xN(a,p,T),T.cellFormula!==!1)if(a.Formula){var y=Ut(a.Formula);y.charCodeAt(0)==61&&(y=y.slice(1)),a.f=To(y,i),delete a.Formula,a.ArrayRange=="RC"?a.F=To("RC:RC",i):a.ArrayRange&&(a.F=To(a.ArrayRange,i),f.push([xn(a.F),a.F]))}else for(x=0;x<f.length;++x)i.r>=f[x][0].s.r&&i.r<=f[x][0].e.r&&i.c>=f[x][0].s.c&&i.c<=f[x][0].e.c&&(a.F=f[x][1]);T.cellStyles&&(S.forEach(function(w){!g.patternType&&w.patternType&&(g.patternType=w.patternType)}),a.s=g),a.StyleID!==void 0&&(a.ixfe=a.StyleID)}function bN(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,`
|
||
`).replace(/\r/g,`
|
||
`),e.v=e.w=e.ixfe=void 0}function Uf(e,t){var n=t||{};C4();var a=Oc(_p(e));(n.type=="binary"||n.type=="array"||n.type=="base64")&&(a=rn(a));var i=a.slice(0,1024).toLowerCase(),r=!1;if(i=i.replace(/".*?"/g,""),(i.indexOf(">")&1023)>Math.min(i.indexOf(",")&1023,i.indexOf(";")&1023)){var c=sa(n);return c.type="string",r1.to_workbook(a,c)}if(i.indexOf("<?xml")==-1&&["html","table","head","meta","script","style","div"].forEach(function(_e){i.indexOf("<"+_e)>=0&&(r=!0)}),r)return NN(a,n);Zc={"General Number":"General","General Date":vt[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":vt[15],"Short Date":vt[14],"Long Time":vt[19],"Medium Time":vt[18],"Short Time":vt[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:vt[2],Standard:vt[4],Percent:vt[10],Scientific:vt[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var l,f=[],T,p={},m=[],g=n.dense?[]:{},S="",x={},y={},w=Di('<Data ss:Type="String">'),C=0,k=0,E=0,O={s:{r:2e6,c:2e6},e:{r:0,c:0}},N={},B={},A="",z=0,P=[],K={},I={},L=0,le=[],ue=[],X={},F=[],re,me=!1,te=[],Ce=[],ee={},M=0,Y=0,Z={Sheets:[],WBProps:{date1904:!1}},J={};s1.lastIndex=0,a=a.replace(/<!--([\s\S]*?)-->/mg,"");for(var he="";l=s1.exec(a);)switch(l[3]=(he=l[3]).toLowerCase()){case"data":if(he=="data"){if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else l[0].charAt(l[0].length-2)!=="/"&&f.push([l[3],!0]);break}if(f[f.length-1][1])break;l[1]==="/"?SN(a.slice(C,l.index),A,w,f[f.length-1][0]=="comment"?X:x,{c:k,r:E},N,F[k],y,te,n):(A="",w=Di(l[0]),C=l.index+l[0].length);break;case"cell":if(l[1]==="/")if(ue.length>0&&(x.c=ue),(!n.sheetRows||n.sheetRows>E)&&x.v!==void 0&&(n.dense?(g[E]||(g[E]=[]),g[E][k]=x):g[Un(k)+ra(E)]=x),x.HRef&&(x.l={Target:Ut(x.HRef)},x.HRefScreenTip&&(x.l.Tooltip=x.HRefScreenTip),delete x.HRef,delete x.HRefScreenTip),(x.MergeAcross||x.MergeDown)&&(M=k+(parseInt(x.MergeAcross,10)|0),Y=E+(parseInt(x.MergeDown,10)|0),P.push({s:{c:k,r:E},e:{c:M,r:Y}})),!n.sheetStubs)x.MergeAcross?k=M+1:++k;else if(x.MergeAcross||x.MergeDown){for(var ge=k;ge<=M;++ge)for(var de=E;de<=Y;++de)(ge>k||de>E)&&(n.dense?(g[de]||(g[de]=[]),g[de][ge]={t:"z"}):g[Un(ge)+ra(de)]={t:"z"});k=M+1}else++k;else x=mN(l[0]),x.Index&&(k=+x.Index-1),k<O.s.c&&(O.s.c=k),k>O.e.c&&(O.e.c=k),l[0].slice(-2)==="/>"&&++k,ue=[];break;case"row":l[1]==="/"||l[0].slice(-2)==="/>"?(E<O.s.r&&(O.s.r=E),E>O.e.r&&(O.e.r=E),l[0].slice(-2)==="/>"&&(y=Di(l[0]),y.Index&&(E=+y.Index-1)),k=0,++E):(y=Di(l[0]),y.Index&&(E=+y.Index-1),ee={},(y.AutoFitHeight=="0"||y.Height)&&(ee.hpx=parseInt(y.Height,10),ee.hpt=xS(ee.hpx),Ce[E]=ee),y.Hidden=="1"&&(ee.hidden=!0,Ce[E]=ee));break;case"worksheet":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"));m.push(S),O.s.r<=O.e.r&&O.s.c<=O.e.c&&(g["!ref"]=Lt(O),n.sheetRows&&n.sheetRows<=O.e.r&&(g["!fullref"]=g["!ref"],O.e.r=n.sheetRows-1,g["!ref"]=Lt(O))),P.length&&(g["!merges"]=P),F.length>0&&(g["!cols"]=F),Ce.length>0&&(g["!rows"]=Ce),p[S]=g}else O={s:{r:2e6,c:2e6},e:{r:0,c:0}},E=k=0,f.push([l[3],!1]),T=Di(l[0]),S=Ut(T.Name),g=n.dense?[]:{},P=[],te=[],Ce=[],J={name:S,Hidden:0},Z.Sheets.push(J);break;case"table":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else{if(l[0].slice(-2)=="/>")break;f.push([l[3],!1]),F=[],me=!1}break;case"style":l[1]==="/"?yN(N,B,n):B=Di(l[0]);break;case"numberformat":B.nf=Ut(Di(l[0]).Format||"General"),Zc[B.nf]&&(B.nf=Zc[B.nf]);for(var fe=0;fe!=392&&vt[fe]!=B.nf;++fe);if(fe==392){for(fe=57;fe!=392;++fe)if(vt[fe]==null){e0(B.nf,fe);break}}break;case"column":if(f[f.length-1][0]!=="table")break;if(re=Di(l[0]),re.Hidden&&(re.hidden=!0,delete re.Hidden),re.Width&&(re.wpx=parseInt(re.Width,10)),!me&&re.wpx>10){me=!0,Da=gS;for(var ye=0;ye<F.length;++ye)F[ye]&&yo(F[ye])}me&&yo(re),F[re.Index-1||F.length]=re;for(var qe=0;qe<+re.Span;++qe)F[F.length]=sa(re);break;case"namedrange":if(l[1]==="/")break;Z.Names||(Z.Names=[]);var ae=it(l[0]),Ne={Name:ae.Name,Ref:To(ae.RefersTo.slice(1),{r:0,c:0})};Z.Sheets.length>0&&(Ne.Sheet=Z.Sheets.length-1),Z.Names.push(Ne);break;case"namedcell":break;case"b":break;case"i":break;case"u":break;case"s":break;case"em":break;case"h2":break;case"h3":break;case"sub":break;case"sup":break;case"span":break;case"alignment":break;case"borders":break;case"border":break;case"font":if(l[0].slice(-2)==="/>")break;l[1]==="/"?A+=a.slice(z,l.index):z=l.index+l[0].length;break;case"interior":if(!n.cellStyles)break;B.Interior=Di(l[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if(l[0].slice(-2)==="/>")break;l[1]==="/"?sk(K,he,a.slice(L,l.index)):L=l.index+l[0].length;break;case"paragraphs":break;case"styles":case"workbook":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else f.push([l[3],!1]);break;case"comment":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"));bN(X),ue.push(X)}else f.push([l[3],!1]),T=Di(l[0]),X={a:T.Author};break;case"autofilter":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/"){var Ve=Di(l[0]);g["!autofilter"]={ref:To(Ve.Range).replace(/\$/g,"")},f.push([l[3],!0])}break;case"name":break;case"datavalidation":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else l[0].charAt(l[0].length-2)!=="/"&&f.push([l[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if(l[1]==="/"){if((T=f.pop())[0]!==l[3])throw new Error("Bad state: "+T.join("|"))}else l[0].charAt(l[0].length-2)!=="/"&&f.push([l[3],!0]);break;case"null":break;default:if(f.length==0&&l[3]=="document"||f.length==0&&l[3]=="uof")return xx(a,n);var tt=!0;switch(f[f.length-1][0]){case"officedocumentsettings":switch(l[3]){case"allowpng":break;case"removepersonalinformation":break;case"downloadcomponents":break;case"locationofcomponents":break;case"colors":break;case"color":break;case"index":break;case"rgb":break;case"targetscreensize":break;case"readonlyrecommended":break;default:tt=!1}break;case"componentoptions":switch(l[3]){case"toolbar":break;case"hideofficelogo":break;case"spreadsheetautofit":break;case"label":break;case"caption":break;case"maxheight":break;case"maxwidth":break;case"nextsheetnumber":break;default:tt=!1}break;case"excelworkbook":switch(l[3]){case"date1904":Z.WBProps.date1904=!0;break;case"windowheight":break;case"windowwidth":break;case"windowtopx":break;case"windowtopy":break;case"tabratio":break;case"protectstructure":break;case"protectwindow":break;case"protectwindows":break;case"activesheet":break;case"displayinknotes":break;case"firstvisiblesheet":break;case"supbook":break;case"sheetname":break;case"sheetindex":break;case"sheetindexfirst":break;case"sheetindexlast":break;case"dll":break;case"acceptlabelsinformulas":break;case"donotsavelinkvalues":break;case"iteration":break;case"maxiterations":break;case"maxchange":break;case"path":break;case"xct":break;case"count":break;case"selectedsheets":break;case"calculation":break;case"uncalced":break;case"startupprompt":break;case"crn":break;case"externname":break;case"formula":break;case"colfirst":break;case"collast":break;case"wantadvise":break;case"boolean":break;case"error":break;case"text":break;case"ole":break;case"noautorecover":break;case"publishobjects":break;case"donotcalculatebeforesave":break;case"number":break;case"refmoder1c1":break;case"embedsavesmarttags":break;default:tt=!1}break;case"workbookoptions":switch(l[3]){case"owcversion":break;case"height":break;case"width":break;default:tt=!1}break;case"worksheetoptions":switch(l[3]){case"visible":if(l[0].slice(-2)!=="/>")if(l[1]==="/")switch(a.slice(L,l.index)){case"SheetHidden":J.Hidden=1;break;case"SheetVeryHidden":J.Hidden=2;break}else L=l.index+l[0].length;break;case"header":g["!margins"]||Yc(g["!margins"]={},"xlml"),isNaN(+it(l[0]).Margin)||(g["!margins"].header=+it(l[0]).Margin);break;case"footer":g["!margins"]||Yc(g["!margins"]={},"xlml"),isNaN(+it(l[0]).Margin)||(g["!margins"].footer=+it(l[0]).Margin);break;case"pagemargins":var We=it(l[0]);g["!margins"]||Yc(g["!margins"]={},"xlml"),isNaN(+We.Top)||(g["!margins"].top=+We.Top),isNaN(+We.Left)||(g["!margins"].left=+We.Left),isNaN(+We.Right)||(g["!margins"].right=+We.Right),isNaN(+We.Bottom)||(g["!margins"].bottom=+We.Bottom);break;case"displayrighttoleft":Z.Views||(Z.Views=[]),Z.Views[0]||(Z.Views[0]={}),Z.Views[0].RTL=!0;break;case"freezepanes":break;case"frozennosplit":break;case"splithorizontal":case"splitvertical":break;case"donotdisplaygridlines":break;case"activerow":break;case"activecol":break;case"toprowbottompane":break;case"leftcolumnrightpane":break;case"unsynced":break;case"print":break;case"printerrors":break;case"panes":break;case"scale":break;case"pane":break;case"number":break;case"layout":break;case"pagesetup":break;case"selected":break;case"protectobjects":break;case"enableselection":break;case"protectscenarios":break;case"validprinterinfo":break;case"horizontalresolution":break;case"verticalresolution":break;case"numberofcopies":break;case"activepane":break;case"toprowvisible":break;case"leftcolumnvisible":break;case"fittopage":break;case"rangeselection":break;case"papersizeindex":break;case"pagelayoutzoom":break;case"pagebreakzoom":break;case"filteron":break;case"fitwidth":break;case"fitheight":break;case"commentslayout":break;case"zoom":break;case"lefttoright":break;case"gridlines":break;case"allowsort":break;case"allowfilter":break;case"allowinsertrows":break;case"allowdeleterows":break;case"allowinsertcols":break;case"allowdeletecols":break;case"allowinserthyperlinks":break;case"allowformatcells":break;case"allowsizecols":break;case"allowsizerows":break;case"nosummaryrowsbelowdetail":g["!outline"]||(g["!outline"]={}),g["!outline"].above=!0;break;case"tabcolorindex":break;case"donotdisplayheadings":break;case"showpagelayoutzoom":break;case"nosummarycolumnsrightdetail":g["!outline"]||(g["!outline"]={}),g["!outline"].left=!0;break;case"blackandwhite":break;case"donotdisplayzeros":break;case"displaypagebreak":break;case"rowcolheadings":break;case"donotdisplayoutline":break;case"noorientation":break;case"allowusepivottables":break;case"zeroheight":break;case"viewablerange":break;case"selection":break;case"protectcontents":break;default:tt=!1}break;case"pivottable":case"pivotcache":switch(l[3]){case"immediateitemsondrop":break;case"showpagemultipleitemlabel":break;case"compactrowindent":break;case"location":break;case"pivotfield":break;case"orientation":break;case"layoutform":break;case"layoutsubtotallocation":break;case"layoutcompactrow":break;case"position":break;case"pivotitem":break;case"datatype":break;case"datafield":break;case"sourcename":break;case"parentfield":break;case"ptlineitems":break;case"ptlineitem":break;case"countofsameitems":break;case"item":break;case"itemtype":break;case"ptsource":break;case"cacheindex":break;case"consolidationreference":break;case"filename":break;case"reference":break;case"nocolumngrand":break;case"norowgrand":break;case"blanklineafteritems":break;case"hidden":break;case"subtotal":break;case"basefield":break;case"mapchilditems":break;case"function":break;case"refreshonfileopen":break;case"printsettitles":break;case"mergelabels":break;case"defaultversion":break;case"refreshname":break;case"refreshdate":break;case"refreshdatecopy":break;case"versionlastrefresh":break;case"versionlastupdate":break;case"versionupdateablemin":break;case"versionrefreshablemin":break;case"calculation":break;default:tt=!1}break;case"pagebreaks":switch(l[3]){case"colbreaks":break;case"colbreak":break;case"rowbreaks":break;case"rowbreak":break;case"colstart":break;case"colend":break;case"rowend":break;default:tt=!1}break;case"autofilter":switch(l[3]){case"autofiltercolumn":break;case"autofiltercondition":break;case"autofilterand":break;case"autofilteror":break;default:tt=!1}break;case"querytable":switch(l[3]){case"id":break;case"autoformatfont":break;case"autoformatpattern":break;case"querysource":break;case"querytype":break;case"enableredirections":break;case"refreshedinxl9":break;case"urlstring":break;case"htmltables":break;case"connection":break;case"commandtext":break;case"refreshinfo":break;case"notitles":break;case"nextid":break;case"columninfo":break;case"overwritecells":break;case"donotpromptforfile":break;case"textwizardsettings":break;case"source":break;case"number":break;case"decimal":break;case"thousandseparator":break;case"trailingminusnumbers":break;case"formatsettings":break;case"fieldtype":break;case"delimiters":break;case"tab":break;case"comma":break;case"autoformatname":break;case"versionlastedit":break;case"versionlastrefresh":break;default:tt=!1}break;case"datavalidation":switch(l[3]){case"range":break;case"type":break;case"min":break;case"max":break;case"sort":break;case"descending":break;case"order":break;case"casesensitive":break;case"value":break;case"errorstyle":break;case"errormessage":break;case"errortitle":break;case"inputmessage":break;case"inputtitle":break;case"combohide":break;case"inputhide":break;case"condition":break;case"qualifier":break;case"useblank":break;case"value1":break;case"value2":break;case"format":break;case"cellrangelist":break;default:tt=!1}break;case"sorting":case"conditionalformatting":switch(l[3]){case"range":break;case"type":break;case"min":break;case"max":break;case"sort":break;case"descending":break;case"order":break;case"casesensitive":break;case"value":break;case"errorstyle":break;case"errormessage":break;case"errortitle":break;case"cellrangelist":break;case"inputmessage":break;case"inputtitle":break;case"combohide":break;case"inputhide":break;case"condition":break;case"qualifier":break;case"useblank":break;case"value1":break;case"value2":break;case"format":break;default:tt=!1}break;case"mapinfo":case"schema":case"data":switch(l[3]){case"map":break;case"entry":break;case"range":break;case"xpath":break;case"field":break;case"xsdtype":break;case"filteron":break;case"aggregate":break;case"elementtype":break;case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:tt=!1}break;case"smarttags":break;default:tt=!1;break}if(tt||l[3].match(/!\[CDATA/))break;if(!f[f.length-1][1])throw"Unrecognized tag: "+l[3]+"|"+f.join("|");if(f[f.length-1][0]==="customdocumentproperties"){if(l[0].slice(-2)==="/>")break;l[1]==="/"?vN(I,he,le,a.slice(L,l.index)):(le=l,L=l.index+l[0].length);break}if(n.WTF)throw"Unrecognized tag: "+l[3]+"|"+f.join("|")}var Le={};return!n.bookSheets&&!n.bookProps&&(Le.Sheets=p),Le.SheetNames=m,Le.Workbook=Z,Le.SSF=sa(vt),Le.Props=K,Le.Custprops=I,Le}function Vh(e,t){switch(Qp(t=t||{}),t.type||"base64"){case"base64":return Uf(Qa(e),t);case"binary":case"buffer":case"file":return Uf(e,t);case"array":return Uf(d0(e),t)}}function wN(e){var t={},n=e.content;if(n.l=28,t.AnsiUserType=n.read_shift(0,"lpstr-ansi"),t.AnsiClipboardFormat=PE(n),n.length-n.l<=4)return t;var a=n.read_shift(4);if(a==0||a>40||(n.l-=4,t.Reserved1=n.read_shift(0,"lpstr-ansi"),n.length-n.l<=4)||(a=n.read_shift(4),a!==1907505652)||(t.UnicodeClipboardFormat=_E(n),a=n.read_shift(4),a==0||a>40))return t;n.l-=4,t.Reserved2=n.read_shift(0,"lpwstr")}var CN=[60,1084,2066,2165,2175];function EN(e,t,n,a,i){var r=a,c=[],l=n.slice(n.l,n.l+r);if(i&&i.enc&&i.enc.insitu&&l.length>0)switch(e){case 9:case 521:case 1033:case 2057:case 47:case 405:case 225:case 406:case 312:case 404:case 10:break;case 133:break;default:i.enc.insitu(l)}c.push(l),n.l+=r;for(var f=Rs(n,n.l),T=Hh[f],p=0;T!=null&&CN.indexOf(f)>-1;)r=Rs(n,n.l+2),p=n.l+4,f==2066?p+=4:(f==2165||f==2175)&&(p+=12),l=n.slice(p,n.l+4+r),c.push(l),n.l+=4+r,T=Hh[f=Rs(n,n.l)];var m=lr(c);aa(m,0);var g=0;m.lens=[];for(var S=0;S<c.length;++S)m.lens.push(g),g+=c[S].length;if(m.length<a)throw"XLS Record 0x"+e.toString(16)+" Truncated: "+m.length+" < "+a;return t.f(m,m.length,i)}function Vi(e,t,n){if(e.t!=="z"&&e.XF){var a=0;try{a=e.z||e.XF.numFmtId||0,t.cellNF&&(e.z=vt[a])}catch(r){if(t.WTF)throw r}if(!t||t.cellText!==!1)try{e.t==="e"?e.w=e.w||h0[e.v]:a===0||a=="General"?e.t==="n"?(e.v|0)===e.v?e.w=e.v.toString(10):e.w=a1(e.v):e.w=i0(e.v):e.w=xi(a,e.v,{date1904:!!n,dateNF:t&&t.dateNF})}catch(r){if(t.WTF)throw r}if(t.cellDates&&a&&e.t=="n"&&Co(vt[a]||String(a))){var i=$r(e.v);i&&(e.t="d",e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u))}}}function $l(e,t,n){return{v:e,ixfe:t,t:n}}function kN(e,t){var n={opts:{}},a={},i=t.dense?[]:{},r={},c={},l=null,f=[],T="",p={},m,g="",S,x,y,w,C={},k=[],E,O,N=[],B=[],A={Sheets:[],WBProps:{date1904:!1},Views:[{}]},z={},P=function(pe){return pe<8?t0[pe]:pe<64&&B[pe-8]||t0[pe]},K=function(pe,He,Je){var rt=He.XF.data;if(!(!rt||!rt.patternType||!Je||!Je.cellStyles)){He.s={},He.s.patternType=rt.patternType;var Ye;(Ye=o1(P(rt.icvFore)))&&(He.s.fgColor={rgb:Ye}),(Ye=o1(P(rt.icvBack)))&&(He.s.bgColor={rgb:Ye})}},I=function(pe,He,Je){if(!(ee>1)&&!(Je.sheetRows&&pe.r>=Je.sheetRows)){if(Je.cellStyles&&He.XF&&He.XF.data&&K(pe,He,Je),delete He.ixfe,delete He.XF,m=pe,g=ht(pe),(!c||!c.s||!c.e)&&(c={s:{r:0,c:0},e:{r:0,c:0}}),pe.r<c.s.r&&(c.s.r=pe.r),pe.c<c.s.c&&(c.s.c=pe.c),pe.r+1>c.e.r&&(c.e.r=pe.r+1),pe.c+1>c.e.c&&(c.e.c=pe.c+1),Je.cellFormula&&He.f){for(var rt=0;rt<k.length;++rt)if(!(k[rt][0].s.c>pe.c||k[rt][0].s.r>pe.r)&&!(k[rt][0].e.c<pe.c||k[rt][0].e.r<pe.r)){He.F=Lt(k[rt][0]),(k[rt][0].s.c!=pe.c||k[rt][0].s.r!=pe.r)&&delete He.f,He.f&&(He.f=""+ha(k[rt][1],c,pe,te,L));break}}Je.dense?(i[pe.r]||(i[pe.r]=[]),i[pe.r][pe.c]=He):i[g]=He}},L={enc:!1,sbcch:0,snames:[],sharedf:C,arrayf:k,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!t&&!!t.cellStyles,WTF:!!t&&!!t.wtf};t.password&&(L.password=t.password);var le,ue=[],X=[],F=[],re=[],me=!1,te=[];te.SheetNames=L.snames,te.sharedf=L.sharedf,te.arrayf=L.arrayf,te.names=[],te.XTI=[];var Ce=0,ee=0,M=0,Y=[],Z=[],J;L.codepage=1200,Li(1200);for(var he=!1;e.l<e.length-1;){var ge=e.l,de=e.read_shift(2);if(de===0&&Ce===10)break;var fe=e.l===e.length?0:e.read_shift(2),ye=Hh[de];if(ye&&ye.f){if(t.bookSheets&&Ce===133&&de!==133)break;if(Ce=de,ye.r===2||ye.r==12){var qe=e.read_shift(2);if(fe-=2,!L.enc&&qe!==de&&((qe&255)<<8|qe>>8)!==de)throw new Error("rt mismatch: "+qe+"!="+de);ye.r==12&&(e.l+=10,fe-=10)}var ae={};if(de===10?ae=ye.f(e,fe,L):ae=EN(de,ye,e,fe,L),ee==0&&[9,521,1033,2057].indexOf(Ce)===-1)continue;switch(de){case 34:n.opts.Date1904=A.WBProps.date1904=ae;break;case 134:n.opts.WriteProtect=!0;break;case 47:if(L.enc||(e.l=0),L.enc=ae,!t.password)throw new Error("File is password-protected");if(ae.valid==null)throw new Error("Encryption scheme unsupported");if(!ae.valid)throw new Error("Password is incorrect");break;case 92:L.lastuser=ae;break;case 66:var Ne=Number(ae);switch(Ne){case 21010:Ne=1200;break;case 32768:Ne=1e4;break;case 32769:Ne=1252;break}Li(L.codepage=Ne),he=!0;break;case 317:L.rrtabid=ae;break;case 25:L.winlocked=ae;break;case 439:n.opts.RefreshAll=ae;break;case 12:n.opts.CalcCount=ae;break;case 16:n.opts.CalcDelta=ae;break;case 17:n.opts.CalcIter=ae;break;case 13:n.opts.CalcMode=ae;break;case 14:n.opts.CalcPrecision=ae;break;case 95:n.opts.CalcSaveRecalc=ae;break;case 15:L.CalcRefMode=ae;break;case 2211:n.opts.FullCalc=ae;break;case 129:ae.fDialog&&(i["!type"]="dialog"),ae.fBelow||((i["!outline"]||(i["!outline"]={})).above=!0),ae.fRight||((i["!outline"]||(i["!outline"]={})).left=!0);break;case 224:N.push(ae);break;case 430:te.push([ae]),te[te.length-1].XTI=[];break;case 35:case 547:te[te.length-1].push(ae);break;case 24:case 536:J={Name:ae.Name,Ref:ha(ae.rgce,c,null,te,L)},ae.itab>0&&(J.Sheet=ae.itab-1),te.names.push(J),te[0]||(te[0]=[],te[0].XTI=[]),te[te.length-1].push(ae),ae.Name=="_xlnm._FilterDatabase"&&ae.itab>0&&ae.rgce&&ae.rgce[0]&&ae.rgce[0][0]&&ae.rgce[0][0][0]=="PtgArea3d"&&(Z[ae.itab-1]={ref:Lt(ae.rgce[0][0][1][2])});break;case 22:L.ExternCount=ae;break;case 23:te.length==0&&(te[0]=[],te[0].XTI=[]),te[te.length-1].XTI=te[te.length-1].XTI.concat(ae),te.XTI=te.XTI.concat(ae);break;case 2196:if(L.biff<8)break;J!=null&&(J.Comment=ae[1]);break;case 18:i["!protect"]=ae;break;case 19:ae!==0&&L.WTF&&console.error("Password verifier: "+ae);break;case 133:r[ae.pos]=ae,L.snames.push(ae.name);break;case 10:{if(--ee)break;if(c.e){if(c.e.r>0&&c.e.c>0){if(c.e.r--,c.e.c--,i["!ref"]=Lt(c),t.sheetRows&&t.sheetRows<=c.e.r){var Ve=c.e.r;c.e.r=t.sheetRows-1,i["!fullref"]=i["!ref"],i["!ref"]=Lt(c),c.e.r=Ve}c.e.r++,c.e.c++}ue.length>0&&(i["!merges"]=ue),X.length>0&&(i["!objects"]=X),F.length>0&&(i["!cols"]=F),re.length>0&&(i["!rows"]=re),A.Sheets.push(z)}T===""?p=i:a[T]=i,i=t.dense?[]:{}}break;case 9:case 521:case 1033:case 2057:{if(L.biff===8&&(L.biff={9:2,521:3,1033:4}[de]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[ae.BIFFVer]||8),L.biffguess=ae.BIFFVer==0,ae.BIFFVer==0&&ae.dt==4096&&(L.biff=5,he=!0,Li(L.codepage=28591)),L.biff==8&&ae.BIFFVer==0&&ae.dt==16&&(L.biff=2),ee++)break;if(i=t.dense?[]:{},L.biff<8&&!he&&(he=!0,Li(L.codepage=t.codepage||1252)),L.biff<5||ae.BIFFVer==0&&ae.dt==4096){T===""&&(T="Sheet1"),c={s:{r:0,c:0},e:{r:0,c:0}};var tt={pos:e.l-fe,name:T};r[tt.pos]=tt,L.snames.push(T)}else T=(r[ge]||{name:""}).name;ae.dt==32&&(i["!type"]="chart"),ae.dt==64&&(i["!type"]="macro"),ue=[],X=[],L.arrayf=k=[],F=[],re=[],me=!1,z={Hidden:(r[ge]||{hs:0}).hs,name:T}}break;case 515:case 3:case 2:i["!type"]=="chart"&&(t.dense?(i[ae.r]||[])[ae.c]:i[ht({c:ae.c,r:ae.r})])&&++ae.c,E={ixfe:ae.ixfe,XF:N[ae.ixfe]||{},v:ae.val,t:"n"},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t);break;case 5:case 517:E={ixfe:ae.ixfe,XF:N[ae.ixfe],v:ae.val,t:ae.t},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t);break;case 638:E={ixfe:ae.ixfe,XF:N[ae.ixfe],v:ae.rknum,t:"n"},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t);break;case 189:for(var We=ae.c;We<=ae.C;++We){var Le=ae.rkrec[We-ae.c][0];E={ixfe:Le,XF:N[Le],v:ae.rkrec[We-ae.c][1],t:"n"},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:We,r:ae.r},E,t)}break;case 6:case 518:case 1030:{if(ae.val=="String"){l=ae;break}if(E=$l(ae.val,ae.cell.ixfe,ae.tt),E.XF=N[E.ixfe],t.cellFormula){var _e=ae.formula;if(_e&&_e[0]&&_e[0][0]&&_e[0][0][0]=="PtgExp"){var Xe=_e[0][0][1][0],pt=_e[0][0][1][1],Pt=ht({r:Xe,c:pt});C[Pt]?E.f=""+ha(ae.formula,c,ae.cell,te,L):E.F=((t.dense?(i[Xe]||[])[pt]:i[Pt])||{}).F}else E.f=""+ha(ae.formula,c,ae.cell,te,L)}M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I(ae.cell,E,t),l=ae}break;case 7:case 519:if(l)l.val=ae,E=$l(ae,l.cell.ixfe,"s"),E.XF=N[E.ixfe],t.cellFormula&&(E.f=""+ha(l.formula,c,l.cell,te,L)),M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I(l.cell,E,t),l=null;else throw new Error("String record expects Formula");break;case 33:case 545:{k.push(ae);var Kt=ht(ae[0].s);if(S=t.dense?(i[ae[0].s.r]||[])[ae[0].s.c]:i[Kt],t.cellFormula&&S){if(!l||!Kt||!S)break;S.f=""+ha(ae[1],c,ae[0],te,L),S.F=Lt(ae[0])}}break;case 1212:{if(!t.cellFormula)break;if(g){if(!l)break;C[ht(l.cell)]=ae[0],S=t.dense?(i[l.cell.r]||[])[l.cell.c]:i[ht(l.cell)],(S||{}).f=""+ha(ae[0],c,m,te,L)}}break;case 253:E=$l(f[ae.isst].t,ae.ixfe,"s"),f[ae.isst].h&&(E.h=f[ae.isst].h),E.XF=N[E.ixfe],M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t);break;case 513:t.sheetStubs&&(E={ixfe:ae.ixfe,XF:N[ae.ixfe],t:"z"},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t));break;case 190:if(t.sheetStubs)for(var Dt=ae.c;Dt<=ae.C;++Dt){var dt=ae.ixfe[Dt-ae.c];E={ixfe:dt,XF:N[dt],t:"z"},M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:Dt,r:ae.r},E,t)}break;case 214:case 516:case 4:E=$l(ae.val,ae.ixfe,"s"),E.XF=N[E.ixfe],M>0&&(E.z=Y[E.ixfe>>8&63]),Vi(E,t,n.opts.Date1904),I({c:ae.c,r:ae.r},E,t);break;case 0:case 512:ee===1&&(c=ae);break;case 252:f=ae;break;case 1054:if(L.biff==4){Y[M++]=ae[1];for(var jt=0;jt<M+163&&vt[jt]!=ae[1];++jt);jt>=163&&e0(ae[1],M+163)}else e0(ae[1],ae[0]);break;case 30:{Y[M++]=ae;for(var Gt=0;Gt<M+163&&vt[Gt]!=ae;++Gt);Gt>=163&&e0(ae,M+163)}break;case 229:ue=ue.concat(ae);break;case 93:X[ae.cmo[0]]=L.lastobj=ae;break;case 438:L.lastobj.TxO=ae;break;case 127:L.lastobj.ImData=ae;break;case 440:for(w=ae[0].s.r;w<=ae[0].e.r;++w)for(y=ae[0].s.c;y<=ae[0].e.c;++y)S=t.dense?(i[w]||[])[y]:i[ht({c:y,r:w})],S&&(S.l=ae[1]);break;case 2048:for(w=ae[0].s.r;w<=ae[0].e.r;++w)for(y=ae[0].s.c;y<=ae[0].e.c;++y)S=t.dense?(i[w]||[])[y]:i[ht({c:y,r:w})],S&&S.l&&(S.l.Tooltip=ae[1]);break;case 28:{if(L.biff<=5&&L.biff>=2)break;S=t.dense?(i[ae[0].r]||[])[ae[0].c]:i[ht(ae[0])];var ln=X[ae[2]];S||(t.dense?(i[ae[0].r]||(i[ae[0].r]=[]),S=i[ae[0].r][ae[0].c]={t:"z"}):S=i[ht(ae[0])]={t:"z"},c.e.r=Math.max(c.e.r,ae[0].r),c.s.r=Math.min(c.s.r,ae[0].r),c.e.c=Math.max(c.e.c,ae[0].c),c.s.c=Math.min(c.s.c,ae[0].c)),S.c||(S.c=[]),x={a:ae[1],t:ln.TxO.t},S.c.push(x)}break;case 2173:KA(N[ae.ixfe],ae.ext);break;case 125:{if(!L.cellStyles)break;for(;ae.e>=ae.s;)F[ae.e--]={width:ae.w/256,level:ae.level||0,hidden:!!(ae.flags&1)},me||(me=!0,Kp(ae.w/256)),yo(F[ae.e+1])}break;case 520:{var Et={};ae.level!=null&&(re[ae.r]=Et,Et.level=ae.level),ae.hidden&&(re[ae.r]=Et,Et.hidden=!0),ae.hpt&&(re[ae.r]=Et,Et.hpt=ae.hpt,Et.hpx=c1(ae.hpt))}break;case 38:case 39:case 40:case 41:i["!margins"]||Yc(i["!margins"]={}),i["!margins"][{38:"left",39:"right",40:"top",41:"bottom"}[de]]=ae;break;case 161:i["!margins"]||Yc(i["!margins"]={}),i["!margins"].header=ae.header,i["!margins"].footer=ae.footer;break;case 574:ae.RTL&&(A.Views[0].RTL=!0);break;case 146:B=ae;break;case 2198:le=ae;break;case 140:O=ae;break;case 442:T?z.CodeName=ae||z.name:A.WBProps.CodeName=ae||"ThisWorkbook";break}}else ye||console.error("Missing Info for XLS Record 0x"+de.toString(16)),e.l+=fe}return n.SheetNames=ns(r).sort(function(_t,pe){return Number(_t)-Number(pe)}).map(function(_t){return r[_t].name}),t.bookSheets||(n.Sheets=a),!n.SheetNames.length&&p["!ref"]?(n.SheetNames.push("Sheet1"),n.Sheets&&(n.Sheets.Sheet1=p)):n.Preamble=p,n.Sheets&&Z.forEach(function(_t,pe){n.Sheets[n.SheetNames[pe]]["!autofilter"]=_t}),n.Strings=f,n.SSF=sa(vt),L.enc&&(n.Encryption=L.enc),le&&(n.Themes=le),n.Metadata={},O!==void 0&&(n.Metadata.Country=O),te.names.length>0&&(A.Names=te.names),n.Workbook=A,n}var hx={SI:"e0859ff2f94f6810ab9108002b27b3d9",DSI:"02d5cdd59c2e1b10939708002b2cf9ae",UDI:"05d5cdd59c2e1b10939708002b2cf9ae"};function AN(e,t,n){var a=Ft.find(e,"/!DocumentSummaryInformation");if(a&&a.size>0)try{var i=Zv(a,VE,hx.DSI);for(var r in i)t[r]=i[r]}catch(T){if(n.WTF)throw T}var c=Ft.find(e,"/!SummaryInformation");if(c&&c.size>0)try{var l=Zv(c,HE,hx.SI);for(var f in l)t[f]==null&&(t[f]=l[f])}catch(T){if(n.WTF)throw T}t.HeadingPairs&&t.TitlesOfParts&&(eS(t.HeadingPairs,t.TitlesOfParts,t,n),delete t.HeadingPairs,delete t.TitlesOfParts)}function PS(e,t){t||(t={}),Qp(t),T4(),t.codepage&&Np(t.codepage);var n,a;if(e.FullPaths){if(Ft.find(e,"/encryption"))throw new Error("File is password-protected");n=Ft.find(e,"!CompObj"),a=Ft.find(e,"/Workbook")||Ft.find(e,"/Book")}else{switch(t.type){case"base64":e=Oi(Qa(e));break;case"binary":e=Oi(e);break;case"buffer":break;case"array":Array.isArray(e)||(e=Array.prototype.slice.call(e));break}aa(e,0),a={content:e}}var i,r;if(n&&wN(n),t.bookProps&&!t.bookSheets)i={};else{var c=Mt?"buffer":"array";if(a&&a.content)i=kN(a.content,t);else if((r=Ft.find(e,"PerfectOffice_MAIN"))&&r.content)i=Kc.to_workbook(r.content,(t.type=c,t));else if((r=Ft.find(e,"NativeContent_MAIN"))&&r.content)i=Kc.to_workbook(r.content,(t.type=c,t));else throw(r=Ft.find(e,"MN0"))&&r.content?new Error("Unsupported Works 4 for Mac file"):new Error("Cannot find Workbook stream");t.bookVBA&&e.FullPaths&&Ft.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(i.vbaraw=TR(e))}var l={};return e.FullPaths&&AN(e,l,t),i.Props=i.Custprops=l,t.bookFiles&&(i.cfb=e),i}var Vu={0:{f:cI},1:{f:TI},2:{f:SI},3:{f:mI},4:{f:hI},5:{f:yI},6:{f:CI},7:{f:vI},8:{f:DI},9:{f:RI},10:{f:kI},11:{f:AI},12:{f:fI},13:{f:bI},14:{f:gI},15:{f:pI},16:{f:OS},17:{f:EI},18:{f:xI},19:{f:zp},20:{},21:{},22:{},23:{},24:{},25:{},26:{},27:{},28:{},29:{},30:{},31:{},32:{},33:{},34:{},35:{T:1},36:{T:-1},37:{T:1},38:{T:-1},39:{f:nN},40:{},42:{},43:{f:kA},44:{f:EA},45:{f:AA},46:{f:DA},47:{f:RA},48:{},49:{f:IE},50:{},51:{f:YA},52:{T:1},53:{T:-1},54:{T:1},55:{T:-1},56:{T:1},57:{T:-1},58:{},59:{},60:{f:TS},62:{f:wI},63:{f:tR},64:{f:_I},65:{},66:{},67:{},68:{},69:{},70:{},128:{},129:{T:1},130:{T:-1},131:{T:1,f:xa,p:0},132:{T:-1},133:{T:1},134:{T:-1},135:{T:1},136:{T:-1},137:{T:1,f:PI},138:{T:-1},139:{T:1},140:{T:-1},141:{T:1},142:{T:-1},143:{T:1},144:{T:-1},145:{T:1},146:{T:-1},147:{f:dI},148:{f:lI,p:16},151:{f:OI},152:{},153:{f:eN},154:{},155:{},156:{f:QI},157:{},158:{},159:{T:1,f:H9},160:{T:-1},161:{T:1,f:f0},162:{T:-1},163:{T:1},164:{T:-1},165:{T:1},166:{T:-1},167:{},168:{},169:{},170:{},171:{},172:{T:1},173:{T:-1},174:{},175:{},176:{f:II},177:{T:1},178:{T:-1},179:{T:1},180:{T:-1},181:{T:1},182:{T:-1},183:{T:1},184:{T:-1},185:{T:1},186:{T:-1},187:{T:1},188:{T:-1},189:{T:1},190:{T:-1},191:{T:1},192:{T:-1},193:{T:1},194:{T:-1},195:{T:1},196:{T:-1},197:{T:1},198:{T:-1},199:{T:1},200:{T:-1},201:{T:1},202:{T:-1},203:{T:1},204:{T:-1},205:{T:1},206:{T:-1},207:{T:1},208:{T:-1},209:{T:1},210:{T:-1},211:{T:1},212:{T:-1},213:{T:1},214:{T:-1},215:{T:1},216:{T:-1},217:{T:1},218:{T:-1},219:{T:1},220:{T:-1},221:{T:1},222:{T:-1},223:{T:1},224:{T:-1},225:{T:1},226:{T:-1},227:{T:1},228:{T:-1},229:{T:1},230:{T:-1},231:{T:1},232:{T:-1},233:{T:1},234:{T:-1},235:{T:1},236:{T:-1},237:{T:1},238:{T:-1},239:{T:1},240:{T:-1},241:{T:1},242:{T:-1},243:{T:1},244:{T:-1},245:{T:1},246:{T:-1},247:{T:1},248:{T:-1},249:{T:1},250:{T:-1},251:{T:1},252:{T:-1},253:{T:1},254:{T:-1},255:{T:1},256:{T:-1},257:{T:1},258:{T:-1},259:{T:1},260:{T:-1},261:{T:1},262:{T:-1},263:{T:1},264:{T:-1},265:{T:1},266:{T:-1},267:{T:1},268:{T:-1},269:{T:1},270:{T:-1},271:{T:1},272:{T:-1},273:{T:1},274:{T:-1},275:{T:1},276:{T:-1},277:{},278:{T:1},279:{T:-1},280:{T:1},281:{T:-1},282:{T:1},283:{T:1},284:{T:-1},285:{T:1},286:{T:-1},287:{T:1},288:{T:-1},289:{T:1},290:{T:-1},291:{T:1},292:{T:-1},293:{T:1},294:{T:-1},295:{T:1},296:{T:-1},297:{T:1},298:{T:-1},299:{T:1},300:{T:-1},301:{T:1},302:{T:-1},303:{T:1},304:{T:-1},305:{T:1},306:{T:-1},307:{T:1},308:{T:-1},309:{T:1},310:{T:-1},311:{T:1},312:{T:-1},313:{T:-1},314:{T:1},315:{T:-1},316:{T:1},317:{T:-1},318:{T:1},319:{T:-1},320:{T:1},321:{T:-1},322:{T:1},323:{T:-1},324:{T:1},325:{T:-1},326:{T:1},327:{T:-1},328:{T:1},329:{T:-1},330:{T:1},331:{T:-1},332:{T:1},333:{T:-1},334:{T:1},335:{f:$A},336:{T:-1},337:{f:ZA,T:1},338:{T:-1},339:{T:1},340:{T:-1},341:{T:1},342:{T:-1},343:{T:1},344:{T:-1},345:{T:1},346:{T:-1},347:{T:1},348:{T:-1},349:{T:1},350:{T:-1},351:{},352:{},353:{T:1},354:{T:-1},355:{f:Bh},357:{},358:{},359:{},360:{T:1},361:{},362:{f:dS},363:{},364:{},366:{},367:{},368:{},369:{},370:{},371:{},372:{T:1},373:{T:-1},374:{T:1},375:{T:-1},376:{T:1},377:{T:-1},378:{T:1},379:{T:-1},380:{T:1},381:{T:-1},382:{T:1},383:{T:-1},384:{T:1},385:{T:-1},386:{T:1},387:{T:-1},388:{T:1},389:{T:-1},390:{T:1},391:{T:-1},392:{T:1},393:{T:-1},394:{T:1},395:{T:-1},396:{},397:{},398:{},399:{},400:{},401:{T:1},403:{},404:{},405:{},406:{},407:{},408:{},409:{},410:{},411:{},412:{},413:{},414:{},415:{},416:{},417:{},418:{},419:{},420:{},421:{},422:{T:1},423:{T:1},424:{T:-1},425:{T:-1},426:{f:MI},427:{f:jI},428:{},429:{T:1},430:{T:-1},431:{T:1},432:{T:-1},433:{T:1},434:{T:-1},435:{T:1},436:{T:-1},437:{T:1},438:{T:-1},439:{T:1},440:{T:-1},441:{T:1},442:{T:-1},443:{T:1},444:{T:-1},445:{T:1},446:{T:-1},447:{T:1},448:{T:-1},449:{T:1},450:{T:-1},451:{T:1},452:{T:-1},453:{T:1},454:{T:-1},455:{T:1},456:{T:-1},457:{T:1},458:{T:-1},459:{T:1},460:{T:-1},461:{T:1},462:{T:-1},463:{T:1},464:{T:-1},465:{T:1},466:{T:-1},467:{T:1},468:{T:-1},469:{T:1},470:{T:-1},471:{},472:{},473:{T:1},474:{T:-1},475:{},476:{f:LI},477:{},478:{},479:{T:1},480:{T:-1},481:{T:1},482:{T:-1},483:{T:1},484:{T:-1},485:{f:uI},486:{T:1},487:{T:-1},488:{T:1},489:{T:-1},490:{T:1},491:{T:-1},492:{T:1},493:{T:-1},494:{f:NI},495:{T:1},496:{T:-1},497:{T:1},498:{T:-1},499:{},500:{T:1},501:{T:-1},502:{T:1},503:{T:-1},504:{},505:{T:1},506:{T:-1},507:{},508:{T:1},509:{T:-1},510:{T:1},511:{T:-1},512:{},513:{},514:{T:1},515:{T:-1},516:{T:1},517:{T:-1},518:{T:1},519:{T:-1},520:{T:1},521:{T:-1},522:{},523:{},524:{},525:{},526:{},527:{},528:{T:1},529:{T:-1},530:{T:1},531:{T:-1},532:{T:1},533:{T:-1},534:{},535:{},536:{},537:{},538:{T:1},539:{T:-1},540:{T:1},541:{T:-1},542:{T:1},548:{},549:{},550:{f:Bh},551:{},552:{},553:{},554:{T:1},555:{T:-1},556:{T:1},557:{T:-1},558:{T:1},559:{T:-1},560:{T:1},561:{T:-1},562:{},564:{},565:{T:1},566:{T:-1},569:{T:1},570:{T:-1},572:{},573:{T:1},574:{T:-1},577:{},578:{},579:{},580:{},581:{},582:{},583:{},584:{},585:{},586:{},587:{},588:{T:-1},589:{},590:{T:1},591:{T:-1},592:{T:1},593:{T:-1},594:{T:1},595:{T:-1},596:{},597:{T:1},598:{T:-1},599:{T:1},600:{T:-1},601:{T:1},602:{T:-1},603:{T:1},604:{T:-1},605:{T:1},606:{T:-1},607:{},608:{T:1},609:{T:-1},610:{},611:{T:1},612:{T:-1},613:{T:1},614:{T:-1},615:{T:1},616:{T:-1},617:{T:1},618:{T:-1},619:{T:1},620:{T:-1},625:{},626:{T:1},627:{T:-1},628:{T:1},629:{T:-1},630:{T:1},631:{T:-1},632:{f:lR},633:{T:1},634:{T:-1},635:{T:1,f:cR},636:{T:-1},637:{f:OE},638:{T:1},639:{},640:{T:-1},641:{T:1},642:{T:-1},643:{T:1},644:{},645:{T:-1},646:{T:1},648:{T:1},649:{},650:{T:-1},651:{f:VI},652:{},653:{T:1},654:{T:-1},655:{T:1},656:{T:-1},657:{T:1},658:{T:-1},659:{},660:{T:1},661:{},662:{T:-1},663:{},664:{T:1},665:{},666:{T:-1},667:{},668:{},669:{},671:{T:1},672:{T:-1},673:{T:1},674:{T:-1},675:{},676:{},677:{},678:{},679:{},680:{},681:{},1024:{},1025:{},1026:{T:1},1027:{T:-1},1028:{T:1},1029:{T:-1},1030:{},1031:{T:1},1032:{T:-1},1033:{T:1},1034:{T:-1},1035:{},1036:{},1037:{},1038:{T:1},1039:{T:-1},1040:{},1041:{T:1},1042:{T:-1},1043:{},1044:{},1045:{},1046:{T:1},1047:{T:-1},1048:{T:1},1049:{T:-1},1050:{},1051:{T:1},1052:{T:1},1053:{f:qI},1054:{T:1},1055:{},1056:{T:1},1057:{T:-1},1058:{T:1},1059:{T:-1},1061:{},1062:{T:1},1063:{T:-1},1064:{T:1},1065:{T:-1},1066:{T:1},1067:{T:-1},1068:{T:1},1069:{T:-1},1070:{T:1},1071:{T:-1},1072:{T:1},1073:{T:-1},1075:{T:1},1076:{T:-1},1077:{T:1},1078:{T:-1},1079:{T:1},1080:{T:-1},1081:{T:1},1082:{T:-1},1083:{T:1},1084:{T:-1},1085:{},1086:{T:1},1087:{T:-1},1088:{T:1},1089:{T:-1},1090:{T:1},1091:{T:-1},1092:{T:1},1093:{T:-1},1094:{T:1},1095:{T:-1},1096:{},1097:{T:1},1098:{},1099:{T:-1},1100:{T:1},1101:{T:-1},1102:{},1103:{},1104:{},1105:{},1111:{},1112:{},1113:{T:1},1114:{T:-1},1115:{T:1},1116:{T:-1},1117:{},1118:{T:1},1119:{T:-1},1120:{T:1},1121:{T:-1},1122:{T:1},1123:{T:-1},1124:{T:1},1125:{T:-1},1126:{},1128:{T:1},1129:{T:-1},1130:{},1131:{T:1},1132:{T:-1},1133:{T:1},1134:{T:-1},1135:{T:1},1136:{T:-1},1137:{T:1},1138:{T:-1},1139:{T:1},1140:{T:-1},1141:{},1142:{T:1},1143:{T:-1},1144:{T:1},1145:{T:-1},1146:{},1147:{T:1},1148:{T:-1},1149:{T:1},1150:{T:-1},1152:{T:1},1153:{T:-1},1154:{T:-1},1155:{T:-1},1156:{T:-1},1157:{T:1},1158:{T:-1},1159:{T:1},1160:{T:-1},1161:{T:1},1162:{T:-1},1163:{T:1},1164:{T:-1},1165:{T:1},1166:{T:-1},1167:{T:1},1168:{T:-1},1169:{T:1},1170:{T:-1},1171:{},1172:{T:1},1173:{T:-1},1177:{},1178:{T:1},1180:{},1181:{},1182:{},2048:{T:1},2049:{T:-1},2050:{},2051:{T:1},2052:{T:-1},2053:{},2054:{},2055:{T:1},2056:{T:-1},2057:{T:1},2058:{T:-1},2060:{},2067:{},2068:{T:1},2069:{T:-1},2070:{},2071:{},2072:{T:1},2073:{T:-1},2075:{},2076:{},2077:{T:1},2078:{T:-1},2079:{},2080:{T:1},2081:{T:-1},2082:{},2083:{T:1},2084:{T:-1},2085:{T:1},2086:{T:-1},2087:{T:1},2088:{T:-1},2089:{T:1},2090:{T:-1},2091:{},2092:{},2093:{T:1},2094:{T:-1},2095:{},2096:{T:1},2097:{T:-1},2098:{T:1},2099:{T:-1},2100:{T:1},2101:{T:-1},2102:{},2103:{T:1},2104:{T:-1},2105:{},2106:{T:1},2107:{T:-1},2108:{},2109:{T:1},2110:{T:-1},2111:{T:1},2112:{T:-1},2113:{T:1},2114:{T:-1},2115:{},2116:{},2117:{},2118:{T:1},2119:{T:-1},2120:{},2121:{T:1},2122:{T:-1},2123:{T:1},2124:{T:-1},2125:{},2126:{T:1},2127:{T:-1},2128:{},2129:{T:1},2130:{T:-1},2131:{T:1},2132:{T:-1},2133:{T:1},2134:{},2135:{},2136:{},2137:{T:1},2138:{T:-1},2139:{T:1},2140:{T:-1},2141:{},3072:{},3073:{},4096:{T:1},4097:{T:-1},5002:{T:1},5003:{T:-1},5081:{T:1},5082:{T:-1},5083:{},5084:{T:1},5085:{T:-1},5086:{T:1},5087:{T:-1},5088:{},5089:{},5090:{},5092:{T:1},5093:{T:-1},5094:{},5095:{T:1},5096:{T:-1},5097:{},5099:{},65535:{n:""}},Hh={6:{f:qf},10:{f:sr},12:{f:jn},13:{f:jn},14:{f:Cn},15:{f:Cn},16:{f:pa},17:{f:Cn},18:{f:Cn},19:{f:jn},20:{f:tx},21:{f:tx},23:{f:dS},24:{f:ax},25:{f:Cn},26:{},27:{},28:{f:r9},29:{},34:{f:Cn},35:{f:nx},38:{f:pa},39:{f:pa},40:{f:pa},41:{f:pa},42:{f:Cn},43:{f:Cn},47:{f:uA},49:{f:Uk},51:{f:jn},60:{},61:{f:_k},64:{f:Cn},65:{f:Bk},66:{f:jn},77:{},80:{},81:{},82:{},85:{f:jn},89:{},90:{},91:{},92:{f:Ik},93:{f:c9},94:{},95:{f:Cn},96:{},97:{},99:{f:Cn},125:{f:TS},128:{f:Zk},129:{f:Nk},130:{f:jn},131:{f:Cn},132:{f:Cn},133:{f:Ok},134:{},140:{f:h9},141:{f:jn},144:{},146:{f:m9},151:{},152:{},153:{},154:{},155:{},156:{f:jn},157:{},158:{},160:{f:S9},161:{f:v9},174:{},175:{},176:{},177:{},178:{},180:{},181:{},182:{},184:{},185:{},189:{f:Xk},190:{f:Kk},193:{f:sr},197:{},198:{},199:{},200:{},201:{},202:{f:Cn},203:{},204:{},205:{},206:{},207:{},208:{},209:{},210:{},211:{},213:{},215:{},216:{},217:{},218:{f:jn},220:{},221:{f:Cn},222:{},224:{f:Yk},225:{f:Dk},226:{f:sr},227:{},229:{f:o9},233:{},235:{},236:{},237:{},239:{},240:{},241:{},242:{},244:{},245:{},246:{},247:{},248:{},249:{},251:{},252:{f:Mk},253:{f:zk},255:{f:jk},256:{},259:{},290:{},311:{},312:{},315:{},317:{f:sS},318:{},319:{},320:{},330:{},331:{},333:{},334:{},335:{},336:{},337:{},338:{},339:{},340:{},351:{},352:{f:Cn},353:{f:sr},401:{},402:{},403:{},404:{},405:{},406:{},407:{},408:{},425:{},426:{},427:{},428:{},429:{},430:{f:Qk},431:{f:Cn},432:{},433:{},434:{},437:{},438:{f:d9},439:{f:Cn},440:{f:T9},441:{},442:{f:k1},443:{},444:{f:jn},445:{},446:{},448:{f:sr},449:{f:Pk,r:2},450:{f:sr},512:{f:Qv},513:{f:y9},515:{f:Jk},516:{f:Wk},517:{f:ex},519:{f:b9},520:{f:Fk},523:{},545:{f:ix},549:{f:Jv},566:{},574:{f:qk},638:{f:Gk},659:{},1048:{},1054:{f:Vk},1084:{},1212:{f:a9},2048:{f:f9},2049:{},2050:{},2051:{},2052:{},2053:{},2054:{},2055:{},2056:{},2057:{f:Gl},2058:{},2059:{},2060:{},2061:{},2062:{},2063:{},2064:{},2066:{},2067:{},2128:{},2129:{},2130:{},2131:{},2132:{},2133:{},2134:{},2135:{},2136:{},2137:{},2138:{},2146:{},2147:{r:12},2148:{},2149:{},2150:{},2151:{f:sr},2152:{},2154:{},2155:{},2156:{},2161:{},2162:{},2164:{},2165:{},2166:{},2167:{},2168:{},2169:{},2170:{},2171:{},2172:{f:g9,r:12},2173:{f:XA,r:12},2174:{},2175:{},2180:{},2181:{},2182:{},2183:{},2184:{},2185:{},2186:{},2187:{},2188:{f:Cn,r:12},2189:{},2190:{r:12},2191:{},2192:{},2194:{},2195:{},2196:{f:n9,r:12},2197:{},2198:{f:UA,r:12},2199:{},2200:{},2201:{},2202:{f:i9,r:12},2203:{f:sr},2204:{},2205:{},2206:{},2207:{},2211:{f:Lk},2212:{},2213:{},2214:{},2215:{},4097:{},4098:{},4099:{},4102:{},4103:{},4105:{},4106:{},4107:{},4108:{},4109:{},4116:{},4117:{},4118:{},4119:{},4120:{},4121:{},4122:{},4123:{},4124:{},4125:{},4126:{},4127:{},4128:{},4129:{},4130:{},4132:{},4133:{},4134:{f:jn},4135:{},4146:{},4147:{},4148:{},4149:{},4154:{},4156:{},4157:{},4158:{},4159:{},4160:{},4161:{},4163:{},4164:{f:x9},4165:{},4166:{},4168:{},4170:{},4171:{},4174:{},4175:{},4176:{},4177:{},4187:{},4188:{f:p9},4189:{},4191:{},4192:{},4193:{},4194:{},4195:{},4196:{},4197:{},4198:{},4199:{},4200:{},0:{f:Qv},1:{},2:{f:k9},3:{f:E9},4:{f:C9},5:{f:ex},7:{f:A9},8:{},9:{f:Gl},11:{},22:{f:jn},30:{f:Hk},31:{},32:{},33:{f:ix},36:{},37:{f:Jv},50:{f:R9},62:{},52:{},67:{},68:{f:jn},69:{},86:{},126:{},127:{f:w9},135:{},136:{},137:{},145:{},148:{},149:{},150:{},169:{},171:{},188:{},191:{},192:{},194:{},195:{},214:{f:D9},223:{},234:{},354:{},421:{},518:{f:qf},521:{f:Gl},536:{f:ax},547:{f:nx},561:{},579:{},1030:{f:qf},1033:{f:Gl},1091:{},2157:{},2163:{},2177:{},2240:{},2241:{},2242:{},2243:{},2244:{},2245:{},2246:{},2247:{},2248:{},2249:{},2250:{},2251:{},2262:{r:12},29282:{}};function Ii(e,t,n,a){var i=t;if(!isNaN(i)){var r=(n||[]).length||0,c=e.next(4);c.write_shift(2,i),c.write_shift(2,r),r>0&&G4(n)&&e.push(n)}}function px(e,t){var n=t||{},a=n.dense?[]:{};e=e.replace(/<!--.*?-->/g,"");var i=e.match(/<table/i);if(!i)throw new Error("Invalid HTML: could not find <table>");var r=e.match(/<\/table/i),c=i.index,l=r&&r.index||e.length,f=JC(e.slice(c,l),/(:?<tr[^>]*>)/i,"<tr>"),T=-1,p=0,m=0,g=0,S={s:{r:1e7,c:1e7},e:{r:0,c:0}},x=[];for(c=0;c<f.length;++c){var y=f[c].trim(),w=y.slice(0,3).toLowerCase();if(w=="<tr"){if(++T,n.sheetRows&&n.sheetRows<=T){--T;break}p=0;continue}if(!(w!="<td"&&w!="<th")){var C=y.split(/<\/t[dh]>/i);for(l=0;l<C.length;++l){var k=C[l].trim();if(k.match(/<t[dh]/i)){for(var E=k,O=0;E.charAt(0)=="<"&&(O=E.indexOf(">"))>-1;)E=E.slice(O+1);for(var N=0;N<x.length;++N){var B=x[N];B.s.c==p&&B.s.r<T&&T<=B.e.r&&(p=B.e.c+1,N=-1)}var A=it(k.slice(0,k.indexOf(">")));g=A.colspan?+A.colspan:1,((m=+A.rowspan)>1||g>1)&&x.push({s:{r:T,c:p},e:{r:T+(m||1)-1,c:p+g-1}});var z=A.t||A["data-t"]||"";if(!E.length){p+=g;continue}if(E=M4(E),S.s.r>T&&(S.s.r=T),S.e.r<T&&(S.e.r=T),S.s.c>p&&(S.s.c=p),S.e.c<p&&(S.e.c=p),!E.length){p+=g;continue}var P={t:"s",v:E};n.raw||!E.trim().length||z=="s"||(E==="TRUE"?P={t:"b",v:!0}:E==="FALSE"?P={t:"b",v:!1}:isNaN(_i(E))?isNaN(xo(E).getDate())||(P={t:"d",v:Yn(E)},n.cellDates||(P={t:"n",v:Ma(P.v)}),P.z=n.dateNF||vt[14]):P={t:"n",v:_i(E)}),n.dense?(a[T]||(a[T]=[]),a[T][p]=P):a[ht({r:T,c:p})]=P,p+=g}}}}return a["!ref"]=Lt(S),x.length&&(a["!merges"]=x),a}function RN(e,t,n,a){for(var i=e["!merges"]||[],r=[],c=t.s.c;c<=t.e.c;++c){for(var l=0,f=0,T=0;T<i.length;++T)if(!(i[T].s.r>n||i[T].s.c>c)&&!(i[T].e.r<n||i[T].e.c<c)){if(i[T].s.r<n||i[T].s.c<c){l=-1;break}l=i[T].e.r-i[T].s.r+1,f=i[T].e.c-i[T].s.c+1;break}if(!(l<0)){var p=ht({r:n,c}),m=a.dense?(e[n]||[])[c]:e[p],g=m&&m.v!=null&&(m.h||Pp(m.w||(Ms(m),m.w)||""))||"",S={};l>1&&(S.rowspan=l),f>1&&(S.colspan=f),a.editable?g='<span contenteditable="true">'+g+"</span>":m&&(S["data-t"]=m&&m.t||"z",m.v!=null&&(S["data-v"]=m.v),m.z!=null&&(S["data-z"]=m.z),m.l&&(m.l.Target||"#").charAt(0)!="#"&&(g='<a href="'+m.l.Target+'">'+g+"</a>")),S.id=(a.id||"sjs")+"-"+p,r.push(hE("td",g,S))}}var x="<tr>";return x+r.join("")+"</tr>"}var DN='<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body>',IN="</body></html>";function NN(e,t){var n=e.match(/<table[\s\S]*?>[\s\S]*?<\/table>/gi);if(!n||n.length==0)throw new Error("Invalid HTML: could not find <table>");if(n.length==1)return xr(px(n[0],t),t);var a=tm();return n.forEach(function(i,r){nm(a,px(i,t),"Sheet"+(r+1))}),a}function ON(e,t,n){var a=[];return a.join("")+"<table"+(n&&n.id?' id="'+n.id+'"':"")+">"}function MN(e,t){var n=t||{},a=n.header!=null?n.header:DN,i=n.footer!=null?n.footer:IN,r=[a],c=Eo(e["!ref"]);n.dense=Array.isArray(e),r.push(ON(e,c,n));for(var l=c.s.r;l<=c.e.r;++l)r.push(RN(e,c,l,n));return r.push("</table>"+i),r.join("")}function _S(e,t,n){var a=n||{},i=0,r=0;if(a.origin!=null)if(typeof a.origin=="number")i=a.origin;else{var c=typeof a.origin=="string"?Na(a.origin):a.origin;i=c.r,r=c.c}var l=t.getElementsByTagName("tr"),f=Math.min(a.sheetRows||1e7,l.length),T={s:{r:0,c:0},e:{r:i,c:r}};if(e["!ref"]){var p=Eo(e["!ref"]);T.s.r=Math.min(T.s.r,p.s.r),T.s.c=Math.min(T.s.c,p.s.c),T.e.r=Math.max(T.e.r,p.e.r),T.e.c=Math.max(T.e.c,p.e.c),i==-1&&(T.e.r=i=p.e.r+1)}var m=[],g=0,S=e["!rows"]||(e["!rows"]=[]),x=0,y=0,w=0,C=0,k=0,E=0;for(e["!cols"]||(e["!cols"]=[]);x<l.length&&y<f;++x){var O=l[x];if(mx(O)){if(a.display)continue;S[y]={hidden:!0}}var N=O.children;for(w=C=0;w<N.length;++w){var B=N[w];if(!(a.display&&mx(B))){var A=B.hasAttribute("data-v")?B.getAttribute("data-v"):B.hasAttribute("v")?B.getAttribute("v"):M4(B.innerHTML),z=B.getAttribute("data-z")||B.getAttribute("z");for(g=0;g<m.length;++g){var P=m[g];P.s.c==C+r&&P.s.r<y+i&&y+i<=P.e.r&&(C=P.e.c+1-r,g=-1)}E=+B.getAttribute("colspan")||1,((k=+B.getAttribute("rowspan")||1)>1||E>1)&&m.push({s:{r:y+i,c:C+r},e:{r:y+i+(k||1)-1,c:C+r+(E||1)-1}});var K={t:"s",v:A},I=B.getAttribute("data-t")||B.getAttribute("t")||"";A!=null&&(A.length==0?K.t=I||"z":a.raw||A.trim().length==0||I=="s"||(A==="TRUE"?K={t:"b",v:!0}:A==="FALSE"?K={t:"b",v:!1}:isNaN(_i(A))?isNaN(xo(A).getDate())||(K={t:"d",v:Yn(A)},a.cellDates||(K={t:"n",v:Ma(K.v)}),K.z=a.dateNF||vt[14]):K={t:"n",v:_i(A)})),K.z===void 0&&z!=null&&(K.z=z);var L="",le=B.getElementsByTagName("A");if(le&&le.length)for(var ue=0;ue<le.length&&!(le[ue].hasAttribute("href")&&(L=le[ue].getAttribute("href"),L.charAt(0)!="#"));++ue);L&&L.charAt(0)!="#"&&(K.l={Target:L}),a.dense?(e[y+i]||(e[y+i]=[]),e[y+i][C+r]=K):e[ht({c:C+r,r:y+i})]=K,T.e.c<C+r&&(T.e.c=C+r),C+=E}}++y}return m.length&&(e["!merges"]=(e["!merges"]||[]).concat(m)),T.e.r=Math.max(T.e.r,y-1+i),e["!ref"]=Lt(T),y>=f&&(e["!fullref"]=Lt((T.e.r=l.length-x+y-1+i,T))),e}function qS(e,t){var n=t||{},a=n.dense?[]:{};return _S(a,e,t)}function jN(e,t){return xr(qS(e,t),t)}function mx(e){var t="",n=FN(e);return n&&(t=n(e).getPropertyValue("display")),t||(t=e.style&&e.style.display),t==="none"}function FN(e){return e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle=="function"?e.ownerDocument.defaultView.getComputedStyle:typeof getComputedStyle=="function"?getComputedStyle:null}function LN(e){var t=e.replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(/<text:s\/>/g," ").replace(/<text:s text:c="(\d+)"\/>/g,function(a,i){return Array(parseInt(i,10)+1).join(" ")}).replace(/<text:tab[^>]*\/>/g," ").replace(/<text:line-break\/>/g,`
|
||
`),n=Ut(t.replace(/<[^>]*>/g,""));return[n]}var gx={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};function BS(e,t){var n=t||{},a=_p(e),i=[],r,c,l={name:""},f="",T=0,p,m,g={},S=[],x=n.dense?[]:{},y,w,C={value:""},k="",E=0,O=[],N=-1,B=-1,A={s:{r:1e6,c:1e7},e:{r:0,c:0}},z=0,P={},K=[],I={},L=0,le=0,ue=[],X=1,F=1,re=[],me={Names:[]},te={},Ce=["",""],ee=[],M={},Y="",Z=0,J=!1,he=!1,ge=0;for(s1.lastIndex=0,a=a.replace(/<!--([\s\S]*?)-->/mg,"").replace(/<!DOCTYPE[^\[]*\[[^\]]*\]>/gm,"");y=s1.exec(a);)switch(y[3]=y[3].replace(/_.*$/,"")){case"table":case"工作表":y[1]==="/"?(A.e.c>=A.s.c&&A.e.r>=A.s.r?x["!ref"]=Lt(A):x["!ref"]="A1:A1",n.sheetRows>0&&n.sheetRows<=A.e.r&&(x["!fullref"]=x["!ref"],A.e.r=n.sheetRows-1,x["!ref"]=Lt(A)),K.length&&(x["!merges"]=K),ue.length&&(x["!rows"]=ue),p.name=p.名称||p.name,typeof JSON<"u"&&JSON.stringify(p),S.push(p.name),g[p.name]=x,he=!1):y[0].charAt(y[0].length-2)!=="/"&&(p=it(y[0],!1),N=B=-1,A.s.r=A.s.c=1e7,A.e.r=A.e.c=0,x=n.dense?[]:{},K=[],ue=[],he=!0);break;case"table-row-group":y[1]==="/"?--z:++z;break;case"table-row":case"行":if(y[1]==="/"){N+=X,X=1;break}if(m=it(y[0],!1),m.行号?N=m.行号-1:N==-1&&(N=0),X=+m["number-rows-repeated"]||1,X<10)for(ge=0;ge<X;++ge)z>0&&(ue[N+ge]={level:z});B=-1;break;case"covered-table-cell":y[1]!=="/"&&++B,n.sheetStubs&&(n.dense?(x[N]||(x[N]=[]),x[N][B]={t:"z"}):x[ht({r:N,c:B})]={t:"z"}),k="",O=[];break;case"table-cell":case"数据":if(y[0].charAt(y[0].length-2)==="/")++B,C=it(y[0],!1),F=parseInt(C["number-columns-repeated"]||"1",10),w={t:"z",v:null},C.formula&&n.cellFormula!=!1&&(w.f=dx(Ut(C.formula))),(C.数据类型||C["value-type"])=="string"&&(w.t="s",w.v=Ut(C["string-value"]||""),n.dense?(x[N]||(x[N]=[]),x[N][B]=w):x[ht({r:N,c:B})]=w),B+=F-1;else if(y[1]!=="/"){++B,k="",E=0,O=[],F=1;var de=X?N+X-1:N;if(B>A.e.c&&(A.e.c=B),B<A.s.c&&(A.s.c=B),N<A.s.r&&(A.s.r=N),de>A.e.r&&(A.e.r=de),C=it(y[0],!1),ee=[],M={},w={t:C.数据类型||C["value-type"],v:null},n.cellFormula)if(C.formula&&(C.formula=Ut(C.formula)),C["number-matrix-columns-spanned"]&&C["number-matrix-rows-spanned"]&&(L=parseInt(C["number-matrix-rows-spanned"],10)||0,le=parseInt(C["number-matrix-columns-spanned"],10)||0,I={s:{r:N,c:B},e:{r:N+L-1,c:B+le-1}},w.F=Lt(I),re.push([I,w.F])),C.formula)w.f=dx(C.formula);else for(ge=0;ge<re.length;++ge)N>=re[ge][0].s.r&&N<=re[ge][0].e.r&&B>=re[ge][0].s.c&&B<=re[ge][0].e.c&&(w.F=re[ge][1]);switch((C["number-columns-spanned"]||C["number-rows-spanned"])&&(L=parseInt(C["number-rows-spanned"],10)||0,le=parseInt(C["number-columns-spanned"],10)||0,I={s:{r:N,c:B},e:{r:N+L-1,c:B+le-1}},K.push(I)),C["number-columns-repeated"]&&(F=parseInt(C["number-columns-repeated"],10)),w.t){case"boolean":w.t="b",w.v=dn(C["boolean-value"]);break;case"float":w.t="n",w.v=parseFloat(C.value);break;case"percentage":w.t="n",w.v=parseFloat(C.value);break;case"currency":w.t="n",w.v=parseFloat(C.value);break;case"date":w.t="d",w.v=Yn(C["date-value"]),n.cellDates||(w.t="n",w.v=Ma(w.v)),w.z="m/d/yy";break;case"time":w.t="n",w.v=$C(C["time-value"])/86400,n.cellDates&&(w.t="d",w.v=cd(w.v)),w.z="HH:MM:SS";break;case"number":w.t="n",w.v=parseFloat(C.数据数值);break;default:if(w.t==="string"||w.t==="text"||!w.t)w.t="s",C["string-value"]!=null&&(k=Ut(C["string-value"]),O=[]);else throw new Error("Unsupported value type "+w.t)}}else{if(J=!1,w.t==="s"&&(w.v=k||"",O.length&&(w.R=O),J=E==0),te.Target&&(w.l=te),ee.length>0&&(w.c=ee,ee=[]),k&&n.cellText!==!1&&(w.w=k),J&&(w.t="z",delete w.v),(!J||n.sheetStubs)&&!(n.sheetRows&&n.sheetRows<=N))for(var fe=0;fe<X;++fe){if(F=parseInt(C["number-columns-repeated"]||"1",10),n.dense)for(x[N+fe]||(x[N+fe]=[]),x[N+fe][B]=fe==0?w:sa(w);--F>0;)x[N+fe][B+F]=sa(w);else for(x[ht({r:N+fe,c:B})]=w;--F>0;)x[ht({r:N+fe,c:B+F})]=sa(w);A.e.c<=B&&(A.e.c=B)}F=parseInt(C["number-columns-repeated"]||"1",10),B+=F-1,F=0,w={},k="",O=[]}te={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if(y[1]==="/"){if((r=i.pop())[0]!==y[3])throw"Bad state: "+r}else y[0].charAt(y[0].length-2)!=="/"&&i.push([y[3],!0]);break;case"annotation":if(y[1]==="/"){if((r=i.pop())[0]!==y[3])throw"Bad state: "+r;M.t=k,O.length&&(M.R=O),M.a=Y,ee.push(M)}else y[0].charAt(y[0].length-2)!=="/"&&i.push([y[3],!1]);Y="",Z=0,k="",E=0,O=[];break;case"creator":y[1]==="/"?Y=a.slice(Z,y.index):Z=y.index+y[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if(y[1]==="/"){if((r=i.pop())[0]!==y[3])throw"Bad state: "+r}else y[0].charAt(y[0].length-2)!=="/"&&i.push([y[3],!1]);k="",E=0,O=[];break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if(y[1]==="/"){if(P[l.name]=f,(r=i.pop())[0]!==y[3])throw"Bad state: "+r}else y[0].charAt(y[0].length-2)!=="/"&&(f="",l=it(y[0],!1),i.push([y[3],!0]));break;case"script":break;case"libraries":break;case"automatic-styles":break;case"default-style":case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(i[i.length-1][0]){case"time-style":case"date-style":c=it(y[0],!1),f+=gx[y[3]][c.style==="long"?1:0];break}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(i[i.length-1][0]){case"time-style":case"date-style":c=it(y[0],!1),f+=gx[y[3]][c.style==="long"?1:0];break}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(y[0].slice(-2)==="/>")break;if(y[1]==="/")switch(i[i.length-1][0]){case"number-style":case"date-style":case"time-style":f+=a.slice(T,y.index);break}else T=y.index+y[0].length;break;case"named-range":c=it(y[0],!1),Ce=Bf(c["cell-range-address"]);var ye={Name:c.name,Ref:Ce[0]+"!"+Ce[1]};he&&(ye.Sheet=S.length),me.Names.push(ye);break;case"text-content":break;case"text-properties":break;case"embedded-text":break;case"body":case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-rows":break;case"table-column-group":break;case"table-header-columns":break;case"table-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(i[i.length-1][0])>-1)break;if(y[1]==="/"&&(!C||!C["string-value"])){var qe=LN(a.slice(E,y.index));k=(k.length>0?k+`
|
||
`:"")+qe[0]}else it(y[0],!1),E=y.index+y[0].length;break;case"s":break;case"database-range":if(y[1]==="/")break;try{Ce=Bf(it(y[0])["target-range-address"]),g[Ce[0]]["!autofilter"]={ref:Ce[1]}}catch{}break;case"date":break;case"object":break;case"title":case"标题":break;case"desc":break;case"binary-data":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":break;case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":break;case"properties":break;case"property":break;case"a":if(y[1]!=="/"){if(te=it(y[0],!1),!te.href)break;te.Target=Ut(te.href),delete te.href,te.Target.charAt(0)=="#"&&te.Target.indexOf(".")>-1?(Ce=Bf(te.Target.slice(1)),te.Target="#"+Ce[0]+"!"+Ce[1]):te.Target.match(/^\.\.[\\\/]/)&&(te.Target=te.Target.slice(3))}break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:switch(y[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(n.WTF)throw new Error(y)}}var ae={Sheets:g,SheetNames:S,Workbook:me};return n.bookSheets&&delete ae.Sheets,ae}function vx(e,t){t=t||{},hi(e,"META-INF/manifest.xml")&&JE(Mn(e,"META-INF/manifest.xml"),t);var n=Ja(e,"content.xml");if(!n)throw new Error("Missing content.xml in ODS / UOF file");var a=BS(rn(n),t);return hi(e,"meta.xml")&&(a.Props=Q4(Mn(e,"meta.xml"))),a}function xx(e,t){return BS(e,t)}function Zp(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Gh(e){return typeof TextDecoder<"u"?new TextDecoder().decode(e):rn(d0(e))}function Xh(e){var t=e.reduce(function(i,r){return i+r.length},0),n=new Uint8Array(t),a=0;return e.forEach(function(i){n.set(i,a),a+=i.length}),n}function yx(e){return e-=e>>1&1431655765,e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>>24}function PN(e,t){for(var n=(e[t+15]&127)<<7|e[t+14]>>1,a=e[t+14]&1,i=t+13;i>=t;--i)a=a*256+e[i];return(e[t+15]&128?-a:a)*Math.pow(10,n-6176)}function l1(e,t){var n=t?t[0]:0,a=e[n]&127;e:if(e[n++]>=128&&(a|=(e[n]&127)<<7,e[n++]<128||(a|=(e[n]&127)<<14,e[n++]<128)||(a|=(e[n]&127)<<21,e[n++]<128)||(a+=(e[n]&127)*Math.pow(2,28),++n,e[n++]<128)||(a+=(e[n]&127)*Math.pow(2,35),++n,e[n++]<128)||(a+=(e[n]&127)*Math.pow(2,42),++n,e[n++]<128)))break e;return t&&(t[0]=n),a}function zn(e){var t=0,n=e[t]&127;e:if(e[t++]>=128){if(n|=(e[t]&127)<<7,e[t++]<128||(n|=(e[t]&127)<<14,e[t++]<128)||(n|=(e[t]&127)<<21,e[t++]<128))break e;n|=(e[t]&127)<<28}return n}function ma(e){for(var t=[],n=[0];n[0]<e.length;){var a=n[0],i=l1(e,n),r=i&7;i=Math.floor(i/8);var c=0,l;if(i==0)break;switch(r){case 0:{for(var f=n[0];e[n[0]++]>=128;);l=e.slice(f,n[0])}break;case 5:c=4,l=e.slice(n[0],n[0]+c),n[0]+=c;break;case 1:c=8,l=e.slice(n[0],n[0]+c),n[0]+=c;break;case 2:c=l1(e,n),l=e.slice(n[0],n[0]+c),n[0]+=c;break;default:throw new Error("PB Type ".concat(r," for Field ").concat(i," at offset ").concat(a))}var T={data:l,type:r};t[i]==null?t[i]=[T]:t[i].push(T)}return t}function Jp(e,t){return e?.map(function(n){return t(n.data)})||[]}function _N(e){for(var t,n=[],a=[0];a[0]<e.length;){var i=l1(e,a),r=ma(e.slice(a[0],a[0]+i));a[0]+=i;var c={id:zn(r[1][0].data),messages:[]};r[2].forEach(function(l){var f=ma(l.data),T=zn(f[3][0].data);c.messages.push({meta:f,data:e.slice(a[0],a[0]+T)}),a[0]+=T}),(t=r[3])!=null&&t[0]&&(c.merge=zn(r[3][0].data)>>>0>0),n.push(c)}return n}function qN(e,t){if(e!=0)throw new Error("Unexpected Snappy chunk type ".concat(e));for(var n=[0],a=l1(t,n),i=[];n[0]<t.length;){var r=t[n[0]]&3;if(r==0){var c=t[n[0]++]>>2;if(c<60)++c;else{var l=c-59;c=t[n[0]],l>1&&(c|=t[n[0]+1]<<8),l>2&&(c|=t[n[0]+2]<<16),l>3&&(c|=t[n[0]+3]<<24),c>>>=0,c++,n[0]+=l}i.push(t.slice(n[0],n[0]+c)),n[0]+=c;continue}else{var f=0,T=0;if(r==1?(T=(t[n[0]]>>2&7)+4,f=(t[n[0]++]&224)<<3,f|=t[n[0]++]):(T=(t[n[0]++]>>2)+1,r==2?(f=t[n[0]]|t[n[0]+1]<<8,n[0]+=2):(f=(t[n[0]]|t[n[0]+1]<<8|t[n[0]+2]<<16|t[n[0]+3]<<24)>>>0,n[0]+=4)),i=[Xh(i)],f==0)throw new Error("Invalid offset 0");if(f>i[0].length)throw new Error("Invalid offset beyond length");if(T>=f)for(i.push(i[0].slice(-f)),T-=f;T>=i[i.length-1].length;)i.push(i[i.length-1]),T-=i[i.length-1].length;i.push(i[0].slice(-f,-f+T))}}var p=Xh(i);if(p.length!=a)throw new Error("Unexpected length: ".concat(p.length," != ").concat(a));return p}function BN(e){for(var t=[],n=0;n<e.length;){var a=e[n++],i=e[n]|e[n+1]<<8|e[n+2]<<16;n+=3,t.push(qN(a,e.slice(n,n+i))),n+=i}if(n!==e.length)throw new Error("data is not a valid framed stream!");return Xh(t)}function UN(e,t,n,a){var i=Zp(e),r=i.getUint32(4,!0),c=(a>1?12:8)+yx(r&(a>1?3470:398))*4,l=-1,f=-1,T=NaN,p=new Date(2001,0,1);r&512&&(l=i.getUint32(c,!0),c+=4),c+=yx(r&(a>1?12288:4096))*4,r&16&&(f=i.getUint32(c,!0),c+=4),r&32&&(T=i.getFloat64(c,!0),c+=8),r&64&&(p.setTime(p.getTime()+i.getFloat64(c,!0)*1e3),c+=8);var m;switch(e[2]){case 0:break;case 2:m={t:"n",v:T};break;case 3:m={t:"s",v:t[f]};break;case 5:m={t:"d",v:p};break;case 6:m={t:"b",v:T>0};break;case 7:m={t:"n",v:T/86400};break;case 8:m={t:"e",v:0};break;case 9:if(l>-1)m={t:"s",v:n[l]};else if(f>-1)m={t:"s",v:t[f]};else if(!isNaN(T))m={t:"n",v:T};else throw new Error("Unsupported cell type ".concat(e.slice(0,4)));break;default:throw new Error("Unsupported cell type ".concat(e.slice(0,4)))}return m}function zN(e,t,n){var a=Zp(e),i=a.getUint32(8,!0),r=12,c=-1,l=-1,f=NaN,T=NaN,p=new Date(2001,0,1);i&1&&(f=PN(e,r),r+=16),i&2&&(T=a.getFloat64(r,!0),r+=8),i&4&&(p.setTime(p.getTime()+a.getFloat64(r,!0)*1e3),r+=8),i&8&&(l=a.getUint32(r,!0),r+=4),i&16&&(c=a.getUint32(r,!0),r+=4);var m;switch(e[1]){case 0:break;case 2:m={t:"n",v:f};break;case 3:m={t:"s",v:t[l]};break;case 5:m={t:"d",v:p};break;case 6:m={t:"b",v:T>0};break;case 7:m={t:"n",v:T/86400};break;case 8:m={t:"e",v:0};break;case 9:if(c>-1)m={t:"s",v:n[c]};else throw new Error("Unsupported cell type ".concat(e[1]," : ").concat(i&31," : ").concat(e.slice(0,4)));break;case 10:m={t:"n",v:f};break;default:throw new Error("Unsupported cell type ".concat(e[1]," : ").concat(i&31," : ").concat(e.slice(0,4)))}return m}function WN(e,t,n){switch(e[0]){case 0:case 1:case 2:case 3:return UN(e,t,n,e[0]);case 5:return zN(e,t,n);default:throw new Error("Unsupported payload version ".concat(e[0]))}}function fr(e){var t=ma(e);return l1(t[1][0].data)}function Sx(e,t){var n=ma(t.data),a=zn(n[1][0].data),i=n[3],r=[];return(i||[]).forEach(function(c){var l=ma(c.data),f=zn(l[1][0].data)>>>0;switch(a){case 1:r[f]=Gh(l[3][0].data);break;case 8:{var T=e[fr(l[9][0].data)][0],p=ma(T.data),m=e[fr(p[1][0].data)][0],g=zn(m.meta[1][0].data);if(g!=2001)throw new Error("2000 unexpected reference to ".concat(g));var S=ma(m.data);r[f]=S[3].map(function(x){return Gh(x.data)}).join("")}break}}),r}function VN(e,t){var n,a,i,r,c,l,f,T,p,m,g,S,x,y,w=ma(e),C=zn(w[1][0].data)>>>0,k=zn(w[2][0].data)>>>0,E=((a=(n=w[8])==null?void 0:n[0])==null?void 0:a.data)&&zn(w[8][0].data)>0||!1,O,N;if((r=(i=w[7])==null?void 0:i[0])!=null&&r.data&&t!=0)O=(l=(c=w[7])==null?void 0:c[0])==null?void 0:l.data,N=(T=(f=w[6])==null?void 0:f[0])==null?void 0:T.data;else if((m=(p=w[4])==null?void 0:p[0])!=null&&m.data&&t!=1)O=(S=(g=w[4])==null?void 0:g[0])==null?void 0:S.data,N=(y=(x=w[3])==null?void 0:x[0])==null?void 0:y.data;else throw"NUMBERS Tile missing ".concat(t," cell storage");for(var B=E?4:1,A=Zp(O),z=[],P=0;P<O.length/2;++P){var K=A.getUint16(P*2,!0);K<65535&&z.push([P,K])}if(z.length!=k)throw"Expected ".concat(k," cells, found ").concat(z.length);var I=[];for(P=0;P<z.length-1;++P)I[z[P][0]]=N.subarray(z[P][1]*B,z[P+1][1]*B);return z.length>=1&&(I[z[z.length-1][0]]=N.subarray(z[z.length-1][1]*B)),{R:C,cells:I}}function HN(e,t){var n,a=ma(t.data),i=(n=a?.[7])!=null&&n[0]?zn(a[7][0].data)>>>0>0?1:0:-1,r=Jp(a[5],function(c){return VN(c,i)});return{nrows:zn(a[4][0].data)>>>0,data:r.reduce(function(c,l){return c[l.R]||(c[l.R]=[]),l.cells.forEach(function(f,T){if(c[l.R][T])throw new Error("Duplicate cell r=".concat(l.R," c=").concat(T));c[l.R][T]=f}),c},[])}}function GN(e,t,n){var a,i=ma(t.data),r={s:{r:0,c:0},e:{r:0,c:0}};if(r.e.r=(zn(i[6][0].data)>>>0)-1,r.e.r<0)throw new Error("Invalid row varint ".concat(i[6][0].data));if(r.e.c=(zn(i[7][0].data)>>>0)-1,r.e.c<0)throw new Error("Invalid col varint ".concat(i[7][0].data));n["!ref"]=Lt(r);var c=ma(i[4][0].data),l=Sx(e,e[fr(c[4][0].data)][0]),f=(a=c[17])!=null&&a[0]?Sx(e,e[fr(c[17][0].data)][0]):[],T=ma(c[3][0].data),p=0;T[1].forEach(function(m){var g=ma(m.data),S=e[fr(g[2][0].data)][0],x=zn(S.meta[1][0].data);if(x!=6002)throw new Error("6001 unexpected reference to ".concat(x));var y=HN(e,S);y.data.forEach(function(w,C){w.forEach(function(k,E){var O=ht({r:p+C,c:E}),N=WN(k,l,f);N&&(n[O]=N)})}),p+=y.nrows})}function XN(e,t){var n=ma(t.data),a={"!ref":"A1"},i=e[fr(n[2][0].data)],r=zn(i[0].meta[1][0].data);if(r!=6001)throw new Error("6000 unexpected reference to ".concat(r));return GN(e,i[0],a),a}function KN(e,t){var n,a=ma(t.data),i={name:(n=a[1])!=null&&n[0]?Gh(a[1][0].data):"",sheets:[]},r=Jp(a[2],fr);return r.forEach(function(c){e[c].forEach(function(l){var f=zn(l.meta[1][0].data);f==6e3&&i.sheets.push(XN(e,l))})}),i}function $N(e,t){var n=tm(),a=ma(t.data),i=Jp(a[1],fr);if(i.forEach(function(r){e[r].forEach(function(c){var l=zn(c.meta[1][0].data);if(l==2){var f=KN(e,c);f.sheets.forEach(function(T,p){nm(n,T,p==0?f.name:f.name+"_"+p,!0)})}})}),n.SheetNames.length==0)throw new Error("Empty NUMBERS file");return n}function zf(e){var t,n,a,i,r={},c=[];if(e.FullPaths.forEach(function(f){if(f.match(/\.iwpv2/))throw new Error("Unsupported password protection")}),e.FileIndex.forEach(function(f){if(f.name.match(/\.iwa$/)){var T;try{T=BN(f.content)}catch(m){return console.log("?? "+f.content.length+" "+(m.message||m))}var p;try{p=_N(T)}catch(m){return console.log("## "+(m.message||m))}p.forEach(function(m){r[m.id]=m.messages,c.push(m.id)})}}),!c.length)throw new Error("File has no messages");var l=((i=(a=(n=(t=r?.[1])==null?void 0:t[0])==null?void 0:n.meta)==null?void 0:a[1])==null?void 0:i[0].data)&&zn(r[1][0].meta[1][0].data)==1&&r[1][0];if(l||c.forEach(function(f){r[f].forEach(function(T){var p=zn(T.meta[1][0].data)>>>0;if(p==1)if(!l)l=T;else throw new Error("Document has multiple roots")})}),!l)throw new Error("Cannot find Document root");return $N(r,l)}function YN(e){return function(n){for(var a=0;a!=e.length;++a){var i=e[a];n[i[0]]===void 0&&(n[i[0]]=i[1]),i[2]==="n"&&(n[i[0]]=Number(n[i[0]]))}}}function Qp(e){YN([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)}function ZN(e){return co.WS.indexOf(e)>-1?"sheet":e==co.CS?"chart":e==co.DS?"dialog":e==co.MS?"macro":e&&e.length?e:"sheet"}function JN(e,t){if(!e)return 0;try{e=t.map(function(a){return a.id||(a.id=a.strRelID),[a.name,e["!id"][a.id].Target,ZN(e["!id"][a.id].Type)]})}catch{return null}return!e||e.length===0?null:e}function QN(e,t,n,a,i,r,c,l,f,T,p,m){try{r[a]=Gc(Ja(e,n,!0),t);var g=Mn(e,t),S;switch(l){case"sheet":S=sN(g,t,i,f,r[a],T,p,m);break;case"chart":if(S=rN(g,t,i,f,r[a],T,p,m),!S||!S["!drawel"])break;var x=jc(S["!drawel"].Target,t),y=Uh(x),w=iR(Ja(e,x,!0),Gc(Ja(e,y,!0),x)),C=jc(w,x),k=Uh(C);S=zI(Ja(e,C,!0),C,f,Gc(Ja(e,k,!0),C),T,S);break;case"macro":S=oN(g,t,i,f,r[a],T,p,m);break;case"dialog":S=cN(g,t,i,f,r[a],T,p,m);break;default:throw new Error("Unrecognized sheet type "+l)}c[a]=S;var E=[];r&&r[a]&&ns(r[a]).forEach(function(O){var N="";if(r[a][O].Type==co.CMNT){N=jc(r[a][O].Target,t);var B=TN(Mn(e,N,!0),N,f);if(!B||!B.length)return;rx(S,B,!1)}r[a][O].Type==co.TCMNT&&(N=jc(r[a][O].Target,t),E=E.concat(rR(Mn(e,N,!0),f)))}),E&&E.length&&rx(S,E,!0,f.people||[])}catch(O){if(f.WTF)throw O}}function di(e){return e.charAt(0)=="/"?e.slice(1):e}function eO(e,t){if(C4(),t=t||{},Qp(t),hi(e,"META-INF/manifest.xml")||hi(e,"objectdata.xml"))return vx(e,t);if(hi(e,"Index/Document.iwa")){if(typeof Uint8Array>"u")throw new Error("NUMBERS file parsing requires Uint8Array support");if(typeof zf<"u"){if(e.FileIndex)return zf(e);var n=Ft.utils.cfb_new();return Mv(e).forEach(function(ue){tE(n,ue,eE(e,ue))}),zf(n)}throw new Error("Unsupported NUMBERS file")}if(!hi(e,"[Content_Types].xml"))throw hi(e,"index.xml.gz")?new Error("Unsupported NUMBERS 08 file"):hi(e,"index.xml")?new Error("Unsupported NUMBERS 09 file"):new Error("Unsupported ZIP file");var a=Mv(e),i=YE(Ja(e,"[Content_Types].xml")),r=!1,c,l;if(i.workbooks.length===0&&(l="xl/workbook.xml",Mn(e,l,!0)&&i.workbooks.push(l)),i.workbooks.length===0){if(l="xl/workbook.bin",!Mn(e,l,!0))throw new Error("Could not find workbook");i.workbooks.push(l),r=!0}i.workbooks[0].slice(-3)=="bin"&&(r=!0);var f={},T={};if(!t.bookSheets&&!t.bookProps){if($c=[],i.sst)try{$c=dN(Mn(e,di(i.sst)),i.sst,t)}catch(ue){if(t.WTF)throw ue}t.cellStyles&&i.themes.length&&(f=uN(Ja(e,i.themes[0].replace(/^\//,""),!0)||"",i.themes[0],t)),i.style&&(T=lN(Mn(e,di(i.style)),i.style,f,t))}i.links.map(function(ue){try{var X=Gc(Ja(e,Uh(di(ue))),ue);return hN(Mn(e,di(ue)),X,ue,t)}catch{}});var p=iN(Mn(e,di(i.workbooks[0])),i.workbooks[0],t),m={},g="";i.coreprops.length&&(g=Mn(e,di(i.coreprops[0]),!0),g&&(m=Q4(g)),i.extprops.length!==0&&(g=Mn(e,di(i.extprops[0]),!0),g&&tk(g,m,t)));var S={};(!t.bookSheets||t.bookProps)&&i.custprops.length!==0&&(g=Ja(e,di(i.custprops[0]),!0),g&&(S=ak(g,t)));var x={};if((t.bookSheets||t.bookProps)&&(p.Sheets?c=p.Sheets.map(function(X){return X.name}):m.Worksheets&&m.SheetNames.length>0&&(c=m.SheetNames),t.bookProps&&(x.Props=m,x.Custprops=S),t.bookSheets&&typeof c<"u"&&(x.SheetNames=c),t.bookSheets?x.SheetNames:t.bookProps))return x;c={};var y={};t.bookDeps&&i.calcchain&&(y=fN(Mn(e,di(i.calcchain)),i.calcchain));var w=0,C={},k,E;{var O=p.Sheets;m.Worksheets=O.length,m.SheetNames=[];for(var N=0;N!=O.length;++N)m.SheetNames[N]=O[N].name}var B=r?"bin":"xml",A=i.workbooks[0].lastIndexOf("/"),z=(i.workbooks[0].slice(0,A+1)+"_rels/"+i.workbooks[0].slice(A+1)+".rels").replace(/^\//,"");hi(e,z)||(z="xl/_rels/workbook."+B+".rels");var P=Gc(Ja(e,z,!0),z.replace(/_rels.*/,"s5s"));(i.metadata||[]).length>=1&&(t.xlmeta=pN(Mn(e,di(i.metadata[0])),i.metadata[0],t)),(i.people||[]).length>=1&&(t.people=oR(Mn(e,di(i.people[0])),t)),P&&(P=JN(P,p.Sheets));var K=Mn(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(w=0;w!=m.Worksheets;++w){var I="sheet";if(P&&P[w]?(k="xl/"+P[w][1].replace(/[\/]?xl\//,""),hi(e,k)||(k=P[w][1]),hi(e,k)||(k=z.replace(/_rels\/.*$/,"")+P[w][1]),I=P[w][2]):(k="xl/worksheets/sheet"+(w+1-K)+"."+B,k=k.replace(/sheet0\./,"sheet.")),E=k.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),t&&t.sheets!=null)switch(typeof t.sheets){case"number":if(w!=t.sheets)continue e;break;case"string":if(m.SheetNames[w].toLowerCase()!=t.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(t.sheets)){for(var L=!1,le=0;le!=t.sheets.length;++le)typeof t.sheets[le]=="number"&&t.sheets[le]==w&&(L=1),typeof t.sheets[le]=="string"&&t.sheets[le].toLowerCase()==m.SheetNames[w].toLowerCase()&&(L=1);if(!L)continue e}}QN(e,k,E,m.SheetNames[w],w,C,c,I,t,p,f,T)}return x={Directory:i,Workbook:p,Props:m,Custprops:S,Deps:y,Sheets:c,SheetNames:m.SheetNames,Strings:$c,Styles:T,Themes:f,SSF:sa(vt)},t&&t.bookFiles&&(e.files?(x.keys=a,x.files=e.files):(x.keys=[],x.files={},e.FullPaths.forEach(function(ue,X){ue=ue.replace(/^Root Entry[\/]/,""),x.keys.push(ue),x.files[ue]=e.FileIndex[X]}))),t&&t.bookVBA&&(i.vba.length>0?x.vbaraw=Mn(e,di(i.vba[0]),!0):i.defaults&&i.defaults.bin===dR&&(x.vbaraw=Mn(e,"xl/vbaProject.bin",!0))),x}function tO(e,t){var n=t||{},a="Workbook",i=Ft.find(e,a);try{if(a="/!DataSpaces/Version",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);if(X9(i.content),a="/!DataSpaces/DataSpaceMap",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);var r=$9(i.content);if(r.length!==1||r[0].comps.length!==1||r[0].comps[0].t!==0||r[0].name!=="StrongEncryptionDataSpace"||r[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+a);if(a="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);var c=Y9(i.content);if(c.length!=1||c[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+a);if(a="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);J9(i.content)}catch{}if(a="/EncryptionInfo",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);var l=Q9(i.content);if(a="/EncryptedPackage",i=Ft.find(e,a),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+a);if(l[0]==4&&typeof decrypt_agile<"u")return decrypt_agile(l[1],i.content,n.password||"",n);if(l[0]==2&&typeof decrypt_std76<"u")return decrypt_std76(l[1],i.content,n.password||"",n);throw new Error("File is password-protected")}function em(e,t){var n="";switch((t||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":n=Qa(e.slice(0,12));break;case"binary":n=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(t&&t.type||"undefined"))}return[n.charCodeAt(0),n.charCodeAt(1),n.charCodeAt(2),n.charCodeAt(3),n.charCodeAt(4),n.charCodeAt(5),n.charCodeAt(6),n.charCodeAt(7)]}function nO(e,t){return Ft.find(e,"EncryptedPackage")?tO(e,t):PS(e,t)}function aO(e,t){var n,a=e,i=t||{};return i.type||(i.type=Mt&&Buffer.isBuffer(e)?"buffer":"base64"),n=I4(a,i),eO(n,i)}function US(e,t){var n=0;e:for(;n<e.length;)switch(e.charCodeAt(n)){case 10:case 13:case 32:++n;break;case 60:return Vh(e.slice(n),t);default:break e}return r1.to_workbook(e,t)}function iO(e,t){var n="",a=em(e,t);switch(t.type){case"base64":n=Qa(e);break;case"binary":n=e;break;case"buffer":n=e.toString("binary");break;case"array":n=s0(e);break;default:throw new Error("Unrecognized type "+t.type)}return a[0]==239&&a[1]==187&&a[2]==191&&(n=rn(n)),t.type="binary",US(n,t)}function sO(e,t){var n=e;return t.type=="base64"&&(n=Qa(n)),n=n1.utils.decode(1200,n.slice(2),"str"),t.type="binary",US(n,t)}function rO(e){return e.match(/[^\x00-\x7F]/)?Fc(e):e}function Wf(e,t,n,a){return a?(n.type="string",r1.to_workbook(e,n)):r1.to_workbook(t,n)}function Kh(e,t){T4();var n=t||{};if(typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer)return Kh(new Uint8Array(e),(n=sa(n),n.type="array",n));typeof Uint8Array<"u"&&e instanceof Uint8Array&&!n.type&&(n.type=typeof Deno<"u"?"buffer":"array");var a=e,i=[0,0,0,0],r=!1;if(n.cellStyles&&(n.cellNF=!0,n.sheetStubs=!0),fo={},n.dateNF&&(fo.dateNF=n.dateNF),n.type||(n.type=Mt&&Buffer.isBuffer(e)?"buffer":"base64"),n.type=="file"&&(n.type=Mt?"buffer":"binary",a=XC(e),typeof Uint8Array<"u"&&!Mt&&(n.type="array")),n.type=="string"&&(r=!0,n.type="binary",n.codepage=65001,a=rO(e)),n.type=="array"&&typeof Uint8Array<"u"&&e instanceof Uint8Array&&typeof ArrayBuffer<"u"){var c=new ArrayBuffer(3),l=new Uint8Array(c);if(l.foo="bar",!l.foo)return n=sa(n),n.type="array",Kh(Op(a),n)}switch((i=em(a,n))[0]){case 208:if(i[1]===207&&i[2]===17&&i[3]===224&&i[4]===161&&i[5]===177&&i[6]===26&&i[7]===225)return nO(Ft.read(a,n),n);break;case 9:if(i[1]<=8)return PS(a,n);break;case 60:return Vh(a,n);case 73:if(i[1]===73&&i[2]===42&&i[3]===0)throw new Error("TIFF Image File is not a spreadsheet");if(i[1]===68)return j9(a,n);break;case 84:if(i[1]===65&&i[2]===66&&i[3]===76)return O9.to_workbook(a,n);break;case 80:return i[1]===75&&i[2]<9&&i[3]<9?aO(a,n):Wf(e,a,n,r);case 239:return i[3]===60?Vh(a,n):Wf(e,a,n,r);case 255:if(i[1]===254)return sO(a,n);if(i[1]===0&&i[2]===2&&i[3]===0)return Kc.to_workbook(a,n);break;case 0:if(i[1]===0&&(i[2]>=2&&i[3]===0||i[2]===0&&(i[3]===8||i[3]===9)))return Kc.to_workbook(a,n);break;case 3:case 131:case 139:case 140:return sx.to_workbook(a,n);case 123:if(i[1]===92&&i[2]===114&&i[3]===116)return dA.to_workbook(a,n);break;case 10:case 13:case 32:return iO(a,n);case 137:if(i[1]===80&&i[2]===78&&i[3]===71)throw new Error("PNG Image File is not a spreadsheet");break}return I9.indexOf(i[0])>-1&&i[2]<=12&&i[3]<=31?sx.to_workbook(a,n):Wf(e,a,n,r)}function oO(e,t,n,a,i,r,c,l){var f=ra(n),T=l.defval,p=l.raw||!Object.prototype.hasOwnProperty.call(l,"raw"),m=!0,g=i===1?[]:{};if(i!==1)if(Object.defineProperty)try{Object.defineProperty(g,"__rowNum__",{value:n,enumerable:!1})}catch{g.__rowNum__=n}else g.__rowNum__=n;if(!c||e[n])for(var S=t.s.c;S<=t.e.c;++S){var x=c?e[n][S]:e[a[S]+f];if(x===void 0||x.t===void 0){if(T===void 0)continue;r[S]!=null&&(g[r[S]]=T);continue}var y=x.v;switch(x.t){case"z":if(y==null)break;continue;case"e":y=y==0?null:void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+x.t)}if(r[S]!=null){if(y==null)if(x.t=="e"&&y===null)g[r[S]]=null;else if(T!==void 0)g[r[S]]=T;else if(p&&y===null)g[r[S]]=null;else continue;else g[r[S]]=p&&(x.t!=="n"||x.t==="n"&&l.rawNumbers!==!1)?y:Ms(x,y,l);y!=null&&(m=!1)}}return{row:g,isempty:m}}function $h(e,t){if(e==null||e["!ref"]==null)return[];var n={t:"n",v:0},a=0,i=1,r=[],c=0,l="",f={s:{r:0,c:0},e:{r:0,c:0}},T=t||{},p=T.range!=null?T.range:e["!ref"];switch(T.header===1?a=1:T.header==="A"?a=2:Array.isArray(T.header)?a=3:T.header==null&&(a=0),typeof p){case"string":f=xn(p);break;case"number":f=xn(e["!ref"]),f.s.r=p;break;default:f=p}a>0&&(i=0);var m=ra(f.s.r),g=[],S=[],x=0,y=0,w=Array.isArray(e),C=f.s.r,k=0,E={};w&&!e[C]&&(e[C]=[]);var O=T.skipHidden&&e["!cols"]||[],N=T.skipHidden&&e["!rows"]||[];for(k=f.s.c;k<=f.e.c;++k)if(!(O[k]||{}).hidden)switch(g[k]=Un(k),n=w?e[C][k]:e[g[k]+m],a){case 1:r[k]=k-f.s.c;break;case 2:r[k]=g[k];break;case 3:r[k]=T.header[k-f.s.c];break;default:if(n==null&&(n={w:"__EMPTY",t:"s"}),l=c=Ms(n,null,T),y=E[c]||0,!y)E[c]=1;else{do l=c+"_"+y++;while(E[l]);E[c]=y,E[l]=1}r[k]=l}for(C=f.s.r+i;C<=f.e.r;++C)if(!(N[C]||{}).hidden){var B=oO(e,f,C,g,a,r,w,T);(B.isempty===!1||(a===1?T.blankrows!==!1:T.blankrows))&&(S[x++]=B.row)}return S.length=x,S}var bx=/"/g;function cO(e,t,n,a,i,r,c,l){for(var f=!0,T=[],p="",m=ra(n),g=t.s.c;g<=t.e.c;++g)if(a[g]){var S=l.dense?(e[n]||[])[g]:e[a[g]+m];if(S==null)p="";else if(S.v!=null){f=!1,p=""+(l.rawNumbers&&S.t=="n"?S.v:Ms(S,null,l));for(var x=0,y=0;x!==p.length;++x)if((y=p.charCodeAt(x))===i||y===r||y===34||l.forceQuotes){p='"'+p.replace(bx,'""')+'"';break}p=="ID"&&(p='"ID"')}else S.f!=null&&!S.F?(f=!1,p="="+S.f,p.indexOf(",")>=0&&(p='"'+p.replace(bx,'""')+'"')):p="";T.push(p)}return l.blankrows===!1&&f?null:T.join(c)}function zS(e,t){var n=[],a=t??{};if(e==null||e["!ref"]==null)return"";var i=xn(e["!ref"]),r=a.FS!==void 0?a.FS:",",c=r.charCodeAt(0),l=a.RS!==void 0?a.RS:`
|
||
`,f=l.charCodeAt(0),T=new RegExp((r=="|"?"\\|":r)+"+$"),p="",m=[];a.dense=Array.isArray(e);for(var g=a.skipHidden&&e["!cols"]||[],S=a.skipHidden&&e["!rows"]||[],x=i.s.c;x<=i.e.c;++x)(g[x]||{}).hidden||(m[x]=Un(x));for(var y=0,w=i.s.r;w<=i.e.r;++w)(S[w]||{}).hidden||(p=cO(e,i,w,m,c,f,r,a),p!=null&&(a.strip&&(p=p.replace(T,"")),(p||a.blankrows!==!1)&&n.push((y++?l:"")+p)));return delete a.dense,n.join("")}function lO(e,t){t||(t={}),t.FS=" ",t.RS=`
|
||
`;var n=zS(e,t);return n}function uO(e){var t="",n,a="";if(e==null||e["!ref"]==null)return[];var i=xn(e["!ref"]),r="",c=[],l,f=[],T=Array.isArray(e);for(l=i.s.c;l<=i.e.c;++l)c[l]=Un(l);for(var p=i.s.r;p<=i.e.r;++p)for(r=ra(p),l=i.s.c;l<=i.e.c;++l)if(t=c[l]+r,n=T?(e[p]||[])[l]:e[t],a="",n!==void 0){if(n.F!=null){if(t=n.F,!n.f)continue;a=n.f,t.indexOf(":")==-1&&(t=t+":"+t)}if(n.f!=null)a=n.f;else{if(n.t=="z")continue;if(n.t=="n"&&n.v!=null)a=""+n.v;else if(n.t=="b")a=n.v?"TRUE":"FALSE";else if(n.w!==void 0)a="'"+n.w;else{if(n.v===void 0)continue;n.t=="s"?a="'"+n.v:a=""+n.v}}f[f.length]=t+"="+a}return f}function WS(e,t,n){var a=n||{},i=+!a.skipHeader,r=e||{},c=0,l=0;if(r&&a.origin!=null)if(typeof a.origin=="number")c=a.origin;else{var f=typeof a.origin=="string"?Na(a.origin):a.origin;c=f.r,l=f.c}var T,p={s:{c:0,r:0},e:{c:l,r:c+t.length-1+i}};if(r["!ref"]){var m=xn(r["!ref"]);p.e.c=Math.max(p.e.c,m.e.c),p.e.r=Math.max(p.e.r,m.e.r),c==-1&&(c=m.e.r+1,p.e.r=c+t.length-1+i)}else c==-1&&(c=0,p.e.r=t.length-1+i);var g=a.header||[],S=0;t.forEach(function(y,w){ns(y).forEach(function(C){(S=g.indexOf(C))==-1&&(g[S=g.length]=C);var k=y[C],E="z",O="",N=ht({c:l+S,r:c+w+i});T=u1(r,N),k&&typeof k=="object"&&!(k instanceof Date)?r[N]=k:(typeof k=="number"?E="n":typeof k=="boolean"?E="b":typeof k=="string"?E="s":k instanceof Date?(E="d",a.cellDates||(E="n",k=Ma(k)),O=a.dateNF||vt[14]):k===null&&a.nullError&&(E="e",k=0),T?(T.t=E,T.v=k,delete T.w,delete T.R,O&&(T.z=O)):r[N]=T={t:E,v:k},O&&(T.z=O))})}),p.e.c=Math.max(p.e.c,l+g.length-1);var x=ra(c);if(i)for(S=0;S<g.length;++S)r[Un(S+l)+x]={t:"s",v:g[S]};return r["!ref"]=Lt(p),r}function dO(e,t){return WS(null,e,t)}function u1(e,t,n){if(typeof t=="string"){if(Array.isArray(e)){var a=Na(t);return e[a.r]||(e[a.r]=[]),e[a.r][a.c]||(e[a.r][a.c]={t:"z"})}return e[t]||(e[t]={t:"z"})}return typeof t!="number"?u1(e,ht(t)):u1(e,ht({r:t,c:n||0}))}function TO(e,t){if(typeof t=="number"){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}else if(typeof t=="string"){var n=e.SheetNames.indexOf(t);if(n>-1)return n;throw new Error("Cannot find sheet name |"+t+"|")}else throw new Error("Cannot find sheet |"+t+"|")}function tm(){return{SheetNames:[],Sheets:{}}}function nm(e,t,n,a){var i=1;if(!n)for(;i<=65535&&e.SheetNames.indexOf(n="Sheet"+i)!=-1;++i,n=void 0);if(!n||e.SheetNames.length>=65535)throw new Error("Too many worksheets");if(a&&e.SheetNames.indexOf(n)>=0){var r=n.match(/(^.*?)(\d+)$/);i=r&&+r[2]||0;var c=r&&r[1]||n;for(++i;i<=65535&&e.SheetNames.indexOf(n=c+i)!=-1;++i);}if(YI(n),e.SheetNames.indexOf(n)>=0)throw new Error("Worksheet with name |"+n+"| already exists!");return e.SheetNames.push(n),e.Sheets[n]=t,n}function fO(e,t,n){e.Workbook||(e.Workbook={}),e.Workbook.Sheets||(e.Workbook.Sheets=[]);var a=TO(e,t);switch(e.Workbook.Sheets[a]||(e.Workbook.Sheets[a]={}),n){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+n)}e.Workbook.Sheets[a].Hidden=n}function hO(e,t){return e.z=t,e}function VS(e,t,n){return t?(e.l={Target:t},n&&(e.l.Tooltip=n)):delete e.l,e}function pO(e,t,n){return VS(e,"#"+t,n)}function mO(e,t,n){e.c||(e.c=[]),e.c.push({t,a:n||"SheetJS"})}function gO(e,t,n,a){for(var i=typeof t!="string"?t:xn(t),r=typeof t=="string"?t:Lt(t),c=i.s.r;c<=i.e.r;++c)for(var l=i.s.c;l<=i.e.c;++l){var f=u1(e,c,l);f.t="n",f.F=r,delete f.v,c==i.s.r&&l==i.s.c&&(f.f=n,a&&(f.D=!0))}return e}var pu={encode_col:Un,encode_row:ra,encode_cell:ht,encode_range:Lt,decode_col:Up,decode_row:Bp,split_cell:DE,decode_cell:Na,decode_range:Eo,format_cell:Ms,sheet_add_aoa:K4,sheet_add_json:WS,sheet_add_dom:_S,aoa_to_sheet:ko,json_to_sheet:dO,table_to_sheet:qS,table_to_book:jN,sheet_to_csv:zS,sheet_to_txt:lO,sheet_to_json:$h,sheet_to_html:MN,sheet_to_formulae:uO,sheet_to_row_object_array:$h,sheet_get_cell:u1,book_new:tm,book_append_sheet:nm,book_set_sheet_visibility:fO,cell_set_number_format:hO,cell_set_hyperlink:VS,cell_set_internal_link:pO,cell_add_comment:mO,sheet_set_array_formula:gO,consts:{SHEET_VISIBLE:0,SHEET_HIDDEN:1,SHEET_VERY_HIDDEN:2}};function HS(e,t,n){const a=Fi(e),i=/^[\t\r ]*[=+\-@]/.test(a),r=n&&i?`'${a}`:a;return n&&i||r.includes('"')||r.includes(`
|
||
`)||r.includes("\r")||r.includes(t)?`"${r.replaceAll('"','""')}"`:r}function Ns(e,t=";"){return e.map(n=>n.map(a=>HS(a,t,!1)).join(t)).join(`
|
||
`)}function Yh(e,t=";"){return e.map(n=>n.map(a=>HS(a,t,!0)).join(t)).join(`
|
||
`)}function vO(e,t,n){return t.map((a,i)=>a.map((r,c)=>{const l=pu.encode_cell({r:n[i]??i,c}),f=e[l]?.l?.Target??"",T=je(r);return!T||!g1(f)?r:`<a href="${t1(f.trim())}">${t1(T)}</a>`}))}async function xO(e){const t=Kh(e.bytes,{type:"array",cellDates:!0,cellFormula:!1,bookVBA:!1}),n=new Map((t.Workbook?.Sheets??[]).map(c=>[c.name,Number(c.Hidden??0)])),a=[],i=t.SheetNames.flatMap((c,l)=>{const f=t.Sheets[c],T=pu.sheet_to_json(f,{header:1,defval:"",raw:!1,blankrows:!0,dateNF:"yyyy-mm-dd"}),p=pu.sheet_to_json(f,{header:1,defval:"",raw:!0,blankrows:!0}),m=T.map((x,y)=>({row:x,rowIndex:y})).filter(x=>x.row.some(y=>je(y))).map(x=>x.rowIndex);if(!m.length)return a.push({kind:"empty-sheet",reason:"Leere Excel-Sheets enthalten keine importierbaren Tabellenwerte.",source:{fileName:e.metadata.name,tableIndex:l}}),[];const g=vO(f,m.map(x=>T[x]??[]),m),S=m.map(x=>p[x]??[]);return[vo({sourceFile:e.metadata.name,name:c,index:l,decodedRows:g,rawRows:S,rawText:Ns(g),attributes:{workbookIndex:l,hidden:n.get(c)??0},positionForCell:(x,y)=>({cellReference:pu.encode_cell({r:m[x]??x,c:y})})})]}),r=i.map(c=>`# ${c.name}
|
||
${c.rawText}`).join(`
|
||
|
||
`);return b1({file:e.metadata,format:"Excel",rawText:r,tables:i,discardedContent:a})}async function yO(e){return w1(await xO(e))}const SO=["CSV","HTML","Excel","JSON","XML"],bO={csv:"CSV",txt:"CSV",html:"HTML",htm:"HTML",xlsx:"Excel",xls:"Excel",json:"JSON",xml:"XML"},wO={"text/csv":"CSV","text/plain":"CSV","text/html":"HTML","application/xhtml+xml":"HTML","application/json":"JSON","text/json":"JSON","application/xml":"XML","text/xml":"XML","application/vnd.ms-excel":"Excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"Excel"};function Vf(e,t){return t.every((n,a)=>e[a]===n)}function Hf(e,t){const n=Uint8Array.from(t,a=>a.charCodeAt(0));e:for(let a=0;a<=e.length-n.length;a+=1){for(let i=0;i<n.length;i+=1)if(e[a+i]!==n[i])continue e;return!0}return!1}function CO(e){const t=e.subarray(0,Math.min(e.length,8192));if(!t.length)return!1;let n=0;for(const a of t){if(a===0)return!0;(a<9||a>13&&a<32)&&(n+=1)}return n/t.length>.1}function EO(e){const t=e.split(/\r?\n/).map(a=>a.trim()).filter(Boolean).slice(0,12);if(!t.length)return;const n=[",",";"," ","|"].map(a=>({delimiter:a,counts:t.map(i=>i.split(a).length-1)})).filter(a=>a.counts[0]>0&&a.counts.every(i=>i===a.counts[0])).sort((a,i)=>i.counts[0]-a.counts[0])[0];if(n)return{signal:"content-structure",format:"CSV",contribution:t.length>1?.82:.58,message:`Konsistente Trennzeichenstruktur mit ${JSON.stringify(n.delimiter)} erkannt.`}}function kO(e){const t=e.replace(/^\uFEFF/,"").trimStart(),n=[],a=/^(?:\{|\[)/.test(t);if(/^<!doctype\s+html\b|^<html\b|^<(?:head|body|table|div|p|span|a|main|section|article|header|footer|nav|script|style|h[1-6])\b/i.test(t)?n.push({signal:"content-structure",format:"HTML",contribution:.92,message:"Eine HTML-Dokument- oder Fragmentstruktur wurde erkannt."}):/^<\?xml\b/i.test(t)||/^<!DOCTYPE\s+(?!html\b)/i.test(t)||/^<!ENTITY\b/i.test(t)?n.push({signal:"content-structure",format:"XML",contribution:.9,message:"Eine XML-Deklarations- oder Dokumenttypstruktur wurde erkannt."}):/^<[A-Za-z_][\w:.-]*(?:\s[^<>]*?)?>/.test(t)&&n.push({signal:"content-structure",format:"XML",contribution:.34,message:"Eine generische Markup-Wurzelstruktur wurde erkannt und muss durch den Parser validiert werden."}),a&&n.push({signal:"content-structure",format:"JSON",contribution:.84,message:"Ein JSON-Objekt- oder Arrayanfang wurde erkannt."}),!a&&!t.startsWith("<")){const r=EO(e);r&&n.push(r)}return n}function GS(e){const{bytes:t}=e;if(Vf(t,[208,207,17,224,161,177,26,225]))return{evidence:[{signal:"file-signature",format:"Excel",contribution:1,message:"Die OLE-Dateisignatur eines klassischen Excel-Dokuments wurde erkannt."}],containerKind:"ole",binary:!0};if(Vf(t,[80,75,3,4])||Vf(t,[80,75,5,6])){const n=Hf(t,"[Content_Types].xml")&&(Hf(t,"xl/workbook.xml")||Hf(t,"xl/workbook.bin"));return{evidence:n?[{signal:"file-signature",format:"Excel",contribution:1,message:"Ein ZIP-basierter Excel-Workbook-Container wurde erkannt."}]:[{signal:"container-signature",contribution:1,message:"Ein ZIP-Container ohne Excel-Workbookstruktur wurde erkannt."}],containerKind:n?"excel-zip":"zip",binary:!0}}return{evidence:[],binary:CO(t)}}function AO(e){const t=GS(e);return{binary:t.binary,containerKind:t.containerKind,signedFormat:t.evidence.find(n=>n.signal==="file-signature")?.format}}function wx(e,t){const n=GS(e),a=[...n.evidence],i=Rp(e.metadata),r=bO[i];r&&a.push({signal:"extension",format:r,contribution:.24,message:`Die Dateiendung .${i} weist auf ${r} hin.`});const c=e.metadata.mediaType?.split(";")[0].trim().toLocaleLowerCase("en-US"),l=c?wO[c]:void 0;if(l&&a.push({signal:"media-type",format:l,contribution:.16,message:`Der deklarierte Medientyp ${c} weist auf ${l} hin.`}),t!==void 0&&!n.binary){const m=kO(t).map(g=>g.format==="XML"&&g.contribution<.5&&(r==="HTML"||l==="HTML")?{...g,format:"HTML",message:"Generisches Markup wurde aufgrund des HTML-Hinweises durch den sicheren HTML-Parser validiert."}:g);a.push(...m)}const f=SO.map(m=>{const g=a.filter(S=>S.format===m);return{format:m,score:Math.min(1,g.reduce((S,x)=>S+x.contribution,0)),evidence:g}}).filter(m=>m.score>0).sort((m,g)=>g.score-m.score||m.format.localeCompare(g.format)),T=f[0];if(!T)return;const p=T.evidence.some(m=>m.signal==="file-signature"||m.signal==="content-structure"&&m.contribution>=.5);return{version:1,selected:T.format,score:T.score,candidates:f,evidence:a,conflicts:a.filter(m=>m.format!==void 0&&m.format!==T.format),structurallyValidated:p,requiresParserValidation:!p,binary:n.binary,containerKind:n.containerKind}}function RO(e,t,n){const a=n.decodeHtml(t),i=a.tables.length?a.tables.map((l,f)=>vo({sourceFile:e.name,name:l.name,index:f,decodedRows:l.rows,rawRows:l.rows,rawText:l.rows.map(T=>T.join(";")).join(`
|
||
`),attributes:l.attributes,positionForCell:(T,p)=>({elementSelector:l.cellSelectors[T]?.[p]}),highlightedRows:l.highlightedRows})):[vo({sourceFile:e.name,name:"HTML",index:0,decodedRows:a.fallbackRows,rawRows:a.fallbackRows,rawText:a.fallbackRows.map(l=>l[0]).join(`
|
||
`),attributes:{kind:"html-text-fallback",compatibilityProjection:!0}})],r=[];a.removedContentCount&&r.push({severity:"warning",code:"html-active-content-removed",message:`${a.removedContentCount} aktive oder nicht benötigte HTML-Elemente wurden vor der Tabellenauswertung entfernt.`}),a.extractionMode==="bounded-lexical"&&r.push({severity:"info",code:"html-bounded-extraction",message:"Der umfangreiche oder tief verschachtelte HTML-Bericht wurde mit der stack-sicheren Tabellenextraktion verarbeitet."});const c=a.removedContentCount?[{kind:"active-html-content",reason:"Aktive oder nicht tabellarische Elemente werden nicht als importierbare Daten ausgewertet.",count:a.removedContentCount}]:[];return b1({file:e,format:"HTML",rawText:t,tables:i,diagnostics:r,discardedContent:c,transformations:a.removedContentCount?[{id:"html-active-content-sanitizer",version:"1.0.0",kind:"sanitize",lossless:!1}]:[],additionalViews:a.documentText??a.fallbackRows.map(l=>l.join(" ")).join(`
|
||
`)?[{kind:"text",id:"view-html-text",name:"HTML-Text",text:a.documentText??a.fallbackRows.map(l=>l.join(" ")).join(`
|
||
`),attributes:{sanitized:a.removedContentCount>0}}]:[]})}function DO(e,t,n){return w1(RO(e,t,n))}function mu(e,t="",n={}){return!e||typeof e!="object"||Object.entries(e).forEach(([a,i])=>{const r=t?`${t}.${a}`:a;i&&typeof i=="object"&&!Array.isArray(i)?mu(i,r,n):n[r]=Array.isArray(i)?JSON.stringify(i):i}),n}function IO(e){if(Array.isArray(e)){const t=e.filter(n=>n&&typeof n=="object"&&!Array.isArray(n));if(t.length===e.length){const n=[...new Set(t.flatMap(a=>Object.keys(mu(a))))];return[n,...t.map(a=>{const i=mu(a);return n.map(r=>Fi(i[r]))})]}return[["Index","Value"],...e.map((n,a)=>[String(a+1),Fi(n)])]}if(e&&typeof e=="object"){const t=mu(e);return[["Path","Value"],...Object.entries(t).map(([n,a])=>[n,Fi(a)])]}return[["Value"],[Fi(e)]]}function NO(e,t){const n=JSON.parse(t),a=IO(n),i=Array.isArray(n)?"Array":n&&typeof n=="object"?"Object":"Value",r=Array.isArray(n)?"array":n&&typeof n=="object"?"object":"primitive";return b1({file:e,format:"JSON",rawText:t,tables:[vo({sourceFile:e.name,name:i,index:0,decodedRows:a,rawRows:a,rawText:JSON.stringify(n,null,2),attributes:{rootKind:r,compatibilityProjection:!0},positionForCell:(c,l)=>({objectPath:c>0&&l===1?a[c]?.[0]:void 0})})],additionalViews:[{kind:"object",id:"view-json-root",name:i,rootKind:r,value:Mu(n),attributes:{nativeStructure:!0}}]})}function OO(e,t){return w1(NO(e,t))}function MO(e,t,n){const a=n.decodeXml(t);if(!a.valid)throw new Ia("XML konnte nicht geparst werden.",[{severity:"error",code:"xml-parse-error",message:a.message}]);const i=[["Pfad","Attribut","Text"],...a.rows.map(r=>[r.path,r.attributes,r.text])];return b1({file:e,format:"XML",rawText:t,tables:[vo({sourceFile:e.name,name:a.rootName,index:0,decodedRows:i,rawRows:i,rawText:t,attributes:{rootElement:a.rootName,compatibilityProjection:!0},positionForCell:r=>({objectPath:r>0?i[r]?.[0]:a.rootName})})],additionalViews:[{kind:"hierarchy",id:"view-xml-root",name:a.rootName,attributes:{nativeStructure:!0},nodes:a.rows.map(r=>({path:r.path,name:r.path.split("/").pop()?.replace(/\[\d+\]$/,"")??r.path,value:r.text||void 0,attributes:{...r.attributes?{serialized:r.attributes}:{},...r.attributeValues?{xmlAttributes:r.attributeValues}:{}}}))}]})}function jO(e,t,n){return w1(MO(e,t,n))}const XS=/\|(?:\s*:?-{2,}:?\s*\|)+/;function Cx(e){return e.split("|").map(t=>t.trim()).filter(Boolean)}function Zh(e){const t=XS.exec(e);if(!t)return null;const n=(t[0].match(/:?-{2,}:?/g)??[]).length;if(n<1)return null;const a=e.slice(0,t.index);if(a.lastIndexOf("|",a.length)<0)return null;const r=Cx(a);if(r.length<n)return null;const c=r.slice(-n);let l=a.length,f=n;for(;f>0;){const x=a.lastIndexOf("|",l-1);if(x<0)break;a.slice(x+1,l).trim()&&(f-=1),l=x}const T=f===0?a.slice(0,l).trim():"";let p=e.slice(t.index+t[0].length),m="";if(!p.trimEnd().endsWith("|")){const x=p.lastIndexOf("|");if(x<0)return null;m=p.slice(x+1).trim(),p=p.slice(0,x+1)}const g=Cx(p);if(!g.length||g.length%n!==0)return null;const S=[];for(let x=0;x<g.length;x+=n)S.push(g.slice(x,x+n));return{before:T,table:{headers:c,rows:S},after:m}}const FO=60,Ex=new RegExp("(?<=\\S)\\s+([-*+])\\s+(?=\\S)","g"),am=String.raw`\[(?:[^[\]\n]|\[[^[\]\n]*\])*\]\([^)\s]*\)`,kx=new RegExp(am,"g");function LO(e){const t=[];kx.lastIndex=0;let n;for(;n=kx.exec(e);)t.push([n.index,n.index+n[0].length]);return t}function KS(e){return e.split(`
|
||
`).map(t=>{if(XS.test(t)||im.test(t))return t;const n=LO(t),a=[];Ex.lastIndex=0;let i;for(;i=Ex.exec(t);){const l=i.index+i[0].indexOf(i[1]);n.some(([f,T])=>l>f&&l<T)||a.push({start:i.index,marker:l})}if(a.length<2)return t;let r="",c=0;return a.forEach(({start:l,marker:f})=>{r+=t.slice(c,l)+`
|
||
`,c=f}),r+t.slice(c)}).join(`
|
||
`)}const Ax=new RegExp("(?<![\\w.])(\\d{1,3})\\.\\s+","g");function $S(e){return e.split(`
|
||
`).map(t=>{const n=[];let a;for(Ax.lastIndex=0;a=Ax.exec(t);)n.push({index:a.index,value:Number(a[1])});if(n.length<2)return t;const i=new Set;let r=0;for(;r<n.length;){if(n[r].value!==1){r+=1;continue}let f=r;for(;f+1<n.length&&n[f+1].value===n[f].value+1;)f+=1;if(f>r)for(let T=r;T<=f;T+=1)i.add(n[T].index);r=f+1}if(!i.size)return t;let c="",l=0;return[...i].sort((f,T)=>f-T).forEach(f=>{c+=t.slice(l,f)+`
|
||
`,l=f}),c+=t.slice(l),c}).join(`
|
||
`)}function PO(e){const t=e.replace(/(\S)\s+(#{1,6}\s+)/g,`$1
|
||
$2`).replace(/(\S)\s+([*-]\s+\[)/g,`$1
|
||
$2`);return KS($S(t)).split(`
|
||
`).map(n=>{const a=YS.exec(n);if(!a)return n;const i=a[2].indexOf(": ");return i<0||i>FO?n:`${a[1]} ${a[2].slice(0,i+1)}
|
||
${a[2].slice(i+2).trim()}`}).join(`
|
||
`)}const YS=/^\s{0,3}(#{1,6})\s+(.*)$/,_O=/^\s{0,3}[-*+]\s+(.*)$/,qO=/^\s{0,3}\d{1,3}[.)]\s+(.*)$/,Jh=/^\s*\|.*\|\s*$/,im=/^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/,Rx=/^\s*```/,BO=[/^\s{0,3}#{1,6}\s+\S/m,/\*\*[^*\n]+\*\*/,new RegExp(am),/^\s{0,3}[-*+]\s+\S/m,/^\s{0,3}\d{1,3}[.)]\s+\S/m,/`[^`\n]+`/];function UO(e){if(!e)return!1;if(BO.some(n=>n.test(e))||/\S\s+#{1,6}\s+\S/.test(e)||$S(e)!==e||KS(e)!==e)return!0;const t=e.replace(/\r\n?/g,`
|
||
`).split(`
|
||
`);return zO(t,0)>=0||t.some(n=>Zh(n)!==null)}function zO(e,t){for(let n=t;n<e.length-1;n+=1)if(Jh.test(e[n])&&im.test(e[n+1]))return n;return-1}function Dx(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>t.trim())}const WO=new RegExp(`(\`[^\`\\n]+\`)|(${am})|(\\*\\*[^*\\n]+\\*\\*)|(__[^_\\n]+__)|(\\*[^*\\n]+\\*)|(_[^_\\n]+_)`);function Os(e){const t=[];let n=e;for(;n;){const a=WO.exec(n);if(!a||a.index===void 0)break;a.index>0&&t.push({kind:"text",text:n.slice(0,a.index)});const i=a[0];if(i.startsWith("`"))t.push({kind:"code",text:i.slice(1,-1)});else if(i.startsWith("[")){const r=i.lastIndexOf("](");t.push({kind:"link",href:i.slice(r+2,-1),children:Os(i.slice(1,r))})}else i.startsWith("**")||i.startsWith("__")?t.push({kind:"strong",children:Os(i.slice(2,-2))}):t.push({kind:"emphasis",children:Os(i.slice(1,-1))});n=n.slice(a.index+i.length)}return n&&t.push({kind:"text",text:n}),t.length?t:[{kind:"text",text:e}]}function ZS(e){if(!e)return e;let t=e;return t=t.replace(/(\S)\s*[\r\n]+\s*([.:;,?!)]+)(?=\s|$)/g,"$1$2"),t=t.replace(/(\S)[\r\n]+\s*([a-z])/g,"$1 $2"),t=t.replace(/\n{3,}/g,`
|
||
|
||
`),t.trim()}function sm(e){const t=ZS(e),n=PO(t.replace(/\r\n?/g,`
|
||
`)).split(`
|
||
`),a=[];let i=[],r=null;const c=()=>{i.length&&(a.push({kind:"paragraph",content:Os(i.join(" ").trim())}),i=[])},l=()=>{r&&(a.push({kind:"list",ordered:r.ordered,items:r.items.map(Os)}),r=null)},f=()=>{c(),l()};for(let T=0;T<n.length;T+=1){const p=n[T];if(Rx.test(p)){f();const y=[];for(T+=1;T<n.length&&!Rx.test(n[T]);)y.push(n[T]),T+=1;a.push({kind:"code",text:y.join(`
|
||
`)});continue}if(!p.trim()){f();continue}if(Jh.test(p)&&T+1<n.length&&im.test(n[T+1])){f();const y=Dx(p),w=[];for(T+=2;T<n.length&&Jh.test(n[T]);)w.push(Dx(n[T])),T+=1;T-=1,a.push({kind:"table",table:{headers:y,rows:w}});continue}const m=YS.exec(p);if(m){f();const y=Zh(m[2]),w=(y?y.before:m[2]).trim();w&&a.push({kind:"heading",level:m[1].length,content:Os(w)}),y&&(a.push({kind:"table",table:y.table}),y.after&&i.push(y.after));continue}const g=_O.exec(p),S=g?null:qO.exec(p);if(g||S){c();const y=!!S;r&&r.ordered!==y&&l(),r||(r={ordered:y,items:[]}),r.items.push((g?g[1]:S[1]).trim());continue}const x=Zh(p);if(x){l(),x.before&&i.push(x.before),c(),a.push({kind:"table",table:x.table}),x.after&&i.push(x.after);continue}l(),i.push(p.trim())}return f(),a}function VO(e){return sm(e).filter(t=>t.kind==="table").map(t=>t.table).filter(t=>t.headers.length>0&&t.rows.length>0)}const Qh=["pass","fail","error","unknown","manual","excepted"],HO='id="summary"',GO=8e3,Ix=/<div\s+class="metric-value\s+(pass|fail|error|unknown|manual|excepted)"\s*>\s*([0-9.,]+)\s*<\/div>/gi,XO=/<div\s+class="metric-value"\s*>\s*([0-9.,]+)\s*<span\s+class="total-metric-value"\s*>\s*\/\s*([0-9.,]+)\s*<\/span>/i;function Gf(e){const t=e.replace(/[^0-9]/g,"");return t?Number(t):0}function KO(){return{pass:0,fail:0,error:0,unknown:0,manual:0,excepted:0}}function $O(e){const t=je(e).toLocaleLowerCase("en-US");if(t){if(t==="pass"||t==="passed")return"pass";if(t==="fail"||t==="failed")return"fail";if(t==="error")return"error";if(t==="unknown")return"unknown";if(t==="manual")return"manual";if(t==="excepted"||t==="exception")return"excepted"}}function YO(e){const t=e.indexOf(HO);if(t<0)return null;const n=e.slice(t,t+GO),a=KO();let i=0;Ix.lastIndex=0;let r;for(;r=Ix.exec(n);){const l=r[1].toLocaleLowerCase("en-US");a[l]=Gf(r[2]),i+=1}if(i<Qh.length)return null;const c=XO.exec(n);return{counts:a,declaredRowCount:Qh.reduce((l,f)=>l+a[f],0),scoredPassed:c?Gf(c[1]):void 0,scoredTotal:c?Gf(c[2]):void 0}}const ZO=/<title\b[^>]*>([\s\S]{0,400}?)<\/title\s*>/i,JO=/^benchmark\s+result\s*[-–—:]?\s*/i,QO=/^xccdf[_.][\w.]*testresult[_.](\d+(?:\.\d+)*)[_.](.+)$/i,eM=/<div\b[^>]*\bid\s*=\s*["']coverPageTitle["'][^>]*>([\s\S]{0,4000}?)<\/div\s*>/i,tM=/<div\b[^>]*\bid\s*=\s*["']coverPageSubTitle["'][^>]*>([\s\S]{0,4000}?)<\/div\s*>/i,nM=/^for\s+(.+)$/i,aM=/^(?:target\s+)?ip\s*address\s*:\s*(.+)$/i,iM=/^(.*?)\s+v(\d+(?:\.\d+)*)$/,Nx=/^assessment\s+duration\s*:\s*(.+)$/i,sM=/CIS-CAT\s+Pro\s+Assessor\)?\s*v(\d+(?:\.\d+)*)/i,Ox=/<li\b[^>]*>([\s\S]{0,400}?)<\/li\s*>/gi,Mx=/<h([12])\b[^>]*>([\s\S]{0,400}?)<\/h\1\s*>/gi,rM=/data-score\s*=\s*["']?(-?\d+(?:[.,]\d+)?)["']?/i,oM=/^(\d+)\s+(.+)$/,cM=2e5,lM=[[/^host\s*name$|^hostname$|^system\s*name$/i,"host.name","Assessed host"],[/^operating\s*system$|^os\s*name$|^os$/i,"operating_system.name","Operating system"],[/^ip\s*address(?:es)?$/i,"host.ip_address","IP address"],[/^mac\s*address(?:es)?$/i,"host.mac_address","MAC address"],[/^domain$|^domain\s*name$/i,"host.domain","Host domain"],[/^assessment\s*(?:date|time|timestamp)$|^scan\s*(?:date|time)$/i,"report.generated_at","Report generation date"],[/^benchmark\s*version$/i,"benchmark.version","Benchmark version"],[/^profile$|^selected\s*profile$/i,"benchmark.profile","Benchmark profile"]];function uM(e){return e.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"")||"value"}function ep(e){return{type:"assessed-system",identity:e.file.name,label:"CIS-CAT assessed system"}}function mi(e){return{type:"benchmark-assessment",identity:e.file.name,label:"CIS-CAT benchmark assessment"}}function ur(e,t,n,a,i,r){const c=typeof i=="number"?i:vi(i);return{version:1,subject:t,property:n,label:a,originalValue:i,normalizedValue:c!==null?c:i,valueType:c!==null?"number":"string",state:"observed",sectionKey:"cis-cat-assessment-summary",source:{fileName:e.file.name,objectPath:r},attributes:{}}}function dM(e){const t=je(sn(ZO.exec(e.rawText)?.[1]??"")).replace(JO,""),n=QO.exec(t);return n?je(n[2].replace(/[_.]+/g," ")):t}function Yl(e,t){t.lastIndex=0;const n=[];let a;for(;a=t.exec(e);)n.push(je(sn(a[a.length-1]??"")));return n.filter(Boolean)}function TM(e){const t=[],n=(c,l,f,T,p)=>{T&&t.push(ur(e,c,l,f,T,p))},a=eM.exec(e.rawText)?.[1];if(a){const c=Yl(a,Mx).flatMap(f=>nM.exec(f)?.[1]??[]);n(ep(e),"host.name","Assessed host",je(c[0]??""),"html/cover/host");const l=Yl(a,Ox).flatMap(f=>aM.exec(f)?.[1]??[]);n(ep(e),"host.ip_address","IP address",je(l[0]??""),"html/cover/ip-address")}const i=tM.exec(e.rawText)?.[1];if(i){const c=Yl(i,Mx)[0]??"",l=iM.exec(c);n(mi(e),"benchmark.name","Benchmark",je(l?.[1]??c),"html/cover/benchmark"),n(mi(e),"benchmark.version","Benchmark version",je(l?.[2]??""),"html/cover/benchmark-version");const f=Yl(i,Ox),T=f.flatMap(m=>Nx.exec(m)?.[1]??[]),p=f.filter(m=>!Nx.test(m));n(mi(e),"benchmark.profile","Benchmark profile",p[0]??"","html/cover/profile"),n(mi(e),"report.generated_at","Report generation date",p[1]??"","html/cover/generated-at"),n(mi(e),"benchmark.assessment_duration","Assessment duration",je(T[0]??""),"html/cover/duration")}const r=sM.exec(e.rawText)?.[1];return n(mi(e),"report.engine_version","CIS-CAT engine version",je(r??""),"html/cover/engine"),t}function fM(e){const t=[];e.tables.forEach(r=>r.rows.forEach(c=>{if(c.cells.length!==2||c.index===r.headerCandidates[0]?.rowIndex)return;const l=je(c.cells[0]?.decodedValue).replace(/:$/,""),f=je(c.cells[1]?.decodedValue);l&&f&&t.push({label:l,value:f,objectPath:`html/tables/${r.index}/rows/${c.index}`})}));const n=e.rawText.slice(0,cM),a=/(?:^|>|\n)\s*([A-Za-z][A-Za-z ]{2,28})\s*:\s*([^<\n]{1,160})/g;let i;for(;i=a.exec(n);){const r=je(i[1]),c=je(i[2]);r&&c&&t.push({label:r,value:c,objectPath:`html/facts/${uM(r)}`})}return t}function hM(e){const t=new Set;return fM(e).flatMap(n=>{const a=lM.find(([r])=>r.test(n.label));if(!a||t.has(a[1]))return[];t.add(a[1]);const i=a[1].startsWith("benchmark.")||a[1]==="report.generated_at"?mi(e):ep(e);return[ur(e,i,a[1],a[2],n.value,n.objectPath)]})}function pM(e){const t=[],n=dM(e);n&&t.push(ur(e,mi(e),"benchmark.name","Benchmark",n,"html/title"));const a=rM.exec(e.rawText)?.[1],i=a===void 0?null:vi(a);i!==null&&t.push(ur(e,mi(e),"benchmark.score","Benchmark score",i,"html/summary/gauge"));const r=YO(e.rawText);return r&&(Qh.forEach(c=>t.push(ur(e,mi(e),`benchmark.result_count.${c}`,`Recommendations ${c}`,r.counts[c],`html/summary/${c}`))),r.scoredTotal!==void 0&&t.push(ur(e,mi(e),"benchmark.scored_total","Scored recommendations",r.scoredTotal,"html/summary/scored-total")),r.scoredPassed!==void 0&&t.push(ur(e,mi(e),"benchmark.scored_passed","Scored recommendations passed",r.scoredPassed,"html/summary/scored-passed"))),t}function mM(e){return e.tables.find(t=>{const n=t.headerCandidates[0]?.headers.map(i=>je(i))??[],a=i=>n.some(r=>i.test(r));return a(/^description$/i)&&a(/^pass$/i)&&a(/^fail$/i)&&a(/^percent$/i)})}function gM(e){const t=mM(e),n=t?.headerCandidates[0];if(!t||!n)return{observations:[]};const a=n.headers.map(T=>je(T)),i=T=>a.findIndex(p=>T.test(p)),r=i(/^description$/i),c=i(/^percent$/i),l=t.rows.filter(T=>T.index!==n.rowIndex);return{observations:l.flatMap(T=>{const p=je(T.cells[r]?.decodedValue),m=oM.exec(p),g=vi(T.cells[c]?.decodedValue);return!m||g===null?[]:[ur(e,{type:"benchmark-section",identity:m[1],label:je(m[2])},`benchmark.section_score.${m[1]}`,je(m[2]),g,`html/tables/${t.index}/rows/${T.index}`)]}),section:{version:1,sectionKey:"cis-cat-section-scores",label:"Benchmark section scores",ordinal:1,state:l.length?"observed":"empty",tables:[{name:"Section scores",sourceTableIndex:t.index,headers:a,rows:l.map(T=>a.map((p,m)=>je(T.cells[m]?.decodedValue)))}],source:{fileName:e.file.name,tableIndex:t.index},attributes:{rowCount:l.length}}}}function vM(e){const t=gM(e),n=new Set,a=[...TM(e),...hM(e),...pM(e),...t.observations].filter(r=>!n.has(r.property)&&n.add(r.property)),i={version:1,sectionKey:"cis-cat-assessment-summary",label:"CIS-CAT assessment summary",ordinal:0,state:a.length?"observed":"empty",tables:[],source:{fileName:e.file.name,objectPath:"html/summary"},attributes:{observationCount:a.length}};return{environmentObservations:a,reportSections:[i,...t.section?[t.section]:[]]}}const xM=/^(\d+(?:\.\d+)+)\s+/,jx=/^assessment\s*results?$|^assessmentresulttable$/i,yM=2e6,Fx=/^(?:show|hide|display|view|anzeigen|einblenden|ausblenden|zeigen?)\b[\s:]*/i,SM=/[\s–—>-]*\b(?:more|less|mehr|weniger)\b[\s:>]*$/i,JS=160,bM=640,wM=80,QS="Result Details",CM=/^rule\s*result\s*xml$/i,EM=/^references?$/i,kM=/_xml_result$/i,eb=/(?:^|\s)referenceList(?:$|\s)/i,AM=/(?:^|\s)bold(?:$|\s)/i,RM=/(?:^|\s)caption(?:$|\s)/i;function gr(e,t){return sn(Kr(e,t))}function Td(e){const t=[],n=[],a=/<\/?div\b[^>]*>/gi;let i;for(;i=a.exec(e);){if(/^<\s*\/div/i.test(i[0])){const c=n.pop();if(!c)continue;t.push({...c,end:a.lastIndex,html:e.slice(c.start,a.lastIndex)});continue}if(/\/\s*>$/.test(i[0]))continue;const r=i[0].replace(/^<div\b/i,"").replace(/>$/,"");n.push({start:i.index,id:gr(r,"id"),classes:gr(r,"class").split(/\s+/).filter(Boolean)})}return t}function tb(e){return je(sn(e)).replace(/\s+/g," ").toLocaleLowerCase("en-US")}function DM(e){const t=new Map,n=/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi;let a;for(;a=n.exec(e);){const i=gr(a[1]??"","href");if(!/^#detail-[\w:.-]+$/i.test(i))continue;const r=tb(a[2]??"");r&&!t.has(r)&&t.set(r,i.slice(1))}return t}function qr(e,t,n){return Td(e.html).filter(a=>a.classes.some(i=>i.toLocaleLowerCase("en-US")===t)).find(a=>!n||a.id.endsWith(n))}function IM(e){return e.replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(t,n,a)=>{const i=gr(n,"href"),r=sn(a);return g1(i)?`[${r}](${i})`:r})}function oo(e,t=!0){let n=e.replace(/<!--[\s\S]*?-->/g," ").replace(/<(?:script|style|iframe|object|embed|svg|form|template|canvas|audio|video)\b[^>]*>[\s\S]*?<\/(?:script|style|iframe|object|embed|svg|form|template|canvas|audio|video)\s*>/gi," ");return t&&(n=n.replace(/<table\b[^>]*>[\s\S]*?<\/table\s*>/gi,`
|
||
`)),n=IM(n),n=n.replace(/<code\b[^>]*>([\s\S]*?)<\/code\s*>/gi,(a,i)=>{const r=sn(i);return r?`
|
||
\`\`\`
|
||
${r}
|
||
\`\`\`
|
||
`:""}),n=n.replace(/<(?:p|div)\b([^>]*)>([\s\S]*?)<\/(?:p|div)\s*>/gi,(a,i,r)=>/\bbold\b/i.test(gr(i,"class"))?`
|
||
### ${sn(r).replace(/:\s*$/,"")}
|
||
`:a),n=n.replace(/<br\s*\/?>/gi,`
|
||
`).replace(/<li\b[^>]*>/gi,`
|
||
- `).replace(/<\/(?:p|div|li|ul|ol|h[1-6]|pre)\s*>/gi,`
|
||
`).replace(/<(?:p|div|ul|ol|h[1-6]|pre)\b[^>]*>/gi,`
|
||
`).replace(/<[^>]*>/g," "),ZS(n.split(/\r\n|\r|\n/).map(a=>sn(a)).join(`
|
||
`).replace(/[ \t]+\n/g,`
|
||
`).replace(/\n{3,}/g,`
|
||
|
||
`))}function bc(e,t){return e.replace(t,"").trim()}function NM(e){const t=[],n=/<ul\b([^>]*)>([\s\S]*?)<\/ul\s*>/gi;let a;for(;a=n.exec(e);)eb.test(gr(a[1]??"","class"))&&t.push({start:a.index,end:n.lastIndex});return t}function Xf(e,t,n){const a=je(n);!a||a.length>JS||e.push({position:t,label:a})}function OM(e){const t=[],n=NM(e),a=l=>n.some(f=>l>=f.start&&l<f.end),i=/<a\b[^>]*>([\s\S]*?)<\/a\s*>/gi;let r;for(;r=i.exec(e);){if(a(r.index))continue;const l=sn(r[1]??"");if(!Fx.test(l))continue;const f=je(l.replace(Fx,""))||sn((/^[^<]*/.exec(e.slice(i.lastIndex))??[""])[0].slice(0,JS));Xf(t,r.index,f)}const c=/<(b|strong|h[1-6]|span|p|div)\b([^>]*)>/gi;for(;r=c.exec(e);){if(a(r.index))continue;const l=r[1].toLocaleLowerCase("en-US"),f=gr(r[2]??"","class"),T=RM.test(f),p=/^(?:b|strong|h[1-6])$/.test(l)||AM.test(f);if(!T&&!p)continue;const m=e.slice(c.lastIndex,c.lastIndex+bM),g=new RegExp(`</${l}\\s*>`,"i").exec(m),S=sn(g?m.slice(0,g.index):m);T?Xf(t,r.index,S.replace(/:$/,"")):S.endsWith(":")&&Xf(t,r.index,S.slice(0,-1))}return t.sort((l,f)=>l.position-f.position)}function nb(e,t){let n=QS;for(const a of e){if(a.position>=t)break;n=a.label}return n}function MM(e){return oo(e).split(`
|
||
`).map(t=>je(t).replace(SM,"").replace(/[\s:>]+$/,"")).filter(t=>t&&t!=="-").join(`
|
||
`)}function jM(e){return Td(e.html).filter(t=>t.classes.some(n=>/^references?$/i.test(n))).map(t=>({start:t.start,end:t.end}))}function FM(e,t){const n=[],a=jM(e),i=/<ul\b([^>]*)>([\s\S]*?)<\/ul\s*>/gi;let r;for(;r=i.exec(e.html);){if(!eb.test(gr(r[1]??"","class"))||a.some(f=>r.index>=f.start&&r.index<f.end))continue;const c=nb(t,r.index);if(EM.test(c))continue;const l=MM(r[2]??"");l&&n.push(c===QS?l:`### ${c}
|
||
|
||
${l}`)}return n.join(`
|
||
|
||
`)}function LM(e,t){if(t.some(c=>c.attributes.extractionMode==="bounded-lexical"))return rd(e).map(c=>c.start);const a=[],i=/<table\b/gi;let r;for(;r=i.exec(e);)a.push(r.index);return a}function PM(e){return Td(e.html).filter(t=>t.classes.some(n=>n.toLocaleLowerCase("en-US")==="xml")&&kM.test(t.id)).map(t=>({start:t.start,end:t.end}))}function _M(e){const t=je(e.name);if(t&&!/^tabelle\s+\d+$/i.test(t))return t;const n=e.rows[0]?.cells??[],a=je(n[0]?.decodedValue);if(/^criterion:?$/i.test(a))return"Complex Check";const i=n.filter(c=>je(c.decodedValue));return new Set(i.map(c=>je(c.decodedValue))).size===1&&e.rows.length>1&&a.length<=wM?a:t||`Tabelle ${e.index+1}`}function qM(e){return e.rows.map(t=>t.cells.map(n=>n.decodedValue).join("")).join("")}function BM(e,t,n,a){const i=PM(e),r=t.map((T,p)=>({position:T,table:n[p]})).filter(T=>T.table&&T.position>=e.start&&T.position<e.end).map(T=>{const p=T.position-e.start;return{tableIndex:T.table.index,insideRuleResultXml:i.some(m=>p>=m.start&&p<m.end),section:nb(a,p),name:_M(T.table),contentSignature:qM(T.table)}}).filter(T=>!T.insideRuleResultXml&&!CM.test(T.section)),c=new Set,l=r.filter(T=>{const p=`${T.section}\0${T.name}\0${T.contentSignature}`;return c.has(p)?!1:(c.add(p),!0)}),f=new Map;return l.map(T=>{const p=`${T.section}\0${T.name}`,m=(f.get(p)??0)+1;f.set(p,m);const g=l.filter(S=>S.section===T.section&&S.name===T.name).length>1;return{tableIndex:T.tableIndex,label:`${T.section} · ${T.name}${g?` ${m}`:""}`}})}function ab(e){return{fragmentId:e,description:"",rationale:"",remediation:"",impact:"",ruleResultXml:"",references:"",controls:"",tables:[]}}function UM(e){if(!e)return"";const t=/<pre\b[^>]*>([\s\S]*?)<\/pre\s*>/i.exec(e);let n=t?t[1]:e;n=n.replace(/^[\s\S]*?Rule Result XML:\s*/i,"");const a=n.indexOf("<table");a>=0&&!/<xccdf:rule-result[\s\S]*?<table/i.test(n)&&(n=n.slice(0,a));let i=v1(n).trim();return i=i.replace(/^```\w*\n?/,"").replace(/\n?```$/,"").trim(),i}function zM(e,t,n){const a=ab(e.id),i=OM(e.html),r=oo(qr(e,"description")?.html??""),c=oo(qr(e,"rationale")?.html??""),l=oo(qr(e,"fixtext")?.html??""),f=oo(qr(e,"impact")?.html??""),T=UM(qr(e,"xml","_xml_result")?.html??""),p=oo(qr(e,"reference")?.html??qr(e,"references")?.html??"");return{...a,description:bc(r,/^description:\s*/i),rationale:bc(c,/^rationale:\s*/i),remediation:bc(l,/^remediation:\s*/i),impact:bc(f,/^impact:\s*/i),ruleResultXml:T,references:bc(p,/^references:\s*/i),controls:FM(e,i),tables:BM(e,t,n,i)}}function WM(e){return e.ruleResultXml?`\`\`\`xml
|
||
${e.ruleResultXml.slice(0,yM)}
|
||
\`\`\``:""}function Ti(e,t,n,a,i){return{key:e,label:t,originalValue:n,decodedValue:a,source:i}}function Kf(e,t,n){return e.rows.find(a=>a.index===t)?.cells[n]?.rawValue??""}function VM(e){const t=e.headerCandidates[0];return t?{rowIndex:t.rowIndex,values:t.headers.map(je)}:null}function HM(e,t,n,a,i,r){const c=t.rows.find(C=>C.index===n),l=a.findIndex(C=>/^(?:benchmark\s*item|title|recommendation)$/i.test(C)),f=a.findIndex(C=>/^result$/i.test(C)),T=a.findIndex(C=>/^(?:w|weight)$/i.test(C)),p=c.cells[l]?.decodedValue??"",m=c.cells[f]?.decodedValue??"",g=xM.exec(je(p))?.[1]??"",S={fileName:e.file.name,tableIndex:t.index,rowIndex:n,elementSelector:`#${i}`},x=[];g&&x.push(Ti("rule-id","Rule ID",g,g,{...S,columnIndex:l})),x.push(Ti("benchmark-item","Benchmark Item",Kf(t,n,l),p,{...S,columnIndex:l})),x.push(Ti("result","Result",Kf(t,n,f),m,{...S,columnIndex:f})),T>=0&&c.cells[T]?.decodedValue&&x.push(Ti("weight","Weight",Kf(t,n,T),c.cells[T].decodedValue,{...S,columnIndex:T})),r.description&&x.push(Ti("description","Description",r.description,r.description,S)),r.rationale&&x.push(Ti("rationale","Rationale",r.rationale,r.rationale,S)),r.remediation&&x.push(Ti("remediation","Remediation",r.remediation,r.remediation,S)),r.impact&&x.push(Ti("impact","Impact",r.impact,r.impact,S)),r.references&&x.push(Ti("references","References",r.references,r.references,S)),r.controls&&x.push(Ti("control-mappings","Control Mappings",r.controls,r.controls,S));const y=r.tables.map(C=>`source-table:${C.tableIndex} "${C.label.replace(/"/g,"'")}"`).join(`
|
||
`);y&&x.push(Ti("results","Results",{fragmentId:r.fragmentId,tables:r.tables.map(C=>({tableIndex:C.tableIndex,label:C.label}))},y,S));const w=WM(r);return w&&x.push(Ti("rule-result-xml","Rule Result XML",{fragmentId:r.fragmentId,ruleResultXml:r.ruleResultXml},w,S)),x}const GM={id:"cis-cat-html-source-extractor",version:"1.3.1",detect(e){if(e.format!=="HTML")return{score:0,evidence:[]};const t=e.tables.find(i=>i.attributes.elementId==="assessmentResultTable"||jx.test(je(i.name))),n=/<div\b[^>]*class\s*=\s*(?:"[^"]*\bRule\b[^"]*"|'[^']*\bRule\b[^']*')/i.test(e.rawText),a=/href\s*=\s*(?:"|')#detail-/i.test(e.rawText);return!t||!n||!a?{score:0,evidence:[]}:{score:1,evidence:["CIS-CAT Assessment-Result-Tabelle vorhanden.","Interne Detailverweise und regelgebundene Detailblöcke vorhanden."]}},extract(e){const t=vM(e),n=e.tables.find(x=>x.attributes.elementId==="assessmentResultTable"||jx.test(je(x.name)));if(!n)return{version:1,candidates:[],...t,diagnostics:[]};const a=VM(n);if(!a)return{version:1,candidates:[],...t,diagnostics:[{severity:"warning",code:"cis-cat-result-header-missing",message:"Die CIS-CAT-Ergebnistabelle besitzt keine sicher erkennbare Kopfzeile."}]};const i=a.values.findIndex(x=>/^(?:benchmark\s*item|title|recommendation)$/i.test(x)),r=a.values.findIndex(x=>/^result$/i.test(x));if(i<0||r<0)return{version:1,candidates:[],...t,diagnostics:[{severity:"warning",code:"cis-cat-result-columns-missing",message:"Benchmark Item und Result konnten in der CIS-CAT-Ergebnistabelle nicht gemeinsam gefunden werden."}]};const c=DM(e.rawText),l=wo(e.rawText).text,f=Td(l).filter(x=>x.id&&x.classes.some(y=>y.toLocaleLowerCase("en-US")==="rule")),T=new Map(f.map(x=>[x.id,x])),p=LM(l,e.tables),m=[];let g=0;for(const x of n.rows){if(x.index===a.rowIndex)continue;const y=x.cells[i]?.decodedValue??"",w=String(x.cells[i]?.rawValue??""),C=x.cells[r]?.decodedValue??"";if(!y||!$O(C))continue;const k=/href\s*=\s*["']#(detail-[\w:.-]+)["']/i.exec(w),E=k?k[1]:c.get(tb(y)),O=E?T.get(E):void 0;(!E||!O)&&(g+=1);const N=E??"assessmentResultTable",B=O?zM(O,p,e.tables):ab(N);m.push({version:1,id:`candidate-cis-cat-${n.index}-${x.index}`,source:{fileName:e.file.name,tableIndex:n.index,rowIndex:x.index,elementSelector:`#${N}`},fields:HM(e,n,x.index,a.values,N,B)})}const S=g?[{severity:"warning",code:"cis-cat-linked-detail-missing",message:`${g} CIS-CAT-Ergebniszeile(n) konnten keinem internen Detailblock zugeordnet werden.`,details:{missingDetails:g}}]:[];return{version:1,candidates:m,...t,diagnostics:S}}};function fd(e){const t=new Map,n=new Map,a=new Map,i=/<([a-zA-Z][\w:-]*)\b([^>]*)>/g;let r;for(;r=i.exec(e);){let c,l;for(const T of Cp(r[2]??""))T.name==="id"&&c===void 0&&(c=T.value),T.name==="name"&&l===void 0&&(l=T.value);if(!c&&!l)continue;const f={tagName:r[1],start:r.index,bodyStart:i.lastIndex,selfClosing:/\/\s*>$/.test(r[0])};c&&!t.has(c)&&t.set(c,f),l&&f.tagName.toLowerCase()==="a"&&!n.has(l)&&n.set(l,f);for(const T of new Set([c,l])){if(!T)continue;const p=a.get(T);p?p.count++:a.set(T,{count:1,start:f.start})}}return{byId:t,namedAnchors:n,definitions:a}}function ib(e,t,n,a){if(!e.trim())throw new Ia("PingCastle-Regel ohne Rule ID kann nicht vollständig importiert werden.",[{severity:"error",code:"pingcastle-rule-id-missing",stage:"extraction",source:n,message:"Ein nativer Regelblock enthält keine lesbare Rule ID."}]);const i=e.trim().toLocaleUpperCase("en-US");return t.has(i)?(a.push({severity:"warning",code:"pingcastle-duplicate-rule-id",stage:"extraction",source:n,message:"Eine Rule ID ist innerhalb der Quelle wiederholt. Die erste Darstellung bleibt das Finding; weitere Darstellungen werden nicht als zusätzliche Treffer gezählt.",details:{ruleId:e,retained:"first-presentation"}}),!1):(t.add(i),!0)}function XM(e,t,n){const a=[],i=[],r=p=>p.replace(/[^a-z]/gi,"").toLocaleLowerCase("en-US"),c=new Map;for(const p of n){const m=r(p.fields.find(g=>g.label==="Category")?.decodedValue??"");c.set(m,(c.get(m)??0)+1)}const l=/<h2\b([^>]*)>([\s\S]*?)<\/h2\s*>/gi;let f,T=!1;for(;f=l.exec(t);){if(!/\bclass\s*=\s*["'][^"']*\bindicator-header\b/i.test(f[1]))continue;const p=sn(f[2]);if(!/rules?\s+matched/i.test(p))continue;const m={fileName:e,objectPath:`html/indicator-headings/${i.length}`},g=/^(.*?)\s+rule\s+details\s*\[\s*(\S+)\s+rules?\s+matched\s+on\s+a\s+total\s+of\s+(\S+)\s*\]/i.exec(p),S=g?.[1]??p,x=g&&/^\d+$/.test(g[2])?Number(g[2]):NaN,y=g&&/^\d+$/.test(g[3])?Number(g[3]):NaN,w=c.get(r(S))??0;i.push([S,g?.[2]??"",g?.[3]??"",w,p]),T||=Number.isFinite(x)&&x>0,(!Number.isSafeInteger(x)||!Number.isSafeInteger(y)||x>y)&&a.push({severity:"warning",code:"pingcastle-rule-count-invalid",stage:"extraction",source:m,message:"Die deklarierte PingCastle-Regelbilanz ist ungültig; Originalangaben bleiben erhalten."}),Number.isSafeInteger(x)&&x!==w&&a.push({severity:"warning",code:"pingcastle-rule-count-mismatch",stage:"extraction",source:m,message:"Die deklarierte Trefferzahl stimmt nicht mit den extrahierten eindeutigen Regeln überein.",details:{category:S,declared:x,actual:w}})}if(!n.length&&(T||a.length))throw new Ia("PingCastle kündigt Regeln an, enthält aber keine auslesbaren Ergebnisse.",[...a,{severity:"error",code:"pingcastle-rule-results-missing",stage:"extraction",message:"Eine erfolgreiche Nullbefund-Verarbeitung ist bei dieser Regelbilanz nicht zulässig.",source:{fileName:e}}]);return{diagnostics:a,...i.length?{section:{version:1,sectionKey:"pingcastle-rule-coverage",label:"PingCastle rule coverage",ordinal:0,state:"observed",tables:[{name:"Declared and extracted rules",headers:["Category","Declared matched","Declared catalog size","Extracted unique rules","Original heading"],rows:i}],source:{fileName:e,objectPath:"html/indicator-headings"},attributes:{derivedColumn:"Extracted unique rules"}}}:{}}}const n0=5e3,sb=1e6;function tp(e){return e.replace(/[^a-zA-Z0-9_-]/g,"-")}function rm(e){return e.replace(/\s+/g," ").replace(/:$/,"").trim().toLocaleLowerCase("en-US")}function Mi(e,t,n,a){return{key:e,label:t,originalValue:n,decodedValue:n,source:a}}function KM(e,t){return{key:"linked-section",label:"Verwandte Daten",originalValue:{sections:e.map(n=>({sectionId:n.sectionId,sectionLabel:n.sectionLabel,prose:n.prose,headers:n.headers,rows:n.rows}))},decodedValue:e.map(n=>n.sectionLabel).join(", "),source:t}}function $M(e,t){const n=Math.min(e.length,t+sb),a=e.slice(t,n),i=/^\s*<p\b[^>]*>([\s\S]*?)<\/p\s*>/i.exec(a);if(i)return{value:sn(i[1]??""),rawValue:i[1]??"",end:t+i.index+i[0].length};const r=/^\s*([^<]{1,10000})\s*<\/p\s*>/i.exec(a);return r?{value:sn(r[1]??""),rawValue:r[1]??"",end:t+r.index+r[0].length}:{value:"",rawValue:"",end:t}}function rb(e){const t=[],n=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi;let a;for(;a=n.exec(e);){const i=[],r=/<t[hd]\b[^>]*>([\s\S]*?)<\/t[hd]\s*>/gi;let c;for(;c=r.exec(a[1]??"");)i.push(sn(c[1]??""));i.some(Boolean)&&t.push(i)}return t}function YM(e,t){const n=Math.min(e.length,t+sb),a=e.slice(t,n),i=/^(?:\s|<div\b[^>]*>|<\/div\s*>)*<table\b[^>]*>([\s\S]*?)<\/table\s*>/i.exec(a);return i?rb(i[1]??""):[]}function Lx(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const ZM=2e5,JM=8,QM=128,ej=256;function tj(e){const t=[],n=/<table\b[^>]*>([\s\S]*?)<\/table\s*>/gi;let a;for(;a=n.exec(e);){const i=rb(a[1]??"");i.length&&t.push(i)}return t}function ob(e){const t=e.replace(/<table\b[^>]*>[\s\S]*?<\/table\s*>/gi," ");return sn(t)}const gu='<i data-subsection-end="1"></i>',cb='<i data-subsection-start="1"></i>';function nj(e,t,n){const a=n.namedAnchors.get(t);if(!a)return null;const i=/^\s*<\/a\s*>/i.exec(e.slice(a.bodyStart,a.bodyStart+256)),r=a.bodyStart+(i?.[0].length??0),c=Math.min(e.length,r+ZM),l=e.slice(r,c),f=l.indexOf(gu),T=f>=0?f+gu.length:0,p=l.slice(T),m=p.indexOf(cb),g=p.indexOf(gu),S=[m,g].filter(x=>x>=0).sort((x,y)=>x-y)[0]??-1;return S>=0?p.slice(0,S):p}function om(e,t,n){const a=n.byId.get(t);if(!a)return null;const{tagName:i,start:r,bodyStart:c,selfClosing:l}=a;if(l)return{start:r,bodyStart:c,bodyEnd:c,end:c};const f=new RegExp("<"+Lx(i)+"\\b[^>]*>|<\\/"+Lx(i)+"\\s*>","gi");f.lastIndex=c;let T=1,p;for(;p=f.exec(e);)if(/^<\//.test(p[0])?T-=1:/\/\s*>$/.test(p[0])||(T+=1),T===0)return{start:r,bodyStart:c,bodyEnd:p.index,end:f.lastIndex};return null}function aj(e,t,n){const a=e.slice(t,Math.min(e.length,t+4096)),i=/<\/(?:a|button)\s*>/i.exec(a);return sn(i?a.slice(0,i.index):a.slice(0,256))||n}function lb(e){const t=[],n=new Set,a=/<i\s+data-pingcastle-target="([a-zA-Z0-9_.:-]+)"\s+data-pingcastle-relation="(anchor|collapse|modal)"\s*>\s*<\/i\s*>/gi;let i;for(;i=a.exec(e);){const r=i[1],c=i[2].toLocaleLowerCase("en-US"),l=c+"|"+r;n.has(l)||(n.add(l),t.push({index:i.index,targetId:r,relation:c,label:aj(e,a.lastIndex,r)}))}return t}function ij(e,t,n){const a=nj(e,t,n);if(a!==null)return{markup:a,label:t};const i=om(e,t,n);if(!i)return null;const r=e.slice(i.bodyStart,i.bodyEnd),c=/<h[1-6]\b[^>]*class\s*=\s*(?:"[^"]*\bmodal-title\b[^"]*"|'[^']*\bmodal-title\b[^']*')[^>]*>([\s\S]*?)<\/h[1-6]\s*>/i.exec(r);return{markup:r,label:sn(c?.[1]??"")||t}}function ub(e,t){if(!t.length)return e;const n=t.map(r=>({start:Math.max(0,r.start),end:Math.min(e.length,r.end)})).filter(r=>r.end>r.start).sort((r,c)=>r.start-c.start);let a="",i=0;return n.forEach(r=>{if(r.end<=i)return;const c=Math.max(i,r.start);a+=e.slice(i,c)+" ".repeat(r.end-c),i=r.end}),a+e.slice(i)}function sj(e,t,n){const a=[],i=[],r=new Set,c=[],l=new Set,f=(p,m)=>{const g=p+"|"+m;l.has(g)||(l.add(g),c.push({code:p,targetId:m}))},T=(p,m,g)=>{if(g>JM){f("depth-limit",p.targetId);return}if(r.size>=QM){f("target-limit",p.targetId);return}if(r.has(p.targetId))return;r.add(p.targetId);const S=n.definitions.get(p.targetId)?.count??0;if(S===0){f("unresolved",p.targetId);return}if(S>1){f("ambiguous",p.targetId);return}const x=ij(e,p.targetId,n);if(!x){f("unresolved",p.targetId);return}const y=x.label===p.targetId?p.label:x.label,w=m?m+" → "+y:y,C=lb(x.markup),k=fd(x.markup),E=C.map(I=>({child:I,span:om(x.markup,I.targetId,k)})).filter(I=>!!I.span),O=C.filter(I=>!E.some(L=>L.child.targetId!==I.targetId&&I.index>=L.span.start&&I.index<L.span.end)),N=E.map(I=>I.span),B=ub(x.markup,N),A=ob(B).trim(),z=tj(B),P=z.map(I=>I.map(L=>L.join(" | ")).join(`
|
||
`)).join(`
|
||
|
||
`),K=[A,P].filter(Boolean).join(`
|
||
|
||
`);if(K&&i.push(K),z.length){const I=ej-a.length;z.length>I&&f("table-limit",p.targetId),z.slice(0,Math.max(0,I)).forEach((L,le)=>{const ue=z.length>1;a.push({sectionId:ue?p.targetId+"--table-"+(le+1):p.targetId,sectionLabel:ue?w+" · Tabelle "+(le+1):w,text:L.map(X=>X.join(" | ")).join(`
|
||
`),prose:A,headers:L[0]??[],rows:L.slice(1)})})}else A&&a.push({sectionId:p.targetId,sectionLabel:w,text:A,prose:A,headers:["Inhalt"],rows:[[A]]});O.sort((I,L)=>(n.definitions.get(I.targetId)?.start??Number.MAX_SAFE_INTEGER)-(n.definitions.get(L.targetId)?.start??Number.MAX_SAFE_INTEGER)||I.index-L.index).forEach(I=>T(I,w,g+1))};return t.forEach(p=>T(p,"",0)),{sections:a,text:i.join(`
|
||
|
||
`),issues:c}}function rj(e){const t=[],n=new Map,a=[],i=fd(e),r=/<strong\b[^>]*>([\s\S]{0,2048}?)<\/strong\s*>/gi;let c;for(;(c=r.exec(e))&&t.length<n0*16;){const l=rm(sn(c[1]??""));if(!l)continue;const f=$M(e,r.lastIndex);let T=f.value;if(l==="details"){const p=YM(e,f.end);if(p.length){const g=p.map(S=>S.join(" | ")).join(`
|
||
`);T=T?`${T}
|
||
${g}`:g}const m=sj(e,lb(f.rawValue),i);a.push(...m.issues),m.text&&(T=T?`${T}
|
||
${m.text}`:m.text),(p.length>1||m.sections.length)&&n.set(c.index,{embedded:p.length>1?p:void 0,linked:m.sections.length?m.sections:void 0})}t.push({index:c.index,label:l,value:T})}return{labels:t,detailsExtras:n,linkIssues:a}}function Px(e,t,n,a){const i=Math.max(0,t-25e4),r=e.slice(i,t),c=new RegExp("<"+n+"\\b([^>]*)>([\\s\\S]*?)<\\/"+n+"\\s*>","gi");let l="",f;for(;f=c.exec(r);){if(a){const T=/class\s*=\s*(?:"([^"]*)"|'([^']*)')/i.exec(f[1]??""),p=T?.[1]??T?.[2]??"";if(!new RegExp("(?:^|\\s)"+a+"(?:\\s|$)","i").test(p))continue}l=sn(f[2]??"")}return l}function oj(e,t,n){const a=Math.max(0,n,t-4e3),i=e.slice(a,t),r=/<span\s+class\s*=\s*["'][^"']*\bcard-title\b[^"']*["'][^>]*>([\s\S]*?)<\/span\s*>/gi;let c="",l;for(;l=r.exec(i);)c=sn(l[1]??"");return c}function cj(e,t){const n=Math.max(0,t-4e3),a=e.slice(n,t),i=[...a.matchAll(/\+\s*([\d.]+)\s*Point\(s\)/gi)],r=[...a.matchAll(/\bInformative rule\b/gi)],c=i[i.length-1],l=r[r.length-1];return!c&&!l?"":!l||c&&c.index>l.index?c[1]:"0"}function lj(e){return e.replace(/\bhref\s*=\s*"#([a-zA-Z0-9_.:-]+)"/gi,'data-anchor-target="$1"')}function uj(e){return e.replace(/<([a-zA-Z][\w:-]*)\b([^>]*)>/g,(t,n,a)=>{const i=Kr(a,"data-bs-toggle").toLocaleLowerCase("en-US"),r=[Kr(a,"href"),Kr(a,"data-bs-target"),Kr(a,"aria-controls")],c=new Set;if(r.forEach(f=>{const T=/^#?([a-zA-Z0-9_.:-]+)$/.exec(f.trim())?.[1];T&&c.add(T)}),!c.size)return t;const l=i==="modal"?"modal":i==="collapse"?"collapse":"anchor";return t+[...c].map(f=>`<i data-pingcastle-target="${f}" data-pingcastle-relation="${l}"></i>`).join("")})}function dj(e){return e.replace(/<!--\s*SubSection\b[\s\S]*?-->/gi,t=>/\bend\s*-->$/i.test(t)?gu:cb)}function Tj(e){const t=dj(lj(uj(sd(e.rawText)))),n=wo(t).text,a=sn(n.slice(0,Math.min(n.length,5e5))),i=w=>w.exec(a)?.[1]??"",r={global:{value:i(/Domain Risk Level\s*:\s*(\d+)\s*\/\s*100/i),source:{fileName:e.file.name,objectPath:"html/risk-score"}},staleObjects:{value:i(/Stale Objects?\s*:\s*(\d+)\s*\/\s*100/i),source:{fileName:e.file.name,objectPath:"html/risk-score/stale-objects"}},privilegedAccounts:{value:i(/Privileged Accounts\s*:\s*(\d+)\s*\/\s*100/i),source:{fileName:e.file.name,objectPath:"html/risk-score/privileged-accounts"}},trusts:{value:i(/Trusts\s*:\s*(\d+)\s*\/\s*100/i),source:{fileName:e.file.name,objectPath:"html/risk-score/trusts"}},anomalies:{value:i(/Anomalies\s*:\s*(\d+)\s*\/\s*100/i),source:{fileName:e.file.name,objectPath:"html/risk-score/anomalies"}}},{labels:c,detailsExtras:l,linkIssues:f}=rj(n),T=c.filter(w=>w.label==="rule id"),p=[],m=[],g=new Set;for(let w=0;w<T.length&&p.length<n0;w+=1){const C=T[w],k=C.value.trim();if(!ib(k,g,{fileName:e.file.name,objectPath:`html/rule-blocks/${w}`},m))continue;const E=T[w+1]?.index??n.length,O=c.filter(re=>re.index>=C.index&&re.index<E),N=(...re)=>O.find(me=>re.includes(me.label)&&me.value)?.value??"",B=Px(n,C.index,"h3"),z=oj(n,C.index,T[w-1]?.index??0)||B||k,K=Px(n,C.index,"h2","indicator-header").replace(/\s+rule details\b[\s\S]*$/i,"").replace(/\s*\[\s*\d+\s+rules?\s+matched[\s\S]*$/i,"").trim(),I={fileName:e.file.name,objectPath:"html/rules/"+k},L=[Mi("risk-id","Rule ID",k,I),Mi("title","Title",z,I),Mi("status","Status","Matched",I)],le=[["description","Description",N("description")],["technical-explanation","Technical explanation",N("technical explanation")],["solution","Advised solution",N("advised solution")],["points-scale","Points Scale",N("points")],["points","Points",cj(n,C.index)],["documentation","Documentation",N("documentation")],["details","Details",N("details")]];B&&B!==z&&le.push(["check-title","Check title",B]),K&&le.push(["category","Category",K]),le.filter(([,,re])=>re).forEach(([re,me,te])=>L.push(Mi(re,me,te,I)));const ue=O.find(re=>re.label==="details"&&re.value),X=ue?l.get(ue.index):void 0,F=[];X?.embedded&&F.push({sectionId:"rule-details-"+tp(k),sectionLabel:"Details",text:"",prose:"",headers:X.embedded[0]??[],rows:X.embedded.slice(1)}),X?.linked&&F.push(...X.linked),F.length&&L.push(KM(F,I)),fb(L,K,r),p.push({version:1,id:"candidate-pingcastle-html-"+tp(k)+"-"+p.length,source:I,fields:L})}const S=f.map(w=>({severity:"warning",code:"pingcastle-linked-section-"+w.code,message:w.code==="unresolved"?"Ein interner PingCastle-Detailverweis konnte nicht aufgelöst werden.":w.code==="ambiguous"?"Ein interner PingCastle-Detailverweis besitzt mehrere gleichnamige Ziele und wurde nicht automatisch aufgelöst.":"Die rekursive PingCastle-Detailauflösung wurde durch ein Ressourcenlimit begrenzt.",stage:"extraction",source:{fileName:e.file.name,objectPath:"html/linked-sections/"+w.targetId},details:{targetId:w.targetId,reason:w.code}}));T.length>n0&&S.push({severity:"warning",code:"pingcastle-rule-limit",message:"Der PingCastle-Bericht enthält mehr als "+n0+" Regelblöcke; die Extraktion wurde begrenzt.",stage:"extraction"});const x=pj(e),y=XM(e.file.name,n,p);return y.section&&x.push({...y.section,ordinal:x.length}),{candidates:p,diagnostics:[...S,...m,...y.diagnostics],reportSections:x,environmentObservations:xj(e,x.filter(w=>w.sectionKey!=="pingcastle-rule-coverage"),r)}}const fj=new Set(["sectionStaleObjects","sectionPrivilegedAccounts","sectionTrusts","sectionAnomaliesanalysis"]);function np(e,t=!1,n=fd(e)){const a=[],i=/<div\b([^>]*)>/gi;let r;const c=new Set;for(;r=i.exec(e);){const f=Kr(r[1]??"","id");if(!/^section[a-zA-Z0-9_.:-]+$/i.test(f)||c.has(f))continue;const T=om(e,f,n);T&&(c.add(f),a.push({...T,sectionKey:f}))}a.sort((f,T)=>f.start-T.start||T.end-f.end),a.forEach(f=>{const T=a.filter(p=>p.sectionKey!==f.sectionKey&&p.bodyStart<=f.start&&p.end>=f.end).sort((p,m)=>p.end-p.start-(m.end-m.start))[0];T&&(f.parentSectionKey=T.sectionKey)});const l=new Set;return a.forEach(f=>{(fj.has(f.sectionKey)||f.parentSectionKey&&l.has(f.parentSectionKey))&&l.add(f.sectionKey)}),t?a:a.filter(f=>!l.has(f.sectionKey))}function _x(e){const t=e.headerCandidates[0],n=t?.headers??e.columns.map(i=>i.headerCandidates[0]?.value??`Spalte ${i.index+1}`),a=e.rows.filter(i=>i.index!==t?.rowIndex).map(i=>i.cells.map(r=>r.decodedValue));return{headers:n,rows:a}}function hj(e,t){return/reserved for customers who have purchased a license/i.test(e)?"license-restricted":/access denied/i.test(e)&&!t.some(n=>n.rows.length)?"access-denied":t.some(n=>n.rows.length)?"observed":/\bno\s+[^.\n]{0,160}\s+(?:has|have|were|was)\s+been\s+found\b/i.test(e)||/\bnumber of [^:\n]{0,100}:\s*0\b/i.test(e)?"explicitly-absent":e.trim()?"observed":(t.length,"empty")}function pj(e){const t=wo(e.rawText).text,n=fd(t),a=np(t,!1,n),i=np(t,!0,n),r=rd(t),l=r.map((T,p)=>({span:T,index:p})).filter(({span:T})=>!i.some(p=>T.start>=p.start&&T.end<=p.end)).map(T=>T.index).filter(T=>e.tables[T]).map(T=>{const p=e.tables[T],m=_x(p);return{name:p.name,sourceTableIndex:p.index,headers:m.headers,rows:m.rows}});return[{version:1,sectionKey:"report-overview",label:"Report overview",ordinal:0,state:l.some(T=>T.rows.length)?"observed":"empty",tables:l,source:{fileName:e.file.name,objectPath:"html/report-overview"},attributes:{tableCount:l.length}},...a.map((T,p)=>{const m=a.filter(C=>C.parentSectionKey===T.sectionKey),g=ub(t.slice(T.bodyStart,T.bodyEnd),m.map(C=>({start:C.start-T.bodyStart,bodyStart:C.bodyStart-T.bodyStart,bodyEnd:C.bodyEnd-T.bodyStart,end:C.end-T.bodyStart}))),S=sn(/<h[1-6]\b[^>]*>([\s\S]*?)<\/h[1-6]\s*>/i.exec(g)?.[1]??"")||T.sectionKey,x=ob(g.replace(/<h[1-6]\b[^>]*>[\s\S]*?<\/h[1-6]\s*>/gi," ")).trim(),w=r.map((C,k)=>({span:C,index:k})).filter(({span:C})=>C.start>=T.bodyStart&&C.end<=T.bodyEnd&&!m.some(k=>C.start>=k.start&&C.end<=k.end)).map(C=>C.index).filter(C=>e.tables[C]).map(C=>{const k=e.tables[C],E=_x(k);return{name:k.name,sourceTableIndex:k.index,headers:E.headers,rows:E.rows}});return{version:1,sectionKey:T.sectionKey,parentSectionKey:T.parentSectionKey,label:S,ordinal:p+1,state:hj(x,w),prose:x||void 0,tables:w,source:{fileName:e.file.name,objectPath:`html/sections/${T.sectionKey}`},attributes:{tableCount:w.length}}})]}function $i(e){return e.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,".").replace(/^\.|\.$/g,"")||"value"}function mj(e,t,n){const a=rm(n),i={domain:"domain.fqdn","netbios name":"domain.netbios_name","domain functional level":"domain.functional_level","forest functional level":"forest.functional_level","creation date":"domain.created_at","dc count":"domain.controller_count","number of dc":"domain.controller_count","schema version":"forest.schema_version","recycle bin enabled":"domain.recycle_bin_enabled"};return(/domaininformation/i.test(e)||/domain\s*information|directory/i.test(t))&&i[a]?i[a]:{"operating system":"operating_system.name","nb os":"operating_system.count","trust partner":"trust.partner","trust direction":"trust.direction","trust type":"trust.type","password policy":"password_policy.name","minimum password length":"password_policy.minimum_length","password history":"password_policy.history_length","maximum password age":"password_policy.maximum_age","certificate authority":"pki.certificate_authority.name","certificate template":"pki.certificate_template.name"}[a]}function Lc(e){return e.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"value"}function gj(e){const t=wo(e.rawText).text,n=np(t,!0),a=[],i=/<h2\b[^>]*>([\s\S]*?)<\/h2\s*>/gi;let r;for(;r=i.exec(t);){const l=sn(r[1]??"").trim();l&&a.push({start:r.index,label:l})}const c=new Map;return rd(t).forEach((l,f)=>{const p=n.filter(S=>l.start>=S.bodyStart&&l.end<=S.bodyEnd).sort((S,x)=>x.end-x.start-(S.end-S.start))[0];if(!p)return;const m=a.filter(S=>S.start>=p.bodyStart&&S.start<l.start).at(-1),g=e.tables[f]?.index;m&&g!==void 0&&c.set(g,m.label)}),{tableLabels:c,headings:a.flatMap(l=>{const f=n.filter(T=>l.start>=T.bodyStart&&l.start<T.bodyEnd).sort((T,p)=>T.end-T.start-(p.end-p.start))[0];return f?[{sectionKey:f.sectionKey,label:l.label}]:[]})}}function db(e){return/domaininformation/i.test(e)?"domain-information":/computerinformation|computer/i.test(e)?"computer-information":/user/i.test(e)?"user-information":/admingroups/i.test(e)?"admin-groups":/controlpathsanalysis/i.test(e)?"control-paths-analysis":/infrastructure/i.test(e)?"infrastructure":/anomalies/i.test(e)?"anomalies":/passwordpolicies/i.test(e)?"password-policies":/^sectiongpo$/i.test(e)?"gpo":/trust/i.test(e)?"trusts-details":/pki|certificate/i.test(e)?"pki":void 0}function vj(e,t,n,a){const i=new Set(a.map(rm));if(/neverexpiresuser/i.test(e))return"user-information.password-age-distribution";if(/enabledtrusteddelegationcomputer/i.test(e))return"computer-information.account-analysis";if(/userinformation/i.test(e)&&i.has("nb user accounts"))return"user-information.account-analysis";if(/userinformation/i.test(e)&&/^account\s+list$/i.test(n))return"user-information.honey-pot";const r=db(e);return r?t?`${r}.${Lc(t)}`:r:"pingcastle-table-row"}function ap(e){const t=e.trim();return/^(?:true|yes)$/i.test(t)?{normalizedValue:!0,valueType:"boolean"}:/^(?:false|no)$/i.test(t)?{normalizedValue:!1,valueType:"boolean"}:/^-?\d+(?:\.\d+)?$/.test(t)?{normalizedValue:Number(t),valueType:"number"}:/^\d{4}-\d{2}-\d{2}(?:[ T].*)?Z?$/i.test(t)?{normalizedValue:t,valueType:"datetime"}:{normalizedValue:t,valueType:"string"}}function ks(e,t){e.push({version:1,attributes:{},...t})}function xj(e,t,n){const a=[],i=sn(wo(e.rawText).text),r=gj(e),c=/Date:\s*(\d{4}-\d{2}-\d{2})\s*-\s*Engine version:\s*([^\s<]+)/i.exec(i);c&&(ks(a,{subject:{type:"scanner-report",identity:e.file.name},property:"report.generated_at",label:"Report generation date",originalValue:c[1],normalizedValue:c[1],valueType:"datetime",state:"observed",observedAt:c[1],source:{fileName:e.file.name,objectPath:"html/report-metadata/date"}}),ks(a,{subject:{type:"scanner-report",identity:e.file.name},property:"report.engine_version",label:"PingCastle engine version",originalValue:c[2],normalizedValue:c[2],valueType:"string",state:"observed",source:{fileName:e.file.name,objectPath:"html/report-metadata/engine-version"}})),[["risk.domain","Domain Risk Level",n.global],["risk.stale_objects","Stale Objects score",n.staleObjects],["risk.privileged_accounts","Privileged Accounts score",n.privilegedAccounts],["risk.trusts","Trusts score",n.trusts],["risk.anomalies","Anomalies score",n.anomalies]].forEach(([p,m,g])=>{g?.value&&ks(a,{subject:{type:"active-directory-environment"},property:p,label:m,originalValue:g.value,normalizedValue:Number(g.value),valueType:"number",state:"observed",source:g.source,attributes:{maximum:100}})}),t.forEach(p=>{p.tables.forEach((m,g)=>{const S=m.sourceTableIndex===void 0?void 0:r.tableLabels.get(m.sourceTableIndex),x=vj(p.sectionKey,S,m.name,m.headers),y=x==="pingcastle-table-row"?{type:"report-section",identity:p.sectionKey,label:p.label}:{type:x,identity:`${p.sectionKey}:${Lc(S??m.name)}`,label:S??m.name};if(ks(a,{subject:y,property:`inventory.${$i(p.sectionKey)}.${$i(m.name)}.row_count`,label:`${m.name} row count`,originalValue:m.rows.length,normalizedValue:m.rows.length,valueType:"number",state:m.rows.length?"observed":p.state==="observed"?"empty":p.state,sectionKey:p.sectionKey,source:{fileName:e.file.name,tableIndex:m.sourceTableIndex,objectPath:`html/sections/${p.sectionKey}/tables/${g}/row-count`}}),!m.rows.length){ks(a,{subject:y,property:`section.${$i(p.sectionKey)}.table.${g}.presence`,label:m.name,originalValue:null,valueType:"object",state:p.state==="observed"?"empty":p.state,sectionKey:p.sectionKey,source:{fileName:e.file.name,tableIndex:m.sourceTableIndex,objectPath:`html/sections/${p.sectionKey}/tables/${g}`}});return}m.rows.forEach((w,C)=>{const k=w.map(O=>typeof O=="string"?O:String(O??"")),E=k.find(O=>O.trim())||`${p.sectionKey}:row-${C+1}`;k.forEach((O,N)=>{const B=m.headers[N]||`Column ${N+1}`;if(!O.trim())return;const A=ap(O),z=mj(p.sectionKey,m.name,B);ks(a,{subject:{type:x,identity:E,label:E},property:z??`pingcastle.${$i(p.sectionKey)}.${$i(m.name)}.${$i(B)}`,label:B,originalValue:O,...A,state:"observed",sectionKey:p.sectionKey,source:{fileName:e.file.name,tableIndex:m.sourceTableIndex,rowIndex:C+1,columnIndex:N},attributes:{tableName:m.name,...S?{subsectionLabel:S}:{}}})})})})});const l=new Set([...r.tableLabels.entries()].map(([p,m])=>{const g=t.find(S=>S.tables.some(x=>x.sourceTableIndex===p));return g?`${g.sectionKey}\0${m}`:""})),f=new Set(["sectionDomainInformation\0Entra ID Configuration","sectionAnomalies\0Backup","sectionAnomalies\0LAPS","sectionAnomalies\0Windows Event Forwarding (WEF)","sectionAnomalies\0krbtgt (Used for Golden ticket attacks)"]);return r.headings.forEach(({sectionKey:p,label:m})=>{const g=`${p}\0${m}`;if(l.has(g)||f.has(g)||!t.some(y=>y.sectionKey===p))return;const S=db(p);if(!S)return;const x=`${S}.${Lc(m)}`;ks(a,{subject:{type:x,identity:`${p}:${Lc(m)}`,label:m},property:`section.${$i(p)}.subsection.${$i(m)}.presence`,label:m,originalValue:null,valueType:"object",state:"observed",sectionKey:p,source:{fileName:e.file.name,objectPath:`html/sections/${p}/subsections/${Lc(m)}`},attributes:{subsectionLabel:m}})}),[[/Last backup date:\s*([^\s]+(?:\s+[^\s]+)?)/i,"backup.last_detected_at","Last detected AD backup","datetime"],[/Legacy LAPS installation date:\s*(Never|\d{4}-\d{2}-\d{2}(?:[ T][0-9:.+-]+Z?)?)/i,"laps.legacy.installation_date","Legacy LAPS installation date","datetime"],[/Windows LAPS installation date:\s*(Never|\d{4}-\d{2}-\d{2}(?:[ T][0-9:.+-]+Z?)?)/i,"laps.windows.installation_date","Windows LAPS installation date","datetime"],[/Number of WEF configuration found:\s*(\d+)/i,"logging.wef.configuration_count","WEF configuration count","number"],[/Kerberos password last changed:\s*([^\s]+(?:\s+[^\s]+)?)/i,"kerberos.krbtgt.password_last_changed","krbtgt password last changed","datetime"],[/Kerberos password last changed:[\s\S]{0,200}?version:\s*(\d+)/i,"kerberos.krbtgt.version","krbtgt version","number"]].forEach(([p,m,g,S])=>{const x=p.exec(i)?.[1]?.trim();if(!x)return;const y=/^never$/i.test(x),w=S==="number"?{normalizedValue:Number(x),valueType:S}:{normalizedValue:x,valueType:S},C=m==="backup.last_detected_at"?["anomalies.backup","sectionAnomalies"]:m.startsWith("laps.")?["anomalies.laps","sectionAnomalies"]:m==="logging.wef.configuration_count"?["anomalies.windows-event-forwarding-wef","sectionAnomalies"]:m.startsWith("kerberos.krbtgt.")?["anomalies.krbtgt-used-for-golden-ticket-attacks","sectionAnomalies"]:["active-directory-environment",void 0];ks(a,{subject:{type:C[0]},property:m,label:g,originalValue:x,...w,state:y?"explicitly-absent":"observed",sectionKey:C[1],source:{fileName:e.file.name,objectPath:`html/facts/${m}`}})}),/No Entra ID configuration has been found in this domain/i.test(i)&&ks(a,{subject:{type:"domain-information.entra-id-configuration"},property:"entra.configuration_detected",label:"Entra ID configuration detected",originalValue:!1,normalizedValue:!1,valueType:"boolean",state:"explicitly-absent",sectionKey:"sectionDomainInformation",source:{fileName:e.file.name,objectPath:"html/facts/entra-configuration"}}),a}function cm(e){return e.views.find(t=>t.kind==="hierarchy")}function Tb(e){const t=new Map;return cm(e)?.nodes.forEach(n=>{const a=/^(.*\/RiskRules\[\d+\]\/HealthcheckRiskRule\[\d+\])(?:\/([^/]+)\[\d+\])?/i.exec(n.path);if(!a)return;const i=a[1],r=a[2],c=t.get(i)??{path:i,direct:new Map,details:[]};r?n.path.slice(i.length+1).includes("/")?/\/(?:Details|ExtraDetails)\[\d+\]\//i.test(n.path)&&Ni(n)&&c.details.push(n):c.direct.set(r.toLocaleLowerCase("en-US"),n):c.root=n,t.set(i,c)}),[...t.values()]}function Ni(e){return typeof e?.value=="string"?e.value.trim():e?.value==null?"":String(e.value)}function yj(e,t){return cm(e)?.nodes.find(n=>new RegExp("^HealthcheckData/"+t+"\\[\\d+\\]$","i").test(n.path))}function Sj(e){const t=n=>{const a=yj(e,n),i=Ni(a);return a&&i?{value:i,source:a.source}:void 0};return{global:t("GlobalScore"),staleObjects:t("StaleObjectsScore"),privilegedAccounts:t("PrivilegiedGroupScore"),trusts:t("TrustScore"),anomalies:t("AnomalyScore")}}function bj(e,t){const n=e.replace(/[^a-z]/gi,"").toLocaleLowerCase("en-US");if(n==="staleobjects")return t.staleObjects;if(n==="privilegedaccounts"||n==="privilegiedaccounts")return t.privilegedAccounts;if(n==="trusts")return t.trusts;if(n==="anomalies")return t.anomalies}function fb(e,t,n){n.global?.value&&e.push(Mi("global-score","Domain Risk Level",n.global.value,n.global.source));const a=bj(t,n);a?.value&&e.push(Mi("category-score","Category Score",a.value,a.source))}function wj(e){const t=e.filter(r=>/\/Details\[\d+\]\//i.test(r.path)).map(Ni).filter(Boolean),n=e.filter(r=>/\/ExtraDetails\[\d+\]\//i.test(r.path)),i=[...new Set(n.map(r=>/^(.*\/DetailItemBase\[\d+\])/i.exec(r.path)?.[1]).filter(r=>!!r))].map(r=>{const c=n.filter(T=>T.path.startsWith(r+"/")),l=Ni(c.find(T=>/\/Name\[\d+\]$/i.test(T.path))),f=c.filter(T=>/\/(?:Value\[\d+\]|Values\[\d+\]\/string\[\d+\])$/i.test(T.path)).map(Ni).filter(Boolean);return l&&f.length?l+": "+f.join(", "):""}).filter(Boolean);return[...t,...i]}function Cj(e){const t=Tb(e),n=Sj(e),a=[],i=new Set,r=[];for(const m of t){if(a.length>=n0)break;const g=m.direct.get("riskid"),S=Ni(g);if(!ib(S,i,g?.source??{fileName:e.file.name,objectPath:m.path},r))continue;const x=m.direct.get("rationale"),y=m.direct.get("notice"),w=g?.source??m.root?.source??{fileName:e.file.name,objectPath:m.path},C=[Mi("risk-id","Rule ID",S,w),Mi("rationale","Title",Ni(x)||Ni(y)||S,x?.source??w),Mi("status","Status","Matched",w)];[["category","Category","Category"],["model","Model","Model"],["points","Points","Points"],["notice","Evidence","Notice"],["noticetooltip","Evidence","NoticeTooltip"]].forEach(([O,N,B])=>{const A=m.direct.get(O),z=Ni(A);z&&C.push(Mi(B,N,z,A?.source??w))});const E=wj(m.details);E.length&&C.push(Mi("Details","Details",E.join(`
|
||
`),m.details[0]?.source??w)),fb(C,Ni(m.direct.get("category")),n),a.push({version:1,id:"candidate-pingcastle-xml-"+tp(S)+"-"+a.length,source:w,fields:C})}const c=[...r,{severity:"warning",code:"pingcastle-xml-results-unavailable",message:"PingCastle-XML wird als eigenständiger Import verarbeitet. Results sind nur aus dem zugehörigen HTML-Bericht verfügbar.",stage:"extraction",source:{fileName:e.file.name,objectPath:"HealthcheckData/RiskRules"}}];t.length>n0&&c.push({severity:"warning",code:"pingcastle-rule-limit",message:"Der PingCastle-Bericht enthält mehr als "+n0+" RiskRules; die Extraktion wurde begrenzt.",stage:"extraction"});const l=cm(e)?.nodes.filter(m=>!/\/RiskRules\[\d+\](?:\/|$)/i.test(m.path))??[],f=new Set(l.map(m=>m.path.slice(0,m.path.lastIndexOf("/")))),T=[];for(const m of l){const g=Ni(m),S=m.attributes.xmlAttributes,x=S&&typeof S=="object"&&!Array.isArray(S)?Object.entries(S).filter(w=>typeof w[1]=="string"):[],y={version:1,subject:{type:"pingcastle-xml-node",identity:m.path},property:`pingcastle.xml.${$i(m.path)}`,label:m.name,sectionKey:"HealthcheckData",source:m.source,attributes:{xmlPath:m.path}};(g||!f.has(m.path)&&!x.length&&!m.attributes.serialized)&&T.push({...y,originalValue:g||null,...g?ap(g):{valueType:"object"},state:g?"observed":"empty"});for(const[w,C]of x)T.push({...y,property:`${y.property}.attribute.${$i(w)}`,label:`${m.name} @${w}`,originalValue:C,...ap(C),state:C.length?"observed":"empty",source:{...m.source,objectPath:`${m.path}/@${w}`},attributes:{...y.attributes,attributeName:w}});!S&&typeof m.attributes.serialized=="string"&&m.attributes.serialized&&(T.push({...y,property:`${y.property}.serialized.attributes`,label:`${m.name} attributes`,originalValue:m.attributes.serialized,valueType:"string",state:"unsupported"}),c.push({severity:"warning",code:"pingcastle-xml-attributes-unstructured",stage:"extraction",source:m.source,message:"XML-Attribute liegen nur als Anzeigezeichenkette vor. Der Originalwert bleibt erhalten, eine Attributnormalisierung erfolgt nicht."}))}const p={version:1,sectionKey:"HealthcheckData",label:"PingCastle HealthcheckData",ordinal:0,state:T.some(m=>m.state==="observed")?"observed":"empty",tables:[{name:"HealthcheckData context",headers:["Path","Value"],rows:T.map(m=>[m.source.objectPath??"",m.originalValue])}],source:{fileName:e.file.name,objectPath:"HealthcheckData"},attributes:{representation:"xml-hierarchy"}};return{candidates:a,diagnostics:c,reportSections:[p],environmentObservations:T}}function qx(e){return e.format==="XML"&&e.tables.some(t=>String(t.attributes.rootElement??"").toLocaleLowerCase("en-US")==="healthcheckdata")}const Ej={id:"pingcastle-healthcheck-source-extractor",version:"2.2.1",detect(e){if(qx(e)){const r=Tb(e).length;return{score:r?1:.9,evidence:["XML-Wurzelelement HealthcheckData erkannt.",...r?[r+" native PingCastle-RiskRule-Struktur(en) erkannt."]:[]]}}if(e.format!=="HTML"||!/ping[\s_-]*castle/i.test(e.rawText.slice(0,5e5)))return{score:0,evidence:[]};const t=e.views.find(r=>r.kind==="text"),n=t?.kind==="text"?t.text:"",a=/\bRule\s*ID\s*:/i.test(n),i=/rules?\s+matched|healthcheck/i.test(n.slice(0,2e6));return{score:a?1:i?.85:.7,evidence:["PingCastle-Marker im HTML-Bericht erkannt.",...a?["Native PingCastle-Regelblöcke mit Rule ID erkannt."]:[]]}},extract(e){return{version:1,...qx(e)?Cj(e):Tj(e)}}};function an(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}const Pc={depth:128,values:1e6,characters:16*1024*1024,string:1e6};class Zi extends Error{}function hb(e,t){let n=t,a=0;const i=()=>{throw new Zi("Unsupported, malformed or oversized static report data.")},r=()=>{n-t>Pc.characters&&i()},c=()=>{for(;n<e.length;){if(r(),/\s/.test(e[n])){n++;continue}if(e.startsWith("//",n))for(;n<e.length&&!/[\r\n]/.test(e[n]);)n++,r();else if(e.startsWith("/*",n)){const p=e.indexOf("*/",n+2);p<0&&i(),n=p+2}else break}r()},l=()=>{const p=e[n++];let m="";for(;n<e.length;){r(),m.length>Pc.string&&i();let g=e[n++];if(g===p)return m;if(p==="`"&&g==="$"&&e[n]==="{"&&i(),g==="\\"){if(g=e[n++],g===void 0&&i(),g==="\r"||g===`
|
||
`){g==="\r"&&e[n]===`
|
||
`&&n++;continue}const S={n:`
|
||
`,r:"\r",t:" ",b:"\b",f:"\f",v:"\v",0:"\0"};if(g==="x"||g==="u"){const x=g==="u"&&e[n]==="{";x&&n++;const y=x?e.indexOf("}",n)-n:g==="x"?2:4;(y<1||y>6)&&i();const w=e.slice(n,n+y);(w.length!==y||!/^[\da-f]+$/i.test(w))&&i();const C=Number.parseInt(w,16);C>1114111&&i(),m+=String.fromCodePoint(C),n+=y+(x?1:0)}else(/[1-9]/.test(g)||g==="0"&&/\d/.test(e[n]??""))&&i(),m+=S[g]??g}else p!=="`"&&g.charCodeAt(0)<32&&i(),p==="`"&&g==="\r"&&(e[n]===`
|
||
`&&n++,g=`
|
||
`),m+=g}return i()},f=p=>{(p>Pc.depth||++a>Pc.values)&&i(),c();const m=e[n];if(m==='"'||m==="'"||m==="`")return l();if(m==="{"){n++;const x=Object.create(null);for(c();e[n]!=="}";){c();const y=e[n]==='"'||e[n]==="'",w=y?l():/^[A-Za-z_$][\w$]*/.exec(e.slice(n,n+256))?.[0];if(w===void 0)return i();if(y||(n+=w.length),Object.hasOwn(x,w)&&i(),c(),e[n++]!==":"&&i(),x[w]=f(p+1),c(),e[n]==="}")break;e[n++]!==","&&i(),c()}return n++,x}if(m==="["){n++;const x=[];for(c();e[n]!=="]"&&(x.push(f(p+1)),c(),e[n]!=="]");)e[n++]!==","&&i(),c();return n++,x}const g=/^(?:true|false|null|!\s*[01]|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)/.exec(e.slice(n,n+128))?.[0];if(!g)return i();if(n+=g.length,g==="null")return null;if(g==="true"||/^!\s*0$/.test(g))return!0;if(g==="false"||/^!\s*1$/.test(g))return!1;const S=Number(g);return Number.isFinite(S)?S:i()};c(),e[n]!=="{"&&i();const T=f(0);return c(),n<e.length&&!/[,;)]/.test(e[n])&&i(),{value:T,end:n}}function*pb(e,t){let n=0,a="",i=!1,r=0;const c=f=>{if(++r>Pc.depth)throw new Zi("Static report script nesting limit exceeded.");try{for(n++;n<e.length;){const T=e[n++];if(T==="\\")n++;else{if(T===f)return;f==="`"&&T==="$"&&e[n]==="{"&&(n++,l(!0))}}}finally{r--}},l=f=>{let T=1;for(;n<e.length&&T;){const p=e[n];if("\"'`".includes(p))c(p);else if(e.startsWith("//",n))for(;n<e.length&&!/[\r\n]/.test(e[n]);)n++;else if(e.startsWith("/*",n)){const m=e.indexOf("*/",n+2);n=m<0?e.length:m+2}else n++,p==="{"&&T++,p==="}"&&T--}};for(;n<e.length;){const f=e[n];if(/\s/.test(f)){n++;continue}if("\"'`".includes(f)){c(f),i=!0,a="";continue}if(e.startsWith("//",n)){for(;n<e.length&&!/[\r\n]/.test(e[n]);)n++;continue}if(e.startsWith("/*",n)){const p=e.indexOf("*/",n+2);n=p<0?e.length:p+2;continue}if(f==="/"&&!i){n++;let p=!1;for(;n<e.length;){const m=e[n++];if(m==="\\")n++;else if(m==="[")p=!0;else if(m==="]")p=!1;else{if(m==="/"&&!p)break;if(/[\r\n]/.test(m))break}}i=!0,a="";continue}const T=/^[A-Za-z_$][\w$]*/.exec(e.slice(n,n+256))?.[0];if(T){const p=t?.(e,n);if(p){if(p.start<=n||p.start>e.length)throw new Zi("Invalid assignment locator.");n=p.start,yield p,a="";continue}a=T,n+=T.length,i=!/^(?:return|throw|case|typeof|void|delete|new|yield|await|in|of|instanceof)$/.test(T);continue}if(!t&&f==="="&&a&&!/[=!<>]/.test(e[n-1]??"")&&!/[=>]/.test(e[n+1]??"")){const p=/^\s*/.exec(e.slice(n+1))[0].length+n+1;e[p]==="{"&&(yield{start:p,binding:a})}a="",i=/[\d)\]}]/.test(f),n++}}const lm={FailedCount:"Failed",PassedCount:"Passed",ErrorCount:"Error",InvestigateCount:"Investigate",SkippedCount:"Skipped",NotRunCount:"NotRun"};function kj(e,t){const n=Array.isArray(e.Tests)?e.Tests:[],a=new Map;for(const i of n)an(i)&&typeof i.Result=="string"&&a.set(i.Result,(a.get(i.Result)??0)+1);return Object.entries({TotalCount:n.length,...Object.fromEntries(Object.entries(lm).map(([i,r])=>[i,a.get(r)??0]))}).flatMap(([i,r])=>{if(!(i in e))return[];const c=e[i];return typeof c!="number"||!Number.isSafeInteger(c)||c<0?[{severity:"warning",code:"maester-count-invalid",stage:"extraction",message:`Die deklarierte Maester-Zahl ${i} ist keine gültige Testanzahl.`,details:{objectPath:`${t}.${i}`}}]:c===r?[]:[{severity:"warning",code:"maester-count-mismatch",stage:"extraction",message:`Maester ${i}: ${c} deklariert, ${r} aus Einzeltests gezählt. Originalwerte bleiben erhalten.`,details:{objectPath:`${t}.${i}`,counter:i,declared:c,actual:r}}]})}const Aj={TenantId:{property:"entra.tenant_id",label:"Entra tenant ID"},TenantName:{property:"entra.tenant_name",label:"Entra tenant name"},ExecutedAt:{property:"report.generated_at",label:"Scan time",valueType:"datetime"},CurrentVersion:{property:"report.engine_version",label:"Maester version"},TotalDuration:{property:"maester.duration",label:"Scan duration",valueType:"duration"},Result:{property:"maester.result",label:"Reported overall result",valueType:"enum"},TotalCount:{property:"maester.tests.declared_total",label:"Reported test count"},...Object.fromEntries(Object.entries(lm).map(([e,t])=>[e,{property:`maester.tests.declared_${t.toLowerCase()}`,label:`Reported ${t} count`}]))};function Bx(e,t,n,a){const i=[],r=[],c=`maester-context-${a}`,l={type:"maester-report",identity:typeof t.TenantId=="string"?t.TenantId:n},f=typeof t.ExecutedAt=="string"&&!Number.isNaN(Date.parse(t.ExecutedAt))?new Date(t.ExecutedAt).toISOString():void 0,T=Object.entries(t).filter(([m])=>m!=="Tests");if(!T.length)return{reportSections:i,environmentObservations:r};i.push({version:1,sectionKey:c,label:"Maester report context",ordinal:a,state:"observed",tables:[{name:"Report metadata",headers:["Property","Original value"],rows:T.map(([m,g])=>[m,g])}],source:{fileName:e,objectPath:n},attributes:{kind:"maester-report-context"}});for(const[m,g]of T){const S=Aj[m],x=g===null||g===""||Array.isArray(g)&&g.length===0,y=g!==null&&typeof g=="object"?"object":typeof g=="number"?"number":typeof g=="boolean"?"boolean":"string";r.push({version:1,subject:l,property:S?.property??`maester.source.${m}`,label:S?.label??m.replace(/([a-z])([A-Z])/g,"$1 $2"),originalValue:g,normalizedValue:g,valueType:S?.valueType??y,state:x?"empty":"observed",observedAt:f,sectionKey:c,source:{fileName:e,objectPath:`${n}.${m}`},attributes:{sourceField:m,declared:m.endsWith("Count")}})}for(const[m,g,S,x]of[["SystemInfo","MachineName","maester.runner.host","Scanner host"],["SystemInfo","OSDescription","maester.runner.os","Scanner operating system"],["PowerShellInfo","Version","maester.powershell.version","PowerShell version"]]){const y=t[m];if(!an(y)||!(g in y))continue;const w=y[g];r.push({version:1,subject:l,property:S,label:x,originalValue:w,normalizedValue:w,valueType:w!==null&&typeof w=="object"?"object":"string",state:w===null||w===""?"empty":"observed",observedAt:f,sectionKey:c,source:{fileName:e,objectPath:`${n}.${m}.${g}`},attributes:{sourceField:`${m}.${g}`,scope:"scanner-runtime"}})}if(!Array.isArray(t.Tests))return{reportSections:i,environmentObservations:r};const p=Array.isArray(t.Tests)?t.Tests:[];for(const[m,g]of Object.entries({total:"",...Object.fromEntries(Object.values(lm).map(S=>[S.toLowerCase(),S]))})){const S=g?p.filter(x=>an(x)&&x.Result===g).length:p.length;r.push({version:1,subject:l,property:`maester.tests.actual_${m}`,label:`Counted ${m} tests`,originalValue:S,normalizedValue:S,valueType:"number",state:"observed",observedAt:f,sectionKey:c,source:{fileName:e,objectPath:`${n}.Tests`},attributes:{derived:!0,derivation:"count-test-entries",status:g}})}return{reportSections:i,environmentObservations:r}}const $f=25e4,Ux=new WeakMap,Rj=/^\{\s*["']?(?:Result|Tests|Tenants|TenantId|TenantName|TotalCount|FailedCount|ExecutedAt|MaesterConfig)["']?\s*:/,Dj=/["']?(?:Tests|Tenants|FailedCount|MaesterConfig)["']?\s*:/;function*Ij(e){try{yield*pb(e)}catch(t){throw t instanceof Zi?new Ia("Die eingebettete Scriptstruktur überschreitet die sichere Lesegrenze.",[{severity:"error",code:"maester-script-limit",stage:"extraction",message:"Die eingebettete Scriptstruktur ist zu tief verschachtelt."}]):t}}function zx(e){if(e.format!=="HTML")return{roots:[],recognized:!1,diagnostics:[]};const t=Ux.get(e);if(t)return t;const n={roots:[],recognized:!1,diagnostics:[]};let a=0;for(const i of e.rawText.matchAll(/<script\b([^>]*)>([\s\S]*?)<\/script\s*>/gi)){const r=i[2],c=/\btype\s*=\s*["']application\/json["']/i.test(i[1])?[{start:r.search(/\S/),binding:"json-data"}]:Ij(r);let l=-1;for(const{start:f,binding:T}of c){const p=/^(?:testResults|maesterData|maesterReportData)$/i.test(T),m=p||Dj.test(r.slice(f,f+512));if(!(f<l||!p&&!Rj.test(r.slice(f,f+512)))){if(++a>32){n.recognized=!0,n.diagnostics.push({severity:"error",code:"maester-payload-limit",stage:"extraction",message:"Zu viele mögliche Maester-Datenobjekte im Bericht."});break}try{const g=hb(r,f);l=g.end;const S=g.value;if(Array.isArray(S.Tenants)){if(n.recognized=!0,n.roots.length)throw new Zi("Ambiguous report roots.");n.envelope=Object.fromEntries(Object.entries(S).filter(([x])=>x!=="Tenants"));for(const[x,y]of S.Tenants.entries()){if(!an(y)||!Array.isArray(y.Tests))throw new Zi("Invalid tenant tests.");n.roots.push({value:y,path:`$.Tenants[${x}]`})}}else if(Array.isArray(S.Tests)&&("Result"in S||"EndOfJson"in S)){if(n.recognized=!0,n.roots.length)throw new Zi("Ambiguous report roots.");n.roots.push({value:S,path:"$"})}else if(m)throw new Zi("Invalid report shape.")}catch(g){if(!(g instanceof Zi))throw g;m&&(n.recognized=!0,n.diagnostics.push({severity:"error",code:"maester-payload-invalid",stage:"extraction",message:"Maester-Daten erkannt, aber nicht sicher vollständig lesbar. Nur statische Datenobjekte ohne Ausdrücke sind zulässig; beschädigte, mehrdeutige oder zu große Berichte werden nicht importiert."}))}}}}return!n.recognized&&/maester/i.test(e.rawText)&&/\b(?:testResults|maesterData)\s*=/.test(e.rawText)&&(n.recognized=!0,n.diagnostics.push({severity:"error",code:"maester-payload-invalid",stage:"extraction",message:"Ein Maester-Bericht wurde erkannt, seine Ergebnisdaten liegen aber nicht als unterstütztes statisches Datenobjekt vor."})),Ux.set(e,n),n}function vu(e,t,n,a,i,r=ts(i)){return{key:n,label:a,originalValue:i,decodedValue:r,source:{fileName:e,objectPath:`${t}.${n}`}}}function qn(e,t,n,a,i,r,c){r!==void 0&&e.push(vu(t,n,a,i,r,c))}function Nj(e,t,n,a){const i=an(t.ResultDetail)?t.ResultDetail:{},r=[];qn(r,e,n,"Id","ID",t.Id),qn(r,e,n,"Title","Title",t.Title),(t.Title===void 0||t.Title===null||t.Title==="")&&qn(r,e,n,"Name","Title",t.Name),qn(r,e,n,"Result","Result",t.Result),qn(r,e,n,"Severity","Severity",t.Severity),(t.Severity===void 0||t.Severity===null||t.Severity==="")&&i.Severity!==void 0&&qn(r,e,`${n}.ResultDetail`,"Severity","Severity",i.Severity),qn(r,e,n,"Tag","Tag",t.Tag),qn(r,e,n,"Block","Block",t.Block),qn(r,e,n,"Duration","Duration",t.Duration),qn(r,e,`${n}.ResultDetail`,"TestDescription","Description",i.TestDescription,ga(i.TestDescription)),qn(r,e,`${n}.ResultDetail`,"TestResult","ResultDetail",i.TestResult,ga(i.TestResult)),qn(r,e,`${n}.ResultDetail`,"TestSkipped","TestSkipped",i.TestSkipped),qn(r,e,`${n}.ResultDetail`,"SkippedReason","SkippedReason",i.SkippedReason),qn(r,e,n,"ErrorRecord","ErrorMessage",t.ErrorRecord),qn(r,e,n,"Name","Name",t.Name),qn(r,e,n,"HelpUrl","HelpUrl",t.HelpUrl),qn(r,e,n,"ScriptBlockFile","TestScriptFile",t.ScriptBlockFile),qn(r,e,n,"ScriptBlock","TestScript",t.ScriptBlock),qn(r,e,`${n}.ResultDetail`,"Service","Service",i.Service);const c=new Set(["Id","Title","Result","Severity","Tag","Block","Duration","ErrorRecord","Name","HelpUrl","ScriptBlockFile","ScriptBlock","ResultDetail"]);for(const[f,T]of Object.entries(t))c.has(f)||r.push(vu(e,n,f,f,T));const l=new Set(["TestDescription","TestResult","TestSkipped","SkippedReason","Service"]);for(const[f,T]of Object.entries(i))l.has(f)||r.push(vu(e,`${n}.ResultDetail`,f,`ResultDetail.${f}`,T));return t.ResultDetail!==void 0&&!an(t.ResultDetail)&&r.push(vu(e,n,"ResultDetail","ResultDetail",t.ResultDetail)),{version:1,id:`maester-test-${a}`,source:{fileName:e,objectPath:n},fields:r}}const Oj={id:"maester-html-source-extractor",version:"1.1.0",detect(e){const t=zx(e),n=t.roots.reduce((a,i)=>a+(Array.isArray(i.value.Tests)?i.value.Tests.length:0),0);return t.recognized&&(n>0||t.diagnostics.length>0)?{score:1,toolId:"maester",evidence:[`Strukturiertes Maester-Ergebnisobjekt mit ${n} Testeinträgen erkannt.`]}:{score:0,evidence:[]}},extract(e){const t=zx(e);if(t.diagnostics.some(f=>f.severity==="error"))throw new Ia("Maester-HTML konnte nicht sicher vollständig gelesen werden.",t.diagnostics);if(t.roots.reduce((f,T)=>f+(Array.isArray(T.value.Tests)?T.value.Tests.length:0),0)>$f)throw new Ia("Maester-Testlimit überschritten.",[{severity:"error",code:"maester-test-limit",stage:"extraction",message:`Mehr als ${$f} Tests. Der Bericht wird nicht still gekürzt.`}]);const a=[],i=[...t.diagnostics],r=[],c=[];if(t.envelope){const f=Bx(e.file.name,t.envelope,"$",0);r.push(...f.reportSections),c.push(...f.environmentObservations)}let l=0;for(const f of t.roots){const T=Array.isArray(f.value.Tests)?f.value.Tests:[];i.push(...kj(f.value,f.path));const p=Bx(e.file.name,f.value,f.path,r.length);r.push(...p.reportSections),c.push(...p.environmentObservations);for(let m=0;m<T.length&&a.length<$f;m+=1){const g=T[m];if(!an(g)||!g.Id&&!g.Title&&!g.Name)throw new Ia("Maester enthält einen ungültigen Testeintrag.",[{severity:"error",code:"maester-test-invalid",stage:"extraction",message:"Ein Testeintrag besitzt keine lesbare Identität.",details:{objectPath:`${f.path}.Tests[${m}]`}}]);const S=`${f.path}.Tests[${m}]`;a.push(Nj(e.file.name,g,S,l++))}}return{version:1,candidates:a,diagnostics:i,reportSections:r,environmentObservations:c}}},Mj=25e4,mb="window",jj=new RegExp(`^${mb}\\s*(?:\\.\\s*(reportJSON)|\\[\\s*["'](Category_\\d+)["']\\s*\\]\\s*\\[\\s*["']([\\w-]+)["']\\s*\\])\\s*=\\s*(?!=|>)`),Fj=(e,t)=>{if(!e.startsWith(mb,t))return;let n=t-1;for(;n>=0&&/\s/.test(e[n]);)n--;if(e[n]===".")return;const a=jj.exec(e.slice(t));return a?{start:t+a[0].length,binding:a[1]??`${a[2]}[${JSON.stringify(a[3])}]`}:void 0},Wx=new WeakMap;function As(e,t){throw new Ia(t,[{severity:"error",stage:"extraction",code:e,message:t}])}function Vx(e){const t=Wx.get(e);if(t)return t;const n={indicators:[],categoryNames:new Map,recognized:!1,diagnostics:[]};if(e.format!=="HTML")return n;const a=new Set,i=new Set;try{const r=sd(e.rawText),c=/<!--[\s\S]*?-->|<(script|style|textarea|title|xmp|iframe|noembed|noframes)\b[^>]*>([\s\S]*?)(?:<\/\1\s*>|$)/gi;for(const l of r.matchAll(c))if(l[1]?.toLowerCase()==="script")for(const{start:f,binding:T}of pb(l[2],Fj)){if(T!=="reportJSON"&&!T.startsWith("Category_"))continue;n.recognized=!0,a.has(T)&&As("purple-knight-binding-duplicate","PurpleKnight contains conflicting report assignments."),a.add(T);const{value:p}=hb(l[2],f);if(T==="reportJSON")(!Array.isArray(p.reportResultsList)||p.reportResultsList.some(m=>!an(m)||!an(m.ReportResults)))&&As("purple-knight-payload-invalid","PurpleKnight report summary is malformed."),n.root=p;else{n.indicators.length>=Mj&&As("purple-knight-indicator-limit","PurpleKnight indicator limit exceeded; no results were silently truncated."),(!an(p.ResIndicator)||!an(p.ExecutionResult))&&As("purple-knight-indicator-invalid","A PurpleKnight indicator is malformed.");const m=p.ResIndicator.ShortName;(typeof m!="string"||!m.trim())&&As("purple-knight-id-missing","A PurpleKnight indicator has no native rule ID."),i.has(m)&&n.diagnostics.push({severity:"warning",code:"purple-knight-id-duplicate",stage:"extraction",message:"PurpleKnight contains repeated native rule IDs. All occurrences were retained."}),i.add(m),p.IndicatorReportObjects!=null&&(!Array.isArray(p.IndicatorReportObjects)||p.IndicatorReportObjects.some(S=>!Array.isArray(S)))&&As("purple-knight-detail-invalid","A PurpleKnight result table is malformed.");const g=JSON.parse(T.slice(T.indexOf("[")+1,-1));n.indicators.push({value:p,path:`$.${T}`,identity:g})}}}catch(r){if(!(r instanceof Zi))throw r;n.recognized&&As("purple-knight-payload-invalid","PurpleKnight data could not be read completely. Only bounded static report objects are supported.")}if(n.recognized&&!n.root&&As("purple-knight-summary-missing","PurpleKnight indicator data has no readable report summary."),n.root){const r=n.root.reportResultsList;!n.indicators.length&&(!r.length||r.some(l=>!an(l)||!an(l.ReportResults)||l.ReportResults.TotalCount!==0))&&As("purple-knight-results-missing","PurpleKnight announces results but no indicators could be read.");const c=an(n.root.GeneralConfig)?n.root.GeneralConfig:{};for(const l of Array.isArray(c.Categories)?c.Categories:[])an(l)&&typeof l.ID=="number"&&typeof l.Name=="string"&&n.categoryNames.set(l.ID,l.Name)}return Wx.set(e,n),n}function Lj(e){return e.replace(/[^a-zA-Z0-9_-]/g,"-")}const gb={id:"generic-table-source-extractor",version:"1.0.0",fallback:!0,detect(e){const t=e.tables.length;return t?{score:.1,evidence:[`${t} kompatible Tabellenansicht(en) vorhanden.`]}:{score:0,evidence:[]}},extract(e){return{version:1,candidates:e.tables.flatMap(n=>{const a=n.headerCandidates[0];return n.rows.filter(i=>i.index!==a?.rowIndex&&i.cells.some(r=>r.decodedValue.trim())).map(i=>({version:1,id:`candidate-${Lj(n.id)}-${i.index}`,source:{fileName:e.file.name,tableIndex:n.index,rowIndex:i.index},fields:i.cells.map(r=>({key:`column-${r.source.columnIndex??0}`,label:a?.headers[r.source.columnIndex??0]||`Spalte ${(r.source.columnIndex??0)+1}`,originalValue:r.rawValue,decodedValue:r.decodedValue,source:{...r.source,fileName:e.file.name}}))}))}),diagnostics:[]}}},Pj=/^(ad|aad|entra)\s+category\s+score:\s*(.+)$/i,_j=/^(ad|aad|entra(?:\s*id)?):\s*(.+)$/i,qj=/^tool\s+edition$/i,Bj=[/^ad:\s*security\s+posture\s+score$/i,/^ad:\s*ioes?\s+found$/i,/^ad:\s*number\s+of\s+domains$/i,/^ad:\s*forest\s+name$/i,/^ad\s+category\s+score:/i,/^selected\s+indicators$/i],Yf={type:"active-directory-environment"};function Hx(e){return{type:"purple-knight-assessment",identity:e,label:"Purple Knight assessment"}}function Zl(e){return e.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"")||"value"}function Gx(e){return/^ad$/i.test(e)?"ad":"entra"}const Uj=[[/^generated\s+date$/i,{property:"report.generated_at",label:"Report generation date",valueType:"datetime",subject:Yf}],[/^ad:\s*forest\s+name$/i,{property:"forest.name",label:"Forest name",valueType:"string",subject:Yf}],[/^ad:\s*number\s+of\s+domains$/i,{property:"domain.count",label:"Number of domains",valueType:"number",subject:Yf}]];function zj(e,t){const n=Uj.find(([r])=>r.test(e));if(n)return n[1];const a=Pj.exec(e);if(a){const r=je(a[2]);return{property:`purple_knight.${Gx(a[1])}.category_score.${Zl(r)}`,label:r,valueType:"number",subject:{type:"security-domain",identity:Zl(r),label:r}}}const i=_j.exec(e);return i?{property:`purple_knight.${Gx(i[1])}.${Zl(i[2])}`,label:je(i[2]),valueType:"string",subject:Hx(t)}:{property:`purple_knight.${Zl(e)}`,label:je(e),valueType:"string",subject:Hx(t)}}function ip(e,t,n){const a=zj(e,n.fileName),i=a.valueType==="datetime"?null:vi(t),r=i!==null?{normalizedValue:i,valueType:"number"}:{normalizedValue:t,valueType:t!==null&&typeof t=="object"?"object":a.valueType};return{version:1,subject:a.subject,property:a.property,label:a.label,originalValue:t,...r,state:t===null||t===""?"empty":"observed",sectionKey:"purple-knight-assessment-summary",source:n,attributes:{sourceMetric:e}}}function Xx(e,t){return ip(e.key,e.value,{fileName:t,tableIndex:e.tableIndex,rowIndex:e.rowIndex,columnIndex:e.columnIndex})}function vb(e){return e.rows.flatMap(t=>{const n=je(t.cells[0]?.decodedValue);return n?[{key:n,value:t.cells[1]?.rawValue??null,tableIndex:e.index,rowIndex:t.index,columnIndex:1}]:[]})}function Kx(e){if(e.format!=="HTML")return e.tables.find(t=>{const n=vb(t).map(a=>a.key);return Bj.filter(a=>n.some(i=>a.test(i))).length>=2})}const Wj={id:"purple-knight-summary-source-extractor",version:"1.1.0",detect(e){return Kx(e)?{score:1,toolId:"purple-knight",evidence:["PurpleKnight summary metrics recognized."]}:{score:0,evidence:[]}},extract(e){const t=Kx(e);if(!t)return{version:1,candidates:[],diagnostics:[]};const n=vb(t),a=n.find(c=>qj.test(c.key)),i=n.filter(c=>c!==a),r=[...a?[Xx(a,e.file.name)]:[],...i.map(c=>Xx(c,e.file.name))];return{version:1,candidates:gb.extract({...e,tables:e.tables.filter(c=>c.index!==t.index)}).candidates,reportSections:[{version:1,sectionKey:"purple-knight-assessment-summary",label:"Purple Knight assessment summary",ordinal:0,state:i.length?"observed":"empty",tables:[{name:"Assessment summary",sourceTableIndex:t.index,headers:["Metric","Value"],rows:i.map(c=>[c.key,c.value])}],source:{fileName:e.file.name,tableIndex:t.index},attributes:{metricCount:i.length}}],environmentObservations:r,diagnostics:[]}}};function xb(e,t){if(e.IsFailedToRun===!0)return"Failed to run";if(e.IsAborted===!0)return"Canceled";if(e.Selected===!1)return"Not selected";if(e.IsEvaluated===!1)return"Not Relevant";if(e.IsFailed===!0&&typeof e.ExposureType=="string"&&/IOE/i.test(e.ExposureType))return"IOE Found";if(e.IsFailed===!0&&typeof e.ExposureType=="string"&&/IOC/i.test(e.ExposureType))return"IOC Found";const n=t.Status??e.State;return typeof n=="string"?n.replace(/([a-z])([A-Z])/g,"$1 $2"):""}const Vj={TotalScore:"Security posture score",TotalCount:"Total indicators",TotalEvaluatedCount:"Evaluated",PassedCount:"Passed",IOEsCount:"IOEs found",IOCsCount:"IOCs found",FailedToRunCount:"Failed to run",AbortedCount:"Canceled",UnselectedCount:"Not selected",NotRelevant:"Not relevant",TestExecutionTime:"Scan duration",TotalSelectedCount:"Selected indicators"};function Zf(e,t,n){return typeof e!="number"||!Number.isSafeInteger(e)||e<0?[{severity:"warning",code:"purple-knight-count-invalid",stage:"extraction",message:"A declared PurpleKnight count is invalid.",details:{objectPath:n}}]:e===t?[]:[{severity:"warning",code:"purple-knight-count-mismatch",stage:"extraction",message:`PurpleKnight declares ${e} results; ${t} were independently counted.`,details:{objectPath:n,declared:e,actual:t}}]}function Hj(e,t,n){const a="purple-knight-assessment-summary",i="$.reportJSON",r=[{version:1,sectionKey:a,label:"PurpleKnight assessment summary",ordinal:0,state:"observed",tables:[{name:"Report metadata",headers:["Property","Original value"],rows:Object.entries(t)}],source:{fileName:e,objectPath:i},attributes:{kind:"purple-knight-report-context"}}],c=Object.entries(t).map(([m,g])=>({version:1,sectionKey:a,subject:{type:"purple-knight-report",identity:i},property:`purple_knight.source.${m}`,label:m,originalValue:g,normalizedValue:g,valueType:g!==null&&typeof g=="object"?"object":typeof g=="number"?"number":typeof g=="boolean"?"boolean":"string",state:g===null||g===""?"empty":"observed",source:{fileName:e,objectPath:`${i}.${m}`},attributes:{sourceField:m}})),l=[],f=(m,g,S)=>{g!==void 0&&c.push(ip(m,g,{fileName:e,objectPath:S}))};f("Tool version",t.AppVersion,`${i}.AppVersion`),f("Tool edition",t.Edition,`${i}.Edition`);const T=Array.isArray(t.reportResultsList)?t.reportResultsList:[],p=new Map(n.map(m=>[m.identity,m]));for(const[m,g]of T.entries()){if(!an(g)||!an(g.ReportResults))continue;const S=`${i}.reportResultsList[${m}]`,x=g.ADType==="AD"?"AD":/^(?:AAD|Entra)$/i.test(String(g.ADType))?"Entra":"Other",y=g.ReportResults;f("Generated date",y.GeneratedOn,`${S}.ReportResults.GeneratedOn`);for(const[O,N]of Object.entries(Vj))f(O==="TotalSelectedCount"&&T.length===1?"Selected indicators":`${x}: ${N}`,y[O],`${S}.ReportResults.${O}`);f(`${x}: Forest name`,g.ForestName,`${S}.ForestName`),Array.isArray(g.SelectedDomains)&&c.push({...ip(`${x}: Number of domains`,g.SelectedDomains,{fileName:e,objectPath:`${S}.SelectedDomains`}),normalizedValue:g.SelectedDomains.length,valueType:"number",attributes:{derived:!0,derivation:"array-length"}}),f(`${x}: Domains`,g.SelectedDomains,`${S}.SelectedDomains`),f("Requested by",g.UserName,`${S}.UserName`);const w=new Set;for(const[O,N]of(Array.isArray(g.ReportCategories)?g.ReportCategories:[]).entries()){if(!an(N))continue;const B=an(N.Category)?N.Category:{};if(typeof B.Name=="string"&&f(`${x} category score: ${B.Name}`,B.Score,`${S}.ReportCategories[${O}].Category.Score`),Array.isArray(N.Indicators))for(const A of N.Indicators)typeof A=="string"&&w.add(A)}const C=T.length===1?n:[...w].flatMap(O=>p.has(O)?[p.get(O)]:[]),k={TotalCount:C.length,PassedCount:0,IOEsCount:0,IOCsCount:0,FailedToRunCount:0,AbortedCount:0,UnselectedCount:0,NotRelevant:0,TotalEvaluatedCount:0},E={Pass:"PassedCount",Passed:"PassedCount","IOE Found":"IOEsCount","IOC Found":"IOCsCount","Failed to run":"FailedToRunCount",Canceled:"AbortedCount","Not selected":"UnselectedCount","Not Relevant":"NotRelevant"};for(const O of C){const N=an(O.value.ResIndicator)?O.value.ResIndicator:{},B=xb(N,an(O.value.ExecutionResult)?O.value.ExecutionResult:{});Object.hasOwn(E,B)&&k[E[B]]++,N.IsEvaluated===!0&&k.TotalEvaluatedCount++}for(const[O,N]of Object.entries(k))O in y&&l.push(...Zf(y[O],N,`${S}.ReportResults.${O}`));for(const O of w)p.has(O)||l.push({severity:"warning",code:"purple-knight-reference-missing",stage:"extraction",message:"A report category references a missing indicator.",details:{objectPath:`${S}.ReportCategories`}})}for(const m of n){const g=Array.isArray(m.value.IndicatorReportObjects)?m.value.IndicatorReportObjects:[];"TotalResultsCount"in m.value&&l.push(...Zf(m.value.TotalResultsCount,g.length,`${m.path}.TotalResultsCount`)),an(t.IndicatorsTotalCount)&&m.identity in t.IndicatorsTotalCount&&l.push(...Zf(t.IndicatorsTotalCount[m.identity],g.length,`${i}.IndicatorsTotalCount[${JSON.stringify(m.identity)}]`))}return{reportSections:r,environmentObservations:c,diagnostics:l}}const Gj=["ShortName","Name","SI version","Target","Status","Runtime","Score","Severity","Weight","Category","MITRE ATT&CK_1","MITRE ATT&CK_2","MITRE ATT&CK_3","MITRE ATT&CK_4","ANSSI_1","ANSSI_2","ANSSI_3","ANSSI_4","MITRE D3FEND_1","MITRE D3FEND_2","Description","Likelihood of compromise","Result message","Number of results","Result","Remediation"];function Jf(e,t,n,a,i,r=ts(i),c){return{key:n,label:a,originalValue:i,decodedValue:r,source:{fileName:e,objectPath:t,columnIndex:c}}}function yb(e){const t=Array.isArray(e.Targets)?e.Targets.map(ts).filter(Boolean):[];return t.includes("AAD")&&t.includes("AD")?"Hybrid (AD)":t.join(", ")}function Xj(e,t){const n=typeof e.CategoryID=="number"?t.get(e.CategoryID)??"":"";return yb(e)==="Hybrid (AD)"&&n==="Hybrid"?"Hybrid (AD)":n||ts(e.CategoryID)}function Kj(e){if(typeof e.StartTime!="string"||typeof e.CompletionTime!="string")return"";const t=T=>{const p=T.match(/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d+))?Z$/);if(!p)return;const m=Date.parse(`${p[1]}Z`);if(!Number.isFinite(m))return;const g=BigInt((p[2]??"").slice(0,7).padEnd(7,"0"));return BigInt(m)*10000n+g},n=t(e.StartTime),a=t(e.CompletionTime);if(n===void 0||a===void 0||a<n)return"";const i=Number((a-n)/100000n),r=Math.floor(i/36e4),c=Math.floor(i/6e3)%60,l=Math.floor(i/100)%60,f=i%100;return[r,c,l,f].map(T=>String(T).padStart(2,"0")).join(":")}function Qf(e,t,n){const i=(Array.isArray(e.SecurityFrameworks)?e.SecurityFrameworks:[]).flatMap(r=>an(r)&&r.Name===t&&Array.isArray(r.Tags)?r.Tags:[]);return Array.from({length:n},(r,c)=>i[c]??null)}function $j(e,t,n){const a=an(t.ResIndicator)?t.ResIndicator:{},i=typeof a.ShortName=="string"?a.ShortName.trim():"",c=(Array.isArray(t.IndicatorReportObjects)?t.IndicatorReportObjects:[]).filter(Array.isArray);if(!i||!c.length)return;const l=c[0].map((f,T)=>{const p=ts(f),m=p.indexOf(":");return m>0?p.slice(0,m).trim():`Column ${T+1}`});return{version:1,name:i,headers:l,rows:c.map(f=>l.map((T,p)=>{const m=typeof f[p]=="string"?f[p]:ts(f[p]),g=`${T}:`;return m.startsWith(g)?m.slice(g.length).replace(/^ /,""):m})),source:{fileName:e,objectPath:`${n}.IndicatorReportObjects`},attributes:{kind:"finding-result",findingReference:i}}}function Yj(e,t,n,a,i){const r=an(t.ResIndicator)?t.ResIndicator:{},c=an(t.ExecutionResult)?t.ExecutionResult:{},l=Array.isArray(t.IndicatorReportObjects)&&t.IndicatorReportObjects.length>0,f=[...Qf(r,"MITRE ATT&CK",4),...Qf(r,"ANSSI",4),...Qf(r,"MITRE D3FEND",2)],T=[{key:"ShortName",value:r.ShortName??null},{key:"Name",value:r.Name??null},{key:"Version",value:r.Version??null},{key:"Targets",value:r.Targets??null,decoded:yb(r)},{key:"Status",value:t,decoded:xb(r,c)},{key:"Runtime",value:r,decoded:Kj(r)},{key:"Score",value:c.Score??null},{key:"Severity",value:r.Severity??null},{key:"Weight",value:r.Weight??null},{key:"CategoryID",value:r,decoded:Xj(r,a)},...f.map((x,y)=>({key:`Framework_${y+1}`,value:x})),{key:"Description",value:r.Description??null,decoded:ga(r.Description)},{key:"LikelihoodOfCompromise",value:r.LikelihoodOfCompromise??null,decoded:ga(r.LikelihoodOfCompromise)},{key:"ResultMessage",value:c.ResultMessage??null},{key:"TotalResultsCount",value:t.TotalResultsCount??null},{key:"Result",value:t.IndicatorReportObjects??null,decoded:l?ts(r.ShortName):""},{key:"Remediation",value:c.Remediation??null,decoded:ga(c.Remediation)}],p={Status:n,Runtime:`${n}.ResIndicator`,CategoryID:`${n}.ResIndicator`,Score:`${n}.ExecutionResult.Score`,ResultMessage:`${n}.ExecutionResult.ResultMessage`,Remediation:`${n}.ExecutionResult.Remediation`,TotalResultsCount:`${n}.TotalResultsCount`,Result:`${n}.IndicatorReportObjects`},m=["MITRE ATT&CK","ANSSI","MITRE D3FEND"].flatMap((x,y)=>{const C=(Array.isArray(r.SecurityFrameworks)?r.SecurityFrameworks:[]).flatMap((k,E)=>an(k)&&k.Name===x&&Array.isArray(k.Tags)?k.Tags.map((O,N)=>`${n}.ResIndicator.SecurityFrameworks[${E}].Tags[${N}]`):[]);return Array.from({length:y===2?2:4},(k,E)=>C[E])}),g=T.map((x,y)=>{const w=/^Framework_(\d+)$/.exec(x.key),C=w?m[Number(w[1])-1]:p[x.key]??`${n}.ResIndicator.${x.key}`,k=Jf(e,C??n,x.key,Gj[y],x.value,x.decoded??ts(x.value),y);return x.value===null&&((w?m[Number(w[1])-1]:x.key==="Result"?Object.hasOwn(t,"IndicatorReportObjects"):x.key==="TotalResultsCount"?Object.hasOwn(t,x.key):["Score","ResultMessage","Remediation"].includes(x.key)?Object.hasOwn(c,x.key):Object.hasOwn(r,x.key))||(k.source.objectPath=void 0)),k}),S=new Set(g.map(x=>x.source.objectPath));for(const[x,y]of[["ResIndicator",r],["ExecutionResult",c]])for(const[w,C]of Object.entries(y)){const k=`${n}.${x}[${JSON.stringify(w)}]`;S.has(`${n}.${x}.${w}`)||g.push(Jf(e,k,`source-${x}-${w}`,`Source ${x}.${w}`,C))}for(const[x,y]of Object.entries(t))["ResIndicator","ExecutionResult","IndicatorReportObjects","TotalResultsCount"].includes(x)||g.push(Jf(e,`${n}[${JSON.stringify(x)}]`,`source-${x}`,`Source ${x}`,y));return{version:1,id:`purple-knight-indicator-${i}`,source:{fileName:e,objectPath:n},fields:g}}const Zj={id:"purple-knight-html-source-extractor",version:"1.2.0",detect(e){const t=Vx(e);return t.recognized?{score:1,toolId:"purple-knight",evidence:[`Sicher eingebettetes PurpleKnight-Reportmodell mit ${t.indicators.length} Indikatoren erkannt.`]}:{score:0,evidence:[]}},extract(e){const t=Vx(e),n=t.indicators.map((r,c)=>Yj(e.file.name,r.value,r.path,t.categoryNames,c)),a=t.indicators.flatMap(r=>{const c=$j(e.file.name,r.value,r.path);return c?[c]:[]}),i=t.root?Hj(e.file.name,t.root,t.indicators):{reportSections:[],environmentObservations:[],diagnostics:[]};return{version:1,candidates:n,supportingTables:a,...i,diagnostics:[...t.diagnostics,...i.diagnostics]}}};function Jj(e){return e.replace(/[^a-zA-Z0-9_-]/g,"-")}function Qj(e,t,n){return(t&&typeof t=="object"&&!Array.isArray(t)?Object.entries(t):[["value",t]]).map(([i,r])=>({key:i,label:i,originalValue:r,decodedValue:Fi(r),source:{fileName:e,objectPath:`${n}.${i}`}}))}function eF(e,t){return(Array.isArray(t.value)?t.value:[t.value]).map((a,i)=>{const r=Array.isArray(t.value)?`$[${i}]`:"$";return{version:1,id:`candidate-${Jj(t.id)}-${i}`,source:{fileName:e.file.name,objectPath:r},fields:Qj(e.file.name,a,r)}})}const tF={id:"native-object-source-extractor",version:"1.0.0",detect(e){const t=e.views.filter(n=>n.kind==="object").length;return t?{score:1,evidence:[`${t} native Objekt- oder Arrayansicht(en) vorhanden.`]}:{score:0,evidence:[]}},extract(e){return{version:1,candidates:e.views.filter(n=>n.kind==="object").flatMap(n=>eF(e,n)),diagnostics:[]}}},Sb=[Ej,GM,Zj,Wj,Oj,tF,gb];function nF(e,t=Sb){if(!t.length)throw new Error("Für die Quellenextraktion ist mindestens ein registrierter Extractor erforderlich.");const n=t.map(i=>({extractor:i,match:i.detect(e)}));return n.filter(i=>!i.extractor.fallback&&i.match.score>0).sort((i,r)=>r.match.score-i.match.score||i.extractor.id.localeCompare(r.extractor.id))[0]??n.find(i=>i.extractor.fallback)??n.sort((i,r)=>r.match.score-i.match.score||i.extractor.id.localeCompare(r.extractor.id))[0]}function aF(e,t=Sb){const{extractor:n,match:a}=nF(e,t),i={kind:"source-extractor",id:n.id,version:n.version},r=n.extract(e),c=r.diagnostics.some(l=>l.severity==="error")?"failed":r.diagnostics.some(l=>l.severity==="warning")?"partial":"complete";return{...r,extractor:i,match:a,processing:{stage:"extraction",status:c,processor:i,diagnosticCodes:r.diagnostics.map(l=>l.code)}}}const Vr={maximumFileBytes:100*1024*1024,maximumDecodedCharacters:64*1024*1024,maximumTables:1e4,maximumRowsPerTable:25e4,maximumTotalRows:5e5,maximumColumnsPerTable:2e3,maximumCellCharacters:1e6,maximumTotalCellCharacters:64*1024*1024,maximumMarkupElements:5e5,maximumJsonDepth:256,maximumZipEntries:2e4,maximumZipEntryUncompressedBytes:128*1024*1024,maximumZipUncompressedBytes:512*1024*1024,maximumZipCompressionRatio:200};function iF(e){return{...Vr,...e}}function Jt(e,t,n){throw new Ia(t,[{severity:"error",code:e,message:t,details:n}])}function sF(e){const t=Math.max(0,e.length-65557);for(let n=e.length-22;n>=t;n-=1)if(e[n]===80&&e[n+1]===75&&e[n+2]===5&&e[n+3]===6)return n;return-1}function rF(e,t){if(e.length<4||e[0]!==80||e[1]!==75)return;const n=new DataView(e.buffer,e.byteOffset,e.byteLength),a=sF(e);a<0&&Jt("zip-directory-missing","Der ZIP-Container besitzt kein gültiges Zentralverzeichnis.",{sizeBytes:e.length});const i=n.getUint16(a+10,!0),r=n.getUint32(a+12,!0),c=n.getUint32(a+16,!0);(i===65535||r===4294967295||c===4294967295)&&Jt("zip64-not-accepted","ZIP64-Archive werden innerhalb der aktuellen Importgrenzen nicht akzeptiert.",{entryCount:i}),i>t.maximumZipEntries&&Jt("zip-entry-limit",`Das Archiv enthält mehr als ${t.maximumZipEntries} Einträge.`,{entryCount:i,limit:t.maximumZipEntries}),c+r>e.length&&Jt("zip-directory-invalid","Das ZIP-Zentralverzeichnis liegt außerhalb der tatsächlichen Datei.",{directoryOffset:c,directorySize:r,sizeBytes:e.length});let l=c,f=0,T=0;for(let m=0;m<i;m+=1){(l+46>e.length||n.getUint32(l,!0)!==33639248)&&Jt("zip-directory-invalid","Ein ZIP-Zentralverzeichniseintrag ist beschädigt.",{entryIndex:m});const g=n.getUint16(l+8,!0),S=n.getUint16(l+10,!0),x=n.getUint32(l+20,!0),y=n.getUint32(l+24,!0);(g&1)!==0&&Jt("zip-encryption-rejected","Verschlüsselte ZIP-Inhalte werden nicht verarbeitet.",{entryIndex:m}),[0,8].includes(S)||Jt("zip-compression-method-rejected","Das Archiv verwendet ein nicht zugelassenes Kompressionsverfahren.",{entryIndex:m,compressionMethod:S}),(x===4294967295||y===4294967295)&&Jt("zip64-not-accepted","ZIP64-Einträge werden innerhalb der aktuellen Importgrenzen nicht akzeptiert.",{entryIndex:m}),y>t.maximumZipEntryUncompressedBytes&&Jt("zip-entry-size-limit","Ein einzelner Archivinhalt überschreitet das Entpacklimit.",{entryIndex:m,uncompressedBytes:y,limit:t.maximumZipEntryUncompressedBytes}),f+=x,T+=y,T>t.maximumZipUncompressedBytes&&Jt("zip-uncompressed-size-limit","Die erwartete entpackte Archivgröße überschreitet das Limit.",{uncompressedBytes:T,limit:t.maximumZipUncompressedBytes});const w=n.getUint16(l+28,!0),C=n.getUint16(l+30,!0),k=n.getUint16(l+32,!0),E=l+46+w+C+k;(E>e.length||E>c+r)&&Jt("zip-directory-invalid","Ein ZIP-Zentralverzeichniseintrag liegt außerhalb des Zentralverzeichnisses.",{entryIndex:m});const O=new TextDecoder("utf-8",{fatal:!1}).decode(e.subarray(l+46,l+46+w)).replaceAll("\\","/"),N=O.split("/");(O.startsWith("/")||N.includes(".."))&&Jt("zip-entry-path-rejected","Archivpfade dürfen das Archivverzeichnis nicht verlassen.",{entryIndex:m}),O.toLocaleLowerCase("en-US").endsWith("vbaproject.bin")&&Jt("excel-vba-content-rejected","Excel-Dateien mit eingebettetem VBA-Projekt werden nicht verarbeitet.",{entryIndex:m}),l=E}l!==c+r&&Jt("zip-directory-invalid","Die Größe des ZIP-Zentralverzeichnisses ist inkonsistent.",{expectedEnd:c+r,actualEnd:l});const p=T/Math.max(1,f);p>t.maximumZipCompressionRatio&&Jt("zip-compression-ratio-limit","Das Kompressionsverhältnis des Archivs ist ungewöhnlich hoch.",{ratio:Math.round(p*100)/100,limit:t.maximumZipCompressionRatio})}function oF(e,t){(!Number.isSafeInteger(e.metadata.sizeBytes)||e.metadata.sizeBytes<0||e.metadata.sizeBytes!==e.bytes.byteLength)&&Jt("file-size-mismatch","Dateimetadaten und tatsächliche Byteanzahl stimmen nicht überein.",{declaredBytes:e.metadata.sizeBytes,actualBytes:e.bytes.byteLength}),e.bytes.byteLength>t.maximumFileBytes&&Jt("file-size-limit",`Die Datei überschreitet das Limit von ${t.maximumFileBytes} Bytes.`,{actualBytes:e.bytes.byteLength,limit:t.maximumFileBytes}),e.bytes[0]===80&&e.bytes[1]===75&&rF(e.bytes,t)}function cF(e){let t=0,n=0,a=!1,i=!1;for(const r of e){if(i){i=!1;continue}if(r==="\\"&&a){i=!0;continue}if(r==='"'){a=!a;continue}a||(r==="{"||r==="["?(t+=1,n=Math.max(n,t)):(r==="}"||r==="]")&&(t=Math.max(0,t-1)))}return n}function lF(e,t,n){if(e.length>n.maximumDecodedCharacters&&Jt("decoded-text-limit","Der dekodierte Text überschreitet das Zeichenlimit.",{characters:e.length,limit:n.maximumDecodedCharacters}),e.includes("\0")&&Jt("null-byte-rejected","Textimporte mit Nullbytes werden nicht verarbeitet.",{extension:t}),t==="xml"&&/<!DOCTYPE\b|<!ENTITY\b|\bSYSTEM\s+["']|\bPUBLIC\s+["']/i.test(e)&&Jt("xml-doctype-rejected","XML-Dokumenttyp-, Entitäts- und externe Referenzdeklarationen sind nicht zulässig.",{extension:t}),t==="json"){const a=cF(e);a>n.maximumJsonDepth&&Jt("json-depth-limit","Die JSON-Verschachtelung überschreitet das Limit.",{depth:a,limit:n.maximumJsonDepth})}if(["xml","html","htm"].includes(t)){const a=(e.match(/<\/?[A-Za-z_][^>]*>/g)??[]).length;a>n.maximumMarkupElements&&Jt("markup-element-limit","Das Markup enthält zu viele Elemente.",{elementCount:a,limit:n.maximumMarkupElements})}if(["csv","txt"].includes(t)){const a=1+(e.match(/\r\n|\r|\n/g)??[]).length;a>n.maximumTotalRows&&Jt("row-limit","Die Textdatei enthält zu viele physische Zeilen.",{rows:a,limit:n.maximumTotalRows})}}function uF(e,t){e.tables.length>t.maximumTables&&Jt("table-limit","Der Import enthält zu viele Tabellen.",{tables:e.tables.length,limit:t.maximumTables});let n=0,a=0;e.tables.forEach(i=>{i.rows.length>t.maximumRowsPerTable&&Jt("rows-per-table-limit",`Die Tabelle „${i.name}“ enthält zu viele Zeilen.`,{table:i.name,rows:i.rows.length,limit:t.maximumRowsPerTable}),i.columns.length>t.maximumColumnsPerTable&&Jt("column-limit",`Die Tabelle „${i.name}“ enthält zu viele Spalten.`,{table:i.name,columns:i.columns.length,limit:t.maximumColumnsPerTable}),n+=i.rows.length,i.rows.forEach(r=>r.cells.forEach(c=>{c.decodedValue.length>t.maximumCellCharacters&&Jt("cell-size-limit","Eine Tabellenzelle überschreitet das Zeichenlimit.",{table:i.name,row:r.index,column:c.source.columnIndex??0,characters:c.decodedValue.length,limit:t.maximumCellCharacters}),a+=c.decodedValue.length,a>t.maximumTotalCellCharacters&&Jt("total-cell-size-limit","Die Gesamtgröße der Tabellenzellen überschreitet das Limit.",{characters:a,limit:t.maximumTotalCellCharacters})}))}),n>t.maximumTotalRows&&Jt("row-limit","Der Import enthält insgesamt zu viele Zeilen.",{rows:n,limit:t.maximumTotalRows})}function dF(e){return e==="Excel"?"xlsx":e.toLocaleLowerCase("en-US")}function TF(e){const t=[];return e.conflicts.length&&t.push({severity:"warning",code:"format-evidence-conflict",stage:"format-decoding",message:`Inhalt oder Dateisignatur wurde als ${e.selected} erkannt; abweichende Endungs- oder Medientyphinweise wurden nicht als Parserentscheidung übernommen.`,details:{selectedFormat:e.selected,conflicts:e.conflicts.map(n=>({signal:n.signal,format:n.format??null}))}}),e.requiresParserValidation&&t.push({severity:"info",code:"format-parser-validation",stage:"format-decoding",message:`Die Formaterkennung für ${e.selected} beruhte auf schwachen Hinweisen und wurde durch den erfolgreichen sicheren Parserlauf validiert.`}),t}function fF(e,t,n){if(!e.intermediate)return e;const a=TF(t),i=[...e.intermediate.diagnostics,...a],r=e.intermediate.status==="failed"?"failed":e.intermediate.status==="partial"||a.some(l=>l.severity==="warning")?"partial":"complete",c=e.intermediate.processing.map(l=>l.stage==="format-decoding"?{...l,status:"complete",diagnosticCodes:a.map(f=>f.code)}:l);return{...e,intermediate:{...e.intermediate,status:r,file:{...e.intermediate.file,encoding:n??e.intermediate.file.encoding},diagnostics:i,processing:c,formatDetection:t}}}function wc(e,t,n){return new Ia(t,[{severity:"error",code:e,message:t,stage:"format-decoding",details:n}])}async function hF(e,t,n){const a=Rp(e.metadata),i=iF(t.resourcePolicy);oF(e,i);let r,c,l;try{const x=AO(e),y=wx(e);if(x.containerKind==="zip")throw wc("unsupported-container","ZIP-Container ohne erkannte Excel-Workbookstruktur werden noch nicht importiert.",{containerKind:"zip"});if(x.binary&&x.signedFormat!=="Excel")throw wc("unsupported-binary-format","Die Binärdatei besitzt keine unterstützte und validierte Dateisignatur.");if(y?.selected==="Excel"&&y.structurallyValidated)c=y,r=await yO(e);else{const w=n.textDecoder.decode(e.bytes);l=w.encoding;const C=wx(e,w.text);if(!C)throw wc("unsupported-import-format","Das Dateiformat konnte nicht sicher einem unterstützten Format zugeordnet werden.");if(C.binary)throw wc("unsupported-binary-format","Die Binärdatei besitzt keine unterstützte und validierte Dateisignatur.");if(C.selected==="Excel")throw wc("excel-signature-mismatch","Eine als Excel deklarierte Datei besitzt keine gültige Excel-Dateisignatur.");c=C,lF(w.text,dF(c.selected),i),c.selected==="JSON"?r=OO(e.metadata,w.text):c.selected==="XML"?r=jO(e.metadata,w.text,n.markup):c.selected==="HTML"?r=DO(e.metadata,w.text,n.markup):r=mC(e.metadata,w.text,t.delimiter)}}catch(x){if(x instanceof Ia)throw x;const y=x instanceof Error?x.message:"Unbekannter Parserfehler";throw new Ia(`Die Datei „${e.metadata.name}“ konnte nicht verarbeitet werden.`,[{severity:"error",code:"file-parse-error",message:y,details:{extension:a}}],{cause:x})}if(r=fF(r,c,l),r.intermediate&&uF(r.intermediate,i),!t.profiles.length)throw new Ia("Für den Import ist mindestens ein Profil erforderlich.",[{severity:"error",code:"missing-import-profile",message:"Die Importengine wurde ohne verfügbares Importprofil aufgerufen."}]);if(r.intermediate){const x=aF(r.intermediate),y=Math.max(-1,...r.intermediate.tables.map(C=>C.index))+1,w=(x.supportingTables??[]).map((C,k)=>{const E=[C.headers,...C.rows.map(O=>O.map(ts))];return es(C.name,E,Ns(E),e.metadata.name,{sourceFile:e.metadata.name,sourceSheet:C.name,sourceTableIndex:y+k})});r={...r,sheets:[...r.sheets,...w],extraction:x,intermediate:{...r.intermediate,diagnostics:[...r.intermediate.diagnostics,...x.diagnostics],processing:[...r.intermediate.processing,x.processing]}}}const f=r.sheets.some(x=>x.rows.some(y=>y.some(w=>w.trim()))),T=!!(r.extraction&&(r.extraction.candidates.length||r.extraction.reportSections?.length||r.extraction.environmentObservations?.length));if(!f&&!T)throw new Ia("Die Datei enthält keine auswertbaren Tabellen.",[{severity:"error",code:"empty-import",message:"Der Parser und die registrierten Quellenextraktoren haben keine auswertbaren Inhalte geliefert."}]);const p=r.intermediate?eC(r.intermediate,r.extraction):void 0,m=p?s4(p,t.profiles):t.profiles.find(x=>x.definition.fallback)??t.profiles[0],g=r.extraction?a4(r.extraction,m,p):void 0;g&&r.intermediate&&(r={...r,mapping:g,intermediate:{...r.intermediate,diagnostics:[...r.intermediate.diagnostics,...g.diagnostics],processing:[...r.intermediate.processing,g.processing]}});const S=m.prioritizeSheets(r.sheets);return{...r,sheets:S,profileId:m.id,profileVersion:m.version,scanTool:m.name,recognition:p,mapping:g}}async function pF(e,t){return hF(await C8(e),t,q8)}class bb{get(t){try{return window.localStorage.getItem(t)}catch{return null}}set(t,n){try{window.localStorage.setItem(t,n)}catch{}}remove(t){try{window.localStorage.removeItem(t)}catch{}}}const eh=e=>`ASSESSOR:reviews:${e}`,mF=e=>`exxTableReader:reviews:${e}`;class gF{constructor(t){this.storage=t}storage;async load(t){try{const n=this.storage.get(eh(t)),a=n??this.storage.get(mF(t))??"{}",i=JSON.parse(a);return n===null&&a!=="{}"&&this.storage.set(eh(t),a),i}catch{return{}}}async save(t,n){this.storage.set(eh(t),JSON.stringify(n))}}const vF={now:()=>new Date};function xF(e,t,n=vF){return{app:"ASSESSOR",kind:"snapshot",version:2,createdAt:n.now().toISOString(),dataset:e,reviews:t}}function th(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function yF(e){try{const t=JSON.parse(e);return!th(t)||!["ASSESSOR","exxTableReader"].includes(String(t.app))||t.kind!=="snapshot"||t.version!==2||!th(t.dataset)||!Array.isArray(t.dataset.sheets)||!th(t.reviews)||typeof t.dataset.fileName!="string"||typeof t.dataset.profileId!="string"?null:{...t,app:"ASSESSOR"}}catch{return null}}function a0(e,t){return e.lastIndex=0,e.test(t)}const $x=new WeakMap,SF=[/^fail(?:ed)?$/,/^not passed?$/,/^nicht bestanden$/,/^ioes? (?:found|detected)$/,/^matched$/,/^detected$/,/^open$/,/^offen$/,/^investigate$/,/^warning$/];function bF(e){let t=$x.get(e);return t||(t=e.fields.map(n=>ga(n.value).toLowerCase().replace(/[^a-z0-9]+/g," ").trim()),$x.set(e,t)),t}function wF(e,t,n){const a=i=>e.fields.some(r=>i.test(r.label.trim())&&!["","no","none","false","0"].includes(ga(r.value).trim().toLowerCase()));return n==="passed"?t==="pass"||t==="passed":n==="not-configured"?t==="not configured":n==="no-baseline-rule"?t==="no baseline rule":n==="not-comparable"?t==="not comparable":n==="conflicts"?t==="conflicts"||a(/^conflict$/i):n==="duplicates"?t==="duplicates"||a(/^duplicates$/i):n!=="deviation"?!1:["fail","failed","misconfigured"].includes(t??"")}function CF(e,t){return e?.analysis.headers.find(n=>t.some(a=>a0(a,je(n))))??""}function Yx(e,t){return e.length?new RegExp(e.map(n=>`(?:${n.source})`).join("|"),"i"):t}function EF(e,t){return t==="file-name"?[e.fileName]:t==="raw-text"?[e.rawText.slice(0,25e4)]:t==="table-name"?e.sheets.map(n=>n.name):t==="header"?e.sheets.flatMap(n=>n.analysis.headers):e.sheets.flatMap(n=>n.rows.slice(0,80).flat())}function kF(e,t){if(e.fallback)return 1;const n=e.sourceSignals.reduce((a,i)=>EF(t,i.scope).some(r=>a0(i.pattern,r))?a+i.contribution:a,0);return Math.round(Math.min(1,n)*1e3)}function Zx(e,t){return t.reduce((n,a)=>a0(a.pattern,e)?n+a.contribution:n,0)}function Jx(e,t){const n=je(t.name),a=e.fieldRules.reduce((i,r)=>r.headers.some(c=>t.analysis.headers.some(l=>a0(c.pattern,je(l))))?i+12:i,0);return Zx(n,e.tableRules.preferredNames)*1e3-Zx(n,e.tableRules.discouragedNames)*1e3+a+Math.min(t.analysis.records.length,500)/10-(t.hidden?100:0)}function I1(e){const t=new WeakMap,n=(r,c)=>{const l=r.fields.find(S=>/^status$/i.test(S.label.trim()))?.value.trim().toLowerCase();if(r.fields.some(S=>/^category$/i.test(S.label.trim())&&/^gpos$/i.test(ga(S.value).trim())||/^(?:source|quelle):\s*scan$/i.test(S.label.trim())&&/^gpos(?:\s|·|$)/i.test(ga(S.value).trim()))&&["deviation","passed","not-configured","no-baseline-rule","not-comparable","conflicts","duplicates"].includes(c))return wF(r,l,c);if(["not-configured","conflicts","duplicates"].includes(c))return l===c.replace("-"," ");if(c==="no-baseline-rule")return l==="no baseline rule";if(c==="not-comparable")return l==="not comparable";const T=e.presentation.statusFilters.find(S=>S.value===c),p=e.presentation.statusHeaders,m=p?.map(S=>r.fields.find(x=>x.value.trim()&&a0(S,x.label.trim()))).find(Boolean),g=p?.length?m?[ga(m.value).trim().toLowerCase()]:[]:bF(r);return c==="deviation"&&!T?g.some(S=>SF.some(x=>a0(x,S))):T?g.some(S=>T.patterns.some(x=>a0(x,S))):!0},a=e.presentation.statusFilters.map(({value:r,label:c})=>({value:r,label:c})),i=a.some(r=>r.value==="deviation")?a:[...a.filter(r=>r.value==="all"),{value:"deviation",label:"Deviation"},...a.filter(r=>r.value!=="all")];return{id:e.id,name:e.name,version:e.version,definition:e,detect:r=>kF(e,r),prioritizeSheets:r=>e.fallback?r:[...r].sort((c,l)=>Jx(e,l)-Jx(e,c)||(c.hidden??0)-(l.hidden??0)||(c.workbookIndex??0)-(l.workbookIndex??0)),defaults:r=>({titleColumn:CF(r,e.presentation.titleHeaders),sortColumn:"all",sortDirection:e.presentation.sortDirection,statusFilter:"deviation"}),matchesStatus:(r,c)=>{if(c==="all")return!0;let l=t.get(r);l||(l=new Map,t.set(r,l));const f=l.get(c);if(f!==void 0)return f;const T=n(r,c);return(c==="deviation"||e.presentation.statusFilters.some(p=>p.value===c))&&l.set(c,T),T},presentation:{severityFieldPattern:Yx(e.presentation.severityHeaders,/$a/),titleFieldPattern:Yx(e.presentation.titleHeaders,/$a/),statusFilters:i}}}const gi=I1(Dp),AF=I1(Zy),RF=I1(Jy),DF=I1(Qy),IF=I1(e4),NF=[IF,DF,AF,RF,gi];function Qx(e,t){const n=["Source: File","Source: Sheet"],a=[],i=new Set(n);e.forEach(S=>S.sheets.forEach(x=>x.analysis.headers.forEach(y=>{i.has(y)||(i.add(y),a.push(y))})));const r=[[...n,...a]];e.forEach(S=>S.sheets.forEach(x=>x.analysis.records.forEach(y=>{const w=new Map(y.fields.map(C=>[C.label,C.value]));r.push([S.fileName,x.name,...a.map(C=>w.get(C)??"")])})));const c=[...new Set(e.map(S=>S.scanTool).filter(Boolean))],l=c.length>1,f=l?"Multiple Tools":t.name,T=`${f} · ${e.length} files`,p=es(`${f} · All Records`,r,Ns(r),T,{isProjectSheet:!0}),m=e.flatMap(S=>S.sheets.map(x=>({...x,name:`${S.fileName.replace(/\.[^.]+$/,"")} · ${x.name}`,sourceFile:S.fileName,sourceSheet:x.sourceSheet??x.name}))),g=t.prioritizeSheets([p,...m]);return{fileName:T,fileSize:e.reduce((S,x)=>S+x.fileSize,0),lastModified:Math.max(...e.map(S=>S.lastModified),0),format:`Project · ${f}`,rawText:e.map(S=>`# Datei: ${S.fileName}
|
||
${S.rawText}`).join(`
|
||
|
||
`),sheets:g,profileId:l?"generic":t.id,scanTool:l?c.join(", "):t.name}}const d1={id:"policy-baseline-evaluation",version:"1.9.0"},OF={version:"1.1.0"},MF=new Set(["fail","warning"]);function wb(e,t){return e||MF.has(t)}const Ya={deviation:"Deviation",passed:"Passed","not-configured":"Not configured","no-baseline-rule":"No baseline rule","not-comparable":"Not comparable",conflicts:"Conflicts",duplicates:"Duplicates","review-required":"Review required"},jF={misconfigured:Ya.deviation,match:Ya.passed,"not-configured":Ya["not-configured"],conflict:Ya.conflicts,duplicate:Ya.duplicates,"review-required":Ya["review-required"]};function Jl(e){const{baseline:t,actual:n,relation:a}=e.comparator;if(e.baselineVariantAssessment){if(e.baselineVariantAssessment.decision!=="all-fail"||e.classification!=="confirmed_configured_deviation"||a!=="different")return;const i=e.customerState==="missing"&&e.baselineVariantAssessment.variants.length>0&&e.baselineVariantAssessment.variants.every(r=>{const c=r.comparator.baseline;return c?.kind==="registry-state"&&c.state==="key-present"||c?.kind==="text"&&c.value===""});return e.customerState==="missing"?i?"misconfigured":"not-configured":["configured","conflicted"].includes(e.customerState)?"misconfigured":void 0}if(!(e.baselineState!=="explicit-recommendation"||!t||t.kind==="none"||t.kind==="text"&&!t.value.trim()||e.diagnosticCodes.includes("policy-evaluation-baseline-consensus-conflict")||e.classification!=="confirmed_configured_deviation"||!["different","weaker"].includes(a))){if(e.customerState==="missing"&&(!n||n.kind==="none"))return"not-configured";if(e.customerState==="configured"&&n&&n.kind!=="none")return"misconfigured"}}const e3={critical:0,high:1,medium:2,low:3,info:4,unknown:5};function sp(e){return e3[e]??e3.unknown}const Cb={critical:"Critical",high:"High",medium:"Medium",low:"Low",info:"Info",unknown:"Unknown"};function Eb(e){const t=je(e).toLocaleLowerCase("de-DE");return/critical|kritisch/.test(t)?"critical":/\bhigh\b|\bhoch\b/.test(t)?"high":/medium|mittel|moderate/.test(t)?"medium":/\blow\b|niedrig/.test(t)?"low":/info/.test(t)?"info":"unknown"}const FF=/^(?:severity|schweregrad|criticality|kritikalit(?:ae|ä)t|risk|risiko|priority|priorit(?:ae|ä)t)$/i;function kb(e){return FF.test(je(e))}function LF(e){return e.findIndex(t=>kb(t))}const PF="1.3.0",Ab=[{profileId:"generic",profileVersion:"1.0.0",mappingVersion:"1.0.0",normalizationVersion:"1.0.0",presentationVersion:"1.0.0",compatibilityKey:"generic-canonical-v1",changeClass:"compatible",reimportRequired:!1,affectedDimensions:[],current:!0},{profileId:"purple-knight",profileVersion:"1.0.0",mappingVersion:"1.0.0",normalizationVersion:"1.0.0",presentationVersion:"1.0.0",compatibilityKey:"purple-knight-canonical-v1",changeClass:"semantic-breaking",reimportRequired:!0,affectedDimensions:["outcome","isIoe"],current:!1},{profileId:"purple-knight",profileVersion:"1.1.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.1.0",compatibilityKey:"purple-knight-canonical-v1.1",changeClass:"semantic-breaking",reimportRequired:!0,affectedDimensions:["outcome","isIoe"],current:!1},{profileId:"purple-knight",profileVersion:"1.2.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.1.0",compatibilityKey:"purple-knight-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context"],current:!1},{profileId:"purple-knight",profileVersion:"1.3.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.1.0",compatibilityKey:"purple-knight-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context","evidence","import-diagnostics"],current:!0},{profileId:"pingcastle",profileVersion:"1.0.0",mappingVersion:"1.0.0",normalizationVersion:"1.0.0",presentationVersion:"1.0.0",compatibilityKey:"pingcastle-canonical-v1",changeClass:"semantic-breaking",reimportRequired:!0,affectedDimensions:["outcome","isIoe"],current:!1},{profileId:"pingcastle",profileVersion:"1.1.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.1.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"semantic-breaking",reimportRequired:!1,affectedDimensions:["outcome","isIoe"],current:!1},{profileId:"pingcastle",profileVersion:"1.2.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.2.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"presentation-only",reimportRequired:!0,affectedDimensions:["evidence","presentation"],current:!1},{profileId:"pingcastle",profileVersion:"1.3.0",mappingVersion:"1.1.0",normalizationVersion:"1.1.0",presentationVersion:"1.2.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context","evidence","presentation"],current:!1},{profileId:"pingcastle",profileVersion:"1.4.0",mappingVersion:"1.2.0",normalizationVersion:"1.1.0",presentationVersion:"1.2.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context"],current:!1},{profileId:"pingcastle",profileVersion:"1.5.0",mappingVersion:"1.2.0",normalizationVersion:"1.1.0",presentationVersion:"1.2.0",compatibilityKey:"pingcastle-canonical-v1.1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context","evidence","import-diagnostics"],current:!0},{profileId:"cis-cat",profileVersion:"1.2.0",mappingVersion:"1.2.0",normalizationVersion:"1.2.0",presentationVersion:"1.2.0",compatibilityKey:"cis-cat-canonical-v1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["evidence"],current:!1},{profileId:"cis-cat",profileVersion:"1.3.0",mappingVersion:"1.3.0",normalizationVersion:"1.3.0",presentationVersion:"1.3.0",compatibilityKey:"cis-cat-canonical-v1",changeClass:"compatible",reimportRequired:!1,affectedDimensions:["evidence","presentation"],current:!1},{profileId:"cis-cat",profileVersion:"1.4.0",mappingVersion:"1.3.0",normalizationVersion:"1.3.0",presentationVersion:"1.3.0",compatibilityKey:"cis-cat-canonical-v1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["environment-context"],current:!0},{profileId:"maester",profileVersion:"1.0.0",mappingVersion:"1.0.0",normalizationVersion:"1.0.0",presentationVersion:"1.0.0",compatibilityKey:"maester-canonical-v1",changeClass:"compatible",reimportRequired:!1,affectedDimensions:[],current:!1},{profileId:"maester",profileVersion:"1.1.0",mappingVersion:"1.1.0",normalizationVersion:"1.0.0",presentationVersion:"1.1.0",compatibilityKey:"maester-canonical-v1",changeClass:"compatible",reimportRequired:!0,affectedDimensions:["evidence","environment-context","presentation"],current:!0}],Rb=(e,t)=>`${e.trim().toLocaleLowerCase("en-US")}@${t.trim()}`,_F=new Map(Ab.map(e=>[Rb(e.profileId,e.profileVersion),e]));function qF(e,t){if(!(!e||!t))return _F.get(Rb(e,t))}function Db(e){if(e)return Ab.find(t=>t.current&&t.profileId===e)}function t3(e,t){const n=qF(e??t.profileId,t.profileVersion),a=Db(e??t.profileId);return!n||!a?"unknown":(t.compatibilityKey??n.compatibilityKey)!==a.compatibilityKey?"incompatible":n.current?"current":n.reimportRequired||a.reimportRequired?"reimport-recommended":"compatible-older"}function Ib(e,t,n){if(!(typeof e!="number"||!Number.isFinite(e)||e<t||e>n))return e}function Y0(e,t,n){const a=Ib(e,t,n);return a!==void 0&&Number.isInteger(a)?a:void 0}function n3(e){return typeof e=="boolean"?e:void 0}function BF(e){if(typeof e!="string")return;const t=e.trim();return/^\d+(?:\.\d+){1,3}(?:[-+][a-z0-9.-]+)?$/i.test(t)?t:void 0}const UF=[{toolId:"pingcastle",property:"report.engine_version",title:"PingCastle engine version",subjectType:"scanner-report",disclosureClass:"technical-metadata",disclose:BF},...["risk.domain","risk.global","risk.stale_objects","risk.privileged_accounts","risk.trusts","risk.anomalies"].map(e=>({toolId:"pingcastle",property:e,title:e==="risk.domain"||e==="risk.global"?"Domain risk score":`${e.slice(5).replaceAll("_"," ")} score`,subjectType:"active-directory-environment",disclosureClass:"aggregate",disclose:t=>Ib(t,0,100)})),{toolId:"pingcastle",property:"domain.functional_level",title:"Domain functional level",subjectType:"active-directory-environment",disclosureClass:"technical-metadata",disclose:e=>Y0(e,2e3,9999)},{toolId:"pingcastle",property:"forest.functional_level",title:"Forest functional level",subjectType:"active-directory-environment",disclosureClass:"technical-metadata",disclose:e=>Y0(e,2e3,9999)},{toolId:"pingcastle",property:"forest.schema_version",title:"Forest schema version",subjectType:"active-directory-environment",disclosureClass:"technical-metadata",disclose:e=>Y0(e,0,1e4)},{toolId:"pingcastle",property:"domain.controller_count",title:"Domain controller count",subjectType:"active-directory-environment",disclosureClass:"aggregate",disclose:e=>Y0(e,0,1e6)},{toolId:"pingcastle",property:"domain.recycle_bin_enabled",title:"AD Recycle Bin enabled",subjectType:"active-directory-environment",disclosureClass:"configuration-state",disclose:n3},{toolId:"pingcastle",property:"entra.configuration_detected",title:"Entra ID configuration detected",subjectType:"active-directory-environment",disclosureClass:"configuration-state",disclose:n3},{toolId:"pingcastle",property:"logging.wef.configuration_count",title:"WEF configuration count",subjectType:"active-directory-environment",disclosureClass:"aggregate",disclose:e=>Y0(e,0,1e6)},{toolId:"pingcastle",property:"kerberos.krbtgt.version",title:"krbtgt version",subjectType:"active-directory-environment",disclosureClass:"technical-metadata",disclose:e=>Y0(e,0,1e6)}];new Map(UF.map(e=>[`${e.toolId}\0${e.property}`,e]));function um(e){return e==="failed"?"fail":e==="passed"?"pass":e==="error"?"execution_error":e==="not-run"?"not_run":e==="not-applicable"?"not_applicable":e==="manual"?"informational":e==="investigate"?"warning":"unknown"}function zF(e){return e==="error"?"failed":e==="not-run"?"not-run":e==="unknown"?"unknown":"completed"}function WF(e,t={}){const n=new Map,a=new Map,i=r=>{const c=a.get(r.run.id);if(c!==void 0)return c;const f=new Set(r.results.flatMap(T=>T.baselineId?[T.baselineId]:[])).size||r.run.baselineAnalysisIds.length;return a.set(r.run.id,f),f};for(const r of e){const c=r.run.evaluator.version===d1.version,l=t.allowPreviousVersionForDisplay&&["1.3.3","1.4.0"].includes(r.run.evaluator.version);if(r.run.evaluator.id!==d1.id||!c&&!l)continue;const f=n.get(r.run.aggregationRunId),T=f?.run.evaluator.version===r.run.evaluator.version,p=f?.run.evaluator.version==="1.3.3"&&r.run.evaluator.version==="1.4.0";(!f||c&&!T||p||T&&(i(r)>i(f)||i(r)===i(f)&&`${r.run.completedAt}${r.run.id}`>`${f.run.completedAt}${f.run.id}`))&&n.set(r.run.aggregationRunId,r)}return[...n.values()].sort((r,c)=>r.run.completedAt.localeCompare(c.run.completedAt))}const VF="assessor-result-db-jsonl",HF="1.1.0",GF=1e3;function Nb(e){return Object.entries(e).filter(([,t])=>t!==void 0)}function XF(e){const t=new Set(["projectId","assessmentId","scanRunId","scanRunIds","evaluationRunId"]);return Object.fromEntries(Nb(e).filter(([n])=>t.has(n)))}function KF(e){const t=new Set(["projectId","assessmentId","scanRunId","scanRunIds","evaluationRunId","offset","limit"]);return Object.fromEntries(Nb(e).filter(([n])=>!t.has(n)))}function $F(e){if(e.sourceKind!=="environment-observation")return e;if(!e.supplementalDisclosurePolicyVersion||!e.supplementalDisclosureClass)throw new Error("An unclassified supplemental result cannot be exported.");const t={...e};return delete t.affectedAsset,delete t.environmentAttributes,delete t.environmentOriginalValue,delete t.environmentSectionKey,delete t.environmentSubjectIdentity,delete t.sourceLocator,delete t.sourceObservedAt,delete t.sourceViewId,t}function YF(e,t,n){return`${[{recordType:"manifest",format:VF,schemaVersion:HF,generatedAt:n,resultCount:t.length,scope:XF(e),filters:KF(e)},...t.map((i,r)=>({recordType:"result",position:r+1,result:$F(i)}))].map(i=>JSON.stringify(i)).join(`
|
||
`)}
|
||
`}function ZF(e){return`assessor-result-db-filtered-${e.replace(/\.\d{3}Z$/,"Z").replaceAll(":","-")}.jsonl`}async function dm(e,t,n=GF){const a={...t,offset:void 0,limit:void 0},i=[];let r;for(;r===void 0||i.length<r;){const c=await e({...a,offset:i.length,limit:n});if(r===void 0&&(r=c.total),c.total!==r)throw new Error("The filtered result set changed during export. Please retry.");if(!c.items.length&&i.length<r)throw new Error("The filtered result export ended before all rows were returned.");i.push(...c.items)}if(i.length!==r)throw new Error("The filtered result export returned an inconsistent row count.");return i}const JF=6e4;function a3(e){const t=e?.id.trim().toLocaleLowerCase("de-DE");return t&&t!=="generic"&&t!=="unknown"&&t!=="multiple"?t:void 0}function i3(e){const t=typeof e=="number"?e:e?Date.parse(e):Number.NaN;return Number.isFinite(t)&&t>0?t:void 0}function QF(e,t,n,a,i=JF){const r=a3(e),c=a3(n),l=i3(t),f=i3(a);return!!(r&&r===c&&l!==void 0&&f!==void 0&&Math.abs(l-f)<=i)}function Z0(e){return e&&Date.parse(e)||0}function J0(e){if(!e)return null;const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${a}-${i}`}function s3(e){return`${e}T12:00:00.000Z`}function eL(e){return e.id==="generic"||e.id==="unknown"}function Ob(e){const t=new Map;for(const n of e)eL(n.detectedTool)||t.set(n.detectedTool.id,n.detectedTool);return t.size===1?[...t.values()][0]:t.size>1?{id:"multiple",name:"Multiple Tools"}:e[0]?.detectedTool??{id:"generic",name:"Assessment data"}}function tL(e,t){const n=new Map;for(const i of e){const r=n.get(i.scanRunId)??[];r.push(i),n.set(i.scanRunId,r)}const a=new Set([...n.values()].map(i=>Ob(i).id));return t.length&&a.add("gpo-backup"),a.size}function ho(e,t=[],n=[],a=[]){const i=new Map(t.map(T=>[T.id,T])),r=new Map(n.map(T=>[T.id,T])),c=new Map,l=(T,p=s3(T))=>{const m=c.get(T);if(m)return m;const g={key:T,assessmentIds:new Set,scanRunIds:new Set,files:[],gpoBackups:[],effectiveAt:p};return c.set(T,g),g};for(const T of e){const p=r.get(T.scanRunId),m=p?i.get(p.assessmentId):void 0,g=T.lastModifiedAt??T.importedAt,S=J0(m?.effectiveAt)??J0(g);if(!S)continue;const x=l(S,m?.effectiveAt??g);x.files.push(T),x.scanRunIds.add(T.scanRunId),p&&x.scanRunIds.add(p.id),m&&x.assessmentIds.add(m.id)}for(const T of n){const p=i.get(T.assessmentId);if([...c.values()].some(x=>x.scanRunIds.has(T.id)))continue;const g=J0(p?.effectiveAt)??J0(T.completedAt??T.startedAt??T.importedAt);if(!g)continue;const S=l(g,p?.effectiveAt??T.completedAt??T.startedAt??T.importedAt);S.scanRunIds.add(T.id),p&&S.assessmentIds.add(p.id)}for(const T of t){if(!T.effectiveAt)continue;const p=J0(T.effectiveAt);if(!p)continue;l(p,T.effectiveAt).assessmentIds.add(T.id)}for(const T of a){let p=T.assessmentId?[...c.values()].find(m=>m.assessmentIds.has(T.assessmentId)):void 0;if(!p&&T.assessmentId){const m=i.get(T.assessmentId),g=J0(m?.effectiveAt);g&&(p=l(g,m.effectiveAt),p.assessmentIds.add(T.assessmentId))}!p&&c.size===1&&(p=[...c.values()][0]),p&&p.gpoBackups.push(T)}const f=[...c.values()].map(T=>{const p=[...T.files].sort((S,x)=>Z0(x.lastModifiedAt??x.importedAt)-Z0(S.lastModifiedAt??S.importedAt)),m=[...p.map(S=>S.importedAt),...T.gpoBackups.map(S=>S.submittedAt)].reduce((S,x)=>Z0(x)>Z0(S)?x:S,T.effectiveAt),g=[...T.scanRunIds];return{id:`timeslot-${T.key}`,scanRunId:g[0]??"",scanRunIds:g,assessmentIds:[...T.assessmentIds],tool:Ob(p),files:p,gpoBackups:T.gpoBackups.slice(),sourceCount:tL(p,T.gpoBackups),fileCount:p.length,fileNames:p.map(S=>S.fileName),formats:[...new Set(p.map(S=>S.format))],sizeBytes:p.reduce((S,x)=>S+x.sizeBytes,0)+T.gpoBackups.reduce((S,x)=>S+x.sizeBytes,0),fileDate:s3(T.key),importedAt:m,possibleDuplicateGroupIds:[]}}).sort((T,p)=>Z0(p.fileDate)-Z0(T.fileDate));for(let T=0;T<f.length;T+=1)for(let p=T+1;p<f.length;p+=1){const m=f[T],g=f[p];QF(m.tool,m.fileDate,g.tool,g.fileDate)&&(m.possibleDuplicateGroupIds.push(g.id),g.possibleDuplicateGroupIds.push(m.id))}return f}function T1(){return{version:"1.0.0",weights:{"purple-knight":1,pingcastle:1,"cis-cat":1,maester:1,"group-policy":1},defaultWeight:1}}function Mb(e){return!!(e&&e.version==="1.0.0"&&e.weights&&typeof e.weights=="object"&&!Array.isArray(e.weights))&&Number.isFinite(e.defaultWeight)&&e.defaultWeight>0&&Object.values(e.weights).every(t=>Number.isFinite(t)&&t>0)}function Hu(e){const t=e.filter(a=>a.score!==void 0&&Number.isFinite(a.score)&&a.score>=0&&a.score<=100&&Number.isFinite(a.weight??1)&&(a.weight??1)>0),n=t.reduce((a,i)=>a+(i.weight??1),0);return n?t.reduce((a,i)=>a+i.score*(i.weight??1),0)/n:void 0}function Gu(e){const t=new Map;for(const n of e){const a=t.get(n.toolId);a?a.push(n):t.set(n.toolId,[n])}return[...t].map(([n,a])=>{const i=new Set(a.map(c=>JSON.stringify([c.policy.version,c.policy.weights[n]??c.policy.defaultWeight]))),r=[...new Set(a.flatMap(c=>c.issues))];return i.size!==1&&r.push("Scoring policies differ"),{toolId:n,scans:a,score:i.size===1?Hu(a):void 0,weight:a[0].policy.weights[n]??a[0].policy.defaultWeight,methods:[...new Set(a.map(c=>c.method))],issues:r}})}function jb(e,t){const n=(l,f)=>l.comparisonKey!==void 0&&l.comparisonKey===f.comparisonKey&&l.processingKey===f.processingKey&&l.evaluationScopeKey!==void 0&&l.evaluationScopeKey===f.evaluationScopeKey&&l.observedAt!==void 0&&f.observedAt!==void 0&&Date.parse(f.observedAt)>Date.parse(l.observedAt)&&l.issues.length===0&&f.issues.length===0&&l.method===f.method&&l.policy.version===f.policy.version&&(l.policy.weights[l.toolId]??l.policy.defaultWeight)===(f.policy.weights[f.toolId]??f.policy.defaultWeight),a=e.flatMap(l=>{const f=t.filter(T=>n(l,T));return f.length===1&&e.filter(T=>n(T,f[0])).length===1&&l.score!==void 0&&f[0].score!==void 0?[{left:l,right:f[0]}]:[]}),i=Hu(Gu(a.map(l=>l.left))),r=Hu(Gu(a.map(l=>l.right))),c=e.filter(l=>!t.some(f=>l.comparisonKey!==void 0&&l.comparisonKey===f.comparisonKey&&f.observedAt!==void 0&&l.observedAt!==void 0&&Date.parse(f.observedAt)>Date.parse(l.observedAt)&&f.assessed>0&&!f.issues.includes("Source integrity diagnostic")));return{baselineScore:i,currentScore:r,change:i===void 0||r===void 0?void 0:r-i,comparable:a.length,scopeChanged:a.length!==e.length||a.length!==t.length,awaitingRevalidation:c.map(l=>({assessmentId:l.assessmentId,runIds:l.runIds,observedAt:l.observedAt,occurrenceIds:l.openOccurrenceIds}))}}function nL(e){if(po(e.tool.id)!=="pingcastle"||!e.property.startsWith("pingcastle.xml.")||e.property.includes(".attribute."))return e;const t=e.attributes.xmlPath,n=typeof t=="string"?/^\/?HealthcheckData\[\d+\]\/([A-Za-z]+)\[\d+\]$/.exec(t)?.[1]:void 0,a=n?{GlobalScore:"risk.global",DomainFQDN:"domain.fqdn",GenerationDate:"report.generated_at",EngineVersion:"report.engine_version"}[n]:void 0;return a?{...e,property:a}:e}function po(e){const t=e.toLowerCase().replace(/[^a-z0-9]/g,"");return{purpleknight:"purple-knight",pingcastle:"pingcastle",ciscat:"cis-cat",ciscatpro:"cis-cat",maester:"maester",gpos:"group-policy",gpoanalysis:"group-policy",grouppolicy:"group-policy"}[t]??e.toLowerCase()}function Fb(e){return e.normalizedValue===void 0?e.originalValue:e.normalizedValue}function aL(e){const t=typeof e=="number"?e:typeof e=="string"&&/^\s*\d+(?:\.\d+)?\s*%?\s*$/.test(e)?Number(e.replace("%","").trim()):NaN;return Number.isFinite(t)&&t>=0&&t<=100?t:void 0}function Ql(e,t){for(const n of t){const a=[...new Set(e.filter(i=>i.property===n&&i.state==="observed").map(Fb).filter(i=>typeof i=="string"&&!!i.trim()).map(i=>i.trim()))];if(a.length)return a.length===1?a[0]:void 0}}function nh(e){return e.outcome?.normalizedValue??um(e.status.normalizedValue??"unknown")}function Q0(e,t){const n=new Map;for(const a of e){const i=t(a),r=n.get(i);r?r.push(a):n.set(i,[a])}return n}function Lb(e,t=ei){const n=new Map(t.map(l=>[po(l.id),l.securityScoring])),a=[];for(const l of e){const f=new Map(l.scanRuns.filter(y=>!y.supersededByScanRunId).map(y=>[y.id,y])),T=Q0(l.environmentObservations??[],y=>y.importFileId),p=Q0(l.findingOccurrences,y=>y.importFileId),m=Q0(l.diagnostics,y=>y.importFileId),g=l.assessment.scoringPolicy??T1(),S=Mb(g),x=S?g:T1();for(const y of l.importFiles){const w=f.get(y.scanRunId);if(!w)continue;const C=po(y.detectedTool.id==="unknown"?w.tool.id:y.detectedTool.id),k=n.get(C),E=k?.native.kind==="mapped"?k.native:void 0,O=(T.get(y.id)??[]).filter(Ne=>Ne.scanRunId===w.id&&po(Ne.tool.id)===C),N=O.map(nL),B=(p.get(y.id)??[]).filter(Ne=>Ne.scanRunId===w.id),A=[],z=N.filter(Ne=>E?.properties.includes(Ne.property)),P=z.map(Ne=>Ne.state==="observed"?aL(Fb(Ne)):void 0),K=[...new Set(P)],I=N.some(Ne=>E?.incompatibleProperties?.includes(Ne.property)),L=K.length===1&&!I?K[0]:void 0;I&&A.push("Native report has multiple assessment scopes"),z.length&&L===void 0&&A.push("Native score unavailable or conflicting");let le=0,ue=0,X=0;const F=[];for(const Ne of B){const Ve=nh(Ne);Ve!=="not_applicable"&&X++,Ve==="pass"?le++:Ve!=="execution_error"&&Ve!=="not_run"&&Ve!=="not_applicable"&&wb(!!Ne.isIoe,Ve)&&(ue++,F.push(Ne.id))}const re=le+ue,me=k?.resultPopulation??"unknown",te=re>0&&(me==="complete"||me==="unknown"&&le>0),Ce=E?.direction==="lower-is-better",ee=L!==void 0?Ce?"inverted-native":"native":te?"pass-rate":"unavailable";let M=L!==void 0?Ce?100-L:L:te?100*le/re:void 0;S||(M=void 0,A.push("Unsupported scoring policy")),M===void 0&&A.push("Evidence present, not scoreable"),re<X&&A.push("Incomplete assessment"),me==="unknown"&&ee==="pass-rate"&&A.push("Result population not verified"),(m.get(y.id)??[]).some(Ne=>/count-mismatch|coverage-mismatch|summary-mismatch|duplicate.*id|repeated.*id/.test(Ne.code))&&A.push("Source integrity diagnostic");const Y=Ql(N,k?.targets??[]),Z=k?.benchmark?Ql(N,k.benchmark):"default",J=Ql(N,["report.generated_at"]),he=J&&/T\d{2}:\d{2}:\d{2}/.test(J)&&Number.isFinite(Date.parse(J))?J:void 0,ge=Y&&Z?JSON.stringify([C,Y.toLowerCase(),Z]):void 0;(!ge||!he)&&A.push("Scan identity or time not verified");const de=y.processedWith,fe=Ql(N,["report.engine_version"])??y.detectedTool.version??w.tool.version;fe||A.push("Scanner version unavailable");const ye=JSON.stringify([fe??null,de.profileId,de.profileVersion,de.mappingVersion,de.normalizationVersion??null,k?.version??null]),qe=B.length&&B.every(Ne=>Ne.sourceIdentity.canonicalRuleId??Ne.sourceIdentity.originalRuleId)?JSON.stringify(B.map(Ne=>JSON.stringify([Ne.sourceIdentity.canonicalRuleId??Ne.sourceIdentity.originalRuleId,Ne.affectedAsset?.normalizedValue??null,nh(Ne)])).sort()):void 0,ae=qe?JSON.stringify(B.map(Ne=>{const Ve=nh(Ne);return JSON.stringify([Ne.sourceIdentity.canonicalRuleId??Ne.sourceIdentity.originalRuleId,Ve==="pass"||Ve==="fail"||Ve==="warning"?"evaluated":Ve])}).sort()):void 0;a.push({id:y.id,assessmentId:l.assessment.id,toolId:C,toolName:y.detectedTool.name,runIds:[w.id],importFileIds:[y.id],occurrenceIds:B.map(Ne=>Ne.id),resultSignature:qe,evaluationScopeKey:ae,contentSha256:y.sha256&&/^[a-f0-9]{64}$/i.test(y.sha256)?y.sha256.toLowerCase():void 0,comparisonKey:ge,observedAt:he,processingKey:ye,policy:x,score:M,nativeValue:L,nativeProperty:O.find(Ne=>Ne.id===z[0]?.id)?.property,method:ee,passed:le,deviations:ue,assessed:re,eligible:X,openOccurrenceIds:F,issues:A})}}const i=[...Q0(a,l=>l.runIds.length===1?JSON.stringify([l.assessmentId,l.toolId,l.runIds[0],l.processingKey]):JSON.stringify(["file",l.id])).values()].flatMap(l=>{const f=l.filter(w=>w.nativeValue!==void 0&&w.assessed===0),T=l.filter(w=>w.assessed>0),p=new Set(T.map(w=>w.resultSignature).filter(w=>!!w)),m=new Set(T.map(w=>JSON.stringify([w.passed,w.deviations,w.eligible]))),g=T.length===1||T.every(w=>w.resultSignature!==void 0)&&p.size===1&&m.size===1;if(f.length!==1||!T.length||!g)return l;const S=f[0],x=[...T].sort((w,C)=>C.eligible-w.eligible||w.id.localeCompare(C.id))[0],y=!!(S.comparisonKey&&S.observedAt);return[{...S,importFileIds:[...new Set(l.flatMap(w=>w.importFileIds))],occurrenceIds:x.occurrenceIds,resultSignature:x.resultSignature,evaluationScopeKey:x.evaluationScopeKey,contentSha256:void 0,passed:x.passed,deviations:x.deviations,assessed:x.assessed,eligible:x.eligible,openOccurrenceIds:x.openOccurrenceIds,issues:[...new Set(l.flatMap(w=>w.issues).filter(w=>!y||w!=="Scan identity or time not verified"))]}]}),c=[...Q0(i,l=>l.comparisonKey&&l.observedAt?JSON.stringify([l.assessmentId,l.comparisonKey,l.observedAt,l.processingKey]):l.contentSha256?JSON.stringify([l.assessmentId,l.toolId,"hash",l.contentSha256,l.processingKey]):JSON.stringify(["file",l.id])).values()].map(l=>{const T=[...l].sort((y,w)=>+(w.nativeValue!==void 0)-+(y.nativeValue!==void 0)||w.assessed-y.assessed||y.id.localeCompare(w.id))[0],p=new Set(l.flatMap(y=>y.nativeValue===void 0?[]:[y.nativeValue])),m=new Set(l.filter(y=>y.assessed>0).map(y=>JSON.stringify([y.passed,y.deviations,y.eligible]))),g=new Set(l.flatMap(y=>y.resultSignature?[y.resultSignature]:[])),S=p.size>1||m.size>1||g.size>1,x=[...l].sort((y,w)=>w.eligible-y.eligible)[0];return{...T,passed:x.passed,deviations:x.deviations,assessed:x.assessed,eligible:x.eligible,evaluationScopeKey:x.evaluationScopeKey,runIds:[...new Set(l.flatMap(y=>y.runIds))],importFileIds:l.flatMap(y=>y.importFileIds),occurrenceIds:l.flatMap(y=>y.occurrenceIds),openOccurrenceIds:x.openOccurrenceIds,score:S?void 0:T.score,issues:[...new Set([...l.flatMap(y=>y.issues),...S?["Conflicting representations of the same scan"]:[]])]}});return[...Q0(c,l=>l.comparisonKey&&l.observedAt?JSON.stringify([l.assessmentId,l.comparisonKey]):JSON.stringify(["file",l.id])).values()].flatMap(l=>{const f=[...l].sort((p,m)=>Date.parse(m.observedAt??"")-Date.parse(p.observedAt??"")||p.id.localeCompare(m.id)),T=f[0];return f.filter(p=>!T.observedAt||!p.observedAt||Date.parse(p.observedAt)===Date.parse(T.observedAt))})}function xu(e){return e===null?"":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):JSON.stringify(e)}function hd(e){return typeof e.value=="object"&&e.value!==null&&typeof e.rawValue=="string"?e.rawValue:xu(e.value)}const Pb="Verwandte Daten";function _b(e){if(typeof e!="object"||e===null||Array.isArray(e))return[];const t=e.sections;if(!Array.isArray(t))return[];const n=[];for(const a of t){if(typeof a!="object"||a===null||Array.isArray(a))continue;const i=a;typeof i.sectionId!="string"||!Array.isArray(i.headers)||!Array.isArray(i.rows)||n.push({sectionId:i.sectionId,sectionLabel:typeof i.sectionLabel=="string"?i.sectionLabel:i.sectionId,prose:typeof i.prose=="string"?i.prose:"",headers:i.headers.map(xu),rows:i.rows.map(r=>Array.isArray(r)?r.map(xu):[xu(r)])})}return n}function qb(e){return"pingcastle-section-"+e}function Bb(e,t){return e+"::"+t}function iL(e,t){return _b(e).map(n=>Bb(t,n.sectionId))}function sL(e,t){return e.map(n=>{if(n.label!==Pb)return n;const a=iL(n.value,t);return a.length?{...n,value:a.join(", ")}:n})}const rL=/^(severity|criticality|priority)$/i;function oL(e,t){const n=t.severity?.normalizedValue;return!n||n==="unknown"||e.some(a=>rL.test(a.label.trim())&&hd(a))?e:[...e,{key:"derived-severity",label:"Severity",value:n,path:"derived/severity"}]}function cL(e){return new Map(e.map(t=>[t.id,oL(sL(t.originalFields,t.importFileId),t)]))}function Tm(e,t){return t.get(e.id)??e.originalFields}function ah(e,t){const n=new Map;for(const a of e)for(const i of Tm(a,t)){const r=i.columnIndex??Number.MAX_SAFE_INTEGER;n.set(i.label,Math.min(n.get(i.label)??r,r))}return[...n.entries()].sort((a,i)=>a[1]-i[1]||a[0].localeCompare(i[0])).map(([a])=>a)}function r3(e,t,n){const a=[...e].sort((i,r)=>(i.sourcePosition.rowIndex??0)-(r.sourcePosition.rowIndex??0));return[t,...a.map(i=>{const r=new Map(Tm(i,n).map(c=>[c.label,hd(c)]));return t.map(c=>r.get(c)??"")})]}function o3(e){return[...e].sort((t,n)=>(t.sourcePosition.rowIndex??0)-(n.sourcePosition.rowIndex??0))}function ih(e,t){return{...e,analysis:{...e.analysis,records:e.analysis.records.map((n,a)=>{const i=t[a];return i?{...n,findingOccurrenceId:i.id,findingDefinitionId:i.definitionId,scanRunId:i.scanRunId,importFileId:i.importFileId}:n})}}}function lL(e){const t=new Map;for(const i of e)for(const r of i.fields){const c=r.columnIndex??Number.MAX_SAFE_INTEGER;t.set(r.label,Math.min(t.get(r.label)??c,c))}const n=[...t.entries()].sort((i,r)=>i[1]-r[1]||i[0].localeCompare(r[0])).map(([i])=>i),a=[...e].sort((i,r)=>i.index-r.index);return{rows:[n,...a.map(i=>{const r=new Map(i.fields.map(c=>[c.label,hd(c)]));return n.map(c=>r.get(c)??"")})],highlightedRows:[!1,...a.map(i=>i.highlighted??!1)]}}function uL(e){const t=new Map;for(const n of e)if(n.sourceIdentity.tool.id==="pingcastle"){for(const a of n.originalFields)if(a.label===Pb)for(const i of _b(a.value)){const r=Bb(n.importFileId,i.sectionId);t.has(r)||t.set(r,i)}}return[...t.entries()].flatMap(([n,a])=>{const i=a.rows.length?[a.headers,...a.rows]:a.prose?[["Inhalt"],[a.prose]]:[];if(!i.length)return[];const r=a.sectionLabel.split("→").at(-1)?.replace(/\s*·\s*Tabelle\s+\d+$/i,"").trim()??"";let c=a.rows.length?a.prose.trim():"";return r&&c.toLocaleLowerCase("en-US").startsWith(r.toLocaleLowerCase("en-US"))&&(c=c.slice(r.length).trim()),c=c.replace(/(?:^|\s+)Close\s*$/i,"").trim(),[es("PingCastle · "+a.sectionLabel,i,Ns(i),a.sectionLabel,{id:qb(n),isProjectSheet:!1,...c?{resultPreamble:c}:{}})]})}function dL(e){const t=new Map;for(const n of e)for(const a of ho(n.importFiles))a.tool.id!=="generic"&&a.tool.id!=="unknown"&&t.set(a.tool.id,a.tool);return t.size===1?[...t.values()][0]:t.size>1?{id:"multiple",name:"Multiple Tools"}:{id:"generic",name:"Tabular Data"}}function TL(e){if(!e.length)return null;const t=e[0].project,n=e.flatMap(A=>A.scanRuns),a=e.flatMap(A=>A.importFiles),i=e.flatMap(A=>A.sourceTables),r=e.flatMap(A=>A.findingOccurrences);if(!n.length||!r.length&&!e.some(A=>A.environmentObservations?.length))return null;const c=new Map(a.map(A=>[A.id,A])),l=new Map(n.map(A=>[A.id,A])),f=new Map(i.map(A=>[A.id,A])),T=new Map,p=new Map;for(const A of r)if(A.sourceTableId!==void 0){const z=T.get(A.sourceTableId);z?z.push(A):T.set(A.sourceTableId,[A])}else{const z=p.get(A.importFileId);z?z.push(A):p.set(A.importFileId,[A])}const m=cL(r),g=[],S=[];for(const A of i){const z=T.get(A.id)??[];if(!z.length&&!A.rows?.length)continue;const P=z.length?{rows:r3(z,ah(z,m),m),highlightedRows:void 0}:lL(A.rows??[]),{rows:K,highlightedRows:I}=P,L=c.get(A.importFileId),le=L?l.get(L.scanRunId):void 0,ue=L?.fileName??t.name,X=le?.importedAt.slice(0,10)??"",F=[le?.tool.name,X,A.name].filter(Boolean).join(" · "),re=ih(es(F,K,Ns(K),ue,{id:Ou(ue,F,A.id),sourceFile:ue,sourceSheet:A.name,sourceTableIndex:A.index,toolId:le?.tool.id},I),o3(z));(z.length?g:S).push(re)}for(const A of a){const z=p.get(A.id)??[];if(!z.length)continue;const P=ah(z,m),K=r3(z,P,m),I=l.get(A.scanRunId),L=I?.importedAt.slice(0,10)??"",le=[I?.tool.name,L,A.format].filter(Boolean).join(" · ");g.push(ih(es(le,K,Ns(K),A.fileName,{id:Ou(A.fileName,le,A.id),sourceFile:A.fileName,sourceSheet:A.format,toolId:I?.tool.id}),o3(z)))}const x=ah(r,m),w=[[...["Source: File","Source: Sheet","Source: Scan"],...x]];for(const A of r){const z=c.get(A.importFileId),P=A.sourceTableId!==void 0?f.get(A.sourceTableId):void 0,K=l.get(A.scanRunId),I=new Map(Tm(A,m).map(L=>[L.label,hd(L)]));w.push([z?.fileName??"",P?.name??"",K?K.tool.name+" · "+K.importedAt:"",...x.map(L=>I.get(L)??"")])}const C=dL(e),k=t.name+" · All Records",E=ih(es(k,w,Ns(w),t.name,{isProjectSheet:!0}),r);r.length||(E.analysis.records=[]);const O=Math.max(...a.map(A=>Date.parse(A.lastModifiedAt??A.importedAt)),0),N=uL(r),B=new Set(a.map(A=>A.processedWith.profileVersion).filter(Boolean));return{fileName:t.name+" · All Scans",fileSize:a.reduce((A,z)=>A+z.sizeBytes,0),lastModified:O,format:"Project · "+C.name,rawText:"",sheets:[E,...g,...S,...N],profileId:C.id==="unknown"||C.id==="multiple"?"generic":C.id,profileVersion:B.size===1?[...B][0]:B.size>1?"gemischt":void 0,scanTool:C.name,securityScoring:{policy:e[0].assessment.scoringPolicy??T1(),scans:Lb(e)}}}function rp(e){return Array.isArray(e)?e.map(rp):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>[t,rp(n)])):e}function o0(e){return JSON.stringify(rp(e))}function Ub(e){return[...new Set(e)].sort((t,n)=>t.localeCompare(n))}function fL(e){if(e){if(e.kind==="none")return{kind:"none"};if(e.kind==="string")return{kind:"text",value:e.value};if(e.kind==="multi-string")return{kind:"string-set",values:Ub(e.values)};if(e.kind==="binary")return{kind:"binary",hexadecimal:e.hexadecimal.toLocaleLowerCase("en-US")};if(e.kind==="uint32")return{kind:"integer",value:String(e.value)};if(e.kind==="uint64"&&/^\d+$/.test(e.value))return{kind:"integer",value:BigInt(e.value).toString()}}}function Xu(e){if(e){if(e.kind==="registry-policy")return e.operation==="delete-value"?{kind:"registry-state",state:"absent"}:e.operation==="delete-all-values"?{kind:"registry-state",state:"key-empty"}:e.operation==="create-key"?{kind:"registry-state",state:"key-present"}:e.operation!=="set-value"?void 0:fL(e.data);if(e.kind==="registry")return{kind:"text",value:`${e.typeCode},${e.rawData}`};if(e.kind==="scalar")return{kind:"text",value:e.raw};if(e.kind==="principal-set")return{kind:"string-set",values:Ub(e.principals)};if(e.kind==="audit-flags")return{kind:"audit-flags",success:e.success,failure:e.failure}}}function eu(e){if(!(e.kind!=="integer"||!/^-?\d+$/.test(e.value)))return BigInt(e.value)}function c3(e,t,n){return e===t?"match":e>t===n?"stronger":"weaker"}function l3(e){return e.kind==="string-set"?new Set(e.values):void 0}function u3(e,t){return[...t].every(n=>e.has(n))}function hL(e,t,n){const a=u3(e,t),i=u3(t,e);return a&&i?"match":n==="exact"?"different":n==="superset"?a?"stronger":i?"weaker":"different":i?"stronger":a?"weaker":"different"}function pL(e,t,n){if(e.success===t.success&&e.failure===t.failure)return"match";if(n==="exact")return"different";const a=(!t.success||e.success)&&(!t.failure||e.failure),i=(!e.success||t.success)&&(!e.failure||t.failure);return a?"stronger":i?"weaker":"different"}function mL(e,t,n){const a=Xu(e),i=Xu(t);let r="incomparable";const c=[];if(!a||!i)c.push("policy-comparator-value-unsupported");else if(n.kind==="equality")r=o0(a)===o0(i)?"match":"different";else if(n.kind==="minimum"||n.kind==="maximum"){const l=eu(a),f=eu(i);l===void 0||f===void 0?c.push("policy-comparator-integer-required"):r=c3(l,f,n.kind==="minimum")}else if(n.kind==="enum"){const l=a.kind==="text"?a.value:void 0,f=i.kind==="text"?i.value:void 0,T=l===void 0?-1:n.orderedValues.indexOf(l),p=f===void 0?-1:n.orderedValues.indexOf(f);T<0||p<0||new Set(n.orderedValues).size!==n.orderedValues.length?c.push("policy-comparator-enum-value-unsupported"):r=c3(BigInt(T),BigInt(p),n.direction==="higher-is-stronger")}else if(n.kind==="bitmask"){const l=eu(a),f=eu(i);l===void 0||f===void 0||l<0n||f<0n?c.push("policy-comparator-bitmask-required"):l===f?r="match":n.mode==="exact"?r="different":(l&f)===f?r="stronger":(l&f)===l?r="weaker":r="different"}else if(n.kind==="set"){const l=l3(a),f=l3(i);!l||!f?c.push("policy-comparator-set-required"):r=hL(l,f,n.mode)}else a.kind!=="audit-flags"||i.kind!=="audit-flags"?c.push("policy-comparator-audit-flags-required"):r=pL(a,i,n.mode);return{version:1,comparator:n,relation:r,actual:a,baseline:i,diagnosticCodes:c}}const Ku={Fail:6,"Review required":5,Pass:4,"Not configured":3,"No baseline rule":2,"Not comparable":1,Conflicts:0,Duplicates:0};function gL(e){const t={Fail:0,Pass:0,Conflicts:0,Duplicates:0,"Not configured":0,"Review required":0,"No baseline rule":0,"Not comparable":0},n=new Set,a=new Set,i=new Map;for(const r of e){const c=r.settingKey??JSON.stringify([r.sources[0]?.projectId,r.sources[0]?.assessmentId,r.scope,r.identity]);if((r.conflict||r.status==="Conflicts")&&n.add(c),(r.duplicate||r.status==="Duplicates")&&a.add(c),r.status==="Conflicts"||r.status==="Duplicates")continue;const l=i.get(c);(!l||Ku[r.status]>Ku[l])&&i.set(c,r.status)}return i.forEach(r=>{t[r]+=1}),t.Conflicts=n.size,t.Duplicates=a.size,t}function vL(e){const t=new Set,n=new Set;for(const a of e.filter(i=>i.status==="Fail"))for(const i of a.sources){t.add(JSON.stringify([i.projectId,i.assessmentId,a.scope,a.identity]));const r=N1(i);r&&n.add(r)}return{settings:t.size,backups:n.size}}function N1(e){return e.policyBackupInstanceId?JSON.stringify([e.projectId,e.assessmentId,e.policyBackupInstanceId]):void 0}const d3=e=>e.replace(/\//g,"\\").toLowerCase();function f1(e){const t=Xu(e);if(t)return o0({value:e.kind==="registry-policy"&&e.data?.kind==="multi-string"?e.data:t,...e.kind==="registry-policy"||e.kind==="registry"?{type:e.typeCode}:{}})}function xL(e){if(e.policyScope!=="computer"&&e.policyScope!=="user"||e.policyDeliveryMechanism==="group-policy-preference")return;const t=e.policyValues;if(t?.length){if(e.policyDeliveryMechanism==="registry-policy"){const n=t.filter(i=>i.kind==="registry-policy");if(n.length!==t.length||n.some(i=>i.operation!=="set-value"))return;const a=new Set(n.map(i=>JSON.stringify([d3(i.key),d3(i.valueName??"")])));return a.size===1?`${e.policyScope}:registry:${[...a][0]}`:void 0}return e.policyIdentityStatus==="resolved"&&e.policyIdentityKey?`${e.policyScope}:${e.policyIdentityKey}`:void 0}}function op(e){return JSON.stringify([e.projectId,e.assessmentId,e.policyScope,e.policyIdentityKey])}function yL(e){const t=new Map;for(const n of e){if(n.policyIdentityStatus==="resolved"||!n.policyIdentityKey||!n.policyScope)continue;const a=op(n);t.set(a,[...t.get(a)??[],n])}return[...t].map(([n,a])=>({id:`not-comparable:${n}`,status:"Not comparable",title:a[0].title,scope:a[0].policyScope,identity:a[0].policyIdentityKey,importedAt:_c(a),sources:a,settingKey:n,conflict:!1,duplicate:!1}))}function SL(e){const t=e.identity.target;return t.valueName||("section"in t?`${t.section} · ${t.key}`:t.key)}function _c(e){return e.reduce((t,n)=>n.importedAt>t?n.importedAt:t,"")}function bL(e,t){const n=new Set((e.baselineVariantAssessment?.actualValues??[]).map(f1).filter(r=>r!==void 0));if(n.size<2)return!1;const a=new Map;for(const r of t){const c=N1(r);if(!c)continue;const l=a.get(c)??new Set;(!r.policyValues?.length||!["configured","instruction"].includes(r.policyState??""))&&l.add(void 0);for(const f of r.policyValues??[])l.add(f1(f));a.set(c,l)}const i=new Set;for(const r of a.values()){if(r.size!==1||r.has(void 0))continue;const c=r.values().next().value;n.has(c)&&i.add(c)}return i.size>1}function wL(e,t,n){if(!e.baselineVariantAssessment)return{conflict:n?.status==="Conflicts",duplicate:n?.status==="Duplicates"};const a=t.length>0&&t.every(c=>c.policyScope===e.identity.scope&&c.policyIdentityKey===e.identity.id),i=new Set(t.flatMap(c=>{const l=N1(c);return l?[l]:[]}));return{conflict:e.customerState==="conflicted"||e.customerState==="indeterminate"&&a&&i.size>1&&bL(e,t),duplicate:e.customerState==="configured"&&a&&i.size>1&&t.every(c=>!!c.policyBackupInstanceId)}}function zb(e,t){const n=[...new Map(e.filter(x=>x.sourceKind==="policy-observation").map(x=>[x.sourceResultId,x])).values()],a=new Map(n.map(x=>[x.sourceResultId,x])),i=new Map;for(const x of n){const y=xL(x);if(!y||x.policyValues?.some(k=>!f1(k)))continue;const w=JSON.stringify([x.projectId,x.assessmentId,y]),C=i.get(w)??[];C.push(x),i.set(w,C)}const r=[],c=[];for(const[x,y]of i){const w=new Set(y.flatMap(k=>k.policyValues.map(f1)));if(w.size<2&&y.length<2)continue;const C=w.size>1?"Conflicts":"Duplicates";c.push({key:x,group:y,status:C})}const l=new Set,f=new Set;for(const x of t){const y=[...new Set(x.results.flatMap(C=>C.observationIds))].flatMap(C=>a.has(C)?[a.get(C)]:[]),w=_c(y);for(const C of x.results){const k=C.id??JSON.stringify([C.baselineAnalysisId,C.baselineLabel,C.identity?.id,C.observationIds]);if(f.has(k)||(f.add(k),C.observationIds.some(I=>!a.has(I))))continue;const E=C.observationIds.map(I=>a.get(I)),O=new Set(C.observationIds),N=c.filter(I=>I.group.some(L=>O.has(L.sourceResultId))),B=N[0],A=C.diagnosticCodes.includes("policy-evaluation-baseline-consensus-conflict"),z=C.comparator.baseline,P=z!==void 0&&z.kind!=="none"&&!(z.kind==="text"&&!z.value.trim());let K;C.baselineVariantAssessment?K=Jl(C)==="not-configured"?"Not configured":Jl(C)==="misconfigured"?"Fail":C.baselineVariantAssessment.decision==="all-pass"&&C.classification==="configured_match"?"Pass":"Review required":A?K="Conflicts":C.baselineState==="explicit-recommendation"&&P&&C.customerState==="configured"&&C.comparator.actual!==void 0&&C.classification==="configured_match"&&C.comparator.relation==="match"?K="Pass":Jl(C)==="misconfigured"?K="Fail":Jl(C)==="not-configured"?K="Not configured":K="Review required",r.push({id:k,status:K,title:SL(C),scope:C.identity.scope,identity:C.identity.id,importedAt:_c(E)||w,evaluatedAt:x.run.completedAt,sources:E,comparison:C,settingKey:JSON.stringify([x.run.projectId,x.run.aggregationRunId,C.identity.scope,C.identity.id]),...wL(C,E,B)});for(const I of N)l.add(I.key)}}const T=new Set(t.flatMap(x=>x.results.map(y=>y.identity.id))),p=new Set(t.flatMap(x=>x.results.flatMap(y=>y.observationIds))),m=new Map;for(const x of n){if(x.policyIdentityStatus!=="resolved"||!x.policyIdentityKey||T.has(x.policyIdentityKey)||p.has(x.sourceResultId))continue;const y=op(x);m.set(y,[...m.get(y)??[],x])}const g=new Set([...m.values()].flat().map(x=>x.sourceResultId)),S=new Map;for(const{key:x,group:y,status:w}of c){if(l.has(x))continue;const C=new Set(y.map(E=>g.has(E.sourceResultId)?op(E):void 0)),k=C.size===1?[...C][0]:void 0;if(k&&m.has(k)){S.set(k,w);continue}r.push({id:`${w}:${x}`,status:w,title:y[0].title,scope:y[0].policyScope,identity:y[0].policyIdentityKey??x,importedAt:_c(y),sources:y,settingKey:x,conflict:w==="Conflicts",duplicate:w==="Duplicates"})}for(const[x,y]of m){const w=S.get(x);r.push({id:`no-baseline-rule:${x}`,status:"No baseline rule",title:y[0].title,scope:y[0].policyScope,identity:y[0].policyIdentityKey,importedAt:_c(y),sources:y,settingKey:x,conflict:w==="Conflicts",duplicate:w==="Duplicates"})}return r.push(...yL(n)),r}const T3=new Set(["set-value","delete-value","delete-all-values","create-key"]);function CL(e,t,n){let a=mL(e,t,n);return e.kind==="registry-policy"&&!T3.has(e.operation)?a={...a,relation:"incomparable",diagnosticCodes:["policy-comparator-customer-value-ambiguous"]}:t.kind==="registry-policy"&&!T3.has(t.operation)?a={...a,relation:"incomparable",diagnosticCodes:["policy-comparator-baseline-unavailable"]}:e.kind==="registry-policy"&&t.kind==="registry-policy"&&a.relation!=="incomparable"&&e.operation==="set-value"&&t.operation==="set-value"&&(e.typeCode!==t.typeCode||e.data?.kind==="multi-string"&&o0(e.data)!==o0(t.data))&&(a={...a,relation:"different"}),a}function fm(e){const t=e.variants.length,n=` (${t} assessed baseline variant${t===1?"":"s"}; backup configuration only)`;return e.decision==="all-pass"?"Matches every assessed baseline variant"+n:e.decision==="all-fail"?"Differs from every assessed baseline variant"+n:e.decision==="mixed"?"Review required: baseline variant results differ"+n:"Review required: comparison evidence or applicability is incomplete"+n}var Br={},sh={},f3;function EL(){return f3||(f3=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CHAR=`
|
||
\r --<2D>𐀀-`,e.S=` \r
|
||
`,e.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-<2D>𐀀-",e.NAME_CHAR="-"+e.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",e.CHAR_RE=new RegExp("^["+e.CHAR+"]$","u"),e.S_RE=new RegExp("^["+e.S+"]+$","u"),e.NAME_START_CHAR_RE=new RegExp("^["+e.NAME_START_CHAR+"]$","u"),e.NAME_CHAR_RE=new RegExp("^["+e.NAME_CHAR+"]$","u"),e.NAME_RE=new RegExp("^["+e.NAME_START_CHAR+"]["+e.NAME_CHAR+"]*$","u"),e.NMTOKEN_RE=new RegExp("^["+e.NAME_CHAR+"]+$","u");var t=9,n=10,a=13,i=32;e.S_LIST=[i,n,a,t];function r(T){return T>=i&&T<=55295||T===n||T===a||T===t||T>=57344&&T<=65533||T>=65536&&T<=1114111}e.isChar=r;function c(T){return T===i||T===n||T===a||T===t}e.isS=c;function l(T){return T>=65&&T<=90||T>=97&&T<=122||T===58||T===95||T===8204||T===8205||T>=192&&T<=214||T>=216&&T<=246||T>=248&&T<=767||T>=880&&T<=893||T>=895&&T<=8191||T>=8304&&T<=8591||T>=11264&&T<=12271||T>=12289&&T<=55295||T>=63744&&T<=64975||T>=65008&&T<=65533||T>=65536&&T<=983039}e.isNameStartChar=l;function f(T){return l(T)||T>=48&&T<=57||T===45||T===46||T===183||T>=768&&T<=879||T>=8255&&T<=8256}e.isNameChar=f})(sh)),sh}var rh={},h3;function kL(){return h3||(h3=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CHAR="--<2D>𐀀-",e.RESTRICTED_CHAR="-\b\v\f---",e.S=` \r
|
||
`,e.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-<2D>𐀀-",e.NAME_CHAR="-"+e.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",e.CHAR_RE=new RegExp("^["+e.CHAR+"]$","u"),e.RESTRICTED_CHAR_RE=new RegExp("^["+e.RESTRICTED_CHAR+"]$","u"),e.S_RE=new RegExp("^["+e.S+"]+$","u"),e.NAME_START_CHAR_RE=new RegExp("^["+e.NAME_START_CHAR+"]$","u"),e.NAME_CHAR_RE=new RegExp("^["+e.NAME_CHAR+"]$","u"),e.NAME_RE=new RegExp("^["+e.NAME_START_CHAR+"]["+e.NAME_CHAR+"]*$","u"),e.NMTOKEN_RE=new RegExp("^["+e.NAME_CHAR+"]+$","u");var t=9,n=10,a=13,i=32;e.S_LIST=[i,n,a,t];function r(m){return m>=1&&m<=55295||m>=57344&&m<=65533||m>=65536&&m<=1114111}e.isChar=r;function c(m){return m>=1&&m<=8||m===11||m===12||m>=14&&m<=31||m>=127&&m<=132||m>=134&&m<=159}e.isRestrictedChar=c;function l(m){return m===9||m===10||m===13||m>31&&m<127||m===133||m>159&&m<=55295||m>=57344&&m<=65533||m>=65536&&m<=1114111}e.isCharAndNotRestricted=l;function f(m){return m===i||m===n||m===a||m===t}e.isS=f;function T(m){return m>=65&&m<=90||m>=97&&m<=122||m===58||m===95||m===8204||m===8205||m>=192&&m<=214||m>=216&&m<=246||m>=248&&m<=767||m>=880&&m<=893||m>=895&&m<=8191||m>=8304&&m<=8591||m>=11264&&m<=12271||m>=12289&&m<=55295||m>=63744&&m<=64975||m>=65008&&m<=65533||m>=65536&&m<=983039}e.isNameStartChar=T;function p(m){return T(m)||m>=48&&m<=57||m===45||m===46||m===183||m>=768&&m<=879||m>=8255&&m<=8256}e.isNameChar=p})(rh)),rh}var oh={},p3;function AL(){return p3||(p3=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-<2D>𐀀-",e.NC_NAME_CHAR="-"+e.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",e.NC_NAME_START_CHAR_RE=new RegExp("^["+e.NC_NAME_START_CHAR+"]$","u"),e.NC_NAME_CHAR_RE=new RegExp("^["+e.NC_NAME_CHAR+"]$","u"),e.NC_NAME_RE=new RegExp("^["+e.NC_NAME_START_CHAR+"]["+e.NC_NAME_CHAR+"]*$","u");function t(a){return a>=65&&a<=90||a===95||a>=97&&a<=122||a>=192&&a<=214||a>=216&&a<=246||a>=248&&a<=767||a>=880&&a<=893||a>=895&&a<=8191||a>=8204&&a<=8205||a>=8304&&a<=8591||a>=11264&&a<=12271||a>=12289&&a<=55295||a>=63744&&a<=64975||a>=65008&&a<=65533||a>=65536&&a<=983039}e.isNCNameStartChar=t;function n(a){return t(a)||a===45||a===46||a>=48&&a<=57||a===183||a>=768&&a<=879||a>=8255&&a<=8256}e.isNCNameChar=n})(oh)),oh}var m3;function RL(){if(m3)return Br;m3=1,Object.defineProperty(Br,"__esModule",{value:!0}),Br.SaxesParser=Br.EVENTS=void 0;const e=EL(),t=kL(),n=AL();var a=e.isS,i=e.isChar,r=e.isNameStartChar,c=e.isNameChar,l=e.S_LIST,f=e.NAME_RE,T=t.isChar,p=n.isNCNameStartChar,m=n.isNCNameChar,g=n.NC_NAME_RE;const S="http://www.w3.org/XML/1998/namespace",x="http://www.w3.org/2000/xmlns/",y={__proto__:null,xml:S,xmlns:x},w={__proto__:null,amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},C=-1,k=-2,E=0,O=1,N=2,B=3,A=4,z=5,P=6,K=7,I=8,L=9,le=10,ue=11,X=12,F=13,re=14,me=15,te=16,Ce=17,ee=18,M=19,Y=20,Z=21,J=22,he=23,ge=24,de=25,fe=26,ye=27,qe=28,ae=29,Ne=30,Ve=31,tt=32,We=33,Le=34,_e=35,Xe=36,pt=37,Pt=38,Kt=39,Dt=40,dt=41,jt=42,Gt=43,ln=44,Et=9,_t=10,pe=13,He=32,Je=33,rt=34,Ye=38,mt=39,Qe=45,qt=47,ot=59,Pe=60,Me=61,Ke=62,st=63,Vt=91,Xt=93,Fn=133,Sa=8232,Zn=W=>W===rt||W===mt,ba=[rt,mt],Wn=[...ba,Vt,Ke],Ln=[...ba,Pe,Xt],Si=[Me,st,...l],wa=[...l,Ke,Ye,Pe];function ti(W,D,j){switch(D){case"xml":j!==S&&W.fail(`xml prefix must be bound to ${S}.`);break;case"xmlns":j!==x&&W.fail(`xmlns prefix must be bound to ${x}.`);break}switch(j){case x:W.fail(D===""?`the default namespace may not be set to ${j}.`:`may not assign a prefix (even "xmlns") to the URI ${x}.`);break;case S:switch(D){case"xml":break;case"":W.fail(`the default namespace may not be set to ${j}.`);break;default:W.fail("may not assign the xml namespace to another prefix.")}break}}function Pn(W,D){for(const j of Object.keys(D))ti(W,j,D[j])}const Vn=W=>g.test(W),q=W=>f.test(W),ne=0,V=1,G=2;Br.EVENTS=["xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready"];const Q={xmldecl:"xmldeclHandler",text:"textHandler",processinginstruction:"piHandler",doctype:"doctypeHandler",comment:"commentHandler",opentagstart:"openTagStartHandler",attribute:"attributeHandler",opentag:"openTagHandler",closetag:"closeTagHandler",cdata:"cdataHandler",error:"errorHandler",end:"endHandler",ready:"readyHandler"};class ie{constructor(D){this.opt=D??{},this.fragmentOpt=!!this.opt.fragment;const j=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=this.opt.position!==!1,this.fileName=this.opt.fileName,j){this.nameStartCheck=p,this.nameCheck=m,this.isName=Vn,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},y);const _=this.opt.additionalNamespaces;_!=null&&(Pn(this,_),Object.assign(this.ns,_))}else this.nameStartCheck=r,this.nameCheck=c,this.isName=q,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}get closed(){return this._closed}_init(){var D;this.openWakaBang="",this.text="",this.name="",this.piTarget="",this.entity="",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk="",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=ne,this.attribList=[];const{fragmentOpt:j}=this;this.state=j?F:E,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=j,this.xmlDeclPossible=!j,this.xmlDeclExpects=["version"],this.entityReturnState=void 0;let{defaultXMLVersion:_}=this.opt;if(_===void 0){if(this.opt.forceXMLVersion===!0)throw new Error("forceXMLVersion set but defaultXMLVersion is not set");_="1.0"}this.setXMLVersion(_),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(w),(D=this.readyHandler)===null||D===void 0||D.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(D,j){this[Q[D]]=j}off(D){this[Q[D]]=void 0}makeError(D){var j;let _=(j=this.fileName)!==null&&j!==void 0?j:"";return this.trackPosition&&(_.length>0&&(_+=":"),_+=`${this.line}:${this.column}`),_.length>0&&(_+=": "),new Error(_+D)}fail(D){const j=this.makeError(D),_=this.errorHandler;if(_===void 0)throw j;return _(j),this}write(D){if(this.closed)return this.fail("cannot write after close; assign an onready handler.");let j=!1;D===null?(j=!0,D=""):typeof D=="object"&&(D=D.toString()),this.carriedFromPrevious!==void 0&&(D=`${this.carriedFromPrevious}${D}`,this.carriedFromPrevious=void 0);let _=D.length;const se=D.charCodeAt(_-1);!j&&(se===pe||se>=55296&&se<=56319)&&(this.carriedFromPrevious=D[_-1],_--,D=D.slice(0,_));const{stateTable:xe}=this;for(this.chunk=D,this.i=0;this.i<_;)xe[this.state].call(this);return this.chunkPosition+=_,j?this.end():this}close(){return this.write(null)}getCode10(){const{chunk:D,i:j}=this;if(this.prevI=j,this.i=j+1,j>=D.length)return C;const _=D.charCodeAt(j);if(this.column++,_<55296){if(_>=He||_===Et)return _;switch(_){case _t:return this.line++,this.column=0,this.positionAtNewLine=this.position,_t;case pe:return D.charCodeAt(j+1)===_t&&(this.i=j+2),this.line++,this.column=0,this.positionAtNewLine=this.position,k;default:return this.fail("disallowed character."),_}}if(_>56319)return _>=57344&&_<=65533||this.fail("disallowed character."),_;const se=65536+(_-55296)*1024+(D.charCodeAt(j+1)-56320);return this.i=j+2,se>1114111&&this.fail("disallowed character."),se}getCode11(){const{chunk:D,i:j}=this;if(this.prevI=j,this.i=j+1,j>=D.length)return C;const _=D.charCodeAt(j);if(this.column++,_<55296){if(_>31&&_<127||_>159&&_!==Sa||_===Et)return _;switch(_){case _t:return this.line++,this.column=0,this.positionAtNewLine=this.position,_t;case pe:{const xe=D.charCodeAt(j+1);(xe===_t||xe===Fn)&&(this.i=j+2)}case Fn:case Sa:return this.line++,this.column=0,this.positionAtNewLine=this.position,k;default:return this.fail("disallowed character."),_}}if(_>56319)return _>=57344&&_<=65533||this.fail("disallowed character."),_;const se=65536+(_-55296)*1024+(D.charCodeAt(j+1)-56320);return this.i=j+2,se>1114111&&this.fail("disallowed character."),se}getCodeNorm(){const D=this.getCode();return D===k?_t:D}unget(){this.i=this.prevI,this.column--}captureTo(D){let{i:j}=this;const{chunk:_}=this;for(;;){const se=this.getCode(),xe=se===k,Ae=xe?_t:se;if(Ae===C||D.includes(Ae))return this.text+=_.slice(j,this.prevI),Ae;xe&&(this.text+=`${_.slice(j,this.prevI)}
|
||
`,j=this.i)}}captureToChar(D){let{i:j}=this;const{chunk:_}=this;for(;;){let se=this.getCode();switch(se){case k:this.text+=`${_.slice(j,this.prevI)}
|
||
`,j=this.i,se=_t;break;case C:return this.text+=_.slice(j),!1}if(se===D)return this.text+=_.slice(j,this.prevI),!0}}captureNameChars(){const{chunk:D,i:j}=this;for(;;){const _=this.getCode();if(_===C)return this.name+=D.slice(j),C;if(!c(_))return this.name+=D.slice(j,this.prevI),_===k?_t:_}}skipSpaces(){for(;;){const D=this.getCodeNorm();if(D===C||!a(D))return D}}setXMLVersion(D){this.currentXMLVersion=D,D==="1.0"?(this.isChar=i,this.getCode=this.getCode10):(this.isChar=T,this.getCode=this.getCode11)}sBegin(){this.chunk.charCodeAt(0)===65279&&(this.i++,this.column++),this.state=O}sBeginWhitespace(){const D=this.i,j=this.skipSpaces();switch(this.prevI!==D&&(this.xmlDeclPossible=!1),j){case Pe:if(this.state=me,this.text.length!==0)throw new Error("no-empty text at start");break;case C:break;default:this.unget(),this.state=F,this.xmlDeclPossible=!1}}sDoctype(){var D;const j=this.captureTo(Wn);switch(j){case Ke:{(D=this.doctypeHandler)===null||D===void 0||D.call(this,this.text),this.text="",this.state=F,this.doctype=!0;break}case C:break;default:this.text+=String.fromCodePoint(j),j===Vt?this.state=A:Zn(j)&&(this.state=B,this.q=j)}}sDoctypeQuote(){const D=this.q;this.captureToChar(D)&&(this.text+=String.fromCodePoint(D),this.q=null,this.state=N)}sDTD(){const D=this.captureTo(Ln);D!==C&&(this.text+=String.fromCodePoint(D),D===Xt?this.state=N:D===Pe?this.state=P:Zn(D)&&(this.state=z,this.q=D))}sDTDQuoted(){const D=this.q;this.captureToChar(D)&&(this.text+=String.fromCodePoint(D),this.state=A,this.q=null)}sDTDOpenWaka(){const D=this.getCodeNorm();switch(this.text+=String.fromCodePoint(D),D){case Je:this.state=K,this.openWakaBang="";break;case st:this.state=ue;break;default:this.state=A}}sDTDOpenWakaBang(){const D=String.fromCodePoint(this.getCodeNorm()),j=this.openWakaBang+=D;this.text+=D,j!=="-"&&(this.state=j==="--"?I:A,this.openWakaBang="")}sDTDComment(){this.captureToChar(Qe)&&(this.text+="-",this.state=L)}sDTDCommentEnding(){const D=this.getCodeNorm();this.text+=String.fromCodePoint(D),this.state=D===Qe?le:I}sDTDCommentEnded(){const D=this.getCodeNorm();this.text+=String.fromCodePoint(D),D===Ke?this.state=A:(this.fail("malformed comment."),this.state=I)}sDTDPI(){this.captureToChar(st)&&(this.text+="?",this.state=X)}sDTDPIEnding(){const D=this.getCodeNorm();this.text+=String.fromCodePoint(D),D===Ke&&(this.state=A)}sText(){this.tags.length!==0?this.handleTextInRoot():this.handleTextOutsideRoot()}sEntity(){let{i:D}=this;const{chunk:j}=this;e:for(;;)switch(this.getCode()){case k:this.entity+=`${j.slice(D,this.prevI)}
|
||
`,D=this.i;break;case ot:{const{entityReturnState:_}=this,se=this.entity+j.slice(D,this.prevI);this.state=_;let xe;se===""?(this.fail("empty entity name."),xe="&;"):(xe=this.parseEntity(se),this.entity=""),(_!==F||this.textHandler!==void 0)&&(this.text+=xe);break e}case C:this.entity+=j.slice(D);break e}}sOpenWaka(){const D=this.getCode();if(r(D))this.state=Le,this.unget(),this.xmlDeclPossible=!1;else switch(D){case qt:this.state=Gt,this.xmlDeclPossible=!1;break;case Je:this.state=te,this.openWakaBang="",this.xmlDeclPossible=!1;break;case st:this.state=he;break;default:this.fail("disallowed character in tag name"),this.state=F,this.xmlDeclPossible=!1}}sOpenWakaBang(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case"[CDATA[":!this.sawRoot&&!this.reportedTextBeforeRoot&&(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0),this.state=Y,this.openWakaBang="";break;case"--":this.state=Ce,this.openWakaBang="";break;case"DOCTYPE":this.state=N,(this.doctype||this.sawRoot)&&this.fail("inappropriately located doctype declaration."),this.openWakaBang="";break;default:this.openWakaBang.length>=7&&this.fail("incorrect syntax.")}}sComment(){this.captureToChar(Qe)&&(this.state=ee)}sCommentEnding(){var D;const j=this.getCodeNorm();j===Qe?(this.state=M,(D=this.commentHandler)===null||D===void 0||D.call(this,this.text),this.text=""):(this.text+=`-${String.fromCodePoint(j)}`,this.state=Ce)}sCommentEnded(){const D=this.getCodeNorm();D!==Ke?(this.fail("malformed comment."),this.text+=`--${String.fromCodePoint(D)}`,this.state=Ce):this.state=F}sCData(){this.captureToChar(Xt)&&(this.state=Z)}sCDataEnding(){const D=this.getCodeNorm();D===Xt?this.state=J:(this.text+=`]${String.fromCodePoint(D)}`,this.state=Y)}sCDataEnding2(){var D;const j=this.getCodeNorm();switch(j){case Ke:{(D=this.cdataHandler)===null||D===void 0||D.call(this,this.text),this.text="",this.state=F;break}case Xt:this.text+="]";break;default:this.text+=`]]${String.fromCodePoint(j)}`,this.state=Y}}sPIFirstChar(){const D=this.getCodeNorm();this.nameStartCheck(D)?(this.piTarget+=String.fromCodePoint(D),this.state=ge):D===st||a(D)?(this.fail("processing instruction without a target."),this.state=D===st?fe:de):(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(D),this.state=ge)}sPIRest(){const{chunk:D,i:j}=this;for(;;){const _=this.getCodeNorm();if(_===C){this.piTarget+=D.slice(j);return}if(!this.nameCheck(_)){this.piTarget+=D.slice(j,this.prevI);const se=_===st;se||a(_)?this.piTarget==="xml"?(this.xmlDeclPossible||this.fail("an XML declaration must be at the start of the document."),this.state=se?We:ye):this.state=se?fe:de:(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(_));break}}}sPIBody(){if(this.text.length===0){const D=this.getCodeNorm();D===st?this.state=fe:a(D)||(this.text=String.fromCodePoint(D))}else this.captureToChar(st)&&(this.state=fe)}sPIEnding(){var D;const j=this.getCodeNorm();if(j===Ke){const{piTarget:_}=this;_.toLowerCase()==="xml"&&this.fail("the XML declaration must appear at the start of the document."),(D=this.piHandler)===null||D===void 0||D.call(this,{target:_,body:this.text}),this.piTarget=this.text="",this.state=F}else j===st?this.text+="?":(this.text+=`?${String.fromCodePoint(j)}`,this.state=de);this.xmlDeclPossible=!1}sXMLDeclNameStart(){const D=this.skipSpaces();if(D===st){this.state=We;return}D!==C&&(this.state=qe,this.name=String.fromCodePoint(D))}sXMLDeclName(){const D=this.captureTo(Si);if(D===st){this.state=We,this.name+=this.text,this.text="",this.fail("XML declaration is incomplete.");return}if(a(D)||D===Me){if(this.name+=this.text,this.text="",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail("did not expect any more name/value pairs.");break;case 1:this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);break;default:this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`)}this.state=D===Me?Ne:ae}}sXMLDeclEq(){const D=this.getCodeNorm();if(D===st){this.state=We,this.fail("XML declaration is incomplete.");return}a(D)||(D!==Me&&this.fail("value required."),this.state=Ne)}sXMLDeclValueStart(){const D=this.getCodeNorm();if(D===st){this.state=We,this.fail("XML declaration is incomplete.");return}a(D)||(Zn(D)?this.q=D:(this.fail("value must be quoted."),this.q=He),this.state=Ve)}sXMLDeclValue(){const D=this.captureTo([this.q,st]);if(D===st){this.state=We,this.text="",this.fail("XML declaration is incomplete.");return}if(D===C)return;const j=this.text;switch(this.text="",this.name){case"version":{this.xmlDeclExpects=["encoding","standalone"];const _=j;this.xmlDecl.version=_,/^1\.[0-9]+$/.test(_)?this.opt.forceXMLVersion||this.setXMLVersion(_):this.fail("version number must match /^1\\.[0-9]+$/.");break}case"encoding":/^[A-Za-z][A-Za-z0-9._-]*$/.test(j)||this.fail("encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/."),this.xmlDeclExpects=["standalone"],this.xmlDecl.encoding=j;break;case"standalone":j!=="yes"&&j!=="no"&&this.fail('standalone value must match "yes" or "no".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=j;break}this.name="",this.state=tt}sXMLDeclSeparator(){const D=this.getCodeNorm();if(D===st){this.state=We;return}a(D)||(this.fail("whitespace required."),this.unget()),this.state=ye}sXMLDeclEnding(){var D;this.getCodeNorm()===Ke?(this.piTarget!=="xml"?this.fail("processing instructions are not allowed before root."):this.name!=="version"&&this.xmlDeclExpects.includes("version")&&this.fail("XML declaration must contain a version."),(D=this.xmldeclHandler)===null||D===void 0||D.call(this,this.xmlDecl),this.name="",this.piTarget=this.text="",this.state=F):this.fail("The character ? is disallowed anywhere in XML declarations."),this.xmlDeclPossible=!1}sOpenTag(){var D;const j=this.captureNameChars();if(j===C)return;const _=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name="",this.xmlnsOpt&&(this.topNS=_.ns=Object.create(null)),(D=this.openTagStartHandler)===null||D===void 0||D.call(this,_),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail("documents may contain only one root."),j){case Ke:this.openTag();break;case qt:this.state=_e;break;default:a(j)||this.fail("disallowed character in tag name."),this.state=Xe}}sOpenTagSlash(){this.getCode()===Ke?this.openSelfClosingTag():(this.fail("forward-slash in opening tag not followed by >."),this.state=Xe)}sAttrib(){const D=this.skipSpaces();D!==C&&(r(D)?(this.unget(),this.state=pt):D===Ke?this.openTag():D===qt?this.state=_e:this.fail("disallowed character in attribute name."))}sAttribName(){const D=this.captureNameChars();D===Me?this.state=Kt:a(D)?this.state=Pt:D===Ke?(this.fail("attribute without value."),this.pushAttrib(this.name,this.name),this.name=this.text="",this.openTag()):D!==C&&this.fail("disallowed character in attribute name.")}sAttribNameSawWhite(){const D=this.skipSpaces();switch(D){case C:return;case Me:this.state=Kt;break;default:this.fail("attribute without value."),this.text="",this.name="",D===Ke?this.openTag():r(D)?(this.unget(),this.state=pt):(this.fail("disallowed character in attribute name."),this.state=Xe)}}sAttribValue(){const D=this.getCodeNorm();Zn(D)?(this.q=D,this.state=Dt):a(D)||(this.fail("unquoted attribute value."),this.state=jt,this.unget())}sAttribValueQuoted(){const{q:D,chunk:j}=this;let{i:_}=this;for(;;)switch(this.getCode()){case D:this.pushAttrib(this.name,this.text+j.slice(_,this.prevI)),this.name=this.text="",this.q=null,this.state=dt;return;case Ye:this.text+=j.slice(_,this.prevI),this.state=re,this.entityReturnState=Dt;return;case _t:case k:case Et:this.text+=`${j.slice(_,this.prevI)} `,_=this.i;break;case Pe:this.text+=j.slice(_,this.prevI),this.fail("disallowed character.");return;case C:this.text+=j.slice(_);return}}sAttribValueClosed(){const D=this.getCodeNorm();a(D)?this.state=Xe:D===Ke?this.openTag():D===qt?this.state=_e:r(D)?(this.fail("no whitespace between attributes."),this.unget(),this.state=pt):this.fail("disallowed character in attribute name.")}sAttribValueUnquoted(){const D=this.captureTo(wa);switch(D){case Ye:this.state=re,this.entityReturnState=jt;break;case Pe:this.fail("disallowed character.");break;case C:break;default:this.text.includes("]]>")&&this.fail('the string "]]>" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text="",D===Ke?this.openTag():this.state=Xe}}sCloseTag(){const D=this.captureNameChars();D===Ke?this.closeTag():a(D)?this.state=ln:D!==C&&this.fail("disallowed character in closing tag.")}sCloseTagSawWhite(){switch(this.skipSpaces()){case Ke:this.closeTag();break;case C:break;default:this.fail("disallowed character in closing tag.")}}handleTextInRoot(){let{i:D,forbiddenState:j}=this;const{chunk:_,textHandler:se}=this;e:for(;;)switch(this.getCode()){case Pe:{if(this.state=me,se!==void 0){const{text:xe}=this,Ae=_.slice(D,this.prevI);xe.length!==0?(se(xe+Ae),this.text=""):Ae.length!==0&&se(Ae)}j=ne;break e}case Ye:this.state=re,this.entityReturnState=F,se!==void 0&&(this.text+=_.slice(D,this.prevI)),j=ne;break e;case Xt:switch(j){case ne:j=V;break;case V:j=G;break;case G:break;default:throw new Error("impossible state")}break;case Ke:j===G&&this.fail('the string "]]>" is disallowed in char data.'),j=ne;break;case k:se!==void 0&&(this.text+=`${_.slice(D,this.prevI)}
|
||
`),D=this.i,j=ne;break;case C:se!==void 0&&(this.text+=_.slice(D));break e;default:j=ne}this.forbiddenState=j}handleTextOutsideRoot(){let{i:D}=this;const{chunk:j,textHandler:_}=this;let se=!1;e:for(;;){const xe=this.getCode();switch(xe){case Pe:{if(this.state=me,_!==void 0){const{text:Ae}=this,Fe=j.slice(D,this.prevI);Ae.length!==0?(_(Ae+Fe),this.text=""):Fe.length!==0&&_(Fe)}break e}case Ye:this.state=re,this.entityReturnState=F,_!==void 0&&(this.text+=j.slice(D,this.prevI)),se=!0;break e;case k:_!==void 0&&(this.text+=`${j.slice(D,this.prevI)}
|
||
`),D=this.i;break;case C:_!==void 0&&(this.text+=j.slice(D));break e;default:a(xe)||(se=!0)}}se&&(!this.sawRoot&&!this.reportedTextBeforeRoot&&(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0))}pushAttribNS(D,j){var _;const{prefix:se,local:xe}=this.qname(D),Ae={name:D,prefix:se,local:xe,value:j};if(this.attribList.push(Ae),(_=this.attributeHandler)===null||_===void 0||_.call(this,Ae),se==="xmlns"){const Fe=j.trim();this.currentXMLVersion==="1.0"&&Fe===""&&this.fail("invalid attempt to undefine prefix in XML 1.0"),this.topNS[xe]=Fe,ti(this,xe,Fe)}else if(D==="xmlns"){const Fe=j.trim();this.topNS[""]=Fe,ti(this,"",Fe)}}pushAttribPlain(D,j){var _;const se={name:D,value:j};this.attribList.push(se),(_=this.attributeHandler)===null||_===void 0||_.call(this,se)}end(){var D,j;this.sawRoot||this.fail("document must contain a root element.");const{tags:_}=this;for(;_.length>0;){const xe=_.pop();this.fail(`unclosed tag: ${xe.name}`)}this.state!==E&&this.state!==F&&this.fail("unexpected end.");const{text:se}=this;return se.length!==0&&((D=this.textHandler)===null||D===void 0||D.call(this,se),this.text=""),this._closed=!0,(j=this.endHandler)===null||j===void 0||j.call(this),this._init(),this}resolve(D){var j,_;let se=this.topNS[D];if(se!==void 0)return se;const{tags:xe}=this;for(let Ae=xe.length-1;Ae>=0;Ae--)if(se=xe[Ae].ns[D],se!==void 0)return se;return se=this.ns[D],se!==void 0?se:(_=(j=this.opt).resolvePrefix)===null||_===void 0?void 0:_.call(j,D)}qname(D){const j=D.indexOf(":");if(j===-1)return{prefix:"",local:D};const _=D.slice(j+1),se=D.slice(0,j);return(se===""||_===""||_.includes(":"))&&this.fail(`malformed name: ${D}.`),{prefix:se,local:_}}processAttribsNS(){var D;const{attribList:j}=this,_=this.tag;{const{prefix:Ae,local:Fe}=this.qname(_.name);_.prefix=Ae,_.local=Fe;const Oe=_.uri=(D=this.resolve(Ae))!==null&&D!==void 0?D:"";Ae!==""&&(Ae==="xmlns"&&this.fail('tags may not have "xmlns" as prefix.'),Oe===""&&(this.fail(`unbound namespace prefix: ${JSON.stringify(Ae)}.`),_.uri=Ae))}if(j.length===0)return;const{attributes:se}=_,xe=new Set;for(const Ae of j){const{name:Fe,prefix:Oe,local:Ue}=Ae;let Ge,kt;Oe===""?(Ge=Fe==="xmlns"?x:"",kt=Fe):(Ge=this.resolve(Oe),Ge===void 0&&(this.fail(`unbound namespace prefix: ${JSON.stringify(Oe)}.`),Ge=Oe),kt=`{${Ge}}${Ue}`),xe.has(kt)&&this.fail(`duplicate attribute: ${kt}.`),xe.add(kt),Ae.uri=Ge,se[Fe]=Ae}this.attribList=[]}processAttribsPlain(){const{attribList:D}=this,j=this.tag.attributes;for(const{name:_,value:se}of D)j[_]!==void 0&&this.fail(`duplicate attribute: ${_}.`),j[_]=se;this.attribList=[]}openTag(){var D;this.processAttribs();const{tags:j}=this,_=this.tag;_.isSelfClosing=!1,(D=this.openTagHandler)===null||D===void 0||D.call(this,_),j.push(_),this.state=F,this.name=""}openSelfClosingTag(){var D,j,_;this.processAttribs();const{tags:se}=this,xe=this.tag;xe.isSelfClosing=!0,(D=this.openTagHandler)===null||D===void 0||D.call(this,xe),(j=this.closeTagHandler)===null||j===void 0||j.call(this,xe),(this.tag=(_=se[se.length-1])!==null&&_!==void 0?_:null)===null&&(this.closedRoot=!0),this.state=F,this.name=""}closeTag(){const{tags:D,name:j}=this;if(this.state=F,this.name="",j===""){this.fail("weird empty close tag."),this.text+="</>";return}const _=this.closeTagHandler;let se=D.length;for(;se-- >0;){const xe=this.tag=D.pop();if(this.topNS=xe.ns,_?.(xe),xe.name===j)break;this.fail("unexpected close tag.")}se===0?this.closedRoot=!0:se<0&&(this.fail(`unmatched closing tag: ${j}.`),this.text+=`</${j}>`)}parseEntity(D){if(D[0]!=="#"){const _=this.ENTITIES[D];return _!==void 0?_:(this.fail(this.isName(D)?"undefined entity.":"disallowed character in entity name."),`&${D};`)}let j=NaN;return D[1]==="x"&&/^#x[0-9a-f]+$/i.test(D)?j=parseInt(D.slice(2),16):/^#[0-9]+$/.test(D)&&(j=parseInt(D.slice(1),10)),this.isChar(j)?String.fromCodePoint(j):(this.fail("malformed character entity."),`&${D};`)}}return Br.SaxesParser=ie,Br}var DL=RL();const IL=new Set(["AppLockerPolicy","RuleCollection","FilePublisherRule","FilePathRule","FileHashRule"]),g3={AppLockerPolicy:"AppLocker policy",RuleCollection:"Rule collection",FilePublisherRule:"Publisher rule",FilePathRule:"Path rule",FileHashRule:"Hash rule",Id:"Rule ID",UserOrGroupSid:"User/group SID",EnforcementMode:"Enforcement mode",FilePublisherCondition:"Publisher condition",FilePathCondition:"Path condition",FileHashCondition:"Hash condition",FileHash:"Hash",PublisherName:"Publisher",ProductName:"Product",BinaryName:"Binary",BinaryVersionRange:"Version range",LowSection:"Minimum",HighSection:"Maximum",SourceFileName:"Source name",SourceFileLength:"Source length"};function v3(e){return Object.hasOwn(g3,e)?g3[e]:e.replace(/([a-z0-9])([A-Z])/g,"$1 $2")}function Wb(e,t=0){const n=" ".repeat(t);return[`${n}${v3(e.name)}`,...Object.entries(e.attributes).map(([a,i])=>`${n} ${v3(a)}: ${i||"Not set"}`),...e.children.flatMap(a=>typeof a=="string"?[`${n} ${a}`]:Wb(a,t+1))]}function Vb(e){if(e.length>262144||!e.trimStart().startsWith("<"))return;const t=new DL.SaxesParser({xmlns:!1}),n=[];let a,i=0;const r=()=>{throw new Error("Unsupported policy display XML")};t.on("error",r),t.on("doctype",r),t.on("processinginstruction",r),t.on("opentag",l=>{(++i>2e3||n.length>=32||Object.keys(l.attributes).length>128)&&r(),(l.name.includes(":")||Object.keys(l.attributes).some(T=>T.includes(":")||T==="xmlns"))&&r();const f={name:l.name,attributes:l.attributes,children:[]};n.length?n[n.length-1].children.push(f):((a||!IL.has(l.name))&&r(),a=f),n.push(f)});const c=l=>{l.trim()&&n.length&&n[n.length-1].children.push(l.trim())};t.on("text",c),t.on("cdata",c),t.on("closetag",()=>{n.pop()});try{return t.write(e).close(),a?Wb(a).join(`
|
||
`):void 0}catch{return}}function x3(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/^./,t=>t.toUpperCase())}function NL(e){return e===null?"Not set":typeof e=="string"||typeof e=="number"||typeof e=="boolean"?String(e):""}function yu(e,t=0){const n=NL(e);if(n)return(Vb(n)??n).split(`
|
||
`);if(Array.isArray(e))return e.length?e.flatMap(r=>yu(r,t+1)):["Not set"];if(!e||typeof e!="object"||t>5)return[String(e??"Not set")];const a=e,i=Object.keys(a);return"value"in a&&i.every(r=>r==="kind"||r==="value")?yu(a.value,t+1):i.filter(r=>r!=="kind"&&r!=="valueName").flatMap(r=>{const c=yu(a[r],t+1);return c.length===1?[`${x3(r)}: ${c[0]}`]:[`${x3(r)}:`,...c.map(l=>` ${l}`)]})}function c0(e){const t=e.trim();if(!t)return"Not set";try{return yu(JSON.parse(t)).join(`
|
||
`)}catch{return Vb(e)??e}}function cp(e){let t;return c0(e).split(`
|
||
`).map(n=>{const a=n.length-n.trimStart().length;return n.trim()&&t!==void 0&&a<=t&&(t=void 0),/^\s*(?:Operation|Data):/.test(n)&&(t=a),{text:n,emphasized:t!==void 0}})}function lp(e,t=0){if(!e||t>5)return;if(Array.isArray(e)){for(const a of e){const i=lp(a,t+1);if(i)return i}return}if(typeof e!="object")return;const n=e;if(typeof n.valueName=="string"&&n.valueName.trim())return n.valueName.trim();for(const a of Object.values(n)){const i=lp(a,t+1);if(i)return i}}function hm(e){try{return lp(JSON.parse(e))}catch{return}}function OL(e){const t=e.comparator.baseline;if(e.baselineVariantAssessment){if(e.baselineVariantAssessment.decision==="unavailable")return"";if(!t||e.baselineVariantAssessment.decision==="mixed")return"Establish the applicable baseline template before changing this setting. Compare the individual recommendations below; do not combine their values into a new baseline."}if(e.baselineState!=="explicit-recommendation"||!t||t.kind==="none"||e.diagnosticCodes.includes("policy-evaluation-baseline-consensus-conflict"))return"";const n=e.identity.target,a="section"in n?`${n.section} · ${n.key}`:`${n.hive}\\${n.key}${n.valueName!==void 0?`\\${n.valueName}`:""}`,i=e.comparator.comparator,r=i.kind==="minimum"?"Minimum":i.kind==="maximum"?"Maximum":(i.kind==="audit-flags"||i.kind==="bitmask")&&i.mode==="contains-baseline"||i.kind==="set"&&i.mode==="superset"?"Must include":i.kind==="set"&&i.mode==="subset"?"Allowed values":"Expected",c=t.kind==="text"&&t.value===""?"Empty string":c0(JSON.stringify(t));return`${e.identity.scope==="user"?"User":"Computer"} policy: ${a}
|
||
${r}: ${c}`}function up(e,t=[]){const n=new Map(t.map(({analysis:i})=>{const r=new Map;for(const c of i.admxCatalog.languageResources){const l=c.admxFileName.toLowerCase();r.set(l,[...r.get(l)??[],c])}for(const c of r.values())c.sort((l,f)=>{const T=p=>p.toLowerCase()==="en-us"?0:/^en(?:-|$)/i.test(p)?1:2;return T(l.locale)-T(f.locale)||l.locale.localeCompare(f.locale)});return[i.id,{baselineId:i.baselineId,catalogId:i.admxCatalog.id,settings:new Map((i.settings??[]).map(c=>[c.id,c])),policies:new Map(i.admxCatalog.policies.map(c=>[c.technicalId,c])),resources:r}]})),a=new Map;for(const i of e)for(const r of i.results){let c="",l="";const f=n.get(r.baselineAnalysisId),T=r.identity.admx;if(f?.baselineId===r.baselineId&&T?.status==="matched"&&T.catalogId===f.catalogId){const p=f.policies.get(T.reference.technicalId),m=p?.sourcePath.split(/[\\/]/).pop()?.toLowerCase();if(m&&p?.explainTextResourceId){const g=f.resources.get(m)??[],S=g.find(w=>w.strings[p.explainTextResourceId]?.trim()),x=g.filter(w=>w.locale===S?.locale&&w.strings[p.explainTextResourceId]?.trim());c=new Set(x.map(w=>w.strings[p.explainTextResourceId].trim())).size===1?S?.strings[p.explainTextResourceId]?.trim()??"":"",c&&S&&(l=`Imported baseline ADML · ${S.locale} · ${S.admxFileName}`)}}if(r.baselineVariantAssessment){const p=r.baselineVariantAssessment,m=p.variants.map(S=>{const x=f?.baselineId===r.baselineId?f.settings.get(S.settingId):void 0,y=x?.identity.status==="resolved"&&x.identity.identity.id===r.identity.id?[...new Set(x.template?.names.map(P=>P.value)??[])]:[],w=y.length?y.join(" / "):"Template name unavailable",C=S.comparator.baseline,k=C?.kind==="string-set"&&!C.values.length?"Empty account list":C?.kind==="text"&&C.value===""?"Empty string":C?c0(JSON.stringify(C)):"Unavailable",E=S.comparator.relation==="match"?"Match":S.comparator.relation==="different"?r.customerState==="missing"?"Missing required value or key":"Different":"Unavailable",O=S.comparator.actual,N=O?.kind==="string-set"&&C?.kind==="string-set"?O.values.filter(P=>!C.values.includes(P)):[],B=O?.kind==="string-set"&&C?.kind==="string-set"?C.values.filter(P=>!O.values.includes(P)):[],A=S.baselineValues[0],z=A?.kind==="registry-policy"||A?.kind==="registry"?`
|
||
Registry type: ${A.typeCode}`:"";return`${r.baselineLabel} — ${w}
|
||
Setting reference: ${S.settingId}
|
||
Value comparison: ${E}
|
||
Expected: ${k}${z}`+(N.length?`
|
||
Additional entries: ${N.join(", ")}`:"")+(B.length?`
|
||
Missing entries: ${B.join(", ")}`:"")}),g=r.baselineTemplateSelection?.status==="selected"?"Only templates matching the explicit comparison context were assessed. This does not prove GPO application to a device.":r.baselineTemplateSelection?.status==="no-match"?"No template matches the explicit comparison context. Individual value comparisons do not establish Pass or Fail.":"The customer GPO target role is not established. All retained candidate recommendations were compared independently; no role was inferred from OS inventory or domain functional level.";c=[c,fm(p),g,"This assesses imported backup configuration against the referenced baseline set, not effective device security. Different baseline variants are not evidence of a customer GPO conflict.",`Baseline recommendations
|
||
|
||
${m.join(`
|
||
|
||
`)}`].filter(Boolean).join(`
|
||
|
||
`)}else if(r.baselineTemplateSelection||r.diagnosticCodes.includes("policy-evaluation-baseline-consensus-conflict")){const p=new Set;let m=0;const g=r.baselineTemplateSelection?.candidateSettingIds??r.baselineSettingIds??[];if(f?.baselineId===r.baselineId)for(const x of new Set(g)){const y=f.settings.get(x);if(!y||y.baselineId!==r.baselineId||y.identity.status!=="resolved"||y.identity.identity.id!==r.identity.id)continue;const w=y.observation.values.map(O=>{const N=Xu(O);return N?.kind==="string-set"&&!N.values.length?"Empty account list":c0(JSON.stringify(N??O))}).join("; ");m++;const C=[...new Set(y.template?.names.map(O=>O.value)??[])],k=C.length?C.join(" / "):r.baselineTemplateSelection?"Template name unavailable":"",E=r.baselineTemplateSelection?.status==="selected"&&r.baselineSettingIds.includes(x);p.add(`${r.baselineLabel}${k?` — ${k}`:""}: ${w}${E?" (selected)":""}`)}const S=p.size?`Baseline recommendations
|
||
|
||
${[...p].join(`
|
||
|
||
`)}${m<new Set(g).size?`
|
||
|
||
Some referenced baseline recommendations could not be loaded.`:""}`:"Baseline recommendations could not be loaded for this saved comparison.";c=[c,S].filter(Boolean).join(`
|
||
|
||
`),r.diagnosticCodes.includes("policy-evaluation-template-context-required")&&(c+=`
|
||
|
||
Different template recommendations. The customer target role is not established; matching one variant does not establish an overall Pass. This is not evidence of a customer GPO conflict.`),r.baselineTemplateSelection?.status==="no-match"&&(c+=`
|
||
|
||
No template matches the specified comparison context. No Pass or Fail has been assigned.`)}a.set(r.id,{description:c,source:l,remediation:OL(r)})}return a}const ML=/\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}\/DomainSysvol\/GPO\/(?:Machine|User)\/.+$/i;function O1(e){if(!e)return"GPO source reference unavailable";const t=e.replace(/\\/g,"/"),n=ML.exec(t);return n?n[0]:/(?:^|\/)(DomainSysvol\/GPO\/(?:Machine|User)\/.+)$/i.exec(t)?.[1]??"GPO source reference unavailable"}function jL(e){return e.map(t=>O1(t.sourceLocator?.objectPath)).join(`
|
||
`)}function Hb(e,t){if(!t||e.length!==1||!t.variants.length)return;const n=e[0],a=t.variants.map(i=>i.baselineValues.length===1?CL(n,i.baselineValues[0],i.comparator.comparator).relation:"incomparable");return a.every(i=>i==="match")?"aligned":a.every(i=>i==="different")?"conflicting":"review"}function FL(e,t){if(e.kind!=="registry-policy"||t.kind!=="registry-policy")return new Set;if(e.operation!==t.operation)return new Set(["operation"]);if(e.operation!=="set-value"||t.operation!=="set-value")return new Set;const n=new Set;return o0(e.data)!==o0(t.data)&&n.add("data"),e.typeCode!==t.typeCode&&n.add("typeCode"),n}function LL(e,t){if(Hb(e,t)!=="conflicting"||e.length!==1||!t)return;const n=e[0],a=t.variants.filter(T=>T.baselineValues.length===1),i=a.map(T=>FL(n,T.baselineValues[0])),r=[...i[0]??[]].filter(T=>i.every(p=>p.has(T))),c=a.map(T=>{const p=T.baselineValues[0];if(n.kind!=="principal-set"||p.kind!=="principal-set")return new Set;const m=new Set(p.principals);return new Set(n.principals.filter(g=>!m.has(g)))}),l=[...c[0]??[]].filter(T=>c.every(p=>p.has(T))),f=n.kind==="principal-set"&&a.every(T=>T.baselineValues[0]?.kind==="principal-set");return r.length||l.length?{deviationFields:r.length?[r]:void 0,deviationItems:l.length?[l]:void 0}:f?{}:{deviationFields:[["value"]]}}function Gb(e,t){return e.map(n=>{const a=n.policyValues??[],i=LL(a,t);return{id:JSON.stringify([n.projectId,n.assessmentId,n.sourceResultId]),backupKey:N1(n),backupInstanceId:n.policyBackupInstanceId,gpoId:n.policyGpoId,nativeBackupId:n.policyNativeBackupId,sourceReference:O1(n.sourceLocator?.objectPath),sequence:n.policySourceSequence,values:a,baselineRelation:Hb(a,t),...i}})}const y3=new WeakMap;function Xb(e){const t=y3.get(e);if(t)return t;const n=new Map;for(const i of e){const r=i.backupKey?`backup:${i.backupKey}`:`unassigned:${i.id}`;let c=n.get(r);c||(c={id:r,identified:!!i.backupKey,label:i.gpoId?`GPO ${i.gpoId}`:i.backupInstanceId?`GPO backup ${i.nativeBackupId??i.backupInstanceId}`:"Unassigned GPO source",backupLabel:i.gpoId?`Backup: ${i.nativeBackupId??i.backupInstanceId??"Unknown"}`:"",observations:[]},n.set(r,c)),c.observations.push(i)}const a=[...n.values()];for(const i of a)i.observations=[...new Map(i.observations.map(c=>[c.id,c])).values()],new Set(i.observations.map(c=>c.sourceReference.replace(/#(?:records|lines)=.*$/,""))).size===1&&i.observations.every(c=>c.sequence!==void 0)&&i.observations.sort((c,l)=>c.sequence-l.sequence);return y3.set(e,a),a}function Kb(e,t=[],n=[]){if(!e||typeof e!="object"||Array.isArray(e)||e.kind!=="registry-policy")return cp(JSON.stringify(e)).map(r=>{const c=r.text.trim();return t.includes("value")||n.includes(c)?{...r,deviating:!0}:r});const a=[],i=(r,c=!1,l)=>a.push({text:r,emphasized:c,...t.includes("value")||l&&t.includes(l)?{deviating:!0}:{}});if(i(`Operation: ${String(e.operation??"Unknown")}`,!0,"operation"),typeof e.key=="string"&&i(`Key: ${e.key}`),typeof e.valueName=="string"&&i(`Value name: ${e.valueName===""?"(Default)":e.valueName}`),"data"in e){const r=e.data,c=r&&typeof r=="object"&&!Array.isArray(r)?"value"in r?r.value:"values"in r?r.values:r:r;i(`Data: ${JSON.stringify(c)}`,!0,"data")}"typeCode"in e&&i(`Type code: ${String(e.typeCode)}`,!1,"typeCode");for(const[r,c]of Object.entries(e))["kind","operation","key","valueName","data","typeCode"].includes(r)||a.push(...cp(JSON.stringify({[r]:c})).map(l=>t.includes("value")?{...l,deviating:!0}:l));return a}function PL(e){if(e.status!=="Fail")return[];const t=new Map;for(const n of e.sources){const a=N1(n);if(!a||t.has(a))continue;const i=O1(n.sourceLocator?.objectPath),c=[/^(\{[0-9a-f-]+\})\//i.exec(i)?.[1],n.policyBackupInstanceId,n.importedAt].filter(Boolean).join(" · ");t.set(a,{id:a,label:c})}return[...t.values()]}const pd="GPO conflict details",h1="GPO duplicate details";function $u(e){return JSON.stringify(e).replace(/\s/g,t=>`\\u${t.charCodeAt(0).toString(16).padStart(4,"0")}`)}const _L={0:"REG_NONE",1:"REG_SZ",2:"REG_EXPAND_SZ",3:"REG_BINARY",4:"REG_DWORD",5:"REG_DWORD_BIG_ENDIAN",7:"REG_MULTI_SZ",11:"REG_QWORD"},qL={REG_NONE:"No defined type",REG_SZ:"String",REG_EXPAND_SZ:"Expandable string",REG_BINARY:"Binary",REG_DWORD:"32-bit number",REG_DWORD_BIG_ENDIAN:"32-bit number (big-endian)",REG_MULTI_SZ:"Multi-string",REG_QWORD:"64-bit number"};function BL(e){const t=/^(REG_[A-Z_]+) \(\d+\)$/.exec(e);return t?`${qL[t[1]]??"Registry value"} (${t[1]})`:e}function UL(e){const t=new Map(e.split(`
|
||
`).map(n=>{const a=n.indexOf(":");return a<0?["",""]:[n.slice(0,a),n.slice(a+1).trim()]}));return{title:t.get("Value name")||t.get("Setting")||"Conflicting setting",scope:t.get("Scope")||"",...t.get("Registry path")?{registryPath:t.get("Registry path")}:{},...t.get("Value name")?{valueName:t.get("Value name")}:{}}}function zL(e){let t=e+1,n="";for(;t>0;)t-=1,n=String.fromCharCode(65+t%26)+n,t=Math.floor(t/26);return`Variant ${n}`}function WL(e,t){const[n,a]=e.tables;if(n.name!==(t?"Duplicate setting":"Conflicting variants")||a.name!=="Source references")return;const i=n.headers.indexOf("Variant"),r=n.headers.indexOf("Value"),c=n.headers.indexOf("Type"),l=a.headers.indexOf("Source"),f=a.headers.indexOf("Variant"),T=a.headers.indexOf("Source path"),p=a.headers.indexOf("Backup"),m=a.headers.indexOf("Record"),g=[r,c,l,T,p,m];if(t||g.push(i,f),g.some(y=>y<0))return;const S=new Map;for(const y of a.rows){const w={label:y[l],sourcePath:O1(y[T]),backupId:y[p],recordId:y[m]},C=t?["Shared value"]:y[f].split(",").map(k=>k.trim()).filter(Boolean);for(const k of C){const E=S.get(k)??[];E.push(w),S.set(k,E)}}const x=UL(e.context);return{kind:"variant-comparison",mode:t?"duplicate":"conflict",...x,sourceCount:a.rows.length,variants:n.rows.map((y,w)=>({label:t?"Shared value":zL(w),value:y[r],typeLabel:BL(y[c]),sources:S.get(t?"Shared value":y[i])??[]}))}}function $b(e){return e.conflict||e.status==="Conflicts"?Zb(e,!1):void 0}function Yb(e){return e.duplicate||e.status==="Duplicates"?Zb(e,!0):void 0}function Zb(e,t){if(e.sources.length<2)return;const n=new Map,a=[];for(const[p,m]of e.sources.entries()){const g=`Source ${p+1}`,S=new Set;for(const x of m.policyValues??[]){const y=f1(x);if(!y)return;let w=n.get(y);if(!w){const C=x.kind==="registry-policy"?x.data:x,k="typeCode"in x?x.typeCode:void 0;w={label:`Variant ${n.size+1}`,value:c0(JSON.stringify(C??x)),type:k===void 0?x.kind:`${_L[k]??"Unknown"} (${k})`,sources:new Set},n.set(y,w)}w.sources.add(g),S.add(w.label)}if(!S.size)return;a.push([g,...t?[]:[[...S].join(", ")],O1(m.sourceLocator?.objectPath),m.policyBackupInstanceId??"",m.sourceResultId])}if(t?n.size!==1:n.size<2)return;const i=[...n.values()],r=new Set(i.map(p=>p.value)).size>1,c=new Set(i.map(p=>p.type)).size>1,l=r&&c?"Values and types differ":c?"Types differ":"Values differ",f=e.sources[0].policyValues?.[0],T=[`Setting: ${e.title}`,`Scope: ${e.scope}`,f?.kind==="registry-policy"?`Registry path: ${f.key}
|
||
Value name: ${f.valueName||"(Default)"}`:""].filter(Boolean).join(`
|
||
`);return{version:1,summary:t?`1 setting · ${a.length} sources. Identical value and type.`:`${i.length} variants · ${a.length} sources. ${l}.`,context:T,tables:[{name:t?"Duplicate setting":"Conflicting variants",headers:[...t?[]:["Variant"],"Value","Type","Sources"],rows:i.map(p=>[...t?[]:[p.label],p.value,p.type,String(p.sources.size)]),emphasis:t?[]:[...r?["Value"]:[],...c?["Type"]:[]]},{name:"Source references",headers:["Source",...t?[]:["Variant"],"Source path","Backup","Record"],rows:a,emphasis:[]}]}}const S3=new WeakMap;function Jb(e){const t=S3.get(e);if(t)return t;const n=e.fields.filter(i=>[pd,h1].includes(i.label)&&i.value);if(n.length!==1||n[0].value.length>10*1024*1024)return[];const a=n[0].label===h1;try{const i=JSON.parse(n[0].value);if(!i||typeof i!="object"||!("version"in i)||i.version!==1||!("summary"in i)||typeof i.summary!="string"||!("context"in i)||typeof i.context!="string"||!("tables"in i)||!Array.isArray(i.tables)||i.tables.length!==2)return[];const r=[];for(const[c,l]of i.tables.entries()){if(!l||l.name!==(c===0?a?"Duplicate setting":"Conflicting variants":"Source references")||!Array.isArray(l.headers)||l.headers.length<1||l.headers.length>8||!l.headers.every(m=>typeof m=="string")||!Array.isArray(l.rows)||!l.rows.length||l.rows.length>2e4||!l.rows.every(m=>Array.isArray(m)&&m.length===l.headers.length&&m.every(g=>typeof g=="string"))||!Array.isArray(l.emphasis)||!l.emphasis.every(m=>m==="Value"||m==="Type")||a&&(l.emphasis.length>0||c===0&&l.rows.length!==1||c===1&&l.rows.length<2))return[];const f=[l.headers,...l.rows],T=l.rows.map((m,g)=>{const S=l4({headers:l.headers,row:m,index:g,sheetName:l.name,sourceFile:e.id});return S.fields=l.headers.map((x,y)=>({index:y,label:x,value:m[y]})),S.filled=S.fields.filter(x=>x.value!==""),S}),p={id:`${e.id}:gpo-${a?"duplicate":"conflict"}:${c}`,name:l.name,rows:f,raw:"",toolId:"group-policy",sourceSheet:l.name,analysis:{headerIndex:0,headers:l.headers,records:T,columns:[],signals:[],title:""}};p.resultEmphasisColumns=l.emphasis,c===0&&(p.resultPreamble=i.context),r.push(p)}return r[0].resultVariantComparison=WL(i,a),S3.set(e,r),r}catch{return[]}}function VL(e,t){const n=new Map;for(const i of e){const r=i.entry.settingKey??i.entry.id,c=n.get(r)??[];c.push(i),n.set(r,c)}const a=i=>[...new Set(i.filter(Boolean))];return[...n.values()].map(i=>{i.sort((E,O)=>E.entry.id.localeCompare(O.entry.id));const r=i[0],c=a(i.map(E=>E.entry.comparison?.baselineLabel??""));if(i.length===1)return{...r,baselineLabels:c};const l=new Set(i.map(E=>E.entry.comparison?.baselineId)).size,f=i.map(E=>E.importedAt).sort().at(-1)??"",T=(E,O)=>E.row[t.indexOf(O)]??"",p=i.map(E=>T(E,"Status")).reduce((E,O)=>Ku[O]>Ku[E]?O:E),m=[...new Map(i.flatMap(E=>E.entry.sources).map(E=>[JSON.stringify([E.projectId,E.assessmentId,E.sourceResultId]),E])).values()],g=i.map(E=>E.historical?void 0:E.entry.comparison?.baselineVariantAssessment),S={...r.entry,status:p,sources:m,conflict:i.some(E=>E.entry.conflict),duplicate:i.some(E=>E.entry.duplicate)},x=$b(S),y=Yb(S),w=g.every(E=>E&&E.decision!=="unavailable"&&E.variants.length)?{variants:g.flatMap(E=>E.variants)}:void 0,C=E=>i.map(O=>{const N=T(O,E);return N?`${O.entry.comparison?.baselineLabel??"Comparison"}
|
||
${N}`:""}).filter(Boolean).join(`
|
||
|
||
`),k=t.map(E=>{const O=a(i.map(N=>T(N,E)));return E==="Status"?p:E==="Imported"?f:E==="Source: Scan"?f?`GPOs · ${f}`:"GPOs":E==="Evaluated"?O.sort().at(-1)??"":E===pd?x?$u(x):"":E===h1?y?$u(y):"":E==="Conflict"&&x?x.summary:E==="Duplicates"&&y?y.summary:E==="Baseline"?c.join(`
|
||
`):E==="Comparison"?`Overall verdict: ${p} · ${l} baseline packages
|
||
`+i.map(N=>`${N.entry.comparison?.baselineLabel??"Comparison"}: ${T(N,"Status")} — ${T(N,E)}`).join(`
|
||
`):E==="Description"?C(E):E==="Baseline value"&&O.length&&(O.length>1||i.some(N=>!T(N,E)))?JSON.stringify(i.map(N=>({baseline:N.entry.comparison?.baselineLabel,expected:N.entry.comparison?.comparator.baseline??N.entry.comparison?.baselineVariantAssessment?.variants.map(B=>({settingId:B.settingId,value:B.comparator.baseline,relation:B.comparator.relation}))??"Unavailable"}))):E==="Remediation"&&!O.length?"":E==="Remediation"&&(O.length>1||i.some(N=>!T(N,E)))?`Establish the applicable baseline template before changing this setting. The recommendations below are separate comparisons.
|
||
|
||
`+C(E):E==="Configured Value"&&O.length>1?JSON.stringify(m.flatMap(N=>N.policyValues??[])):O.join(`
|
||
|
||
`)});return{...r,row:k,baselineLabels:c,reviewMembers:i.map(E=>({baseline:E.entry.comparison?.baselineLabel??"Comparison",row:E.row})),importedAt:f,sourceEvidence:Gb(m,w),failingBackupSources:[...new Map(i.flatMap(E=>E.failingBackupSources).map(E=>[E.id,E])).values()]}})}function b3(e){return e===void 0?"":e===null?"null":typeof e=="object"?JSON.stringify(e):String(e)}const Qb={registry:"registry","local-users-groups":"local users and groups",services:"services","drive-maps":"drive maps"};function HL(e){const t=r=>[...new Set(e.flatMap(c=>r(c)!==void 0?[String(r(c))]:[]))].sort(),n=t(r=>r.policyPreferenceCse).map(r=>Qb[r]??r),a=t(r=>r.policyPreferenceAction),i=t(r=>r.policyPreferenceTargeting);return[n.length?`Group Policy Preference (${n.join(", ")})`:"Group Policy Preference","no comparable technical policy setting, so it is not compared with a Microsoft baseline",a.length?`action: ${a.join(", ")}`:"",i.includes("present")?"item-level targeting: present, effective application unknown":i.length?"item-level targeting: none":""].filter(Boolean).join(". ")+"."}function GL(e,t,n,a=[],i=up(a)){const r=zb(n,a);if(!r.length)return e;const c=new Map(a.filter(y=>y.run.evaluator?.version&&y.run.evaluator.version!==d1.version).flatMap(y=>y.results.map(w=>[w.id,y.run.evaluator.version]))),l=["Title","Category","Status","Scope","Configured Value","Baseline value","Baseline","Comparison","Registry path","Sources","Technical Identity","Imported","Diagnostics","Policy type","Policy section","Description","Remediation","Description source","Conflict",pd,"Duplicates",h1,"Evaluated","Source: Scan","Evaluation readiness","Historical result"],f=VL(r.map(y=>{const w=y.comparison,C=w&&c.get(w.id),k=C?`Re-evaluation required: historical result from engine ${C}; current engine is ${d1.version}. Re-evaluate in Data Hub before using this result as a current assessment.`:"",E=$b(y),O=Yb(y),N=w?.comparator.actual??(w?.customerState==="missing"?"Not configured":y.sources.flatMap(P=>P.policyValues??[])),B=w?.identity.target,A=y.sources.flatMap(P=>P.policyValues??[]).find(P=>P&&typeof P=="object"&&!Array.isArray(P)&&P.kind==="registry-policy"),z=B&&"hive"in B&&B.hive?`${B.hive}\\${B.key}`:A&&typeof A=="object"&&!Array.isArray(A)?`${y.scope==="user"?"HKEY_CURRENT_USER":"HKEY_LOCAL_MACHINE"}\\${A.key}`:"";return{entry:y,historical:!!C,importedAt:y.importedAt,failingBackupSources:PL(y),sourceEvidence:Gb(y.sources,C?void 0:w?.baselineVariantAssessment),row:[y.title,"GPOs",C?"Review required":y.status,y.scope,b3(N),b3(w?.comparator.baseline??w?.baselineVariantAssessment?.variants.map(P=>({settingId:P.settingId,value:P.comparator.baseline,relation:P.comparator.relation}))),w?.baselineLabel??"",C?"Historical comparison — re-evaluation required":w?.baselineVariantAssessment?fm(w.baselineVariantAssessment):w?.baselineTemplateSelection?.status==="no-match"?"No baseline template matches the specified comparison context":w?.diagnosticCodes.includes("policy-evaluation-template-context-required")?"Different template recommendations; customer target role not established":w?.diagnosticCodes.includes("policy-evaluation-baseline-consensus-conflict")?"Conflicting baseline recommendations":y.status==="Not comparable"?HL(y.sources):y.status==="No baseline rule"?"No applicable Microsoft baseline rule for this technical setting; retained for inspection without a verdict":y.conflict||y.status==="Conflicts"?"Different values or types for the same setting":y.duplicate||y.status==="Duplicates"?"Identical setting in multiple source entries":w?.customerState==="missing"?"Baseline setting is not configured":y.status==="Pass"?"Matches baseline":"Differs from baseline",z,jL(y.sources),y.identity,y.importedAt,[...new Set([...w?.diagnosticCodes??[],...y.sources.flatMap(P=>P.policyDiagnosticCodes??[])])].join(", "),B?.kind??y.sources[0]?.policyDeliveryMechanism??"",B&&"section"in B?B.section:Qb[y.sources[0]?.policyPreferenceCse??""]??y.sources[0]?.policyPreferenceCse??"",w?i.get(w.id)?.description||(i.get(w.id)?.descriptionLoadFailed?"Baseline description could not be loaded. The saved comparison is retained.":"Description unavailable in the referenced baseline metadata."):"",w?i.get(w.id)?.remediation??"":"",w?i.get(w.id)?.source??"":"",E?.summary??(w?.baselineVariantAssessment&&y.conflict?"Conflicting customer states; see original GPO source instructions.":""),E?$u(E):"",O?.summary??(w?.baselineVariantAssessment&&y.duplicate?"Same setting contributed by multiple GPO backups.":""),O?$u(O):"",y.evaluatedAt??"",y.importedAt?`GPOs · ${y.importedAt}`:"GPOs",k,C?`${y.status} · Engine ${C}`:""]}}),l),T=f.map(y=>y.row),p=[l,...T],m=es("GPOs",p,Ns(p),t,{id:`gpo-policy-observations-${t}`,sourceFile:t,sourceSheet:"GPOs",toolId:"group-policy"});if(m.analysis.records.forEach((y,w)=>{y.policyFailingBackupSources=f[w].failingBackupSources,y.policySourceEvidence=f[w].sourceEvidence,y.policyBaselineLabels=f[w].baselineLabels,f[w].reviewMembers&&(y.id=`gpo-work-setting:${encodeURIComponent(f[w].entry.settingKey)}`,y.policyReviewMembers=f[w].reviewMembers.map(C=>({baseline:C.baseline,id:_h({sourceFile:t,sheetName:"GPOs",headers:l,row:C.row})})))}),!e){const y=Math.max(...f.map(w=>Date.parse(w.importedAt)).filter(Number.isFinite),0);return{fileName:`${t} · GPOs`,fileSize:0,lastModified:y,format:"GPO Backup",rawText:"",sheets:[m],profileId:"generic",profileVersion:"gpo-work-comparison-1.2.1",scanTool:"GPOs"}}const[g,...S]=e.sheets,x=g?.isProjectSheet?(()=>{const y=g.rows[0]??[],w=[...y];for(const N of l)w.includes(N)||w.push(N);const C=g.rows.slice(1).map(N=>{const B=new Map(y.map((A,z)=>[A,N[z]??""]));return w.map(A=>B.get(A)??"")}),k=T.map(N=>{const B=new Map(l.map((A,z)=>[A,N[z]??""]));return B.set("Source: File",t),B.set("Source: Sheet","GPOs"),w.map(A=>B.get(A)??"")}),E=[w,...C,...k],O=es(g.name,E,Ns(E),g.sourceFile??t,{id:g.id,sourceFile:g.sourceFile,sourceSheet:g.sourceSheet,isProjectSheet:!0});return O.analysis.records=O.analysis.records.map((N,B)=>{const A=g.analysis.records[B],z=B-g.analysis.records.length,P=m.analysis.records[z];if(!A&&P?.policyReviewMembers)for(const K of f[z].reviewMembers??[]){const I=new Map(l.map((L,le)=>[L,K.row[le]??""]));I.set("Source: File",t),I.set("Source: Sheet","GPOs"),P.policyReviewMembers.push({baseline:K.baseline,id:_h({sourceFile:g.sourceFile??t,sheetName:g.name,headers:w,row:w.map(L=>I.get(L)??"")})})}return A?{...N,findingOccurrenceId:A.findingOccurrenceId,findingDefinitionId:A.findingDefinitionId,scanRunId:A.scanRunId,importFileId:A.importFileId,policyFailingBackupSources:A.policyFailingBackupSources,policySourceEvidence:A.policySourceEvidence,policyBaselineLabels:A.policyBaselineLabels,policyReviewMembers:A.policyReviewMembers}:{...N,...P?.policyReviewMembers?{id:P.id,policyReviewMembers:P.policyReviewMembers}:{},policyFailingBackupSources:f[B-g.analysis.records.length]?.failingBackupSources,policySourceEvidence:f[B-g.analysis.records.length]?.sourceEvidence,policyBaselineLabels:f[B-g.analysis.records.length]?.baselineLabels}}),O})():g;return{...e,sheets:x?[x,m,...S]:[m],scanTool:e.scanTool==="GPOs"?e.scanTool:"Multiple Tools"}}function XL(e,t){const n=new Set(t),a=e.scanRuns.filter(m=>n.has(m.id));if(!a.length)return null;const i=e.importFiles.filter(m=>n.has(m.scanRunId)),r=new Set(i.map(m=>m.id)),c=e.sourceTables.filter(m=>r.has(m.importFileId)),l=new Set(c.map(m=>m.id)),f=e.findingOccurrences.filter(m=>n.has(m.scanRunId)),T=new Set(f.map(m=>m.id)),p=new Set(f.map(m=>m.definitionId));return{...e,scanRuns:a,importFiles:i,sourceTables:c,findingDefinitions:e.findingDefinitions.filter(m=>p.has(m.id)),findingOccurrences:f,evidence:e.evidence.filter(m=>T.has(m.occurrenceId)),reviews:e.reviews.filter(m=>m.target.kind==="definition"?p.has(m.target.definitionId):T.has(m.target.occurrenceId)),diagnostics:e.diagnostics.filter(m=>r.has(m.importFileId)&&(m.sourceTableId===void 0||l.has(m.sourceTableId))),environmentObservations:e.environmentObservations?.filter(m=>n.has(m.scanRunId)&&r.has(m.importFileId)),reportSections:e.reportSections?.filter(m=>n.has(m.scanRunId)&&r.has(m.importFileId))}}function e6(e,t,n){const a=n===void 0?void 0:new Set(e.filter(i=>n.has(i.run.id)).map(i=>i.run.aggregationRunId));return WF(e.filter(i=>(a===void 0||a.has(i.run.aggregationRunId))&&i.results.some(r=>r.observationIds.some(c=>t.has(c)))&&i.results.every(r=>r.observationIds.every(c=>t.has(c)))),{allowPreviousVersionForDisplay:!0})}async function ch(e,t,n,a){const i=await e.listProjectAssessments(t),r=a?i.filter(C=>a.includes(C.id)):i,c=await Promise.all(r.map(C=>e.loadAssessmentModel(C.id))),l=n?.length?c.map(C=>XL(C,n)).filter(C=>C!==null):c,f=[...new Set((a?r:l).map(C=>"assessment"in C?C.assessment.id:C.id))],T=e.queryUnifiedResults&&f.length?await dm(C=>e.queryUnifiedResults(C),{audience:"internal-analysis",projectId:t,assessmentIds:f,sourceKind:["policy-observation"]}):[],p=TL(l);if(p?.securityScoring){const C=new Set(f),k=l.map(A=>Date.parse(A.assessment.effectiveAt??A.assessment.createdAt)).filter(Number.isFinite),E=k.length?Math.min(...k):void 0,O=E===void 0?[]:i.filter(A=>!C.has(A.id)&&Date.parse(A.effectiveAt??A.createdAt)<E),N=new Map(c.map(A=>[A.assessment.id,A])),B=new Map;for(const A of O.sort((z,P)=>Date.parse(z.effectiveAt??z.createdAt)-Date.parse(P.effectiveAt??P.createdAt)))try{const z=N.get(A.id)??await e.loadAssessmentModel(A.id);for(const P of Lb([z]))B.set(P.comparisonKey??`unverified:${P.toolId}:${P.contentSha256??P.id}`,P)}catch{p.securityScoring.historyUnavailable=!0}O.length&&(p.securityScoring.baseline=[...B.values()])}const[m,g]=T.length&&e.listPolicyEvaluations?await Promise.all([e.listPolicyEvaluations(t),e.getPolicyAnalysisOverview?.(t)]):[],S=e6(m?.records??[],new Set(T.map(C=>C.sourceResultId)),g?new Set(g.current.evaluationRunIds):void 0),x=l[0]?.project.name??i.find(C=>f.includes(C.id))?.name??t,y=up(S);if(e.listMicrosoftSecurityBaselineAnalyses){const C=new Map;for(const k of S)for(const E of new Set(k.results.map(O=>O.baselineId)))C.set(E,[...C.get(E)??[],{...k,results:k.results.filter(O=>O.baselineId===E)}]);for(const[k,E]of C)try{const O=await e.listMicrosoftSecurityBaselineAnalyses(k);for(const[N,B]of up(E,O.records))y.set(N,B)}catch{for(const O of E)for(const N of O.results){const B=y.get(N.id);B&&y.set(N.id,{...B,descriptionLoadFailed:!0})}}}const w=GL(p,x,T,S,y);return w&&!w.securityScoring&&(w.securityScoring={policy:l[0]?.assessment.scoringPolicy??T1(),scans:[]}),{models:l,assessmentIds:f,dataset:w}}const w3="ASSESSOR.importFingerprints.v1",C3="ASSESSOR.lastImportReport.v1";function E3(e,t,n){return{...e,phase:"preview",preview:t,error:n}}function t6(e){if(e.mapping&&e.recognition){const t=new Set(e.recognition.tables.filter(n=>n.selected).map(n=>n.tableIndex));return e.mapping.candidates.filter(n=>n.source.tableIndex===void 0||t.has(n.source.tableIndex)).length}return e.mapping?.candidates.length??e.sheets.reduce((t,n)=>t+n.analysis.records.length,0)}function n6(e){return e.sheets.reduce((t,n)=>t+n.analysis.records.length,0)}function a6(e){const t=e.recognition;return Number(t?.source.requiresConfirmation??!1)+(t?.tables.filter(n=>n.requiresConfirmation).length??0)}function KL(e){return[...(e.intermediate?.diagnostics??[]).filter(t=>t.severity==="warning").map(t=>t.message),...(e.intermediate?.discardedContent??[]).map(t=>t.reason)]}function $L(e,t,n,a){const i=e.recognition,r=KL(e),c=i?.fields.filter(f=>f.appliedRole==="additional").map(f=>f.sourceHeader).filter((f,T,p)=>!!f&&p.indexOf(f)===T)??[],l=a6(e);return{id:`${t.sha256}:${t.fileName}`,...t,status:n?"duplicate":r.length||l||a?"warning":"ready",selected:!n,duplicateOf:n,possibleDuplicateOf:a,format:e.format,toolId:i?.source.selected.toolId??e.profileId,toolName:i?.source.selected.toolName??e.scanTool,confidence:i?.source.selected.confidence.level,confidenceScore:i?.source.selected.confidence.score,tableCount:e.sheets.length,recordCount:t6(e),rowCount:n6(e),warningMessages:r,errorMessages:[],unassignedFields:c,mappingsToConfirm:l,dataset:e}}function YL(e,t){return e.map(n=>(t.reimport||t.singleFile)&&n.status!=="error"&&n.dataset?{...n,selected:!0}:n)}function ZL(e,t){return{id:`${e.sha256}:${e.fileName}`,...e,status:"error",selected:!1,tableCount:0,recordCount:0,rowCount:0,warningMessages:[],errorMessages:[t],unassignedFields:[],mappingsToConfirm:0}}function JL(e,t=[]){const n=e.dataset?.recognition;if(!n)return{...e,mappingsToConfirm:0};const a={sourceTool:n.source.requiresConfirmation?{toolId:n.source.selected.toolId,toolName:n.source.selected.toolName}:void 0,tableSelections:Object.fromEntries(n.tables.filter(f=>f.requiresConfirmation).map(f=>[f.tableId,f.selected])),fieldRoles:n.fields.filter(f=>f.requiresConfirmation).map(f=>({tableId:f.tableId,columnIndex:f.columnIndex,role:f.proposedRole??f.appliedRole}))},i=t.length?xv(e.dataset,a,t):{...e.dataset,recognition:i4(n,a)},r=i.mapping?.fieldDecisions.filter(f=>f.requiresConfirmation&&f.sourceScope.tableIndex===void 0).map(f=>({decisionId:f.id,role:f.proposedRole??f.appliedRole}))??[],c=t.length&&r.length?xv(e.dataset,{...a,candidateFieldRoles:r},t):i,l=a6(c);return{...e,status:l||e.warningMessages.length||e.possibleDuplicateOf?"warning":"ready",mappingsToConfirm:l,recordCount:t6(c),rowCount:n6(c),dataset:c}}function k3(e,t){if(!e)return;const n=e.source.decisionSource==="user-confirmed"?{toolId:e.source.selected.toolId,toolName:e.source.selected.toolName}:void 0,a=e.tables.filter(l=>l.decisionSource==="user-confirmed"),i=a.length?Object.fromEntries(a.map(l=>[l.tableId,l.selected])):void 0,r=e.fields.filter(l=>l.decisionSource==="user-confirmed").map(l=>({tableId:l.tableId,columnIndex:l.columnIndex,role:l.appliedRole})),c=t?.fieldDecisions.filter(l=>l.decisionSource==="user-confirmed"&&l.sourceScope.tableIndex===void 0).map(l=>({decisionId:l.id,role:l.appliedRole}))??[];return n||i||r.length||c.length?{sourceTool:n,tableSelections:i,fieldRoles:r.length?r:void 0,candidateFieldRoles:c.length?c:void 0}:void 0}function A3(e,t,n=new Date().toISOString()){const a=e.entries.map(i=>({fileName:i.fileName,sha256:i.sha256,status:t.has(i.id)?"imported":i.status==="error"?"failed":"skipped",messages:[...i.warningMessages,...i.errorMessages],recordCount:t.has(i.id)?i.recordCount:0}));return{version:1,batchId:e.batchId,completedAt:n,importedFiles:a.filter(i=>i.status==="imported").length,importedRecords:a.reduce((i,r)=>i+r.recordCount,0),skippedFiles:a.filter(i=>i.status==="skipped").length,failedFiles:a.filter(i=>i.status==="failed").length,duplicateFiles:e.entries.filter(i=>i.status==="duplicate").length,warningCount:e.entries.reduce((i,r)=>i+r.warningMessages.length,0),entries:a}}function lh(e){const t=()=>{try{const n=JSON.parse(e.getItem(w3)??"[]");return Array.isArray(n)?n.filter(a=>typeof a=="object"&&a!==null&&"sha256"in a):[]}catch{return[]}};return{load:t,record(n,a=new Date().toISOString()){const i=new Map(t().map(c=>[c.sha256,c]));n.forEach(c=>{const l=i.get(c.sha256);i.set(c.sha256,l?{...l,...c,lastImportedAt:a,importCount:l.importCount+1}:{...c,firstImportedAt:a,lastImportedAt:a,importCount:1})});const r=[...i.values()].sort((c,l)=>c.sha256.localeCompare(l.sha256));return e.setItem(w3,JSON.stringify(r)),r}}}async function QL(e){const t=await crypto.subtle.digest("SHA-256",await e.arrayBuffer());return[...new Uint8Array(t)].map(n=>n.toString(16).padStart(2,"0")).join("")}function eP(e,t,n){const a={...e.reviews,[t]:{...hr(),...e.reviews[t],...n}},i=Object.values(a).some(r=>r.include);return{reviews:a,actionOnly:e.actionOnly&&i}}function i6(e,t){return[...new Map((e.policyReviewMembers??[]).map(n=>[n.id,n])).values()].flatMap(n=>t[n.id]&&!Jc(t[n.id],hr())?[{...n,review:t[n.id]}]:[])}const R3={"question-needed":"markerQuestion","permission-blocked":"markerBlocked","quick-win":"markerQuickwin","external-team":"markerExternal","not-relevant":"markerNotRelevant"},tP={Open:"open","In Review":"in-progress","Clarification Needed":"deferred",Actionable:"accepted",Blocked:"deferred",Done:"resolved","Not Relevant":"not-relevant"},nP={unreviewed:"Open",open:"Open","in-progress":"In Review",accepted:"Actionable",deferred:"Blocked",resolved:"Done","not-relevant":"Not Relevant"},aP={Critical:"critical",High:"high",Medium:"medium",Low:"low",None:"none"};function Ur(e){return e===""?void 0:e}function dp(e){return e.kind==="occurrence"?`occurrence:${e.occurrenceId}`:`definition:${e.definitionId}`}function Su(e){const t=new Set(e.markers);return{...hr(),riskAcceptance:e.riskAcceptance,include:e.includeInActionPlan,status:e.workflowLabel??nP[e.workflowStatus],priority:e.priority[0].toUpperCase()+e.priority.slice(1),owner:e.owner??"",due:e.dueAt??"",prerequisites:e.prerequisites??"",access:e.requiredAccess??"",nextStep:e.nextStep??"",evidence:e.acceptanceEvidence??"",comment:e.comment??"",markerQuestion:t.has("question-needed"),markerBlocked:t.has("permission-blocked"),markerQuickwin:t.has("quick-win"),markerExternal:t.has("external-team"),markerNotRelevant:t.has("not-relevant")}}function D3(e,t,n,a){const i=new Set(Object.keys(R3)),r=(n?.markers??[]).filter(c=>!i.has(c));for(const[c,l]of Object.entries(R3))e[l]&&r.push(c);return{...n,id:n?.id??`review-${t.kind}-${t.kind==="occurrence"?t.occurrenceId:t.definitionId}`,target:t,workflowStatus:tP[e.status]??"open",workflowLabel:e.status,priority:aP[e.priority]??"medium",includeInActionPlan:e.include,owner:Ur(e.owner),dueAt:Ur(e.due),comment:Ur(e.comment),prerequisites:Ur(e.prerequisites),requiredAccess:Ur(e.access),nextStep:Ur(e.nextStep),acceptanceEvidence:Ur(e.evidence),riskAcceptance:e.riskAcceptance,markers:r,createdAt:n?.createdAt??a,updatedAt:a,revision:(n?.revision??0)+1}}function Jc(e,t){return Object.keys(hr()).every(n=>n==="riskAcceptance"?JSON.stringify(e.riskAcceptance)===JSON.stringify(t.riskAcceptance):e[n]===t[n])}function bu(e){const t=new Map;for(const n of e.sheets.flatMap(a=>a.analysis.records)){if(!n.findingOccurrenceId)continue;const a=t.get(n.findingOccurrenceId)??[];a.includes(n.id)||a.push(n.id),t.set(n.findingOccurrenceId,a)}return t}function uh(e,t,n){const a={...n};for(const r of e.sheets.flatMap(c=>c.analysis.records)){if(a[r.id]||!r.policyReviewMembers)continue;const c=i6(r,n);c.length&&c.every(l=>!l.review.riskAcceptance&&Jc(l.review,c[0].review))&&(a[r.id]={...c[0].review})}const i=new Map;for(const r of t){const c=dp(r.target),l=i.get(c);(!l||r.revision>l.revision)&&i.set(c,r)}for(const[r,c]of bu(e)){const l=e.sheets.flatMap(p=>p.analysis.records).find(p=>p.findingOccurrenceId===r)?.findingDefinitionId,f=i.get(`occurrence:${r}`)??(l?i.get(`definition:${l}`):void 0),T=f?Su(f):c.map(p=>n[p]).find(Boolean);T&&c.forEach(p=>{a[p]=T})}return{reviews:a,persisted:i}}function s6(e){const t=je(e??"");if(!t)return"";const n=t.replace(/\.[^.]+$/,""),a=/[([{]([^)\]}]+)[)\]}]\s*$/.exec(n);return(a?a[1].trim():n.trim())||t}const I3={legacy:"unknown",outcome:"unknown",technical:"unknown"},iP=[{pattern:/^not configured$/,legacy:"open",outcome:"informational"},{pattern:/^no baseline rule$/,legacy:"open",outcome:"informational"},{pattern:/^not comparable$/,legacy:"open",outcome:"informational"},{pattern:/^misconfigured$/,legacy:"failed"},{pattern:/failed\s*to\s*run|execution.?error|technical.?error/,legacy:"error"},{pattern:/not\s*(?:applicable|relevant)|irrelevant|nicht\s*(?:anwendbar|relevant)/,legacy:"not-applicable"},{pattern:/not\s*(?:run|selected|executed)|nicht\s*(?:ausgef(?:ue|ü)hrt|ausgew(?:ae|ä)hlt)|skipped|cancell?ed|abgebrochen/,legacy:"not-run"},{pattern:/not\s*pass(?:ed)?|nicht\s*bestanden/,legacy:"failed"},{pattern:/ioe(?:s)?\s*(?:found|detected)|indicator\s*of\s*exposure/,legacy:"failed"},{pattern:/resolved|closed|behoben/,legacy:"resolved"},{pattern:/^pass(?:ed)?$|bestanden/,legacy:"passed"},{pattern:/^fail(?:ed)?$|fehlgeschlagen/,legacy:"failed"},{pattern:/matched|detected|gefunden/,legacy:"open",outcome:"warning"},{pattern:/error|fehler/,legacy:"error"},{pattern:/manual/,legacy:"manual"},{pattern:/investigate|pr(?:ue|ü)fen/,legacy:"investigate"},{pattern:/^conflicts?$|^duplicates?$/,legacy:"open",outcome:"warning"},{pattern:/open|offen/,legacy:"open"},{pattern:/pass/,legacy:"passed"},{pattern:/fail/,legacy:"failed"}],sP=new Map(ei.map(e=>[e.id,e]));function N3(e,t){return{legacy:e,outcome:t??um(e),technical:zF(e)}}function rP(e,t){const n=je(t);if(!n)return I3;const i=(e?sP.get(e)?.normalization.status:void 0)?.find(c=>c.patterns.some(l=>l.test(n)));if(i)return N3(i.normalizedValue);const r=iP.find(c=>c.pattern.test(n.toLocaleLowerCase("de-DE")));return r?N3(r.legacy,r.outcome):I3}const oP=new Map(ei.map(e=>[e.name.toLocaleLowerCase("en-US"),e.id])),cP=/^(?:quelle|source):\s*scan$/i;function oa(e,t){const n=e.fields.find(i=>cP.test(i.label.trim())&&i.value),a=je(n?.value.split(/\s*(?:\u00c2\u00b7|\u00b7)\s*/)[0]??"").toLocaleLowerCase("en-US");return a==="gpos"?"group-policy":oP.get(a)??t}function Yu(e,t){if(je(t??""))return rP(e,t).outcome}const lP=/^rule\s*id$/i,uP=/^benchmark\s*item$/i,dh=/^\s*(\d+(?:\.\d+)+)(?=\s|$)/;function dP(e,t){if(oa(e,t)!=="cis-cat")return"";const n=e.fields.find(i=>lP.test(i.label.trim())&&i.value)?.value??"",a=e.fields.find(i=>uP.test(i.label.trim())&&i.value)?.value??"";return dh.exec(n)?.[1]??dh.exec(a)?.[1]??dh.exec(e.title)?.[1]??""}function M1(e,t){const n=dP(e,t);if(!n)return[];const a=n.split(".");return a.slice(0,-1).map((i,r)=>`CIS ${a.slice(0,r+1).join(".")}`)}function md(e=4){const t=new WeakMap;return(n,a,i)=>{const r=t.get(n)??[],c=r.findIndex(f=>f.keys.length===a.length&&f.keys.every((T,p)=>Object.is(T,a[p])));if(c>=0){const[f]=r.splice(c,1);return r.unshift(f),f.value}const l=i();return r.unshift({keys:a,value:l}),r.length=Math.min(r.length,e),t.set(n,r),l}}const r6="derived:security-domain",gd=[{id:"identity",label:"Identity & Account Hygiene",glyph:"user",pattern:/account|identity|user|password|stale|inactive|honey\s*pot/i},{id:"privilege",label:"Privilege & Attack Paths",glyph:"shield",pattern:/privileg|admin|delegat|control\s*path|attack\s*path|tier\s*0|pim/i},{id:"authentication",label:"Authentication & Access",glyph:"lock",pattern:/authenticat|\bmfa\b|conditional\s*access|kerberos|sign[ -]?in|break[ -]?glass/i},{id:"infrastructure",label:"AD Infrastructure & PKI",glyph:"server",pattern:/domain\s*controller|forest|\btrust|certificate|\bpki\b|\bdns\b|replication|schema/i},{id:"hardening",label:"System Hardening",glyph:"code",pattern:/cis-cat|benchmark|hardening|firewall|attack\s*surface|\basr\b|defender|operating\s*system/i},{id:"gpo",label:"GPO & Baseline",glyph:"policy",pattern:/\bgpo\b|group\s*policy|baseline|policy\s*(?:setting|deviation|conflict)|duplicates?/i},{id:"cloud",label:"Cloud & Applications",glyph:"cloud",pattern:/\bcloud\b|\bentra\b|application|\bapps?\b|exchange|teams|sharepoint|guest|intune|purview/i},{id:"recovery",label:"Monitoring & Recovery",glyph:"chart",pattern:/audit|monitor|logging|\bwef\b|backup|recover|recycle\s*bin|sensor|event\s*log/i}],lo={id:"unclassified",label:"Unclassified"},O3=new WeakMap;function TP(e){let t=O3.get(e);if(t===void 0){const n=e.fields;t={text:[e.title,...n.filter(a=>/^(?:title|name|finding|description|category|subcategory|sub-category|categories|control area|policy section|policy type)$/i.test(a.label.trim())).map(a=>a.value)].join(" "),explicitGpo:n.some(a=>/^category$/i.test(a.label.trim())&&/^gpos?$/i.test(a.value.trim()))},O3.set(e,t)}return t}function pm(e){const t=TP(e);return t.explicitGpo?"gpo":gd.find(n=>n.pattern.test(t.text))?.id??lo.id}function fP(e){const t=new Map([...gd.map(n=>[n.id,[]]),[lo.id,[]]]);return e.forEach(n=>t.get(pm(n)).push(n)),t}const Tp=24,hP=10,o6="derived:gpo-failing-backup",c6="__all_counted_gpo_backups__",pP=[{value:"deviation",label:Ya.deviation},{value:"passed",label:Ya.passed},{value:"not-configured",label:Ya["not-configured"]},{value:"no-baseline-rule",label:Ya["no-baseline-rule"]},{value:"not-comparable",label:Ya["not-comparable"]},{value:"conflicts",label:Ya.conflicts},{value:"duplicates",label:Ya.duplicates}],fp=["result status","category","security domain","baseline","comparison","conflict","description source","diagnostics","duplicates","gpo backups with failing settings","imported","policy section","policy type","source: scan"],l6=new Set(fp),mP=new Set([...l6].filter(e=>e!=="result status"&&e!=="category"&&e!=="security domain"&&e!=="source: scan")),u6={severity:"Severity",status:"Status",category:"Category",asset:"Affected Object",score:"Score","framework-reference":"Framework","rule-id":"Rule ID"},gP=new Set(["title","description","recommendation","evidence"]),vP=/^(?:remediation|remediation\s*guidance|recommended\s*action|recommendation|advised\s*solution|solution|fix|description|beschreibung|rationale|explanation|technical\s*explanation|evidence|nachweis|proof|result\s*detail|resultdetail|details?|title|titel|l(?:oe|ö)sung|ma(?:ss|ß)nahme)$/i,xP={severity:100,status:95,category:90,asset:80,score:75,"framework-reference":70,"rule-id":30},d6=[{pattern:/^(?:severity|schweregrad|criticality|kritikalit(?:ae|ä)t)$/i,priority:98},{pattern:/^(?:category|kategorie)$/i,priority:92},{pattern:/^security\s+domain$/i,priority:91.5},{pattern:/^cis\s+category$/i,priority:91},{pattern:/^mitre\s*att&?ck$/i,priority:88},{pattern:/^mitre\s*d3fend$/i,priority:86},{pattern:/^(?:target|ziel|betroffenes objekt|asset)$/i,priority:84},{pattern:/^result\s*message$/i,priority:82}];function M3(e,t){const n=d6.find(a=>a.pattern.test(je(e)));return n?n.priority:xP[t??"additional"]??50}function j1(e){return je(e).toLocaleLowerCase("de-DE")}function mm(e,t){return je(e.fields[t]?.value)}function wu(e){const t=je(e),n=/^(\d{4})-(\d{2})-(\d{2})/.exec(t);if(n)return Date.UTC(Number(n[1]),Number(n[2])-1,Number(n[3]));const a=/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/.exec(t);if(a)return Date.UTC(Number(a[3]),Number(a[2])-1,Number(a[1]));const i=Date.parse(t);return Number.isFinite(i)?i:null}function yP(e,t){return e==="severity"||kb(t)}function T6(e,t){return e?Eb(t):j1(t)}function hp(e,t){return e.derivedKind==="policy-failing-backup"?t:T6(e.severityScale,t)}function SP(e){if(!e.some(a=>a.policyFailingBackupSources!==void 0))return null;const t=new Map;let n=0;for(const a of e){a.policyFailingBackupSources?.length&&(n+=1);for(const i of a.policyFailingBackupSources??[]){const r=t.get(i.id);r?r.count+=1:t.set(i.id,{value:i.id,label:i.label,count:1})}}return{id:o6,label:"GPO backups with failing settings",source:"derived",kind:"category",derivedKind:"policy-failing-backup",preserveEmptyValues:!0,description:"Sources linked to Fail comparisons in the loaded Work scope, as counted in Processing. A source may also contain a passing member value. Selecting a source sets Result Status to All; other Work filters still apply. Option counts are comparison rows. Historical evaluations retain their review status.",values:[{value:c6,label:`All counted GPOs (${t.size})`,count:n},...[...t.values()].sort((a,i)=>a.label.localeCompare(i.label)||a.value.localeCompare(i.value))]}}function bP(e){if(!e.length)return null;const t=new Map;e.forEach(a=>{const i=pm(a);t.set(i,(t.get(i)??0)+1)});const n=gd.map(a=>({value:a.id,label:a.label,count:t.get(a.id)??0}));return t.has(lo.id)&&n.push({value:lo.id,label:lo.label,count:t.get(lo.id)}),{id:r6,label:"Security Domain",source:"derived",kind:"category",derivedKind:"security-domain",preserveEmptyValues:!0,values:n}}function wP(e,t){return t<0||!e.some(n=>n.policyBaselineLabels!==void 0)?null:{id:`field:${t}`,label:"Baseline",source:"derived",kind:"category",derivedKind:"policy-baseline",values:F1(e.flatMap(n=>n.policyBaselineLabels??[]))}}function F1(e,t=!1){const n=new Map;e.forEach(i=>{const r=je(i);if(!r)return;const c=T6(t,r),l=t?Cb[c]??r:r,f=n.get(c);n.set(c,{label:f?.label??l,count:(f?.count??0)+1})});const a=[...n.entries()].map(([i,r])=>({value:i,label:r.label,count:r.count}));return t?a.sort((i,r)=>sp(i.value)-sp(r.value)):a.sort((i,r)=>r.count-i.count||i.label.localeCompare(r.label,"en-US"))}function CP(e,t,n,a=t.length,i=!1){const r=n==="category"&&t.length>0&&t.length<a,c=n==="category"&&i&&t.length>0;if(t.length<2&&!r&&!c||e.type==="Text"&&n!=="category"||e.type==="leer")return!1;const l=new Set;for(const m of t)if(l.add(j1(m)),l.size>Tp)return!1;const f=l.size,T=t.reduce((m,g)=>m+g.length,0)/t.length;return f<2&&!r&&!c||f>Tp||T>72?!1:n==="severity"||n==="status"||n==="category"||n==="asset"||n==="framework-reference"||f<=10||f/t.length<=.5}function EP(e,t,n,a,i){const r=i.map(T=>mm(T,t)).filter(Boolean),c=e.type==="Zahl"?r.map(vi).filter(T=>T!==null):r.map(wu).filter(T=>T!==null);if(c.length<2)return null;const{minimum:l,maximum:f}=c.reduce((T,p)=>({minimum:Math.min(T.minimum,p),maximum:Math.max(T.maximum,p)}),{minimum:Number.POSITIVE_INFINITY,maximum:Number.NEGATIVE_INFINITY});return l===f?null:{id:`field:${t}`,label:u6[n??"additional"]??e.header,kind:e.type==="Zahl"?"number-range":"date-range",source:"field",values:[],columnIndex:t,role:n,confidence:a,minimum:l,maximum:f}}function Th(e){return j1(e).replace(/[\s_-]*\d+$/,"")}function f6(e,t){const n=new Set;return t.forEach(a=>{const i=mm(e,a);i&&n.add(i)}),[...n]}function kP(e,t,n){const a=t?.recognition?.fields.filter(l=>l.tableId===e.id)??[],i=new Map;e.analysis.columns.forEach(l=>{if(l.type==="Zahl"||l.type==="Datum")return;const f=Th(l.header);i.set(f,(i.get(f)??0)+1)});const r=new Set,c=new Map;return e.analysis.columns.flatMap((l,f)=>{const T=a.find(E=>E.columnIndex===f),m=(T?.appliedRole==="additional"?void 0:T?.appliedRole)??(/^(?:category|kategorie)$/i.test(je(l.header))?"category":void 0);if(m==="score"||j1(l.header)==="score")return[];if(m&&gP.has(m))return[];if(vP.test(je(l.header)))return[];if(n&&(m==="status"||/^(?:status|ergebnis|result)$/i.test(je(l.header))))return[];if(/^(?:quelle|source):\s*(?:datei|blatt|file|sheet)$/i.test(je(l.header))&&e.analysis.columns.some(E=>/^(?:quelle|source):\s*scan$/i.test(je(E.header))))return[];if(l.type==="Zahl")return[];if(l.type==="Datum"){const E=EP(l,f,m,T?.confidence.level,e.analysis.records);return E?[{...E,priority:M3(E.label,m)}]:[]}if(l.type==="Text"&&m!=="category"||l.type==="leer")return[];const g=Th(l.header),S=(i.get(g)??0)>1;if(S&&r.has(g))return[];const x=S?e.analysis.columns.flatMap((E,O)=>E.type!=="Zahl"&&E.type!=="Datum"&&Th(E.header)===g?[O]:[]):[f];if(/^(?:quelle|source):\s*scan$/i.test(je(l.header)))return[];let w=S?c.get(g):void 0;if(w||(w=e.analysis.records.flatMap(E=>f6(E,x)),S&&c.set(g,w)),!CP(l,w,m,e.analysis.records.length,e.toolId==="group-policy"))return[];S&&r.add(g);const C=u6[m??"additional"]??(S?je(l.header).replace(/[\s_-]*\d+$/,""):l.header),k=yP(m,l.header);return[{id:`field:${x.join("+")}`,label:C,kind:"category",source:"field",values:F1(w,k),columnIndex:f,columnIndexes:x,role:m,severityScale:k,confidence:T?.confidence.level,priority:M3(C,m)}]})}function AP(e,t,n=!1){const a=t.presentation.statusFilters.filter(i=>i.value!=="all");return a.length?{id:"profile:status",label:"Result Status",kind:"category",source:"profile-status",preserveEmptyValues:n,values:a.map(i=>({value:i.value,label:i.label,count:e.analysis.records.filter(r=>t.matchesStatus(r,i.value)).length})).filter(i=>n||i.count>0)}:null}function fh(e){const t=F1(e.values);return t.length<2||t.length>Tp?null:{...e,kind:"category",values:t}}const RP=md();function DP(e,t,n){return RP(e,[t,n],()=>{const a=AP(e,n,e.toolId==="group-policy"||!!t?.sheets?.some(f=>f.toolId==="group-policy")),i=e.analysis.records.flatMap(f=>M1(f,n.id)),r=F1(i),c=r.length?{id:"derived:cis-benchmark-category",label:"CIS Category",kind:"category",source:"derived",values:r,derivedKind:"cis-benchmark-category",fallbackToolId:n.id}:null,l=kP(e,t,!!a).sort((f,T)=>T.priority-f.priority||f.label.localeCompare(T.label,"en-US")).map(({priority:f,...T})=>T);return{profileFacet:a,cisCategories:c,fields:l}})}function h6(e){return je(e.fields.find(t=>/^(?:quelle|source):\s*scan$/i.test(je(t.label)))?.value)}const j3=new WeakMap;function IP(e){let t=j3.get(e);return t||(t=F1(e.map(h6).filter(Boolean)),j3.set(e,t)),t}function NP(e,t,n){const i=t?.sheets?.find(f=>f.isProjectSheet&&f.analysis.records.length)?.analysis.records??e.analysis.records,r=IP(i),c=je(t?.scanTool||n.name||e.toolId||""),l=r.length?r:c?[{value:j1(c),label:c,count:i.length}]:[];return l.length?{id:"provenance:source-scan",label:"Source: Scan",kind:"category",source:"provenance",values:l}:null}function p6(e,t){if(!(!e||t?.isProjectSheet))return e.sheets.find(n=>n.isProjectSheet&&n.analysis.records.length)}const F3=new WeakMap;function m6(e,t,n,a){if(e.toolId)return e.toolId;const i=n?.["provenance:source-scan"];if(!i?.values?.length)return;const r=[...i.values].sort().join("\0");let c=F3.get(e.analysis.records);c||(c=new Map,F3.set(e.analysis.records,c));const l=c.get(r);if(l!==void 0)return l||void 0;const f=t.find(g=>g.id==="provenance:source-scan");if(!f)return;const T=e.analysis.records.filter(g=>p1(g,[f],{[f.id]:i},a));if(!T.length){c.set(r,!1);return}const p=new Set(T.map(g=>oa(g,e.toolId)).filter(Boolean)),m=p.size===1?[...p][0]:void 0;return c.set(r,m??!1),m}const OP=md(),MP=[];function l0(e,t,n,a,i){return e?.analysis.records.length?OP(e,[t,n,a,i],()=>jP(e,t,n,a,i)):MP}function jP(e,t,n,a,i){if(!e?.analysis.records.length)return[];const{profileFacet:r,cisCategories:c,fields:l}=DP(e,t,n),f=NP(e,t,n),T=e.analysis.records.map(k=>a[k.id]).filter(k=>!!k),p=[fh({id:"review:status",label:"Review Status",source:"review",reviewField:"status",values:T.map(k=>k.status).filter(Boolean)}),fh({id:"review:priority",label:"Priority",source:"review",reviewField:"priority",values:T.map(k=>k.priority).filter(Boolean)}),fh({id:"review:owner",label:"Owner",source:"review",reviewField:"owner",values:T.map(k=>k.owner).filter(Boolean)})].filter(k=>!!k),m=wP(e.analysis.records,e.analysis.headers.indexOf("Baseline")),g=[r,bP(e.analysis.records),SP(e.analysis.records),m,c,...l.filter(k=>!m||k.label!=="Baseline"),...p,f].filter(k=>!!k),S=i??e.toolId,x=S==="group-policy"?g.filter(k=>l6.has(je(k.label).toLocaleLowerCase("en-US"))).map(k=>{if(k.source==="profile-status"){const E=new Map(k.values.map(O=>[O.value,O]));return{...k,contextToolId:"group-policy",preserveEmptyValues:!0,values:pP.map(O=>({...O,count:E.get(O.value)?.count??0}))}}return{...k,contextToolId:"group-policy"}}).sort((k,E)=>fp.indexOf(je(k.label).toLocaleLowerCase("en-US"))-fp.indexOf(je(E.label).toLocaleLowerCase("en-US"))):g.filter(k=>!mP.has(je(k.label).toLocaleLowerCase("en-US"))),y=x.find(k=>/^(?:quelle|source):\s*scan$/i.test(je(k.label))),w=S==="group-policy"?13:hP,C=x.filter(k=>k.id!==y?.id).slice(0,Math.max(0,w-(y?1:0)));return y&&C.push(y),C}function FP(e){return e.source==="profile-status"||d6.some(t=>t.pattern.test(je(e.label)))}function LP(e){let t=0;for(;t<e.length&&FP(e[t]);)t+=1;return t}function g6(e){const t=e.facets.filter(i=>e.filters[i.id]&&i.source!=="profile-status"),n=e.facets.filter(i=>i.kind==="category"&&i.id!=="provenance:source-scan"),a=new Map(n.map(i=>[i.id,new Map]));for(const i of e.records){const r=t.filter(l=>!p1(i,[l],{[l.id]:e.filters[l.id]},e.reviews));if(r.length>1)continue;const c=e.matchesStatus(i,e.statusFilter);for(const l of n){if(r.length&&r[0].id!==l.id)continue;const f=l.source==="profile-status"?l.values.filter(p=>e.matchesStatus(i,p.value)).map(p=>p.value):c?[...new Set(x6(i,l,e.reviews).map(p=>hp(l,p)))]:[],T=a.get(l.id);for(const p of f)p&&T.set(p,(T.get(p)??0)+1)}}return e.facets.map(i=>{const r=a.get(i.id);return r?{...i,values:i.values.map(c=>({...c,count:r.get(c.value)??0})).filter(c=>i.preserveEmptyValues||c.count>0||(i.source==="profile-status"?c.value===e.statusFilter:e.filters[i.id]?.values?.includes(c.value)))}:i})}function v6(e,t,n){return t.source==="field"&&t.columnIndex!==void 0?mm(e,t.columnIndex):t.source==="provenance"?t.id==="provenance:source-scan"?h6(e)||(t.values.length===1?t.values[0]?.label??"":""):s6(e.sourceFile):t.source==="review"&&t.reviewField?je(n[e.id]?.[t.reviewField]):""}function x6(e,t,n){if(t.derivedKind==="policy-baseline")return e.policyBaselineLabels??[];if(t.derivedKind==="security-domain")return[pm(e)];if(t.derivedKind==="policy-failing-backup"){const i=e.policyFailingBackupSources;return i?.length?[c6,...i.map(r=>r.id)]:[]}if(t.source==="derived"&&t.derivedKind==="cis-benchmark-category")return M1(e,t.fallbackToolId);if(t.source==="field"&&t.columnIndexes?.length)return f6(e,t.columnIndexes);const a=v6(e,t,n);return a?[a]:[""]}function p1(e,t,n,a){if(!n||!Object.keys(n).length)return!0;const i=new Map(t.map(r=>[r.id,r]));return Object.entries(n).every(([r,c])=>{const l=i.get(r);if(!l||l.source==="profile-status")return!0;const f=v6(e,l,a);if(c.values?.length){const T=c.values.map(m=>hp(l,m));if(!x6(e,l,a).map(m=>hp(l,m)).some(m=>T.includes(m)))return!1}if(l.kind==="number-range"){const T=vi(f);if(T===null)return!1;const p=c.minimum?vi(c.minimum):null,m=c.maximum?vi(c.maximum):null;if(p!==null&&T<p||m!==null&&T>m)return!1}if(l.kind==="date-range"){const T=wu(f);if(T===null)return!1;const p=c.minimum?wu(c.minimum):null,m=c.maximum?wu(c.maximum):null;if(p!==null&&T<p||m!==null&&T>m)return!1}return!0})}const PP=md(),_P=[];function y6(e){return[e.activeProfile,e.dataset,e.reviews,e.search,e.sortColumn,e.sortDirection,e.statusFilter,e.actionOnly,e.pathFindingIds?.length?e.pathFindingIds:void 0,JSON.stringify(e.facetFilters??{})]}function gm(e,t){return e?PP(e,y6(t),()=>qP(e,t)):_P}function qP(e,t){if(!e)return[];const n=l0(e,t.dataset,t.activeProfile,t.reviews),i=m6(e,n,t.facetFilters,t.reviews)==="group-policy"?l0(e,t.dataset,t.activeProfile,t.reviews,"group-policy"):n,r=t.pathFindingIds?.length?new Set(t.pathFindingIds):void 0,c=e.analysis.records.filter(p=>r&&!r.has(p.id)||t.actionOnly&&!t.reviews[p.id]?.include||!t.activeProfile.matchesStatus(p,t.statusFilter)||!p1(p,i,t.facetFilters,t.reviews)?!1:t.search?p.fields.some(m=>ga(m.value).toLocaleLowerCase("en-US").includes(t.search)):!0);if(t.sortColumn==="all"){const p=LF(e.analysis.headers);if(p<0)return c;const m=new Map(c.map(g=>[g,sp(Eb(ga(g.fields[p]?.value)))]));return c.sort((g,S)=>m.get(g)-m.get(S)||g.index-S.index)}const l=e.analysis.headers.indexOf(t.sortColumn);if(l<0)return c;const f=t.sortDirection==="asc"?1:-1,T=new Map(c.map(p=>[p,vi(p.fields[l]?.value)]));return c.sort((p,m)=>{const g=T.get(p),S=T.get(m);return g===null&&S===null?p.index-m.index:g===null?1:S===null?-1:(g-S)*f||p.index-m.index})}function BP(e,t){if(!e.dataset?.sheets.some(a=>a.id===t.activeSheetId))return e;const n=Object.fromEntries(Object.entries(t.facetFilters).map(([a,i])=>[a,{...i,...i.values?{values:[...i.values]}:{}}]));return{...e,...t,facetFilters:n,pathFindingIds:[...t.pathFindingIds]}}const UP={dataset:null,activeSheetId:"",view:"columns",search:"",sortColumn:"all",sortDirection:"desc",titleColumn:"",statusFilter:"deviation",facetFilters:{},pathFindingIds:[],actionOnly:!1,selectedRecordId:"",reviews:{},projectId:"",status:"Ready",theme:"dark",delimiter:"auto",sidebarCollapsed:!1,backendStatus:"checking"};function S6(e,t){return!!(e?.length||t?.length)}function zP(e,t,n){if(!t?.length&&n?.length)return`${e}::assessments::${[...new Set(n)].sort().join("|")}`;if(!t?.length)return e;const a=[...new Set(t)].sort();return`${e}::timeslot::${a.join("|")}`}const Yr=NF,Cc=new gF(new bb),Hi=new qi,vm=H.createContext(null),L3=new WeakMap;function WP(e){const t=L3.get(e);if(t)return t;const n=[...new Set(e.sheets.map(l=>l.toolId).filter(l=>!!l))].map(l=>Yr.find(f=>f.id===l)).filter(l=>!!(l&&l.id!=="generic")),a=e.sheets.some(l=>l.toolId==="group-policy");if(n.length<2&&!a)return n[0]??gi;const i=[gi,...n],r=[...new Map(i.flatMap(l=>l.presentation.statusFilters).map(l=>[l.value,l])).values()],c={...gi,id:"multiple",name:"Multiple Tools",version:n.map(l=>`${l.id}@${l.version}`).sort().join("+"),matchesStatus:(l,f)=>i.filter(T=>T.presentation.statusFilters.some(p=>p.value===f)).some(T=>T.matchesStatus(l,f)),presentation:{...gi.presentation,statusFilters:r}};return L3.set(e,c),c}function qc(e){return e?e.profileId==="generic"&&new Set(e.sheets.map(t=>t.toolId).filter(Boolean)).size>1?WP(e):Yr.find(t=>t.id===e.profileId)??gi:gi}function hh(e,t){return t?.toolId?Yr.find(n=>n.id===t.toolId)??gi:qc(e)}function eo(e,t){return"deviation"}function P3(e){return e!=="system"?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function VP({children:e}){const[t,n]=H.useState({phase:"idle"}),[a,i]=H.useState(),[r,c]=H.useState(),[l,f]=H.useState(),[T,p]=H.useState(""),m=H.useRef(0),g=H.useRef(new Map),S=H.useRef(new Map),[x,y]=H.useState(()=>{const I=localStorage.getItem("ASSESSOR.theme")??localStorage.getItem("exxTableReader.theme")??"dark";return localStorage.setItem("ASSESSOR.theme",I),document.documentElement.dataset.theme=P3(I),{...UP,theme:I}});H.useEffect(()=>{if(!T)return;const I=()=>{Cc.save(T,x.reviews)};if("requestIdleCallback"in window){const le=window.requestIdleCallback(I,{timeout:750});return()=>{window.cancelIdleCallback(le),I()}}const L=globalThis.setTimeout(I,150);return()=>{globalThis.clearTimeout(L),I()}},[x.reviews,T]),H.useEffect(()=>{if(!x.dataset||!x.projectId||x.backendStatus!=="connected")return;const I=globalThis.setTimeout(()=>{for(const[L,le]of bu(x.dataset)){const ue=le.map(te=>x.reviews[te]).find(Boolean);if(!ue)continue;const X=`occurrence:${L}`,F=g.current.get(X);if(F&&Jc(ue,Su(F)))continue;const me=(S.current.get(X)??Promise.resolve()).catch(()=>{}).then(async()=>{const te=g.current.get(X);if(te&&Jc(ue,Su(te)))return;const Ce=D3({...ue,riskAcceptance:te?.riskAcceptance},{kind:"occurrence",occurrenceId:L},te,new Date().toISOString());await Hi.saveReview(Ce,te?.revision??0),g.current.set(dp(Ce.target),Ce)}).catch(()=>{y(te=>te.projectId===x.projectId?{...te,status:"Review could not be saved to the database. The local copy was kept."}:te)});S.current.set(X,me)}},350);return()=>globalThis.clearTimeout(I)},[x.backendStatus,x.dataset,x.projectId,x.reviews]),H.useEffect(()=>{let I=!0;const L=async()=>{try{const X=await Hi.health();I&&y(F=>{const re=X.status==="ok"?"connected":"unavailable";return F.backendStatus===re?F:{...F,backendStatus:re}})}catch{I&&y(X=>X.backendStatus==="unavailable"?X:{...X,backendStatus:"unavailable"})}};L();const le=globalThis.setInterval(()=>{L()},1e4),ue=()=>{L()};return globalThis.addEventListener("focus",ue),()=>{I=!1,globalThis.clearInterval(le),globalThis.removeEventListener("focus",ue)}},[]);const w=H.useCallback(async(I,L,le,ue)=>{const X=[...I];if(X.length){n({phase:"preparing",targetProjectId:L,targetAssessmentId:le,replacesScanRunId:ue}),y(F=>({...F,status:`Checking ${X.length===1?X[0].name:`${X.length} files`}...`}));try{if(ue&&x.backendStatus!=="connected")throw new Error("A safe reimport requires the connected backend to verify the exact SHA-256 identity of the original scan. No data was imported.");if(X.length===1&&X[0].name.toLocaleLowerCase("en-US").endsWith(".json")){const M=yF(await X[0].text());if(M){const Y=hu(M.dataset.fileName,M.dataset.fileSize,M.dataset.lastModified),Z=qc(M.dataset),J=M.dataset.sheets[0],he=Z.defaults(J);y(ge=>({...ge,dataset:M.dataset,activeSheetId:J?.id??"",reviews:M.reviews,projectId:Y,titleColumn:he.titleColumn,sortColumn:he.sortColumn,sortDirection:he.sortDirection,facetFilters:{},pathFindingIds:[],statusFilter:eo(J,he.statusFilter),selectedRecordId:J?.analysis.records[0]?.id??"",actionOnly:!1,view:"columns",status:"Snapshot loaded"})),p(Y),n({phase:"idle"}),await Cc.save(Y,M.reviews);return}}let F;if(x.backendStatus==="connected"){if(F=await Hi.previewImportBatch(X,x.delimiter,L,le,ue),ue&&F.replacesScanRunId!==ue)throw new Error("The backend does not support the current safe reimport contract. Restart the local app and backend before retrying.")}else{const M=new Date().toISOString(),Y=`batch-${Date.now()}-${Math.random().toString(16).slice(2)}`,Z=await Promise.all(X.map(QL)),J=new Map(lh(localStorage).load().map(de=>[de.sha256,de])),he=new Map,ge=[];for(let de=0;de<X.length;de+=1){const fe=X[de],ye=Z[de],qe={sha256:ye,fileName:fe.name,sizeBytes:fe.size,lastModified:fe.lastModified},ae=he.get(ye)??J.get(ye)?.fileName;try{const Ne=await pF(fe,{profiles:Yr,delimiter:x.delimiter});ge.push({...$L(Ne,qe,ae),id:`${Y}:${de}`}),he.has(ye)||he.set(ye,fe.name)}catch(Ne){ge.push({...ZL(qe,Ne instanceof Error?Ne.message:"Unknown parser error"),id:`${Y}:${de}`})}}F={version:1,batchId:Y,createdAt:M,entries:ge}}const re=YL(F.entries,{reimport:!!ue,singleFile:X.length===1}),me={...F,entries:re},te=re.filter(M=>M.selected&&M.dataset&&M.status!=="error"),Ce=re.some(M=>M.status==="error"),ee=re.some(M=>M.duplicateOf||M.possibleDuplicateOf);if(te.length>0&&!Ce&&!ee&&te.every(M=>M.mappingsToConfirm===0)){const M=te.map(Xe=>Xe.dataset),Y=[...new Set(M.map(Xe=>Xe.profileId).filter(Xe=>Xe!=="generic"))],Z=Y.length===1?Yr.find(Xe=>Xe.id===Y[0])??gi:gi,J=M.length===1?M[0]:Qx(M,Z),he=te.map(Xe=>({entryId:Xe.id,sha256:Xe.sha256,fileName:Xe.fileName,sizeBytes:Xe.sizeBytes,lastModified:Xe.lastModified,recognitionOverrides:k3(Xe.dataset?.recognition,Xe.dataset?.mapping)}));let ge;if(x.backendStatus==="connected"){if(ue&&F.replacesScanRunId!==ue)throw new Error("The reimport preview is not bound to the selected scan. Restart the local app and backend before retrying.");const Xe=await Hi.completeImportBatch(F.batchId,he,L,le,ue);if(ue&&Xe.replacedScanRunId!==ue)throw new Error("The backend did not confirm the selected replacement target.");ge=Xe.projectId}else lh(localStorage).record(he.map(({entryId:Xe,recognitionOverrides:pt,...Pt})=>Pt));const de=new Set(te.map(Xe=>Xe.id)),fe=A3(F,de);localStorage.setItem(C3,JSON.stringify(fe));const ye=ge??L??hu(J.fileName,J.fileSize,J.lastModified),qe=ge?await ch(Hi,ge):void 0,ae=qe?.dataset??J,Ne=await Cc.load(ye),Ve=qe?uh(ae,qe.models.flatMap(Xe=>Xe.reviews),Ne):{reviews:Ne,persisted:new Map};g.current=Ve.persisted;const tt=Ve.reviews,We=ae.sheets[0],_e=qc(ae).defaults(We);y(Xe=>({...Xe,dataset:ae,activeSheetId:We?.id??"",reviews:tt,projectId:ye,search:"",actionOnly:!1,view:"columns",selectedRecordId:We?.analysis.records[0]?.id??"",titleColumn:_e.titleColumn,sortColumn:_e.sortColumn,sortDirection:_e.sortDirection,statusFilter:eo(We,_e.statusFilter),facetFilters:{},pathFindingIds:[],status:`${fe.importedFiles} file${fe.importedFiles===1?"":"s"} imported · ${fe.importedRecords.toLocaleString("en-US")} records`})),p(ye),n({phase:"idle"}),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:ye}}))}else{n(Y=>E3(Y,me));const M=F.entries.filter(Y=>Y.dataset&&Y.status!=="duplicate").length;y(Y=>({...Y,status:`${X.length} file${X.length===1?"":"s"} checked · ${M} preselected`}))}}catch(F){const re=F instanceof Error?F.message:"Unknown error";console.error(F),n(me=>E3(me,{version:1,batchId:`failed-${Date.now()}`,createdAt:new Date().toISOString(),entries:[]},re)),y(me=>({...me,status:`Import check failed: ${re}`}))}}},[x.backendStatus,x.delimiter]),C=H.useCallback((I,L)=>{n(le=>le.preview?{...le,preview:{...le.preview,entries:le.preview.entries.map(ue=>ue.id===I&&ue.status!=="error"&&ue.dataset?{...ue,selected:L}:ue)}}:le)},[]),k=H.useCallback(I=>{n(L=>L.preview?{...L,preview:{...L.preview,entries:L.preview.entries.map(le=>le.id===I?JL(le,Yr):le)}}:L)},[]),E=H.useCallback(()=>{n({phase:"idle"})},[]),O=H.useCallback(async()=>{const I=t.preview,L=t.targetProjectId,le=t.targetAssessmentId,ue=t.replacesScanRunId;if(!I)return;const X=I.entries.filter(F=>F.selected&&F.dataset&&F.status!=="error");if(!X.length){n(F=>({...F,error:"Select at least one successfully checked file."}));return}if(X.some(F=>F.mappingsToConfirm>0)){n(F=>({...F,error:"Confirm all suggested source, sheet, and field mappings first."}));return}n(F=>({...F,phase:"committing",error:void 0}));try{const F=X.map(Ne=>Ne.dataset),re=[...new Set(F.map(Ne=>Ne.profileId).filter(Ne=>Ne!=="generic"))],me=re.length===1?Yr.find(Ne=>Ne.id===re[0])??gi:gi,te=F.length===1?F[0]:Qx(F,me),Ce=X.map(Ne=>({entryId:Ne.id,sha256:Ne.sha256,fileName:Ne.fileName,sizeBytes:Ne.sizeBytes,lastModified:Ne.lastModified,recognitionOverrides:k3(Ne.dataset?.recognition,Ne.dataset?.mapping)}));let ee;if(x.backendStatus==="connected"){if(ue&&I.replacesScanRunId!==ue)throw new Error("The reimport preview is not bound to the selected scan. Restart the local app and backend before retrying.");const Ne=await Hi.completeImportBatch(I.batchId,Ce,L,le,ue);if(ue&&Ne.replacedScanRunId!==ue)throw new Error("The backend did not confirm the selected replacement target.");ee=Ne.projectId}else lh(localStorage).record(Ce.map(({entryId:Ne,recognitionOverrides:Ve,...tt})=>tt));const M=new Set(X.map(Ne=>Ne.id)),Y=A3(I,M);localStorage.setItem(C3,JSON.stringify(Y));const Z=ee??L??hu(te.fileName,te.fileSize,te.lastModified),J=ee?await ch(Hi,ee):void 0,he=J?.dataset??te,ge=await Cc.load(Z),de=J?uh(he,J.models.flatMap(Ne=>Ne.reviews),ge):{reviews:ge,persisted:new Map};g.current=de.persisted;const fe=de.reviews,ye=he.sheets[0],ae=qc(he).defaults(ye);y(Ne=>({...Ne,dataset:he,activeSheetId:ye?.id??"",reviews:fe,projectId:Z,search:"",actionOnly:!1,view:"columns",selectedRecordId:ye?.analysis.records[0]?.id??"",titleColumn:ae.titleColumn,sortColumn:ae.sortColumn,sortDirection:ae.sortDirection,statusFilter:eo(ye,ae.statusFilter),facetFilters:{},pathFindingIds:[],status:`${Y.importedFiles} file${Y.importedFiles===1?"":"s"} imported · ${Y.importedRecords.toLocaleString("en-US")} records`})),p(Z),n({phase:"report",preview:I,report:Y}),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:Z}}))}catch(F){const re=F instanceof Error?F.message:"Unknown error";console.error(F),n(me=>({...me,phase:"preview",error:`Import not executed: ${re}`})),y(me=>({...me,status:`Import not executed: ${re}`}))}},[t.preview,x.backendStatus]),N=H.useCallback(async(I,L,le)=>{const ue=++m.current,X=zP(I,L,le);i(I),c(L?.length?[...new Set(L)]:void 0),f(le),y(F=>({...F,dataset:null,activeSheetId:"",projectId:I,status:"Loading saved client …"}));try{const{models:F,dataset:re,assessmentIds:me}=await ch(Hi,I,L,le);if(ue!==m.current)return!1;if(!F.length)return g.current=new Map,y(J=>({...J,status:"This client does not have a scan report yet."})),!1;if(!re)return g.current=new Map(F.flatMap(J=>J.reviews).map(J=>[dp(J.target),J])),f(me),p(X),y(J=>({...J,reviews:{},selectedRecordId:"",status:"Client opened. No displayable results are available in the selected timeslot yet."})),!0;const te=await Cc.load(X),Ce=uh(re,F.flatMap(J=>J.reviews),te);g.current=Ce.persisted;const ee=Ce.reviews;if(ue!==m.current)return!1;const M=re.sheets[0],Z=qc(re).defaults(M);return y(J=>({...J,dataset:re,activeSheetId:M?.id??"",reviews:ee,projectId:I,search:"",actionOnly:!1,view:"columns",selectedRecordId:M?.analysis.records[0]?.id??"",titleColumn:Z.titleColumn,sortColumn:Z.sortColumn,sortDirection:Z.sortDirection,statusFilter:eo(M,Z.statusFilter),facetFilters:{},pathFindingIds:[],status:F[0].project.name+" · "+re.scanTool+" · "+F.length.toLocaleString("en-US")+" scan report"+(F.length===1?"":"s")+" · "+M.analysis.records.length.toLocaleString("en-US")+" records loaded"})),f(me),p(X),!0}catch(F){if(ue!==m.current)return!1;const re=F instanceof Error?F.message:"Unknown loading error";return y(me=>({...me,dataset:null,activeSheetId:"",status:"Client could not be loaded: "+re})),!1}},[]),B=H.useCallback((I,L)=>{y(le=>{const ue=le.dataset?.sheets.flatMap(te=>te.analysis.records).find(te=>te.id===I),X=ue?.findingOccurrenceId&&le.dataset?bu(le.dataset).get(ue.findingOccurrenceId)??[I]:[I];let F={reviews:le.reviews,actionOnly:le.actionOnly};for(const te of X)F=eP(F,te,L);const{reviews:re,actionOnly:me}=F;return{...le,reviews:re,actionOnly:me}})},[]),A=H.useCallback(I=>{localStorage.setItem("ASSESSOR.theme",I),document.documentElement.dataset.theme=P3(I),y(L=>({...L,theme:I}))},[]),z=x.dataset?.sheets.find(I=>I.id===x.activeSheetId)??x.dataset?.sheets[0],P=hh(x.dataset,z),K=H.useMemo(()=>({...x,activeSheet:z,activeProfile:P,importWorkflow:t,importFiles:w,setImportEntrySelected:C,confirmImportEntry:k,commitImportBatch:O,closeImportWorkflow:E,setActiveSheet:I=>y(L=>{const le=L.dataset?.sheets.find(X=>X.id===I),ue=hh(L.dataset,le).defaults(le);return{...L,activeSheetId:I,selectedRecordId:le?.analysis.records[0]?.id??"",titleColumn:ue.titleColumn,sortColumn:ue.sortColumn,sortDirection:ue.sortDirection,statusFilter:eo(le,ue.statusFilter),facetFilters:{},pathFindingIds:[]}}),setView:I=>y(L=>({...L,view:I})),setSearch:I=>y(L=>({...L,search:I,selectedRecordId:""})),setSortColumn:I=>y(L=>({...L,sortColumn:I})),toggleSortDirection:()=>y(I=>({...I,sortDirection:I.sortDirection==="asc"?"desc":"asc"})),setTitleColumn:I=>y(L=>({...L,titleColumn:I})),setStatusFilter:I=>y(L=>({...L,statusFilter:I})),setFacetFilter:(I,L)=>y(le=>{const ue={...le.facetFilters};return!L||!L.values?.length&&!L.minimum&&!L.maximum?delete ue[I]:ue[I]=L,{...le,facetFilters:ue,selectedRecordId:""}}),setActionOnly:I=>y(L=>({...L,actionOnly:I})),setPathFindingIds:I=>y(L=>{const le=[...new Set(I.filter(Boolean))],ue=le.includes(L.selectedRecordId)?L.selectedRecordId:L.activeSheetId?L.dataset?.sheets.find(X=>X.id===L.activeSheetId)?.analysis.records.find(X=>le.includes(X.id))?.id??"":"";return{...L,pathFindingIds:le,selectedRecordId:ue}}),applyViewBookmark:I=>y(L=>BP(L,I)),targetProjectId:a,activeScanRunIds:r,activeAssessmentIds:l,workScopeId:T,setTargetProjectId:I=>{i(I),I||(c(void 0),f(void 0))},openProject:N,setSelectedRecord:I=>y(L=>({...L,selectedRecordId:I})),updateReview:B,recordRiskAcceptance:async(I,L)=>{const le=x.dataset?.sheets.flatMap(te=>te.analysis.records).find(te=>te.id===I);if(!a||!le?.findingOccurrenceId||x.backendStatus!=="connected")throw new Error("Connect to the backend and open a saved finding before recording risk acceptance.");const ue=le.findingOccurrenceId,X=`occurrence:${ue}`,F=g.current,me=(S.current.get(X)??Promise.resolve()).catch(()=>{}).then(async()=>{let te=F.get(X);const Ce={...hr(),...x.reviews[I],riskAcceptance:te?.riskAcceptance};if(!te||!Jc(Ce,Su(te))){const M=D3(Ce,{kind:"occurrence",occurrenceId:ue},te,new Date().toISOString());te=(await Hi.saveReview(M,te?.revision??0)).review,F.set(X,te)}const ee=await Hi.recordRiskAcceptance(a,ue,L,te.revision);F.set(X,ee.review),y(M=>{if(M.dataset!==x.dataset)return M;const Y={...M.reviews};for(const Z of bu(M.dataset).get(ue)??[])Y[Z]={...hr(),...Y[Z],riskAcceptance:ee.review.riskAcceptance};return{...M,reviews:Y}})});return S.current.set(X,me),me},snapshot:()=>x.dataset?xF(x.dataset,x.reviews):null,setTheme:A,setDelimiter:I=>y(L=>({...L,delimiter:I})),toggleSidebar:()=>y(I=>({...I,sidebarCollapsed:!I.sidebarCollapsed})),setSidebarCollapsed:I=>y(L=>L.sidebarCollapsed===I?L:{...L,sidebarCollapsed:I}),resetFilters:()=>y(I=>{const L=hh(I.dataset,z),le=L.defaults(z),ue=eo(z,le.statusFilter),X=gm(z,{activeProfile:L,search:"",sortColumn:le.sortColumn,sortDirection:le.sortDirection,statusFilter:ue,facetFilters:{},dataset:I.dataset,actionOnly:I.actionOnly,reviews:I.reviews}),F=X.some(re=>re.id===I.selectedRecordId);return{...I,search:"",sortColumn:le.sortColumn,sortDirection:le.sortDirection,titleColumn:le.titleColumn,statusFilter:ue,facetFilters:{},pathFindingIds:[],selectedRecordId:F?I.selectedRecordId:X[0]?.id??""}}),toggleWorkspace:()=>y(I=>Object.values(I.reviews).some(L=>L.include)?{...I,actionOnly:!I.actionOnly,view:"columns"}:I)}),[P,l,r,z,E,O,k,w,t,C,A,x,B,a,T,N]);return d.jsx(vm.Provider,{value:K,children:e})}function ca(){const e=H.useContext(vm);if(!e)throw new Error("useApp must be used within AppProvider.");return e}function HP({active:e,children:t}){const n=ca(),a=H.useRef(n);return e&&(a.current=n),d.jsx(vm.Provider,{value:a.current,children:t})}const GP="workspace-command-band";var vd=Xy();function Ua({title:e,onClose:t,dismissible:n=!0,className:a="",children:i}){const r=d.jsx("div",{className:"dialog-backdrop",role:"presentation",onMouseDown:n?t:void 0,children:d.jsxs("section",{className:`dialog-window ${a}`.trim(),role:"dialog","aria-modal":"true","aria-label":typeof e=="string"?e:void 0,onMouseDown:c=>c.stopPropagation(),children:[d.jsxs("header",{children:[d.jsx("h2",{children:e}),n&&d.jsx("button",{type:"button",onClick:t,"aria-label":"Close window",children:"×"})]}),d.jsx("div",{className:"dialog-body",children:i})]})});return vd.createPortal(r,document.body)}function b6(){return d.jsxs("span",{className:"import-spinner","aria-hidden":"true",children:[d.jsx("i",{}),d.jsx("i",{}),d.jsx("i",{}),d.jsx("i",{})]})}function w6({label:e}){return d.jsxs("div",{className:"import-progress",role:"status","aria-live":"polite",children:[d.jsx(b6,{}),d.jsx("strong",{children:e})]})}function xd({label:e}){return e?d.jsx(Ua,{title:"Processing",dismissible:!1,onClose:()=>{},children:d.jsx(w6,{label:e})}):null}function _3({variant:e="default",targetProjectId:t,targetAssessmentId:n,replacesScanRunId:a,label:i}){const r=H.useRef(null),{importFiles:c}=ca(),l=e==="open-data";return d.jsxs(d.Fragment,{children:[d.jsx("input",{ref:r,className:"hidden-input",type:"file",multiple:!0,accept:".xlsx,.xls,.csv,.json,.assessor-snapshot.json,.exx-snapshot.json,.xml,.txt,.html,.htm",onChange:f=>{f.target.files?.length&&c(f.target.files,t,n,a),f.target.value=""}}),d.jsxs("button",{className:l?"empty-open-data":"btn primary",type:"button",onClick:()=>r.current?.click(),children:[l&&d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M4 7h16v14H4zM8 7V3h8v4",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})}),d.jsx("span",{children:i??(l?"Open Data":"Open File")})]})]})}const C6="The stored source file is missing. Upload the unchanged original GPO ZIP or backup folder for this import. Saved results remain available.",E6="The stored source cannot be accessed. Check the backend storage connection and permissions. Saved results remain available.",XP=/^(?:con|prn|aux|nul|clock\$|com[1-9]|lpt[1-9])(?:\..*)?$/i,KP=/[\u0000-\u001f\u007f\u202a-\u202e\u2066-\u2069\u2044\u2215\u29f8]/;function k6(e){if(!e||e.length>4096||e!==e.normalize("NFC")||KP.test(e)||e.startsWith("/")||e.startsWith("\\")||/^[a-z]:/i.test(e))return null;const n=e.replace(/\\/g,"/").split("/");return n.some(a=>!a||a==="."||a===".."||a.length>255||a!==a.trim()||a.endsWith(".")||a.includes(":")||XP.test(a))?null:n.join("/")}function $P(e){return k6(e)?.toLowerCase()??null}class YP extends Error{constructor(t,n){super(n),this.code=t,this.name="GpoFolderTransportError"}code}const A6=2048,ZP=Uint32Array.from({length:256},(e,t)=>{let n=t;for(let a=0;a<8;a+=1)n=n>>>1^3988292384&-(n&1);return n>>>0});function Ji(e,t){throw new YP(e,t)}function JP(e){let t=4294967295;for(const n of e)t=t>>>8^ZP[(t^n)&255];return(t^4294967295)>>>0}function QP(e){const t=e.replaceAll("\\","/"),n=k6(t);return(!n||n!==t)&&Ji("gpo-folder-path-rejected","Der ausgewählte GPO-Ordner enthält einen unsicheren oder nicht kanonischen relativen Pfad."),n}function e_(e){const t=new Set(e.map(n=>n.relativePath.split("/")[0]));return t.size===1?[...t][0]:void 0}function t_(e){return`${(e??"gpo-backup-folder").normalize("NFC").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").slice(0,120)||"gpo-backup-folder"}.gpo-backup.zip`}function n_(e,t,n){return e.setUint32(t,67324752,!0),e.setUint16(t+4,20,!0),e.setUint16(t+6,A6,!0),e.setUint16(t+8,n.compressionMethod,!0),e.setUint32(t+14,n.crc32,!0),e.setUint32(t+18,n.payloadBytes.byteLength,!0),e.setUint32(t+22,n.uncompressedBytes,!0),e.setUint16(t+26,n.encodedPath.byteLength,!0),t+30}function a_(e,t,n,a){return e.setUint32(t,33639248,!0),e.setUint16(t+4,20,!0),e.setUint16(t+6,20,!0),e.setUint16(t+8,A6,!0),e.setUint16(t+10,n.compressionMethod,!0),e.setUint32(t+16,n.crc32,!0),e.setUint32(t+20,n.payloadBytes.byteLength,!0),e.setUint32(t+24,n.uncompressedBytes,!0),e.setUint16(t+28,n.encodedPath.byteLength,!0),e.setUint32(t+42,a,!0),t+46}function i_(e,t){const n=e.reduce((p,m)=>p+30+m.encodedPath.byteLength+m.payloadBytes.byteLength,0),a=e.reduce((p,m)=>p+46+m.encodedPath.byteLength,0),i=n+a+22;(!Number.isSafeInteger(i)||i>t||i>4294967295)&&Ji("gpo-folder-transport-size-limit","Der ausgewählte GPO-Ordner überschreitet das zulässige Transportlimit.");const r=new Uint8Array(i),c=new DataView(r.buffer),l=[];let f=0;for(const p of e)l.push(f),f=n_(c,f,p),r.set(p.encodedPath,f),f+=p.encodedPath.byteLength,r.set(p.payloadBytes,f),f+=p.payloadBytes.byteLength;const T=f;return e.forEach((p,m)=>{f=a_(c,f,p,l[m]),r.set(p.encodedPath,f),f+=p.encodedPath.byteLength}),c.setUint32(f,101010256,!0),c.setUint16(f+8,e.length,!0),c.setUint16(f+10,e.length,!0),c.setUint32(f+12,a,!0),c.setUint32(f+16,T,!0),r}function q3(e,t,n,a){const i=e??t;return(!Number.isSafeInteger(i)||i<1||i>n)&&Ji("gpo-folder-limit-invalid",`${a} ist ungueltig.`),i}async function s_(e){if(typeof CompressionStream>"u")return{payloadBytes:e,compressionMethod:0};const t=new CompressionStream("deflate-raw"),n=t.readable.getReader(),a=[],i=(async()=>{let l=0;for(;;){const p=await n.read();if(p.done)break;a.push(p.value),l+=p.value.byteLength}const f=new Uint8Array(l);let T=0;for(const p of a)f.set(p,T),T+=p.byteLength;return f})(),r=t.writable.getWriter();await r.write(e.slice()),await r.close();const c=await i;return c.byteLength<e.byteLength?{payloadBytes:c,compressionMethod:8}:{payloadBytes:e,compressionMethod:0}}function R6(e,t={}){const n=q3(t.maximumSourceBytes,Vr.maximumZipUncompressedBytes,Vr.maximumZipUncompressedBytes,"Das GPO-Quelllimit"),a=q3(t.maximumTransportBytes,Vr.maximumFileBytes,Vr.maximumFileBytes,"Das GPO-Transportlimit");e.length||Ji("gpo-folder-empty","Der ausgewählte GPO-Backupordner enthält keine Dateien."),(e.length>Vr.maximumZipEntries||e.length>65535)&&Ji("gpo-folder-entry-limit","Der ausgewählte GPO-Ordner enthält zu viele Dateien.");const i=e.reduce((r,c)=>((!Number.isSafeInteger(c.sizeBytes)||c.sizeBytes<0||c.sizeBytes>Vr.maximumZipEntryUncompressedBytes)&&Ji("gpo-folder-entry-size-invalid","Eine Datei des GPO-Ordners besitzt eine ungültige oder zu große Dateigröße."),r+c.sizeBytes),0);return(!Number.isSafeInteger(i)||i>n)&&Ji("gpo-folder-source-size-limit","Der ausgewählte GPO-Ordner überschreitet das zulässige Uploadlimit."),{maximumSourceBytes:n,maximumTransportBytes:a}}async function B3(e,t={}){const{maximumTransportBytes:n}=R6(e,t),a=new TextEncoder,i=new Set,r=[];for(const l of e){const f=QP(l.relativePath),T=$P(f);(!T||i.has(T))&&Ji("gpo-folder-path-collision","Dateipfade des GPO-Ordners kollidieren nach sicherer Unicode-/Groß-/Kleinschreibungsnormalisierung."),i.add(T);const p=a.encode(f);(!p.byteLength||p.byteLength>65535)&&Ji("gpo-folder-path-size-limit","Ein relativer GPO-Dateipfad ist für den Transportcontainer zu lang.");const m=await l.readBytes();(!(m instanceof Uint8Array)||m.byteLength!==l.sizeBytes)&&Ji("gpo-folder-file-size-mismatch","Deklarierte und gelesene Größe einer GPO-Datei stimmen nicht überein.");const g=await s_(m);r.push({relativePath:f,encodedPath:p,...g,uncompressedBytes:m.byteLength,crc32:JP(m)})}r.sort((l,f)=>l.relativePath<f.relativePath?-1:l.relativePath>f.relativePath?1:0);const c=e_(r);return{fileName:t_(c),bytes:i_(r,n),fileCount:r.length,sourceBytes:r.reduce((l,f)=>l+f.uncompressedBytes,0),rootName:c}}const tu=new qi,r_={queued:"Queued",running:"Processing",succeeded:"Processed successfully",partial:"Imported with review items","dead-letter":"Failed","upload-required":"Upload required","storage-unavailable":"Storage unavailable","recovery-required":"Recovery pending"},o_={"gpo-inventory-memory-limit":"Speichergrenze des isolierten Analyse-Workers überschritten","gpo-inventory-time-limit":"Time limit of the isolated analysis worker exceeded","gpo-inventory-source-size-limit":"GPO package exceeds the allowed input size","gpo-analysis-reference-missing":"Stored analysis source is not available","gpo-analysis-persistence-invalid":"Analysis result could not be saved safely"};function c_(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function U3(e){return new Intl.DateTimeFormat("en-US",{dateStyle:"short",timeStyle:"medium"}).format(new Date(e))}async function z3(e){R6(e.map(a=>({relativePath:a.relativePath,sizeBytes:a.file.size})));const n=(await Promise.all(e.map(async({file:a,relativePath:i})=>{try{const r=new Uint8Array(await a.arrayBuffer());return r.byteLength!==a.size?void 0:{relativePath:i,sizeBytes:a.size,readBytes:async()=>r}}catch{return}}))).filter(a=>a!==void 0);return{sources:n,unreadableEntries:e.length-n.length}}async function l_(e){const t=[];let n=0;const a=async(i,r)=>{try{for await(const c of i.values()){const l=`${r}/${c.name}`;if(c.kind==="directory")await a(c,l);else try{t.push({file:await c.getFile(),relativePath:l})}catch{n+=1}}}catch{n+=1}};return await a(e,e.name),{files:t,unreadableEntries:n}}function xm({restoreArtifactId:e,disabled:t=!1,projectId:n,assessmentId:a,showStatus:i=!0,label:r="Import GPO Folder",archiveLabel:c="Import GPO ZIP"}){const l=H.useRef(null),f=H.useRef(null),[T,p]=H.useState(!1),[m,g]=H.useState(null),[S,x]=H.useState([]),[y,w]=H.useState(),[C,k]=H.useState(),[E,O]=H.useState(),[N,B]=H.useState(),A=H.useCallback(async()=>{try{const X=await tu.listProjectGpoBackupStatus(n);x(X.records),w(void 0)}catch(X){w(X instanceof Error?X.message:"The GPO status could not be loaded.")}},[n]);H.useEffect(()=>{const X=l.current;X&&(X.setAttribute("webkitdirectory",""),X.setAttribute("directory",""))},[]),H.useEffect(()=>{if(!i)return;A();const X=F=>{F instanceof CustomEvent&&F.detail?.projectId&&F.detail.projectId!==n||A()};return globalThis.addEventListener("focus",X),globalThis.addEventListener("assessor:gpo-changed",X),()=>{globalThis.removeEventListener("focus",X),globalThis.removeEventListener("assessor:gpo-changed",X)}},[A,n,i]);const z=S.some(X=>X.state==="queued"||X.state==="running");H.useEffect(()=>{if(!E&&!(i&&z))return;const X=globalThis.setInterval(()=>{A()},2e3);return()=>globalThis.clearInterval(X)},[z,A,E,i]),H.useEffect(()=>{if(!E)return;const X=S.find(F=>F.artifactId===E.artifactId&&F.jobId===E.jobId);X&&!["queued","running"].includes(X.state)&&(O(void 0),B(void 0))},[E,S]);const P=async X=>{k(X.artifactId),B("Starting GPO processing"),g(null);try{const F=await tu.retryGpoBackup(n,X.artifactId);O({artifactId:F.artifactId,jobId:F.jobId}),B("Processing GPO backup"),g({tone:"success",message:"The GPO analysis job was requeued."}),await A()}catch(F){B(void 0),g({tone:"error",message:F instanceof Error?F.message:"The GPO analysis job could not be restarted."})}finally{k(void 0)}},K=async X=>{if(globalThis.confirm(`Permanently delete the failed GPO import "${X.fileName}" from ASSESSOR? The source files on your machine remain unchanged.`)){k(X.artifactId),g(null);try{const F=await tu.deleteGpoBackup(n,X.artifactId);g({tone:"success",message:F.storageRemoval==="complete"?"Failed GPO import and its stored package copy were deleted.":"The database entry was deleted; the package copy is in the secure deletion queue."}),await A()}catch(F){g({tone:"error",message:F instanceof Error?F.message:"The failed GPO import could not be deleted."})}finally{k(void 0)}}},I=async(X,F)=>{B("Uploading GPO backup");const re=await tu.submitGpoBackup(n,X,a,e);O({artifactId:re.artifactId,jobId:re.jobId}),B("Processing GPO backup"),g({tone:"success",message:re.sourceRestored||e?"Original GPO source restored. Saved results are preserved.":F(re.deduplicated)}),globalThis.dispatchEvent(new CustomEvent("assessor:gpo-changed",{detail:{projectId:n,jobId:re.jobId}})),await A()},L=async X=>{p(!0),B("Preparing GPO backup"),g(null);try{if(X.some(Ce=>!Ce.webkitRelativePath))throw new Error("Please select a complete GPO backup folder.");const F=await z3(X.map(Ce=>({file:Ce,relativePath:Ce.webkitRelativePath})));if(!F.sources.length)throw new Error("Keine Datei des ausgewaehlten GPO-Ordners konnte gelesen werden.");const re=await B3(F.sources),me=new Uint8Array(re.bytes.byteLength);me.set(re.bytes);const te=new File([me.buffer],re.fileName,{type:"application/zip"});await I(te,Ce=>Ce?`GPO backup folder already exists · analysis job confirmed (${re.fileCount} files${F.unreadableEntries?`; ${F.unreadableEntries} unreadable skipped`:""}).`:`GPO backup folder accepted · analysis job queued (${re.fileCount} files${F.unreadableEntries?`; ${F.unreadableEntries} unreadable skipped`:""}).`)}catch(F){B(void 0),g({tone:"error",message:F instanceof Error?F.message:"GPO backup folder could not be imported."})}finally{p(!1)}},le=async()=>{const X=globalThis.showDirectoryPicker;if(!X){l.current?.click();return}p(!0),B("Preparing GPO backup"),g(null);try{const F=await X({mode:"read"}),re=await l_(F);if(!re.files.length)throw new Error("Keine Datei des ausgewaehlten GPO-Backupordners konnte gelesen werden.");const me=await z3(re.files),te=re.unreadableEntries+me.unreadableEntries;if(!me.sources.length)throw new Error("Keine Datei des ausgewaehlten GPO-Backupordners konnte gelesen werden.");const Ce=await B3(me.sources),ee=new Uint8Array(Ce.bytes.byteLength);ee.set(Ce.bytes);const M=new File([ee.buffer],Ce.fileName,{type:"application/zip"});await I(M,Y=>Y?`GPO backup folder already exists · analysis job confirmed (${Ce.fileCount} files${te?`; ${te} unreadable skipped`:""}).`:`GPO backup folder accepted · analysis job queued (${Ce.fileCount} files${te?`; ${te} unreadable skipped`:""}).`)}catch(F){if(F instanceof DOMException&&F.name==="AbortError"){B(void 0);return}B(void 0),g({tone:"error",message:F instanceof Error?F.message:"GPO backup folder could not be imported."})}finally{p(!1)}},ue=async X=>{p(!0),B("Uploading GPO backup"),g(null);try{if(!X.name.toLocaleLowerCase("en-US").endsWith(".zip"))throw new Error("Please select a ZIP file containing a GPO backup.");await I(X,F=>F?"GPO backup ZIP already exists · analysis job confirmed.":"GPO backup ZIP accepted · analysis job queued.")}catch(F){B(void 0),g({tone:"error",message:F instanceof Error?F.message:"GPO backup ZIP could not be imported."})}finally{p(!1)}};return d.jsxs(d.Fragment,{children:[d.jsxs("span",{className:`gpo-folder-actions${e?" gpo-source-recovery":""}`,children:[d.jsx("input",{ref:l,className:"hidden-input",type:"file",multiple:!0,onChange:X=>{const F=X.currentTarget,re=Array.from(F.files??[]);re.length&&L(re).finally(()=>{F.value=""})}}),d.jsx("input",{ref:f,className:"hidden-input",type:"file",accept:".zip,application/zip",onChange:X=>{const F=X.currentTarget,re=F.files?.[0];re&&ue(re).finally(()=>{F.value=""})}}),d.jsx("button",{className:"btn primary",type:"button",disabled:T||t,onClick:()=>{le()},children:T?"Checking GPO …":r}),d.jsx("button",{className:"btn primary",type:"button",disabled:T||t,onClick:()=>f.current?.click(),children:T?"Checking GPO …":c}),m&&d.jsx("span",{className:`gpo-folder-feedback ${m.tone}`,role:m.tone==="error"?"alert":"status",children:m.message})]}),i&&d.jsxs("section",{className:"gpo-status-panel","aria-label":"GPO processing status","aria-live":"polite",children:[d.jsxs("div",{className:"gpo-status-heading",children:[d.jsx("strong",{children:"GPO Processing"}),d.jsx("button",{className:"btn compact",type:"button",onClick:()=>{A()},children:"Refresh"})]}),y&&d.jsx("p",{className:"gpo-folder-feedback error",role:"alert",children:y}),!y&&S.length===0&&d.jsx("p",{className:"gpo-status-empty",children:"No tenant GPO backup snapshots for this client yet."}),S.length>0&&d.jsx("div",{className:"gpo-status-list",children:S.map(X=>d.jsxs("article",{className:`gpo-status-item state-${X.state}`,children:[d.jsxs("div",{children:[d.jsx("strong",{children:X.fileName}),d.jsxs("span",{children:[c_(X.sizeBytes)," · Received ",U3(X.submittedAt)]})]}),d.jsxs("div",{className:"gpo-status-result",children:[d.jsx("strong",{children:r_[X.state]}),X.state==="storage-unavailable"&&d.jsx("span",{children:E6}),X.state==="upload-required"&&d.jsxs(d.Fragment,{children:[d.jsx("span",{children:C6}),d.jsx(xm,{projectId:n,assessmentId:X.assessmentId,restoreArtifactId:X.artifactId,showStatus:!1,label:"Upload original folder",archiveLabel:"Upload original ZIP"})]}),d.jsxs("span",{children:["Attempt ",X.attempts,"/",X.maxAttempts," · updated ",U3(X.updatedAt)]}),X.gpoCount>0&&d.jsxs("span",{children:["1 tenant GPO backup · ",X.gpoCount," GPO",X.gpoCount===1?"":"s"," detected"]}),X.lastErrorCode&&d.jsxs("span",{className:"gpo-status-error",children:["Last error: ",o_[X.lastErrorCode]??"Technical analysis error"," ",d.jsx("code",{children:X.lastErrorCode})]}),X.state==="dead-letter"&&d.jsxs("div",{className:"gpo-status-actions",children:[d.jsx("button",{className:"btn compact",type:"button",disabled:C===X.artifactId,onClick:()=>{P(X)},children:"Retry"}),d.jsx("button",{className:"btn compact danger",type:"button",disabled:C===X.artifactId,onClick:()=>{K(X)},children:"Delete Import"})]})]})]},X.artifactId))})]}),d.jsx(xd,{label:N})]})}const u_={queued:"Queued",running:"Processing",succeeded:"Ready",partial:"Limited analysis","dead-letter":"Failed","recovery-required":"Recovery pending","upload-required":"Upload required","storage-unavailable":"Storage unavailable"};function d_(e){const t=new Set(e.flatMap(a=>a.reasons??["engine-version"]));return[...t.has("engine-version")?[`Engine ${[...new Set(e.map(a=>`${a.previousVersion} → ${a.currentVersion}`))].join(", ")}`]:[],...t.has("baseline-analysis")?["Updated Microsoft baseline analysis"]:[]].join(" · ")}function T_({projectId:e,record:t,imported:n,busy:a,onEvaluate:i,onReprocess:r,onRetry:c,onDelete:l}){const f=["queued","running"].includes(t.jobStatus??t.state),T=t.state==="upload-required"||t.state==="storage-unavailable",p=["dead-letter","recovery-required"].includes(t.state)||T,m=t.analysisUpdate,g=!!t.evaluationUpdates?.length||!!m,S=m?`Analyzer ${m.previousAnalyzerVersion} → ${m.currentAnalyzerVersion}`:d_(t.evaluationUpdates??[]);return d.jsxs("div",{className:"tenant-report-row tenant-report-gpo",role:"row",children:[d.jsx("span",{className:"tenant-gpo-source-marker","aria-label":"Policy analysis source",children:"G"}),d.jsxs("span",{className:"tenant-report-copy",children:[d.jsx("b",{children:"GPO Backup"}),d.jsxs("small",{children:[t.fileName," · ",t.gpoCount.toLocaleString("en-US")," GPO",t.gpoCount===1?"":"s"]}),T&&d.jsx("small",{role:"status",children:t.state==="upload-required"?C6:E6}),T&&g&&!m&&d.jsxs("small",{role:"status",children:["Re-evaluation required · ",S,". Retained inputs can still be re-evaluated."]}),g&&!T&&d.jsxs("small",{role:"status",children:[m?"Reprocessing required":"Re-evaluation required"," · ",S,". Saved results are historical. ",m?"Reprocess the stored source":"Re-evaluate retained inputs","; no file upload is required for this update."]})]}),d.jsx("span",{className:"tenant-report-imported",children:n}),d.jsx("b",{className:"tenant-report-status","data-status":g&&!f&&!p?"re-evaluation-required":t.state,children:g&&!f&&!p?m?"Reprocessing required":"Re-evaluation required":u_[t.state]}),d.jsxs("span",{className:"tenant-gpo-row-actions",children:[t.state==="upload-required"&&d.jsx(xm,{projectId:e,assessmentId:t.assessmentId,restoreArtifactId:t.artifactId,showStatus:!1,disabled:a,label:"Upload original folder",archiveLabel:"Upload original ZIP"}),m?!T&&d.jsx("button",{className:"btn compact",type:"button",disabled:a||f||p,onClick:r,children:"Reprocess"}):g&&d.jsx("button",{className:"btn compact",type:"button",disabled:a||f||p&&!T,onClick:i,children:"Re-evaluate"}),t.state==="dead-letter"&&d.jsx("button",{className:"btn compact",type:"button",disabled:a,onClick:c,children:"Retry"}),d.jsx("button",{className:"btn compact danger",type:"button",disabled:a||f,onClick:l,children:"Delete"})]})]})}const Ec=new qi,W3=()=>({productFamily:"",productVersion:"",role:"",scope:"computer"}),V3=()=>({name:"",domainKey:"",supersedesProfileId:"",operatingSystem:W3(),includeProduct:!1,product:W3()});function H3(e,t){return[e,t.productFamily,t.productVersion,t.role,t.scope].map(n=>n.trim().toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).join(":")}function G3(e){return e.length>22?`${e.slice(0,10)}…${e.slice(-8)}`:e}function ph(e){return e==="completed"?"Completed":e==="blocked"?"Blocked":e==="review-only"?"Run as review-only":"Run"}function nu({codes:e}){return e.length?d.jsx("span",{className:"policy-action-reasons",children:e.map(t=>d.jsx("code",{children:t},t))}):null}function f_({projectId:e,overview:t,onChanged:n}){const[a,i]=H.useState(V3),[r,c]=H.useState(),[l,f]=H.useState(),[T,p]=H.useState(),m=new Map(t.profiles.map(C=>[C.id,C])),g=async(C,k,E,O)=>{c(C),f(O),p(void 0);try{return await k(),p({tone:"success",message:E}),await n(),!0}catch(N){return p({tone:"error",message:N instanceof Error?N.message:"The policy action failed."}),!1}finally{c(void 0),f(void 0)}},S=async C=>{C.preventDefault();const k=a.operatingSystem,E=[{id:H3("operating-system",k),kind:"operating-system",productFamily:k.productFamily.trim(),productVersion:k.productVersion.trim(),role:k.role.trim(),scope:k.scope}];if(a.includeProduct){const N=a.product;E.push({id:H3("product",N),kind:"product",productFamily:N.productFamily.trim(),productVersion:N.productVersion.trim(),role:N.role.trim(),scope:N.scope})}await g("create-profile",()=>Ec.createEnvironmentProfile(e,{name:a.name.trim(),domainKey:a.domainKey.trim()||void 0,supersedesProfileId:a.supersedesProfileId||void 0,contexts:E}),"Environment profile persisted.","Saving profile")&&i(V3())},x=(C,k)=>{i(E=>({...E,[C]:{...E[C],...k}}))},y=a.name.trim()&&a.operatingSystem.productFamily.trim()&&a.operatingSystem.productVersion.trim()&&a.operatingSystem.role.trim(),w=!a.includeProduct||a.product.productFamily.trim()&&a.product.productVersion.trim()&&a.product.role.trim();return d.jsxs("section",{className:"policy-orchestration","aria-label":"Policy analysis orchestration",children:[d.jsxs("div",{className:"datahub-section-heading",children:[d.jsxs("div",{children:[d.jsx("span",{children:"Analysis Workflow"}),d.jsx("h3",{children:"Profiles and Runs"})]}),d.jsx("strong",{children:t.profiles.length})]}),d.jsx("p",{className:"policy-analysis-muted",children:"Only actions derived from persisted project and catalog evidence are offered. Review-only runs remain ineligible for findings unless every downstream invariant is satisfied."}),T&&d.jsxs("div",{className:`tenant-save-feedback ${T.tone}`,role:T.tone==="error"?"alert":"status",children:[d.jsx("span",{"aria-hidden":"true",children:T.tone==="success"?"✓":"!"}),d.jsx("strong",{children:T.message})]}),d.jsxs("details",{className:"policy-profile-editor",children:[d.jsx("summary",{children:"Create Environment Profile"}),d.jsxs("form",{onSubmit:C=>{S(C)},children:[d.jsxs("label",{children:["Profile name",d.jsx("input",{className:"input",required:!0,maxLength:160,value:a.name,onChange:C=>i(k=>({...k,name:C.target.value}))})]}),d.jsxs("label",{children:["Domain key ",d.jsx("span",{children:"optional"}),d.jsx("input",{className:"input",maxLength:255,value:a.domainKey,onChange:C=>i(k=>({...k,domainKey:C.target.value}))})]}),d.jsxs("label",{children:["Supersedes ",d.jsx("span",{children:"optional"}),d.jsxs("select",{className:"input",value:a.supersedesProfileId,onChange:C=>i(k=>({...k,supersedesProfileId:C.target.value})),children:[d.jsx("option",{value:"",children:"New profile chain"}),t.profiles.filter(C=>C.active).map(C=>d.jsxs("option",{value:C.id,children:[C.name," · revision ",C.revision]},C.id))]})]}),d.jsxs("fieldset",{children:[d.jsx("legend",{children:"Operating system context"}),d.jsxs("label",{children:["Product family",d.jsx("input",{className:"input",required:!0,maxLength:160,placeholder:"Windows Server",value:a.operatingSystem.productFamily,onChange:C=>x("operatingSystem",{productFamily:C.target.value})})]}),d.jsxs("label",{children:["Version",d.jsx("input",{className:"input",required:!0,maxLength:80,placeholder:"2025",value:a.operatingSystem.productVersion,onChange:C=>x("operatingSystem",{productVersion:C.target.value})})]}),d.jsxs("label",{children:["Role",d.jsx("input",{className:"input",required:!0,maxLength:120,placeholder:"Member Server",value:a.operatingSystem.role,onChange:C=>x("operatingSystem",{role:C.target.value})})]}),d.jsxs("label",{children:["Scope",d.jsxs("select",{className:"input",value:a.operatingSystem.scope,onChange:C=>x("operatingSystem",{scope:C.target.value}),children:[d.jsx("option",{value:"computer",children:"Computer"}),d.jsx("option",{value:"user",children:"User"}),d.jsx("option",{value:"mixed",children:"Mixed"})]})]})]}),d.jsxs("label",{className:"policy-profile-product-toggle",children:[d.jsx("input",{type:"checkbox",checked:a.includeProduct,onChange:C=>i(k=>({...k,includeProduct:C.target.checked}))})," Add product context"]}),a.includeProduct&&d.jsxs("fieldset",{children:[d.jsx("legend",{children:"Product context"}),d.jsxs("label",{children:["Product family",d.jsx("input",{className:"input",required:!0,maxLength:160,placeholder:"Microsoft Edge",value:a.product.productFamily,onChange:C=>x("product",{productFamily:C.target.value})})]}),d.jsxs("label",{children:["Version",d.jsx("input",{className:"input",required:!0,maxLength:80,value:a.product.productVersion,onChange:C=>x("product",{productVersion:C.target.value})})]}),d.jsxs("label",{children:["Role",d.jsx("input",{className:"input",required:!0,maxLength:120,placeholder:"Any",value:a.product.role,onChange:C=>x("product",{role:C.target.value})})]}),d.jsxs("label",{children:["Scope",d.jsxs("select",{className:"input",value:a.product.scope,onChange:C=>x("product",{scope:C.target.value}),children:[d.jsx("option",{value:"computer",children:"Computer"}),d.jsx("option",{value:"user",children:"User"}),d.jsx("option",{value:"mixed",children:"Mixed"})]})]})]}),d.jsx("footer",{children:d.jsx("button",{className:"btn primary",type:"submit",disabled:r!==void 0||!y||!w,children:r==="create-profile"?"Saving …":"Create Profile"})})]})]}),d.jsxs("div",{className:"policy-action-stages",children:[d.jsxs("section",{children:[d.jsx("h4",{children:"Reprocessing"}),t.actions.reprocess.length?t.actions.reprocess.slice(0,20).map(C=>d.jsxs("article",{children:[d.jsxs("div",{children:[d.jsx("strong",{children:"GPO source"}),d.jsx("code",{title:C.artifactId,children:G3(C.artifactId)}),d.jsx(nu,{codes:C.reasonCodes})]}),d.jsx("button",{className:"btn compact",type:"button",disabled:r!==void 0||C.status==="blocked",onClick:()=>{g(C.id,()=>Ec.reprocessGpoBackup(e,C.artifactId,C.expectedLatestProcessingRunId),"GPO reprocessing queued.","Starting GPO processing")},children:r===C.id?"Queuing …":C.status==="blocked"?"Blocked":"Reprocess"})]},C.id)):d.jsx("p",{children:"No processed GPO source available."})]}),d.jsxs("section",{children:[d.jsx("h4",{children:"Snapshot aggregation"}),t.actions.aggregate.length?t.actions.aggregate.slice(0,20).map(C=>d.jsxs("article",{children:[d.jsxs("div",{children:[d.jsx("strong",{children:m.get(C.environmentProfileId)?.name??"Environment profile"}),d.jsxs("span",{children:[C.sourceAnalysisRunIds.length," identity run"]}),d.jsx(nu,{codes:C.reasonCodes})]}),d.jsx("button",{className:"btn compact",type:"button",disabled:r!==void 0||["completed","blocked"].includes(C.status),onClick:()=>{g(C.id,()=>Ec.aggregatePolicySnapshot(e,{environmentProfileId:C.environmentProfileId,sourceAnalysisRunIds:C.sourceAnalysisRunIds}),"Snapshot aggregation persisted.","Calculating snapshot")},children:r===C.id?"Running …":ph(C.status)})]},C.id)):d.jsx("p",{children:"Create a profile and process a GPO backup first."})]}),d.jsxs("section",{children:[d.jsx("h4",{children:"Baseline evaluation"}),t.actions.evaluate.length?t.actions.evaluate.slice(0,20).map(C=>d.jsxs("article",{children:[d.jsxs("div",{children:[d.jsx("strong",{children:m.get(C.environmentProfileId)?.name??"Environment profile"}),d.jsxs("span",{children:[C.baselineAnalysisIds.length," baseline analysis source",C.baselineAnalysisIds.length===1?"":"s"]}),d.jsx(nu,{codes:C.reasonCodes})]}),d.jsx("button",{className:"btn compact",type:"button",disabled:r!==void 0||["completed","blocked"].includes(C.status),onClick:()=>{g(C.id,()=>Ec.evaluatePolicy(e,{aggregationRunId:C.aggregationRunId,baselineAnalysisIds:C.baselineAnalysisIds}),"Policy evaluation persisted.","Evaluating baseline")},children:r===C.id?"Running …":ph(C.status)})]},C.id)):d.jsx("p",{children:"No snapshot aggregation available."})]}),d.jsxs("section",{children:[d.jsx("h4",{children:"Finding Factory"}),t.actions.createFindings.length?t.actions.createFindings.slice(0,20).map(C=>d.jsxs("article",{children:[d.jsxs("div",{children:[d.jsxs("strong",{children:[C.eligibleResultCount," eligible result",C.eligibleResultCount===1?"":"s"]}),d.jsx("code",{title:C.evaluationRunId,children:G3(C.evaluationRunId)}),d.jsx(nu,{codes:C.reasonCodes})]}),d.jsx("button",{className:"btn compact",type:"button",disabled:r!==void 0||["completed","blocked"].includes(C.status),onClick:()=>{g(C.id,()=>Ec.createPolicyFindingRun(e,{evaluationRunId:C.evaluationRunId}),"Finding Factory run persisted.","Creating findings")},children:r===C.id?"Running …":ph(C.status)})]},C.id)):d.jsx("p",{children:"No policy evaluation available."})]})]}),d.jsx(xd,{label:l})]})}function Ao({message:e,compact:t=!1}){return d.jsx("div",{className:`panel-loading-state${t?" is-compact":""}`,role:"status","aria-live":"polite","aria-label":e,children:d.jsx("div",{className:"panel-loading-state-content",children:d.jsxs("div",{className:"panel-loading-state-message",children:[d.jsx(b6,{}),d.jsx("span",{children:e})]})})})}const mh=new qi,h_={conflict:"Conflict","unresolved-identity":"Unresolved setting","catalog-gap":"Baseline mapping unavailable","parser-gap":"Unsupported setting format","partial-analysis":"Evaluation incomplete","targeting-unknown":"Targeting not resolved","incomplete-evidence":"Source evidence incomplete",other:"Review required"};function p_(e){return new Intl.DateTimeFormat("en-US",{dateStyle:"short",timeStyle:"medium"}).format(new Date(e))}function m_({item:e}){return d.jsxs("details",{className:`policy-review-item category-${e.category}`,children:[d.jsxs("summary",{children:[d.jsx("strong",{children:h_[e.category]}),d.jsxs("span",{children:[e.observationCount," observation",e.observationCount===1?"":"s"," · ",e.backupCount," GPO source",e.backupCount===1?"":"s"]})]}),d.jsxs("div",{className:"policy-review-detail",children:[d.jsxs("span",{children:["Source: ",e.source]}),e.identityId&&d.jsxs("span",{children:["Technical identity: ",d.jsx("code",{children:e.identityId})]}),d.jsxs("span",{children:["Diagnostic",e.codes.length===1?"":"s",": ",e.codes.map(t=>d.jsx("code",{children:t},t))]})]})]})}function g_({overview:e,counts:t,impact:n}){const a=e.current.reviewItems.slice(0,100),i=e.current.summary,r=new Map(e.profiles.map(l=>[l.id,l])),c=e.summary.identityAnalysisRuns>0||e.summary.aggregationRuns>0||e.summary.evaluationRuns>0||e.summary.findingRuns>0;return d.jsxs("section",{className:"policy-analysis-panel","aria-label":"Policy analysis results",children:[d.jsx("div",{className:"datahub-section-heading",children:d.jsxs("div",{children:[d.jsx("span",{children:"GPO Analysis"}),d.jsx("h3",{children:"Baseline Evaluation"})]})}),d.jsx("p",{className:"policy-analysis-boundary",role:"note",children:"Backup settings are compared with the imported Microsoft Security Baselines. Effective application requires RSoP or GP Results."}),c?d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"policy-analysis-result-groups",children:[d.jsxs("section",{className:"policy-analysis-result-group","aria-labelledby":"gpo-import-summary",children:[d.jsx("h4",{id:"gpo-import-summary",children:"Processing"}),d.jsxs("div",{className:"policy-analysis-summary",children:[d.jsxs("article",{children:[d.jsx("span",{children:"Analysis runs"}),d.jsx("strong",{children:i.identityAnalysisRuns})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Evaluation runs"}),d.jsx("strong",{children:i.evaluationRuns})]}),d.jsxs("article",{children:[d.jsx("span",{children:"GPO backups with failing settings"}),d.jsx("strong",{children:n?.backups??"–"}),d.jsx("small",{children:"Inspect source-linked comparisons with the same-named filter in Work."})]})]})]}),d.jsxs("section",{className:"policy-analysis-result-group","aria-labelledby":"gpo-result-summary",children:[d.jsx("h4",{id:"gpo-result-summary",children:"Policy verdicts"}),d.jsx("p",{className:"policy-analysis-muted",children:"One verdict per technical policy setting."}),d.jsxs("div",{className:"policy-analysis-summary",children:[d.jsxs("article",{"data-result":"fail",children:[d.jsx("span",{children:"Misconfigured"}),d.jsx("strong",{children:t?.Fail??"–"})]}),d.jsxs("article",{"data-result":"pass",children:[d.jsx("span",{children:"Pass"}),d.jsx("strong",{children:t?.Pass??"–"})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Not configured"}),d.jsx("strong",{children:t?.["Not configured"]??"–"})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Review required"}),d.jsx("strong",{children:t?.["Review required"]??"–"})]}),d.jsxs("article",{children:[d.jsx("span",{children:"No baseline rule"}),d.jsx("strong",{children:t?.["No baseline rule"]??"–"}),d.jsx("small",{children:"Configured settings with no applicable Microsoft baseline recommendation. Score-neutral."})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Not comparable"}),d.jsx("strong",{children:t?.["Not comparable"]??"–"}),d.jsx("small",{children:"Group Policy Preferences. No comparable technical policy setting. Score-neutral."})]})]})]}),d.jsxs("section",{className:"policy-analysis-result-group","aria-labelledby":"gpo-diagnostic-summary",children:[d.jsx("h4",{id:"gpo-diagnostic-summary",children:"Diagnostic flags"}),d.jsx("p",{className:"policy-analysis-muted",children:"May overlap with each other and with policy verdicts. Score-neutral."}),d.jsxs("div",{className:"policy-analysis-summary policy-analysis-problems",children:[d.jsxs("article",{children:[d.jsx("span",{children:"Conflicts"}),d.jsx("strong",{children:t?.Conflicts??"–"}),d.jsx("small",{children:"Different customer values for one technical setting."})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Duplicates"}),d.jsx("strong",{children:t?.Duplicates??"–"}),d.jsx("small",{children:"Identical values from multiple GPO sources."})]})]})]}),d.jsxs("section",{className:"policy-analysis-result-group","aria-labelledby":"gpo-gap-summary",children:[d.jsx("h4",{id:"gpo-gap-summary",children:"Analysis gaps"}),d.jsx("p",{className:"policy-analysis-muted",children:"Observation-level diagnostics. No score impact."}),d.jsxs("div",{className:"policy-analysis-summary policy-analysis-problems",children:[d.jsxs("article",{children:[d.jsx("span",{children:"Unresolved identity"}),d.jsx("strong",{children:i.unresolvedIdentities}),d.jsx("small",{children:"Observations that could not be mapped to one technical policy setting. Their settings appear in Work as Not comparable."})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Comparison not supported"}),d.jsx("strong",{children:i.parserGaps}),d.jsx("small",{children:"The retained value cannot yet be compared safely; the setting stays under Review required."})]})]})]})]}),d.jsxs("details",{className:"policy-analysis-technical",children:[d.jsx("summary",{children:"Technical details"}),d.jsxs("div",{className:"policy-analysis-columns",children:[d.jsxs("section",{children:[d.jsxs("div",{className:"policy-analysis-subheading",children:[d.jsx("h4",{children:"Evaluation history"}),d.jsx("span",{children:e.evaluations.length})]}),e.evaluations.length?d.jsx("div",{className:"policy-evaluation-list",children:e.evaluations.map(l=>d.jsxs("article",{children:[d.jsxs("header",{children:[d.jsxs("strong",{children:[r.get(l.environmentProfileId)?.name??"Environment profile"," · ",l.status==="complete"?"complete":l.status]}),d.jsx("span",{children:p_(l.completedAt)})]}),d.jsxs("div",{children:[d.jsxs("span",{children:[l.matchCount," matches"]}),d.jsxs("span",{children:[l.deviationCount," stored mismatches (including missing settings)"]}),d.jsxs("span",{children:[l.notApplicableCount," not applicable"]}),d.jsxs("span",{children:[l.reviewCount," review required"]})]}),d.jsxs("footer",{children:[d.jsxs("strong",{children:[l.findingCount," confirmed finding",l.findingCount===1?"":"s"]}),l.rejectedFindingCount>0&&d.jsxs("span",{children:[l.rejectedFindingCount," factory rejection",l.rejectedFindingCount===1?"":"s"]})]})]},l.evaluationRunId))}):d.jsx("p",{className:"policy-analysis-muted",children:"No baseline evaluation has been persisted yet."})]}),d.jsxs("section",{children:[d.jsxs("div",{className:"policy-analysis-subheading",children:[d.jsx("h4",{children:"Current review queue"}),d.jsx("span",{children:e.current.reviewItems.length})]}),a.length?d.jsx("div",{className:"policy-review-list",children:a.map(l=>d.jsx(m_,{item:l},l.id))}):d.jsx("p",{className:"policy-analysis-muted",children:"No conflicts or unresolved evidence in the persisted runs."}),e.current.reviewItems.length>a.length&&d.jsx("p",{className:"policy-analysis-muted",children:"Showing the first 100 deterministic review hints."})]})]})]})]}):d.jsxs("div",{className:"datahub-empty policy-analysis-empty",children:[d.jsx("h3",{children:"No policy analysis runs yet"}),d.jsx("p",{children:"Imported GPO backups remain processing evidence until snapshot aggregation and baseline evaluation have run."})]})]})}function v_({projectId:e}){const[t,n]=H.useState(),[a,i]=H.useState(),[r,c]=H.useState(),[l,f]=H.useState(),[T,p]=H.useState(!0),m=H.useCallback(async()=>{try{const[g,S,x]=await Promise.all([mh.getPolicyAnalysisOverview(e),dm(C=>mh.queryUnifiedResults(C),{audience:"internal-analysis",projectId:e,sourceKind:["policy-observation"]}),mh.listPolicyEvaluations(e)]);n(g);const y=new Set(g.current.evaluationRunIds),w=zb(S,e6(x.records,new Set(S.map(C=>C.sourceResultId)),y));i(gL(w)),c(vL(w)),f(void 0)}catch(g){i(void 0),c(void 0),f(g instanceof Error?g.message:"Policy analysis could not be loaded.")}finally{p(!1)}},[e]);return H.useEffect(()=>{m();const g=S=>{S instanceof CustomEvent&&S.detail?.projectId&&S.detail.projectId!==e||m()};return globalThis.addEventListener("assessor:gpo-changed",g),globalThis.addEventListener("focus",g),()=>{globalThis.removeEventListener("assessor:gpo-changed",g),globalThis.removeEventListener("focus",g)}},[m,e]),T&&!t?d.jsx("section",{className:"policy-analysis-panel",children:d.jsx(Ao,{message:"Loading policy analysis …",compact:!0})}):l&&!t?d.jsx("section",{className:"policy-analysis-panel",children:d.jsxs("div",{className:"datahub-alert",role:"alert",children:[d.jsx("span",{children:l}),d.jsx("button",{className:"btn",type:"button",onClick:()=>{m()},children:"Reload"})]})}):t?d.jsxs(d.Fragment,{children:[l&&d.jsx("div",{className:"datahub-alert",role:"alert",children:"Analysis could not be refreshed."}),d.jsx(g_,{overview:t,counts:a,impact:r}),d.jsxs("details",{className:"policy-analysis-controls",children:[d.jsx("summary",{children:"Processing controls"}),d.jsx(f_,{projectId:e,overview:t,onChanged:async()=>{await m(),globalThis.dispatchEvent(new CustomEvent("assessor:gpo-changed",{detail:{projectId:e}}))}})]})]}):null}function ym({backendStatus:e,message:t}){const[n,a]=H.useState(!0);if(!n)return null;const i=e==="checking"?"Checking server connection":"Backend is unreachable";return d.jsx(Ua,{title:i,onClose:()=>a(!1),className:"backend-connection-dialog",children:d.jsxs("div",{className:"backend-connection-dialog__content",role:"status","aria-live":"polite",children:[d.jsx("div",{className:"backend-connection-dialog__icon","aria-hidden":"true",children:"!"}),d.jsxs("div",{children:[d.jsx("p",{children:t}),d.jsx("p",{className:"backend-connection-dialog__hint",children:"The connection is checked automatically."})]})]})})}function vn({direction:e="left",className:t=""}){const n=`triangle-icon triangle-icon-${e}${t?` ${t}`:""}`;return d.jsx("svg",{className:n,viewBox:"0 0 12 12","aria-hidden":"true",focusable:"false",children:d.jsx("path",{d:"M9.5 1.5 2.5 6l7 4.5z"})})}const gh=new qi;function x_(e){return e<1024*1024?`${(e/1024).toLocaleString("de-DE",{maximumFractionDigits:1})} KB`:`${(e/1024/1024).toLocaleString("de-DE",{maximumFractionDigits:1})} MB`}function y_(e){const t=new Date(e);return Number.isNaN(t.getTime())?"—":new Intl.DateTimeFormat("en-US",{dateStyle:"short",timeStyle:"medium"}).format(t)}function S_(){const e=H.useRef(null),[t,n]=H.useState([]),[a,i]=H.useState(!1),[r,c]=H.useState(),[l,f]=H.useState(null),[T,p]=H.useState(null),[m,g]=H.useState(null),S=H.useCallback(async()=>{try{n((await gh.listMicrosoftSecurityBaselines()).records)}catch(w){g(w instanceof Error?w.message:"Baseline-Katalog konnte nicht geladen werden.")}},[]);H.useEffect(()=>{S()},[S]);const x=async w=>{i(!0),g(null),p(null);try{const C=Array.from(w);for(const[k,E]of C.entries())c(`Importing baseline ${k+1} of ${C.length}`),await gh.submitMicrosoftSecurityBaseline(E);await S(),p(`${w.length} Baseline-Paket${w.length===1?"":"e"} im Katalog gespeichert.`)}catch(C){g(C instanceof Error?C.message:"Baseline-Upload fehlgeschlagen.")}finally{i(!1),c(void 0)}},y=async()=>{if(l){i(!0),g(null),p(null);try{const w=await gh.deleteMicrosoftSecurityBaseline(l.id);f(null),await S(),p(`${w.record.fileName} was deleted from the baseline catalog.`)}catch(w){g(w instanceof Error?w.message:"Baseline deletion failed.")}finally{i(!1)}}};return d.jsxs(d.Fragment,{children:[d.jsxs("details",{className:"tenant-scan-history baseline-catalog",children:[d.jsxs("summary",{className:"tenant-section-bar",children:[d.jsxs("span",{className:"tenant-history-meta baseline-title",children:[d.jsx("b",{children:t.length.toLocaleString("en-US")}),d.jsx("strong",{children:"Imported Security Baselines"})]}),d.jsxs("span",{className:"tenant-history-meta",children:[d.jsx("button",{className:"btn datahub-maintenance-action baseline-upload-action",type:"button",disabled:a,onClick:w=>{w.preventDefault(),w.stopPropagation(),e.current?.click()},children:a?"Upload in progress …":"Upload Security Baselines (ZIP)"}),d.jsx(vn,{direction:"right"})]})]}),d.jsx("input",{ref:e,className:"hidden-input",type:"file",accept:".zip,application/zip",multiple:!0,onChange:w=>{w.target.files?.length&&x(w.target.files),w.target.value=""}}),T&&d.jsxs("div",{className:"tenant-save-feedback success",role:"status",children:[d.jsx("span",{"aria-hidden":"true",children:"✓"}),d.jsx("strong",{children:T})]}),m&&d.jsx("div",{className:"datahub-alert",role:"alert",children:d.jsx("span",{children:m})}),t.length>0&&d.jsxs("div",{className:"tenant-file-table baseline-table",role:"table","aria-label":"Microsoft security baselines",children:[d.jsxs("div",{className:"tenant-file-row tenant-file-head",role:"row",children:[d.jsx("span",{children:"File"}),d.jsx("span",{children:"Size"}),d.jsx("span",{children:"Imported"}),d.jsx("span",{children:"Status"}),d.jsx("span",{children:"Actions"})]}),t.map(w=>d.jsxs("div",{className:"tenant-file-row",role:"row",children:[d.jsx("span",{"data-label":"File",title:w.fileName,children:w.fileName}),d.jsx("span",{"data-label":"Size",className:"baseline-cell-num",children:x_(w.sizeBytes)}),d.jsx("span",{"data-label":"Imported",className:"baseline-cell-num",children:y_(w.importedAt)}),d.jsx("span",{"data-label":"Status",children:d.jsx("b",{className:"baseline-status","data-status":w.status,title:w.status==="eligible"?"Eligible for automatic package selection":"Excluded until product and version resolve unambiguously",children:w.status==="eligible"?"Eligible":"Metadata required"})}),d.jsx("span",{"data-label":"Actions",children:d.jsx("button",{className:"btn tenant-scan-delete",type:"button",disabled:a,onClick:()=>f(w),children:"Delete"})})]},w.id))]})]}),l&&d.jsx(Ua,{title:"Delete security baseline?",onClose:()=>!a&&f(null),children:d.jsxs("div",{className:"datahub-delete-warning",children:[d.jsx("strong",{children:l.fileName}),d.jsx("p",{children:"Baseline and derived evaluations will be deleted."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:a,onClick:()=>f(null),children:"Cancel"}),d.jsx("button",{className:"btn danger",type:"button",disabled:a,onClick:()=>{y()},children:a?"Deleting …":"Delete baseline"})]})]})}),d.jsx(xd,{label:r})]})}function So(e){const t=je(e).toLocaleLowerCase("de-DE");return/critical|kritisch/.test(t)?"critical":/high|hoch/.test(t)?"high":/medium|mittel|warning/.test(t)?"medium":/low|niedrig/.test(t)?"low":/info|informational/.test(t)?"info":"unknown"}function Qc(e){const t=je(e);return/mitre[\s_-]*(?:att&?ck|attack)|(?:att&?ck|attack)[\s_-]*mitre/i.test(t)?"MITRE ATT&CK":/mitre[\s_-]*(?:defen[cs]e|d3fend)|(?:defen[cs]e|d3fend)[\s_-]*mitre/i.test(t)?/d3fend/i.test(t)?"MITRE D3FEND":"MITRE Defense":""}const b_="assessor_custom_mitre_matrix";function w_(e){if(!e||typeof e!="object")throw new Error("Invalid MITRE matrix format: expected a JSON object.");const t=e;if(!Array.isArray(t.tacticOrder)||!t.tacticOrder.length)throw new Error('Invalid MITRE matrix: "tacticOrder" array is missing or empty.');if(!Array.isArray(t.techniques))throw new Error('Invalid MITRE matrix: "techniques" array is missing.');return{version:String(t.version??"Updated"),tacticOrder:t.tacticOrder.map(String),techniques:t.techniques.map(n=>({id:String(n.id),name:String(n.name),tactics:Array.isArray(n.tactics)?n.tactics.map(String):[],platforms:Array.isArray(n.platforms)?n.platforms.map(String):[],parent:n.parent?String(n.parent):null,url:String(n.url??""),sourceCount:Number(n.sourceCount??0)})),entities:Array.isArray(t.entities)?t.entities:[]}}function D6(){try{const e=globalThis.localStorage?.getItem(b_);return e?w_(JSON.parse(e)):null}catch{return null}}const X3=e=>e.trim().toLocaleLowerCase("en-US").replace(/&/g,"and").replace(/[^a-z0-9]+/g," ").trim(),K3=(e,t)=>{const n=e.fields.find(i=>t.test(i.label.trim()))?.value??"",a=Number(n.replace(",",".").match(/-?\d+(?:\.\d+)?/)?.[0]??0);return Number.isFinite(a)?a:0},C_={critical:500,high:400,medium:300,low:200,info:100,unknown:0};function E_(e,t,n="",a){const i=new Map(t.tacticOrder.map(f=>[X3(f),f])),r=new Map(t.techniques.map(f=>[f.id,f])),c=new Map,l=f=>{let T=c.get(f);return T===void 0&&(T=Qc(f),c.set(f,T)),T};return e.map(f=>{const T=f.fields.filter(K=>K.value&&l(K.label)),p=T.filter(K=>l(K.label)==="MITRE ATT&CK"),m=T.filter(K=>l(K.label)!=="MITRE ATT&CK"),g=p.length>0,S=[...new Set(p.flatMap(K=>[...K.value.toUpperCase().matchAll(/\bT\d{4}(?:\.\d{3})?\b/g)].map(I=>I[0])))],x=new Set;for(const K of S)for(const I of r.get(K)?.tactics??[])x.add(I);for(const K of p)for(const I of K.value.split(/[,;|/]+/)){const L=i.get(X3(I.replace(/\bT\d{4}(?:\.\d{3})?\b/gi,"")));L&&x.add(L)}const y=t.tacticOrder.filter(K=>x.has(K)),w=f.fields.find(K=>/^(severity|criticality|priority)$/i.test(K.label.trim()))?.value,C=So(w),k=K3(f,/^weight$/i),E=K3(f,/^score$/i),O=n&&f.fields.find(K=>K.label===n)?.value||f.title,N=[...new Set([...f.fields.filter(K=>/^category$/i.test(K.label.trim())&&K.value).flatMap(K=>K.value.split(/[;|]+/)).map(K=>K.trim()).filter(Boolean),...M1(f,a)])],B=N[0]??"",A=[...new Set(m.flatMap(K=>K.value.split(/[;|]+/)).map(K=>K.trim()).filter(Boolean))],z=[...new Set(f.fields.filter(K=>/^(?:target|ziel|betroffenes objekt|asset|host|hostname|domain|resource|system)$/i.test(K.label.trim())&&K.value).flatMap(K=>K.value.split(/[;|]+/)).map(K=>K.trim()).filter(Boolean))],P=y.length===0?"unmapped":g?"native":"derived";return{id:f.id,record:f,title:O,category:B,categories:N,defenses:A,targets:z,tactics:y,primaryTactic:y[0]??"Unmapped",techniqueIds:S,severity:C,weight:k,score:E,risk:C_[C]+k*10+E/10,mappingOrigin:P}})}const I6=new Set(["reimport-recommended"]),pp=new Set(["incompatible","unknown"]),$3=new Set([...I6,...pp]),kc=e=>e.processedWith.profileId||e.detectedTool.id,Y3=new Set(["generic","tabular","multiple","unknown"]);function k_(e){const t=[...new Set(e.map(T=>t3(kc(T),T.processedWith)))],n=e.reduce((T,p)=>T+(p.reimportReviewTransfer?.unresolved??0),0);if(n>0)return{state:"review",statuses:t,explanation:`${n} client-owned finding ${n===1?"record could":"records could"} not be matched uniquely during reimport. The original data is retained and requires review.`};const a=new Set(e.map(kc).filter(T=>!Y3.has(T)));if(!t.some(T=>$3.has(T))&&e.some(T=>Y3.has(kc(T)))&&a.size!==1)return{state:"review",statuses:t,explanation:"The source recognition and mapping require review. Reimporting the same files with unchanged profiles will not resolve this state."};if(!t.some(T=>$3.has(T)))return{state:"ready",statuses:t,explanation:"The scan uses a current or compatible ASSESSOR processing profile."};const r=t.some(T=>pp.has(T))?pp:I6,c=e.find(T=>r.has(t3(kc(T),T.processedWith)))??e[0],l=c?Db(kc(c)):void 0;if(t.includes("unknown"))return{state:"error",statuses:t,explanation:"The stored ASSESSOR processing profile is unknown and cannot be assessed safely."};if(t.includes("incompatible"))return{state:"error",statuses:t,explanation:`The stored ASSESSOR processing profile is incompatible with the current ASSESSOR profile ${l?.profileVersion??"unknown"}.`};const f=l?.affectedDimensions.includes("environment-context")?" The newer ASSESSOR profile captures additional environment context for the assessment.":"";return{state:"update",statuses:t,explanation:`ASSESSOR profile update: ${c?.processedWith.profileVersion??"unknown"} → ${l?.profileVersion??"unknown"}. Reimporting applies the newer ASSESSOR processing profile; the ${c?.detectedTool.name??"scanner"} report itself has not changed.${f}`}}function mp(e){const t=new Map;for(const r of e){const c=t.get(r.scanRunId)??[];c.push(r),t.set(r.scanRunId,c)}const n=[...t.values()].map(k_),a={ready:0,review:1,update:2,error:3};return{...n.reduce((r,c)=>a[c.state]>a[r.state]?c:r,{state:"ready",statuses:[],explanation:"The scan uses a current or compatible ASSESSOR processing profile."}),statuses:[...new Set(n.flatMap(r=>r.statuses))]}}function A_(e,t,n=[]){if(n.some(c=>c.state==="upload-required"))return{state:"error",label:"A stored GPO source is missing. Upload the unchanged original backup in the affected timeslot."};if(n.some(c=>c.state==="storage-unavailable"))return{state:"error",label:"GPO source storage is unavailable. Check the backend storage connection and permissions."};if(n.some(c=>c.state==="dead-letter"||c.state==="recovery-required"))return{state:"error",label:"GPO processing failed or requires recovery in a client timeslot."};const a=new Set(t),i=e.filter(c=>a.has(c.scanRunId)),r=i.length?[mp(i)]:[];return r.some(c=>c.state==="error")?{state:"error",label:"Processing error requires attention in a client timeslot."}:r.some(c=>c.state==="update")?{state:"update",label:"ASSESSOR processing profile update available in a client timeslot."}:n.some(c=>c.analysisUpdate)?{state:"update",label:"GPO reprocessing required in a client timeslot. Retained analysis uses a previous ASSESSOR analyzer version."}:n.some(c=>c.evaluationUpdates?.length)?{state:"update",label:"GPO re-evaluation required in a client timeslot. Saved results use a previous engine version or baseline analysis."}:r.some(c=>c.state==="review")?{state:"review",label:"A client timeslot requires review or a future reimport."}:n.some(c=>c.state==="queued"||c.state==="running")?{state:"processing",label:"GPO processing in progress."}:r.length||n.length?{state:"ready",label:"Processing ready across all client timeslots."}:{state:"no-data",label:"No processing status available."}}function Hr({label:e,value:t,percentage:n,tone:a,valueSuffix:i="",showPercentage:r=!0,className:c,active:l,onClick:f}){const T=Math.min(100,Math.max(0,Math.round(n))),p=String(T)+" "+String(100-T),m={"--donut-progress-dash":p},g=["donut-metric-card","donut-metric-card--"+a,c].filter(Boolean).join(" "),S=e+": "+t.toLocaleString("en-US")+", "+T+"%",x=d.jsxs(d.Fragment,{children:[d.jsx("h3",{className:"donut-metric-card__title",children:e}),d.jsxs("div",{className:"donut-metric-card__plot",children:[d.jsxs("svg",{viewBox:"0 0 120 120","aria-hidden":"true",children:[d.jsx("circle",{className:"donut-metric-card__track",cx:"60",cy:"60",r:"48",pathLength:"100"}),d.jsx("circle",{className:"donut-metric-card__progress",cx:"60",cy:"60",r:"48",pathLength:"100",strokeDasharray:p,style:m},e+"-"+t+"-"+T)]}),d.jsxs("div",{className:"donut-metric-card__values",children:[d.jsxs("div",{className:`donut-metric-card__primary${T>=100?" is-compact":""}`,children:[d.jsxs("strong",{children:[r?T:t.toLocaleString("en-US"),r?"":i]}),r&&d.jsx("span",{children:"%"})]}),r&&d.jsxs("small",{children:[t.toLocaleString("en-US"),i]})]})]})]});return f?d.jsx("button",{className:g,type:"button","aria-label":S,"aria-pressed":!!l,onClick:f,children:x}):d.jsx("article",{className:g,"aria-label":S,children:x})}function R_(e){const t=new Date(e);return Number.isNaN(t.getTime())?"—":t.toLocaleDateString("de-DE")}function Ac(e,t){return t>0?Math.min(100,Math.max(0,Math.round(e/t*100))):0}function D_({projects:e,projectData:t,projectHistory:n,projectGpoData:a,projectOpenReadiness:i={},selection:r,timeslotMetrics:c,loading:l,comparisonBusy:f,comparisonError:T,onCreate:p,onShow:m,onOpen:g,onSelectProject:S}){const x=c??{all:0,deviation:0,passed:0,notApplicable:0,notRun:0,error:0};return d.jsxs(d.Fragment,{children:[d.jsxs("section",{className:"datahub-rack-module datahub-status-module","aria-label":"Selected client result status","aria-busy":f,children:[d.jsxs("div",{className:"datahub-reference-controls donut-metric-rack",children:[d.jsx(Hr,{className:"datahub-reference-knob",label:"Results All",value:x.all,percentage:x.all>0?100:0,tone:"all"}),d.jsx(Hr,{className:"datahub-reference-knob",label:"Deviation",value:x.deviation,percentage:Ac(x.deviation,x.all),tone:"deviation"}),d.jsx(Hr,{className:"datahub-reference-knob",label:"Passed",value:x.passed,percentage:Ac(x.passed,x.all),tone:"passed"}),d.jsx(Hr,{className:"datahub-reference-knob",label:"Not Applicable",value:x.notApplicable,percentage:Ac(x.notApplicable,x.all),tone:"not-applicable"}),d.jsx(Hr,{className:"datahub-reference-knob",label:"Not Run",value:x.notRun,percentage:Ac(x.notRun,x.all),tone:"not-run"}),d.jsx(Hr,{className:"datahub-reference-knob",label:"Error",value:x.error,percentage:Ac(x.error,x.all),tone:"error"})]}),T&&d.jsx("em",{className:"datahub-comparison-error",role:"alert",children:T})]}),d.jsx("section",{className:"datahub-rack-module datahub-tenants-module","aria-label":"Mandanten",children:l?d.jsx(Ao,{message:"Loading clients …",compact:!0}):d.jsxs("div",{className:"datahub-tenant-card-rack",children:[e.map(y=>{const w=n[y.id],C=ho(t[y.id]??[],w?.assessments,w?.scanRuns,a[y.id]??[]),k=C[0],E=C.find(A=>i[y.id]?.[A.id]?.canOpen),O=C.flatMap(A=>A.scanRunIds),N=A_(t[y.id]??[],O,a[y.id]??[]),B=r?.projectId===y.id;return d.jsxs("article",{className:`donut-metric-card donut-metric-card--all datahub-tenant-card${B?" is-selected":""}`,children:[N.state!=="no-data"&&d.jsx("span",{className:"datahub-tenant-processing-dot","data-status":N.state,role:"img","aria-label":N.label,title:N.label}),d.jsxs("button",{className:"datahub-tenant-select",type:"button","aria-label":`Mandant ${y.name} auswählen`,"aria-pressed":B,onClick:()=>S(y.id),children:[d.jsx("span",{className:"datahub-tenant-name",children:y.name}),d.jsxs("span",{className:"datahub-tenant-summary",children:[d.jsx("strong",{children:C.length.toLocaleString("de-DE")}),d.jsx("small",{children:C.length===1?"Timeslot":"Timeslots"})]}),d.jsx("span",{className:"datahub-tenant-latest",children:k?`Latest ${R_(k.fileDate)}`:"No scan data yet"})]}),(B||N.state==="update"||N.state==="review"||N.state==="error")&&d.jsx("button",{className:"btn datahub-tenant-show","data-status":N.state,type:"button",title:["update","review","error"].includes(N.state)?N.label:"Manage client",onClick:()=>m(y),children:"Manage"}),d.jsx("button",{className:"btn primary datahub-tenant-open",type:"button",disabled:!E,title:E?"Open latest timeslot":"No scan data available",onClick:()=>E&&g(y,E.scanRunIds,E.assessmentIds),children:"Open"})]},y.id)}),d.jsx("button",{className:"donut-metric-card donut-metric-card--all datahub-tenant-card datahub-tenant-add",type:"button",onClick:p,"aria-label":"Mandant anlegen",children:d.jsx("span",{"aria-hidden":"true",children:"+"})})]})})]})}const I_=new Set(["generic","unknown","multiple"]);function N_(e,t){if(!e.length)return{runIds:[],toolIds:[],includesGpo:!1,excludedSourceIds:[]};const n=new Map(t.map(f=>[f.id,f])),a=e.map(f=>{const T=new Set(f.runIds.map(p=>n.get(p)?.tool.id).filter(p=>!!p));return f.hasGpo&&T.add("gpo-backup"),T}),i=[...new Set(a.flatMap(f=>[...f]))],r=e.length===1?new Set(i):new Set(i.filter(f=>!I_.has(f)&&a.every(T=>T.has(f)))),c=[...r].filter(f=>f!=="gpo-backup").sort(),l=new Set(c);return{runIds:e.flatMap(f=>f.runIds.filter(T=>{const p=n.get(T)?.tool.id;return!!(p&&l.has(p))})),toolIds:c,includesGpo:r.has("gpo-backup"),excludedSourceIds:i.filter(f=>!r.has(f)).sort()}}function O_(e,t){const n=new Set(t),a=e.flatMap(r=>r.findingOccurrences).filter(r=>n.has(r.scanRunId)),i=a.map(r=>({occurrence:r,outcome:r.outcome?.normalizedValue??um(r.status.normalizedValue??"unknown")}));return{all:a.length,deviation:i.filter(({occurrence:r,outcome:c})=>wb(!!r.isIoe,c)).length,passed:i.filter(({outcome:r})=>r==="pass").length,notApplicable:i.filter(({outcome:r})=>r==="not_applicable").length,notRun:i.filter(({outcome:r})=>r==="not_run").length,error:i.filter(({occurrence:r,outcome:c})=>c==="execution_error"||r.technicalExecutionState?.normalizedValue==="failed").length}}const M_=new Set(["generic","unknown","multiple"]);function j_(e,t,n){const a=e.some(r=>r.scanRuns.some(c=>c.id===t)),i=e.some(r=>r.findingOccurrences.some(c=>c.scanRunId===t));return!a||!i?"not-viewable":M_.has(n)?"generic":"recognized"}function Rc(e){return e==="recognized"||e==="generic"}const Z3=/^[a-f0-9]{64}$/;function F_(e,t){if(!e.length||e.some(i=>!i||!Z3.test(i)))return"reference-unavailable";if(t.length!==e.length||t.some(i=>!i||!Z3.test(i)))return"mismatch";const n=[...e].sort();return[...t].sort().every((i,r)=>i===n[r])?"match":"mismatch"}async function J3(e,t,n){return Object.fromEntries(await Promise.all(n.map(async a=>{if(!a.assessmentIds.length)return[a.id,{canOpen:!1,hasPolicyResults:!1}];try{const i=await e({audience:"internal-analysis",projectId:t,assessmentIds:a.assessmentIds,sourceKind:["scanner-finding","policy-observation"]}),r=i.facets.find(c=>c.id==="sourceKind")?.values.some(c=>c.value==="policy-observation"&&c.count>0)??!1;return[a.id,{canOpen:i.total>0,hasPolicyResults:r}]}catch{return[a.id,{canOpen:!1,hasPolicyResults:!1}]}})))}const On=new qi,L_=!1;function au(e){return typeof e.attributes.consultant=="string"?e.attributes.consultant:""}function to(e){return new Intl.DateTimeFormat("de-DE",{day:"2-digit",month:"2-digit",year:"numeric"}).format(new Date(e))}function Q3(e){return new Intl.DateTimeFormat("en-US",{dateStyle:"short",timeStyle:"medium"}).format(new Date(e))}function ey(e){return JSON.stringify(e.map(t=>[t.artifactId,t.jobId,t.state,t.updatedAt,t.gpoCount,t.evaluationUpdates?.map(n=>[n.evaluationRunId,n.previousVersion,n.currentVersion])??[]]).sort((t,n)=>String(t[0]).localeCompare(String(n[0]))))}function P_(e,t=[]){const n=new Map(t.map(i=>[i.id,i])),a=new Map;for(const i of e)a.set(i.scanRunId,[...a.get(i.scanRunId)??[],i]);return[...a.entries()].map(([i,r])=>{const c=n.get(i),l=c?.completedAt??c?.startedAt??r[0].lastModifiedAt??r[0].importedAt,f=r.reduce((T,p)=>Date.parse(p.importedAt)>Date.parse(T)?p.importedAt:T,r[0].importedAt);return{id:i,scanRunId:i,scanRunIds:[i],assessmentIds:c?[c.assessmentId]:[],tool:c?.tool??r[0].detectedTool,files:r,gpoBackups:[],sourceCount:1,fileCount:r.length,fileNames:r.map(T=>T.fileName),formats:[...new Set(r.map(T=>T.format))],sizeBytes:r.reduce((T,p)=>T+p.sizeBytes,0),fileDate:l,importedAt:f,possibleDuplicateGroupIds:[]}}).sort((i,r)=>Date.parse(r.fileDate)-Date.parse(i.fileDate))}function __({activeProjectId:e,onProjectSelected:t,onProjectDataChanged:n,onDetailViewChanged:a,backendStatus:i}){const[r,c]=H.useState([]),[l,f]=H.useState({}),[T,p]=H.useState({}),[m,g]=H.useState({}),[S,x]=H.useState(null),[y,w]=H.useState(!1),[C,k]=H.useState(null),[E,O]=H.useState(null),[N,B]=H.useState(null),[A,z]=H.useState(null),[P,K]=H.useState(!0),[I,L]=H.useState(!1),[le,ue]=H.useState(),[X,F]=H.useState(),[re,me]=H.useState(null),[te,Ce]=H.useState(null),[ee,M]=H.useState(()=>D6()),[Y,Z]=H.useState(null),[J,he]=H.useState(null),[ge,de]=H.useState(null),[fe,ye]=H.useState(null),[qe,ae]=H.useState(!1),[Ne,Ve]=H.useState(null),[tt,We]=H.useState([]),[Le,_e]=H.useState([]),[Xe,pt]=H.useState([]),[Pt,Kt]=H.useState(!1),[Dt,dt]=H.useState(""),[jt,Gt]=H.useState({}),[ln,Et]=H.useState({}),[_t,pe]=H.useState("client-information"),He=H.useRef(new Map);H.useEffect(()=>{a?.(S!==null,S?.mode==="edit"?S.name.trim()||S.project?.name:void 0)},[S,a]),H.useEffect(()=>()=>a?.(!1),[a]);const Je=H.useCallback(async()=>{if(i!=="connected"){c([]),f({}),K(!1);return}K(!0),Et({}),me(null);try{He.current.clear();const W=await On.listProjects(),D=await Promise.all(W.map(async j=>{const[_,se,xe]=await Promise.all([On.listProjectImportFiles(j.id),On.listProjectAssessmentHistory(j.id),On.listProjectGpoBackupStatus(j.id)]),Ae=await J3(Fe=>On.queryUnifiedResultFacets(Fe),j.id,ho(_,se.assessments,se.scanRuns,xe.records));return{projectId:j.id,files:_,history:se,gpoRecords:xe.records,openReadiness:Ae}}));c(W),f(Object.fromEntries(D.map(j=>[j.projectId,j.files]))),p(Object.fromEntries(D.map(j=>[j.projectId,j.history]))),g(Object.fromEntries(D.map(j=>[j.projectId,j.gpoRecords]))),Et(Object.fromEntries(D.map(j=>[j.projectId,j.openReadiness])))}catch(W){me(W instanceof Error?W.message:"Projects could not be loaded.")}finally{K(!1)}},[i]);H.useEffect(()=>{Je()},[Je]);const Ye=r.filter(W=>m[W.id]?.some(D=>D.state==="queued"||D.state==="running")).map(W=>W.id).join("\0");H.useEffect(()=>{if(i!=="connected"||!Ye)return;const W=Ye.split("\0");let D=!1,j=!1;const _=globalThis.setInterval(async()=>{if(!j){j=!0;try{const se=(await Promise.all(W.map(async xe=>{const Ae=await On.listProjectGpoBackupStatus(xe);if(ey(Ae.records)===ey(m[xe]??[]))return null;const Fe=T[xe],Oe=await J3(Ue=>On.queryUnifiedResultFacets(Ue),xe,ho(l[xe]??[],Fe?.assessments,Fe?.scanRuns,Ae.records));return{projectId:xe,records:Ae.records,openReadiness:Oe}}))).filter(xe=>xe!==null);!D&&se.length&&(g(xe=>({...xe,...Object.fromEntries(se.map(Ae=>[Ae.projectId,Ae.records]))})),Et(xe=>({...xe,...Object.fromEntries(se.map(Ae=>[Ae.projectId,Ae.openReadiness]))})))}catch{D||me("GPO processing status could not be refreshed.")}finally{j=!1}}},5e3);return()=>{D=!0,globalThis.clearInterval(_)}},[i,Ye,l,m,T]),H.useEffect(()=>{if(!X)return;const W=m[X.projectId]?.find(D=>D.artifactId===X.artifactId&&D.jobId===X.jobId);W&&!["queued","running"].includes(W.state)&&(F(void 0),ue(void 0))},[X,m]),H.useEffect(()=>{const W=()=>{Je()};return globalThis.addEventListener("assessor:datahub-changed",W),globalThis.addEventListener("assessor:gpo-changed",W),()=>{globalThis.removeEventListener("assessor:datahub-changed",W),globalThis.removeEventListener("assessor:gpo-changed",W)}},[Je]);const mt=H.useCallback(W=>{const D=T[W];return ho(l[W]??[],D?.assessments,D?.scanRuns,m[W]??[])},[l,m,T]);H.useEffect(()=>{P||!r.length||de(W=>{if(W){const _=new Set(mt(W.projectId).map(se=>se.id));if(r.some(se=>se.id===W.projectId)&&W.slots.length<=1&&W.slots.every(se=>_.has(se.id)))return W}const D=r.find(_=>_.id===e);if(!D)return null;const j=mt(D.id).find(_=>_.scanRunIds.length);return{projectId:D.id,slots:j?[{id:j.id,runIds:j.scanRunIds,effectiveAt:j.fileDate}]:[]}})},[e,mt,P,r]);const Qe=H.useCallback(async W=>{const D=He.current.get(W);if(D)return D;const j=await On.listProjectAssessments(W),_=await Promise.all(j.map(se=>On.loadAssessmentModel(se.id)));return He.current.set(W,_),_},[]);H.useEffect(()=>{const W=ge?.slots[ge.slots.length-1];if(!W){ye(null),Ve(null),ae(!1);return}let D=!1;return ae(!0),Ve(null),Qe(ge.projectId).then(j=>{D||ye(O_(j,W.runIds))}).catch(j=>{D||(ye(null),Ve(j instanceof Error?j.message:"The selected timeslot status could not be loaded."))}).finally(()=>{D||ae(!1)}),()=>{D=!0}},[Qe,T,ge]);const qt=H.useCallback(W=>{const D=mt(W).find(j=>j.scanRunIds.length);de({projectId:W,slots:D?[{id:D.id,runIds:D.scanRunIds,effectiveAt:D.fileDate}]:[]})},[mt]),ot=H.useMemo(()=>S?.project?mt(S.project.id):[],[S?.project,mt]),Pe=H.useMemo(()=>S?.project?P_(l[S.project.id]??[],T[S.project.id]?.scanRuns):[],[S?.project,l,T]);H.useEffect(()=>{const W=S?.project?.id;if(!W||Pe.length===0){Gt({});return}let D=!1;return Gt(Object.fromEntries(Pe.map(j=>[j.scanRunId,"checking"]))),Qe(W).then(j=>{D||Gt(Object.fromEntries(Pe.map(_=>[_.scanRunId,j_(j,_.scanRunId,_.tool.id)])))}).catch(()=>{D||Gt(Object.fromEntries(Pe.map(j=>[j.scanRunId,"unavailable"])))}),()=>{D=!0}},[Pe,S?.project?.id,Qe]);const Me=H.useMemo(()=>ot.filter(W=>tt.includes(W.id)),[ot,tt]),Ke=H.useMemo(()=>N_(Me.map(W=>({id:W.id,runIds:W.scanRunIds.filter(D=>!Le.includes(D)&&Rc(jt[D])),hasGpo:W.gpoBackups.length>0})),S?.project?T[S.project.id]?.scanRuns??[]:[]),[Le,S?.project,T,jt,Me]),st=()=>{me(null),Ce(null),w(!0),_e([]),pt([]),pe("client-information"),x({mode:"create",name:"",description:"",consultant:""})},Vt=W=>{const D=mt(W.id),j=D[0],_=l[W.id]??[],se=D.filter(xe=>mp(_.filter(Ae=>xe.scanRunIds.includes(Ae.scanRunId))).state!=="ready"||xe.gpoBackups.some(Ae=>Ae.state==="dead-letter"||Ae.state==="recovery-required")).map(xe=>xe.id);me(null),Ce(null),w(!1),We(j?[j.id]:[]),_e([]),pt(se),Kt(!1),z(null),pe("client-information"),x({mode:"edit",project:W,name:W.name,description:W.description??"",consultant:au(W)})},Xt=W=>{Ce(null),x(D=>D&&{...D,...W})},Fn=(W,D)=>{const j=ot.find(_=>_.id===W);We(_=>D?_.includes(W)?_:[..._,W]:_.filter(se=>se!==W)),j&&_e(_=>_.filter(se=>!j.scanRunIds.includes(se))),me(null)},Sa=(W,D,j)=>{_e(_=>j?_.filter(se=>se!==D):_.includes(D)?_:[..._,D]),j&&(We(_=>_.includes(W)?_:[..._,W]),pt(_=>_.includes(W)?_:[..._,W])),me(null)},Zn=()=>{if(!S?.project||!Me.length)return;const W=Me.length===1?Me[0].scanRunIds.filter(D=>!Le.includes(D)&&Rc(jt[D])):Ke.runIds;if(!W.length){if(Me.length===1&&ln[S.project.id]?.[Me[0].id]?.hasPolicyResults){t(S.project,[],Me[0].assessmentIds);return}me("The selected timeslots do not contain a common comparable scanner source.");return}t(S.project,W,[...new Set(Me.flatMap(D=>D.assessmentIds))])},ba=async W=>{if(W.preventDefault(),!S?.project||!Dt)return;const D=`timeslot-${Dt}`;if(ot.some(j=>j.id===D)){me("A timeslot already exists for this date.");return}L(!0),me(null);try{const j=new Date().toISOString(),_=`${Dt}T12:00:00.000Z`,se={id:aC(S.project.id,_),projectId:S.project.id,name:`Timeslot ${to(_)}`,effectiveAt:_,scoringPolicy:T1(),createdAt:j,updatedAt:j};await On.saveAssessment(se),await Je(),We([D]),_e([]),pt([D]),Kt(!1),Ce({tone:"success",message:"Timeslot created and selected."})}catch(j){me(j instanceof Error?j.message:"The timeslot could not be created.")}finally{L(!1)}},Wn=async W=>{if(W.preventDefault(),!(!S?.name.trim()||S.mode==="edit"&&!y)){L(!0),me(null),Ce(null);try{const D=new Date().toISOString(),j=S.project?{...S.project,name:S.name.trim(),description:S.description.trim(),updatedAt:D,attributes:{...S.project.attributes,consultant:S.consultant.trim()}}:{id:hu(S.name,Date.now(),Date.now()),name:S.name.trim(),description:S.description.trim(),createdAt:D,updatedAt:D,attributes:{consultant:S.consultant.trim()}},_=await On.saveProject(j),se=await On.getProject(_.project.id);if(!(se.updatedAt===j.updatedAt&&se.name===j.name&&(se.description??"")===(j.description??"")&&au(se)===au(j)))throw new Error("The database did not confirm the saved state.");await Je(),x({mode:"edit",project:se,name:se.name,description:se.description??"",consultant:au(se)}),w(!1),Ce({tone:"success",message:"Saved to the database."})}catch(D){Ce({tone:"error",message:D instanceof Error?D.message:"Saving to the database failed."})}finally{L(!1)}}},Ln=async()=>{if(C){L(!0),me(null);try{await On.deleteProject(C.id),e===C.id&&t(void 0),S?.project?.id===C.id&&(w(!1),x(null)),k(null),await Je()}catch(W){me(W instanceof Error?W.message:"Project could not be deleted.")}finally{L(!1)}}},Si=async()=>{const W=S?.project?.id;if(!(!W||!E)){L(!0),me(null),Ce(null);try{if(!(await On.deleteScanRun(W,E.scanRunId)).deleted)throw new Error("The scan report was no longer present in the database.");_e(j=>j.filter(_=>_!==E.scanRunId)),O(null),await Je(),e===W&&await n?.(W),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:W}})),Ce({tone:"success",message:"Scan report and its records were deleted from the database."})}catch(D){me(D instanceof Error?D.message:"Scan report could not be deleted.")}finally{L(!1)}}},wa=async(W,D)=>{const j=S?.project?.id;if(j){L(!0),me(null),Ce(null);try{const _=await On.adoptScanRunReplacement(j,W.scanRunId,D.scanRunId);await Je(),e===j&&await n?.(j),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:j}}));const se=_.reimportReviewTransfer,xe=se.unresolved>0?` ${se.transferred} client records were transferred; ${se.unresolved} remain retained on the previous scan and require review.`:` ${se.transferred} client records were transferred safely.`;Ce({tone:"success",message:`${D.tool.name} was adopted as the replacement scan. The previous scan remains auditably retained.${xe}`})}catch(_){me(_ instanceof Error?_.message:"The imported scan could not be adopted as the replacement.")}finally{L(!1)}}},ti=async()=>{const W=S?.project?.id;if(!(!W||!A)){if(!A.assessmentIds.length){z(null),me("This timeslot has no persisted assessment and cannot be deleted safely.");return}L(!0),me(null),Ce(null);try{for(const j of A.assessmentIds)if(!(await On.deleteAssessment(W,j)).deleted)throw new Error("The timeslot was no longer present in the database.");const D=A.id;We(j=>j.filter(_=>_!==D)),_e(j=>j.filter(_=>!A.scanRunIds.includes(_))),pt(j=>j.filter(_=>_!==D)),z(null),await Je(),e===W&&await n?.(W),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:W}})),Ce({tone:"success",message:"Timeslot and its assigned data were deleted from the database."})}catch(D){me(D instanceof Error?D.message:"Timeslot could not be deleted.")}finally{L(!1)}}},Pn=async W=>{const D=S?.project?.id;if(!D||!W.evaluationUpdates?.length)return;L(!0),ue("Re-evaluating GPO baseline comparisons"),me(null),Ce(null);let j;try{for(const _ of W.evaluationUpdates)await On.evaluatePolicy(D,{aggregationRunId:_.aggregationRunId,baselineAnalysisIds:_.baselineAnalysisIds})}catch(_){j=_ instanceof Error?_.message:"GPO re-evaluation failed. Review the processing controls in GPO Analysis. Previous results remain retained."}finally{await Je(),j?me(j):Ce({tone:"success",message:"GPO re-evaluation completed. Previous runs remain retained as history. Reopen the timeslot to load the current results."}),ue(void 0),L(!1)}},Vn=async W=>{const D=S?.project?.id;if(!(!D||!W.analysisUpdate)){L(!0),ue("Reprocessing the stored GPO source"),me(null),Ce(null);try{const j=await On.reprocessGpoBackup(D,W.artifactId,W.analysisUpdate.expectedLatestProcessingRunId);F({projectId:D,artifactId:j.artifactId,jobId:j.jobId}),ue("Processing GPO backup"),await Je(),Ce({tone:"success",message:"GPO reprocessing was queued. Previous runs remain retained as history; re-evaluate once processing completes."})}catch(j){ue(void 0),me(j instanceof Error?j.message:"GPO reprocessing could not be started. Previous results remain retained.")}finally{L(!1)}}},q=async W=>{const D=S?.project?.id;if(D){L(!0),ue("Starting GPO processing"),me(null),Ce(null);try{const j=await On.retryGpoBackup(D,W.artifactId);F({projectId:D,artifactId:j.artifactId,jobId:j.jobId}),ue("Processing GPO backup"),await Je(),Ce({tone:"success",message:"The GPO analysis job was requeued."})}catch(j){ue(void 0),me(j instanceof Error?j.message:"The GPO analysis job could not be restarted.")}finally{L(!1)}}},ne=async()=>{const W=S?.project?.id;if(!(!W||!N)){L(!0),me(null),Ce(null);try{await On.deleteGpoBackup(W,N.artifactId),B(null),await Je(),e===W&&await n?.(W),globalThis.dispatchEvent(new CustomEvent("assessor:datahub-changed",{detail:{projectId:W}})),Ce({tone:"success",message:"GPO backup and its derived records were deleted from the database."})}catch(D){me(D instanceof Error?D.message:"The GPO backup could not be deleted.")}finally{L(!1)}}};if(i!=="connected")return d.jsxs("div",{className:"datahub-page",children:[d.jsx("section",{className:"datahub-hero",children:d.jsx("div",{children:d.jsx("p",{children:"Datahub is the control center for clients, scans, and findings."})})}),d.jsx(ym,{backendStatus:i,message:"Import and project management will be available again once the local API is connected."})]});const V=S?.project,G=Me.length===1?Me[0].scanRunIds.filter(W=>!Le.includes(W)&&Rc(jt[W])):[],Q=!Me.length||(Me.length===1?!ln[S?.project?.id??""]?.[Me[0].id]?.canOpen||!G.length&&!ln[S?.project?.id??""]?.[Me[0].id]?.hasPolicyResults:!Ke.runIds.length),ie=V&&d.jsxs("section",{className:"tenant-timeslots","aria-label":"Timeslots",children:[d.jsxs("div",{className:"tenant-timeslots-header",children:[d.jsx("h2",{className:"tenant-timeslots-heading",children:"Timeslots"}),d.jsxs("button",{className:"btn tenant-timeslot-add",type:"button","aria-label":"Create timeslot",title:"Create Timeslot",onClick:()=>{dt(new Date().toLocaleDateString("sv-SE")),Kt(!0)},children:[d.jsx("span",{"aria-hidden":"true",children:"+"})," Timeslot"]})]}),d.jsx("div",{className:"tenant-timeslot-list",children:P?d.jsx(Ao,{message:"Timeslots are loading …",compact:!0}):ot.length===0?d.jsxs("div",{className:"datahub-empty tenant-files-empty",children:[d.jsx("h3",{children:"No timeslots yet"}),d.jsx("p",{children:"Create the first dated assessment timeslot."})]}):ot.map(W=>{const D=Pe.filter(Be=>W.scanRunIds.includes(Be.scanRunId)),j=new Map(D.map(Be=>[Be.scanRunId,mp(Be.files)])),_=D.filter(Be=>j.get(Be.scanRunId)?.state!=="ready"),se=_.some(Be=>j.get(Be.scanRunId)?.state==="error"),xe=_.some(Be=>j.get(Be.scanRunId)?.state==="review"),Ae=new Map(_.flatMap(Be=>{const ct=D.filter(St=>St.scanRunId!==Be.scanRunId&&St.tool.id===Be.tool.id&&F_(Be.files.map(kn=>kn.sha256),St.files.map(kn=>kn.sha256))==="match"&&Date.parse(St.importedAt)>Date.parse(Be.importedAt)&&j.get(St.scanRunId)?.state==="ready"&&jt[St.scanRunId]==="recognized").sort((St,kn)=>Date.parse(kn.importedAt)-Date.parse(St.importedAt))[0];return ct?[[Be.scanRunId,ct]]:[]})),Fe=D.filter(Be=>Rc(jt[Be.scanRunId])),Oe=tt.includes(W.id),Ue=Oe?Fe.filter(Be=>!Le.includes(Be.scanRunId)).length:0,Ge=Oe&&(Fe.length===0||Ue===Fe.length),kt=Oe&&Fe.length>0&&Ue<Fe.length;return d.jsxs("details",{className:`tenant-files tenant-scan-history tenant-timeslot${Oe?" is-selected":""}`,open:Xe.includes(W.id),onToggle:Be=>{const ct=Be.currentTarget.open;pt(St=>ct?St.includes(W.id)?St:[...St,W.id]:St.filter(kn=>kn!==W.id))},children:[d.jsxs("summary",{className:"tenant-section-bar",children:[d.jsxs("span",{className:"tenant-timeslot-title",children:[d.jsx("input",{ref:Be=>{Be&&(Be.indeterminate=kt)},type:"checkbox",checked:Ge,"aria-label":`Select timeslot ${to(W.fileDate)}`,onClick:Be=>Be.stopPropagation(),onChange:Be=>Fn(W.id,Be.target.checked)}),d.jsx("strong",{children:to(W.fileDate)})]}),d.jsxs("span",{className:"tenant-history-meta",children:[d.jsx("b",{children:(D.length+W.gpoBackups.length).toLocaleString("de-DE")}),d.jsx(vn,{direction:"right"})]})]}),D.length===0&&W.gpoBackups.length===0?d.jsxs("div",{className:"datahub-empty tenant-files-empty",children:[d.jsx("h3",{children:"No sources"}),d.jsx("p",{children:"This timeslot does not contain a scan report or GPO backup yet."})]}):d.jsxs("div",{className:"tenant-report-list",role:"table","aria-label":`Assessment sources from ${to(W.fileDate)}`,children:[d.jsxs("div",{className:"tenant-report-row tenant-report-head",role:"row",children:[d.jsx("span",{"aria-hidden":"true"}),d.jsx("span",{children:"Source"}),d.jsx("span",{children:"Imported"}),d.jsx("span",{children:"Status"}),d.jsx("span",{children:"Actions"})]}),D.map(Be=>{const ct=jt[Be.scanRunId]??"checking",St=j.get(Be.scanRunId),kn=Rc(ct),ni=St.state==="update"?"Reimport recommended":St.state==="review"?"Review required":St.state==="error"?"Processing error":ct==="recognized"?"Ready":ct==="generic"?"Generic":ct==="not-viewable"?"Not viewable":ct==="unavailable"?"Unavailable":"Checking",Ca=St.state!=="ready"?St.explanation:ct==="recognized"?"Tool recognized, Work records available, and processing contract ready.":ct==="generic"?"Work records are available, but no specific scanner profile was recognized.":ct==="not-viewable"?"The upload is stored, but it produced no records that Work can display.":ct==="unavailable"?"Display readiness could not be checked.":"Display readiness is being checked.";return d.jsxs("div",{className:"tenant-report-row",role:"row",children:[d.jsx("input",{type:"checkbox",disabled:!kn,checked:kn&&Oe&&!Le.includes(Be.scanRunId),"aria-label":`Select ${Be.tool.name} scan report`,onChange:ss=>Sa(W.id,Be.scanRunId,ss.target.checked)}),d.jsxs("span",{className:"tenant-report-copy",children:[d.jsx("b",{children:Be.tool.name}),d.jsxs("small",{children:[Be.fileCount.toLocaleString("de-DE")," ",Be.fileCount===1?"file":"files"," · ",Be.formats.join(", ")||"—"]})]}),d.jsx("span",{className:"tenant-report-imported",children:Q3(Be.importedAt)}),d.jsx("b",{className:"tenant-report-status","data-status":St.state==="update"?"reimport-recommended":St.state==="review"?"review-required":St.state==="error"?"processing-error":ct,title:Ca,children:ni}),d.jsx("button",{className:"btn tenant-scan-delete",type:"button",title:`Delete ${Be.tool.name} scan report`,"aria-label":`Delete ${Be.tool.name} scan report`,onClick:()=>O(Be),children:"Delete"})]},Be.id)}),W.gpoBackups.map(Be=>d.jsx(T_,{record:Be,projectId:S.project.id,imported:Q3(Be.submittedAt),busy:I,onEvaluate:()=>{Pn(Be)},onReprocess:()=>{Vn(Be)},onRetry:()=>{q(Be)},onDelete:()=>B(Be)},Be.artifactId))]}),_.length>0&&d.jsxs("section",{className:"tenant-processing-alert","data-status":se?"error":xe?"review":"update","aria-label":se?"ASSESSOR processing errors require attention":xe?"ASSESSOR review required":"ASSESSOR processing profile updates available",children:[d.jsxs("header",{children:[d.jsx("strong",{children:se?"ASSESSOR processing issue":xe?"Review required":"New ASSESSOR processing profile available"}),d.jsx("span",{children:se?"At least one stored processing contract cannot be assessed safely. Review the affected scan and reimport its unchanged original file.":xe?"The report needs attention because its scanner profile is generic or client-owned finding data could not be matched uniquely during reimport. Original data remains retained.":"ASSESSOR has updated its internal scanner-processing profile. Reimport the unchanged original scanner file to apply it; the existing scan remains active until replacement succeeds."})]}),_.map(Be=>{const ct=Ae.get(Be.scanRunId);return d.jsxs("div",{className:"tenant-processing-alert-row",children:[d.jsxs("div",{children:[d.jsx("strong",{children:Be.tool.name}),d.jsx("p",{children:ct?"A newer ready scan of the same tool is present. It can be adopted as the replacement without deleting or uploading it again.":j.get(Be.scanRunId).explanation})]}),ct?d.jsxs("button",{className:"btn primary",type:"button",disabled:I,onClick:()=>{wa(Be,ct)},children:["Use imported ",Be.tool.name]}):j.get(Be.scanRunId).state!=="review"&&d.jsx(_3,{targetProjectId:V.id,targetAssessmentId:Be.assessmentIds[0],replacesScanRunId:Be.scanRunId,label:`Reimport ${Be.tool.name}`})]},Be.scanRunId)})]}),d.jsxs("div",{className:"tenant-timeslot-actions",children:[d.jsx("div",{className:"tenant-timeslot-add-heading",children:d.jsx("h4",{children:"Add Entry"})}),d.jsx(_3,{targetProjectId:V.id,targetAssessmentId:W.assessmentIds[0],label:"Import Scan"}),d.jsx(xm,{projectId:V.id,assessmentId:W.assessmentIds[0],label:"Import GPO Folder",archiveLabel:"Import GPO ZIP",showStatus:!1}),d.jsxs("div",{className:"tenant-timeslot-delete-action",children:[d.jsx("span",{children:"Entire timeslot"}),d.jsx("button",{className:"btn danger",type:"button",onClick:()=>z(W),children:"Delete timeslot"})]})]})]},W.id)})})]});return d.jsxs("div",{className:"datahub-page"+(S?" tenant-detail-page":""),children:[S?d.jsxs("div",{className:"tenant-detail-layout",children:[d.jsxs("aside",{className:"tenant-detail-navigation",children:[d.jsxs("section",{className:"tenant-editor-header",children:[d.jsxs("button",{className:"tenant-back",type:"button",title:"Back to client overview","aria-label":"Back to client overview",onClick:()=>{I||(w(!1),_e([]),pe("client-information"),x(null))},children:[d.jsx(vn,{direction:"left"}),d.jsx("span",{children:"Back"})]}),S.project&&d.jsx("button",{className:"btn primary tenant-navigation-open",type:"button",disabled:Q,title:Me.length?Me.length>1?"Open comparable sources from the selected timeslots":"Open selected scan reports":"Select at least one timeslot",onClick:Zn,children:"Open"}),d.jsxs("div",{className:"tenant-identity",children:[d.jsx("h2",{children:S.mode==="create"?"Create Client":S.project?.name}),S.project&&d.jsx("p",{children:to(S.project.createdAt)})]})]}),S.mode==="edit"&&ie]}),d.jsx("main",{className:"tenant-detail-information",children:_t==="client-information"?d.jsxs("section",{className:"tenant-information-sheet","aria-label":"Client information sheet",children:[d.jsxs("header",{className:"tenant-information-header",children:[d.jsx("div",{className:"tenant-information-title",children:d.jsx("strong",{children:"Client Information"})}),d.jsxs("div",{className:"tenant-information-actions",children:[S.project&&m[S.project.id]?.length>0&&!y&&d.jsx("button",{className:"btn tenant-show-gpo",type:"button",onClick:()=>pe("gpo-analysis"),children:"GPO Analysis"}),S.project&&!y&&d.jsx("button",{className:"btn danger tenant-delete-client",type:"button",onClick:()=>k(S.project),children:"Delete client"}),S.mode==="edit"&&!y&&d.jsx("button",{className:"btn primary tenant-edit-client",type:"button",disabled:I,onClick:()=>{Ce(null),w(!0)},children:"Edit"}),(S.mode==="create"||y)&&d.jsx("button",{className:"btn primary tenant-save-client",type:"submit",form:"tenant-editor-form",disabled:I||!S.name.trim(),children:I?"Saving …":"Save"})]})]}),re&&d.jsxs("div",{className:"datahub-alert",role:"alert",children:[d.jsx("span",{children:re}),d.jsx("button",{className:"btn",type:"button",onClick:()=>me(null),children:"Close"})]}),te&&d.jsxs("div",{className:"tenant-save-feedback "+te.tone,role:te.tone==="error"?"alert":"status",children:[d.jsx("span",{"aria-hidden":"true",children:te.tone==="success"?"✓":"!"}),d.jsx("strong",{children:te.message})]}),d.jsxs("form",{id:"tenant-editor-form",className:`tenant-editor-form${y?" is-editing":""}`,onSubmit:Wn,children:[d.jsxs("label",{children:[d.jsxs("span",{className:"tenant-field-label",children:["Name",y&&d.jsx("i",{children:"Required"})]}),y?d.jsx("input",{className:"input",value:S.name,onChange:W=>Xt({name:W.target.value}),required:!0,autoFocus:S.mode==="create"}):d.jsx("span",{className:"tenant-field-value",children:S.name||"—"})]}),d.jsxs("label",{children:[d.jsxs("span",{className:"tenant-field-label",children:["Consultant",y&&d.jsx("i",{children:"optional"})]}),y?d.jsx("input",{className:"input",value:S.consultant,onChange:W=>Xt({consultant:W.target.value}),placeholder:"Responsible person"}):d.jsx("span",{className:"tenant-field-value",children:S.consultant||"—"})]}),d.jsxs("label",{className:"tenant-editor-description",children:[d.jsxs("span",{className:"tenant-field-label",children:["Remarks",y&&d.jsx("i",{children:"optional"})]}),y?d.jsx("textarea",{className:"input",value:S.description,onChange:W=>Xt({description:W.target.value}),rows:10,placeholder:"Notes about the client or project"}):d.jsx("span",{className:"tenant-field-value tenant-field-prose",children:S.description||"—"})]})]})]}):S.project?d.jsxs("section",{className:"tenant-information-sheet tenant-policy-information","aria-label":"GPO policy analysis",children:[d.jsxs("header",{className:"tenant-information-header",children:[d.jsx("div",{className:"tenant-information-title",children:d.jsx("strong",{children:"GPO Analysis"})}),d.jsx("div",{className:"tenant-information-actions",children:d.jsx("button",{className:"btn",type:"button",onClick:()=>pe("client-information"),children:"Client Information"})})]}),d.jsx(v_,{projectId:S.project.id})]}):null})]}):d.jsxs(d.Fragment,{children:[re&&d.jsxs("div",{className:"datahub-alert",role:"alert",children:[d.jsx("span",{children:re}),d.jsx("button",{className:"btn",type:"button",onClick:()=>{Je()},children:"Neu laden"})]}),d.jsx(D_,{projects:r,projectData:l,projectHistory:T,projectGpoData:m,projectOpenReadiness:ln,selection:ge,timeslotMetrics:fe,loading:P,comparisonBusy:qe,comparisonError:Ne,onCreate:st,onShow:Vt,onOpen:(W,D,j)=>t(W,D,j),onSelectProject:qt}),d.jsxs("div",{className:"datahub-reference-row is-mitre-hidden",children:[d.jsx(S_,{}),L_]})]}),E&&d.jsx(Ua,{title:"Delete scan report from the database?",onClose:()=>!I&&O(null),children:d.jsxs("div",{className:"datahub-delete-warning",children:[d.jsx("strong",{children:E.tool.name}),d.jsxs("p",{children:[new Date(E.fileDate).toLocaleString("en-US")," · ",E.fileCount," file",E.fileCount===1?"":"s"]}),d.jsx("p",{children:"The scan report, its findings, evidence, and scan-related mappings will be permanently deleted. Other scan reports for this client remain intact."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:I,onClick:()=>O(null),children:"Cancel"}),d.jsx("button",{className:"btn danger",type:"button",disabled:I,onClick:()=>{Si()},children:I?"Deleting …":"Yes, delete scan report"})]})]})}),N&&d.jsx(Ua,{title:"Delete GPO backup from the database?",onClose:()=>!I&&B(null),children:d.jsxs("div",{className:"datahub-delete-warning",children:[d.jsx("strong",{children:"GPO Backup"}),d.jsxs("p",{children:[N.fileName," · ",N.gpoCount," GPO",N.gpoCount===1?"":"s"]}),d.jsx("p",{children:"The GPO backup, its analysis, evaluations, and derived findings will be permanently deleted. The timeslot and all other scan and GPO entries remain intact."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:I,onClick:()=>B(null),children:"Cancel"}),d.jsx("button",{className:"btn danger",type:"button",disabled:I,onClick:()=>{ne()},children:I?"Deleting …":"Yes, delete GPO backup"})]})]})}),A&&d.jsx(Ua,{title:"Delete timeslot from the database?",onClose:()=>!I&&z(null),children:d.jsxs("div",{className:"datahub-delete-warning",children:[d.jsx("strong",{children:to(A.fileDate)}),d.jsxs("p",{children:[A.sourceCount," source",A.sourceCount===1?"":"s"," · ",A.fileCount+A.gpoBackups.length," assigned file",A.fileCount+A.gpoBackups.length===1?"":"s"]}),d.jsx("p",{children:"The timeslot, its scan reports, GPO backup data, findings, evidence, and related mappings will be permanently deleted. The client and all other timeslots remain intact."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:I,onClick:()=>z(null),children:"Cancel"}),d.jsx("button",{className:"btn danger",type:"button",disabled:I,onClick:()=>{ti()},children:I?"Deleting …":"Yes, delete timeslot"})]})]})}),Pt&&d.jsx(Ua,{title:"Create Timeslot",onClose:()=>!I&&Kt(!1),children:d.jsxs("form",{className:"timeslot-dialog-form",onSubmit:ba,children:[d.jsxs("label",{children:["Date",d.jsx("input",{className:"input",type:"date",value:Dt,required:!0,onChange:W=>dt(W.target.value)})]}),d.jsx("p",{children:"Imports added afterwards are assigned to this dated assessment timeslot."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:I,onClick:()=>Kt(!1),children:"Cancel"}),d.jsx("button",{className:"btn primary",type:"submit",disabled:I||!Dt,children:I?"Creating …":"Create"})]})]})}),C&&d.jsx(Ua,{title:"Permanently delete client?",onClose:()=>!I&&k(null),children:d.jsxs("div",{className:"datahub-delete-warning",children:[d.jsx("strong",{children:C.name}),d.jsx("p",{children:"All assessments, scan reports, findings, reviews, and mappings for this client will be permanently deleted from the database. This action cannot be undone."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",disabled:I,onClick:()=>k(null),children:"Cancel"}),d.jsx("button",{className:"btn danger",type:"button",disabled:I,onClick:()=>{Ln()},children:I?"Deleting …":"Yes, delete permanently"})]})]})}),d.jsx(xd,{label:le})]})}const ty=e=>e===void 0?"—":e.toLocaleString("en-US");function q_({groups:e}){const t=[...new Set(e.flatMap(n=>n.entries.map(a=>a.inventory)))];return d.jsxs("section",{className:"client-os-inventory","aria-label":"Operating systems",children:[d.jsxs("header",{children:[d.jsx("h3",{children:"Operating systems"}),t.length>1&&d.jsx("p",{children:"Source inventories are listed separately; overlapping counts are not added."})]}),d.jsx("div",{className:"client-os-groups",children:e.map(n=>d.jsxs("section",{className:"client-os-group",children:[d.jsxs("h4",{children:[d.jsx("span",{children:n.label}),d.jsx("span",{"aria-label":`${n.label} total`,children:ty(n.total)})]}),n.entries.length?d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{scope:"col",children:"Operating system"}),t.length>1&&d.jsx("th",{className:"client-os-source",scope:"col",children:"Source"}),d.jsx("th",{scope:"col",children:"Devices"})]})}),d.jsx("tbody",{children:n.entries.map(a=>d.jsxs("tr",{children:[d.jsx("td",{children:a.name}),t.length>1&&d.jsx("td",{className:"client-os-source",children:a.inventory==="unquantified"?"Count not reported":`Inventory ${t.indexOf(a.inventory)+1}`}),d.jsx("td",{children:ty(a.count)})]},a.id))})]}):d.jsx("p",{className:"client-os-empty",children:"No classified inventory available"})]},n.label))})]})}function iu(e){const t=e.normalizedValue??e.originalValue;return typeof t=="string"||typeof t=="number"?String(t).trim():""}function B_(e){if(!/^(?:\d+|\d{1,3}(?:,\d{3})+|\d{1,3}(?:[ \u00a0\u202f]\d{3})+)$/.test(e))return;const t=Number(e.replace(/[, \u00a0\u202f]/g,""));return Number.isSafeInteger(t)&&t>=0?t:void 0}function ny(e,t=[]){const n=new Set(t.map(a=>a.toLowerCase()).flatMap(a=>["server","domain controller","member server"].includes(a)?["Servers"]:["client","workstation"].includes(a)?["Clients"]:[]));return n.size>1?"Other / unclassified":n.size===1?[...n][0]:/\bwindows\s+server\b|^windows\s+(?:2003|2008|2012|2016|2019|2022|2025)\b|\bmac\s*os\s*x\s+server\b/i.test(e)?"Servers":/^windows\s+(?:xp|vista|7|8(?:\.1)?|10|11)\b|^(?:macos|mac os x)\b/i.test(e)?"Clients":"Other / unclassified"}function U_(e){const t=new Map;for(const i of e?.observations??[]){if(i.tool.id!=="pingcastle"||i.state!=="observed"||typeof i.attributes.sourceTableIndex!="number"||i.source.rowIndex===void 0)continue;const r=JSON.stringify([i.scanRunId,i.importFileId,i.sectionKey,i.attributes.sourceTableIndex,i.source.rowIndex]),c=t.get(r)??[];c.push(i),t.set(r,c)}const n=new Map([["Servers",[]],["Clients",[]],["Other / unclassified",[]]]),a=new Set;for(const[i,r]of t){const c=[...new Set(r.filter(g=>g.property==="operating_system.name").map(iu).filter(Boolean))];if(!c.length)continue;const l=new Set(r.filter(g=>g.property==="operating_system.count").map(g=>B_(iu(g)))),f=c.length===1&&l.size===1?[...l][0]:void 0,T=r.filter(g=>/^(?:type|role|computer type|os type)$/i.test(g.label.trim())).map(iu),p=r[0],m=JSON.stringify([p.scanRunId,p.importFileId,p.sectionKey,p.attributes.sourceTableIndex]);for(const g of c)a.add(g),n.get(ny(g,T)).push({id:`${i}:${g}`,name:g,count:f,inventory:m})}for(const i of new Set((e?.observations??[]).filter(r=>r.state==="observed"&&r.property==="operating_system.name").map(iu).filter(Boolean)))a.has(i)||n.get(ny(i)).push({id:`name:${i}`,name:i,inventory:"unquantified"});return[...n].map(([i,r])=>{const c=new Map;for(const m of r){const g=JSON.stringify([m.inventory,m.name]);c.set(g,(c.get(g)??0)+1)}const l=r.map(m=>c.get(JSON.stringify([m.inventory,m.name]))>1?{...m,count:void 0}:m),f=[...new Map(l.map(m=>[JSON.stringify([m.inventory,m.name]),m])).values()],T=new Set(f.map(m=>m.inventory)),p=f.length>0&&T.size===1&&f.every(m=>m.count!==void 0)?f.reduce((m,g)=>m+g.count,0):void 0;return{label:i,entries:f.sort((m,g)=>(g.count??-1)-(m.count??-1)||m.name.localeCompare(g.name)),total:p!==void 0&&Number.isSafeInteger(p)?p:void 0}})}const Sm="/assets/assessor-icon-transparent-CwoRGD4B.png";function N6(e){return d.jsx("div",{className:"empty-state empty-state-brand","aria-label":"ASSESSOR – No dataset open",children:d.jsxs("div",{className:"empty-state-content",children:[d.jsxs("div",{className:"empty-brand-mark","aria-hidden":"true",children:[d.jsx("span",{className:"empty-brand-logo",children:d.jsx("img",{src:Sm,alt:""})}),d.jsx("strong",{children:"ASSESSOR"})]}),d.jsx("p",{className:"empty-supported-formats",children:"Open a client in the Datahub and import a scan report there."})]})})}function z_(e,t,n=!1){if(!t)return e;const a=e.map(i=>{const r=new Set(i.records.flatMap(p=>p.importFileId?[p.importFileId]:[])),c=po(i.tool.label),l=t.scans.filter(p=>p.toolId===c&&p.importFileIds.some(m=>r.has(m))),f=Gu(l)[0];if(f)return{...i,score:f.score,weight:f.weight,rating:f};const T=t.policy;return T?{...i,score:Mb(T)?i.score:void 0,weight:T.weights?.[c]??T.defaultWeight}:i});if(n){const i=new Set(e.map(r=>po(r.tool.label)));for(const r of Gu(t.scans).filter(c=>!i.has(c.toolId)))a.push({tool:{id:r.toolId,label:r.scans[0].toolName,sourceValues:[],count:0},records:[],passed:r.scans.reduce((c,l)=>c+l.passed,0),deviations:r.scans.reduce((c,l)=>c+l.deviations,0),assessed:r.scans.reduce((c,l)=>c+l.assessed,0),score:r.score,weight:r.weight,rating:r})}return a}const W_={native:"Native score","inverted-native":"100 − native risk","pass-rate":"100 × passed / assessed",unavailable:"Evidence present, not scoreable"},Dc=e=>e===void 0?"—":e.toLocaleString("en-US",{maximumFractionDigits:2});function V_({sources:e,context:t,onClose:n}){const a=t?.baseline?jb(t.baseline,t.scans):void 0,i=a?.awaitingRevalidation.reduce((r,c)=>r+c.occurrenceIds.length,0)??0;return d.jsx(Ua,{title:"Scoring methodology",onClose:n,children:d.jsxs("div",{className:"security-scoring-methodology",children:[d.jsx("p",{children:"The overall score is a combined assessment index. Each scan uses its validated native score, or the pass rate when the assessed results support that calculation. Native scores and pass rates use different methods; the index is not a percentage of security."}),d.jsx("p",{children:"Each source tool has a fixed weight. Its distinct, latest verified scan scopes contribute equally within that weight. Importing the same verified scan again adds no weight. Critical findings and assessment coverage remain separate."}),d.jsx("p",{children:"Security Domain numbers are pass rates, not components of the overall index. Not relevant results are excluded; unassessed and execution-error results do not become passed checks."}),d.jsxs("table",{children:[d.jsx("caption",{children:"Score contributions · Rule 1.0.0"}),d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Source"}),d.jsx("th",{children:"Contribution"}),d.jsx("th",{children:"Weight"}),d.jsx("th",{children:"Basis"})]})}),d.jsx("tbody",{children:e.map(r=>d.jsxs("tr",{children:[d.jsx("td",{children:r.tool.label}),d.jsx("td",{children:Dc(r.score)}),d.jsx("td",{children:Dc(r.weight??1)}),d.jsx("td",{children:r.rating?r.rating.scans.map(c=>d.jsxs("div",{children:[d.jsx("strong",{children:W_[c.method]}),": ",Dc(c.score),c.nativeValue!==void 0&&d.jsxs(d.Fragment,{children:[" · Native: ",Dc(c.nativeValue)]}),d.jsxs("div",{children:[c.assessed," assessed · ",c.eligible," known eligible · Scan time: ",c.observedAt??"—"]}),c.issues.length>0&&d.jsx("div",{children:c.issues.join(" · ")})]},c.id)):d.jsxs(d.Fragment,{children:[r.passed," / ",r.assessed," passed · Pass rate"]})})]},r.tool.id))})]}),d.jsx("p",{children:"Values are rounded only for display. A missing, invalid or ambiguous native score is disclosed. Historical assessments without an explicit policy use the fixed version 1.0.0 policy."}),t?.historyUnavailable&&d.jsx("p",{children:"Historical evidence could not be fully loaded. No verified progress is available."}),a&&!t?.historyUnavailable&&d.jsxs(d.Fragment,{children:[d.jsx("h3",{children:"Comparable progress"}),d.jsxs("p",{children:[a.comparable," comparable scan scopes · Change: ",a.change===void 0?"—":`${a.change>0?"+":""}${Dc(a.change)} points`,a.scopeChanged?" · Scope or method changed; overall values are not directly comparable.":""]}),d.jsxs("p",{children:[i," previously open findings await revalidation. Historical risks retain their original scan reference and are not reported as resolved because a follow-up scan is missing."]}),a.awaitingRevalidation.filter(r=>r.occurrenceIds.length>0).map((r,c)=>d.jsxs("p",{children:[r.occurrenceIds.length," open findings · Last observed: ",r.observedAt??"—"]},`${r.assessmentId}-${c}`))]})]})})}function O6(){return{scope:"",scenario:"",businessReason:"",alternatives:"",likelihood:"",impact:"",initialRisk:"",residualRisk:"",residualAssessment:"",compensatingControls:"",controlOwner:"",controlEvidence:"",riskOwner:"",riskOwnerRole:"",riskOwnerContact:"",approver:"",approverRole:"",approverContact:"",approvalReference:"",approvedOn:"",validFrom:"",expiresOn:"",reviewOn:"",monitoring:"",reassessmentTriggers:"",exitPlan:"",obligationsReview:"",trackingReference:"",evidenceReferences:""}}const H_=["approvedOn","validFrom","expiresOn","reviewOn"];function G_(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)&&Number.isFinite(Date.parse(e))&&new Date(e).toISOString().slice(0,10)===e}function X_(e,t){const n=[];if(!e||!["draft","accept","revoke"].includes(e.action))return["A valid decision action is required."];if((typeof e.recordedBy!="string"||!e.recordedBy.trim()||e.recordedBy.length>500)&&n.push("Recorded by is required (maximum 500 characters)."),(typeof e.changeReason!="string"||!e.changeReason.trim()||e.changeReason.length>4e3)&&n.push("A change / decision reason is required (maximum 4,000 characters)."),e.action==="revoke")return n;const a=e.details;if(!a||typeof a!="object"||Array.isArray(a))return[...n,"Decision details are required."];for(const i of Object.keys(O6()))typeof a[i]!="string"||a[i].length>12e3?n.push(`${i}: text is required, with at most 12,000 characters.`):e.action==="accept"&&!a[i].trim()&&i!=="evidenceReferences"&&n.push(`${i}: complete this field before recording acceptance.`);if(n.length)return n;for(const i of H_)a[i]&&!G_(a[i])&&n.push(`${i}: enter a valid date.`);for(const i of["initialRisk","residualRisk"])["","Low","Medium","High","Critical"].includes(a[i])||n.push(`${i}: select a risk level.`);return e.action==="accept"&&((a.riskOwner.trim().toLowerCase()===a.approver.trim().toLowerCase()||a.riskOwnerContact.trim().toLowerCase()===a.approverContact.trim().toLowerCase())&&n.push("Risk owner and approving authority must be different people."),a.approvedOn>t&&n.push("Approval cannot be dated in the future."),a.approvedOn>a.validFrom&&n.push("Approval must be on or before the validity start."),(a.expiresOn<=t||a.expiresOn<=a.validFrom)&&n.push("Expiry must be in the future and after the validity start."),(a.reviewOn<=t||a.reviewOn<a.validFrom||a.reviewOn>a.expiresOn)&&n.push("Review must be in the future, within the validity period."),a.validFrom<t&&n.push("A new acceptance cannot take effect retroactively.")),n}function bm(e,t,n=new Date().toISOString().slice(0,10)){const a=e?.revisions.at(-1);return a?a.action==="revoke"?"Revoked":a.action==="draft"?"Draft":t&&a.targetOccurrenceId!==t?"Review required":a.details.expiresOn<n?"Expired":a.details.reviewOn<=n?"Review due":a.details.validFrom>n?"Scheduled":"Accepted":"Not recorded"}function K_(e){return e.fields.find(t=>/^(?:source|quelle):\s*scan$/i.test(t.label.trim()))?.value.trim()||e.sourceSheet?.trim()||"Assessment"}function $_(e,t,n=new Date().toISOString().slice(0,10)){const a=new Map;return e.sheets.forEach(i=>i.analysis.records.forEach(r=>{const c=t[r.id]?.riskAcceptance,l=c?.revisions.at(-1);if(!l)return;const f=r.findingOccurrenceId??l.targetOccurrenceId??r.id;a.has(f)||a.set(f,{id:f,recordId:r.id,occurrenceId:f,title:r.title||"Untitled finding",source:K_(r),state:bm(c,f,n),latest:l,revisions:c.revisions})})),[...a.values()].sort((i,r)=>r.latest.recordedAt.localeCompare(i.latest.recordedAt)||i.title.localeCompare(r.title))}function Ic(e){if(!e)return"—";const t=/^\d{4}-\d{2}-\d{2}$/.test(e)?new Date(`${e}T00:00:00Z`):new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",timeZone:"UTC"}).format(t)}function ay(e){return e==="Accepted"||e==="Scheduled"?"current":e==="Review due"||e==="Draft"?"attention":e==="Expired"||e==="Review required"?"critical":"neutral"}function Gr({label:e,value:t}){return d.jsxs("div",{children:[d.jsx("dt",{children:e}),d.jsx("dd",{children:t.trim()||"—"})]})}function su({title:e,details:t,fields:n}){return d.jsxs("details",{className:"risk-register-detail-group",children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),d.jsx("h3",{children:e})]}),d.jsx("dl",{children:n.map(([a,i])=>d.jsx(Gr,{label:i,value:t[a]},a))})]})}function Y_({dataset:e,reviews:t}){const n=$_(e,t),[a,i]=H.useState(""),r=n.find(l=>l.id===a)??n[0],c=n.filter(l=>["Accepted","Scheduled","Review due","Review required"].includes(l.state)).length;return d.jsxs("section",{className:"client-risk-register","aria-labelledby":"client-risk-register-heading",children:[d.jsxs("header",{children:[d.jsxs("div",{children:[d.jsx("h2",{id:"client-risk-register-heading",children:"Accepted Risks"}),d.jsx("span",{children:"Risk register"})]}),d.jsxs("strong",{children:[n.length.toLocaleString("en-US")," recorded · ",c.toLocaleString("en-US")," current"]})]}),r?d.jsxs("div",{className:"client-risk-register-layout",children:[d.jsx("nav",{className:"client-risk-register-list","aria-label":"Accepted risks",children:n.map(l=>d.jsxs("button",{type:"button",className:`is-${ay(l.state)}`,"aria-pressed":l.id===r.id,onClick:()=>i(l.id),children:[d.jsx("i",{"aria-hidden":"true"}),d.jsxs("span",{children:[d.jsx("strong",{children:l.title}),d.jsx("small",{children:l.source})]}),d.jsx("em",{children:l.state}),d.jsxs("time",{dateTime:l.latest.details.reviewOn||l.latest.recordedAt,children:["Review ",Ic(l.latest.details.reviewOn)]})]},l.id))}),d.jsxs("article",{className:"client-risk-register-detail","aria-live":"polite",children:[d.jsxs("header",{children:[d.jsxs("div",{children:[d.jsx("span",{children:r.source}),d.jsx("h2",{children:r.title})]}),d.jsx("strong",{className:`is-${ay(r.state)}`,children:r.state})]}),d.jsxs("dl",{className:"risk-register-summary",children:[d.jsx(Gr,{label:"Initial risk",value:r.latest.details.initialRisk}),d.jsx(Gr,{label:"Residual risk",value:r.latest.details.residualRisk}),d.jsx(Gr,{label:"Valid from",value:Ic(r.latest.details.validFrom)}),d.jsx(Gr,{label:"Expires",value:Ic(r.latest.details.expiresOn)}),d.jsx(Gr,{label:"Next review",value:Ic(r.latest.details.reviewOn)}),d.jsx(Gr,{label:"Tracking reference",value:r.latest.details.trackingReference})]}),d.jsxs("div",{className:"risk-register-detail-groups",children:[d.jsx(su,{title:"Risk context",details:r.latest.details,fields:[["scope","Scope"],["scenario","Risk scenario"],["businessReason","Business rationale"],["alternatives","Alternatives considered"],["likelihood","Likelihood"],["impact","Business impact"],["residualAssessment","Residual risk assessment"]]}),d.jsx(su,{title:"Controls and monitoring",details:r.latest.details,fields:[["compensatingControls","Compensating controls"],["controlOwner","Control owner"],["controlEvidence","Control evidence"],["monitoring","Monitoring"],["reassessmentTriggers","Reassessment triggers"],["exitPlan","Exit / remediation plan"]]}),d.jsx(su,{title:"Accountability and approval",details:r.latest.details,fields:[["riskOwner","Risk owner"],["riskOwnerRole","Risk owner role / team"],["riskOwnerContact","Risk owner contact"],["approver","Approving authority"],["approverRole","Approver role / authority"],["approverContact","Approver contact"],["approvalReference","Approval evidence"],["approvedOn","Approved on"]]}),d.jsx(su,{title:"Governance and evidence",details:r.latest.details,fields:[["obligationsReview","Policy / regulatory review"],["evidenceReferences","Additional evidence"]]})]}),d.jsxs("details",{className:"risk-register-history",children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),d.jsx("h3",{children:"Decision history"}),d.jsxs("span",{children:[r.revisions.length," revisions"]})]}),d.jsx("ol",{children:[...r.revisions].reverse().map(l=>d.jsxs("li",{children:[d.jsxs("span",{children:[d.jsx("strong",{children:l.action==="accept"?"Accepted":l.action==="revoke"?"Revoked":"Draft saved"}),d.jsx("time",{dateTime:l.recordedAt,children:Ic(l.recordedAt)})]}),d.jsx("p",{children:l.changeReason}),d.jsxs("small",{children:["Recorded by ",l.recordedBy," · Revision ",l.revision]})]},l.revision))})]})]},r.id)]}):d.jsx("p",{className:"client-risk-register-empty",children:"No risk acceptance has been recorded for this assessment."})]})}const iy=new qi;function Z_(e){return new Intl.DateTimeFormat("de-DE",{day:"2-digit",month:"2-digit",year:"numeric"}).format(new Date(e))}function J_(e,t){if(!e?.length)return!1;const n=new Set(t);return e.every(a=>n.has(a))}function M6(){const{activeScanRunIds:e,activeAssessmentIds:t,backendStatus:n,openProject:a,targetProjectId:i}=ca(),[r,c]=H.useState([]),[l,f]=H.useState(!1),[T,p]=H.useState(!1),m=H.useRef(""),g=H.useCallback(async()=>{if(!i||n!=="connected"){c([]),p(!1);return}f(!0),p(!1);try{const[y,w]=await Promise.all([iy.listProjectAssessmentHistory(i),iy.listProjectImportFiles(i)]);c(ho(w,y.assessments,y.scanRuns).filter(C=>C.scanRunIds.length>0||C.assessmentIds.some(k=>t?.includes(k))))}catch{c([]),p(!0)}finally{f(!1)}},[t,n,i]);H.useEffect(()=>{g();const y=()=>{g()};return globalThis.addEventListener("assessor:datahub-changed",y),()=>globalThis.removeEventListener("assessor:datahub-changed",y)},[g]);const S=H.useMemo(()=>r.find(y=>J_(e,y.scanRunIds)||!e?.length&&!!t?.length&&t.every(w=>y.assessmentIds.includes(w)))?.id??"",[t,e,r]);H.useEffect(()=>{if(!i||l||r.length===0||S||t?.length)return;const y=r[0],w=`${i}:${y.id}`;m.current!==w&&(m.current=w,a(i,y.scanRunIds,y.assessmentIds))},[t,l,a,S,i,r]);const x=l?"Loading timeslots …":T?"Timeslots unavailable":"No timeslots";return d.jsx("select",{className:"select work-timeslot-select","aria-label":"Timeslot",title:"Timeslot",value:S,disabled:!i||n!=="connected"||l||r.length===0,onChange:y=>{if(!i)return;const w=r.find(C=>C.id===y.target.value);w&&a(i,w.scanRunIds,w.assessmentIds)},children:r.length===0?d.jsx("option",{value:"",children:x}):d.jsxs(d.Fragment,{children:[d.jsx("option",{value:"",disabled:!0,children:"Select timeslot"}),r.map(y=>d.jsxs("option",{value:y.id,children:["Timeslot · ",Z_(y.fileDate)]},y.id))]})})}const j6=new qi;function Q_(e){return{"--share":`${e}%`}}function F6(e){const t=e.split(/\s+·\s+/),n=t.at(-1)??"";return t.length<2||!/^\d{4}-\d{2}-\d{2}(?:T.*)?$/.test(n)||Number.isNaN(Date.parse(n))?e:t.slice(0,-1).join(" · ")}function eq(e){const t=new Map;return e.forEach(n=>{const a=F6(n.label),i=a.toLocaleLowerCase("en-US"),r=t.get(i);r?(r.sourceValues.push(n.value),r.count+=n.count):t.set(i,{id:i,label:a,sourceValues:[n.value],count:n.count})}),[...t.values()]}function wm(e){if(e.state==="explicitly-absent")return e.originalValue===!1?"Not detected":"Not present";const t=e.normalizedValue??e.originalValue;return typeof t=="boolean"?t?"Enabled":"Disabled":t===null||t===""?"No value":String(t)}function tq(e,t){const[n,a]=H.useState(),[i,r]=H.useState(!1);return H.useEffect(()=>{let c=!0;return a(void 0),r(!1),e?(j6.getEnvironmentSnapshot({projectId:e,scanRunIds:t}).then(l=>{c&&a(l)}).catch(()=>{c&&r(!0)}),()=>{c=!1}):()=>{c=!1}},[e,t?.join("|")]),{snapshot:n,failed:i}}function Cm(e,t,n,a){return e?.observations.find(i=>i.property===t||!!(n&&i.label===n))}function nq(e,t){return e?.sections.find(n=>n.sectionKey===t)}const Ro="—";function Em(e){return(e??"").replace(/\s*"\s*data-bs[\s\S]*$/i,"").trim()||Ro}function wn(e,t,n){const a=Cm(e,t,n);return a?Em(wm(a)):Ro}function zr(e,t,n,a){const i=Cm(e,t,n);if(!i)return;const r=i.normalizedValue??i.originalValue,c=typeof r=="number"?r:Number(r);return Number.isFinite(c)?c:void 0}function Kn(e){return e===void 0?Ro:e.toLocaleString("en-US")}function L6(e,t,n){return nq(e,t)?.tables.find(a=>n.test(a.name.trim()))}function no(e,t,n,a){const i=L6(e,t,n),r=i?.headers.findIndex(c=>a.test(c.trim()))??-1;return!i||r<0?Ro:Em(i.rows[0]?.[r]===null||i.rows[0]?.[r]===void 0?"":String(i.rows[0][r]))}function ao(e,t,n){return L6(e,t,n)?.rows.length}function aq(e){return(e?.sections??[]).filter(t=>["license-restricted","access-denied"].includes(t.state)).map(t=>t.label)}function iq(e){return new Set((e?.observations??[]).filter(n=>n.tool.id==="maester"&&n.property==="entra.tenant_id"&&n.state==="observed").map(n=>wm(n).trim()).filter(Boolean)).size||void 0}function sq(e){const t=a=>Zu(e,"sectionUserInformation",a),n=(e?.observations??[]).filter(a=>a.property.startsWith("purple_knight.ad.category_score.")).map(a=>({label:a.label,value:Kn(zr(e,a.property))}));return{operatingSystems:U_(e),directory:[{label:"Domain",value:wn(e,"domain.fqdn","Domain")},{label:"NetBIOS name",value:wn(e,"domain.netbios_name","Netbios Name")},{label:"Forest",value:wn(e,"forest.name")},{label:"Domains",value:Kn(gp(e))},{label:"Domain functional level",value:wn(e,"domain.functional_level","Domain Functional Level")},{label:"Forest functional level",value:wn(e,"forest.functional_level","Forest Functional Level")},{label:"Schema version",value:wn(e,"forest.schema_version","Schema version")},{label:"Domain created",value:wn(e,"domain.created_at","Creation date")},{label:"Entra ID",value:wn(e,"entra.configuration_detected","Entra ID configuration detected")}],inventory:[{label:"User accounts",value:Kn(t(/^nb user accounts$/i))},{label:"Enabled / disabled",value:`${Kn(t(/^nb enabled$/i))} / ${Kn(t(/^nb disabled$/i))}`},{label:"Password never expires",value:Kn(t(/^nb pwd never expire$/i))},{label:"Computer objects",value:Kn(Zu(e,"sectionComputerInformation",/^nb computer accounts$/i))},{label:"Domain controllers",value:wn(e,"domain.controller_count","DC count")},{label:"Admin groups",value:Kn(ao(e,"sectionAdminGroups",/^admin groups list$/i))},{label:"Trusts",value:Kn(ao(e,"sectionTrustsdetails",/^trusts list$/i))},{label:"Assessed host",value:wn(e,"host.name")}],passwordPolicy:[{label:"Policy",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^policy name$/i)},{label:"Complexity",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^complexity$/i)},{label:"Minimum length",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^min password length$/i)},{label:"History",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^password history$/i)},{label:"Maximum age",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^max password age$/i)},{label:"Lockout threshold",value:no(e,"sectionPasswordPolicies",/^password policies list$/i,/^lockout threshold$/i)}],certificates:[{label:"Certificate templates",value:Kn(ao(e,"sectionPKI",/^certificate templates list$/i))},{label:"Certificates",value:Kn(ao(e,"sectionPKI",/^certificates list$/i))},{label:"DC certificates",value:Kn(ao(e,"sectionPKI",/^dc certificates list$/i))},{label:"PKI delegations",value:Kn(ao(e,"sectionPKI",/^delegations list$/i))}],resilience:[{label:"AD Recycle Bin",value:wn(e,"domain.recycle_bin_enabled","Recycle Bin enabled")},{label:"Last AD backup",value:wn(e,"backup.last_detected_at","Last detected AD backup")},{label:"krbtgt password",value:wn(e,"kerberos.krbtgt.password_last_changed","krbtgt password last changed")},{label:"krbtgt version",value:wn(e,"kerberos.krbtgt.version","krbtgt version")},{label:"Legacy LAPS",value:wn(e,"laps.legacy.installation_date","Legacy LAPS installation date")},{label:"Windows LAPS",value:wn(e,"laps.windows.installation_date","Windows LAPS installation date")},{label:"WEF configurations",value:wn(e,"logging.wef.configuration_count","WEF configuration count")}],toolContext:[{label:"PingCastle engine",value:wn(e,"report.engine_version","PingCastle engine version")},{label:"PingCastle domain risk",value:Kn(zr(e,"risk.domain")??zr(e,"risk.global","Domain Risk Level"))},{label:"Purple Knight posture",value:Kn(zr(e,"purple_knight.ad.security_posture_score"))},{label:"Purple Knight IOEs",value:Kn(zr(e,"purple_knight.ad.ioes_found"))},{label:"Purple Knight evaluated",value:Kn(zr(e,"purple_knight.ad.evaluated"))},...n,{label:"CIS-CAT benchmark",value:wn(e,"benchmark.name")},{label:"CIS-CAT profile",value:wn(e,"benchmark.profile")},{label:"CIS-CAT score",value:Kn(zr(e,"benchmark.score"))},...(e?.observations??[]).filter(a=>a.tool.id==="maester"&&["entra.tenant_id","entra.tenant_name","report.generated_at","report.engine_version","maester.duration","maester.tests.actual_total","maester.runner.host","maester.runner.os","maester.powershell.version"].includes(a.property)).map(a=>({label:a.label.startsWith("Maester")?a.label:`Maester ${a.label}`,value:a.state==="observed"?Em(wm(a)):Ro}))],restricted:aq(e)}}function io({title:e,items:t}){const n=t.length>0&&t.every(c=>c.value===Ro),[a,i]=H.useState(!1),r=H.useId();return d.jsxs("section",{className:"client-env-group",children:[d.jsxs("h3",{className:"client-env-group-title",children:[d.jsx("span",{children:e}),n&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"client-env-group-note",children:"not reported by source"}),d.jsx("button",{className:"client-env-group-toggle",type:"button","aria-expanded":a,"aria-controls":r,"aria-label":`${a?"Hide":"Show"} ${e} fields`,title:`${a?"Hide":"Show"} fields`,onClick:()=>i(c=>!c),children:d.jsx(vn,{direction:a?"down":"right"})})]})]}),(!n||a)&&d.jsx("dl",{className:"client-env-facts",id:r,children:t.map(c=>d.jsxs("div",{children:[d.jsx("dt",{children:c.label}),d.jsx("dd",{children:c.value})]},c.label))})]})}const sy=new WeakMap,ry=new WeakMap;function rq(e,t){const n=ry.get(e);if(n&&n.profile===t)return n.state;const a=oq(e,t);return ry.set(e,{profile:t,state:a}),a}function qa(e,t,n){return(n==="deviation"||["not-configured","conflicts","duplicates"].includes(n)||t.presentation.statusFilters.some(i=>i.value===n))&&t.matchesStatus(e,n)}function oq(e,t){return bo(e,/^status$/i)?.trim().toLowerCase()==="review required"?bo(e,/^evaluation readiness$/i)?.trim()?"reevaluation-required":"review-required":qa(e,t,"not-configured")?"not-configured":qa(e,t,"passed")?"passed":qa(e,t,"deviation")?"deviation":qa(e,t,"conflicts")?"conflicts":qa(e,t,"duplicates")?"duplicates":qa(e,t,"not-applicable")||qa(e,t,"not-relevant")?"not-applicable":qa(e,t,"not-run")||qa(e,t,"not-selected")||qa(e,t,"canceled")||qa(e,t,"skipped")||qa(e,t,"manual")?"not-run":qa(e,t,"error")||qa(e,t,"failed-to-run")?"error":"unknown"}function oy(e,t=[]){let n=0,a=0,i=0,r=0,c=0,l=0,f=0,T=0,p=0;e.forEach((g,S)=>{g==="passed"?n+=1:g==="deviation"?a+=1:g==="not-configured"?i+=1:g==="conflicts"?r+=1:g==="duplicates"?c+=1:g==="review-required"?l+=1:g==="reevaluation-required"?f+=1:(g==="unknown"||g==="not-run"||g==="error")&&(T+=1),g!=="not-applicable"&&(p+=1);const x=t[S],y=w=>w!==void 0&&!["","no","none","false","0"].includes(w.trim().toLowerCase());x&&g!=="conflicts"&&y(bo(x,/^conflict$/i))&&(r+=1),x&&g!=="duplicates"&&y(bo(x,/^duplicates$/i))&&(c+=1)});const m=n+a;return{passed:n,deviations:a,notConfigured:i,conflicts:r,duplicates:c,reviewRequired:l,reevaluationRequired:f,missingEvidence:T,assessed:m,eligible:p,unassessed:Math.max(0,p-m),score:m>0?n/m*100:void 0,coverage:p>0?Math.round(m/p*100):void 0}}function cq(e){return Hu(e)}function bo(e,t){return e.fields.find(n=>t.test(n.label.trim()))?.value}function lq(e){let t=sy.get(e);return t===void 0&&(t=bo(e,/^(?:severity|risk|priority)$/i)?.trim().toLocaleLowerCase("en-US")??"unknown",sy.set(e,t)),t}function uq(e){const t=bo(e,/^(?:source|quelle):\s*scan$/i);return t?F6(t):"Assessment"}function or(e,t){const n=e?.observations.find(r=>r.property===t&&r.state==="observed"),a=n?.normalizedValue??n?.originalValue,i=typeof a=="number"?a:Number(a);return Number.isFinite(i)?i:void 0}function Zu(e,t,n){const a=e?.sections.filter(i=>i.sectionKey===t).flatMap(i=>i.tables.flatMap(r=>{const c=r.headers.findIndex(l=>n.test(l.trim()));return c<0?[]:r.rows.flatMap(l=>{const f=Number(l[c]);return Number.isFinite(f)?[f]:[]})}))??[];return a.length?a.reduce((i,r)=>i+r,0):void 0}function gp(e){const t=or(e,"domain.count");return t!==void 0?t:new Set(e?.observations.filter(a=>a.property==="domain.fqdn"&&a.state==="observed").map(a=>String(a.normalizedValue??a.originalValue).trim().toLocaleLowerCase("en-US")).filter(Boolean)).size||void 0}function dq(e){const[t,n]=H.useState({});return H.useEffect(()=>{let a=!0;return n({}),e?(j6.listProjectGpoBackupStatus(e).then(i=>{if(!a)return;const r=i.records.filter(l=>l.processingStatus),c=r.reduce((l,f)=>l+f.gpoCount,0);n(r.length?{gpoCount:c,snapshots:r.length}:{})}).catch(()=>{a&&n({})}),()=>{a=!1}):()=>{a=!1}},[e]),t}function Tq(e){const t=new Set,n=/\{?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}?/gi;return e.forEach(a=>[a.sourceFile,...a.fields.map(i=>i.value)].filter(Boolean).forEach(i=>{String(i).match(n)?.forEach(r=>t.add(r.toLocaleLowerCase("en-US")))})),t.size||void 0}function Zr({name:e}){const t=e==="user"?d.jsxs(d.Fragment,{children:[d.jsx("circle",{cx:"12",cy:"8",r:"4"}),d.jsx("path",{d:"M4 21c0-4 3-7 8-7s8 3 8 7"})]}):e==="computer"?d.jsxs(d.Fragment,{children:[d.jsx("rect",{x:"3",y:"4",width:"18",height:"13"}),d.jsx("path",{d:"M8 21h8M12 17v4"})]}):e==="server"?d.jsxs(d.Fragment,{children:[d.jsx("rect",{x:"4",y:"3",width:"16",height:"7"}),d.jsx("rect",{x:"4",y:"14",width:"16",height:"7"}),d.jsx("path",{d:"M8 6h.01M8 17h.01M12 6h5M12 17h5"})]}):e==="policy"||e==="clipboard"?d.jsxs(d.Fragment,{children:[d.jsx("path",{d:"M7 3h8l4 4v14H7z"}),d.jsx("path",{d:"M15 3v5h5M10 12h6M10 16h6"})]}):e==="cloud"?d.jsx("path",{d:"M6 19h12a4 4 0 0 0 0-8 6 6 0 0 0-11.5-1.5A4.8 4.8 0 0 0 6 19z"}):e==="shield"||e==="scan"?d.jsxs(d.Fragment,{children:[d.jsx("path",{d:"M12 2l8 3v6c0 5-3.4 8.5-8 11-4.6-2.5-8-6-8-11V5z"}),d.jsx("path",{d:"M9 12l2 2 4-5"})]}):e==="lock"?d.jsxs(d.Fragment,{children:[d.jsx("rect",{x:"5",y:"10",width:"14",height:"11"}),d.jsx("path",{d:"M8 10V7a4 4 0 0 1 8 0v3M12 14v3"})]}):e==="code"?d.jsxs(d.Fragment,{children:[d.jsx("rect",{x:"3",y:"4",width:"18",height:"16"}),d.jsx("path",{d:"M9 9l-3 3 3 3M15 9l3 3-3 3M13 8l-2 8"})]}):e==="chart"?d.jsxs(d.Fragment,{children:[d.jsx("path",{d:"M3 20h18M5 17l4-5 3 3 6-9"}),d.jsx("path",{d:"M18 6h3v3"})]}):e==="folder"?d.jsx("path",{d:"M3 6h7l2 2h9v11H3z"}):d.jsxs(d.Fragment,{children:[d.jsx("path",{d:"M4 21V7h6v14M14 21V3h6v18M2 21h20"}),d.jsx("path",{d:"M7 10h.01M7 14h.01M17 7h.01M17 11h.01"})]});return d.jsx("svg",{className:"client-glyph",viewBox:"0 0 24 24","aria-hidden":"true",children:t})}function fq({nodeCount:e}){const t=H.useRef(null),[n,a]=H.useState({width:0,height:0,paths:[]}),i=H.useCallback(()=>{const r=t.current?.parentElement,c=r?.querySelector(".client-overall-ring"),l=[...r?.querySelectorAll(".client-domains .client-domain-score")??[]];if(!r||!c||!l.length){a(g=>g.paths.length?{width:0,height:0,paths:[]}:g);return}const f=r.getBoundingClientRect(),T=c.getBoundingClientRect(),p={x:T.right-f.left,y:T.top+T.height/2-f.top},m=l.map((g,S)=>{const x=g.getBoundingClientRect(),y={x:x.left-f.left,y:x.top+x.height/2-f.top},w=p.y+(S-(l.length-1)/2)*6,C=Math.max(24,(y.x-p.x)*.45);return`M${p.x.toFixed(1)} ${w.toFixed(1)} C${(p.x+C).toFixed(1)} ${w.toFixed(1)}, ${(y.x-C).toFixed(1)} ${y.y.toFixed(1)}, ${y.x.toFixed(1)} ${y.y.toFixed(1)}`});a(g=>g.width===f.width&&g.height===f.height&&g.paths.length===m.length&&g.paths.every((S,x)=>S===m[x])?g:{width:f.width,height:f.height,paths:m})},[]);return H.useLayoutEffect(()=>{i();const r=t.current?.parentElement;window.addEventListener("resize",i);const c=r&&typeof ResizeObserver<"u"?new ResizeObserver(()=>i()):void 0;return r&&c&&(c.observe(r),r.querySelectorAll(".client-domains, .client-overall").forEach(l=>c.observe(l))),()=>{window.removeEventListener("resize",i),c?.disconnect()}},[i,e]),d.jsx("svg",{ref:t,className:"client-posture-connectors",viewBox:`0 0 ${Math.max(1,n.width)} ${Math.max(1,n.height)}`,"aria-hidden":"true",children:n.paths.map((r,c)=>d.jsx("path",{d:r},c))})}function hq({score:e}){const t=e??0,n=e===void 0?"unknown":e<50?"critical":e<75?"medium":"passed";return d.jsxs("div",{className:`client-overall-ring tone-${n}`,role:"img","aria-label":`Overall Score: ${e===void 0?"No data":Math.round(e)}`,children:[d.jsxs("svg",{viewBox:"0 0 120 120","aria-hidden":"true",children:[d.jsx("circle",{className:"client-overall-ring-track",cx:"60",cy:"60",r:"48",pathLength:"100"}),e!==void 0&&d.jsx("circle",{className:"client-overall-ring-value",cx:"60",cy:"60",r:"48",pathLength:"100",strokeDasharray:`${t} ${100-t}`})]}),d.jsxs("span",{children:[d.jsxs("span",{className:"client-overall-ring-number",children:[d.jsx("strong",{children:e===void 0?"—":Math.round(e)}),e!==void 0&&d.jsx("small",{children:"/100"})]}),d.jsx("em",{children:"ASSESSOR"})]})]})}function so({value:e,label:t,glyph:n}){return d.jsxs("article",{className:"client-overview-fact",children:[d.jsx(Zr,{name:n}),d.jsxs("span",{children:[d.jsx("strong",{children:e??"—"}),d.jsx("small",{children:t})]})]})}function pq({domain:e,onClick:t}){const n=e.score===void 0?"unknown":e.score<50?"critical":e.score<75?"medium":"passed",a=e.assessed===0&&e.reviewRecords.length>0,i=[`${e.passed.toLocaleString("en-US")} passed`,e.notConfigured>0?`${e.notConfigured.toLocaleString("en-US")} not configured`:"",e.duplicates>0?`${e.duplicates.toLocaleString("en-US")} duplicates`:"",e.conflicts>0?`${e.conflicts.toLocaleString("en-US")} conflicts`:"",e.reviewRecords.length>0?`${e.reviewRecords.length.toLocaleString("en-US")} require review`:""].filter(Boolean).join(" · "),r=d.jsxs(d.Fragment,{children:[d.jsx("span",{className:`client-domain-score tone-${n}`,title:e.score===void 0?"Not assessed":`Pass rate ${Math.round(e.score)}%`,children:e.score===void 0?d.jsx(Zr,{name:e.glyph}):d.jsx("em",{children:Math.round(e.score)})}),d.jsxs("span",{className:"client-domain-copy",children:[d.jsx("strong",{children:e.label}),d.jsx("small",{children:i})]}),d.jsxs("b",{children:[(a?e.reviewRecords.length:e.deviations).toLocaleString("en-US"),d.jsx("small",{children:a?"Review required":"Deviations"})]})]});return d.jsx("li",{children:t?d.jsx("button",{type:"button",onClick:t,children:r}):d.jsx("div",{children:r})})}function ru(e){return e.filter(Boolean).join(" · ")}function mq({source:e,native:t,onClick:n}){const a=e.tool.label.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,""),i=a.includes("pingcastle")?"pingcastle":a.includes("purple")?"purple":a.includes("maester")?"maester":a.includes("cis")?"cis":a.includes("gpo")?"gpo":"other",r=e.score,c=r===void 0?"unknown":r<50?"critical":r<75?"medium":"passed",l={value:r===void 0?"—":Math.round(r),unit:"/100 ASSESSOR"},f=e.rating?.scans.filter(x=>x.nativeValue!==void 0)??[],T=f.length===1?f[0].nativeValue:void 0,p=e.reevaluationRequired&&!e.assessed?"Re-evaluation required":e.reviewRequired&&!e.assessed?"Review required":e.rating?.methods.length===1?{native:"Native score","inverted-native":"100 − native risk","pass-rate":"Pass rate",unavailable:"Not scoreable"}[e.rating.methods[0]]:e.rating?"Combined scan methods":"Pass rate",m=t.domainCount===void 0?void 0:`${t.domainCount} ${t.domainCount===1?"domain":"domains"}`,g=i==="pingcastle"?{name:"PingCastle",glyph:"scan",...l,meta:ru([T===void 0?void 0:`PingCastle risk ${T}/100`,m])||"Domain assessment"}:i==="purple"?{name:"Purple Knight",glyph:"shield",...l,meta:ru([T===void 0?void 0:`Posture ${T}/100`,`${e.deviations} deviations`])||"Identity indicators"}:i==="maester"?{name:"Maester",glyph:"cloud",...l,meta:`${e.passed.toLocaleString("en-US")} / ${e.assessed.toLocaleString("en-US")} tests passed`}:i==="cis"?{name:"CIS-CAT",glyph:"clipboard",...l,meta:ru([T===void 0?void 0:`Benchmark score ${T}`,`${e.assessed.toLocaleString("en-US")} controls`])}:i==="gpo"?{name:"GPO Analysis",glyph:"domain",...l,meta:ru([e.reevaluationRequired?`${e.reevaluationRequired.toLocaleString("en-US")} saved comparisons`:e.reviewRequired&&!e.assessed?`${e.reviewRequired.toLocaleString("en-US")} comparisons require review`:`${e.deviations.toLocaleString("en-US")} baseline deviations`,`${t.gpoCount??"—"} GPOs`])}:{name:e.tool.label,glyph:"policy",...l,meta:`${e.assessed.toLocaleString("en-US")} controls assessed`},S=d.jsxs(d.Fragment,{children:[d.jsx(Zr,{name:g.glyph}),d.jsx("span",{children:g.name}),d.jsxs("strong",{children:[g.value,d.jsx("small",{children:g.unit})]}),d.jsxs("em",{children:[p," · ",g.meta,e.rating?.issues.length?" · Provisional":""]})]});return n?d.jsx("button",{className:`client-source-${i} tone-${c}`,type:"button",onClick:n,children:S}):d.jsx("article",{className:`client-source-${i} tone-${c}`,children:S})}const ou=[],cy=new WeakMap;function gq(e,t,n,a,i){return H.useMemo(()=>{const r=e&&t?cy.get(e):void 0;if(r&&r.dataset===t&&r.profile===n&&r.reviews===a&&r.sourceFilter===i)return r.value;const c=e?l0(e,t,n,a):[],l=vq(e,n,a,c,i,t?.securityScoring);return e&&t&&cy.set(e,{dataset:t,profile:n,reviews:a,sourceFilter:i,value:l}),l},[n,e,t,a,i])}function vq(e,t,n,a,i,r){{const c=a.find(I=>/^(?:quelle|source):\s*scan$/i.test(I.label.trim())||I.source==="provenance"),l=c&&i?.values?.length?{[c.id]:i}:void 0,f=e?.analysis.records??ou,T=l?f.filter(I=>p1(I,[c],l,n)):f,p=l?g6({facets:a,records:T,filters:{},reviews:n,statusFilter:"all",matchesStatus:(I,L)=>t.matchesStatus(I,L)}):a,m=p.find(I=>I.source==="profile-status"),g=p.find(I=>I.severityScale),S=new Map,x=new Map,y=[];let w=0,C=0;T.forEach(I=>{const L=rq(I,t),le=lq(I);S.set(I,L),x.set(I,le),L==="deviation"&&(le==="critical"||le==="high")&&(y.push(I),le==="critical"?w+=1:C+=1)});const k=fP(T),E=I=>oy(I.map(L=>S.get(L)??"unknown"),I),O=eq(c?.values??[]),N=z_(O.map(I=>{const L=c?T.filter(le=>p1(le,[c],{[c.id]:{values:I.sourceValues}},n)):ou;return{tool:I,records:L,...E(L)}}).filter(I=>I.records.length>0),r,!!(e?.isProjectSheet&&!l)),B=gd.map(I=>{const L=k.get(I.id)??ou,le=E(L);return{id:I.id,label:I.label,glyph:I.glyph,records:L.filter(ue=>S.get(ue)==="deviation"),reviewRecords:L.filter(ue=>["review-required","reevaluation-required"].includes(S.get(ue)??"")),...le}}),A=k.get("unclassified")??ou,z=E(A),P=A.length?{id:"unclassified",label:"Unclassified",glyph:"scan",records:A.filter(I=>S.get(I)==="deviation"),reviewRecords:A.filter(I=>["review-required","reevaluation-required"].includes(S.get(I)??"")),...z}:void 0,K=oy(T.map(I=>S.get(I)??"unknown"),T);return{total:T.length,statusFacet:m,severityFacet:g,sourceFacet:c,tools:O,reports:c?.values.length??0,statusCount:I=>m?.values.find(L=>L.value===I)?.count??0,highSeverity:C,criticalSeverity:w,sourceScores:N,domains:B,unclassifiedDomain:P,totalResult:K,overallScore:cq(N),lowestDomain:B.flatMap(I=>I.score===void 0?[]:[I.score]).sort((I,L)=>I-L)[0],priorityRecords:y.sort((I,L)=>+(x.get(L)==="critical")-+(x.get(I)==="critical")).slice(0,3),severityOf:I=>x.get(I)??"unknown"}}}function xq({onOpenWork:e}){const t=ca(),{dataset:n,activeSheet:a,activeProfile:i,reviews:r,setStatusFilter:c,setFacetFilter:l,setPathFindingIds:f,resetFilters:T,setView:p}=t,m=tq(t.targetProjectId,t.activeScanRunIds),g=dq(t.targetProjectId),S=t.facetFilters["provenance:source-scan"],x=gq(a,n,i,r,S),y=H.useMemo(()=>sq(m.snapshot),[m.snapshot]),[w,C]=H.useState(!1),[k,E]=H.useState(!1),O=H.useMemo(()=>n?.securityScoring?.baseline?jb(n.securityScoring.baseline,n.securityScoring.scans):void 0,[n?.securityScoring]),N=H.useMemo(()=>Tq(x.sourceScores.find(_e=>/gpo/i.test(_e.tool.label))?.records??[]),[x]);if(!n||!a)return t.targetProjectId?d.jsxs("div",{className:"dashboard-page panel-is-loading",children:[d.jsx("h2",{children:"Client Info"}),d.jsx(Ao,{message:t.status})]}):d.jsx(N6,{});const{total:B,statusFacet:A,severityFacet:z,sourceFacet:P,tools:K,reports:I,statusCount:L,sourceScores:le,domains:ue,unclassifiedDomain:X,totalResult:F,overallScore:re,lowestDomain:me,priorityRecords:te,highSeverity:Ce,criticalSeverity:ee,severityOf:M}=x,Y=F.deviations,Z=F.coverage,J=or(m.snapshot,"risk.domain")??or(m.snapshot,"risk.global"),he=Zu(m.snapshot,"sectionUserInformation",/^nb user accounts$/i),ge=Zu(m.snapshot,"sectionComputerInformation",/^nb computer accounts$/i),de=or(m.snapshot,"domain.controller_count"),fe=le.find(_e=>/maester/i.test(_e.tool.label)),ye=iq(m.snapshot)??or(m.snapshot,"entra.configuration_detected")??(fe?.records.length?1:void 0),qe=g.gpoCount??N,ae={pingCastleRisk:J,purpleKnightPosture:or(m.snapshot,"purple_knight.ad.security_posture_score"),purpleKnightIoes:or(m.snapshot,"purple_knight.ad.ioes_found"),benchmarkScore:or(m.snapshot,"benchmark.score"),assessedHost:Cm(m.snapshot,"host.name")?wn(m.snapshot,"host.name"):void 0,domainCount:gp(m.snapshot),gpoCount:qe},Ne=["pingcastle","purpleknight","maester","cis-cat","gpos"],Ve=[...le].sort((_e,Xe)=>{const pt=Pt=>{const Kt=Pt.toLocaleLowerCase("en-US").replace(/[^a-z0-9]+/g,""),Dt=Ne.findIndex(dt=>Kt.includes(dt.replace(/[^a-z0-9]+/g,"")));return Dt<0?Ne.length:Dt};return pt(_e.tool.label)-pt(Xe.tool.label)||_e.tool.label.localeCompare(Xe.tool.label)}),tt=X?.deviations?[...ue,X]:ue,We=_e=>{T(),S&&P&&l(P.id,S),t.setActionOnly(!1),c("deviation"),_e(),p("columns"),e()},Le=S?.values?.length?K.find(_e=>_e.sourceValues.length===S.values.length&&_e.sourceValues.every(Xe=>S.values.includes(Xe)))?.id??"selection":"all";return d.jsxs("div",{className:"dashboard-page client-command-center",children:[d.jsxs("header",{className:"client-overview-header",children:[d.jsxs("div",{className:"client-overview-identity",children:[d.jsx("span",{children:"Client:"}),d.jsx("strong",{children:n.fileName})]}),d.jsxs("div",{className:"client-overview-assessment",children:[d.jsx("span",{children:"Assessment:"}),d.jsx(M6,{})]}),d.jsxs("label",{className:"client-overview-source",children:[d.jsx("span",{children:"Source:"}),d.jsxs("select",{value:Le,onChange:_e=>{const Xe=K.find(Pt=>Pt.id===_e.currentTarget.value);if(!P)return;const pt=p6(n,a);pt&&t.setActiveSheet(pt.id),l(P.id,Xe?{values:Xe.sourceValues}:null)},children:[d.jsx("option",{value:"all",children:"Scan · All"}),Le==="selection"&&d.jsx("option",{value:"selection",children:"Scan · Selection"}),K.map(_e=>d.jsx("option",{value:_e.id,children:_e.label},_e.id))]})]})]}),d.jsxs("section",{className:"client-overview-facts","aria-label":"Environment facts",children:[d.jsx(so,{value:gp(m.snapshot),label:"AD Domains",glyph:"domain"}),d.jsx(so,{value:ye,label:"Entra Tenant",glyph:"cloud"}),d.jsx(so,{value:he,label:"User Accounts",glyph:"user"}),d.jsx(so,{value:ge,label:"Computer Objects",glyph:"computer"}),d.jsx(so,{value:de,label:"Domain Controllers",glyph:"server"}),d.jsx(so,{value:qe,label:"GPOs",glyph:"policy"})]}),d.jsxs("div",{className:"client-overview-main",children:[d.jsxs("section",{className:"client-posture","aria-label":"Security posture",children:[d.jsx(fq,{nodeCount:tt.length}),d.jsxs("section",{className:"client-overall","aria-labelledby":"client-overall-heading",children:[d.jsx("h2",{id:"client-overall-heading",children:"Overall Score"}),d.jsx(hq,{score:re}),d.jsx("strong",{className:`client-overall-status tone-${re===void 0?"unknown":re<50?"critical":re<75?"medium":"passed"}`,children:re===void 0?F.reevaluationRequired?"Re-evaluation required":F.reviewRequired?"Review required":"Not assessed":n.securityScoring?.historyUnavailable?"History unavailable":O?.scopeChanged?"Scope changed":le.some(_e=>_e.rating?.issues.length)?"Provisional":re<50?"Action Required":re<75?"Needs Attention":"Good"}),d.jsxs("button",{className:"client-overall-critical",type:"button",disabled:ee===0||!z,onClick:()=>z&&We(()=>l(z.id,{values:["critical"]})),children:[d.jsx("b",{children:ee.toLocaleString("en-US")}),d.jsx("span",{children:"Critical Findings"})]}),d.jsxs("div",{className:"client-overall-coverage",children:[d.jsxs("span",{children:[d.jsx("strong",{children:"Assessment Coverage"}),d.jsx("b",{children:Z===void 0?"—":`${Z}%`})]}),d.jsx("i",{children:d.jsx("u",{style:Q_(Z??0)})}),d.jsxs("small",{children:[F.assessed.toLocaleString("en-US")," / ",F.eligible.toLocaleString("en-US")," eligible controls assessed"]})]}),d.jsxs("dl",{className:"client-overall-secondary",children:[d.jsxs("div",{children:[d.jsx("dt",{children:"Unassessed"}),d.jsx("dd",{children:F.unassessed.toLocaleString("en-US")})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Lowest domain pass rate"}),d.jsx("dd",{children:me===void 0?"—":`${Math.round(me)}%`})]})]})]}),d.jsxs("section",{className:"client-domains","aria-labelledby":"client-domains-heading",children:[d.jsxs("header",{children:[d.jsx("h2",{id:"client-domains-heading",children:"Security Domains"}),d.jsxs("span",{children:["Pass rates · ",Y.toLocaleString("en-US")," total deviations"]})]}),d.jsx("ul",{children:tt.map(_e=>d.jsx(pq,{domain:_e,onClick:_e.records.length?()=>We(()=>{l(r6,{values:[_e.id]})}):_e.assessed===0&&_e.reviewRecords.length?()=>We(()=>{c("all"),f(_e.reviewRecords.map(Xe=>Xe.id))}):void 0},_e.id))})]})]}),d.jsxs("aside",{className:"client-priority","aria-labelledby":"client-priority-heading",children:[d.jsxs("section",{className:"client-priority-findings",children:[d.jsxs("header",{children:[d.jsx("h2",{id:"client-priority-heading",children:"Priority Findings"}),d.jsxs("div",{children:[d.jsx("strong",{children:Y.toLocaleString("en-US")}),d.jsx("span",{children:"Deviations"})]}),d.jsxs("div",{className:"tone-critical",children:[d.jsx("strong",{children:ee.toLocaleString("en-US")}),d.jsx("span",{children:"Critical"})]}),d.jsxs("div",{className:"tone-medium",children:[d.jsx("strong",{children:Ce.toLocaleString("en-US")}),d.jsx("span",{children:"High"})]})]}),d.jsx("div",{className:"client-priority-context","aria-label":"Additional result states",children:[["passed","Passed",F.passed],["not-configured","Not configured",F.notConfigured],["duplicates","Duplicates",F.duplicates],["conflicts","Conflicts",F.conflicts]].map(([_e,Xe,pt])=>d.jsxs("button",{type:"button",disabled:pt===0,onClick:()=>We(()=>c(_e)),children:[d.jsx("strong",{children:pt.toLocaleString("en-US")}),d.jsx("span",{children:Xe})]},_e))}),d.jsx("ol",{children:te.length?te.map(_e=>d.jsx("li",{className:`tone-${M(_e)}`,children:d.jsxs("button",{type:"button",onClick:()=>We(()=>{f([_e.id])}),children:[d.jsx("small",{children:M(_e)}),d.jsx("strong",{children:_e.title}),d.jsx("span",{children:uq(_e)})]})},_e.id)):d.jsx("li",{className:"client-priority-empty",children:"No critical or high deviations"})}),d.jsx("button",{className:"btn primary client-overview-action",type:"button",onClick:()=>We(()=>c("deviation")),children:"View findings →"})]}),d.jsxs("section",{className:"client-assessment-gaps",children:[d.jsx("h2",{children:"Assessment Gaps"}),d.jsx("strong",{children:F.unassessed.toLocaleString("en-US")}),d.jsx("span",{children:"Unassessed controls"}),F.reevaluationRequired>0&&d.jsxs("div",{className:"client-gpo-readiness",role:"status",children:[d.jsx("h3",{children:"GPO re-evaluation required"}),d.jsxs("p",{children:[F.reevaluationRequired.toLocaleString("en-US")," saved comparisons await re-evaluation. Open the GPO import in Data Hub and select Re-evaluate to calculate current results."]}),d.jsx("button",{className:"btn",type:"button",onClick:()=>We(()=>c("all")),children:"View saved results"})]}),d.jsxs("dl",{children:[d.jsxs("div",{children:[d.jsxs("dt",{children:[d.jsx(Zr,{name:"clipboard"}),"Manual review"]}),d.jsx("dd",{children:(F.reviewRequired+L("manual")).toLocaleString("en-US")})]}),F.reevaluationRequired>0&&d.jsxs("div",{children:[d.jsxs("dt",{children:[d.jsx(Zr,{name:"clipboard"}),"GPO re-evaluation"]}),d.jsx("dd",{children:F.reevaluationRequired.toLocaleString("en-US")})]}),d.jsxs("div",{children:[d.jsxs("dt",{children:[d.jsx(Zr,{name:"folder"}),"Missing evidence"]}),d.jsx("dd",{children:Math.max(0,F.missingEvidence-L("manual")).toLocaleString("en-US")})]}),O&&d.jsxs("div",{children:[d.jsxs("dt",{children:[d.jsx(Zr,{name:"clipboard"}),"Awaiting revalidation"]}),d.jsx("dd",{children:n.securityScoring?.historyUnavailable?"—":O.awaitingRevalidation.reduce((_e,Xe)=>_e+Xe.occurrenceIds.length,0).toLocaleString("en-US")})]})]}),d.jsx("button",{className:"btn client-overview-action",type:"button",onClick:()=>We(()=>c(L("not-run")?"not-run":"all")),children:"Review gaps →"})]})]})]}),d.jsxs("section",{className:"client-source-overview","aria-labelledby":"client-source-overview-heading",children:[d.jsxs("header",{children:[d.jsx("h2",{id:"client-source-overview-heading",children:"Source Overview"}),d.jsx("button",{className:"btn",type:"button",onClick:()=>C(!0),children:"Scoring methodology ↗"})]}),d.jsx("div",{children:Ve.length?Ve.map(_e=>d.jsx(mq,{source:_e,native:ae,onClick:P&&_e.tool.sourceValues.length?()=>We(()=>{l(P.id,{values:_e.tool.sourceValues}),/gpo/i.test(_e.tool.label)&&c("all")}):void 0},_e.tool.id)):d.jsx("p",{className:"dashboard-empty",children:"No source results available."})})]}),w&&d.jsx(V_,{sources:le,context:n.securityScoring,onClose:()=>C(!1)}),d.jsxs("details",{className:"client-environment-detail","aria-labelledby":"client-environment-detail-heading",children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),d.jsx("h2",{id:"client-environment-detail-heading",children:"Environment Detail"}),d.jsxs("span",{className:"client-env-meta",children:[d.jsx("span",{children:m.failed?"Scanner context could not be loaded":m.snapshot?`${m.snapshot.observations.length.toLocaleString("en-US")} observations · ${m.snapshot.sections.length.toLocaleString("en-US")} sections`:"Loading scanner context…"}),y.restricted.length>0&&d.jsxs("span",{children:[y.restricted.length.toLocaleString("en-US")," restricted sections"]})]})]}),y.restricted.length>0&&d.jsxs("button",{className:"btn client-env-restricted-toggle",type:"button","aria-expanded":k,"aria-controls":"client-environment-restricted",onClick:()=>E(_e=>!_e),children:[y.restricted.length.toLocaleString("en-US")," restricted sections",d.jsx(vn,{direction:k?"down":"right"})]}),k&&y.restricted.length>0&&d.jsxs("p",{className:"client-environment-restricted",id:"client-environment-restricted",children:["Restricted by the source tool, not empty: ",y.restricted.join(", ")]}),d.jsxs("div",{className:"client-env-groups",children:[d.jsx(io,{title:"Directory",items:y.directory}),d.jsx(io,{title:"Resilience",items:y.resilience}),d.jsx(io,{title:"Inventory",items:y.inventory}),d.jsx(io,{title:"Password policy",items:y.passwordPolicy}),d.jsx(io,{title:"Certificates & PKI",items:y.certificates}),d.jsx(io,{title:"Source metrics",items:y.toolContext})]}),d.jsx(q_,{groups:y.operatingSystems})]}),d.jsx(Y_,{dataset:n,reviews:r})]})}const yq=new qi,Sq=["import","mapping","canonical","result","governance","core","other"],vh={import:{kicker:"Layer 1",label:"Import & ingestion",description:"Source files, ingestion jobs and immutable import evidence."},mapping:{kicker:"Layer 2",label:"Mapping & normalization",description:"Recognition, mapping and normalization contracts between source and domain data."},canonical:{kicker:"Layer 3",label:"Canonical model",description:"Stable assessments, findings and environment context independent of source tools."},result:{kicker:"Layer 4",label:"Result layer",description:"Read models and result projections used by Work, filters and exports."},governance:{kicker:"Supporting layer",label:"Governance & quality",description:"Reviews, validation, processing compatibility and quality controls."},core:{kicker:"Foundation",label:"Core management",description:"Projects, scan runs and shared lifecycle state."},other:{kicker:"Supporting layer",label:"Other",description:"Additional relational structures outside the primary processing layers."}};function bq(e){return Sq.map(t=>({layer:t,tables:e.filter(n=>n.layer===t)})).filter(t=>t.tables.length>0)}function wq(e){const t=e.filter(n=>n.approximateRowCount!==null);return{tables:e.length,columns:e.reduce((n,a)=>n+a.columns.length,0),relationships:e.reduce((n,a)=>n+a.foreignKeys.length,0),approximateRows:t.reduce((n,a)=>n+(a.approximateRowCount??0),0),countedTables:t.length}}function Cq({table:e,isOpen:t,onToggle:n}){const a=H.useId();return d.jsxs("article",{className:`db-structure-card${t?" is-expanded":""}`,children:[d.jsxs("button",{className:"db-structure-card-header",type:"button",onClick:n,"aria-expanded":t,"aria-controls":a,children:[d.jsxs("span",{className:"db-structure-card-copy",children:[d.jsx("span",{className:"db-structure-table-kind",children:"Table"}),d.jsx("strong",{children:e.name}),d.jsxs("span",{className:"db-structure-card-facts",children:[d.jsxs("span",{children:[e.columns.length.toLocaleString("en-US")," columns"]}),d.jsxs("span",{children:[e.foreignKeys.length.toLocaleString("en-US")," relations"]}),e.approximateRowCount!==null&&d.jsxs("span",{children:["~",e.approximateRowCount.toLocaleString("en-US")," rows"]})]})]}),d.jsx("span",{className:"db-structure-card-toggle","aria-hidden":"true",children:d.jsx(vn,{direction:t?"down":"right"})})]}),t&&d.jsxs("div",{className:"db-structure-card-body",id:a,children:[d.jsxs("section",{className:"db-structure-card-section","aria-label":`Columns in ${e.name}`,children:[d.jsxs("div",{className:"db-structure-detail-heading",children:[d.jsx("h4",{children:"Columns"}),d.jsx("span",{children:e.columns.length.toLocaleString("en-US")})]}),d.jsxs("div",{className:"db-structure-column-head","aria-hidden":"true",children:[d.jsx("span",{children:"Column"}),d.jsx("span",{children:"Type"}),d.jsx("span",{children:"Constraint"})]}),d.jsx("ul",{className:"db-structure-columns",children:e.columns.map(i=>d.jsxs("li",{children:[d.jsx("strong",{children:i.name}),d.jsx("span",{children:i.dataType}),d.jsx("small",{children:i.nullable?"Nullable":"Required"})]},i.name))})]}),d.jsxs("section",{className:"db-structure-card-section db-structure-relations","aria-label":`Relationships from ${e.name}`,children:[d.jsxs("div",{className:"db-structure-detail-heading",children:[d.jsx("h4",{children:"Relationships"}),d.jsx("span",{children:e.foreignKeys.length.toLocaleString("en-US")})]}),e.foreignKeys.length>0?d.jsx("ul",{className:"db-structure-fks",children:e.foreignKeys.map(i=>d.jsxs("li",{children:[d.jsx("strong",{children:i.column}),d.jsx("span",{"aria-hidden":"true",children:"→"}),d.jsxs("span",{children:[i.referencedTable,".",i.referencedColumn]})]},`${i.column}-${i.referencedTable}-${i.referencedColumn}`))}):d.jsx("p",{children:"No outgoing relationships."})]})]})]})}function Eq({backendStatus:e}){const[t,n]=H.useState(null),[a,i]=H.useState(!0),[r,c]=H.useState(null),[l,f]=H.useState({}),T=H.useCallback(async()=>{if(e!=="connected"){n(null),i(!1);return}i(!0),c(null);try{n(await yq.getDatabaseStructure())}catch(x){c(x instanceof Error?x.message:"Database structure could not be loaded.")}finally{i(!1)}},[e]);if(H.useEffect(()=>{T()},[T]),e!=="connected")return d.jsx("div",{className:"datahub-page",children:d.jsx(ym,{backendStatus:e,message:"The database structure will be available again once the local API is connected."})});const p=t?bq(t.tables):[],m=t?wq(t.tables):void 0,g=!!t?.tables.length&&t.tables.every(x=>l[x.name]),S=x=>{t&&f(Object.fromEntries(t.tables.map(y=>[y.name,x])))};return d.jsxs("div",{className:"datahub-page db-structure-page",children:[r&&d.jsxs("div",{className:"datahub-alert",role:"alert",children:[d.jsx("span",{children:r}),d.jsx("button",{className:"btn",type:"button",onClick:()=>{T()},children:"Reload"})]}),a&&!t?d.jsx(Ao,{message:"Loading database structure …"}):t&&d.jsxs(d.Fragment,{children:[d.jsxs("header",{className:"db-structure-intro",children:[d.jsxs("div",{className:"db-structure-intro-copy",children:[d.jsx("span",{className:"db-structure-eyebrow",children:"Database dictionary"}),d.jsx("h2",{children:"Relational schema"}),d.jsx("p",{children:"Explore how imported evidence moves through normalization into canonical and result data. Open any table to inspect its columns, constraints and relationships."})]}),d.jsxs("div",{className:"db-structure-intro-actions",children:[d.jsxs("span",{className:`db-structure-persistence is-${t.persistence}`,children:[d.jsx("i",{"aria-hidden":"true"}),t.persistence==="postgresql"?"PostgreSQL live schema":"Memory mode"]}),d.jsx("button",{className:"btn primary",type:"button",disabled:a,onClick:()=>{T()},children:a?"Loading …":"Refresh schema"})]})]}),m&&d.jsxs("section",{className:"db-structure-summary","aria-label":"Database structure summary",children:[d.jsxs("article",{children:[d.jsx("span",{children:"Tables"}),d.jsx("strong",{children:m.tables.toLocaleString("en-US")}),d.jsxs("small",{children:["Across ",p.length.toLocaleString("en-US")," active layers"]})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Columns"}),d.jsx("strong",{children:m.columns.toLocaleString("en-US")}),d.jsx("small",{children:"Typed schema fields"})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Relationships"}),d.jsx("strong",{children:m.relationships.toLocaleString("en-US")}),d.jsx("small",{children:"Declared foreign keys"})]}),d.jsxs("article",{children:[d.jsx("span",{children:"Approximate rows"}),d.jsx("strong",{children:m.countedTables>0?m.approximateRows.toLocaleString("en-US"):"—"}),d.jsx("small",{children:m.countedTables>0?`Reported by ${m.countedTables.toLocaleString("en-US")} tables`:"No estimates reported"})]})]}),d.jsxs("div",{className:"db-structure-toolbar",children:[d.jsxs("p",{className:"db-structure-meta",children:["Schema snapshot ",d.jsx("time",{dateTime:t.generatedAt,children:new Date(t.generatedAt).toLocaleString("en-US")})]}),t.tables.length>0&&d.jsx("button",{className:"btn",type:"button",onClick:()=>S(!g),children:g?"Collapse all":"Expand all"})]}),t.tables.length===0?d.jsxs("div",{className:"datahub-empty",children:[d.jsx("h3",{children:"No tables found"}),d.jsx("p",{children:"The current persistence mode has no relational schema available to introspect."})]}):d.jsx("div",{className:"db-structure-layers",children:p.map(x=>d.jsxs("section",{className:"db-structure-layer",children:[d.jsxs("header",{className:"db-structure-layer-header",children:[d.jsxs("div",{children:[d.jsx("span",{children:vh[x.layer].kicker}),d.jsx("h3",{children:vh[x.layer].label}),d.jsx("p",{children:vh[x.layer].description})]}),d.jsxs("strong",{children:[x.tables.length.toLocaleString("en-US")," ",x.tables.length===1?"table":"tables"]})]}),d.jsx("div",{className:"db-structure-grid",children:x.tables.map(y=>{const w=y.name,C=l[w]??!1;return d.jsx(Cq,{table:y,isOpen:C,onToggle:()=>f(k=>({...k,[w]:!C}))},w)})})]},x.layer))})]})]})}const kq={sourceKind:"sourceKind",sourceTool:"sourceTool",severity:"severity",outcome:"outcome",technicalExecutionState:"technicalExecutionState",resultType:"resultType",processingStatus:"processingStatus",reviewDisposition:"reviewDisposition",lifecycleState:"lifecycleState",environmentState:"environmentState",environmentProperty:"environmentProperty",environmentSubjectType:"environmentSubjectType",policyClassification:"policyClassification"},ly=new Set(["reviewStatus","effectiveState"]);function uy(e,t){const n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n.size?[...n]:void 0}function dy({facet:e,value:t,label:n,onChange:a}){const i=["all",...e.values.filter(r=>r.count>0).map(r=>r.value)];return t!==void 0&&!i.includes(String(t))&&i.push(String(t)),d.jsxs("section",{className:"results-filter-group",children:[d.jsx("h3",{children:e.label}),d.jsx("div",{className:"results-filter-segmented",role:"group","aria-label":n,children:i.map(r=>{const c=r==="all"?t===void 0:t===(r==="true"),l=r==="all"?void 0:e.values.find(f=>f.value===r)?.count??0;return d.jsxs("button",{type:"button",className:c?"active":"","aria-pressed":c,onClick:()=>a(r==="all"?void 0:r==="true"),children:[r==="all"?"All":r==="true"?"Yes":"No",l!==void 0?` (${l.toLocaleString("en-US")})`:""]},r)})})]})}function Aq({facets:e,selected:t,onChange:n,onReset:a}){const i=e.find(T=>T.id==="deviation"),r=e.find(T=>T.id==="isIoe"),c=e.find(T=>T.id==="category"),l=e.filter(T=>ly.has(T.id)),f=e.filter(T=>T.id!=="isIoe"&&T.id!=="deviation"&&T.id!=="category"&&T.id!=="mappingRuleVersion"&&T.id!=="sourceProfileVersion"&&!ly.has(T.id));return d.jsxs("div",{className:"results-filter-panel",children:[i&&d.jsx(dy,{facet:i,value:t.deviation,label:"Deviation filter",onChange:T=>n({...t,deviation:T})}),r&&d.jsx(dy,{facet:r,value:t.isIoe,label:"IOE filter",onChange:T=>n({...t,isIoe:T})}),f.map(T=>{const p=kq[T.id],m=t[p]??[];return d.jsxs("section",{className:"results-filter-group",children:[d.jsx("h3",{children:T.label}),T.values.length===0?d.jsx("p",{className:"results-filter-empty",children:"No values"}):d.jsx("ul",{className:"results-filter-options",children:T.values.map(g=>{const S=m.includes(g.value),x=uy(m,g.value);return d.jsx("li",{children:d.jsxs("label",{children:[d.jsx("input",{type:"checkbox",checked:S,onChange:()=>n({...t,[p]:x})}),d.jsx("span",{title:g.label,children:g.label}),d.jsx("b",{children:g.count.toLocaleString("en-US")})]})},g.value)})})]},T.id)}),c&&d.jsxs("section",{className:"results-filter-group",children:[d.jsx("h3",{children:c.label}),c.values.length===0?d.jsx("p",{className:"results-filter-empty",children:"No values"}):d.jsx("ul",{className:"results-filter-options",children:c.values.map(T=>{const p=t.categoryValue??[],m=p.includes(T.value);return d.jsx("li",{children:d.jsxs("label",{children:[d.jsx("input",{type:"checkbox",checked:m,onChange:()=>n({...t,categoryValue:uy(p,T.value)})}),d.jsxs("span",{title:T.label,children:[T.namespace?`${T.namespace} · `:"",T.label]}),d.jsx("b",{children:T.count.toLocaleString("en-US")})]})},`${T.namespace??""}:${T.value}`)})})]}),l.map(T=>d.jsxs("section",{className:"results-filter-group results-filter-readonly",children:[d.jsx("h3",{children:T.label}),d.jsx("ul",{className:"results-filter-options",children:T.values.map(p=>d.jsxs("li",{children:[d.jsx("span",{children:p.label}),d.jsx("b",{children:p.count.toLocaleString("en-US")})]},p.value))})]},T.id)),d.jsx("button",{className:"btn results-filter-reset",type:"button",onClick:a,children:"Reset filters"})]})}const Ju={download({fileName:e,text:t,mediaType:n}){const a=document.createElement("a");a.href=URL.createObjectURL(new Blob([t],{type:n})),a.download=e,a.hidden=!0,document.body.appendChild(a),a.click(),URL.revokeObjectURL(a.href),a.remove()}};function yd(e,t,n,a){e.download({fileName:t,text:n,mediaType:a})}const xh=new qi,yh=50,Ty={deviation:!0};function Rq({backendStatus:e,projectId:t,scanRunIds:n,assessmentIds:a}){const[i,r]=H.useState(()=>({...Ty})),[c,l]=H.useState(yh),[f,T]=H.useState(null),[p,m]=H.useState(null),[g,S]=H.useState(!0),[x,y]=H.useState(!1),[w,C]=H.useState(null),[k,E]=H.useState(null),O=S6(n,a),N=H.useCallback(async()=>{if(e!=="connected"||!t||!O){T(null),m(null),S(!1);return}S(!0),C(null);try{const K={...i,projectId:t,scanRunIds:n,assessmentIds:a},[I,L]=await Promise.all([xh.queryUnifiedResultFacets(K),xh.queryUnifiedResults({...K,offset:0,limit:c})]);T(I),m(L)}catch(K){C(K instanceof Error?K.message:"Results could not be loaded.")}finally{S(!1)}},[e,t,n,a,O,i,c]);H.useEffect(()=>{N()},[N]);const B=K=>{E(null),l(yh),r(K)},A=async()=>{if(!(!t||!O)){y(!0),C(null);try{const K={...i,projectId:t,scanRunIds:n,assessmentIds:a},I=await dm(le=>xh.queryUnifiedResults(le),K),L=new Date().toISOString();yd(Ju,ZF(L),YF(K,I,L),"application/x-ndjson;charset=utf-8")}catch(K){C(K instanceof Error?K.message:"Filtered results could not be exported.")}finally{y(!1)}}},P=f?.facets.find(K=>K.id==="processingStatus")?.values.filter(K=>["unknown","incompatible","reimport-recommended"].includes(K.value))??[];return e!=="connected"?d.jsx("div",{className:"datahub-page",children:d.jsx(ym,{backendStatus:e,message:"Results will be available again once the local API is connected."})}):t?O?d.jsxs("div",{className:"datahub-page results-browser-page",children:[w&&d.jsxs("div",{className:"datahub-alert",role:"alert",children:[d.jsx("span",{children:w}),d.jsx("button",{className:"btn",type:"button",onClick:()=>{N()},children:"Reload"})]}),g&&!p?d.jsx(Ao,{message:"Loading results …"}):d.jsxs("div",{className:"results-browser-layout",children:[d.jsx(Aq,{facets:f?.facets??[],selected:i,onChange:B,onReset:()=>B({...Ty})}),d.jsxs("div",{className:"results-browser-table-wrap",children:[P.length>0&&d.jsx("div",{className:"datahub-alert results-processing-alert",role:"status",children:d.jsxs("span",{children:[d.jsx("strong",{children:"Processing readiness:"})," ",P.map(K=>`${vp(K.value)} (${K.count.toLocaleString("en-US")})`).join(" · "),". Comparisons with unknown or incompatible contracts are blocked; reimport the original source with the current profile where recommended."]})}),d.jsxs("div",{className:"page-actions-row",children:[d.jsxs("p",{className:"db-structure-meta",children:[(p?.total??0).toLocaleString("en-US")," hits",p&&p.total>p.items.length?` · ${p.items.length.toLocaleString("en-US")} loaded`:""]}),d.jsxs("div",{className:"page-action-buttons",children:[d.jsx("button",{className:"btn",type:"button",disabled:g,onClick:()=>{N()},children:g?"Loading …":"Refresh"}),d.jsx("button",{className:"btn primary",type:"button",disabled:g||x||!p?.total,onClick:()=>{A()},children:x?"Exporting …":"Export JSONL"})]})]}),p?.items.length?d.jsxs("div",{className:"results-browser-table",role:"table","aria-label":"Results",children:[d.jsxs("div",{className:"results-browser-row results-browser-head",role:"row",children:[d.jsx("span",{children:"Title"}),d.jsx("span",{children:"Severity"}),d.jsx("span",{children:"Outcome"}),d.jsx("span",{children:"Result Type"}),d.jsx("span",{children:"IOE"}),d.jsx("span",{children:"Deviation"}),d.jsx("span",{children:"Tool"}),d.jsx("span",{children:"Processing"}),d.jsx("span",{children:"Review"})]}),p.items.map(K=>d.jsx(Dq,{item:K,expanded:k===K.resultProjectionId,onToggle:()=>E(I=>I===K.resultProjectionId?null:K.resultProjectionId)},K.resultProjectionId))]}):d.jsxs("div",{className:"datahub-empty",children:[d.jsx("h3",{children:"No hits"}),d.jsx("p",{children:"No result matches the current filter combination."})]}),p&&p.total>p.items.length&&d.jsx("button",{className:"btn",type:"button",disabled:g,onClick:()=>l(K=>K+yh),children:"Load more"})]})]})]}):d.jsx("div",{className:"datahub-page",children:d.jsxs("div",{className:"datahub-empty",children:[d.jsx("h3",{children:"No timeslot selected"}),d.jsx("p",{children:"Select a timeslot in Work to browse exactly this assessment state."})]})}):d.jsx("div",{className:"datahub-page",children:d.jsxs("div",{className:"datahub-empty",children:[d.jsx("h3",{children:"No client selected"}),d.jsx("p",{children:"Open a client in the Datahub first to browse its results."})]})})}function Dq({item:e,expanded:t,onToggle:n}){const a=e.sourceKind==="environment-observation",i=e.sourceKind==="policy-observation",r=e.sourceKind==="policy-evaluation"&&!!e.policyBaselineLabel,c=a||i;return d.jsxs("div",{className:`results-browser-row${t?" expanded":""}`,role:"row",children:[d.jsxs("button",{className:"results-browser-row-toggle",type:"button",onClick:n,"aria-expanded":t,children:[d.jsxs("span",{"data-label":"Title",className:"results-browser-title",children:[d.jsx(vn,{direction:t?"down":"right"}),e.title]}),d.jsx("span",{"data-label":"Severity",children:c?"Context":e.severityNormalized}),d.jsx("span",{"data-label":"Outcome",className:c?"":"outcome-mark","data-outcome":c?void 0:e.outcomeNormalized,children:a?e.environmentState:i?e.policyIdentityStatus:e.sourceKind==="policy-evaluation"&&e.policyCustomerState==="missing"&&e.outcomeNormalized==="informational"?"Not configured":e.outcomeNormalized}),d.jsx("span",{"data-label":"Result Type",children:a?"Environment":i?"GPO Observation":e.resultType}),d.jsx("span",{"data-label":"IOE",children:c?"–":e.isIoe?"Yes":"No"}),d.jsx("span",{"data-label":"Deviation",children:c?"–":e.isDeviation?"Yes":"No"}),d.jsx("span",{"data-label":"Tool",children:e.sourceTool??"–"}),d.jsx("span",{"data-label":"Processing",children:vp(e.processingStatus)}),d.jsx("span",{"data-label":"Review",children:a?"–":e.reviewStatus})]}),t&&d.jsxs("div",{className:"results-browser-row-detail",children:[a&&d.jsxs("div",{className:"results-environment-value",children:[d.jsx("strong",{children:e.environmentProperty}),d.jsx("p",{children:Wr(e.environmentNormalizedValue)})]}),i&&d.jsxs("div",{className:"results-environment-value",children:[d.jsx("strong",{children:e.policyIdentityKey}),d.jsx("p",{children:Wr(e.policyValues)})]}),e.description&&d.jsx("p",{children:e.description}),e.recommendation&&d.jsxs("p",{children:[d.jsx("strong",{children:"Recommendation:"})," ",e.recommendation]}),d.jsxs("ul",{children:[d.jsxs("li",{children:["Source: ",e.sourceProfileId??"–","@",e.sourceProfileVersion??"–"]}),d.jsxs("li",{children:["Processing: profile ",e.sourceProfileVersion??"–"," · mapping ",e.mappingRuleVersion??"–"," · normalization ",e.normalizationRuleVersion??"–"," · presentation ",e.presentationVersion??"–"]}),d.jsxs("li",{children:["Compatibility: ",e.processingCompatibilityKey??"unknown"," · ",vp(e.processingStatus)]}),e.policyClassification&&d.jsxs("li",{children:["Result Status: ",jF[e.policyClassification],e.policySourceCount?` · ${e.policySourceCount.toLocaleString("en-US")} sources`:""]}),e.processingStatus==="reimport-recommended"&&d.jsxs("li",{children:["Reprocessing: ",e.reprocessingAvailable?"retained source available":"original source must be uploaded again"]}),a?d.jsxs(d.Fragment,{children:[d.jsxs("li",{children:["Subject class: ",e.environmentSubjectType??"–"]}),d.jsxs("li",{children:["State: ",e.environmentState??"unknown"," · Value type: ",e.environmentValueType??"unknown"]}),d.jsxs("li",{children:["Disclosure: ",e.supplementalDisclosureClass??"–"," · policy ",e.supplementalDisclosurePolicyVersion??"–"]})]}):i?d.jsxs(d.Fragment,{children:[d.jsxs("li",{children:["Scope: ",e.policyScope??"–"," · Delivery: ",e.policyDeliveryMechanism??"–"]}),d.jsxs("li",{children:["Policy state: ",e.policyState??"–"," · Identity: ",e.policyIdentityStatus??"unresolved"]}),d.jsxs("li",{children:["Backup instance: ",e.policyBackupInstanceId??"–"]}),d.jsxs("li",{children:["Diagnostics: ",e.policyDiagnosticCodes?.join(", ")||"none"]}),d.jsxs("li",{children:["Source locator: ",Wr(e.sourceLocator)]})]}):r?d.jsxs(d.Fragment,{children:[d.jsxs("li",{children:["Baseline: ",e.policyBaselineLabel]}),d.jsxs("li",{children:["Scope: ",e.policyScope??"–"," · Delivery: ",e.policyDeliveryMechanism??"–"]}),d.jsxs("li",{children:["Actual: ",Wr(e.policyActualValue)]}),e.policyBaselineVariantAssessment?d.jsxs("li",{children:[fm(e.policyBaselineVariantAssessment),d.jsx("p",{children:"No effective device state or GPO application is established by this backup comparison."}),d.jsx("ul",{children:e.policyBaselineVariantAssessment.variants.map(l=>d.jsxs("li",{children:["Setting reference: ",l.settingId," · Value comparison: ",l.comparator.relation,d.jsxs("p",{children:["Expected: ",Wr(l.comparator.baseline)]}),d.jsxs("p",{children:["Original baseline value: ",Wr(l.baselineValues)]})]},l.settingId))})]}):d.jsxs("li",{children:["Baseline value: ",Wr(e.policyBaselineValue)]}),d.jsxs("li",{children:["Comparison: ",e.policyComparisonRelation??"–"," · Customer state: ",e.policyCustomerState??"–"]}),d.jsxs("li",{children:["Diagnostics: ",e.policyDiagnosticCodes?.join(", ")||"none"]})]}):d.jsxs(d.Fragment,{children:[d.jsxs("li",{children:["Rule ID: ",e.sourceRuleId??"–"]}),d.jsxs("li",{children:["Affected Object: ",e.affectedAsset??"–"]})]}),d.jsxs("li",{children:["Categories: ",e.categories.map(l=>l.categoryLabel).join(", ")||"–"]})]})]})]})}function Wr(e){return e===void 0?"–":typeof e=="string"?e||"–":typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function vp(e){return e==="current"?"Current":e==="compatible-older"?"Compatible older":e==="reimport-recommended"?"Reimport recommended":e==="incompatible"?"Incompatible":"Unknown"}const fy="__severity_multi__",Iq=["critical","high","medium","low","info"],Nq={critical:"Crit",high:"High",medium:"Med",low:"Low",info:"Inf"};function Oq(e){return Iq.filter(t=>e.includes(t)).map(t=>Nq[t]).join("-")}function hy(e){return e===void 0?void 0:new Date(e).toISOString().slice(0,10)}function Cu(e){const t=e.confidence?` · Mapping confidence: ${e.confidence}`:"";return`${e.label}${t}${e.description?` · ${e.description}`:""}`}function Mq({facet:e,selected:t,onFilter:n}){const[a,i]=H.useState(!1),r=t?.values?.[0]??"",c=a?e.values:e.values.filter(f=>f.value===r),l=()=>{a||vd.flushSync(()=>i(!0))};return d.jsxs("select",{className:`select dynamic-facet-select is-gpo-backup${r?" is-filtered":""}`,"aria-label":e.label,title:Cu(e),value:r,onPointerDown:l,onFocus:l,onKeyDown:l,onBlur:()=>i(!1),onChange:f=>n(e.id,f.target.value?{values:[f.target.value]}:null),children:[d.jsxs("option",{value:"",children:[e.label,": All"]}),c.map(f=>d.jsxs("option",{value:f.value,children:[f.label," · ",f.count," comparisons"]},f.value))]})}function jq(e,t,n,a,i,r){if(e.source==="profile-status"){const m=n!==a;return d.jsxs("select",{className:`select dynamic-facet-select${m?" is-filtered":""}`,value:n,onChange:g=>i(g.target.value),title:Cu(e),"aria-label":e.label,children:[d.jsxs("option",{value:"all",children:[e.label,": All"]}),e.values.map(g=>d.jsxs("option",{value:g.value,children:[g.label," · ",g.count]},g.value))]},e.id)}const c=t[e.id];if(e.derivedKind==="policy-failing-backup")return d.jsx(Mq,{facet:e,selected:c,onFilter:r},e.id);if(e.kind==="category"){const m=!!c?.values?.length,g=c?.values??[],S=!!(e.severityScale&&g.length>1),x=S?fy:g[0]??"",y=/^(?:quelle|source):\s*scan$/i.test(e.label.trim());return d.jsxs("select",{className:`select dynamic-facet-select${y?" is-source-scan":""}${m?" is-filtered":""}`,value:x,onChange:w=>r(e.id,w.target.value?{values:[w.target.value]}:null),title:Cu(e),"aria-label":e.label,children:[S&&d.jsx("option",{value:fy,children:Oq(g)}),d.jsxs("option",{value:"",children:[e.label,": All"]}),e.values.map(w=>d.jsxs("option",{value:w.value,children:[w.label," · ",w.count]},w.value))]},e.id)}const l=!!(c?.minimum||c?.maximum),f=e.kind==="date-range"?"date":"number",T=e.kind==="date-range"?hy(e.minimum):e.minimum,p=e.kind==="date-range"?hy(e.maximum):e.maximum;return d.jsxs("span",{className:`dynamic-range-filter${l?" is-filtered":""}`,title:Cu(e),children:[d.jsx("span",{children:e.label}),d.jsx("input",{className:"input",type:f,value:c?.minimum??"",min:T,max:p,placeholder:"Min","aria-label":`${e.label} Minimum`,onChange:m=>r(e.id,{...c,minimum:m.target.value})}),d.jsx("input",{className:"input",type:f,value:c?.maximum??"",min:T,max:p,placeholder:"Max","aria-label":`${e.label} Maximum`,onChange:m=>r(e.id,{...c,maximum:m.target.value})})]},e.id)}function Fq({facets:e,filters:t,statusFilter:n,defaultStatusFilter:a="all",onStatusFilter:i,onFilter:r}){const c=LP(e),l=f=>jq(f,t,n,a,i,r);return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"primary-filter-group",role:"group","aria-label":"Primary filters",children:e.slice(0,c).map(l)}),e.slice(c).map(l)]})}const Lq=md(),Pq=[],py={};function km(e,t){if(!e)return Pq;const n={...t,sortColumn:"",sortDirection:"asc"};return Lq(e,y6(n),()=>{const a=l0(e,t.dataset,t.activeProfile,t.reviews),r=m6(e,a,t.facetFilters,t.reviews)==="group-policy"?l0(e,t.dataset,t.activeProfile,t.reviews,"group-policy"):a,c=gm(e,{...n,statusFilter:"all",facetFilters:py});return g6({facets:r,records:c,filters:t.facetFilters??py,reviews:t.reviews,statusFilter:t.statusFilter,matchesStatus:t.activeProfile.matchesStatus})})}function Sd(e,t){return t()}function _q(){const e=ca(),{activeSheetId:t,dataset:n,setActiveSheet:a,status:i}=e,[r,c]=H.useState(!1),l=n?.sheets.find(p=>p.id===t)??n?.sheets[0],f=r?n?.sheets:l?[l]:[],T=()=>{r||vd.flushSync(()=>c(!0))};return d.jsxs("select",{className:"select sheet-select",value:t,disabled:!n?.sheets.length,onPointerDown:T,onFocus:T,onKeyDown:T,onBlur:()=>c(!1),onChange:p=>a(p.target.value),children:[!n?.sheets.length&&d.jsx("option",{value:"",children:i?.includes("Loading")?"Loading saved client …":"No file · 0"}),f?.map(p=>d.jsxs("option",{value:p.id,children:[p.name," · ",p.analysis.records.length.toLocaleString("en-US")]},p.id))]})}function P6(){const e=ca(),{search:t,setSearch:n}=e;return d.jsx("div",{className:"search-text-group",children:d.jsxs("span",{className:"search-input-wrap",children:[d.jsx("input",{className:`input search-input${t?" is-filtered":""}`,value:t,onChange:a=>n(a.target.value.toLocaleLowerCase("en-US")),placeholder:"Search"}),d.jsx("button",{className:"search-clear-btn",type:"button",disabled:!t,onClick:()=>n(""),title:"Clear search","aria-label":"Clear search",children:"×"})]})})}function _6({hiddenFacetLabels:e=[]}){const t=ca(),{activeSheet:n,activeProfile:a,dataset:i,reviews:r,search:c,statusFilter:l,setStatusFilter:f,setActiveSheet:T,facetFilters:p,pathFindingIds:m,setFacetFilter:g,resetFilters:S,actionOnly:x}=t,y=H.useMemo(()=>Sd("filter-counts",()=>km(n,{activeProfile:a,search:c,statusFilter:l,facetFilters:p,dataset:i,actionOnly:x,reviews:r,pathFindingIds:m})),[x,a,n,i,p,m,r,c,l]),w=H.useMemo(()=>y.filter(E=>!e.includes(E.label)),[y,e]),C=a.defaults(n).statusFilter,k=H.useCallback((E,O)=>{if(E===o6&&O?.values?.length&&f("all"),E==="provenance:source-scan"&&O?.values?.length){const N=p6(i,n);N&&T(N.id)}g(E,O)},[n,i,T,g,f]);return H.useEffect(()=>{const E=new Set(y.map(N=>N.id));Object.keys(p).forEach(N=>{E.has(N)||g(N,null)}),y.forEach(N=>{if(N.source==="profile-status")return;const B=p[N.id]?.values;if(!B?.length)return;const A=new Set(N.values.map(P=>P.value)),z=B.filter(P=>A.has(P));z.length!==B.length&&g(N.id,z.length?{values:z}:null)});const O=y.find(N=>N.source==="profile-status");l!=="all"&&O&&!O.values.some(N=>N.value===l)&&f("all")},[y,p,g,f,l]),d.jsxs("div",{className:"search-tools",children:[d.jsx("button",{className:"btn standard-filter-btn",type:"button",disabled:!i||!n?.analysis.records.length,onClick:S,children:"Reset"}),d.jsx(Fq,{facets:w,filters:p,statusFilter:l,defaultStatusFilter:C,onStatusFilter:f,onFilter:k})]})}function bd(e){const{activeSheet:t,activeProfile:n,dataset:a,search:i,sortColumn:r,sortDirection:c,statusFilter:l,facetFilters:f,pathFindingIds:T,actionOnly:p,reviews:m}=ca(),g=e??l;return H.useMemo(()=>gm(t,{activeProfile:n,dataset:a,search:i,sortColumn:r,sortDirection:c,statusFilter:g,facetFilters:f,pathFindingIds:T,actionOnly:p,reviews:m}),[n,t,p,a,g,f,T,m,i,r,c])}function Ot(e,t){if(!t||!t.trim()||!e)return e;const n=t.trim(),a=e.toLocaleLowerCase("en-US"),i=n.toLocaleLowerCase("en-US");if(!a.includes(i))return e;const r=[];let c=0,l=a.indexOf(i,c);for(;l!==-1;){l>c&&r.push(e.slice(c,l));const f=e.slice(l,l+n.length);r.push(d.jsx("mark",{className:"search-highlight",children:f},`${l}-${n}`)),c=l+n.length,l=a.indexOf(i,c)}return c<e.length&&r.push(e.slice(c)),d.jsx(H.Fragment,{children:r})}function xp(e,t,n=6){const[a,i]=H.useState(null),r=H.useCallback(m=>i(m),[]),[c,l]=H.useState(()=>({start:0,end:Math.min(e,Math.ceil((typeof window>"u"?720:window.innerHeight)/t)+n*2)})),f=H.useRef(void 0);H.useEffect(()=>{if(!a)return;const m=()=>{const x=Math.ceil(a.clientHeight/t)+n*2,y=Math.floor(a.scrollTop/t)-n,w=Math.max(0,y),C=Math.min(e,w+x);l(k=>k.start===w&&k.end===C?k:{start:w,end:C})},g=()=>{f.current===void 0&&(f.current=requestAnimationFrame(()=>{f.current=void 0,m()}))};m(),a.addEventListener("scroll",g,{passive:!0});const S=new ResizeObserver(m);return S.observe(a),()=>{a.removeEventListener("scroll",g),S.disconnect(),f.current!==void 0&&cancelAnimationFrame(f.current),f.current=void 0}},[a,e,t,n]);const T=Math.min(c.end,e),p=Math.min(c.start,T);return H.useMemo(()=>({startIndex:p,endIndex:T,paddingTop:p*t,paddingBottom:Math.max(0,e-T)*t,scrollToIndex(m){if(!a)return;const g=m*t;(g<a.scrollTop||g+t>a.scrollTop+a.clientHeight)&&a.scrollTo({top:Math.max(0,g-a.clientHeight/2),behavior:"auto"})},containerRef:r}),[p,T,t,e,a,r])}const qq=44;function Bq({sheet:e,records:t,search:n}){const a=xp(t.length,qq,12),i=e.analysis.headers.length+1,r={height:a.paddingTop,padding:0,border:0},c={height:a.paddingBottom,padding:0,border:0};return d.jsx("div",{className:"table-scroll",ref:a.containerRef,children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{className:"row-index",children:"#"}),e.analysis.headers.map(l=>d.jsx("th",{children:Ot(l,n)},l))]})}),d.jsxs("tbody",{children:[a.paddingTop>0&&d.jsx("tr",{"aria-hidden":"true",children:d.jsx("td",{colSpan:i,style:r})}),t.slice(a.startIndex,a.endIndex).map(l=>d.jsxs("tr",{children:[d.jsx("td",{className:"row-index",children:l.index+1}),l.fields.map(f=>d.jsx("td",{children:Ot(f.value,n)},`${l.id}-${f.index}`))]},l.id)),a.paddingBottom>0&&d.jsx("tr",{"aria-hidden":"true",children:d.jsx("td",{colSpan:i,style:c})})]})]})})}function Uq(e){const t=e.search(/\{\s*"error"\s*:/i);if(t<0)return;let n=0,a=!1,i=!1;for(let r=t;r<e.length;r+=1){const c=e[r];if(a){i?i=!1:c==="\\"?i=!0:c==='"'&&(a=!1);continue}if(c==='"')a=!0;else if(c==="{")n+=1;else if(c==="}"&&--n===0)try{return JSON.parse(e.slice(t,r+1)).error}catch{return}}}function rr(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function zq(e){const t=e.trim().replace(/^```\w*\s*/,"").replace(/\s*```$/,"").trim();if(!/an error occurred while running the test/i.test(t)||!/Invoke-MgGraphRequest/i.test(t))return;const n=/\b(GET|POST|PUT|PATCH|DELETE)\s+(https:\/\/[^\s|]+)\s+HTTP\/\d(?:\.\d)?\s+(\d{3})\s+(.+?)(?=\s+(?:Cache-Control|Vary|Strict-Transport-Security|request-id|Content-Type)\b|\s*\||\s*\{)/i.exec(t),a=/Invoke-MgGraphRequest:\s+(.+?\.ps1):(\d+)/i.exec(t),i=Uq(t),r=i&&typeof i.innerError=="object"&&i.innerError!==null?i.innerError:void 0;return{message:rr(i?.message)??"An error occurred while running the Maester test.",code:rr(i?.code),method:n?.[1]?.toUpperCase(),endpoint:n?.[2],httpStatus:n?`${n[3]} ${n[4].trim()}`:void 0,source:a?`${a[1].split(/[\\/]/).pop()} · line ${a[2]}`:void 0,requestId:rr(r?.["request-id"])??rr(i?.["request-id"]),clientRequestId:rr(r?.["client-request-id"])??rr(i?.["client-request-id"]),timestamp:rr(r?.date)??rr(i?.date),raw:t}}function Wq(e){return e==="group-policy"?!0:e?ei.find(t=>t.id===e.toLocaleLowerCase("en-US"))?.presentation.showResultSheetTitles??!1:!1}function q6(e,t){if(!e)return;const n=ei.find(r=>r.id===e.toLocaleLowerCase("en-US"))?.presentation;if(!n?.showResultSheetTitles)return;const a=t.trim(),i=n.resultSheetTitleRules?.find(r=>r.pattern.test(a));return i?a.replace(i.pattern,i.replacement).trim():a}function Vq(e,t){if(!e)return!1;const n=ei.find(i=>i.id===e.toLocaleLowerCase("en-US"))?.presentation.resultSheetHighlightedRowPatterns;if(!n?.length)return!1;const a=t.fields.filter(i=>i.value).map(i=>i.value.trim()).join(" ").trim();return n.some(i=>i.test(a))}function Hq(e,t){if(!e)return t.highlighted?"highlight":void 0;const n=ei.find(i=>i.id===e.toLocaleLowerCase("en-US"))?.presentation,a=t.fields.filter(i=>i.value).map(i=>i.value.trim()).join(" ").trim();if(n?.resultSheetCriterionRowPatterns?.some(i=>i.test(a)))return"criterion";if(t.highlighted&&n?.resultSheetEvaluatedRowTone==="violation")return"violation";if(t.highlighted||n?.resultSheetHighlightedRowPatterns?.some(i=>i.test(a)))return"highlight"}function my(e){return e.trim().replace(/:s*$/,"").toLocaleLowerCase("en-US")}function Gq(e,t,n){const a=ei.find(p=>p.id===e?.toLocaleLowerCase("en-US"))?.presentation.resultSectionListSheetTitles;if(!a?.length)return{tableTitles:new Map,consumedSectionIndexes:new Set};const i=new Map,r=new Map;t.forEach((p,m)=>{if(!a.some(S=>S.test(p.title.trim())))return;let g="";for(const S of p.value.replace(/\r\n?/g,`
|
||
`).split(`
|
||
`)){const x=/^\s*#{1,6}\s+(.+?)\s*$/.exec(S);if(x){g=my(x[1]);continue}const y=/^\s*[-*+]\s+(.+?)\s*$/.exec(S);if(!y||!g)continue;const w=i.get(g)??[];w.push({title:y[1].trim(),sectionIndex:m}),i.set(g,w),r.set(m,(r.get(m)??0)+1)}});const c=new Map,l=new Map;for(const p of n){const m=my(q6(e,p.name)??""),g=i.get(m)?.shift();g&&(c.set(p.id,g),l.set(g.sectionIndex,(l.get(g.sectionIndex)??0)+1))}const f=new Set;for(const[p,m]of r)m>0&&l.get(p)===m&&f.add(p);const T=new Map;for(const[p,m]of c)f.has(m.sectionIndex)&&T.set(p,m.title);return{tableTitles:T,consumedSectionIndexes:f}}const Xq="Test result";function wd(e,t){const n=oa(e,t),a=ei.find(r=>r.id===n)?.presentation,i=a?.resultMessageHeaders;if(i?.length)for(const r of i){const c=e.fields.find(l=>l.value&&r.test(l.label.trim())&&B6(l,e,a));if(c)return c.value}}function B6(e,t,n){if(!n?.resultMessageHeaders?.some(i=>i.test(e.label.trim())))return!1;const a=n.statusHeaders??[/^(?:status|evaluation|result)$/i];return!a.some(i=>i.test(e.label.trim()))||!/^(?:pass(?:ed)?|fail(?:ed)?|investigate|skipped|not[ -]?run|error|unknown|manual)$/i.test(e.value.trim())?!0:t.fields.some(i=>i.value&&a.some(r=>r.test(i.label.trim()))&&!n.resultMessageHeaders?.some(r=>r.test(i.label.trim())))}function Cd(e,t){const n=oa(e,t),a=ei.find(r=>r.id===n)?.presentation,i=a?.statusHeaders??[/^(?:status|evaluation|result)$/i];for(const r of i){const c=e.fields.find(l=>l.value&&r.test(l.label.trim())&&!B6(l,e,a));if(c){const l=a?.statusDisplayRules?.find(f=>f.patterns.some(T=>T.test(c.value.trim())))?.label;return l?{...c,value:l}:c}}}function U6(e,t){const n=oa(e,t),a=ei.find(i=>i.id===n)?.presentation.resultSectionHeaders;return a?.length?e.fields.filter(i=>i.value&&a.some(r=>r.test(i.label.trim()))):[]}function Am(e,t){const n=oa(e,t),a=wd(e,t),i=n==="maester"&&a?zq(a):void 0;return[...a?[{title:Xq,value:a,...i?{diagnostic:i}:{}}]:[],...U6(e,t).map(r=>({title:r.label,value:r.value}))]}function z6(e,t){if(oa(e,t)!=="group-policy")return[];const n=r=>e.fields.find(c=>c.label.trim().toLowerCase()===r)?.value.trim()??"",a=r=>!["","no","none","false","0"].includes(r.toLowerCase()),i=n("status").toLowerCase();return[...i==="conflicts"||a(n("conflict"))?["Conflict"]:[],...i==="duplicates"||a(n("duplicates"))?["Duplicate"]:[]]}function Ed(e,t){if(oa(e,t)!=="group-policy")return[];const n=x=>e.fields.find(y=>y.label.trim().toLowerCase()===x)?.value.trim()??"",a=n("baseline"),i=/^(?:registry(?:\s+values)?)\s*[·:]\s*(.+)$/i.exec(e.title)?.[1]??"",r=(n("registry path")||i).replace(/\//g,"\\").toLowerCase(),c=n("policy type").toLowerCase(),l=/^(system access|privilege rights|registry values|event audit|kerberos policy|system services|group membership|file security|registry keys)\s*[·:]/i.exec(e.title)?.[1]??"",f=(n("policy section")||l).toLowerCase().replace(/[\s_-]/g,""),T=[],p=/\\(?:policies\\)?microsoft\\office(?:\\|$)/i.test(r),m=/\\(?:policies\\)?microsoft\\edge(?:\\|$)/i.test(r);p?T.push("Office"):m?T.push("Edge"):/\b(?:office|microsoft 365 apps|m365 apps)\b/i.test(a)?T.push("Office"):/\bmicrosoft edge\b/i.test(a)?T.push("Edge"):/\bwindows\b/i.test(a)&&T.push("Windows"),c==="advanced-audit-policy"||c==="security-template"&&f==="eventaudit"||/^system audit subcategory\s*[·:]/i.test(e.title)?T.push("Audit"):/\\(?:windows defender|windows defender security center)(?:\\|$)/i.test(r)?T.push("Defender"):/\\(?:windowsfirewall|firewallpolicy)(?:\\|$)/i.test(r)?T.push("Firewall"):/\\(?:fve|bitlocker)(?:\\|$)/i.test(r)?T.push("BitLocker"):/\\(?:laps|admPwd)(?:\\|$)/i.test(r)?T.push("LAPS"):(c==="security-template"||(!T.length||T[0]==="Windows")&&/\bsecurity baseline\b/i.test(a))&&T.push("Security");const g={systemaccess:"System Access",privilegerights:"Privilege Rights",registryvalues:"Registry Values",kerberospolicy:"Kerberos",systemservices:"System Services",groupmembership:"Restricted Groups",filesecurity:"Filesystem Security",registrykeys:"Registry Permissions"};Object.hasOwn(g,f)&&(T.includes("Security")||T.push("Security"),T.push(g[f]),f==="systemaccess"&&(/\b(?:lockoutbadcount|lockoutduration|resetlockoutcount)\b/i.test(e.title)?T.push("Account Lockout"):/\b(?:minimumpasswordage|maximumpasswordage|minimumpasswordlength|passwordcomplexity|passwordhistorysize|cleartextpassword)\b/i.test(e.title)&&T.push("Password Policy")),f==="privilegerights"&&/\bSe\w*LogonRight\b/i.test(e.title)&&T.push("Logon Rights"));const S=["Office","Edge","Audit","Defender","Firewall","BitLocker","LAPS"].some(x=>T.includes(x));if(!f&&!S&&r){T.push("Registry");const x=r.replace(/^(?:hkey_local_machine|hkey_current_user|hklm|hkcu|machine|user)\\/,"");x.startsWith("software\\")?T.push("Software"):x.startsWith("system\\")&&T.push("System")}return[...new Set(T)]}function Kq(e,t){return Cd(e,t)}function $q({record:e,title:t,bookmarked:n,selected:a,toolId:i,search:r,onOpen:c}){const l=e.fields.find(S=>/^(severity|criticality|priority)$/i.test(S.label)&&S.value),f=So(l?.value),T=Kq(e,i),p=oa(e,i),m=Yu(p,T?.value),g=z6(e,p);return d.jsxs("button",{"aria-current":a?"true":void 0,className:`record-card severity-${f}${n?" is-workspace":""}${a?" active":""}`,type:"button",onClick:c,children:[d.jsxs("span",{className:"record-title",children:[Ot(t,r),n&&d.jsx("span",{className:"action-pill",children:"Workspace"})]}),(T||g.length>0)&&d.jsxs("span",{className:"record-meta-line",children:[T&&d.jsx("span",{className:"record-meta outcome-mark","data-outcome":m,children:Ot(T.value,r)}),g.map(S=>d.jsx("span",{className:"record-diagnostic-badge","data-policy-diagnostic":S.toLowerCase(),children:S},S))]})]})}const Yq=H.memo($q,(e,t)=>e.record===t.record&&e.title===t.title&&e.bookmarked===t.bookmarked&&e.selected===t.selected&&e.toolId===t.toolId&&e.search===t.search);function Qu({filled:e=!1,size:t=16}){return d.jsx("svg",{viewBox:"0 0 24 24",width:t,height:t,"aria-hidden":"true",fill:e?"currentColor":"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinejoin:"round",children:d.jsx("path",{d:"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"})})}function Zq(e,t){const a=[{label:"Status",pattern:/^(result|status|evaluation)$/i},{label:"Category",pattern:/^category$/i},{label:"Severity",pattern:/^(severity|criticality|priority)$/i},{label:"Weight",pattern:/^weight$/i},{label:"Score",pattern:/^score$/i}].flatMap(({label:T,pattern:p})=>{const m=T==="Status"?Cd(e,t):e.fields.find(S=>S.value?p.test(S.label.trim()):!1);if(!m)return[];const g=/^(Weight|Score)$/.test(T)?`${T}: ${m.value}`:m.value;return[{label:T,value:m.value,text:g,...T==="Severity"?{severity:So(m.value)}:{}}]}),i=M1(e,t).map(T=>({label:"CIS Category",value:T,text:T})),r=Ed(e,t).map(T=>({label:"GPO Category",value:T,text:T})),c=oa(e,t)==="group-policy"?e.fields.filter(T=>T.label.trim().toLowerCase()==="scope"&&T.value.trim()).map(T=>({label:"Scope",value:T.value.trim(),text:`Scope: ${T.value.trim()}`})):[],l=[...a.filter(T=>T.label==="Status"||T.label==="Category"),...i,...r,...c,...a.filter(T=>T.label!=="Status"&&T.label!=="Category")],f=T=>(T.label==="Scope"?T.text:T.value).trim().toLocaleLowerCase("en-US");return l.filter((T,p)=>!l.slice(0,p).some(m=>f(m)===f(T)))}function Jq(e,t){if(!t||e.length<=t)return e;const n=e.filter(c=>c.label==="CIS Category"),i=(n.length?[e.find(c=>c.label==="Status"),e.find(c=>c.label==="Weight"),n.at(-1)]:[e.find(c=>c.label==="Status"),e.find(c=>c.label==="Category"),e.find(c=>c.label==="Severity")]).filter((c,l,f)=>!!c&&f.indexOf(c)===l);for(const c of e){if(i.length>=t-1)break;i.includes(c)||i.push(c)}const r=e.length-i.length;return[...i,{label:"More",value:String(r),text:`+${r}`}]}function Qq({record:e,title:t,bookmarked:n,resultColor:a,toolId:i,search:r,badgeLimit:c,onOpen:l,onBookmark:f,onResults:T}){const p=e.fields.find(C=>/^(severity|criticality|priority)$/i.test(C.label)&&C.value),m=So(p?.value),g=oa(e,i),S=Sd("tile-badges",()=>Zq(e,g)),x=Jq(S,c),y=a?{"--result-color":a}:void 0,w=C=>{C.target!==C.currentTarget||C.key!=="Enter"&&C.key!==" "||(C.preventDefault(),l())};return d.jsxs("article",{className:`data-tile severity-${m}${n?" is-bookmarked":""}`,"data-tool":g,tabIndex:0,role:"button",onClick:l,onKeyDown:w,children:[d.jsx("span",{className:"data-tile-hex","aria-hidden":"true"}),d.jsxs("div",{className:"data-tile-content",children:[d.jsx("h3",{children:Ot(t,r)}),d.jsx("div",{className:"data-tile-badges",children:x.map(C=>C.label==="Status"?d.jsx("span",{className:"outcome-mark","data-badge-role":"status","data-outcome":Yu(g,C.value),children:Ot(C.text,r)},`${C.label}:${C.value}`):d.jsx("span",{className:`reader-severity${C.severity?` severity-${C.severity}`:""}${C.label==="More"?" tile-badge-overflow":""}`,"data-badge-role":C.label==="CIS Category"||C.label==="GPO Category"?"category":C.label.toLocaleLowerCase("en-US"),children:Ot(C.text,r)},`${C.label}:${C.value}`))})]}),d.jsxs("div",{className:"data-tile-actions",children:[d.jsx("button",{className:"reader-bookmark-btn tile-bookmark-btn",type:"button","aria-pressed":n,title:n?"Remove bookmark":"Mark as bookmark",onClick:C=>{C.stopPropagation(),f()},children:d.jsx(Qu,{filled:n})}),T&&d.jsx("button",{className:`tile-results-btn${a?" is-open":""}`,style:y,type:"button",title:"Show results",onClick:C=>{C.stopPropagation(),T()},children:"R"})]})]})}const W6=H.memo(Qq,(e,t)=>e.record===t.record&&e.title===t.title&&e.bookmarked===t.bookmarked&&e.resultColor===t.resultColor&&e.toolId===t.toolId&&e.search===t.search&&e.badgeLimit===t.badgeLimit&&!!e.onResults==!!t.onResults);function V6(e){return e.fields.filter(t=>t.value&&/^(?:result|results|result\s*(?:file|datei)|resultdatei|ergebnis|ergebnisse|ergebnisdatei)$/i.test(je(t.label)))}function ed(e){return V6(e).flatMap(t=>{const n=String(t.value??""),a=[...n.matchAll(/href\s*=\s*['"]([^'"]+)['"]/gi)].map(i=>{try{return decodeURIComponent(i[1])}catch{return i[1]}});return[ga(n),n,...a]}).filter(Boolean)}function Rm(e){const t=je(e);return!t||t.length>120||t.includes("|")?!1:/\.(?:csv|tsv|xlsx?|xlsb|ods|json|html?)\b/i.test(t)?!0:/[\\/]/.test(t)?/^[\w .\-/\\]+$/.test(t):!1}function cu(e){return ga(e).toLocaleLowerCase("de-DE").replace(/^.*[\\/]/,"").replace(/\.(?:csv|tsv|xlsx?|xlsb|ods|json|html?)\b.*$/i,"").replace(/[^a-z0-9]+/g,"")}function gy(e){return ga(e).toLocaleLowerCase("de-DE").split(/[^a-z0-9]+/).filter(t=>t.length>=4&&!["results","result","report","security","assessment"].includes(t))}function eB(e,t,n){const a=[...new Set([e.sourceFile,e.sourceSheet,e.name].filter(Boolean))];let i=0;t.forEach(f=>a.forEach(T=>{const p=cu(f),m=cu(T);!p||!m||(p===m?i=Math.max(i,120):Math.min(p.length,m.length)>=16&&(p.includes(m)||m.includes(p))&&(i=Math.max(i,100)))}));const r=a.map(cu).join(" ");n.some(f=>r.includes(cu(f)))&&(i=Math.max(i,80));const c=new Set(t.flatMap(gy)),l=a.flatMap(gy).filter(f=>c.has(f));return l.length>=3&&(i=Math.max(i,65+Math.min(10,l.length))),i}const tB=/^(?:quelle:\s*datei|source\s*file|source:\s*file)$/i;function nB(e){const t=e.fields.find(n=>tB.test(je(n.label)))?.value;return je(t)||je(e.sourceFile)}function aB(e){const t=[];for(const n of e){if(typeof n!="string")continue;const a=/source-table:(\d+)(?:\s+"([^"]+)")?/gi;let i;for(;i=a.exec(n);)t.push({tableIndex:Number(i[1]),label:je(i[2])})}return t.filter(n=>Number.isInteger(n.tableIndex)&&n.tableIndex>=0)}function vy(e,t){const n=je(e.toolId).toLocaleLowerCase("en-US"),a=je(t).toLocaleLowerCase("en-US");return!!(a&&a!=="generic"&&n&&n!=="generic"&&n!==a)}const xy=new WeakMap;function H6(e,t,n){let a=xy.get(e);a||(a=new Map,xy.set(e,a));const i=a.get(n);if(i)return i;if(!V6(e).length||t.length<2)return a.set(n,[]),[];const r=ed(e),c=t.find(w=>w.id===n)?.toolId,l=oa(e,c),f=aB(r),T=new Map(f.map(w=>[w.tableIndex,w.label]));if(T.size>0){const w=nB(e),C=t.filter(k=>!vy(k,l)&&(!w||k.sourceFile===w)&&k.sourceTableIndex!==void 0&&T.has(k.sourceTableIndex)).map(k=>{const E=T.get(k.sourceTableIndex);return E?{...k,name:E}:k});return a.set(n,C),C}const m=[...[...r,...e.fields.map(w=>ga(w.value))].join(" ").matchAll(/(?:^|[^a-z0-9])((?:SI|ID|IND)[-_ ]?\d{3,})(?=$|[^a-z0-9])/gi)].map(w=>w[1]),g=r.filter(Rm),S=g.length>0?g:m;if(!S.length)return a.set(n,[]),[];const x=t.filter(w=>!vy(w,l)).map(w=>({sheet:w,score:eB(w,S,m)})).filter(w=>!w.sheet.isProjectSheet&&w.sheet.id!==n&&w.score>=65).sort((w,C)=>C.score-w.score),y=x.length?(x[0].score>=100?x.filter(w=>w.score===x[0].score):[x[0]]).map(w=>w.sheet):[];return a.set(n,y),y}const iB="Verwandte Daten";function G6(e){return e.fields.filter(t=>t.label===iB&&t.value).flatMap(t=>t.value.split(",").map(n=>n.trim()).filter(Boolean))}function X6(e,t){const n=G6(e);if(!n.length)return[];const a=new Map(t.map(i=>[i.id,i]));return n.map(i=>a.get(qb(i))).filter(i=>!!i)}const sB=/^(?:result\s*detail|resultdetail|result\s*details|details?|ergebnisdetails?|befund|evidence|nachweis|result|results|ergebnis|ergebnisse)$/i,rB=5*1024*1024,oB=1e4,cB=256;function lB(e){const t=e.trim();if(!t.startsWith("[[")||t.length>rB)return;let n;try{n=JSON.parse(t)}catch{return}if(!Array.isArray(n)||!n.length||n.length>oB)return;const a=n.filter(c=>Array.isArray(c));if(a.length!==n.length||!a[0].length||a[0].length>cB)return;const i=a[0].map(c=>{if(typeof c!="string")return"";const l=c.indexOf(":");return l>0&&l<=120?c.slice(0,l).trim():""});if(i.some(c=>!c)||new Set(i).size!==i.length)return;const r=a.map(c=>i.map((l,f)=>{const T=c[f],p=T==null?"":String(T),m=`${l}:`;return p.startsWith(m)?p.slice(m.length).trimStart():p}));return{headers:i,rows:r}}const yy=new WeakMap;function K6(e){const t=yy.get(e);if(t)return t;const n=[...Jb(e)];for(const a of e.fields){if(!a.value||!sB.test(je(a.label)))continue;const i=VO(a.value);(i.length?i:[lB(a.value)].filter(c=>!!c)).forEach((c,l)=>{const f=[c.headers,...c.rows],T=l===0?a.label:`${a.label} (${l+1})`;n.push(es(T,f,f.map(p=>p.join(" ")).join(`
|
||
`),e.id,{sourceFile:e.sourceFile,sourceSheet:T}))})}return yy.set(e,n),n}function $6(e,t,n,a){return[...H6(e,t,n),...X6(e,t),...wd(e,a)?[]:K6(e)]}const lu=[{title:"Scope and business decision",fields:[{key:"scope",label:"Affected assets, systems and exclusions",help:"Define exactly where this exception applies. This record is linked to the current finding occurrence."},{key:"scenario",label:"Risk scenario",help:"Threat, weakness, possible event and business consequence."},{key:"businessReason",label:"Reason for accepting the risk"},{key:"alternatives",label:"Alternatives considered",help:"Document mitigation, avoidance and transfer options, their costs and why they were not chosen."},{key:"trackingReference",label:"Risk register / ticket reference",kind:"short"},{key:"obligationsReview",label:"Policy, contractual and regulatory review",help:"Record applicable obligations, consulted specialists and restrictions. Acceptance does not waive mandatory requirements."}]},{title:"Risk assessment and controls",fields:[{key:"likelihood",label:"Likelihood and supporting assumptions"},{key:"impact",label:"Business impact",help:"Consider confidentiality, integrity, availability, financial and operational impact."},{key:"initialRisk",label:"Initial risk level",kind:"risk"},{key:"residualRisk",label:"Residual risk level",kind:"risk"},{key:"residualAssessment",label:"Residual risk assessment",help:"Explain the remaining exposure and why it is within the approving authority’s tolerance."},{key:"compensatingControls",label:"Compensating controls",help:"If none, state this explicitly and explain why."},{key:"controlOwner",label:"Control owner",kind:"short"},{key:"controlEvidence",label:"Control effectiveness and verification evidence"}]},{title:"Responsibility and documented approval",fields:[{key:"riskOwner",label:"Risk owner",kind:"short"},{key:"riskOwnerRole",label:"Risk owner role / team",kind:"short"},{key:"riskOwnerContact",label:"Risk owner contact",kind:"short"},{key:"approver",label:"Independent approving authority",kind:"short"},{key:"approverRole",label:"Approver role and decision authority",kind:"short"},{key:"approverContact",label:"Approver contact",kind:"short"},{key:"approvalReference",label:"Approval evidence reference",help:"Reference an explicit, signed or otherwise attributable approval covering this scope and validity period."},{key:"approvedOn",label:"External approval date",kind:"date"}]},{title:"Validity, monitoring and exit",fields:[{key:"validFrom",label:"Valid from",kind:"date"},{key:"expiresOn",label:"Expires on",kind:"date"},{key:"reviewOn",label:"Next review",kind:"date"},{key:"monitoring",label:"Monitoring plan and review owner",help:"Specify what is monitored, by whom, how often and when to escalate."},{key:"reassessmentTriggers",label:"Early reassessment / revocation triggers",help:"For example: incidents, changed exposure, failed controls or changed business requirements."},{key:"exitPlan",label:"Exit / remediation plan and milestones"},{key:"evidenceReferences",label:"Additional evidence references (optional)",help:"Use reference IDs or locations. This form does not upload or verify evidence files."}]}],uB={draft:"Save draft",accept:"Record acceptance",revoke:"Revoke acceptance"};function dB({title:e,occurrenceId:t,value:n,onSave:a,onClose:i}){const r=n?.revisions.at(-1),[c,l]=H.useState(()=>({...O6(),...r?.details})),[f,T]=H.useState(""),[p,m]=H.useState(""),[g,S]=H.useState(!1),[x,y]=H.useState(!1),[w,C]=H.useState([]),[k,E]=H.useState(""),[O,N]=H.useState(),B=H.useRef(null),A=H.useRef(null),z=H.useRef(!1);H.useEffect(()=>{(w.length||k)&&A.current?.focus()},[w,k]);const P=H.useRef(()=>{});P.current=()=>{!x&&(!z.current||window.confirm("Discard unsaved risk acceptance entries?"))&&i()},H.useEffect(()=>{const ue=document.activeElement,X=B.current?.closest('[role="dialog"]'),F=()=>[...X?.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), summary, [tabindex="0"]')??[]];B.current?.querySelector("input, textarea")?.focus();const re=me=>{if(me.key==="Escape"&&(me.preventDefault(),P.current()),me.key!=="Tab")return;const te=F();me.shiftKey&&document.activeElement===te[0]?(me.preventDefault(),te.at(-1)?.focus()):!me.shiftKey&&document.activeElement===te.at(-1)&&(me.preventDefault(),te[0]?.focus())};return document.addEventListener("keydown",re),()=>{document.removeEventListener("keydown",re),ue?.focus()}},[]);const K=(ue,X)=>{z.current=!0,E(""),S(!1),l(F=>({...F,[ue]:X}))},I=ue=>{if(!a||x)return;const X={action:ue,details:c,recordedBy:f,changeReason:p},F=X_(X,new Date().toISOString().slice(0,10));ue==="accept"&&!g&&F.push("Confirm that the external approval covers the documented risk and scope."),C(F),!F.length&&(E(""),N(X))},L=async()=>{if(!(!a||x||!O)){y(!0),E("");try{await a(O),z.current=!1,E(O.action==="draft"?"Draft saved successfully.":O.action==="revoke"?"Revocation saved successfully.":"Acceptance saved successfully."),m(""),S(!1)}catch(ue){C([ue instanceof Error?ue.message:"Could not save. Your entries are still available."])}finally{y(!1),N(void 0)}}},le=O?lu.map(ue=>({...ue,fields:ue.fields.filter(X=>O.details[X.key].trim())})).filter(ue=>ue.fields.length):[];return d.jsx(Ua,{title:O?"Review entry":"Accepted Risk",className:O?"risk-acceptance-review-dialog":"risk-acceptance-dialog",onClose:()=>O?N(void 0):P.current(),dismissible:!x,children:O?d.jsxs("section",{className:"risk-acceptance-review","aria-label":"Accepted Risk entry review",children:[d.jsxs("div",{className:"risk-acceptance-review-intro",children:[d.jsx("strong",{children:uB[O.action]}),d.jsx("p",{children:"Review your information before it is saved."})]}),d.jsxs("dl",{className:"risk-acceptance-review-meta",children:[d.jsxs("div",{children:[d.jsx("dt",{children:"Finding"}),d.jsx("dd",{children:e})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Recorded by"}),d.jsx("dd",{children:O.recordedBy})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Change / decision reason"}),d.jsx("dd",{children:O.changeReason})]})]}),le.map(ue=>d.jsxs("section",{className:"risk-acceptance-review-group",children:[d.jsx("h3",{children:ue.title}),d.jsx("dl",{children:ue.fields.map(X=>d.jsxs("div",{children:[d.jsx("dt",{children:X.label}),d.jsx("dd",{children:O.details[X.key]})]},X.key))})]},ue.title)),O.action==="accept"&&d.jsx("p",{className:"risk-acceptance-review-confirmation",children:"External approval coverage was confirmed for this risk, scope, residual exposure and validity period."}),d.jsxs("div",{className:"risk-acceptance-review-actions",children:[d.jsx("button",{className:"btn primary",type:"button",disabled:x,onClick:()=>{L()},children:"OK"}),d.jsx("button",{className:"btn",type:"button",disabled:x,onClick:()=>N(void 0),children:"Change"})]})]}):d.jsxs("form",{ref:B,className:"risk-acceptance-form",onSubmit:ue=>{ue.preventDefault(),I("draft")},children:[d.jsx("p",{className:"risk-acceptance-context",children:e}),d.jsxs("p",{children:["Decision state: ",d.jsx("strong",{children:bm(n,t)}),". Technical findings remain unchanged."]}),d.jsx("p",{className:"risk-acceptance-note",children:"Record an external approval here. Names and references are documented, not authenticated signatures. Complete all fields except optional evidence before recording acceptance."}),r?.action==="accept"&&d.jsx("p",{children:"A new draft replaces the active decision state until acceptance is recorded again. Earlier approvals remain in the history."}),!a&&d.jsx("p",{role:"status",children:"Open a saved finding with a connected backend to save this record."}),(w.length>0||k)&&d.jsxs("div",{ref:A,tabIndex:-1,children:[w.length>0&&d.jsxs("div",{role:"alert",children:[d.jsx("strong",{children:"Review the following entries:"}),d.jsx("ul",{children:w.map((ue,X)=>d.jsx("li",{children:ue.replace(/^(\w+):/,(F,re)=>`${lu.flatMap(me=>me.fields).find(me=>me.key===re)?.label??re}:`)},X))})]}),k&&d.jsx("p",{role:"status",children:k})]}),d.jsxs("fieldset",{disabled:x,className:"risk-acceptance-fields",children:[lu.map(ue=>d.jsxs("section",{children:[d.jsx("h3",{children:ue.title}),d.jsx("div",{className:"risk-acceptance-grid",children:ue.fields.map(X=>d.jsxs("label",{children:[d.jsx("span",{children:X.label}),X.kind==="risk"?d.jsxs("select",{value:c[X.key],onChange:F=>K(X.key,F.target.value),children:[d.jsx("option",{value:"",children:"Select level"}),["Low","Medium","High","Critical"].map(F=>d.jsx("option",{children:F},F))]}):X.kind?d.jsx("input",{type:X.kind==="date"?"date":"text",maxLength:12e3,value:c[X.key],onChange:F=>K(X.key,F.target.value)}):d.jsx("textarea",{maxLength:12e3,rows:3,value:c[X.key],onChange:F=>K(X.key,F.target.value)}),X.help&&d.jsx("small",{children:X.help})]},X.key))})]},ue.title)),d.jsxs("section",{children:[d.jsx("h3",{children:"Record this revision"}),d.jsxs("div",{className:"risk-acceptance-grid",children:[d.jsxs("label",{children:[d.jsx("span",{children:"Recorded by"}),d.jsx("input",{maxLength:500,value:f,onChange:ue=>{z.current=!0,T(ue.target.value)}})]}),d.jsxs("label",{children:[d.jsx("span",{children:"Change / decision reason"}),d.jsx("textarea",{maxLength:4e3,value:p,onChange:ue=>{z.current=!0,m(ue.target.value)}})]})]})]}),d.jsxs("label",{className:"risk-acceptance-confirm",children:[d.jsx("input",{type:"checkbox",checked:g,onChange:ue=>S(ue.target.checked)}),d.jsx("span",{children:"I have verified that the referenced approval explicitly covers this risk, scope, residual exposure and validity period."})]})]}),d.jsxs("div",{className:"risk-acceptance-actions",children:[d.jsx("button",{className:"btn",type:"submit",disabled:x||!a,children:"Save draft"}),d.jsx("button",{className:"btn",type:"button",disabled:x||!a,onClick:()=>I("accept"),children:"Record acceptance"}),n?.revisions.some(ue=>ue.action==="accept")&&d.jsx("button",{className:"btn",type:"button",disabled:x||!a||r?.action==="revoke",onClick:()=>I("revoke"),children:"Revoke acceptance"}),d.jsx("button",{className:"btn",type:"button",disabled:x,onClick:()=>P.current(),children:"Close"})]}),n?.revisions.length?d.jsxs("section",{className:"risk-acceptance-history",children:[d.jsx("h3",{children:"Decision history"}),[...n.revisions].reverse().map(ue=>d.jsxs("details",{children:[d.jsxs("summary",{children:["Revision ",ue.revision," · ",ue.action," · ",ue.recordedAt]}),d.jsxs("p",{children:["Recorded by: ",ue.recordedBy]}),d.jsx("p",{children:ue.changeReason}),d.jsx("dl",{children:lu.flatMap(X=>X.fields).map(X=>d.jsxs("div",{children:[d.jsx("dt",{children:X.label}),d.jsx("dd",{children:ue.details[X.key]||"—"})]},X.key))})]},ue.revision))]}):null]})})}const TB=/^(?:(?:source|registry|file|folder|directory|binary)\s+)?path$/i,Sy=/^(?:–|—|-|not configured|not available|none)$/i;function yp(e=""){return TB.test(e.trim())}function e1(e){const t=e.trim();return!t||/[\r\n]/.test(t)||/^\w+:\/\//.test(t)?!1:/^(?:[a-z]:[\\/]|\\\\|\/(?!\/)|\.{1,2}[\\/]|%[\w()]+%[\\/]|(?:HKEY_[A-Z_]+|HKLM|HKCU|HKCR|HKU|HKCC|SOFTWARE|SYSTEM)[\\/])/i.test(t)||/^[^\s<>:\\/]+[\\/][^<>\r\n]+\.[a-z0-9]{1,12}(?:#.*)?$/i.test(t)}function ia({value:e,search:t="",label:n=""}){const a=r=>d.jsx("code",{className:"technical-path",children:Ot(r,t)});if(yp(n)&&e.trim()&&!Sy.test(e.trim()))return a(e);const i=/^(registry(?:\s+values)?\s*\u00b7\s*)(.+)$/i.exec(e.trim());return i&&(e1(i[2])||/^(?:MACHINE|USER)[\\/]/i.test(i[2]))?d.jsxs(d.Fragment,{children:[Ot(i[1],t),a(i[2])]}):d.jsx(d.Fragment,{children:e.split(/(\r?\n)/).map((r,c)=>{const l=/^((?:(?:(?:source|registry|file|folder|directory|binary)\s+)?path|key|computer policy|user policy):\s*)(.+)$/i.exec(r);return l&&!Sy.test(l[2].trim())&&(yp(l[1].split(":")[0])||e1(l[2]))?d.jsxs(H.Fragment,{children:[Ot(l[1],t),a(l[2])]},c):d.jsx(H.Fragment,{children:e1(r)?a(r):Ot(r,t)},c)})})}function fB({sources:e,search:t}){const n=Xb(e),a=n.filter(r=>r.identified).length,i=n.length-a;return d.jsxs("section",{className:"policy-source-evidence","aria-label":"GPO source contributions",children:[d.jsxs("h4",{children:[a," GPO backup ",a===1?"source":"sources",i>0?` · ${i} unassigned`:""]}),d.jsx("p",{className:"policy-source-notice",children:"Original instructions by GPO. This list is not an execution order between GPOs and does not establish the effective endpoint value."}),d.jsx("div",{className:"policy-source-groups",children:n.map(r=>{const c=r.observations.length===1?r.observations[0].baselineRelation:void 0;return d.jsxs("article",{className:`policy-source-group${c?` is-${c}`:""}`,"data-source-label":r.label,"data-source-relation":c??"unassessed",children:[d.jsxs("header",{className:"policy-source-group__header",children:[d.jsx("h5",{children:Ot(r.label,t)}),c==="review"&&d.jsx("span",{className:"policy-source-group__badge is-review",children:"Review required"})]}),r.backupLabel&&d.jsx("p",{className:"policy-source-group__backup",children:d.jsx("strong",{children:Ot(r.backupLabel,t)})}),r.observations.map((l,f)=>d.jsxs("div",{className:"policy-source-observation",children:[d.jsx("p",{className:"policy-source-reference",children:d.jsx(ia,{value:l.sourceReference,search:t})}),l.sequence!==void 0&&d.jsxs("p",{className:"policy-source-sequence",children:["Source sequence: ",l.sequence]}),l.values.map((T,p)=>d.jsx("p",{className:"policy-guidance-text policy-source-value",children:Kb(T,l.deviationFields?.[p],l.deviationItems?.[p]).map((m,g)=>{const S=m.emphasized?d.jsx("strong",{className:"policy-value-emphasis",children:d.jsx(ia,{value:m.text,search:t})}):d.jsx(ia,{value:m.text,search:t});return d.jsxs(H.Fragment,{children:[g>0&&`
|
||
`,m.deviating?d.jsx("span",{className:"policy-source-deviation-value",children:S}):S]},g)})},p)),f<r.observations.length-1&&d.jsx("hr",{})]},l.id))]},r.id)})})]})}const Dm=72,hB=720;function td(e){return Math.max(Dm,Math.min(hB,Math.round(e)))}function pB(e){return{width:`${e}px`}}function Sh(e,t){const n=Array.from(e.tHead?.rows[0]?.cells??[]);return Array.from({length:t},(a,i)=>td(n[i]?.getBoundingClientRect().width||Dm))}function mB(e,t){const n=Array.from(e.rows).map(i=>i.cells[t]).filter(i=>!!i);let a=Dm;for(const i of n){const r=i.style.whiteSpace,c=i.style.width;i.style.whiteSpace="nowrap",i.style.width="auto",a=Math.max(a,i.scrollWidth+2),i.style.whiteSpace=r,i.style.width=c}return td(a)}function Y6({headers:e,children:t,enabled:n=!1,className:a="rich-text-table"}){const i=e.length,r=H.useRef(null),c=H.useRef(null),[l,f]=H.useState([]),T=n&&l.length===i?l:[],p=T.length?{tableLayout:"fixed",width:`${T.reduce((w,C)=>w+C,0)}px`}:void 0,m=w=>C=>{if(!n||!r.current)return;const k=Sh(r.current,i);c.current={pointerId:C.pointerId,columnIndex:w,startX:C.clientX,startWidths:k},f(k),C.currentTarget.setPointerCapture?.(C.pointerId),C.preventDefault(),C.stopPropagation()},g=w=>{const C=c.current;if(!C||C.pointerId!==w.pointerId)return;const k=[...C.startWidths];k[C.columnIndex]=td(C.startWidths[C.columnIndex]+w.clientX-C.startX),f(k)},S=w=>{c.current?.pointerId===w.pointerId&&(c.current=null,w.currentTarget.hasPointerCapture?.(w.pointerId)&&w.currentTarget.releasePointerCapture?.(w.pointerId))},x=w=>{const C=r.current;if(!n||!C)return;const k=Sh(C,i);k[w]=mB(C,w),f(k)},y=(w,C)=>{const k=r.current;if(!n||!k)return;const E=T.length?[...T]:Sh(k,i);E[w]=td(E[w]+C),f(E)};return d.jsxs("table",{ref:r,className:`${a}${n?" is-column-resizable":""}${T.length?" has-custom-column-widths":""}`,style:p,children:[n&&d.jsx("caption",{className:"result-column-instructions",children:"Column widths can be changed by dragging a header separator or fitted by double-clicking it."}),T.length>0&&d.jsx("colgroup",{children:T.map((w,C)=>d.jsx("col",{style:pB(w)},C))}),d.jsx("thead",{children:d.jsx("tr",{children:e.map((w,C)=>d.jsxs("th",{children:[w,n&&C<i-1&&d.jsx("span",{className:"result-column-resizer",role:"separator","aria-label":`Resize column ${C+1}`,"aria-orientation":"vertical",tabIndex:0,onPointerDown:m(C),onPointerMove:g,onPointerUp:S,onPointerCancel:S,onDoubleClick:k=>{k.preventDefault(),k.stopPropagation(),x(C)},onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),x(C)),k.key==="ArrowLeft"&&(k.preventDefault(),y(C,-16)),k.key==="ArrowRight"&&(k.preventDefault(),y(C,16))}})]},C))})}),d.jsx("tbody",{children:t})]})}const gB=/<\/?(?:p|br|b|strong|i|em|u|ul|ol|li|a)\b/i,vB=/<\/?(?:p|br|b|strong|i|em|u|ul|ol|li|a)\b/i,xB=new Set(["script","style","iframe","object","embed","svg","math"]);function yB(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}function Z6(e){if(!e)return;const t=e.trim();return/^(?:https?:|mailto:)/i.test(t)?t:void 0}const SB=/https?:\/\/[^\s<>"']+/g,bB=/[.,;:!?)\]}]+$/,uu=/(Show\s+Assessment\s+Evidence|Show\s+Rule\s+Result\s+XML|(?:--?\s*)?\bMore\b)/gi;function bh(e,t,n){if(!e||!/https?:\/\//i.test(e))return d.jsx(ia,{value:e,search:n});const a=[];let i=0;for(const r of e.matchAll(SB)){const c=r[0],l=c.replace(bB,""),f=r.index??0;f>i&&a.push(Ot(e.slice(i,f),n)),a.push(d.jsx("a",{href:l,target:"_blank",rel:"noopener noreferrer",children:Ot(l,n)},`${t}-url-${f}`)),l.length<c.length&&a.push(Ot(c.slice(l.length),n)),i=f+c.length}return i<e.length&&a.push(Ot(e.slice(i),n)),d.jsx(H.Fragment,{children:a},t)}function mo(e,t,n,a){if(!e)return null;if(uu.lastIndex=0,!uu.test(e))return bh(e,t,n);uu.lastIndex=0;const i=[];let r=0,c;for(;(c=uu.exec(e))!==null;){const l=c[0],f=c[1],T=c.index;if(T>r&&i.push(bh(e.slice(r,T),`${t}-p-${T}`,n)),/rule\s*result\s*xml/i.test(f)){const m=g=>{g.preventDefault();const S=document.querySelector(".finding-optional-detail");S&&(S.setAttribute("open","true"),S.scrollIntoView({behavior:"smooth",block:"nearest"}))};i.push(d.jsx("button",{type:"button",className:"inline-results-link",onClick:m,title:"Show Rule Result XML",children:Ot(l,n)},`${t}-trig-${T}`))}else a?i.push(d.jsx("button",{type:"button",className:"inline-results-link",onClick:a,title:"Show in Results popup",children:Ot(l,n)},`${t}-trig-${T}`)):i.push(d.jsx("span",{className:"inline-results-link-disabled",children:Ot(l,n)},`${t}-trig-${T}`));r=T+l.length}return r<e.length&&i.push(bh(e.slice(r),`${t}-p-end`,n)),d.jsx(H.Fragment,{children:i},t)}function J6(e,t,n=!1,a,i){if(e.nodeType===Node.TEXT_NODE)return n?Ot(e.textContent??"",a):d.jsx(H.Fragment,{children:Yi(Os(e.textContent??""),t,a,i)},t);if(e.nodeType!==Node.ELEMENT_NODE)return null;const r=e,c=r.tagName.toLowerCase();if(xB.has(c))return null;const l=Array.from(r.childNodes).map((f,T)=>J6(f,`${t}-${T}`,n||c==="a",a,i));switch(c){case"p":return d.jsx("p",{children:l},t);case"br":return d.jsx("br",{},t);case"b":case"strong":return d.jsx("strong",{children:l},t);case"i":case"em":return d.jsx("em",{children:l},t);case"u":return d.jsx("u",{children:l},t);case"ul":return d.jsx("ul",{children:l},t);case"ol":return d.jsx("ol",{children:l},t);case"li":return d.jsx("li",{children:l},t);case"a":{const f=Z6(r.getAttribute("href")),T=r.textContent?.trim()??"";return!f&&/^(Show\s+Assessment\s+Evidence|Show\s+Rule\s+Result\s+XML|(?:--?\s*)?More)$/i.test(T)?d.jsx(H.Fragment,{children:mo(T,t,a,i)},t):f?d.jsx("a",{href:f,target:"_blank",rel:"noopener noreferrer",children:l},t):d.jsx(H.Fragment,{children:mo(r.textContent??"",t,a,i)},t)}default:return d.jsx(H.Fragment,{children:l},t)}}function Yi(e,t,n,a){return e.map((i,r)=>{const c=`${t}-${r}`;switch(i.kind){case"strong":return d.jsx("strong",{children:Yi(i.children,c,n,a)},c);case"emphasis":return d.jsx("em",{children:Yi(i.children,c,n,a)},c);case"code":return e1(i.text)?d.jsx(ia,{value:i.text,search:n},c):d.jsx("code",{children:Ot(i.text,n)},c);case"link":{const l=Z6(i.href),f=i.children.map(p=>p.kind==="text"?p.text:"").join("");if(!l&&/^(Show\s+Assessment\s+Evidence|Show\s+Rule\s+Result\s+XML|(?:--?\s*)?More)$/i.test(f.trim()))return d.jsx(H.Fragment,{children:mo(f,c,n,a)},c);const T=i.children.map((p,m)=>p.kind==="text"?d.jsx(H.Fragment,{children:mo(p.text,`${c}-${m}`,n,a)},`${c}-${m}`):Yi([p],`${c}-${m}`,n,a));return l?d.jsx("a",{href:l,target:"_blank",rel:"noopener noreferrer",children:T},c):d.jsx(H.Fragment,{children:T},c)}default:return d.jsx(H.Fragment,{children:mo(i.text,c,n,a)},c)}})}function wB(e,t,n,a,i=!1){switch(e.kind){case"heading":{const r=e.level<=2?"h5":"h6";return d.jsx(r,{children:Yi(e.content,t,n,a)},t)}case"list":return e.ordered?d.jsx("ol",{children:e.items.map((r,c)=>d.jsx("li",{children:Yi(r,`${t}-${c}`,n,a)},`${t}-${c}`))},t):d.jsx("ul",{children:e.items.map((r,c)=>d.jsx("li",{children:Yi(r,`${t}-${c}`,n,a)},`${t}-${c}`))},t);case"table":return d.jsx("div",{className:"rich-text-table-wrap",children:d.jsx(Y6,{enabled:i,headers:e.table.headers.map((r,c)=>Yi(Os(r),`${t}-h-${c}`,n,a)),children:e.table.rows.map((r,c)=>d.jsx("tr",{children:r.map((l,f)=>d.jsx("td",{children:Yi(Os(l),`${t}-${c}-${f}`,n,a)},f))},c))})},t);case"code":return d.jsx("pre",{className:"rich-text-code",children:Ot(e.text,n)},t);default:return d.jsx("p",{children:Yi(e.content,t,n,a)},t)}}function Eu({value:e,search:t,onResults:n,resizableTables:a=!1,label:i}){if(yp(i)||e1(e))return d.jsx("p",{children:d.jsx(ia,{value:e,search:t,label:i})});let r=e;vB.test(r)&&(r=yB(r));const c=r.trim().replace(/^```\w*\n?/,"").replace(/\n?```$/,"").trim();if(/^<\??(?:xml|xccdf|rule-result|evidence)\b/i.test(c)||/<xccdf:rule-result\b/i.test(c)||/^<(?:\?xml|[\w:.-]+(?:\s|>))/i.test(c)&&!/<(?:p|br|div|table|ul|ol|li)\b/i.test(c))return d.jsx("pre",{className:"rich-text-code",children:Ot(c,t)});if(gB.test(r)){const f=new DOMParser().parseFromString(r,"text/html");return d.jsx("div",{className:"rich-text-value",children:Array.from(f.body.childNodes).map((T,p)=>J6(T,String(p),!1,t,n))})}return UO(r)?d.jsx("div",{className:"rich-text-value",children:sm(r).map((f,T)=>wB(f,String(T),t,n,a))}):d.jsx("p",{children:mo(r,"plain",t,n)})}const CB={Office:"Microsoft Office",Edge:"Microsoft Edge",Windows:"Windows",Audit:"advanced audit policy",Defender:"Microsoft Defender",Firewall:"Windows Firewall",BitLocker:"BitLocker",LAPS:"Windows LAPS",Security:"security policy"},Jr={adpasswordencryptionenabled:"Windows LAPS ADPasswordEncryptionEnabled","system audit subcategory · 0cce9212-69ae-11d9-bed3-505054503030":"Audit System Integrity","system audit subcategory · 0cce9216-69ae-11d9-bed3-505054503030":"Audit Logoff"},Q6=["AllowLocalPolicyMerge","AllowLocalIPsecPolicyMerge","EnableFirewall","DefaultInboundAction","DefaultOutboundAction","DisableInboundNotifications","DisableStealthMode","DisableUnicastResponsesToMulticastBroadcast","EnableLogDroppedPackets","EnableLogSuccessConnections","LogFilePath","LogMaxFileSize"],EB=[{segment:"domainprofile",label:"Domain profile"},{segment:"privateprofile",label:"Private profile"},{segment:"publicprofile",label:"Public profile"}],kB=["Windows 10 Version 1607 and Windows Server 2016 Security Baseline","Windows 10 Version 1809 and Windows Server 2019 Security Baseline","Windows 10 Version 20H2 and Windows Server Version 20H2 Security Baseline","Windows Server 2022 Security Baseline","Windows Server 2025 Security Baseline"],AB=["Baseline setting is not configured","Matches baseline","Differs from baseline"];function ku(e,t){const n=e.fields.filter(a=>a.label.trim().toLowerCase()===t);return n.length===1?n[0].value.trim():""}function RB(e,t){const n=ku(e,"remediation");if(n.length>512)return;const a=/^(Computer|User) policy: (system audit subcategory · [a-f0-9-]+)\s+(Expected|Must include):\s*(Failure|Success): (true|false)\s+(Failure|Success): (true|false)$/i.exec(n);if(!a||a[4].toLowerCase()===a[6].toLowerCase())return;const i=a[2].toLowerCase();if(!Object.hasOwn(Jr,i)||t&&t!==a[1].toLowerCase())return;const r=e.title.trim().toLowerCase();if(r!==i&&r!==Jr[i].toLowerCase())return;const c=Object.keys(Jr).find(p=>p===i),l=(a[4].toLowerCase()==="failure"?a[5]:a[7]).toLowerCase()==="true",f=(a[4].toLowerCase()==="success"?a[5]:a[7]).toLowerCase()==="true",T=a[3].toLowerCase()==="must include"?"Must include":"Expected";return`${Jr[i]} (${c}). ${T}: Failure: ${l?"true":"false"}; Success: ${f?"true":"false"}.`}function DB(e){const t=["computer","user"].find(r=>r===ku(e,"scope").toLowerCase())??"",n=kB.find(r=>r.toLowerCase()===ku(e,"baseline").toLowerCase()),a=AB.find(r=>r.toLowerCase()===ku(e,"comparison").toLowerCase()),i=RB(e,t);return[t&&`Scope: ${t}.`,n&&`Baseline: ${n}.`,i&&`Remediation target: ${i}`,a&&`Comparison scenario: ${a}. This describes backup configuration, not verified effective application.`].filter(Boolean).join(" ")}function IB(e,t){const n=e.title.trim().toLowerCase(),a=Ed(e,t),i=e.fields.find(l=>l.label.trim().toLowerCase()==="registry path")?.value.toLowerCase().replace(/\//g,"\\")??"",r=a.includes("Firewall")?Q6.find(l=>l.toLowerCase()===n):void 0;if(r){const l=EB.filter(T=>i.split("\\").includes(T.segment)),f=l.length===1?` (${l[0].label})`:"";return`Windows Firewall ${r}${f}`}if(Object.hasOwn(Jr,n))return Jr[n];const c=a.map(l=>CB[l]).filter(Boolean);return c.filter(l=>!c.some(f=>f!==l&&f.includes(l))).join(" / ")||"Microsoft Group Policy"}function NB(e){const t=e.title.trim().toLowerCase(),n=Object.hasOwn(Jr,t)||Ed(e,"group-policy").includes("Firewall")&&Q6.some(a=>a.toLowerCase()===t);return{subject:IB(e,"group-policy"),context:DB(e),exact:n}}const OB={registry:"https://learn.microsoft.com/en-us/azure/governance/policy/samples/guest-configuration-baseline-windows",privileges:"https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/user-rights-assignment",passwords:"https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gpsb/0b40db09-d95d-40a6-8467-32aedec8140c",asr:"https://learn.microsoft.com/en-us/defender-endpoint/attack-surface-reduction-rules-overview",maester:"https://maester.dev/docs/tests/maester/",pingcastle:"https://www.pingcastle.com/PingCastleFiles/ad_hc_rules_list.html"},MB=["SOFTWARE\\Policies\\Microsoft\\Windows Defender\\PUAProtection","Software\\Policies\\Microsoft\\Windows Defender\\Real-Time Protection\\DisableIOAVProtection","Software\\Policies\\Microsoft\\Windows Defender\\DisableAntiSpyware","Software\\Policies\\Microsoft\\Windows Defender\\Real-Time Protection\\DisableRealtimeMonitoring","SOFTWARE\\Policies\\Microsoft\\Windows Defender\\Scan\\DisableEmailScanning","Software\\Policies\\Microsoft\\Windows Defender\\Real-Time Protection\\DisableScriptScanning","SOFTWARE\\Policies\\Microsoft\\InputPersonalization\\AllowInputPersonalization","SYSTEM\\CurrentControlSet\\Services\\LanmanWorkstation\\DependOnService","SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest\\UseLogonCredential","System\\CurrentControlSet\\Services\\Tcpip6\\Parameters\\DisableIPSourceRouting","System\\CurrentControlSet\\Services\\Tcpip\\Parameters\\DisableIPSourceRouting","System\\CurrentControlSet\\Services\\Netbt\\Parameters\\NoNameReleaseOnDemand","SYSTEM\\CurrentControlSet\\Control\\Session Manager\\SafeDllSearchMode","SYSTEM\\CurrentControlSet\\Services\\Eventlog\\Security\\WarningLevel","SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\EnableICMPRedirect","SOFTWARE\\Policies\\Microsoft\\Windows\\LanmanWorkstation\\AllowInsecureGuestAuth","SOFTWARE\\Policies\\Microsoft\\Windows\\WcmSvc\\GroupPolicy\\fMinimizeConnections","SOFTWARE\\Policies\\Microsoft\\Windows\\Network Connections\\NC_AllowNetBridge_NLA","SOFTWARE\\Policies\\Microsoft\\Windows\\Network Connections\\NC_ShowSharedAccessUI","SOFTWARE\\Policies\\Microsoft\\Windows\\System\\EnableCdp","SOFTWARE\\Policies\\Microsoft\\Windows\\System\\EnumerateLocalUsers","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\Audit\\ProcessCreationIncludeCmdLine_Enabled","SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata\\PreventDeviceMetadataFromNetwork","SOFTWARE\\Policies\\Microsoft\\Windows Defender\\Windows Defender Exploit Guard\\Network Protection\\EnableNetworkProtection","Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\NoConnectedUser","SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters\\SignSecureChannel","SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters\\DisablePasswordChange","System\\CurrentControlSet\\Services\\Netlogon\\Parameters\\MaximumPasswordAge","SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters\\RequireStrongKey","SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\CachedLogonsCount","SYSTEM\\CurrentControlSet\\Services\\LanManServer\\Parameters\\EnableForcedLogoff","System\\CurrentControlSet\\Services\\LanManServer\\Parameters\\SMBServerNameHardeningLevel","SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Parameters\\SMB1","SYSTEM\\CurrentControlSet\\Control\\Lsa\\RestrictAnonymousSAM","SYSTEM\\CurrentControlSet\\Control\\Lsa\\RestrictAnonymous","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\Kerberos\\Parameters\\SupportedEncryptionTypes","SYSTEM\\CurrentControlSet\\Control\\Lsa\\NoLMHash","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableInstallerDetection","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableSecureUIAPaths","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableLUA","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\PromptOnSecureDesktop","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableVirtualization","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\Logging\\LogFilePath","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\Logging\\LogFileSize","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\DefaultOutboundAction","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\AllowLocalIPsecPolicyMerge","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\AllowLocalPolicyMerge","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\DomainProfile\\DisableNotifications","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\PublicProfile\\Logging\\LogFilePath","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\PublicProfile\\Logging\\LogFileSize","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\PublicProfile\\DefaultOutboundAction","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\PublicProfile\\AllowLocalIPsecPolicyMerge","SOFTWARE\\Policies\\Microsoft\\WindowsFirewall\\PublicProfile\\AllowLocalPolicyMerge","SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services\\fPromptForPassword","SOFTWARE\\Policies\\Microsoft\\Windows\\EventLog\\Application\\Retention","SOFTWARE\\Policies\\Microsoft\\Windows\\EventLog\\Application\\MaxSize","SOFTWARE\\Policies\\Microsoft\\MicrosoftAccount\\DisableUserAuth","SOFTWARE\\Policies\\Microsoft\\Windows Defender\\SpyNet\\LocalSettingOverrideSpynetReporting","SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services\\fEncryptRPCTraffic","SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services\\UserAuthentication","SOFTWARE\\Policies\\Microsoft\\Windows Defender\\Scan\\DisableRemovableDriveScanning","SOFTWARE\\Policies\\Microsoft\\Windows\\EventLog\\Security\\Retention","SOFTWARE\\Policies\\Microsoft\\Windows\\EventLog\\Security\\MaxSize","SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent\\DisableWindowsConsumerFeatures","SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\PreXPSP2ShellProtocolBehavior","SOFTWARE\\Policies\\Microsoft\\Windows Defender\\Real-Time Protection\\DisableBehaviorMonitoring","SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\\EnableScriptBlockLogging"],jB=["SeTrustedCredManAccessPrivilege","SeNetworkLogonRight","SeTcbPrivilege","SeMachineAccountPrivilege","SeIncreaseQuotaPrivilege","SeInteractiveLogonRight","SeRemoteInteractiveLogonRight","SeBackupPrivilege","SeChangeNotifyPrivilege","SeSystemtimePrivilege","SeTimeZonePrivilege","SeCreatePagefilePrivilege","SeCreateTokenPrivilege","SeCreateGlobalPrivilege","SeCreatePermanentPrivilege","SeCreateSymbolicLinkPrivilege","SeDebugPrivilege","SeDenyNetworkLogonRight","SeDenyBatchLogonRight","SeDenyServiceLogonRight","SeDenyInteractiveLogonRight","SeDenyRemoteInteractiveLogonRight","SeEnableDelegationPrivilege","SeRemoteShutdownPrivilege","SeAuditPrivilege","SeImpersonatePrivilege","SeIncreaseWorkingSetPrivilege","SeIncreaseBasePriorityPrivilege","SeLoadDriverPrivilege","SeLockMemoryPrivilege","SeBatchLogonRight","SeServiceLogonRight","SeSecurityPrivilege","SeRelabelPrivilege","SeSystemEnvironmentPrivilege","SeDelegateSessionUserImpersonatePrivilege","SeManageVolumePrivilege","SeProfileSingleProcessPrivilege","SeSystemProfilePrivilege","SeUndockPrivilege","SeAssignPrimaryTokenPrivilege","SeRestorePrivilege","SeShutdownPrivilege","SeSyncAgentPrivilege","SeTakeOwnershipPrivilege"],FB=["MT.1001","MT.1002","MT.1003","MT.1004","MT.1005","MT.1006","MT.1007","MT.1008","MT.1009","MT.1010","MT.1011","MT.1012","MT.1013","MT.1014","MT.1015","MT.1016","MT.1017","MT.1018","MT.1019","MT.1020","MT.1022","MT.1023","MT.1025","MT.1026","MT.1027","MT.1028","MT.1029","MT.1030","MT.1031","MT.1033","MT.1034","MT.1035","MT.1036","MT.1037","MT.1038","MT.1041","MT.1042","MT.1043","MT.1044","MT.1045","MT.1047","MT.1048","MT.1049","MT.1050","MT.1051","MT.1052","MT.1054","MT.1055","MT.1056","MT.1057","MT.1058","MT.1059","MT.1061","MT.1062","MT.1063","MT.1064","MT.1065","MT.1066","MT.1067","MT.1068","MT.1069","MT.1070","MT.1071","MT.1072","MT.1073","MT.1074","MT.1075","MT.1076","MT.1077","MT.1078","MT.1079","MT.1080","MT.1081","MT.1083","MT.1084","MT.1085","MT.1086","MT.1087","MT.1088","MT.1089","MT.1090","MT.1091","MT.1092","MT.1093","MT.1094","MT.1095","MT.1096","MT.1097","MT.1098","MT.1099","MT.1100","MT.1101","MT.1102","MT.1103","MT.1105","MT.1106","MT.1107","MT.1108","MT.1109","MT.1110","MT.1111","MT.1112","MT.1113","MT.1114","MT.1115","MT.1116","MT.1117","MT.1118","MT.1119","MT.1120","MT.1121","MT.1122","MT.1123","MT.1147","MT.1148","MT.1149","MT.1150","MT.1151","MT.1152","MT.1153","MT.1154","MT.1155","MT.1156","MT.1157","MT.1158","MT.1159","MT.1160","MT.1161","MT.1162","MT.1163","MT.1164","MT.1165","MT.1166","MT.1167","MT.1168","MT.1169","MT.1170","MT.1171","MT.1172","MT.1173","MT.1174","MT.1175","MT.1176","MT.1177","MT.1178","MT.1179","MT.1180","MT.1182","MT.1183","MT.1184","MT.1185","MT.1186","MT.1187","MT.1188","MT.1189","MT.1190","MT.1191","MT.1192","MT.1193","MT.1194","MT.1195"],LB=["A-AdminSDHolder","A-AnonymousAuthorizedGPO","A-CertTempAgent","A-CertTempAnyPurpose","A-DsHeuristicsAllowAnonNSPI","A-DsHeuristicsAnonymous","A-Guest","A-HardenedPaths","A-Krbtgt","A-LDAPSigningDisabled","A-LimitBlankPasswordUse","A-MD2RootCert","A-MD4RootCert","A-MD5IntermediateCert","A-MinPwdLen","A-NoServicePolicy","A-PwdGPO","A-SHA0IntermediateCert","A-SHA1IntermediateCert","A-SMB2SignatureNotRequired","A-WSUS-SslProtocol","P-ControlPathIndirectEveryone","P-ControlPathIndirectMany","P-DNSDelegation","P-DelegationEveryone","P-DelegationKeyAdmin","P-DelegationLoginScript","P-ExchangePrivEsc","P-RODCAdminRevealed","P-RODCNeverReveal","P-RODCRevealOnDemand","P-RODCSYSVOLWrite","S-C-Inactive","S-C-PrimaryGroup","S-DC-NotUpdated","S-DC-SubnetMissing","S-DefenderASR","S-FirewallScript","S-FolderOptions","S-OS-2003","S-OS-2008","S-OS-2012","S-OS-NT","S-TerminalServicesGPO","S-Vuln-MS17_010","S-WSUS-HTTP","S-WSUS-UserProxy","T-FileDeployedOutOfDomain","T-Inactive","T-ScriptOutOfDomain","T-TGTDelegation"],PB=["56a863a9-875e-4185-98a7-b882c64b5ce5","9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2","e6db77e5-3df2-4cf1-b95a-636979351e5b","7674ba52-37eb-4a4f-a9a1-f0f9a1619a2c","d4f940ab-401b-4efc-aadc-ad5f3c50688a","be9ba2d9-53ea-4cdc-84e5-9b1eeee46550","01443614-cd74-433a-b99e-2ecdc07bfc25","5beb7efe-fd9a-4556-801d-275e5ffc04cc","d3e037e1-3eb8-44c8-a917-57927947596d","3b576869-a4ec-4529-8536-b80a7769e899","75668c1f-73b5-4cf0-bb93-3ecf5cb7cc84","26190899-1602-49e8-8b27-eb1d0a1ce869","d1e49aac-8f56-4280-b9ba-993a6d77406c","33ddedf1-c6e0-47cb-833e-de6133960387","b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4","c0033c00-d16d-4114-a5a0-dc9b3a7d2ceb","a8f5898e-1dc8-49a9-9878-85004b8a61e6","92e97fa1-2edf-4476-bdd6-9dd0b4dddc7b","c1db55ab-c21a-4637-bb3f-a12568109d35"],pi={sources:OB,registryTargets:MB,privilegeIds:jB,maesterIds:FB,pingcastleIds:LB,asrIds:PB},wh={"group-policy":"Microsoft Group Policy","cis-cat":"CIS-CAT / CIS Benchmarks",maester:"Maester",pingcastle:"PingCastle","purple-knight":"Semperis Purple Knight",generic:"Security assessment"},by={MinimumPasswordAge:"Password policy: minimum age",MaximumPasswordAge:"Password policy: maximum age",MinimumPasswordLength:"Password policy: minimum length",PasswordComplexity:"Password complexity requirements",PasswordHistorySize:"Password reuse / history",ClearTextPassword:"Reversible password encryption",RequireLogonToChangePassword:"Legacy password-change logon requirement",LockoutBadCount:"Account lockout threshold",LockoutDuration:"Account lockout duration",ResetLockoutCount:"Account lockout counter reset"},_B=[[/\bAdminSDHolder\b/i,"Active Directory AdminSDHolder ACL inheritance"],[/\bDCSync\b|\bDC Sync\b/i,"Active Directory replication permissions / DCSync"],[/\bDCShadow\b/i,"Active Directory DCShadow rogue replication"],[/\bSIDHistory\b/i,"Active Directory SIDHistory permissions"],[/\bresource.based constrained delegation\b|\bRBCD\b/i,"Kerberos resource-based constrained delegation"],[/\bunconstrained delegation\b/i,"Kerberos unconstrained delegation"],[/\bconstrained delegation\b/i,"Kerberos constrained delegation"],[/\bkrbtgt\b/i,"Kerberos krbtgt account protection"],[/\bSMB\s*signing\b/i,"SMB signing requirements"],[/\bSMBv?1\b/i,"SMB version 1 removal"],[/\bLDAP\s*signing\b/i,"LDAP signing requirements"],[/\bchannel binding\b/i,"LDAP channel binding"],[/\bNTLM\b/i,"NTLM authentication restrictions"],[/\bWDigest\b/i,"WDigest credential caching"],[/\bLAPS\b/i,"Windows LAPS password management"],[/\bBitLocker\b/i,"BitLocker encryption"],[/\bCredential Guard\b/i,"Windows Defender Credential Guard"],[/\bTLS\b/i,"TLS protocol and cipher configuration"],[/\bcertificate templates?\b/i,"Active Directory Certificate Services template security"],[/\bConditional Access\b/i,"Microsoft Entra Conditional Access"],[/\bMFA\b|\bmultifactor authentication\b/i,"Multifactor authentication"],[/\blegacy authentication\b/i,"Legacy authentication blocking"],[/\bbreak.glass\b|\bemergency access\b/i,"Emergency access account protection"],[/\bPIM\b|\bPrivileged Identity Management\b/i,"Entra Privileged Identity Management"],[/\bIntune\b/i,"Microsoft Intune device configuration"],[/\bExchange Online\b/i,"Exchange Online security"],[/\bDefender\b/i,"Microsoft Defender protection"],[/\bAppLocker\b/i,"AppLocker application control"],[/\bPowerShell\b/i,"PowerShell security logging"],[/\baudit\b/i,"Windows audit policy"],[/\bpassword\b/i,"Password policy"],[/\bfirewall\b/i,"Firewall security policy"],[/\bOpenSSH\b|\bsshd\b/i,"OpenSSH server hardening"],[/\bsudo\b/i,"Linux sudo privilege configuration"],[/\bauditd\b/i,"Linux auditd configuration"],[/\bSELinux\b/i,"SELinux mandatory access control"],[/\bAppArmor\b/i,"AppArmor mandatory access control"]];function ji(e,t){const n=e.fields.filter(a=>t.includes(a.label.trim().toLowerCase()));return n.length===1&&n[0].value.length<=16e3?n[0].value.trim():""}const Ra=e=>e.trim().toLowerCase(),wy=e=>Ra(e).replace(/\//g,"\\").replace(/^(?:hkey_local_machine|hkey_current_user|hklm|hkcu|machine|user)\\/,"");function qB(e){const t=e.title.length<=1e3?e.title.trim():"",a=ji(e,["value name"])||hm(ji(e,["configured value"]))||t.split("·").pop()?.trim()||"",i=ji(e,["registry path"]),r=pi.registryTargets.find(g=>wy(g)===wy(`${i}\\${a}`));if(r)return{text:`Setting: ${r.split("\\").pop()}. Public registry target: ${r}. Identity reference: ${pi.sources.registry}. This reference identifies the setting; its Azure benchmark is not the selected SCT baseline.`,scalar:!0};const c=/^(system access|privilege rights)\s*[·:]\s*([a-z]+)$/i.exec(t),l=Ra(ji(e,["policy section"])).replace(/[\s_-]/g,""),f=c?.[2]??t,T=pi.privilegeIds.find(g=>Ra(g)===Ra(f));if(T&&(c?.[1].toLowerCase()==="privilege rights"||l==="privilegerights"))return{text:`Setting: ${T}. Policy section: Privilege Rights (User Rights Assignment). Configuration: Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment. Reference: ${pi.sources.privileges}.`,scalar:!1};const p=Object.keys(by).find(g=>Ra(g)===Ra(f));if(p&&(c?.[1].toLowerCase()==="system access"||l==="systemaccess")){const g=/lockout/i.test(p)?pi.sources.registry:pi.sources.passwords;return{text:`Setting: ${p}. Subject: ${by[p]}. Policy section: System Access. Configuration: Computer Configuration > Windows Settings > Security Settings > Account Policies. Reference: ${g}.`,scalar:!0}}const m=pi.asrIds.find(g=>Ra(g)===Ra(a));if(m&&/\\windows defender(?:\\|$)/i.test(i)&&/\\asr\\rules$/i.test(i))return{text:`Setting: Microsoft Defender Attack Surface Reduction rule ${m}. Reference: ${pi.sources.asr}. Explain the exact rule name and the Disabled, Block, Audit and Warn modes.`,scalar:!0}}function BB(e){const t=ji(e,["baseline value"]);if(!t||t.length>160)return"";let n=t;try{n=JSON.parse(t)}catch{}if(typeof n=="object"&&n&&!Array.isArray(n)){const a=n;Object.keys(a).every(i=>["kind","value"].includes(i))&&["number","integer","uint32","boolean"].includes(String(a.kind))&&(n=a.value)}return typeof n=="boolean"?`Selected benchmark target: ${n}.`:typeof n=="number"&&Number.isInteger(n)&&n>=0&&n<=65535?`Selected benchmark target: ${n}. Verify this target against the selected baseline version; do not assume it applies to every device.`:""}function UB(e,t){const n=t==="maester"?pi.maesterIds:t==="pingcastle"?pi.pingcastleIds:[],a=ji(e,["rule id","rule-id","test id","test-id","id"]),i=n.find(c=>Ra(c)===Ra(a)||Ra(c)===Ra(e.title)),r=i?[i]:n.filter(c=>new RegExp(`^${c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:\\s*[-:·]|\\.[0-9]+(?:[: .]|$))`,"i").test(e.title));if(r.length===1)return`Public rule ID: ${r[0]}. Rule catalog: ${t==="maester"?pi.sources.maester:pi.sources.pingcastle}. Retrieve this exact rule, its rationale and remediation; do not substitute another rule.`}function zB(e,t){const n=oa(e,t)??"generic",a=Object.hasOwn(wh,n)?wh[n]:wh.generic,i=qB(e),r=UB(e,n),c=n==="group-policy"?NB(e):void 0,l=[e.title,ji(e,["description"]),ji(e,["rationale"])].join(`
|
||
`).slice(0,2e4),f=_B.filter(([y])=>y.test(l)).map(([,y])=>y).slice(0,4),T=["Fail","Failed","Pass","Passed","Not configured","Conflicts","Duplicates"].find(y=>Ra(y)===Ra(ji(e,["status"]))),p=ji(e,["baseline","benchmark","benchmark title","benchmark name"]),m=["Windows Server 2016","Windows Server 2019","Windows Server 2022","Windows Server 2025","Windows 10","Windows 11","Microsoft 365","Microsoft Edge","Office 2016","Ubuntu","Debian","Red Hat Enterprise Linux"].filter(y=>new RegExp(`\\b${y}\\b`,"i").test(p)),g=i||c?.exact?"setting":r?"rule":"topic",S=["computer","user"].find(y=>y===Ra(ji(e,["scope"]))),x=[`Explain this security check from ${a}.`,i?.text,r,m.length&&`Benchmark product family (not proof of device applicability): ${m.join(", ")}.`,i?.scalar&&BB(e),f.length&&`Public technical topics: ${f.join("; ")}.`,T&&`Comparison scenario: ${T}.`,!i&&c&&`Subject: ${c.subject}.`,c?.context,S&&`Scope: ${S}.`,g==="topic"?"The exact public rule is not resolved; discuss only the named topics and do not invent a rule ID or benchmark value.":"","Answer in German. Focus on this exact setting or rule, not a general product overview. Explain its purpose, security impact, required versus optional configuration, precise remediation steps and how to verify the change. Cite the original vendor or benchmark publisher with direct links. Separate recommendation, default and effective configuration. Do not assume a server role, operating system version or scope that is not supplied. No customer configuration or identities are supplied."].filter(Boolean).join(" ");return{query:x,url:`https://www.google.com/search?udm=50&q=${encodeURIComponent(x)}`,specificity:g}}const WB=["Open","In Review","Clarification Needed","Actionable","Blocked","Done","Not Relevant"],VB=["High","Medium","Low"],En=e=>e.trim().toLocaleLowerCase("en-US").replace(/[\s_-]+/g," "),Ch=e=>e.trim().replace(/\s+/g," ").toLocaleLowerCase("en-US"),Cy=e=>{const t=En(e);return/^(?:short\s*name|si version|target|runtime|points scale|rule id|policy type|policy section|description source)$/.test(t)||/^(?:quelle|source):? /.test(t)||/^anssi \d+$/.test(t)},Ey=e=>/^(?:name|title|finding|indicator|results?|status|evaluation|category|severity|criticality|priority|weight|score)$/.test(En(e)),Eh=e=>/^(?:details?|result detail|resultdetail)$/.test(En(e)),HB=e=>En(e)==="verwandte daten";function GB(e,t){if(t!=="purple-knight")return{fields:[],sourceIndexes:[]};const n=e.fields.find(c=>En(c.label)==="framework"&&c.value);if(!n||n.value.length>64*1024)return{fields:[],sourceIndexes:[]};let a;try{a=JSON.parse(n.value)}catch{return{fields:[],sourceIndexes:[]}}if(!Array.isArray(a)||a.length>32)return{fields:[],sourceIndexes:[]};const i=[],r=Math.max(-1,...e.fields.map(c=>c.index))+1;return a.forEach(c=>{if(!c||typeof c!="object"||Array.isArray(c))return;const l=c;if(typeof l.Name!="string"||!Array.isArray(l.Tags))return;const f=l.Name;l.Tags.slice(0,32).forEach(T=>{if(typeof T!="string"||!T.trim())return;const p=i.filter(m=>En(m.label).startsWith(En(f))).length+1;i.push({index:r+i.length,label:`${f}_${p}`,value:T.trim()})})}),i.length?{fields:i,sourceIndexes:[n.index]}:{fields:[],sourceIndexes:[]}}const XB="cis cat details",KB="rule result xml",$B=/^##\s+Rule Result XML\s*$/im;function YB(e,t,n=new Set){const a=new Set(n);if(t!=="cis-cat")return{optionalFields:[],hiddenFieldIndexes:a};const i=e.fields.find(m=>En(m.label)===KB&&m.value),r=e.fields.find(m=>En(m.label)===XB&&m.value);r&&a.add(r.index);const c=m=>m.replace(/^```\w*\n?/,"").replace(/\n?```$/,"").trim();if(i)return a.add(i.index),n.has(i.index)?{optionalFields:[],hiddenFieldIndexes:a}:{optionalFields:[{...i,value:c(i.value)}],hiddenFieldIndexes:a};if(!r)return{optionalFields:[],hiddenFieldIndexes:a};const l=$B.exec(r.value);if(!l?.length||l.index===void 0)return{optionalFields:[],hiddenFieldIndexes:a};const f=r.value.slice(l.index+l[0].length).trimStart(),T=f.search(/^##\s+/m),p=c((T>=0?f.slice(0,T):f).trim());return{optionalFields:p?[{...r,label:"Rule Result XML",value:p}]:[],hiddenFieldIndexes:a}}const ZB=/\s*>?\s*References(?![a-z])\s*/;function JB(e){return e.flatMap(t=>{const n=ZB.exec(t.value);if(!n?.index)return[t];const a=t.value.slice(0,n.index).replace(/[\s>]+$/,""),i=t.value.slice(n.index+n[0].length).trim();return!a||!i?[t]:[{...t,value:a},{...t,label:"References",value:i}]})}function QB(e,t,n=!1,a){const i=M1(e,a),r=GB(e,a),c=new Set(U6(e,a).map(P=>P.index)),{optionalFields:l,hiddenFieldIndexes:f}=YB(e,a,c);r.sourceIndexes.forEach(P=>f.add(P)),a==="pingcastle"&&e.fields.filter(P=>HB(P.label)).forEach(P=>f.add(P.index)),n&&e.fields.filter(P=>Eh(P.label)).forEach(P=>f.add(P.index)),a==="purple-knight"&&(r.fields.length||e.fields.some(P=>Eh(P.label)))&&e.fields.filter(P=>/^(?:grade|exposure type)$/.test(En(P.label))).forEach(P=>f.add(P.index));const T=Cd(e,a),p=a==="group-policy"&&n&&Jb(e).length>0,m=a==="group-policy"&&!!e.policySourceEvidence?.length;m&&e.fields.filter(P=>["Sources","Configured Value"].includes(P.label)).forEach(P=>f.add(P.index)),p&&e.fields.filter(P=>[pd,h1,"Sources","Configured Value"].includes(P.label)).forEach(P=>f.add(P.index));const g=a==="group-policy"&&(!p||m)?e.fields.filter(P=>{const K=En(P.label);return P.value&&(!m&&K==="configured value"||K==="baseline value")}):[],S=a==="group-policy"?e.fields.find(P=>En(P.label)==="evaluation readiness"&&P.value):void 0;S&&f.add(S.index),g.forEach(P=>f.add(P.index));const x=e.fields.filter(P=>{if(!P.value)return!1;const K=En(P.label);return/^(?:category|severity|weight|score|category score|domain risk level)$/.test(K)||/^points?$/.test(K)&&vi(P.value)!==null}),y=[...e.fields,...r.fields].filter(P=>Qc(P.label)&&P.value),w=P=>{const K=En(P);return K==="conflict"||K==="duplicates"?-1:K==="result message"?0:/^number of results?$/.test(K)?1:K==="description"?2:a==="pingcastle"&&K==="technical explanation"?3:a==="pingcastle"&&K==="advised solution"?4:a==="pingcastle"&&K==="documentation"?5:/^remediation(?: guidance| recommendation)?$/.test(K)?3:/^(source|quelle)(?:\s*:\s*.*)?$/.test(K)?4:10},C=new Set,k=e.fields.filter(P=>{if(f.has(P.index)||!P.value||P.value===t||x.some(I=>I.index===P.index)||Qc(P.label)||Cy(P.label)||Ey(P.label)||n&&Eh(P.label))return!1;const K=Ch(P.value);return C.has(K)?!1:(C.add(K),!0)}).sort((P,K)=>w(P.label)-w(K.label)||P.index-K.index),E=JB(k).slice(0,12),O=new Set([...f,...E.map(P=>P.index),...x.map(P=>P.index),...y.map(P=>P.index),...T?[T.index]:[]]),N=new Set([t,...E.map(P=>P.value)].map(Ch)),B=[...e.fields,...r.fields.filter(P=>!Qc(P.label))].filter(P=>!P.value||O.has(P.index)?!1:Cy(P.label)?!0:Ey(P.label)?!1:!N.has(Ch(P.value))),A=E.findIndex(P=>En(P.label)==="check title"),z=A>=0?E.splice(A,1)[0]:void 0;return{statusField:T,badges:x,derivedCategories:i,mitre:y,summary:E,checkTitle:z,optionalFields:l,remainingFields:B,policyComparisonFields:g,policyReadiness:S}}function eU(e,t,n){if(n!=="group-policy")return[];const i=(T=>e.fields.find(p=>En(p.label)===T)?.value.trim()??"")("policy type")==="group-policy-preference",c=(t.split(/\s*\u00b7\s*/).at(-1)?.trim()??t.trim()).split(/[\\/]/).map(T=>T.trim()).filter(Boolean),l=[],f=T=>{const p=T?.trim();p&&!l.some(m=>m.toLocaleLowerCase("en-US")===p.toLocaleLowerCase("en-US"))&&l.push(p)};for(const T of e.fields)if(/^(?:configured value|baseline value)$/.test(En(T.label))){if(i)try{const p=JSON.parse(T.value),m=g=>{if(Array.isArray(g))return g.forEach(m);if(!g||typeof g!="object")return;const S=g;S.kind==="registry-preference"&&typeof S.key=="string"&&f(S.key.split(/[\\/]/).at(-1)),Object.values(S).forEach(m)};m(p)}catch{}f(hm(T.value))}return!l.length&&i&&c.length>1&&f(c.at(-2)),(i||!l.length)&&f(c.at(-1)),l}function tU({record:e,title:t,review:n,previousPolicyReviews:a,linkedSheets:i,resultReferences:r,search:c,position:l,recordCount:f,toolId:T,onPrevious:p,onNext:m,onReview:g,onRiskAcceptance:S,onResults:x,resultsOpen:y,resultColor:w}){const C=y&&w?{"--result-color":w}:void 0,[k,E]=H.useState(""),[O,N]=H.useState(""),B=k===e.id,A={...hr(),...n},z=e.fields.find(de=>/^(severity|criticality|priority)$/i.test(de.label)&&de.value),P=So(z?.value),K=i.length>0,I=oa(e,T),L=zB(e,I),{statusField:le,badges:ue,derivedCategories:X,mitre:F,summary:re,checkTitle:me,optionalFields:te,remainingFields:Ce,policyComparisonFields:ee,policyReadiness:M}=QB(e,t,K,I),Y=le?.value?Yu(I,le.value):"unknown",Z=ee.map(de=>hm(de.value)).find(Boolean),J=eU(e,t,I),he=[...new Set(r.filter(Rm))],ge=de=>fe=>g({[de]:fe.target.value});return d.jsxs("article",{className:"finding-reader",children:[d.jsxs("nav",{className:"reader-nav","aria-label":"Record navigation",children:[d.jsxs("div",{children:[d.jsx("button",{type:"button",onClick:p,disabled:l<=0,"aria-label":"Previous record",children:d.jsx(vn,{direction:"left"})}),d.jsx("button",{type:"button",onClick:m,disabled:l>=f-1,"aria-label":"Next record",children:d.jsx(vn,{direction:"right"})})]}),d.jsxs("span",{title:e.sourceFile??e.sourceSheet,children:["Inbox / Record / ",s6(e.sourceFile)||e.sourceSheet||"Finding"]})]}),d.jsxs("div",{className:"reader-heading",children:[d.jsx("span",{className:`reader-title-hex severity-${P}`,"aria-hidden":"true"}),d.jsxs("div",{children:[d.jsx("h2",{children:d.jsx(ia,{value:t,search:c})}),d.jsxs("div",{className:"finding-badges",children:[le?.value&&d.jsx("span",{className:"outcome-mark","data-outcome":Yu(I,le.value),children:Ot(le.value,c)}),X.map(de=>d.jsx("span",{className:"status-badge","data-derived-category":"cis",children:Ot(de,c)},de)),ue.map(de=>{const fe=de.label.toLowerCase()==="severity",ye=/^(?:category score|domain risk level)$/i.test(de.label.trim())?" / 100":"",qe=fe?"severity-badge severity-"+So(de.value):"status-badge",ae=fe?de.value:de.label+": "+de.value+ye;return d.jsx("span",{className:qe,children:Ot(ae,c)},de.label)}),Ed(e,I).map(de=>d.jsx("span",{className:"status-badge","data-derived-category":"gpo",children:Ot(de,c)},de)),z6(e,I).map(de=>d.jsx("span",{className:"status-badge policy-diagnostic-badge","data-policy-diagnostic":de.toLowerCase(),children:de},`policy-diagnostic-${de}`)),I==="group-policy"&&e.fields.filter(de=>En(de.label)==="scope"&&de.value.trim()).slice(0,1).map(de=>d.jsxs("span",{className:"status-badge","data-policy-scope":!0,children:["Scope: ",Ot(de.value,c)]},"policy-scope"))]}),F.length>0&&d.jsx("div",{className:"mitre-line",children:F.map(de=>d.jsxs("span",{className:"mitre-badge",children:[Qc(de.label),": ",Ot(de.value,c)]},de.label))})]}),d.jsxs("button",{className:"btn accepted-risk-trigger",type:"button","aria-haspopup":"dialog",onClick:()=>N(e.id),children:["Accepted Risk",A.riskAcceptance&&d.jsx("small",{children:bm(A.riskAcceptance,e.findingOccurrenceId)})]}),d.jsxs("div",{className:"reader-heading-actions",children:[J.length>0&&d.jsxs("div",{className:"policy-search-key",children:[d.jsxs("span",{children:["Policy Analyzer search ",J.length===1?"key":"terms"]}),d.jsx("div",{children:J.map(de=>d.jsx("code",{children:Ot(de,c)},de))})]}),L&&d.jsx("a",{className:"btn",href:L.url,target:"_blank",rel:"noopener noreferrer",referrerPolicy:"no-referrer","data-search-specificity":L.specificity,title:`${L.specificity==="topic"?"Topic search — ":""}${L.query}`,children:"AI search"}),d.jsx("span",{className:"bookmark-label",children:"Bookmark"}),d.jsx("button",{className:"bookmark-btn",type:"button","aria-pressed":A.include,onClick:()=>g({include:!A.include}),children:d.jsx(Qu,{filled:A.include})}),d.jsx("button",{className:`btn results-detail-btn results-btn${y?" is-open":""}`,style:C,type:"button",disabled:!x,onClick:x,children:"Results"})]})]}),O===e.id&&d.jsx(dB,{title:t,occurrenceId:e.findingOccurrenceId,value:A.riskAcceptance,onSave:S,onClose:()=>N("")},e.id),d.jsxs("section",{className:"dashboard-grid",children:[d.jsxs("label",{children:["Status",d.jsx("select",{value:A.status,onChange:ge("status"),children:WB.map(de=>d.jsx("option",{children:de},de))})]}),d.jsxs("label",{children:["Priority",d.jsx("select",{value:A.priority,onChange:ge("priority"),children:VB.map(de=>d.jsx("option",{children:de},de))})]}),d.jsxs("label",{children:["Owner / Team",d.jsx("input",{value:A.owner,onChange:ge("owner")})]}),d.jsxs("label",{children:["Due Date",d.jsx("input",{type:"date",value:A.due,onChange:ge("due")})]})]}),d.jsxs("section",{className:"reader-summary",children:[!!a?.length&&d.jsxs("details",{className:"policy-previous-reviews",children:[d.jsxs("summary",{children:["Previous baseline-specific reviews (",a.length,")"]}),d.jsx("p",{children:"These earlier notes remain attached to their original comparisons. Different decisions and risk acceptances are not automatically applied to this combined setting."}),a.map(de=>d.jsxs("section",{children:[d.jsx("h4",{children:de.baseline}),d.jsx("dl",{children:Object.entries(de.review).filter(([fe,ye])=>ye!==void 0&&JSON.stringify(ye)!==JSON.stringify(hr()[fe])).map(([fe,ye])=>d.jsxs(H.Fragment,{children:[d.jsx("dt",{children:fe.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/^./,qe=>qe.toUpperCase())}),d.jsx("dd",{children:typeof ye=="object"?JSON.stringify(ye,null,2):String(ye)})]},fe))})]},de.id))]}),d.jsx("h3",{children:d.jsx(ia,{value:Z||me?.value||(I==="group-policy"?t:"Finding"),search:c})}),M&&d.jsxs("div",{className:"policy-evaluation-warning",role:"status",children:[d.jsx("h4",{children:"Historical comparison"}),d.jsx("p",{children:M.value})]}),I==="group-policy"&&!!e.policySourceEvidence?.length&&d.jsx(fB,{sources:e.policySourceEvidence,search:c}),ee.length>0&&d.jsx("div",{className:"policy-value-comparison","data-outcome":M?"historical":Y,children:ee.map(de=>{const fe=En(de.label)==="baseline value";return d.jsxs("section",{className:"policy-value-block","data-value":fe?"expected":"configured",children:[d.jsx("h4",{children:M?fe?"Saved baseline value":"Saved customer value":fe?"Expected baseline value":"Configured customer value"}),d.jsx("p",{className:"policy-guidance-text",children:cp(de.value).map((ye,qe)=>d.jsxs(H.Fragment,{children:[qe>0&&`
|
||
`,ye.emphasized?d.jsx("strong",{className:"policy-value-emphasis",children:d.jsx(ia,{value:ye.text,search:c})}):d.jsx(ia,{value:ye.text,search:c})]},qe))})]},`${de.index}-${de.label}`)})}),re.map(de=>d.jsxs("div",{className:/^remediation(?: guidance| recommendation)?$/.test(En(de.label))?"reader-remediation":void 0,children:[d.jsx("h4",{children:Ot(de.label,c)}),I==="group-policy"&&/^(?:description|remediation|sources)$/.test(En(de.label))?d.jsx("p",{className:"policy-guidance-text",children:d.jsx(ia,{value:de.value,search:c,label:de.label})}):d.jsx(Eu,{value:de.value,search:c,label:de.label,onResults:x})]},`${de.index}-${de.label}`)),te.map(de=>d.jsxs("details",{className:"finding-optional-detail",children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),Ot(de.label,c)]}),d.jsx(Eu,{value:de.value,search:c,label:de.label,onResults:x})]},`${de.index}-${de.label}`))]}),d.jsxs("section",{className:"review-grid",children:[[["prerequisites","Prerequisites"],["access","Required Access / Roles"],["nextStep","Next Step"],["evidence","Evidence / Acceptance Criteria"],["comment","Comment"]].map(([de,fe])=>d.jsxs("label",{children:[fe,d.jsx("textarea",{value:String(A[de]),onChange:ge(de)})]},de)),d.jsxs("fieldset",{className:"review-markers",children:[d.jsx("legend",{children:"Markers"}),[["markerQuestion","Question Needed"],["markerBlocked","Permission Blocked"],["markerQuickwin","Quick Win"],["markerExternal","External Team"],["markerNotRelevant","Not Relevant"]].map(([de,fe])=>d.jsxs("label",{children:[d.jsx("input",{type:"checkbox",checked:!!A[de],onChange:ye=>g({[de]:ye.target.checked})})," ",fe]},de))]})]}),r.length>0&&!i.length&&d.jsxs("details",{className:"all-fields linked-results-inline",open:B,onToggle:de=>E(de.currentTarget.open?e.id:""),children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),"Results (reference found)"]}),B&&d.jsxs("div",{className:"linked-results-empty",children:[d.jsx("strong",{children:"No matching result file found automatically."}),he.length>0&&d.jsxs(d.Fragment,{children:[d.jsx("br",{}),"Reference: ",he.join(", ")]}),d.jsx("br",{}),"The referenced file must be loaded in the same project."]})]}),Ce.length>0&&d.jsxs("details",{className:"all-fields",children:[d.jsxs("summary",{children:[d.jsx(vn,{direction:"right"}),"Additional Information"]}),d.jsx("table",{children:d.jsx("tbody",{children:Ce.map(de=>d.jsxs("tr",{children:[d.jsx("th",{children:Ot(de.label,c)}),d.jsx("td",{children:d.jsx(Eu,{value:de.value,search:c,label:de.label,onResults:x})})]},`${de.index}-${de.label}`))})})]})]})}function Qr(e,t){if(!t)return e;const n=e.toLocaleLowerCase("en-US"),a=[];let i=0,r=n.indexOf(t.toLocaleLowerCase("en-US"),i);for(;r>=0;)r>i&&a.push(e.slice(i,r)),a.push(d.jsx("mark",{children:e.slice(r,r+t.length)},`${r}-${i}`)),i=r+t.length,r=n.indexOf(t.toLocaleLowerCase("en-US"),i);return i<e.length&&a.push(e.slice(i)),a}function nU({value:e,search:t}){return e===""?d.jsxs(d.Fragment,{children:[d.jsx("code",{className:"variant-comparison__literal",children:'""'}),d.jsx("span",{className:"variant-comparison__value-note",children:"Empty string"})]}):/^\s+$/.test(e)?d.jsxs(d.Fragment,{children:[d.jsx("code",{className:"variant-comparison__literal",children:Qr(JSON.stringify(e),t)}),d.jsxs("span",{className:"variant-comparison__value-note",children:[e.length," whitespace ",e.length===1?"character":"characters"]})]}):d.jsx(ia,{value:e,search:t,label:"Value"})}function aU({sources:e,search:t}){return d.jsx("div",{className:"variant-comparison__sources","aria-label":e.length===1?"GPO source":"GPO sources",children:e.map((n,a)=>d.jsx(ia,{value:n.sourcePath,search:t,label:"Source path"},`${n.recordId}-${a}`))})}function iU({comparison:e,search:t}){return d.jsxs("details",{className:"variant-comparison__technical",children:[d.jsx("summary",{children:"Technical source details"}),d.jsx("div",{className:"variant-comparison__technical-list",children:e.variants.flatMap(n=>n.sources.map((a,i)=>d.jsxs("section",{children:[d.jsxs("h5",{children:[a.label," · ",n.label]}),d.jsxs("dl",{children:[d.jsxs("div",{children:[d.jsx("dt",{children:"Source path"}),d.jsx("dd",{children:d.jsx(ia,{value:a.sourcePath,search:t,label:"Source path"})})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Backup ID"}),d.jsx("dd",{children:Qr(a.backupId,t)})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Record ID"}),d.jsx("dd",{children:Qr(a.recordId,t)})]})]})]},`${n.label}-${a.recordId}-${i}`)))})]})}function sU({comparison:e,search:t}){const n=e.sourceCount===1?"GPO source defines":"GPO sources define",a=e.mode==="duplicate";return d.jsxs("section",{className:`variant-comparison${a?" is-duplicate":""}`,"aria-label":a?"Duplicate setting evidence":"Conflicting setting comparison",children:[d.jsxs("header",{className:"variant-comparison__header",children:[d.jsx("p",{className:"variant-comparison__eyebrow",children:a?"Duplicate setting":"Conflicting setting"}),d.jsx("h3",{children:Qr(e.title,t)}),d.jsx("p",{className:"variant-comparison__scope",children:e.scope?`${e.scope[0].toUpperCase()}${e.scope.slice(1)} scope`:"Policy scope"})]}),d.jsxs("div",{className:`variant-comparison__notice${a?" is-duplicate":""}`,children:[d.jsx("strong",{children:a?"Duplicate detected":"Conflict detected"}),d.jsx("p",{children:a?`${e.sourceCount} ${n} this setting with an identical value and type.`:`${e.sourceCount} ${n} this setting with ${e.variants.length} different values or types.`}),d.jsx("p",{children:a?"This may be intentional. A duplicate alone is not a baseline deviation.":"ASSESSOR shows the conflicting evidence but does not determine which value ultimately applies."})]}),d.jsxs("section",{className:"variant-comparison__setting",children:[d.jsx("h4",{children:"Setting details"}),d.jsxs("dl",{children:[e.registryPath&&d.jsxs("div",{children:[d.jsx("dt",{children:"Registry path"}),d.jsx("dd",{children:d.jsx(ia,{value:e.registryPath,search:t,label:"Registry path"})})]}),e.valueName&&d.jsxs("div",{children:[d.jsx("dt",{children:"Value name"}),d.jsx("dd",{children:Qr(e.valueName,t)})]}),e.scope&&d.jsxs("div",{children:[d.jsx("dt",{children:"Scope"}),d.jsx("dd",{children:Qr(e.scope,t)})]})]})]}),d.jsxs("section",{className:"variant-comparison__variants",children:[d.jsx("h4",{children:a?"Observed value":"Observed variants"}),d.jsx("p",{children:a?"The following value and type were found in every listed source.":"The following values or types were found for the affected setting."}),d.jsx("div",{className:"variant-comparison__table-wrap",children:d.jsxs("table",{className:"variant-comparison__table",children:[d.jsx("thead",{children:d.jsxs("tr",{children:[!a&&d.jsx("th",{children:"Variant"}),d.jsx("th",{children:"Value"}),d.jsx("th",{children:"Type"}),d.jsx("th",{children:"Evidence"})]})}),d.jsx("tbody",{children:e.variants.map(i=>d.jsxs("tr",{children:[!a&&d.jsx("th",{scope:"row",children:i.label}),d.jsx("td",{className:"variant-comparison__value",children:d.jsx(nU,{value:i.value,search:t})}),d.jsx("td",{children:Qr(i.typeLabel,t)}),d.jsxs("td",{children:[d.jsxs("span",{children:[i.sources.length," ",i.sources.length===1?"source":"sources"]}),d.jsx(aU,{sources:i.sources,search:t})]})]},i.label))})]})})]}),d.jsx(iU,{comparison:e,search:t})]})}function rU({error:e,search:t}){const n=[{label:"Error code",value:e.code},{label:"HTTP status",value:e.httpStatus},{label:"Request",value:[e.method,e.endpoint].filter(Boolean).join(" ")||void 0},{label:"Source",value:e.source},{label:"Timestamp",value:e.timestamp},{label:"Request ID",value:e.requestId},{label:"Client request ID",value:e.clientRequestId}].filter(a=>!!a.value);return d.jsxs("div",{className:"maester-error",children:[d.jsx("p",{className:"maester-error__summary",children:kh(e.message,t)}),n.length>0&&d.jsx("dl",{className:"maester-error__facts",children:n.map(a=>d.jsxs("div",{children:[d.jsx("dt",{children:a.label}),d.jsx("dd",{children:kh(a.value,t)})]},a.label))}),d.jsxs("details",{className:"maester-error__raw",children:[d.jsx("summary",{children:"Technical details"}),d.jsx("pre",{children:kh(e.raw,t)})]})]})}function kh(e,t){if(!t)return e;const n=e.toLocaleLowerCase("en-US"),a=[];let i=0,r=n.indexOf(t,i);for(;r>=0;)r>i&&a.push(e.slice(i,r)),a.push(d.jsx("mark",{children:e.slice(r,r+t.length)},`${r}-${i}`)),i=r+t.length,r=n.indexOf(t,i);return i<e.length&&a.push(e.slice(i)),a}function oU({sheets:e,search:t="",heading:n,sections:a=[],showSheetTitles:i=!0,sheetTitle:r,sheetSubtitle:c,rowHighlighted:l,rowTone:f,resizableTables:T=!1}){if(!e.length&&!a.length)return d.jsx("div",{className:"linked-results-empty",children:"No matching result file found automatically."});const p=e.find(m=>m.resultVariantComparison)?.resultVariantComparison;return d.jsxs("div",{className:"linked-results",children:[n&&!p&&d.jsx("h3",{className:"linked-results-heading",children:n}),a.map(m=>d.jsxs("section",{className:"result-block",children:[d.jsx("h4",{className:"result-block__title",children:m.title}),m.diagnostic?d.jsx(rU,{error:m.diagnostic,search:t}):d.jsx(Eu,{value:m.value,search:t,resizableTables:T})]},m.title)),p&&d.jsx(sU,{comparison:p,search:t}),e.map((m,g)=>{if(p&&(m.resultVariantComparison||m.name==="Source references"))return null;const S=i?r?.(m)??m.name:void 0,x=g>0&&r?r(e[g-1]):void 0,y=c?.(m),w=m.analysis.headers.filter(C=>m.analysis.records.some(k=>k.fields.find(E=>E.label===C)?.value));return d.jsxs("section",{className:"result-block",children:[S&&S!==x&&d.jsx("h4",{className:"result-block__title",children:S}),y&&d.jsx("h5",{className:"result-block__subtitle",children:y}),m.resultPreamble&&d.jsx("p",{className:"result-block__preamble",children:d.jsx(ia,{value:m.resultPreamble,search:t})}),d.jsx("div",{className:"rich-text-table-wrap",children:d.jsx(Y6,{enabled:T,headers:w,className:`rich-text-table${m.resultEmphasisColumns?" result-evidence-table":""}`,children:m.analysis.records.map(C=>{const k=f?.(C);return d.jsx("tr",{className:k?`rich-text-table-row--${k}`:C.highlighted||l?.(C)?"rich-text-table-row--highlight":void 0,children:w.map(E=>{const O=C.fields.find(N=>N.label===E)?.value??"";return d.jsx("td",{className:m.resultEmphasisColumns?.includes(E)?"result-evidence-difference":void 0,children:d.jsx(ia,{value:O,search:t,label:E})},`${C.id}-${E}`)})},C.id)})})})]},m.id)})]})}const e7="result-dock-slot",cU=46,lU=80,m1=34,uU=12;function dU(e,t){const n=Math.max(0,e-1);return Math.min(n*m1,Math.max(0,t))}function TU(e,t,n,a=0){return{left:Math.max(0,e-t-lU),top:Math.min(a+cU,n)}}function fU(e){return e.map(t=>t.detached||t.minimized?t:{...t,minimized:!0})}function Au(e,t){return e.find(a=>a.recordId===t)?e.map(a=>a.recordId===t?a.minimized?{...a,minimized:!1,detached:!1}:a:a.detached||a.minimized?a:{...a,minimized:!0}):e}function hU(e,t){return e.map(n=>n.recordId===t?{...n,minimized:!0,detached:!1}:n)}function pU(e,t){const n=e.find(a=>a.recordId===t);return n?n.minimized?Au(e,t):hU(e,t):e}function mU(e,t){return e.map(n=>n.recordId===t&&!n.minimized&&!n.detached?{...n,detached:!0}:n)}const Nc=440,ky=220,Ay=" – ",Ah=14,Ry=28,du=8,gU=124,vU=["n","s","e","w","ne","nw","se","sw"];function xU(e){const t=e.indexOf(Ay);return t<0?{badge:e.trim(),name:""}:{badge:e.slice(0,t).trim(),name:e.slice(t+Ay.length).trim()}}function Dy(e){return e.match(/\(([^)]+)\)/)?.[1]??e.replace(/^results?\s*/i,"").trim()}function t7(){return d.jsxs("svg",{viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round",children:[d.jsx("rect",{x:"3.5",y:"3.5",width:"7.5",height:"7.5",rx:"1"}),d.jsx("rect",{x:"13",y:"3.5",width:"7.5",height:"7.5",rx:"1"}),d.jsx("rect",{x:"3.5",y:"13",width:"7.5",height:"7.5",rx:"1"}),d.jsx("rect",{x:"13",y:"13",width:"7.5",height:"7.5",rx:"1"})]})}function n7({id:e,title:t,sheets:n,toolId:a,sections:i=[],color:r,zIndex:c,offset:l,search:f,onActivate:T,onClose:p,onOpenRecord:m,actionLabel:g="To Report",actionTitle:S="Jump to this finding’s record",minimized:x=!1,dimmed:y=!1,onToggleMinimize:w,detached:C=!1,onDetach:k,clusterIndex:E,isClusterBottom:O=!1,clusterCount:N=0,clusterPosition:B,clusterWidth:A,isClusterTop:z=!1,onMoveCluster:P,onResizeClusterWidth:K,bookmarked:I=!1,onToggleBookmark:L,allClusterBookmarked:le=!1,onBookmarkCluster:ue,onCloseCluster:X,onDockCluster:F}){const re=xU(t),me=Wq(a),te=Gq(a,i,n),Ce=i.filter((Pe,Me)=>!te.consumedSectionIndexes.has(Me)),ee=H.useRef(null),M=H.useRef(null),Y=H.useRef(null),Z=H.useRef(!1),[J,he]=H.useState(null),[ge,de]=H.useState(!1),fe=!x&&C,ye=(Pe,Me)=>({left:Math.max(0,(window.innerWidth-Pe)/2+l),top:Math.max(0,(window.innerHeight-Me)/2+l)}),[qe,ae]=H.useState(()=>B?{left:B.left+Ah,top:B.top}:ye(Math.min(1040,window.innerWidth*.78),Math.min(680,window.innerHeight*.76))),Ne=H.useRef(!1),Ve=(Pe,Me)=>{const Ke=ee.current,st=Ke?.offsetWidth??Math.min(1040,window.innerWidth*.78),Vt=Ke?.offsetHeight??Math.min(680,window.innerHeight*.76);return{left:Math.max(0,Math.min(Pe,window.innerWidth-st)),top:Math.max(132,Math.min(Me,window.innerHeight-Vt))}};H.useEffect(()=>{const Pe=ee.current;if(!Pe)return;const Me=new ResizeObserver(()=>ae(st=>{if(!Ne.current){Ne.current=!0;const{left:Vt,top:Xt}=ye(Pe.offsetWidth,Pe.offsetHeight);return Ve(Vt,Xt)}return Ve(st.left,st.top)}));Me.observe(Pe);const Ke=()=>ae(st=>Ve(st.left,st.top));return window.addEventListener("resize",Ke),()=>{Me.disconnect(),window.removeEventListener("resize",Ke)}},[]),H.useEffect(()=>{x&&de(!1)},[x]);const tt=Pe=>{if(Pe.target.closest("button:not(.results-cluster-handle)"))return;if(ge){T();return}const Me=ee.current?.getBoundingClientRect();Me&&(M.current={pointerId:Pe.pointerId,lastX:Pe.clientX,lastY:Pe.clientY,startLeft:x&&B?B.left:Me.left,startTop:x&&B?B.top:Me.top,detachedDuringDrag:x||fe},Pe.currentTarget.setPointerCapture(Pe.pointerId),T(),Pe.preventDefault())},We=Pe=>{const Me=M.current;if(!Me||Me.pointerId!==Pe.pointerId)return;const Ke=Pe.clientX-Me.lastX,st=Pe.clientY-Me.lastY;Me.lastX=Pe.clientX,Me.lastY=Pe.clientY,x&&B&&P?P(Ke,st):Me.detachedDuringDrag?ae(Vt=>Ve(Vt.left+Ke,Vt.top+st)):(Me.detachedDuringDrag=!0,k?.(),ae(Ve(Me.startLeft+Ke,Me.startTop+st)))},Le=Pe=>{M.current?.pointerId===Pe.pointerId&&(M.current=null,Pe.currentTarget.hasPointerCapture(Pe.pointerId)&&Pe.currentTarget.releasePointerCapture(Pe.pointerId))},_e=Pe=>{if(!Pe.target.closest("button")){if(Z.current){Z.current=!1;return}if(x){w?.();return}de(Me=>!Me),T()}},Xe=Pe=>{!ge||Pe.target.closest("button")||(Z.current=!0,de(!1),T())},pt=Pe=>Me=>{const Ke=ee.current?.getBoundingClientRect();Ke&&(Y.current={pointerId:Me.pointerId,dir:Pe,startX:Me.clientX,startY:Me.clientY,startLeft:Ke.left,startTop:Ke.top,startWidth:Ke.width,startHeight:Ke.height},ae({left:Ke.left,top:Ke.top}),he({width:Ke.width,height:Ke.height}),fe||k?.(),Me.currentTarget.setPointerCapture(Me.pointerId),T(),Me.preventDefault())},Pt=Pe=>Me=>{if(!B||!K)return;const Ke=A??Math.min(760,Math.max(440,window.innerWidth*.76));Y.current={pointerId:Me.pointerId,dir:Pe,startX:Me.clientX,startY:Me.clientY,startLeft:B.left,startTop:B.top,startWidth:Ke,startHeight:m1},Me.currentTarget.setPointerCapture(Me.pointerId),T(),Me.preventDefault()},Kt=Pe=>{const Me=Y.current;if(!Me||Me.pointerId!==Pe.pointerId)return;const Ke=Pe.clientX-Me.startX,st=Pe.clientY-Me.startY;let{startLeft:Vt,startTop:Xt,startWidth:Fn,startHeight:Sa}=Me;if(x&&K&&(Me.dir==="e"||Me.dir==="w")){if(Me.dir==="e"){const Zn=Math.max(Nc,Math.min(Me.startWidth+Ke,window.innerWidth-Me.startLeft-10));K(Zn)}else{const Zn=Me.startWidth-Nc,ba=Math.max(-Me.startLeft,Math.min(Ke,Zn)),Wn=Me.startWidth-ba;K(Wn,ba)}return}Me.dir.includes("e")&&(Fn=Math.max(Nc,Math.min(Me.startWidth+Ke,window.innerWidth-Me.startLeft))),Me.dir.includes("s")&&(Sa=Math.max(ky,Math.min(Me.startHeight+st,window.innerHeight-Me.startTop))),Me.dir.includes("w")&&(Fn=Math.max(Nc,Math.min(Me.startWidth-Ke,Me.startLeft+Me.startWidth)),Vt=Me.startLeft+Me.startWidth-Fn),Me.dir.includes("n")&&(Sa=Math.max(ky,Math.min(Me.startHeight-st,Me.startTop+Me.startHeight)),Xt=Me.startTop+Me.startHeight-Sa),ae({left:Vt,top:Xt}),he({width:Fn,height:Sa})},Dt=Pe=>{Y.current?.pointerId===Pe.pointerId&&(Y.current=null,Pe.currentTarget.hasPointerCapture(Pe.pointerId)&&Pe.currentTarget.releasePointerCapture(Pe.pointerId))},dt=!ge&&!fe&&B!==void 0&&E!==void 0,jt=!x&&!dt,Gt=A??Math.min(760,Math.max(440,window.innerWidth*.76)),ln=J?J.width:void 0,Et=J?J.height:void 0,_t=document.querySelector(".topbar")?.getBoundingClientRect().bottom??gU,pe=Math.max(0,_t+du),He=Math.max(0,window.innerWidth-du*2),Je=Math.max(0,window.innerHeight-pe-du),rt=ge?du:dt?x?B.left:B.left+Ah:qe.left,Ye=ge?pe:dt?B.top+E*m1:qe.top,mt=Math.max(0,window.innerWidth-rt-Ry),Qe=Math.max(0,window.innerHeight-Ye-Ry),qt=dt&&!x?dU(N,Math.max(0,window.innerHeight-Ye-uU)):0,ot={left:rt,top:Ye,...ge?{width:He,height:Je}:{},...dt?{width:ln&&!x?ln:x?Gt:Math.max(400,Gt-Ah)}:{},...ln&&!x&&!ge?{width:ln}:{},...Et&&!x&&!ge?{height:Et}:{},minWidth:Math.min(Nc,mt),...qt>0?{minHeight:qt}:{},maxWidth:ge?He:mt,maxHeight:ge?Je:Math.max(Qe,qt),zIndex:x?c+(E??0):c+300,"--result-color":r};return d.jsxs("section",{ref:ee,className:`results-window${x?" is-minimized":""}${ge?" is-maximized":""}${O?" is-cluster-bottom":""}${y?" is-dimmed":""}`,style:ot,role:"dialog","aria-modal":"false","aria-label":t,onPointerDown:T,children:[z&&d.jsxs("div",{className:"results-cluster-bar",onPointerDown:tt,onPointerMove:We,onPointerUp:Le,onPointerCancel:Le,children:[d.jsx("button",{className:"results-cluster-slot",type:"button",onClick:F,disabled:!F,title:"Results in die Filterzeile einklappen","aria-label":"Results in die Filterzeile einklappen","aria-expanded":"true",children:d.jsx(t7,{})}),d.jsx("span",{className:"results-cluster-total","aria-label":`${N} Results im Verbund`,children:N}),d.jsxs("span",{className:"results-cluster-bar-actions",children:[ue&&d.jsx("button",{className:`results-cluster-bookmark${le?" is-bookmarked":""}`,type:"button",title:le?"Alle minimierten Bookmarks entfernen":"Alle minimierten Results im Cluster bookmarken","aria-label":le?"Alle minimierten Bookmarks entfernen":"Alle minimierten Results im Cluster bookmarken",onClick:ue,children:d.jsx(Qu,{filled:le,size:14})}),X&&d.jsx("button",{className:"results-cluster-close",type:"button",onClick:X,title:"Alle Results schliessen","aria-label":"Alle Results schliessen",children:d.jsx("svg",{viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",children:d.jsx("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),d.jsxs("header",{className:"results-window-head",onClick:Xe,onDoubleClick:_e,onPointerDown:tt,onPointerMove:We,onPointerUp:Le,onPointerCancel:Le,children:[d.jsxs("h2",{id:`${e}-title`,title:re.name,children:[d.jsxs("span",{className:"results-window-result-summary","aria-label":"Results "+Dy(re.badge),children:[w?d.jsx("button",{className:"results-window-toggle",type:"button",onClick:w,title:x?"Result wiederherstellen":"Result minimieren","aria-label":x?"Result wiederherstellen":"Result minimieren","aria-expanded":!x,children:d.jsx(vn,{direction:x?"right":"down"})}):d.jsx("span",{className:"results-window-toggle-icon","aria-hidden":"true",children:d.jsx(vn,{direction:x?"right":"down"})}),d.jsx("span",{children:Dy(re.badge)})]}),d.jsx("span",{className:"results-window-name",children:re.name})]}),d.jsxs("div",{className:"results-window-actions",children:[L&&d.jsx("button",{className:`results-window-bookmark${I?" is-bookmarked":""}`,type:"button",onClick:L,title:I?"Bookmark entfernen":"Datensatz bookmarken","aria-label":I?"Bookmark entfernen":"Datensatz bookmarken",children:d.jsx(Qu,{filled:I,size:14})}),m&&d.jsx("button",{className:"btn results-window-action",type:"button",onClick:m,title:S,children:g}),p&&d.jsx("button",{className:"results-window-close",type:"button",onClick:p,title:"Close","aria-label":"Close results window",children:d.jsx("svg",{viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",children:d.jsx("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),d.jsx("div",{className:"results-window-body",children:d.jsx(oU,{sheets:n,search:f,heading:re.name,sections:Ce,showSheetTitles:me,sheetTitle:Pe=>q6(a,Pe.name),sheetSubtitle:Pe=>te.tableTitles.get(Pe.id),rowHighlighted:Pe=>Vq(a,Pe),rowTone:Pe=>Hq(a,Pe),resizableTables:jt})}),x&&K?d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"results-window-resize results-window-resize-w",onPointerDown:Pt("w"),onPointerMove:Kt,onPointerUp:Dt,onPointerCancel:Dt}),d.jsx("span",{className:"results-window-resize results-window-resize-e",onPointerDown:Pt("e"),onPointerMove:Kt,onPointerUp:Dt,onPointerCancel:Dt})]}):!x&&!ge?vU.map(Pe=>d.jsx("span",{className:`results-window-resize results-window-resize-${Pe}`,onPointerDown:pt(Pe),onPointerMove:Kt,onPointerUp:Dt,onPointerCancel:Dt},Pe)):null]})}const yU=H.memo(function({records:t,raw:n,filtered:a,search:i}){const r=H.useMemo(()=>a?t.map(c=>[`# Record ${c.index+1}`,...c.fields.filter(l=>l.value).map(l=>`${l.label}: ${l.value}`)].join(`
|
||
`)).join(`
|
||
|
||
`):n,[a,n,t]);return d.jsx("div",{className:"viewer-scroll",children:d.jsx("pre",{className:"raw-view",children:Ot(r,i)})})}),SU=78,Iy=358,bU=223,Bc=12,Ny=20,wU=bU+Bc,Rh=["#7c3aed","#059669","#dc2626","#2563eb","#ea580c","#0d9488","#be185d","#16a34a","#d946ef","#b45309","#4f46e5","#ca8a04","#0369a1","#9333ea","#65a30d","#475569"];function CU(){const e=ca(),{dataset:t,activeSheet:n,view:a,setView:i,search:r,titleColumn:c,selectedRecordId:l,setSelectedRecord:f,reviews:T,updateReview:p}=e,[m,g]=H.useState([]),[S,x]=H.useState(null),[y,w]=H.useState(760),[C,k]=H.useState(!1),[E,O]=H.useState(null),[N,B]=H.useState(()=>({width:window.innerWidth,height:window.innerHeight})),A=H.useRef(null),[z,P]=H.useState(0),K=H.useRef(2100),I=bd(),L=H.useMemo(()=>m.filter(pe=>pe.minimized&&!pe.detached),[m]),le=H.useMemo(()=>m.filter(pe=>!pe.detached),[m]),ue=Math.min(y,Math.max(0,N.width-12)),X=Math.max(m1,L.length*m1),F=Math.max(0,N.width-ue),re=Math.max(0,N.height-X-12),me=H.useMemo(()=>TU(N.width,ue,re,z),[ue,re,N.width,z]),te=me.top,Ce=S??me,ee={left:Math.max(0,Math.min(Ce.left,F)),top:Math.max(te,Math.min(Ce.top,re))},M=H.useMemo(()=>new Map(m.map(pe=>[pe.recordId,pe.color])),[m]),Y=H.useRef(null),[Z,J]=H.useState(1);H.useLayoutEffect(()=>{const pe=Y.current;if(!pe||a!=="columns")return;const He=()=>{const rt=pe.clientWidth-Ny*2;pe.clientWidth>0&&J(Math.max(1,Math.floor((rt+Bc)/(Iy+Bc))))};He();const Je=new ResizeObserver(He);return Je.observe(pe),()=>Je.disconnect()},[a,n,t]);const he=Math.ceil(I.length/Z),ge=xp(he,wU,2),de=H.useCallback(pe=>{if(Y.current=pe,ge.containerRef(pe),pe&&pe.clientWidth>0){const He=pe.clientWidth-Ny*2;J(Math.max(1,Math.floor((He+Bc)/(Iy+Bc))))}},[ge.containerRef]),fe=xp(I.length,SU,8);if(H.useEffect(()=>{if(a!=="records")return;const pe=I.findIndex(He=>He.id===l);pe>=0&&fe.scrollToIndex(pe)},[a,l]),H.useEffect(()=>{const pe=()=>B({width:window.innerWidth,height:window.innerHeight});return window.addEventListener("resize",pe),()=>window.removeEventListener("resize",pe)},[]),H.useLayoutEffect(()=>{const pe=A.current;if(!pe)return;const He=()=>P(pe.getBoundingClientRect().top);He();const Je=new ResizeObserver(He);return Je.observe(pe.parentElement??pe),window.addEventListener("resize",He),()=>{Je.disconnect(),window.removeEventListener("resize",He)}},[n,t,a]),H.useEffect(()=>{a==="records"&&x(null)},[a]),H.useEffect(()=>{a==="records"&&g(pe=>Au(pe,l))},[a,l]),H.useEffect(()=>O(document.getElementById(e7)),[]),H.useEffect(()=>{le.length||k(!1)},[le.length]),!t||!n)return d.jsx(N6,{});const ye=pe=>c&&pe.fields.find(He=>He.label===c)?.value||pe.title,qe=I.find(pe=>pe.id===l)??I[0],ae=n.toolId??t.profileId,Ne=pe=>$6(pe,t.sheets,n.id,ae),Ve=pe=>wd(pe,n.toolId??t.profileId),tt=pe=>Am(pe,n.toolId??t.profileId),We=pe=>Sd("result-links",()=>Ne(pe).length>0||tt(pe).length>0),Le=pe=>g(He=>He.map(Je=>Je.recordId===pe?{...Je,zIndex:++K.current}:Je)),_e=pe=>{const He=Ne(pe),Je=tt(pe),rt=oa(pe,ae);if(!He.length&&!Je.length)return;k(!1);const Ye=He.reduce((mt,Qe)=>mt+Qe.analysis.records.length,0);g(mt=>{if(mt.some(ot=>ot.recordId===pe.id))return mt.filter(ot=>ot.recordId!==pe.id);const Qe=new Set(mt.map(ot=>ot.color)),qt=Rh.find(ot=>!Qe.has(ot))??Rh[mt.length%Rh.length];return[...fU(mt),{recordId:pe.id,toolId:rt,title:He.length?`Results (${Ye.toLocaleString("en-US")}) – ${ye(pe)}`:`Result – ${ye(pe)}`,sheets:He,sections:Je,color:qt,zIndex:++K.current,minimized:!1,detached:!1}]})},Xe=pe=>M.get(pe),pt=pe=>{m.some(He=>He.recordId===pe&&!He.minimized)&&x(me),g(He=>pU(He,pe))},Pt=pe=>{const He=!!T[pe]?.include;p(pe,{include:!He})},Kt=()=>{const pe=L.length>0&&L.every(He=>!!T[He.recordId]?.include);L.forEach(He=>{p(He.recordId,{include:!pe})})},Dt=pe=>{f(pe),g(He=>Au(He,pe)),i("records")},dt={gridTemplateColumns:`repeat(${Z}, var(--tile-content-width))`},jt={gridColumn:"1 / -1",height:ge.paddingTop},Gt={gridColumn:"1 / -1",height:ge.paddingBottom},ln={height:fe.paddingTop},Et={height:fe.paddingBottom},_t=pe=>({"--result-color":pe});return d.jsxs(d.Fragment,{children:[d.jsx("span",{ref:A,className:"results-parking-anchor","aria-hidden":"true"}),I.length?a==="columns"?d.jsx("div",{className:"viewer-scroll tile-view-scroll",ref:de,children:d.jsxs("div",{className:"tile-grid",style:dt,children:[ge.paddingTop>0&&d.jsx("div",{"aria-hidden":"true",style:jt}),I.slice(ge.startIndex*Z,ge.endIndex*Z).map(pe=>d.jsx(W6,{record:pe,title:ye(pe),bookmarked:!!T[pe.id]?.include,resultColor:Xe(pe.id),toolId:n?.toolId??t?.profileId,search:r,onOpen:()=>{f(pe.id),i("records")},onBookmark:()=>p(pe.id,{include:!T[pe.id]?.include}),onResults:We(pe)?()=>_e(pe):void 0},pe.id)),ge.paddingBottom>0&&d.jsx("div",{"aria-hidden":"true",style:Gt})]})}):a==="records"&&qe?d.jsxs("div",{className:"records-layout",children:[d.jsxs("div",{className:"record-list",ref:fe.containerRef,children:[fe.paddingTop>0&&d.jsx("div",{"aria-hidden":"true",style:ln}),I.slice(fe.startIndex,fe.endIndex).map(pe=>d.jsx(Yq,{record:pe,title:ye(pe),bookmarked:!!T[pe.id]?.include,selected:pe.id===qe.id,toolId:n?.toolId??t?.profileId,search:r,onOpen:()=>f(pe.id)},pe.id)),fe.paddingBottom>0&&d.jsx("div",{"aria-hidden":"true",style:Et})]}),d.jsx(tU,{record:qe,title:ye(qe),review:T[qe.id],previousPolicyReviews:i6(qe,T),linkedSheets:Ne(qe),resultReferences:[...ed(qe),...G6(qe)].filter(pe=>pe.trim()!==(Ve(qe)??"").trim()),search:r,position:I.indexOf(qe),recordCount:I.length,toolId:n?.toolId??t?.profileId,onPrevious:()=>f(I[Math.max(0,I.indexOf(qe)-1)].id),onNext:()=>f(I[Math.min(I.length-1,I.indexOf(qe)+1)].id),onReview:pe=>p(qe.id,pe),onRiskAcceptance:qe.findingOccurrenceId&&e.backendStatus==="connected"?pe=>e.recordRiskAcceptance(qe.id,pe):void 0,onResults:We(qe)?()=>_e(qe):void 0,resultsOpen:!!Xe(qe.id),resultColor:Xe(qe.id)})]}):a==="table"?d.jsx(Bq,{sheet:n,records:I,search:r}):d.jsx(yU,{records:I,raw:n.raw||t.rawText,filtered:!!(r||e.actionOnly||e.statusFilter!=="all"||Object.keys(e.facetFilters).length),search:r}):d.jsxs("div",{className:"work-filter-empty",role:"status",children:[d.jsx("h3",{children:"No results match the current filters"}),d.jsxs("p",{children:["The selected sheet contains ",n.analysis.records.length.toLocaleString("en-US")," saved results. GPO comparisons awaiting review or re-evaluation are available under Result Status: All."]}),d.jsx("button",{className:"btn",type:"button",onClick:()=>{const pe=e.facetFilters["provenance:source-scan"];e.resetFilters(),e.setStatusFilter("all"),e.setActionOnly(!1),e.setSearch(""),e.setPathFindingIds([]),pe&&e.setFacetFilter("provenance:source-scan",pe)},children:"Show all results for this source"})]}),C&&E&&vd.createPortal(d.jsxs("div",{className:"result-dock",children:[d.jsx("button",{className:"result-dock-toggle",type:"button",onClick:()=>k(!1),title:"Results wieder aufklappen","aria-label":"Results wieder aufklappen","aria-expanded":"false",children:d.jsx(t7,{})}),d.jsx("span",{className:"result-dock-count",children:le.length}),d.jsx("span",{className:"result-dock-marks",children:le.map(pe=>d.jsx("button",{className:"result-dock-mark",type:"button",style:_t(pe.color),title:pe.title,"aria-label":pe.title,onClick:()=>{k(!1),g(He=>Au(He,pe.recordId))},children:d.jsx(vn,{direction:"right"})},pe.recordId))})]}),E),m.map((pe,He)=>{if(C&&!pe.detached)return null;const Je=pe.minimized?L.findIndex(Qe=>Qe.recordId===pe.recordId):-1,rt=pe.minimized?Je:0,Ye=pe.minimized&&Je===0,mt=pe.minimized&&Je===L.length-1;return d.jsx(n7,{id:`results-${pe.recordId}`,title:pe.title,sheets:pe.sheets,toolId:pe.toolId,sections:pe.sections,color:pe.color,zIndex:pe.zIndex,offset:He*24,search:r,onActivate:()=>Le(pe.recordId),onClose:()=>g(Qe=>Qe.filter(qt=>qt.recordId!==pe.recordId)),onOpenRecord:()=>Dt(pe.recordId),actionLabel:"To Report",actionTitle:"Jump to this finding's record in the Report",minimized:pe.minimized,onToggleMinimize:()=>pt(pe.recordId),detached:pe.detached,onDetach:()=>g(Qe=>mU(Qe,pe.recordId)),clusterIndex:rt>=0?rt:void 0,isClusterBottom:mt,clusterCount:le.length,clusterPosition:ee,clusterWidth:ue,isClusterTop:Ye,onMoveCluster:(Qe,qt)=>x(ot=>{const Pe=ot??me;return{left:Math.max(0,Math.min(Pe.left+Qe,F)),top:Math.max(te,Math.min(Pe.top+qt,re))}}),onResizeClusterWidth:(Qe,qt)=>{w(Qe),qt&&x(ot=>{const Pe=ot??me;return{...Pe,left:Math.max(0,Pe.left+qt)}})},bookmarked:!!T[pe.recordId]?.include,onToggleBookmark:()=>Pt(pe.recordId),allClusterBookmarked:L.length>0&&L.every(Qe=>!!T[Qe.recordId]?.include),onBookmarkCluster:Kt,onCloseCluster:()=>g(Qe=>Qe.filter(qt=>qt.detached)),onDockCluster:()=>k(!0)},pe.recordId)})]})}const nd=7,Sp="ASSESSOR.view-bookmarks.v1",Dh=5e3;function EU(e){return[...new Set(e.nodeIds.filter(t=>t.startsWith("finding:")).map(t=>t.slice(8)).filter(Boolean))]}function kU(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{...n.values?{values:[...n.values]}:{},...n.minimum!==void 0?{minimum:n.minimum}:{},...n.maximum!==void 0?{maximum:n.maximum}:{}}]))}function AU(e){return{activeSheetId:e.activeSheetId,view:e.view,search:e.search,sortColumn:e.sortColumn,sortDirection:e.sortDirection,titleColumn:e.titleColumn,statusFilter:e.statusFilter,facetFilters:kU(e.facetFilters),pathFindingIds:[...e.pathFindingIds],actionOnly:e.actionOnly,selectedRecordId:e.selectedRecordId}}function RU(e){return e==="records"||e==="columns"||e==="table"||e==="raw"}function DU(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t={};for(const[n,a]of Object.entries(e)){if(!a||typeof a!="object"||Array.isArray(a))return;const i=a;if(i.values!==void 0&&(!Array.isArray(i.values)||!i.values.every(r=>typeof r=="string"))||i.minimum!==void 0&&typeof i.minimum!="string"||i.maximum!==void 0&&typeof i.maximum!="string")return;t[n]={...i.values?{values:[...i.values]}:{},...i.minimum!==void 0?{minimum:i.minimum}:{},...i.maximum!==void 0?{maximum:i.maximum}:{}}}return t}function IU(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e,n=t.view,a=DU(n?.facetFilters),i=n?.pathFindingIds===void 0?[]:Array.isArray(n.pathFindingIds)&&n.pathFindingIds.every(l=>typeof l=="string")?[...new Set(n.pathFindingIds.filter(Boolean))].slice(0,Dh):void 0;if(typeof t.id!="string"||typeof t.projectId!="string"||typeof t.name!="string"||!t.name.trim()||typeof t.createdAt!="string"||!n||typeof n.activeSheetId!="string"||!RU(n.view)||typeof n.search!="string"||typeof n.sortColumn!="string"||n.sortDirection!=="asc"&&n.sortDirection!=="desc"||typeof n.titleColumn!="string"||typeof n.statusFilter!="string"||a===void 0||i===void 0||typeof n.actionOnly!="boolean"||typeof n.selectedRecordId!="string")return;const r=t.kind===void 0?void 0:t.kind;if(r!==void 0&&r!=="path")return;let c;if(r==="path"){const l=t.path;if(!l||!Array.isArray(l.activeNodeIds)||!Array.isArray(l.nodeIds)||!l.activeNodeIds.every(p=>typeof p=="string")||!l.nodeIds.every(p=>typeof p=="string"))return;const f=[...new Set(l.activeNodeIds.filter(Boolean))].slice(0,Dh),T=[...new Set(l.nodeIds.filter(Boolean))].slice(0,Dh);if(!f.length||f.some(p=>!T.includes(p)))return;c={activeNodeIds:f,nodeIds:T}}return{id:t.id,projectId:t.projectId,name:t.name.trim().slice(0,32),createdAt:t.createdAt,view:{...n,facetFilters:a,pathFindingIds:i},...r==="path"&&c?{kind:r,path:c}:{}}}function a7(e){if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(IU).filter(n=>!!n):[]}catch{return[]}}function NU(e,t){return a7(e.get(Sp)).filter(n=>n.projectId===t).slice(0,nd)}function OU(e,t,n){const a=a7(e.get(Sp)).filter(r=>r.projectId!==t),i=n.filter(r=>r.projectId===t).slice(0,nd);e.set(Sp,JSON.stringify([...a,...i]))}const Oy=new bb;function MU(){return globalThis.crypto?.randomUUID?.()??`view-${Date.now().toString(36)}`}function i7({mode:e="view",path:t,onApplyPathSnapshot:n}={}){const a=ca(),[i,r]=H.useState([]),[c,l]=H.useState(!1),[f,T]=H.useState(""),p=a.workScopeId;H.useEffect(()=>{r(p?NU(Oy,p):[]),l(!1),T("")},[p]);const m=f.trim(),g=H.useMemo(()=>i.some(E=>E.name.toLocaleLowerCase("de-DE")===m.toLocaleLowerCase("de-DE")),[i,m]),S=i.length>=nd,x=e!=="path"||!!t?.activeNodeIds.length,y=!!(m&&!g&&!S&&p&&x),w=E=>{r(E),OU(Oy,p,E)},C=E=>{if(E.preventDefault(),!y)return;const O={id:MU(),projectId:p,name:m.slice(0,32),createdAt:new Date().toISOString(),view:AU(a),...e==="path"&&t?{kind:"path",path:{activeNodeIds:[...t.activeNodeIds],nodeIds:[...t.nodeIds]}}:{}};w([...i,O]),T(""),l(!1)},k=E=>{w(i.filter(O=>O.id!==E))};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"view-bookmark-bar",role:"group","aria-label":"View bookmarks",children:[d.jsx("button",{className:"btn primary view-bookmark-create",type:"button",disabled:!a.dataset||!p||S||!x,title:S?`Maximum of ${nd} snapshots reached`:e==="path"&&!x?"Select at least one graph point":e==="path"?"Save active graph points and their direct neighbours":"Bookmark current view",onClick:()=>l(!0),children:e==="path"?"Path Snapshot":"Snapshot"}),d.jsx("div",{className:"view-bookmark-list",children:i.map(E=>d.jsxs("span",{className:`view-bookmark-item${E.kind==="path"?" is-path":""}`,children:[d.jsx("button",{className:"btn view-bookmark-entry",type:"button",title:`Open ${E.kind==="path"?"path snapshot":"view bookmark"}: ${E.name}`,onClick:()=>{a.applyViewBookmark(E.view),E.kind==="path"&&n?.(E)},children:E.name}),d.jsx("button",{className:"view-bookmark-remove",type:"button","aria-label":`Delete ${E.kind==="path"?"path snapshot":"view bookmark"}: ${E.name}`,title:`Delete ${E.name}`,onClick:()=>k(E.id),children:"x"})]},E.id))})]}),c&&d.jsx("div",{className:"view-bookmark-dialog-backdrop",role:"presentation",onMouseDown:()=>l(!1),children:d.jsxs("form",{className:"popover view-bookmark-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"view-bookmark-dialog-title",onSubmit:C,onMouseDown:E=>E.stopPropagation(),children:[d.jsx("strong",{id:"view-bookmark-dialog-title",children:e==="path"?"Name path snapshot":"Name view bookmark"}),d.jsx("label",{htmlFor:"view-bookmark-name",children:e==="path"?"Path snapshot name":"Bookmark name"}),d.jsx("input",{id:"view-bookmark-name",className:"input",autoFocus:!0,maxLength:32,value:f,onChange:E=>T(E.target.value)}),g&&d.jsx("small",{role:"alert",children:"This name is already in use."}),d.jsxs("footer",{children:[d.jsx("button",{className:"btn",type:"button",onClick:()=>l(!1),children:"Cancel"}),d.jsx("button",{className:"btn primary",type:"submit",disabled:!y,children:"Save"})]})]})})]})}const jU="18.1",FU=["Reconnaissance","Resource Development","Initial Access","Execution","Persistence","Privilege Escalation","Defense Evasion","Credential Access","Discovery","Lateral Movement","Collection","Command and Control","Exfiltration","Impact"],LU=JSON.parse('[{"id":"T1001","name":"Data Obfuscation","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1001","sourceCount":13},{"id":"T1001.001","name":"Data Obfuscation: Junk Data","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1001","url":"https://attack.mitre.org/techniques/T1001/001","sourceCount":17},{"id":"T1001.002","name":"Data Obfuscation: Steganography","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1001","url":"https://attack.mitre.org/techniques/T1001/002","sourceCount":13},{"id":"T1001.003","name":"Data Obfuscation: Protocol or Service Impersonation","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1001","url":"https://attack.mitre.org/techniques/T1001/003","sourceCount":22},{"id":"T1003","name":"OS Credential Dumping","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1003","sourceCount":20},{"id":"T1003.001","name":"OS Credential Dumping: LSASS Memory","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/001","sourceCount":75},{"id":"T1003.002","name":"OS Credential Dumping: Security Account Manager","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/002","sourceCount":33},{"id":"T1003.003","name":"OS Credential Dumping: NTDS","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/003","sourceCount":24},{"id":"T1003.004","name":"OS Credential Dumping: LSA Secrets","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/004","sourceCount":19},{"id":"T1003.005","name":"OS Credential Dumping: Cached Domain Credentials","tactics":["Credential Access"],"platforms":["Linux","Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/005","sourceCount":8},{"id":"T1003.006","name":"OS Credential Dumping: DCSync","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/006","sourceCount":8},{"id":"T1003.007","name":"OS Credential Dumping: Proc Filesystem","tactics":["Credential Access"],"platforms":["Linux"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/007","sourceCount":3},{"id":"T1003.008","name":"OS Credential Dumping: /etc/passwd and /etc/shadow","tactics":["Credential Access"],"platforms":["Linux"],"parent":"T1003","url":"https://attack.mitre.org/techniques/T1003/008","sourceCount":2},{"id":"T1005","name":"Data from Local System","tactics":["Collection"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1005","sourceCount":218},{"id":"T1006","name":"Direct Volume Access","tactics":["Defense Evasion"],"platforms":["Network Devices","Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1006","sourceCount":4},{"id":"T1007","name":"System Service Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1007","sourceCount":67},{"id":"T1008","name":"Fallback Channels","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1008","sourceCount":53},{"id":"T1010","name":"Application Window Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1010","sourceCount":35},{"id":"T1011","name":"Exfiltration Over Other Network Medium","tactics":["Exfiltration"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1011","sourceCount":0},{"id":"T1011.001","name":"Exfiltration Over Other Network Medium: Exfiltration Over Bluetooth","tactics":["Exfiltration"],"platforms":["Linux","Windows","macOS"],"parent":"T1011","url":"https://attack.mitre.org/techniques/T1011/001","sourceCount":1},{"id":"T1012","name":"Query Registry","tactics":["Discovery"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1012","sourceCount":118},{"id":"T1014","name":"Rootkit","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1014","sourceCount":32},{"id":"T1016","name":"System Network Configuration Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1016","sourceCount":277},{"id":"T1016.001","name":"System Network Configuration Discovery: Internet Connection Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1016","url":"https://attack.mitre.org/techniques/T1016/001","sourceCount":26},{"id":"T1016.002","name":"System Network Configuration Discovery: Wi-Fi Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1016","url":"https://attack.mitre.org/techniques/T1016/002","sourceCount":7},{"id":"T1018","name":"Remote System Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1018","sourceCount":99},{"id":"T1020","name":"Automated Exfiltration","tactics":["Exfiltration"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1020","sourceCount":29},{"id":"T1020.001","name":"Automated Exfiltration: Traffic Duplication","tactics":["Exfiltration"],"platforms":["IaaS","Network Devices"],"parent":"T1020","url":"https://attack.mitre.org/techniques/T1020/001","sourceCount":0},{"id":"T1021","name":"Remote Services","tactics":["Lateral Movement"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1021","sourceCount":7},{"id":"T1021.001","name":"Remote Services: Remote Desktop Protocol","tactics":["Lateral Movement"],"platforms":["Windows"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/001","sourceCount":59},{"id":"T1021.002","name":"Remote Services: SMB/Windows Admin Shares","tactics":["Lateral Movement"],"platforms":["Windows"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/002","sourceCount":64},{"id":"T1021.003","name":"Remote Services: Distributed Component Object Model","tactics":["Lateral Movement"],"platforms":["Windows"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/003","sourceCount":3},{"id":"T1021.004","name":"Remote Services: SSH","tactics":["Lateral Movement"],"platforms":["ESXi","Linux","macOS"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/004","sourceCount":26},{"id":"T1021.005","name":"Remote Services: VNC","tactics":["Lateral Movement"],"platforms":["Linux","Windows","macOS"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/005","sourceCount":11},{"id":"T1021.006","name":"Remote Services: Windows Remote Management","tactics":["Lateral Movement"],"platforms":["Windows"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/006","sourceCount":10},{"id":"T1021.007","name":"Remote Services: Cloud Services","tactics":["Lateral Movement"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/007","sourceCount":4},{"id":"T1021.008","name":"Remote Services: Direct Cloud VM Connections","tactics":["Lateral Movement"],"platforms":["IaaS"],"parent":"T1021","url":"https://attack.mitre.org/techniques/T1021/008","sourceCount":0},{"id":"T1025","name":"Data from Removable Media","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1025","sourceCount":24},{"id":"T1027","name":"Obfuscated Files or Information","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1027","sourceCount":152},{"id":"T1027.001","name":"Obfuscated Files or Information: Binary Padding","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/001","sourceCount":28},{"id":"T1027.002","name":"Obfuscated Files or Information: Software Packing","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/002","sourceCount":102},{"id":"T1027.003","name":"Obfuscated Files or Information: Steganography","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/003","sourceCount":29},{"id":"T1027.004","name":"Obfuscated Files or Information: Compile After Delivery","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/004","sourceCount":10},{"id":"T1027.005","name":"Obfuscated Files or Information: Indicator Removal from Tools","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/005","sourceCount":18},{"id":"T1027.006","name":"Obfuscated Files or Information: HTML Smuggling","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/006","sourceCount":3},{"id":"T1027.007","name":"Obfuscated Files or Information: Dynamic API Resolution","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/007","sourceCount":15},{"id":"T1027.008","name":"Obfuscated Files or Information: Stripped Payloads","tactics":["Defense Evasion"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/008","sourceCount":2},{"id":"T1027.009","name":"Obfuscated Files or Information: Embedded Payloads","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/009","sourceCount":23},{"id":"T1027.010","name":"Obfuscated Files or Information: Command Obfuscation","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/010","sourceCount":65},{"id":"T1027.011","name":"Obfuscated Files or Information: Fileless Storage","tactics":["Defense Evasion"],"platforms":["Linux","Windows"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/011","sourceCount":31},{"id":"T1027.012","name":"Obfuscated Files or Information: LNK Icon Smuggling","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/012","sourceCount":4},{"id":"T1027.013","name":"Obfuscated Files or Information: Encrypted/Encoded File","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/013","sourceCount":221},{"id":"T1027.014","name":"Obfuscated Files or Information: Polymorphic Code","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/014","sourceCount":1},{"id":"T1027.015","name":"Obfuscated Files or Information: Compression","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/015","sourceCount":31},{"id":"T1027.016","name":"Obfuscated Files or Information: Junk Code Insertion","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/016","sourceCount":19},{"id":"T1027.017","name":"Obfuscated Files or Information: SVG Smuggling","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1027","url":"https://attack.mitre.org/techniques/T1027/017","sourceCount":0},{"id":"T1029","name":"Scheduled Transfer","tactics":["Exfiltration"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1029","sourceCount":18},{"id":"T1030","name":"Data Transfer Size Limits","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1030","sourceCount":21},{"id":"T1033","name":"System Owner/User Discovery","tactics":["Discovery"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1033","sourceCount":231},{"id":"T1036","name":"Masquerading","tactics":["Defense Evasion"],"platforms":["Containers","ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1036","sourceCount":58},{"id":"T1036.001","name":"Masquerading: Invalid Code Signature","tactics":["Defense Evasion"],"platforms":["Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/001","sourceCount":9},{"id":"T1036.002","name":"Masquerading: Right-to-Left Override","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/002","sourceCount":5},{"id":"T1036.003","name":"Masquerading: Rename Legitimate Utilities","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/003","sourceCount":10},{"id":"T1036.004","name":"Masquerading: Masquerade Task or Service","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/004","sourceCount":90},{"id":"T1036.005","name":"Masquerading: Match Legitimate Resource Name or Location","tactics":["Defense Evasion"],"platforms":["Containers","ESXi","Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/005","sourceCount":202},{"id":"T1036.006","name":"Masquerading: Space after Filename","tactics":["Defense Evasion"],"platforms":["Linux","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/006","sourceCount":2},{"id":"T1036.007","name":"Masquerading: Double File Extension","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/007","sourceCount":5},{"id":"T1036.008","name":"Masquerading: Masquerade File Type","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/008","sourceCount":16},{"id":"T1036.009","name":"Masquerading: Break Process Trees","tactics":["Defense Evasion"],"platforms":["Linux","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/009","sourceCount":1},{"id":"T1036.010","name":"Masquerading: Masquerade Account Name","tactics":["Defense Evasion"],"platforms":["Containers","IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/010","sourceCount":7},{"id":"T1036.011","name":"Masquerading: Overwrite Process Arguments","tactics":["Defense Evasion"],"platforms":["Linux"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/011","sourceCount":1},{"id":"T1036.012","name":"Masquerading: Browser Fingerprint","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1036","url":"https://attack.mitre.org/techniques/T1036/012","sourceCount":1},{"id":"T1037","name":"Boot or Logon Initialization Scripts","tactics":["Persistence","Privilege Escalation"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1037","sourceCount":7},{"id":"T1037.001","name":"Boot or Logon Initialization Scripts: Logon Script (Windows)","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1037","url":"https://attack.mitre.org/techniques/T1037/001","sourceCount":6},{"id":"T1037.002","name":"Boot or Logon Initialization Scripts: Login Hook","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1037","url":"https://attack.mitre.org/techniques/T1037/002","sourceCount":0},{"id":"T1037.003","name":"Boot or Logon Initialization Scripts: Network Logon Script","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1037","url":"https://attack.mitre.org/techniques/T1037/003","sourceCount":0},{"id":"T1037.004","name":"Boot or Logon Initialization Scripts: RC Scripts","tactics":["Persistence","Privilege Escalation"],"platforms":["ESXi","Linux","Network Devices","macOS"],"parent":"T1037","url":"https://attack.mitre.org/techniques/T1037/004","sourceCount":7},{"id":"T1037.005","name":"Boot or Logon Initialization Scripts: Startup Items","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1037","url":"https://attack.mitre.org/techniques/T1037/005","sourceCount":1},{"id":"T1039","name":"Data from Network Shared Drive","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1039","sourceCount":13},{"id":"T1040","name":"Network Sniffing","tactics":["Credential Access","Discovery"],"platforms":["IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1040","sourceCount":27},{"id":"T1041","name":"Exfiltration Over C2 Channel","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1041","sourceCount":191},{"id":"T1046","name":"Network Service Discovery","tactics":["Discovery"],"platforms":["Containers","IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1046","sourceCount":71},{"id":"T1047","name":"Windows Management Instrumentation","tactics":["Execution"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1047","sourceCount":138},{"id":"T1048","name":"Exfiltration Over Alternative Protocol","tactics":["Exfiltration"],"platforms":["ESXi","IaaS","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1048","sourceCount":9},{"id":"T1048.001","name":"Exfiltration Over Alternative Protocol: Exfiltration Over Symmetric Encrypted Non-C2 Protocol","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1048","url":"https://attack.mitre.org/techniques/T1048/001","sourceCount":0},{"id":"T1048.002","name":"Exfiltration Over Alternative Protocol: Exfiltration Over Asymmetric Encrypted Non-C2 Protocol","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1048","url":"https://attack.mitre.org/techniques/T1048/002","sourceCount":6},{"id":"T1048.003","name":"Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1048","url":"https://attack.mitre.org/techniques/T1048/003","sourceCount":34},{"id":"T1049","name":"System Network Connections Discovery","tactics":["Discovery"],"platforms":["ESXi","IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1049","sourceCount":95},{"id":"T1052","name":"Exfiltration Over Physical Medium","tactics":["Exfiltration"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1052","sourceCount":0},{"id":"T1052.001","name":"Exfiltration Over Physical Medium: Exfiltration over USB","tactics":["Exfiltration"],"platforms":["Linux","Windows","macOS"],"parent":"T1052","url":"https://attack.mitre.org/techniques/T1052/001","sourceCount":7},{"id":"T1053","name":"Scheduled Task/Job","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["Containers","ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1053","sourceCount":1},{"id":"T1053.002","name":"Scheduled Task/Job: At","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":"T1053","url":"https://attack.mitre.org/techniques/T1053/002","sourceCount":6},{"id":"T1053.003","name":"Scheduled Task/Job: Cron","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["ESXi","Linux","macOS"],"parent":"T1053","url":"https://attack.mitre.org/techniques/T1053/003","sourceCount":16},{"id":"T1053.005","name":"Scheduled Task/Job: Scheduled Task","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1053","url":"https://attack.mitre.org/techniques/T1053/005","sourceCount":184},{"id":"T1053.006","name":"Scheduled Task/Job: Systemd Timers","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["Linux"],"parent":"T1053","url":"https://attack.mitre.org/techniques/T1053/006","sourceCount":0},{"id":"T1053.007","name":"Scheduled Task/Job: Container Orchestration Job","tactics":["Execution","Persistence","Privilege Escalation"],"platforms":["Containers"],"parent":"T1053","url":"https://attack.mitre.org/techniques/T1053/007","sourceCount":0},{"id":"T1055","name":"Process Injection","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1055","sourceCount":82},{"id":"T1055.001","name":"Process Injection: Dynamic-link Library Injection","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/001","sourceCount":66},{"id":"T1055.002","name":"Process Injection: Portable Executable Injection","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/002","sourceCount":13},{"id":"T1055.003","name":"Process Injection: Thread Execution Hijacking","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/003","sourceCount":4},{"id":"T1055.004","name":"Process Injection: Asynchronous Procedure Call","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/004","sourceCount":12},{"id":"T1055.005","name":"Process Injection: Thread Local Storage","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/005","sourceCount":2},{"id":"T1055.008","name":"Process Injection: Ptrace System Calls","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/008","sourceCount":1},{"id":"T1055.009","name":"Process Injection: Proc Memory","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/009","sourceCount":1},{"id":"T1055.011","name":"Process Injection: Extra Window Memory Injection","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/011","sourceCount":2},{"id":"T1055.012","name":"Process Injection: Process Hollowing","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/012","sourceCount":39},{"id":"T1055.013","name":"Process Injection: Process Doppelgänging","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/013","sourceCount":3},{"id":"T1055.014","name":"Process Injection: VDSO Hijacking","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/014","sourceCount":0},{"id":"T1055.015","name":"Process Injection: ListPlanting","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1055","url":"https://attack.mitre.org/techniques/T1055/015","sourceCount":1},{"id":"T1056","name":"Input Capture","tactics":["Collection","Credential Access"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1056","sourceCount":12},{"id":"T1056.001","name":"Input Capture: Keylogging","tactics":["Collection","Credential Access"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1056","url":"https://attack.mitre.org/techniques/T1056/001","sourceCount":152},{"id":"T1056.002","name":"Input Capture: GUI Input Capture","tactics":["Collection","Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1056","url":"https://attack.mitre.org/techniques/T1056/002","sourceCount":13},{"id":"T1056.003","name":"Input Capture: Web Portal Capture","tactics":["Collection","Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1056","url":"https://attack.mitre.org/techniques/T1056/003","sourceCount":5},{"id":"T1056.004","name":"Input Capture: Credential API Hooking","tactics":["Collection","Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1056","url":"https://attack.mitre.org/techniques/T1056/004","sourceCount":12},{"id":"T1057","name":"Process Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1057","sourceCount":304},{"id":"T1059","name":"Command and Scripting Interpreter","tactics":["Execution"],"platforms":["ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1059","sourceCount":43},{"id":"T1059.001","name":"Command and Scripting Interpreter: PowerShell","tactics":["Execution"],"platforms":["Windows"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/001","sourceCount":223},{"id":"T1059.002","name":"Command and Scripting Interpreter: AppleScript","tactics":["Execution"],"platforms":["macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/002","sourceCount":5},{"id":"T1059.003","name":"Command and Scripting Interpreter: Windows Command Shell","tactics":["Execution"],"platforms":["Windows"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/003","sourceCount":372},{"id":"T1059.004","name":"Command and Scripting Interpreter: Unix Shell","tactics":["Execution"],"platforms":["ESXi","Linux","Network Devices","macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/004","sourceCount":60},{"id":"T1059.005","name":"Command and Scripting Interpreter: Visual Basic","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/005","sourceCount":127},{"id":"T1059.006","name":"Command and Scripting Interpreter: Python","tactics":["Execution"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/006","sourceCount":55},{"id":"T1059.007","name":"Command and Scripting Interpreter: JavaScript","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/007","sourceCount":62},{"id":"T1059.008","name":"Command and Scripting Interpreter: Network Device CLI","tactics":["Execution"],"platforms":["Network Devices"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/008","sourceCount":2},{"id":"T1059.009","name":"Command and Scripting Interpreter: Cloud API","tactics":["Execution"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/009","sourceCount":4},{"id":"T1059.010","name":"Command and Scripting Interpreter: AutoHotKey & AutoIT","tactics":["Execution"],"platforms":["Windows"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/010","sourceCount":6},{"id":"T1059.011","name":"Command and Scripting Interpreter: Lua","tactics":["Execution"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/011","sourceCount":5},{"id":"T1059.012","name":"Command and Scripting Interpreter: Hypervisor CLI","tactics":["Execution"],"platforms":["ESXi"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/012","sourceCount":4},{"id":"T1059.013","name":"Command and Scripting Interpreter: Container CLI/API","tactics":["Execution"],"platforms":["Containers"],"parent":"T1059","url":"https://attack.mitre.org/techniques/T1059/013","sourceCount":1},{"id":"T1068","name":"Exploitation for Privilege Escalation","tactics":["Privilege Escalation"],"platforms":["Containers","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1068","sourceCount":43},{"id":"T1069","name":"Permission Groups Discovery","tactics":["Discovery"],"platforms":["Containers","IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1069","sourceCount":13},{"id":"T1069.001","name":"Permission Groups Discovery: Local Groups","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1069","url":"https://attack.mitre.org/techniques/T1069/001","sourceCount":31},{"id":"T1069.002","name":"Permission Groups Discovery: Domain Groups","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1069","url":"https://attack.mitre.org/techniques/T1069/002","sourceCount":36},{"id":"T1069.003","name":"Permission Groups Discovery: Cloud Groups","tactics":["Discovery"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1069","url":"https://attack.mitre.org/techniques/T1069/003","sourceCount":4},{"id":"T1070","name":"Indicator Removal","tactics":["Defense Evasion"],"platforms":["Containers","ESXi","Linux","Network Devices","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1070","sourceCount":31},{"id":"T1070.001","name":"Indicator Removal: Clear Windows Event Logs","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/001","sourceCount":40},{"id":"T1070.002","name":"Indicator Removal: Clear Linux or Mac System Logs","tactics":["Defense Evasion"],"platforms":["Linux","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/002","sourceCount":8},{"id":"T1070.003","name":"Indicator Removal: Clear Command History","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/003","sourceCount":11},{"id":"T1070.004","name":"Indicator Removal: File Deletion","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/004","sourceCount":296},{"id":"T1070.005","name":"Indicator Removal: Network Share Connection Removal","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/005","sourceCount":5},{"id":"T1070.006","name":"Indicator Removal: Timestomp","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/006","sourceCount":56},{"id":"T1070.007","name":"Indicator Removal: Clear Network Connection History and Configurations","tactics":["Defense Evasion"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/007","sourceCount":4},{"id":"T1070.008","name":"Indicator Removal: Clear Mailbox Data","tactics":["Defense Evasion"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/008","sourceCount":5},{"id":"T1070.009","name":"Indicator Removal: Clear Persistence","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/009","sourceCount":15},{"id":"T1070.010","name":"Indicator Removal: Relocate Malware","tactics":["Defense Evasion"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1070","url":"https://attack.mitre.org/techniques/T1070/010","sourceCount":0},{"id":"T1071","name":"Application Layer Protocol","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1071","sourceCount":16},{"id":"T1071.001","name":"Application Layer Protocol: Web Protocols","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1071","url":"https://attack.mitre.org/techniques/T1071/001","sourceCount":406},{"id":"T1071.002","name":"Application Layer Protocol: File Transfer Protocols","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1071","url":"https://attack.mitre.org/techniques/T1071/002","sourceCount":25},{"id":"T1071.003","name":"Application Layer Protocol: Mail Protocols","tactics":["Command and Control"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1071","url":"https://attack.mitre.org/techniques/T1071/003","sourceCount":26},{"id":"T1071.004","name":"Application Layer Protocol: DNS","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1071","url":"https://attack.mitre.org/techniques/T1071/004","sourceCount":53},{"id":"T1071.005","name":"Application Layer Protocol: Publish/Subscribe Protocols","tactics":["Command and Control"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1071","url":"https://attack.mitre.org/techniques/T1071/005","sourceCount":1},{"id":"T1072","name":"Software Deployment Tools","tactics":["Execution","Lateral Movement"],"platforms":["Linux","Network Devices","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1072","sourceCount":8},{"id":"T1074","name":"Data Staged","tactics":["Collection"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1074","sourceCount":8},{"id":"T1074.001","name":"Data Staged: Local Data Staging","tactics":["Collection"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1074","url":"https://attack.mitre.org/techniques/T1074/001","sourceCount":126},{"id":"T1074.002","name":"Data Staged: Remote Data Staging","tactics":["Collection"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":"T1074","url":"https://attack.mitre.org/techniques/T1074/002","sourceCount":13},{"id":"T1078","name":"Valid Accounts","tactics":["Defense Evasion","Initial Access","Persistence","Privilege Escalation"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1078","sourceCount":60},{"id":"T1078.001","name":"Valid Accounts: Default Accounts","tactics":["Defense Evasion","Initial Access","Persistence","Privilege Escalation"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":"T1078","url":"https://attack.mitre.org/techniques/T1078/001","sourceCount":7},{"id":"T1078.002","name":"Valid Accounts: Domain Accounts","tactics":["Defense Evasion","Initial Access","Persistence","Privilege Escalation"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1078","url":"https://attack.mitre.org/techniques/T1078/002","sourceCount":32},{"id":"T1078.003","name":"Valid Accounts: Local Accounts","tactics":["Defense Evasion","Initial Access","Persistence","Privilege Escalation"],"platforms":["Containers","ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1078","url":"https://attack.mitre.org/techniques/T1078/003","sourceCount":20},{"id":"T1078.004","name":"Valid Accounts: Cloud Accounts","tactics":["Defense Evasion","Initial Access","Persistence","Privilege Escalation"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1078","url":"https://attack.mitre.org/techniques/T1078/004","sourceCount":14},{"id":"T1080","name":"Taint Shared Content","tactics":["Lateral Movement"],"platforms":["Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1080","sourceCount":12},{"id":"T1082","name":"System Information Discovery","tactics":["Discovery"],"platforms":["ESXi","IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1082","sourceCount":403},{"id":"T1083","name":"File and Directory Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1083","sourceCount":355},{"id":"T1087","name":"Account Discovery","tactics":["Discovery"],"platforms":["ESXi","IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1087","sourceCount":9},{"id":"T1087.001","name":"Account Discovery: Local Account","tactics":["Discovery"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1087","url":"https://attack.mitre.org/techniques/T1087/001","sourceCount":63},{"id":"T1087.002","name":"Account Discovery: Domain Account","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1087","url":"https://attack.mitre.org/techniques/T1087/002","sourceCount":56},{"id":"T1087.003","name":"Account Discovery: Email Account","tactics":["Discovery"],"platforms":["Office Suite","Windows"],"parent":"T1087","url":"https://attack.mitre.org/techniques/T1087/003","sourceCount":14},{"id":"T1087.004","name":"Account Discovery: Cloud Account","tactics":["Discovery"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1087","url":"https://attack.mitre.org/techniques/T1087/004","sourceCount":6},{"id":"T1090","name":"Proxy","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1090","sourceCount":72},{"id":"T1090.001","name":"Proxy: Internal Proxy","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1090","url":"https://attack.mitre.org/techniques/T1090/001","sourceCount":32},{"id":"T1090.002","name":"Proxy: External Proxy","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1090","url":"https://attack.mitre.org/techniques/T1090/002","sourceCount":22},{"id":"T1090.003","name":"Proxy: Multi-hop Proxy","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1090","url":"https://attack.mitre.org/techniques/T1090/003","sourceCount":38},{"id":"T1090.004","name":"Proxy: Domain Fronting","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1090","url":"https://attack.mitre.org/techniques/T1090/004","sourceCount":5},{"id":"T1091","name":"Replication Through Removable Media","tactics":["Initial Access","Lateral Movement"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1091","sourceCount":28},{"id":"T1092","name":"Communication Through Removable Media","tactics":["Command and Control"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1092","sourceCount":3},{"id":"T1095","name":"Non-Application Layer Protocol","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1095","sourceCount":106},{"id":"T1098","name":"Account Manipulation","tactics":["Persistence","Privilege Escalation"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1098","sourceCount":6},{"id":"T1098.001","name":"Account Manipulation: Additional Cloud Credentials","tactics":["Persistence","Privilege Escalation"],"platforms":["IaaS","Identity Provider","SaaS"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/001","sourceCount":4},{"id":"T1098.002","name":"Account Manipulation: Additional Email Delegate Permissions","tactics":["Persistence","Privilege Escalation"],"platforms":["Office Suite","Windows"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/002","sourceCount":5},{"id":"T1098.003","name":"Account Manipulation: Additional Cloud Roles","tactics":["Persistence","Privilege Escalation"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/003","sourceCount":5},{"id":"T1098.004","name":"Account Manipulation: SSH Authorized Keys","tactics":["Persistence","Privilege Escalation"],"platforms":["ESXi","IaaS","Linux","Network Devices","macOS"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/004","sourceCount":6},{"id":"T1098.005","name":"Account Manipulation: Device Registration","tactics":["Persistence","Privilege Escalation"],"platforms":["Identity Provider","Windows"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/005","sourceCount":4},{"id":"T1098.006","name":"Account Manipulation: Additional Container Cluster Roles","tactics":["Persistence","Privilege Escalation"],"platforms":["Containers"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/006","sourceCount":0},{"id":"T1098.007","name":"Account Manipulation: Additional Local or Domain Groups","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":"T1098","url":"https://attack.mitre.org/techniques/T1098/007","sourceCount":11},{"id":"T1102","name":"Web Service","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1102","sourceCount":45},{"id":"T1102.001","name":"Web Service: Dead Drop Resolver","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1102","url":"https://attack.mitre.org/techniques/T1102/001","sourceCount":23},{"id":"T1102.002","name":"Web Service: Bidirectional Communication","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1102","url":"https://attack.mitre.org/techniques/T1102/002","sourceCount":54},{"id":"T1102.003","name":"Web Service: One-Way Communication","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1102","url":"https://attack.mitre.org/techniques/T1102/003","sourceCount":9},{"id":"T1104","name":"Multi-Stage Channels","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1104","sourceCount":15},{"id":"T1105","name":"Ingress Tool Transfer","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1105","sourceCount":498},{"id":"T1106","name":"Native API","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1106","sourceCount":211},{"id":"T1110","name":"Brute Force","tactics":["Credential Access"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1110","sourceCount":23},{"id":"T1110.001","name":"Brute Force: Password Guessing","tactics":["Credential Access"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":"T1110","url":"https://attack.mitre.org/techniques/T1110/001","sourceCount":11},{"id":"T1110.002","name":"Brute Force: Password Cracking","tactics":["Credential Access"],"platforms":["Identity Provider","Linux","Network Devices","Office Suite","Windows","macOS"],"parent":"T1110","url":"https://attack.mitre.org/techniques/T1110/002","sourceCount":6},{"id":"T1110.003","name":"Brute Force: Password Spraying","tactics":["Credential Access"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":"T1110","url":"https://attack.mitre.org/techniques/T1110/003","sourceCount":17},{"id":"T1110.004","name":"Brute Force: Credential Stuffing","tactics":["Credential Access"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":"T1110","url":"https://attack.mitre.org/techniques/T1110/004","sourceCount":2},{"id":"T1111","name":"Multi-Factor Authentication Interception","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1111","sourceCount":8},{"id":"T1112","name":"Modify Registry","tactics":["Defense Evasion","Persistence"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1112","sourceCount":170},{"id":"T1113","name":"Screen Capture","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1113","sourceCount":166},{"id":"T1114","name":"Email Collection","tactics":["Collection"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1114","sourceCount":6},{"id":"T1114.001","name":"Email Collection: Local Email Collection","tactics":["Collection"],"platforms":["Windows"],"parent":"T1114","url":"https://attack.mitre.org/techniques/T1114/001","sourceCount":18},{"id":"T1114.002","name":"Email Collection: Remote Email Collection","tactics":["Collection"],"platforms":["Office Suite","Windows"],"parent":"T1114","url":"https://attack.mitre.org/techniques/T1114/002","sourceCount":18},{"id":"T1114.003","name":"Email Collection: Email Forwarding Rule","tactics":["Collection"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":"T1114","url":"https://attack.mitre.org/techniques/T1114/003","sourceCount":5},{"id":"T1115","name":"Clipboard Data","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1115","sourceCount":45},{"id":"T1119","name":"Automated Collection","tactics":["Collection"],"platforms":["IaaS","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1119","sourceCount":69},{"id":"T1120","name":"Peripheral Device Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1120","sourceCount":57},{"id":"T1123","name":"Audio Capture","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1123","sourceCount":31},{"id":"T1124","name":"System Time Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1124","sourceCount":93},{"id":"T1125","name":"Video Capture","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1125","sourceCount":34},{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1127","sourceCount":0},{"id":"T1127.001","name":"Trusted Developer Utilities Proxy Execution: MSBuild","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1127","url":"https://attack.mitre.org/techniques/T1127/001","sourceCount":3},{"id":"T1127.002","name":"Trusted Developer Utilities Proxy Execution: ClickOnce","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1127","url":"https://attack.mitre.org/techniques/T1127/002","sourceCount":0},{"id":"T1127.003","name":"Trusted Developer Utilities Proxy Execution: JamPlus","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1127","url":"https://attack.mitre.org/techniques/T1127/003","sourceCount":0},{"id":"T1129","name":"Shared Modules","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1129","sourceCount":22},{"id":"T1132","name":"Data Encoding","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1132","sourceCount":6},{"id":"T1132.001","name":"Data Encoding: Standard Encoding","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1132","url":"https://attack.mitre.org/techniques/T1132/001","sourceCount":120},{"id":"T1132.002","name":"Data Encoding: Non-Standard Encoding","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1132","url":"https://attack.mitre.org/techniques/T1132/002","sourceCount":16},{"id":"T1133","name":"External Remote Services","tactics":["Initial Access","Persistence"],"platforms":["Containers","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1133","sourceCount":40},{"id":"T1134","name":"Access Token Manipulation","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1134","sourceCount":23},{"id":"T1134.001","name":"Access Token Manipulation: Token Impersonation/Theft","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1134","url":"https://attack.mitre.org/techniques/T1134/001","sourceCount":18},{"id":"T1134.002","name":"Access Token Manipulation: Create Process with Token","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1134","url":"https://attack.mitre.org/techniques/T1134/002","sourceCount":13},{"id":"T1134.003","name":"Access Token Manipulation: Make and Impersonate Token","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1134","url":"https://attack.mitre.org/techniques/T1134/003","sourceCount":5},{"id":"T1134.004","name":"Access Token Manipulation: Parent PID Spoofing","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1134","url":"https://attack.mitre.org/techniques/T1134/004","sourceCount":4},{"id":"T1134.005","name":"Access Token Manipulation: SID-History Injection","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1134","url":"https://attack.mitre.org/techniques/T1134/005","sourceCount":2},{"id":"T1135","name":"Network Share Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1135","sourceCount":77},{"id":"T1136","name":"Create Account","tactics":["Persistence"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1136","sourceCount":5},{"id":"T1136.001","name":"Create Account: Local Account","tactics":["Persistence"],"platforms":["Containers","ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1136","url":"https://attack.mitre.org/techniques/T1136/001","sourceCount":29},{"id":"T1136.002","name":"Create Account: Domain Account","tactics":["Persistence"],"platforms":["Linux","Windows","macOS"],"parent":"T1136","url":"https://attack.mitre.org/techniques/T1136/002","sourceCount":11},{"id":"T1136.003","name":"Create Account: Cloud Account","tactics":["Persistence"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1136","url":"https://attack.mitre.org/techniques/T1136/003","sourceCount":3},{"id":"T1137","name":"Office Application Startup","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1137","sourceCount":2},{"id":"T1137.001","name":"Office Application Startup: Office Template Macros","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/001","sourceCount":3},{"id":"T1137.002","name":"Office Application Startup: Office Test","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/002","sourceCount":1},{"id":"T1137.003","name":"Office Application Startup: Outlook Forms","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/003","sourceCount":1},{"id":"T1137.004","name":"Office Application Startup: Outlook Home Page","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/004","sourceCount":2},{"id":"T1137.005","name":"Office Application Startup: Outlook Rules","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/005","sourceCount":1},{"id":"T1137.006","name":"Office Application Startup: Add-ins","tactics":["Persistence"],"platforms":["Office Suite","Windows"],"parent":"T1137","url":"https://attack.mitre.org/techniques/T1137/006","sourceCount":4},{"id":"T1140","name":"Deobfuscate/Decode Files or Information","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1140","sourceCount":325},{"id":"T1176","name":"Software Extensions","tactics":["Persistence"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1176","sourceCount":0},{"id":"T1176.001","name":"Software Extensions: Browser Extensions","tactics":["Persistence"],"platforms":["Linux","Windows","macOS"],"parent":"T1176","url":"https://attack.mitre.org/techniques/T1176/001","sourceCount":7},{"id":"T1176.002","name":"Software Extensions: IDE Extensions","tactics":["Persistence"],"platforms":["Linux","Windows","macOS"],"parent":"T1176","url":"https://attack.mitre.org/techniques/T1176/002","sourceCount":1},{"id":"T1185","name":"Browser Session Hijacking","tactics":["Collection"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1185","sourceCount":14},{"id":"T1187","name":"Forced Authentication","tactics":["Credential Access"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1187","sourceCount":3},{"id":"T1189","name":"Drive-by Compromise","tactics":["Initial Access"],"platforms":["Identity Provider","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1189","sourceCount":44},{"id":"T1190","name":"Exploit Public-Facing Application","tactics":["Initial Access"],"platforms":["Containers","ESXi","IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1190","sourceCount":69},{"id":"T1195","name":"Supply Chain Compromise","tactics":["Initial Access"],"platforms":["Linux","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1195","sourceCount":5},{"id":"T1195.001","name":"Supply Chain Compromise: Compromise Software Dependencies and Development Tools","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1195","url":"https://attack.mitre.org/techniques/T1195/001","sourceCount":2},{"id":"T1195.002","name":"Supply Chain Compromise: Compromise Software Supply Chain","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1195","url":"https://attack.mitre.org/techniques/T1195/002","sourceCount":14},{"id":"T1195.003","name":"Supply Chain Compromise: Compromise Hardware Supply Chain","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1195","url":"https://attack.mitre.org/techniques/T1195/003","sourceCount":0},{"id":"T1197","name":"BITS Jobs","tactics":["Defense Evasion","Persistence"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1197","sourceCount":13},{"id":"T1199","name":"Trusted Relationship","tactics":["Initial Access"],"platforms":["IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1199","sourceCount":12},{"id":"T1200","name":"Hardware Additions","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1200","sourceCount":1},{"id":"T1201","name":"Password Policy Discovery","tactics":["Discovery"],"platforms":["IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1201","sourceCount":8},{"id":"T1202","name":"Indirect Command Execution","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1202","sourceCount":4},{"id":"T1203","name":"Exploitation for Client Execution","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1203","sourceCount":60},{"id":"T1204","name":"User Execution","tactics":["Execution"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1204","sourceCount":5},{"id":"T1204.001","name":"User Execution: Malicious Link","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1204","url":"https://attack.mitre.org/techniques/T1204/001","sourceCount":83},{"id":"T1204.002","name":"User Execution: Malicious File","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1204","url":"https://attack.mitre.org/techniques/T1204/002","sourceCount":185},{"id":"T1204.003","name":"User Execution: Malicious Image","tactics":["Execution"],"platforms":["Containers","IaaS"],"parent":"T1204","url":"https://attack.mitre.org/techniques/T1204/003","sourceCount":1},{"id":"T1204.004","name":"User Execution: Malicious Copy and Paste","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1204","url":"https://attack.mitre.org/techniques/T1204/004","sourceCount":2},{"id":"T1204.005","name":"User Execution: Malicious Library","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":"T1204","url":"https://attack.mitre.org/techniques/T1204/005","sourceCount":1},{"id":"T1205","name":"Traffic Signaling","tactics":["Command and Control","Defense Evasion","Persistence"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1205","sourceCount":21},{"id":"T1205.001","name":"Traffic Signaling: Port Knocking","tactics":["Command and Control","Defense Evasion","Persistence"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1205","url":"https://attack.mitre.org/techniques/T1205/001","sourceCount":6},{"id":"T1205.002","name":"Traffic Signaling: Socket Filters","tactics":["Command and Control","Defense Evasion","Persistence"],"platforms":["Linux","Windows","macOS"],"parent":"T1205","url":"https://attack.mitre.org/techniques/T1205/002","sourceCount":4},{"id":"T1207","name":"Rogue Domain Controller","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1207","sourceCount":1},{"id":"T1210","name":"Exploitation of Remote Services","tactics":["Lateral Movement"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1210","sourceCount":24},{"id":"T1211","name":"Exploitation for Defense Evasion","tactics":["Defense Evasion"],"platforms":["IaaS","Linux","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1211","sourceCount":2},{"id":"T1212","name":"Exploitation for Credential Access","tactics":["Credential Access"],"platforms":["Identity Provider","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1212","sourceCount":2},{"id":"T1213","name":"Data from Information Repositories","tactics":["Collection"],"platforms":["IaaS","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1213","sourceCount":4},{"id":"T1213.001","name":"Data from Information Repositories: Confluence","tactics":["Collection"],"platforms":["SaaS"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/001","sourceCount":1},{"id":"T1213.002","name":"Data from Information Repositories: Sharepoint","tactics":["Collection"],"platforms":["Office Suite","Windows"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/002","sourceCount":8},{"id":"T1213.003","name":"Data from Information Repositories: Code Repositories","tactics":["Collection"],"platforms":["SaaS"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/003","sourceCount":4},{"id":"T1213.004","name":"Data from Information Repositories: Customer Relationship Management Software","tactics":["Collection"],"platforms":["SaaS"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/004","sourceCount":1},{"id":"T1213.005","name":"Data from Information Repositories: Messaging Applications","tactics":["Collection"],"platforms":["Office Suite","SaaS"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/005","sourceCount":3},{"id":"T1213.006","name":"Data from Information Repositories: Databases","tactics":["Collection"],"platforms":["IaaS","Linux","SaaS","Windows","macOS"],"parent":"T1213","url":"https://attack.mitre.org/techniques/T1213/006","sourceCount":8},{"id":"T1216","name":"System Script Proxy Execution","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1216","sourceCount":0},{"id":"T1216.001","name":"System Script Proxy Execution: PubPrn","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1216","url":"https://attack.mitre.org/techniques/T1216/001","sourceCount":1},{"id":"T1216.002","name":"System Script Proxy Execution: SyncAppvPublishingServer","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1216","url":"https://attack.mitre.org/techniques/T1216/002","sourceCount":0},{"id":"T1217","name":"Browser Information Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1217","sourceCount":26},{"id":"T1218","name":"System Binary Proxy Execution","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1218","sourceCount":2},{"id":"T1218.001","name":"System Binary Proxy Execution: Compiled HTML File","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/001","sourceCount":6},{"id":"T1218.002","name":"System Binary Proxy Execution: Control Panel","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/002","sourceCount":2},{"id":"T1218.003","name":"System Binary Proxy Execution: CMSTP","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/003","sourceCount":4},{"id":"T1218.004","name":"System Binary Proxy Execution: InstallUtil","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/004","sourceCount":6},{"id":"T1218.005","name":"System Binary Proxy Execution: Mshta","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/005","sourceCount":30},{"id":"T1218.007","name":"System Binary Proxy Execution: Msiexec","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/007","sourceCount":29},{"id":"T1218.008","name":"System Binary Proxy Execution: Odbcconf","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/008","sourceCount":3},{"id":"T1218.009","name":"System Binary Proxy Execution: Regsvcs/Regasm","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/009","sourceCount":1},{"id":"T1218.010","name":"System Binary Proxy Execution: Regsvr32","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/010","sourceCount":36},{"id":"T1218.011","name":"System Binary Proxy Execution: Rundll32","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/011","sourceCount":103},{"id":"T1218.012","name":"System Binary Proxy Execution: Verclsid","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/012","sourceCount":1},{"id":"T1218.013","name":"System Binary Proxy Execution: Mavinject","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/013","sourceCount":1},{"id":"T1218.014","name":"System Binary Proxy Execution: MMC","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/014","sourceCount":2},{"id":"T1218.015","name":"System Binary Proxy Execution: Electron Applications","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1218","url":"https://attack.mitre.org/techniques/T1218/015","sourceCount":2},{"id":"T1219","name":"Remote Access Tools","tactics":["Command and Control"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1219","sourceCount":21},{"id":"T1219.001","name":"Remote Access Tools: IDE Tunneling","tactics":["Command and Control"],"platforms":["Linux","Windows","macOS"],"parent":"T1219","url":"https://attack.mitre.org/techniques/T1219/001","sourceCount":1},{"id":"T1219.002","name":"Remote Access Tools: Remote Desktop Software","tactics":["Command and Control"],"platforms":["Linux","Windows","macOS"],"parent":"T1219","url":"https://attack.mitre.org/techniques/T1219/002","sourceCount":12},{"id":"T1219.003","name":"Remote Access Tools: Remote Access Hardware","tactics":["Command and Control"],"platforms":["Linux","Windows","macOS"],"parent":"T1219","url":"https://attack.mitre.org/techniques/T1219/003","sourceCount":0},{"id":"T1220","name":"XSL Script Processing","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1220","sourceCount":4},{"id":"T1221","name":"Template Injection","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1221","sourceCount":11},{"id":"T1222","name":"File and Directory Permissions Modification","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1222","sourceCount":1},{"id":"T1222.001","name":"File and Directory Permissions Modification: Windows File and Directory Permissions Modification","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1222","url":"https://attack.mitre.org/techniques/T1222/001","sourceCount":11},{"id":"T1222.002","name":"File and Directory Permissions Modification: Linux and Mac File and Directory Permissions Modification","tactics":["Defense Evasion"],"platforms":["Linux","macOS"],"parent":"T1222","url":"https://attack.mitre.org/techniques/T1222/002","sourceCount":14},{"id":"T1480","name":"Execution Guardrails","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1480","sourceCount":37},{"id":"T1480.001","name":"Execution Guardrails: Environmental Keying","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1480","url":"https://attack.mitre.org/techniques/T1480/001","sourceCount":10},{"id":"T1480.002","name":"Execution Guardrails: Mutual Exclusion","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1480","url":"https://attack.mitre.org/techniques/T1480/002","sourceCount":16},{"id":"T1482","name":"Domain Trust Discovery","tactics":["Discovery"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1482","sourceCount":31},{"id":"T1484","name":"Domain or Tenant Policy Modification","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Identity Provider","Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1484","sourceCount":0},{"id":"T1484.001","name":"Domain or Tenant Policy Modification: Group Policy Modification","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1484","url":"https://attack.mitre.org/techniques/T1484/001","sourceCount":14},{"id":"T1484.002","name":"Domain or Tenant Policy Modification: Trust Modification","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Identity Provider","Windows"],"parent":"T1484","url":"https://attack.mitre.org/techniques/T1484/002","sourceCount":4},{"id":"T1485","name":"Data Destruction","tactics":["Impact"],"platforms":["Containers","ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1485","sourceCount":30},{"id":"T1485.001","name":"Data Destruction: Lifecycle-Triggered Deletion","tactics":["Impact"],"platforms":["IaaS"],"parent":"T1485","url":"https://attack.mitre.org/techniques/T1485/001","sourceCount":0},{"id":"T1486","name":"Data Encrypted for Impact","tactics":["Impact"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1486","sourceCount":82},{"id":"T1489","name":"Service Stop","tactics":["Impact"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1489","sourceCount":50},{"id":"T1490","name":"Inhibit System Recovery","tactics":["Impact"],"platforms":["Containers","ESXi","IaaS","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1490","sourceCount":54},{"id":"T1491","name":"Defacement","tactics":["Impact"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1491","sourceCount":0},{"id":"T1491.001","name":"Defacement: Internal Defacement","tactics":["Impact"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1491","url":"https://attack.mitre.org/techniques/T1491/001","sourceCount":12},{"id":"T1491.002","name":"Defacement: External Defacement","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1491","url":"https://attack.mitre.org/techniques/T1491/002","sourceCount":2},{"id":"T1495","name":"Firmware Corruption","tactics":["Impact"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1495","sourceCount":2},{"id":"T1496","name":"Resource Hijacking","tactics":["Impact"],"platforms":["Containers","IaaS","Linux","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1496","sourceCount":0},{"id":"T1496.001","name":"Resource Hijacking: Compute Hijacking","tactics":["Impact"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":"T1496","url":"https://attack.mitre.org/techniques/T1496/001","sourceCount":14},{"id":"T1496.002","name":"Resource Hijacking: Bandwidth Hijacking","tactics":["Impact"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":"T1496","url":"https://attack.mitre.org/techniques/T1496/002","sourceCount":0},{"id":"T1496.003","name":"Resource Hijacking: SMS Pumping","tactics":["Impact"],"platforms":["SaaS"],"parent":"T1496","url":"https://attack.mitre.org/techniques/T1496/003","sourceCount":0},{"id":"T1496.004","name":"Resource Hijacking: Cloud Service Hijacking","tactics":["Impact"],"platforms":["SaaS"],"parent":"T1496","url":"https://attack.mitre.org/techniques/T1496/004","sourceCount":0},{"id":"T1497","name":"Virtualization/Sandbox Evasion","tactics":["Defense Evasion","Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1497","sourceCount":26},{"id":"T1497.001","name":"Virtualization/Sandbox Evasion: System Checks","tactics":["Defense Evasion","Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1497","url":"https://attack.mitre.org/techniques/T1497/001","sourceCount":66},{"id":"T1497.002","name":"Virtualization/Sandbox Evasion: User Activity Based Checks","tactics":["Defense Evasion","Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1497","url":"https://attack.mitre.org/techniques/T1497/002","sourceCount":5},{"id":"T1497.003","name":"Virtualization/Sandbox Evasion: Time Based Checks","tactics":["Defense Evasion","Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1497","url":"https://attack.mitre.org/techniques/T1497/003","sourceCount":46},{"id":"T1498","name":"Network Denial of Service","tactics":["Impact"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1498","sourceCount":3},{"id":"T1498.001","name":"Network Denial of Service: Direct Network Flood","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1498","url":"https://attack.mitre.org/techniques/T1498/001","sourceCount":0},{"id":"T1498.002","name":"Network Denial of Service: Reflection Amplification","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1498","url":"https://attack.mitre.org/techniques/T1498/002","sourceCount":0},{"id":"T1499","name":"Endpoint Denial of Service","tactics":["Impact"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1499","sourceCount":3},{"id":"T1499.001","name":"Endpoint Denial of Service: OS Exhaustion Flood","tactics":["Impact"],"platforms":["Linux","Windows","macOS"],"parent":"T1499","url":"https://attack.mitre.org/techniques/T1499/001","sourceCount":0},{"id":"T1499.002","name":"Endpoint Denial of Service: Service Exhaustion Flood","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1499","url":"https://attack.mitre.org/techniques/T1499/002","sourceCount":0},{"id":"T1499.003","name":"Endpoint Denial of Service: Application Exhaustion Flood","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1499","url":"https://attack.mitre.org/techniques/T1499/003","sourceCount":0},{"id":"T1499.004","name":"Endpoint Denial of Service: Application or System Exploitation","tactics":["Impact"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1499","url":"https://attack.mitre.org/techniques/T1499/004","sourceCount":1},{"id":"T1505","name":"Server Software Component","tactics":["Persistence"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1505","sourceCount":0},{"id":"T1505.001","name":"Server Software Component: SQL Stored Procedures","tactics":["Persistence"],"platforms":["Linux","Windows"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/001","sourceCount":2},{"id":"T1505.002","name":"Server Software Component: Transport Agent","tactics":["Persistence"],"platforms":["Linux","Windows"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/002","sourceCount":1},{"id":"T1505.003","name":"Server Software Component: Web Shell","tactics":["Persistence"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/003","sourceCount":62},{"id":"T1505.004","name":"Server Software Component: IIS Components","tactics":["Persistence"],"platforms":["Windows"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/004","sourceCount":5},{"id":"T1505.005","name":"Server Software Component: Terminal Services DLL","tactics":["Persistence"],"platforms":["Windows"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/005","sourceCount":0},{"id":"T1505.006","name":"Server Software Component: vSphere Installation Bundles","tactics":["Persistence"],"platforms":["ESXi"],"parent":"T1505","url":"https://attack.mitre.org/techniques/T1505/006","sourceCount":2},{"id":"T1518","name":"Software Discovery","tactics":["Discovery"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1518","sourceCount":50},{"id":"T1518.001","name":"Software Discovery: Security Software Discovery","tactics":["Discovery"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":"T1518","url":"https://attack.mitre.org/techniques/T1518/001","sourceCount":135},{"id":"T1518.002","name":"Software Discovery: Backup Software Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1518","url":"https://attack.mitre.org/techniques/T1518/002","sourceCount":1},{"id":"T1525","name":"Implant Internal Image","tactics":["Persistence"],"platforms":["Containers","IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1525","sourceCount":0},{"id":"T1526","name":"Cloud Service Discovery","tactics":["Discovery"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1526","sourceCount":4},{"id":"T1528","name":"Steal Application Access Token","tactics":["Credential Access"],"platforms":["Containers","IaaS","Identity Provider","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1528","sourceCount":5},{"id":"T1529","name":"System Shutdown/Reboot","tactics":["Impact"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1529","sourceCount":27},{"id":"T1530","name":"Data from Cloud Storage","tactics":["Collection"],"platforms":["IaaS","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1530","sourceCount":9},{"id":"T1531","name":"Account Access Removal","tactics":["Impact"],"platforms":["ESXi","IaaS","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1531","sourceCount":6},{"id":"T1534","name":"Internal Spearphishing","tactics":["Lateral Movement"],"platforms":["Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1534","sourceCount":5},{"id":"T1535","name":"Unused/Unsupported Cloud Regions","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1535","sourceCount":0},{"id":"T1537","name":"Transfer Data to Cloud Account","tactics":["Exfiltration"],"platforms":["IaaS","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1537","sourceCount":3},{"id":"T1538","name":"Cloud Service Dashboard","tactics":["Discovery"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1538","sourceCount":1},{"id":"T1539","name":"Steal Web Session Cookie","tactics":["Credential Access"],"platforms":["Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1539","sourceCount":25},{"id":"T1542","name":"Pre-OS Boot","tactics":["Defense Evasion","Persistence"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1542","sourceCount":0},{"id":"T1542.001","name":"Pre-OS Boot: System Firmware","tactics":["Defense Evasion","Persistence"],"platforms":["Network Devices","Windows"],"parent":"T1542","url":"https://attack.mitre.org/techniques/T1542/001","sourceCount":3},{"id":"T1542.002","name":"Pre-OS Boot: Component Firmware","tactics":["Defense Evasion","Persistence"],"platforms":["Linux","Windows","macOS"],"parent":"T1542","url":"https://attack.mitre.org/techniques/T1542/002","sourceCount":2},{"id":"T1542.003","name":"Pre-OS Boot: Bootkit","tactics":["Defense Evasion","Persistence"],"platforms":["Linux","Windows"],"parent":"T1542","url":"https://attack.mitre.org/techniques/T1542/003","sourceCount":9},{"id":"T1542.004","name":"Pre-OS Boot: ROMMONkit","tactics":["Defense Evasion","Persistence"],"platforms":["Network Devices"],"parent":"T1542","url":"https://attack.mitre.org/techniques/T1542/004","sourceCount":0},{"id":"T1542.005","name":"Pre-OS Boot: TFTP Boot","tactics":["Defense Evasion","Persistence"],"platforms":["Network Devices"],"parent":"T1542","url":"https://attack.mitre.org/techniques/T1542/005","sourceCount":0},{"id":"T1543","name":"Create or Modify System Process","tactics":["Persistence","Privilege Escalation"],"platforms":["Containers","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1543","sourceCount":6},{"id":"T1543.001","name":"Create or Modify System Process: Launch Agent","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1543","url":"https://attack.mitre.org/techniques/T1543/001","sourceCount":21},{"id":"T1543.002","name":"Create or Modify System Process: Systemd Service","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux"],"parent":"T1543","url":"https://attack.mitre.org/techniques/T1543/002","sourceCount":12},{"id":"T1543.003","name":"Create or Modify System Process: Windows Service","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1543","url":"https://attack.mitre.org/techniques/T1543/003","sourceCount":138},{"id":"T1543.004","name":"Create or Modify System Process: Launch Daemon","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1543","url":"https://attack.mitre.org/techniques/T1543/004","sourceCount":11},{"id":"T1543.005","name":"Create or Modify System Process: Container Service","tactics":["Persistence","Privilege Escalation"],"platforms":["Containers"],"parent":"T1543","url":"https://attack.mitre.org/techniques/T1543/005","sourceCount":0},{"id":"T1546","name":"Event Triggered Execution","tactics":["Persistence","Privilege Escalation"],"platforms":["IaaS","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1546","sourceCount":4},{"id":"T1546.001","name":"Event Triggered Execution: Change Default File Association","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/001","sourceCount":2},{"id":"T1546.002","name":"Event Triggered Execution: Screensaver","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/002","sourceCount":1},{"id":"T1546.003","name":"Event Triggered Execution: Windows Management Instrumentation Event Subscription","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/003","sourceCount":25},{"id":"T1546.004","name":"Event Triggered Execution: Unix Shell Configuration Modification","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/004","sourceCount":6},{"id":"T1546.005","name":"Event Triggered Execution: Trap","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/005","sourceCount":0},{"id":"T1546.006","name":"Event Triggered Execution: LC_LOAD_DYLIB Addition","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/006","sourceCount":0},{"id":"T1546.007","name":"Event Triggered Execution: Netsh Helper DLL","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/007","sourceCount":1},{"id":"T1546.008","name":"Event Triggered Execution: Accessibility Features","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/008","sourceCount":7},{"id":"T1546.009","name":"Event Triggered Execution: AppCert DLLs","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/009","sourceCount":1},{"id":"T1546.010","name":"Event Triggered Execution: AppInit DLLs","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/010","sourceCount":4},{"id":"T1546.011","name":"Event Triggered Execution: Application Shimming","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/011","sourceCount":4},{"id":"T1546.012","name":"Event Triggered Execution: Image File Execution Options Injection","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/012","sourceCount":3},{"id":"T1546.013","name":"Event Triggered Execution: PowerShell Profile","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/013","sourceCount":1},{"id":"T1546.014","name":"Event Triggered Execution: Emond","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/014","sourceCount":0},{"id":"T1546.015","name":"Event Triggered Execution: Component Object Model Hijacking","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/015","sourceCount":12},{"id":"T1546.016","name":"Event Triggered Execution: Installer Packages","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/016","sourceCount":2},{"id":"T1546.017","name":"Event Triggered Execution: Udev Rules","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/017","sourceCount":1},{"id":"T1546.018","name":"Event Triggered Execution: Python Startup Hooks","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":"T1546","url":"https://attack.mitre.org/techniques/T1546/018","sourceCount":0},{"id":"T1547","name":"Boot or Logon Autostart Execution","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1547","sourceCount":6},{"id":"T1547.001","name":"Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/001","sourceCount":252},{"id":"T1547.002","name":"Boot or Logon Autostart Execution: Authentication Package","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/002","sourceCount":1},{"id":"T1547.003","name":"Boot or Logon Autostart Execution: Time Providers","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/003","sourceCount":0},{"id":"T1547.004","name":"Boot or Logon Autostart Execution: Winlogon Helper DLL","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/004","sourceCount":13},{"id":"T1547.005","name":"Boot or Logon Autostart Execution: Security Support Provider","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/005","sourceCount":3},{"id":"T1547.006","name":"Boot or Logon Autostart Execution: Kernel Modules and Extensions","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/006","sourceCount":4},{"id":"T1547.007","name":"Boot or Logon Autostart Execution: Re-opened Applications","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/007","sourceCount":0},{"id":"T1547.008","name":"Boot or Logon Autostart Execution: LSASS Driver","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/008","sourceCount":2},{"id":"T1547.009","name":"Boot or Logon Autostart Execution: Shortcut Modification","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/009","sourceCount":29},{"id":"T1547.010","name":"Boot or Logon Autostart Execution: Port Monitors","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/010","sourceCount":0},{"id":"T1547.012","name":"Boot or Logon Autostart Execution: Print Processors","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/012","sourceCount":3},{"id":"T1547.013","name":"Boot or Logon Autostart Execution: XDG Autostart Entries","tactics":["Persistence","Privilege Escalation"],"platforms":["Linux"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/013","sourceCount":7},{"id":"T1547.014","name":"Boot or Logon Autostart Execution: Active Setup","tactics":["Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/014","sourceCount":1},{"id":"T1547.015","name":"Boot or Logon Autostart Execution: Login Items","tactics":["Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1547","url":"https://attack.mitre.org/techniques/T1547/015","sourceCount":3},{"id":"T1548","name":"Abuse Elevation Control Mechanism","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["IaaS","Identity Provider","Linux","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1548","sourceCount":2},{"id":"T1548.001","name":"Abuse Elevation Control Mechanism: Setuid and Setgid","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/001","sourceCount":2},{"id":"T1548.002","name":"Abuse Elevation Control Mechanism: Bypass User Account Control","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Windows"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/002","sourceCount":61},{"id":"T1548.003","name":"Abuse Elevation Control Mechanism: Sudo and Sudo Caching","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/003","sourceCount":3},{"id":"T1548.004","name":"Abuse Elevation Control Mechanism: Elevated Execution with Prompt","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["macOS"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/004","sourceCount":1},{"id":"T1548.005","name":"Abuse Elevation Control Mechanism: Temporary Elevated Cloud Access","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["IaaS","Identity Provider","Office Suite"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/005","sourceCount":0},{"id":"T1548.006","name":"Abuse Elevation Control Mechanism: TCC Manipulation","tactics":["Defense Evasion","Privilege Escalation"],"platforms":["macOS"],"parent":"T1548","url":"https://attack.mitre.org/techniques/T1548/006","sourceCount":1},{"id":"T1550","name":"Use Alternate Authentication Material","tactics":["Defense Evasion","Lateral Movement"],"platforms":["Containers","IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1550","sourceCount":2},{"id":"T1550.001","name":"Use Alternate Authentication Material: Application Access Token","tactics":["Defense Evasion","Lateral Movement"],"platforms":["Containers","IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1550","url":"https://attack.mitre.org/techniques/T1550/001","sourceCount":5},{"id":"T1550.002","name":"Use Alternate Authentication Material: Pass the Hash","tactics":["Defense Evasion","Lateral Movement"],"platforms":["Windows"],"parent":"T1550","url":"https://attack.mitre.org/techniques/T1550/002","sourceCount":20},{"id":"T1550.003","name":"Use Alternate Authentication Material: Pass the Ticket","tactics":["Defense Evasion","Lateral Movement"],"platforms":["Windows"],"parent":"T1550","url":"https://attack.mitre.org/techniques/T1550/003","sourceCount":6},{"id":"T1550.004","name":"Use Alternate Authentication Material: Web Session Cookie","tactics":["Defense Evasion","Lateral Movement"],"platforms":["IaaS","Office Suite","SaaS"],"parent":"T1550","url":"https://attack.mitre.org/techniques/T1550/004","sourceCount":2},{"id":"T1552","name":"Unsecured Credentials","tactics":["Credential Access"],"platforms":["Containers","IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1552","sourceCount":6},{"id":"T1552.001","name":"Unsecured Credentials: Credentials In Files","tactics":["Credential Access"],"platforms":["Containers","IaaS","Linux","Windows","macOS"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/001","sourceCount":34},{"id":"T1552.002","name":"Unsecured Credentials: Credentials in Registry","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/002","sourceCount":9},{"id":"T1552.003","name":"Unsecured Credentials: Shell History","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/003","sourceCount":1},{"id":"T1552.004","name":"Unsecured Credentials: Private Keys","tactics":["Credential Access"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/004","sourceCount":18},{"id":"T1552.005","name":"Unsecured Credentials: Cloud Instance Metadata API","tactics":["Credential Access"],"platforms":["IaaS"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/005","sourceCount":3},{"id":"T1552.006","name":"Unsecured Credentials: Group Policy Preferences","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/006","sourceCount":4},{"id":"T1552.007","name":"Unsecured Credentials: Container API","tactics":["Credential Access"],"platforms":["Containers"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/007","sourceCount":1},{"id":"T1552.008","name":"Unsecured Credentials: Chat Messages","tactics":["Credential Access"],"platforms":["Office Suite","SaaS"],"parent":"T1552","url":"https://attack.mitre.org/techniques/T1552/008","sourceCount":1},{"id":"T1553","name":"Subvert Trust Controls","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1553","sourceCount":1},{"id":"T1553.001","name":"Subvert Trust Controls: Gatekeeper Bypass","tactics":["Defense Evasion"],"platforms":["macOS"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/001","sourceCount":6},{"id":"T1553.002","name":"Subvert Trust Controls: Code Signing","tactics":["Defense Evasion"],"platforms":["Windows","macOS"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/002","sourceCount":85},{"id":"T1553.003","name":"Subvert Trust Controls: SIP and Trust Provider Hijacking","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/003","sourceCount":0},{"id":"T1553.004","name":"Subvert Trust Controls: Install Root Certificate","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/004","sourceCount":4},{"id":"T1553.005","name":"Subvert Trust Controls: Mark-of-the-Web Bypass","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/005","sourceCount":5},{"id":"T1553.006","name":"Subvert Trust Controls: Code Signing Policy Modification","tactics":["Defense Evasion"],"platforms":["Windows","macOS"],"parent":"T1553","url":"https://attack.mitre.org/techniques/T1553/006","sourceCount":5},{"id":"T1554","name":"Compromise Host Software Binary","tactics":["Persistence"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1554","sourceCount":21},{"id":"T1555","name":"Credentials from Password Stores","tactics":["Credential Access"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1555","sourceCount":37},{"id":"T1555.001","name":"Credentials from Password Stores: Keychain","tactics":["Credential Access"],"platforms":["macOS"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/001","sourceCount":11},{"id":"T1555.002","name":"Credentials from Password Stores: Securityd Memory","tactics":["Credential Access"],"platforms":["Linux","macOS"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/002","sourceCount":1},{"id":"T1555.003","name":"Credentials from Password Stores: Credentials from Web Browsers","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/003","sourceCount":87},{"id":"T1555.004","name":"Credentials from Password Stores: Windows Credential Manager","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/004","sourceCount":14},{"id":"T1555.005","name":"Credentials from Password Stores: Password Managers","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/005","sourceCount":12},{"id":"T1555.006","name":"Credentials from Password Stores: Cloud Secrets Management Stores","tactics":["Credential Access"],"platforms":["IaaS"],"parent":"T1555","url":"https://attack.mitre.org/techniques/T1555/006","sourceCount":3},{"id":"T1556","name":"Modify Authentication Process","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["IaaS","Identity Provider","Linux","Network Devices","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1556","sourceCount":5},{"id":"T1556.001","name":"Modify Authentication Process: Domain Controller Authentication","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Windows"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/001","sourceCount":2},{"id":"T1556.002","name":"Modify Authentication Process: Password Filter DLL","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Windows"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/002","sourceCount":3},{"id":"T1556.003","name":"Modify Authentication Process: Pluggable Authentication Modules","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Linux","macOS"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/003","sourceCount":2},{"id":"T1556.004","name":"Modify Authentication Process: Network Device Authentication","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Network Devices"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/004","sourceCount":2},{"id":"T1556.005","name":"Modify Authentication Process: Reversible Encryption","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Windows"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/005","sourceCount":0},{"id":"T1556.006","name":"Modify Authentication Process: Multi-Factor Authentication","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/006","sourceCount":3},{"id":"T1556.007","name":"Modify Authentication Process: Hybrid Identity","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS","Windows"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/007","sourceCount":2},{"id":"T1556.008","name":"Modify Authentication Process: Network Provider DLL","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["Windows"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/008","sourceCount":0},{"id":"T1556.009","name":"Modify Authentication Process: Conditional Access Policies","tactics":["Credential Access","Defense Evasion","Persistence"],"platforms":["IaaS","Identity Provider"],"parent":"T1556","url":"https://attack.mitre.org/techniques/T1556/009","sourceCount":2},{"id":"T1557","name":"Adversary-in-the-Middle","tactics":["Collection","Credential Access"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1557","sourceCount":7},{"id":"T1557.001","name":"Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay","tactics":["Collection","Credential Access"],"platforms":["Windows"],"parent":"T1557","url":"https://attack.mitre.org/techniques/T1557/001","sourceCount":7},{"id":"T1557.002","name":"Adversary-in-the-Middle: ARP Cache Poisoning","tactics":["Collection","Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1557","url":"https://attack.mitre.org/techniques/T1557/002","sourceCount":2},{"id":"T1557.003","name":"Adversary-in-the-Middle: DHCP Spoofing","tactics":["Collection","Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1557","url":"https://attack.mitre.org/techniques/T1557/003","sourceCount":0},{"id":"T1557.004","name":"Adversary-in-the-Middle: Evil Twin","tactics":["Collection","Credential Access"],"platforms":["Network Devices"],"parent":"T1557","url":"https://attack.mitre.org/techniques/T1557/004","sourceCount":1},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","tactics":["Credential Access"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1558","sourceCount":1},{"id":"T1558.001","name":"Steal or Forge Kerberos Tickets: Golden Ticket","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1558","url":"https://attack.mitre.org/techniques/T1558/001","sourceCount":5},{"id":"T1558.002","name":"Steal or Forge Kerberos Tickets: Silver Ticket","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1558","url":"https://attack.mitre.org/techniques/T1558/002","sourceCount":4},{"id":"T1558.003","name":"Steal or Forge Kerberos Tickets: Kerberoasting","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1558","url":"https://attack.mitre.org/techniques/T1558/003","sourceCount":12},{"id":"T1558.004","name":"Steal or Forge Kerberos Tickets: AS-REP Roasting","tactics":["Credential Access"],"platforms":["Windows"],"parent":"T1558","url":"https://attack.mitre.org/techniques/T1558/004","sourceCount":1},{"id":"T1558.005","name":"Steal or Forge Kerberos Tickets: Ccache Files","tactics":["Credential Access"],"platforms":["Linux","macOS"],"parent":"T1558","url":"https://attack.mitre.org/techniques/T1558/005","sourceCount":1},{"id":"T1559","name":"Inter-Process Communication","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1559","sourceCount":16},{"id":"T1559.001","name":"Inter-Process Communication: Component Object Model","tactics":["Execution"],"platforms":["Windows"],"parent":"T1559","url":"https://attack.mitre.org/techniques/T1559/001","sourceCount":20},{"id":"T1559.002","name":"Inter-Process Communication: Dynamic Data Exchange","tactics":["Execution"],"platforms":["Windows"],"parent":"T1559","url":"https://attack.mitre.org/techniques/T1559/002","sourceCount":20},{"id":"T1559.003","name":"Inter-Process Communication: XPC Services","tactics":["Execution"],"platforms":["macOS"],"parent":"T1559","url":"https://attack.mitre.org/techniques/T1559/003","sourceCount":0},{"id":"T1560","name":"Archive Collected Data","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1560","sourceCount":54},{"id":"T1560.001","name":"Archive Collected Data: Archive via Utility","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":"T1560","url":"https://attack.mitre.org/techniques/T1560/001","sourceCount":78},{"id":"T1560.002","name":"Archive Collected Data: Archive via Library","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":"T1560","url":"https://attack.mitre.org/techniques/T1560/002","sourceCount":15},{"id":"T1560.003","name":"Archive Collected Data: Archive via Custom Method","tactics":["Collection"],"platforms":["Linux","Windows","macOS"],"parent":"T1560","url":"https://attack.mitre.org/techniques/T1560/003","sourceCount":39},{"id":"T1561","name":"Disk Wipe","tactics":["Impact"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1561","sourceCount":0},{"id":"T1561.001","name":"Disk Wipe: Disk Content Wipe","tactics":["Impact"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1561","url":"https://attack.mitre.org/techniques/T1561/001","sourceCount":16},{"id":"T1561.002","name":"Disk Wipe: Disk Structure Wipe","tactics":["Impact"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":"T1561","url":"https://attack.mitre.org/techniques/T1561/002","sourceCount":17},{"id":"T1562","name":"Impair Defenses","tactics":["Defense Evasion"],"platforms":["Containers","ESXi","IaaS","Identity Provider","Linux","Network Devices","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1562","sourceCount":5},{"id":"T1562.001","name":"Impair Defenses: Disable or Modify Tools","tactics":["Defense Evasion"],"platforms":["Containers","IaaS","Linux","Network Devices","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/001","sourceCount":110},{"id":"T1562.002","name":"Impair Defenses: Disable Windows Event Logging","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/002","sourceCount":6},{"id":"T1562.003","name":"Impair Defenses: Impair Command History Logging","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/003","sourceCount":10},{"id":"T1562.004","name":"Impair Defenses: Disable or Modify System Firewall","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/004","sourceCount":45},{"id":"T1562.006","name":"Impair Defenses: Indicator Blocking","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/006","sourceCount":10},{"id":"T1562.007","name":"Impair Defenses: Disable or Modify Cloud Firewall","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/007","sourceCount":1},{"id":"T1562.008","name":"Impair Defenses: Disable or Modify Cloud Logs","tactics":["Defense Evasion"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/008","sourceCount":2},{"id":"T1562.009","name":"Impair Defenses: Safe Mode Boot","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/009","sourceCount":7},{"id":"T1562.010","name":"Impair Defenses: Downgrade Attack","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/010","sourceCount":3},{"id":"T1562.011","name":"Impair Defenses: Spoof Security Alerting","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/011","sourceCount":0},{"id":"T1562.012","name":"Impair Defenses: Disable or Modify Linux Audit System","tactics":["Defense Evasion"],"platforms":["Linux"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/012","sourceCount":1},{"id":"T1562.013","name":"Impair Defenses: Disable or Modify Network Device Firewall","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1562","url":"https://attack.mitre.org/techniques/T1562/013","sourceCount":2},{"id":"T1563","name":"Remote Service Session Hijacking","tactics":["Lateral Movement"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1563","sourceCount":0},{"id":"T1563.001","name":"Remote Service Session Hijacking: SSH Hijacking","tactics":["Lateral Movement"],"platforms":["Linux","macOS"],"parent":"T1563","url":"https://attack.mitre.org/techniques/T1563/001","sourceCount":1},{"id":"T1563.002","name":"Remote Service Session Hijacking: RDP Hijacking","tactics":["Lateral Movement"],"platforms":["Windows"],"parent":"T1563","url":"https://attack.mitre.org/techniques/T1563/002","sourceCount":2},{"id":"T1564","name":"Hide Artifacts","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1564","sourceCount":5},{"id":"T1564.001","name":"Hide Artifacts: Hidden Files and Directories","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/001","sourceCount":58},{"id":"T1564.002","name":"Hide Artifacts: Hidden Users","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/002","sourceCount":3},{"id":"T1564.003","name":"Hide Artifacts: Hidden Window","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/003","sourceCount":54},{"id":"T1564.004","name":"Hide Artifacts: NTFS File Attributes","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/004","sourceCount":16},{"id":"T1564.005","name":"Hide Artifacts: Hidden File System","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/005","sourceCount":6},{"id":"T1564.006","name":"Hide Artifacts: Run Virtual Instance","tactics":["Defense Evasion"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/006","sourceCount":3},{"id":"T1564.007","name":"Hide Artifacts: VBA Stomping","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/007","sourceCount":0},{"id":"T1564.008","name":"Hide Artifacts: Email Hiding Rules","tactics":["Defense Evasion"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/008","sourceCount":2},{"id":"T1564.009","name":"Hide Artifacts: Resource Forking","tactics":["Defense Evasion"],"platforms":["macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/009","sourceCount":2},{"id":"T1564.010","name":"Hide Artifacts: Process Argument Spoofing","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/010","sourceCount":2},{"id":"T1564.011","name":"Hide Artifacts: Ignore Process Interrupts","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/011","sourceCount":6},{"id":"T1564.012","name":"Hide Artifacts: File/Path Exclusions","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/012","sourceCount":1},{"id":"T1564.013","name":"Hide Artifacts: Bind Mounts","tactics":["Defense Evasion"],"platforms":["Linux"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/013","sourceCount":1},{"id":"T1564.014","name":"Hide Artifacts: Extended Attributes","tactics":["Defense Evasion"],"platforms":["Linux","macOS"],"parent":"T1564","url":"https://attack.mitre.org/techniques/T1564/014","sourceCount":0},{"id":"T1565","name":"Data Manipulation","tactics":["Impact"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1565","sourceCount":1},{"id":"T1565.001","name":"Data Manipulation: Stored Data Manipulation","tactics":["Impact"],"platforms":["Linux","Windows","macOS"],"parent":"T1565","url":"https://attack.mitre.org/techniques/T1565/001","sourceCount":3},{"id":"T1565.002","name":"Data Manipulation: Transmitted Data Manipulation","tactics":["Impact"],"platforms":["Linux","Windows","macOS"],"parent":"T1565","url":"https://attack.mitre.org/techniques/T1565/002","sourceCount":4},{"id":"T1565.003","name":"Data Manipulation: Runtime Data Manipulation","tactics":["Impact"],"platforms":["Linux","Windows","macOS"],"parent":"T1565","url":"https://attack.mitre.org/techniques/T1565/003","sourceCount":1},{"id":"T1566","name":"Phishing","tactics":["Initial Access"],"platforms":["Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1566","sourceCount":9},{"id":"T1566.001","name":"Phishing: Spearphishing Attachment","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1566","url":"https://attack.mitre.org/techniques/T1566/001","sourceCount":141},{"id":"T1566.002","name":"Phishing: Spearphishing Link","tactics":["Initial Access"],"platforms":["Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":"T1566","url":"https://attack.mitre.org/techniques/T1566/002","sourceCount":80},{"id":"T1566.003","name":"Phishing: Spearphishing via Service","tactics":["Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":"T1566","url":"https://attack.mitre.org/techniques/T1566/003","sourceCount":16},{"id":"T1566.004","name":"Phishing: Spearphishing Voice","tactics":["Initial Access"],"platforms":["Identity Provider","Linux","Windows","macOS"],"parent":"T1566","url":"https://attack.mitre.org/techniques/T1566/004","sourceCount":2},{"id":"T1567","name":"Exfiltration Over Web Service","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1567","sourceCount":14},{"id":"T1567.001","name":"Exfiltration Over Web Service: Exfiltration to Code Repository","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1567","url":"https://attack.mitre.org/techniques/T1567/001","sourceCount":1},{"id":"T1567.002","name":"Exfiltration Over Web Service: Exfiltration to Cloud Storage","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1567","url":"https://attack.mitre.org/techniques/T1567/002","sourceCount":42},{"id":"T1567.003","name":"Exfiltration Over Web Service: Exfiltration to Text Storage Sites","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1567","url":"https://attack.mitre.org/techniques/T1567/003","sourceCount":0},{"id":"T1567.004","name":"Exfiltration Over Web Service: Exfiltration Over Webhook","tactics":["Exfiltration"],"platforms":["ESXi","Linux","Office Suite","SaaS","Windows","macOS"],"parent":"T1567","url":"https://attack.mitre.org/techniques/T1567/004","sourceCount":0},{"id":"T1568","name":"Dynamic Resolution","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1568","sourceCount":20},{"id":"T1568.001","name":"Dynamic Resolution: Fast Flux DNS","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1568","url":"https://attack.mitre.org/techniques/T1568/001","sourceCount":6},{"id":"T1568.002","name":"Dynamic Resolution: Domain Generation Algorithms","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1568","url":"https://attack.mitre.org/techniques/T1568/002","sourceCount":22},{"id":"T1568.003","name":"Dynamic Resolution: DNS Calculation","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":"T1568","url":"https://attack.mitre.org/techniques/T1568/003","sourceCount":1},{"id":"T1569","name":"System Services","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1569","sourceCount":0},{"id":"T1569.001","name":"System Services: Launchctl","tactics":["Execution"],"platforms":["macOS"],"parent":"T1569","url":"https://attack.mitre.org/techniques/T1569/001","sourceCount":6},{"id":"T1569.002","name":"System Services: Service Execution","tactics":["Execution"],"platforms":["Windows"],"parent":"T1569","url":"https://attack.mitre.org/techniques/T1569/002","sourceCount":71},{"id":"T1569.003","name":"System Services: Systemctl","tactics":["Execution"],"platforms":["Linux"],"parent":"T1569","url":"https://attack.mitre.org/techniques/T1569/003","sourceCount":1},{"id":"T1570","name":"Lateral Tool Transfer","tactics":["Lateral Movement"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1570","sourceCount":52},{"id":"T1571","name":"Non-Standard Port","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1571","sourceCount":60},{"id":"T1572","name":"Protocol Tunneling","tactics":["Command and Control"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1572","sourceCount":38},{"id":"T1573","name":"Encrypted Channel","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1573","sourceCount":17},{"id":"T1573.001","name":"Encrypted Channel: Symmetric Cryptography","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1573","url":"https://attack.mitre.org/techniques/T1573/001","sourceCount":177},{"id":"T1573.002","name":"Encrypted Channel: Asymmetric Cryptography","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":"T1573","url":"https://attack.mitre.org/techniques/T1573/002","sourceCount":89},{"id":"T1574","name":"Hijack Execution Flow","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1574","sourceCount":10},{"id":"T1574.001","name":"Hijack Execution Flow: DLL","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/001","sourceCount":103},{"id":"T1574.004","name":"Hijack Execution Flow: Dylib Hijacking","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["macOS"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/004","sourceCount":1},{"id":"T1574.005","name":"Hijack Execution Flow: Executable Installer File Permissions Weakness","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/005","sourceCount":1},{"id":"T1574.006","name":"Hijack Execution Flow: Dynamic Linker Hijacking","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Linux","macOS"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/006","sourceCount":9},{"id":"T1574.007","name":"Hijack Execution Flow: Path Interception by PATH Environment Variable","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Linux","Windows","macOS"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/007","sourceCount":3},{"id":"T1574.008","name":"Hijack Execution Flow: Path Interception by Search Order Hijacking","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/008","sourceCount":2},{"id":"T1574.009","name":"Hijack Execution Flow: Path Interception by Unquoted Path","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/009","sourceCount":2},{"id":"T1574.010","name":"Hijack Execution Flow: Services File Permissions Weakness","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/010","sourceCount":1},{"id":"T1574.011","name":"Hijack Execution Flow: Services Registry Permissions Weakness","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/011","sourceCount":1},{"id":"T1574.012","name":"Hijack Execution Flow: COR_PROFILER","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/012","sourceCount":2},{"id":"T1574.013","name":"Hijack Execution Flow: KernelCallbackTable","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/013","sourceCount":2},{"id":"T1574.014","name":"Hijack Execution Flow: AppDomainManager","tactics":["Defense Evasion","Persistence","Privilege Escalation"],"platforms":["Windows"],"parent":"T1574","url":"https://attack.mitre.org/techniques/T1574/014","sourceCount":1},{"id":"T1578","name":"Modify Cloud Compute Infrastructure","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1578","sourceCount":0},{"id":"T1578.001","name":"Modify Cloud Compute Infrastructure: Create Snapshot","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1578","url":"https://attack.mitre.org/techniques/T1578/001","sourceCount":1},{"id":"T1578.002","name":"Modify Cloud Compute Infrastructure: Create Cloud Instance","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1578","url":"https://attack.mitre.org/techniques/T1578/002","sourceCount":3},{"id":"T1578.003","name":"Modify Cloud Compute Infrastructure: Delete Cloud Instance","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1578","url":"https://attack.mitre.org/techniques/T1578/003","sourceCount":2},{"id":"T1578.004","name":"Modify Cloud Compute Infrastructure: Revert Cloud Instance","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1578","url":"https://attack.mitre.org/techniques/T1578/004","sourceCount":0},{"id":"T1578.005","name":"Modify Cloud Compute Infrastructure: Modify Cloud Compute Configurations","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":"T1578","url":"https://attack.mitre.org/techniques/T1578/005","sourceCount":0},{"id":"T1580","name":"Cloud Infrastructure Discovery","tactics":["Discovery"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1580","sourceCount":3},{"id":"T1583","name":"Acquire Infrastructure","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1583","sourceCount":8},{"id":"T1583.001","name":"Acquire Infrastructure: Domains","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/001","sourceCount":58},{"id":"T1583.002","name":"Acquire Infrastructure: DNS Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/002","sourceCount":3},{"id":"T1583.003","name":"Acquire Infrastructure: Virtual Private Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/003","sourceCount":20},{"id":"T1583.004","name":"Acquire Infrastructure: Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/004","sourceCount":10},{"id":"T1583.005","name":"Acquire Infrastructure: Botnet","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/005","sourceCount":3},{"id":"T1583.006","name":"Acquire Infrastructure: Web Services","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/006","sourceCount":27},{"id":"T1583.007","name":"Acquire Infrastructure: Serverless","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/007","sourceCount":1},{"id":"T1583.008","name":"Acquire Infrastructure: Malvertising","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1583","url":"https://attack.mitre.org/techniques/T1583/008","sourceCount":2},{"id":"T1584","name":"Compromise Infrastructure","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1584","sourceCount":2},{"id":"T1584.001","name":"Compromise Infrastructure: Domains","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/001","sourceCount":11},{"id":"T1584.002","name":"Compromise Infrastructure: DNS Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/002","sourceCount":2},{"id":"T1584.003","name":"Compromise Infrastructure: Virtual Private Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/003","sourceCount":3},{"id":"T1584.004","name":"Compromise Infrastructure: Server","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/004","sourceCount":15},{"id":"T1584.005","name":"Compromise Infrastructure: Botnet","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/005","sourceCount":5},{"id":"T1584.006","name":"Compromise Infrastructure: Web Services","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/006","sourceCount":6},{"id":"T1584.007","name":"Compromise Infrastructure: Serverless","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/007","sourceCount":0},{"id":"T1584.008","name":"Compromise Infrastructure: Network Devices","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1584","url":"https://attack.mitre.org/techniques/T1584/008","sourceCount":9},{"id":"T1585","name":"Establish Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1585","sourceCount":6},{"id":"T1585.001","name":"Establish Accounts: Social Media Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1585","url":"https://attack.mitre.org/techniques/T1585/001","sourceCount":19},{"id":"T1585.002","name":"Establish Accounts: Email Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1585","url":"https://attack.mitre.org/techniques/T1585/002","sourceCount":25},{"id":"T1585.003","name":"Establish Accounts: Cloud Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1585","url":"https://attack.mitre.org/techniques/T1585/003","sourceCount":2},{"id":"T1586","name":"Compromise Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1586","sourceCount":0},{"id":"T1586.001","name":"Compromise Accounts: Social Media Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1586","url":"https://attack.mitre.org/techniques/T1586/001","sourceCount":2},{"id":"T1586.002","name":"Compromise Accounts: Email Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1586","url":"https://attack.mitre.org/techniques/T1586/002","sourceCount":13},{"id":"T1586.003","name":"Compromise Accounts: Cloud Accounts","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1586","url":"https://attack.mitre.org/techniques/T1586/003","sourceCount":2},{"id":"T1587","name":"Develop Capabilities","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1587","sourceCount":3},{"id":"T1587.001","name":"Develop Capabilities: Malware","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1587","url":"https://attack.mitre.org/techniques/T1587/001","sourceCount":36},{"id":"T1587.002","name":"Develop Capabilities: Code Signing Certificates","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1587","url":"https://attack.mitre.org/techniques/T1587/002","sourceCount":4},{"id":"T1587.003","name":"Develop Capabilities: Digital Certificates","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1587","url":"https://attack.mitre.org/techniques/T1587/003","sourceCount":7},{"id":"T1587.004","name":"Develop Capabilities: Exploits","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1587","url":"https://attack.mitre.org/techniques/T1587/004","sourceCount":3},{"id":"T1588","name":"Obtain Capabilities","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1588","sourceCount":0},{"id":"T1588.001","name":"Obtain Capabilities: Malware","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/001","sourceCount":20},{"id":"T1588.002","name":"Obtain Capabilities: Tool","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/002","sourceCount":103},{"id":"T1588.003","name":"Obtain Capabilities: Code Signing Certificates","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/003","sourceCount":11},{"id":"T1588.004","name":"Obtain Capabilities: Digital Certificates","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/004","sourceCount":10},{"id":"T1588.005","name":"Obtain Capabilities: Exploits","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/005","sourceCount":2},{"id":"T1588.006","name":"Obtain Capabilities: Vulnerabilities","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/006","sourceCount":4},{"id":"T1588.007","name":"Obtain Capabilities: Artificial Intelligence","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1588","url":"https://attack.mitre.org/techniques/T1588/007","sourceCount":1},{"id":"T1589","name":"Gather Victim Identity Information","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1589","sourceCount":11},{"id":"T1589.001","name":"Gather Victim Identity Information: Credentials","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1589","url":"https://attack.mitre.org/techniques/T1589/001","sourceCount":7},{"id":"T1589.002","name":"Gather Victim Identity Information: Email Addresses","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1589","url":"https://attack.mitre.org/techniques/T1589/002","sourceCount":17},{"id":"T1589.003","name":"Gather Victim Identity Information: Employee Names","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1589","url":"https://attack.mitre.org/techniques/T1589/003","sourceCount":3},{"id":"T1590","name":"Gather Victim Network Information","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1590","sourceCount":3},{"id":"T1590.001","name":"Gather Victim Network Information: Domain Properties","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/001","sourceCount":2},{"id":"T1590.002","name":"Gather Victim Network Information: DNS","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/002","sourceCount":0},{"id":"T1590.003","name":"Gather Victim Network Information: Network Trust Dependencies","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/003","sourceCount":0},{"id":"T1590.004","name":"Gather Victim Network Information: Network Topology","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/004","sourceCount":3},{"id":"T1590.005","name":"Gather Victim Network Information: IP Addresses","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/005","sourceCount":3},{"id":"T1590.006","name":"Gather Victim Network Information: Network Security Appliances","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1590","url":"https://attack.mitre.org/techniques/T1590/006","sourceCount":1},{"id":"T1591","name":"Gather Victim Org Information","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1591","sourceCount":7},{"id":"T1591.001","name":"Gather Victim Org Information: Determine Physical Locations","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1591","url":"https://attack.mitre.org/techniques/T1591/001","sourceCount":1},{"id":"T1591.002","name":"Gather Victim Org Information: Business Relationships","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1591","url":"https://attack.mitre.org/techniques/T1591/002","sourceCount":3},{"id":"T1591.003","name":"Gather Victim Org Information: Identify Business Tempo","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1591","url":"https://attack.mitre.org/techniques/T1591/003","sourceCount":0},{"id":"T1591.004","name":"Gather Victim Org Information: Identify Roles","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1591","url":"https://attack.mitre.org/techniques/T1591/004","sourceCount":5},{"id":"T1592","name":"Gather Victim Host Information","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1592","sourceCount":1},{"id":"T1592.001","name":"Gather Victim Host Information: Hardware","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1592","url":"https://attack.mitre.org/techniques/T1592/001","sourceCount":0},{"id":"T1592.002","name":"Gather Victim Host Information: Software","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1592","url":"https://attack.mitre.org/techniques/T1592/002","sourceCount":3},{"id":"T1592.003","name":"Gather Victim Host Information: Firmware","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1592","url":"https://attack.mitre.org/techniques/T1592/003","sourceCount":0},{"id":"T1592.004","name":"Gather Victim Host Information: Client Configurations","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1592","url":"https://attack.mitre.org/techniques/T1592/004","sourceCount":1},{"id":"T1593","name":"Search Open Websites/Domains","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1593","sourceCount":6},{"id":"T1593.001","name":"Search Open Websites/Domains: Social Media","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1593","url":"https://attack.mitre.org/techniques/T1593/001","sourceCount":4},{"id":"T1593.002","name":"Search Open Websites/Domains: Search Engines","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1593","url":"https://attack.mitre.org/techniques/T1593/002","sourceCount":2},{"id":"T1593.003","name":"Search Open Websites/Domains: Code Repositories","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1593","url":"https://attack.mitre.org/techniques/T1593/003","sourceCount":3},{"id":"T1594","name":"Search Victim-Owned Websites","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1594","sourceCount":9},{"id":"T1595","name":"Active Scanning","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1595","sourceCount":1},{"id":"T1595.001","name":"Active Scanning: Scanning IP Blocks","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1595","url":"https://attack.mitre.org/techniques/T1595/001","sourceCount":2},{"id":"T1595.002","name":"Active Scanning: Vulnerability Scanning","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1595","url":"https://attack.mitre.org/techniques/T1595/002","sourceCount":15},{"id":"T1595.003","name":"Active Scanning: Wordlist Scanning","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1595","url":"https://attack.mitre.org/techniques/T1595/003","sourceCount":2},{"id":"T1596","name":"Search Open Technical Databases","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1596","sourceCount":2},{"id":"T1596.001","name":"Search Open Technical Databases: DNS/Passive DNS","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1596","url":"https://attack.mitre.org/techniques/T1596/001","sourceCount":0},{"id":"T1596.002","name":"Search Open Technical Databases: WHOIS","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1596","url":"https://attack.mitre.org/techniques/T1596/002","sourceCount":0},{"id":"T1596.003","name":"Search Open Technical Databases: Digital Certificates","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1596","url":"https://attack.mitre.org/techniques/T1596/003","sourceCount":0},{"id":"T1596.004","name":"Search Open Technical Databases: CDNs","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1596","url":"https://attack.mitre.org/techniques/T1596/004","sourceCount":0},{"id":"T1596.005","name":"Search Open Technical Databases: Scan Databases","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1596","url":"https://attack.mitre.org/techniques/T1596/005","sourceCount":3},{"id":"T1597","name":"Search Closed Sources","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1597","sourceCount":1},{"id":"T1597.001","name":"Search Closed Sources: Threat Intel Vendors","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1597","url":"https://attack.mitre.org/techniques/T1597/001","sourceCount":0},{"id":"T1597.002","name":"Search Closed Sources: Purchase Technical Data","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1597","url":"https://attack.mitre.org/techniques/T1597/002","sourceCount":1},{"id":"T1598","name":"Phishing for Information","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1598","sourceCount":5},{"id":"T1598.001","name":"Phishing for Information: Spearphishing Service","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1598","url":"https://attack.mitre.org/techniques/T1598/001","sourceCount":1},{"id":"T1598.002","name":"Phishing for Information: Spearphishing Attachment","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1598","url":"https://attack.mitre.org/techniques/T1598/002","sourceCount":4},{"id":"T1598.003","name":"Phishing for Information: Spearphishing Link","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1598","url":"https://attack.mitre.org/techniques/T1598/003","sourceCount":17},{"id":"T1598.004","name":"Phishing for Information: Spearphishing Voice","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":"T1598","url":"https://attack.mitre.org/techniques/T1598/004","sourceCount":4},{"id":"T1599","name":"Network Boundary Bridging","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":null,"url":"https://attack.mitre.org/techniques/T1599","sourceCount":2},{"id":"T1599.001","name":"Network Boundary Bridging: Network Address Translation Traversal","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1599","url":"https://attack.mitre.org/techniques/T1599/001","sourceCount":0},{"id":"T1600","name":"Weaken Encryption","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":null,"url":"https://attack.mitre.org/techniques/T1600","sourceCount":0},{"id":"T1600.001","name":"Weaken Encryption: Reduce Key Space","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1600","url":"https://attack.mitre.org/techniques/T1600/001","sourceCount":0},{"id":"T1600.002","name":"Weaken Encryption: Disable Crypto Hardware","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1600","url":"https://attack.mitre.org/techniques/T1600/002","sourceCount":0},{"id":"T1601","name":"Modify System Image","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":null,"url":"https://attack.mitre.org/techniques/T1601","sourceCount":0},{"id":"T1601.001","name":"Modify System Image: Patch System Image","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1601","url":"https://attack.mitre.org/techniques/T1601/001","sourceCount":1},{"id":"T1601.002","name":"Modify System Image: Downgrade System Image","tactics":["Defense Evasion"],"platforms":["Network Devices"],"parent":"T1601","url":"https://attack.mitre.org/techniques/T1601/002","sourceCount":0},{"id":"T1602","name":"Data from Configuration Repository","tactics":["Collection"],"platforms":["Network Devices"],"parent":null,"url":"https://attack.mitre.org/techniques/T1602","sourceCount":0},{"id":"T1602.001","name":"Data from Configuration Repository: SNMP (MIB Dump)","tactics":["Collection"],"platforms":["Network Devices"],"parent":"T1602","url":"https://attack.mitre.org/techniques/T1602/001","sourceCount":0},{"id":"T1602.002","name":"Data from Configuration Repository: Network Device Configuration Dump","tactics":["Collection"],"platforms":["Network Devices"],"parent":"T1602","url":"https://attack.mitre.org/techniques/T1602/002","sourceCount":1},{"id":"T1606","name":"Forge Web Credentials","tactics":["Credential Access"],"platforms":["IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1606","sourceCount":0},{"id":"T1606.001","name":"Forge Web Credentials: Web Cookies","tactics":["Credential Access"],"platforms":["IaaS","Linux","SaaS","Windows","macOS"],"parent":"T1606","url":"https://attack.mitre.org/techniques/T1606/001","sourceCount":1},{"id":"T1606.002","name":"Forge Web Credentials: SAML Tokens","tactics":["Credential Access"],"platforms":["IaaS","Identity Provider","Office Suite","SaaS","Windows"],"parent":"T1606","url":"https://attack.mitre.org/techniques/T1606/002","sourceCount":2},{"id":"T1608","name":"Stage Capabilities","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1608","sourceCount":1},{"id":"T1608.001","name":"Stage Capabilities: Upload Malware","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/001","sourceCount":33},{"id":"T1608.002","name":"Stage Capabilities: Upload Tool","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/002","sourceCount":4},{"id":"T1608.003","name":"Stage Capabilities: Install Digital Certificate","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/003","sourceCount":1},{"id":"T1608.004","name":"Stage Capabilities: Drive-by Target","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/004","sourceCount":9},{"id":"T1608.005","name":"Stage Capabilities: Link Target","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/005","sourceCount":4},{"id":"T1608.006","name":"Stage Capabilities: SEO Poisoning","tactics":["Resource Development"],"platforms":["PRE"],"parent":"T1608","url":"https://attack.mitre.org/techniques/T1608/006","sourceCount":1},{"id":"T1609","name":"Container Administration Command","tactics":["Execution"],"platforms":["Containers"],"parent":null,"url":"https://attack.mitre.org/techniques/T1609","sourceCount":5},{"id":"T1610","name":"Deploy Container","tactics":["Defense Evasion","Execution"],"platforms":["Containers"],"parent":null,"url":"https://attack.mitre.org/techniques/T1610","sourceCount":4},{"id":"T1611","name":"Escape to Host","tactics":["Privilege Escalation"],"platforms":["Containers","ESXi","Linux","Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1611","sourceCount":5},{"id":"T1612","name":"Build Image on Host","tactics":["Defense Evasion"],"platforms":["Containers"],"parent":null,"url":"https://attack.mitre.org/techniques/T1612","sourceCount":0},{"id":"T1613","name":"Container and Resource Discovery","tactics":["Discovery"],"platforms":["Containers"],"parent":null,"url":"https://attack.mitre.org/techniques/T1613","sourceCount":3},{"id":"T1614","name":"System Location Discovery","tactics":["Discovery"],"platforms":["IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1614","sourceCount":20},{"id":"T1614.001","name":"System Location Discovery: System Language Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":"T1614","url":"https://attack.mitre.org/techniques/T1614/001","sourceCount":36},{"id":"T1615","name":"Group Policy Discovery","tactics":["Discovery"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1615","sourceCount":7},{"id":"T1619","name":"Cloud Storage Object Discovery","tactics":["Discovery"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1619","sourceCount":2},{"id":"T1620","name":"Reflective Code Loading","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1620","sourceCount":28},{"id":"T1621","name":"Multi-Factor Authentication Request Generation","tactics":["Credential Access"],"platforms":["IaaS","Identity Provider","Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1621","sourceCount":4},{"id":"T1622","name":"Debugger Evasion","tactics":["Defense Evasion","Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1622","sourceCount":23},{"id":"T1647","name":"Plist File Modification","tactics":["Defense Evasion"],"platforms":["macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1647","sourceCount":2},{"id":"T1648","name":"Serverless Execution","tactics":["Execution"],"platforms":["IaaS","Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1648","sourceCount":1},{"id":"T1649","name":"Steal or Forge Authentication Certificates","tactics":["Credential Access"],"platforms":["Identity Provider","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1649","sourceCount":3},{"id":"T1650","name":"Acquire Access","tactics":["Resource Development"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1650","sourceCount":1},{"id":"T1651","name":"Cloud Administration Command","tactics":["Execution"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1651","sourceCount":3},{"id":"T1652","name":"Device Driver Discovery","tactics":["Discovery"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1652","sourceCount":4},{"id":"T1653","name":"Power Settings","tactics":["Persistence"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1653","sourceCount":3},{"id":"T1654","name":"Log Enumeration","tactics":["Discovery"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1654","sourceCount":10},{"id":"T1656","name":"Impersonation","tactics":["Defense Evasion"],"platforms":["Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1656","sourceCount":12},{"id":"T1657","name":"Financial Theft","tactics":["Impact"],"platforms":["Linux","Office Suite","SaaS","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1657","sourceCount":20},{"id":"T1659","name":"Content Injection","tactics":["Command and Control","Initial Access"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1659","sourceCount":2},{"id":"T1665","name":"Hide Infrastructure","tactics":["Command and Control"],"platforms":["ESXi","Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1665","sourceCount":7},{"id":"T1666","name":"Modify Cloud Resource Hierarchy","tactics":["Defense Evasion"],"platforms":["IaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1666","sourceCount":0},{"id":"T1667","name":"Email Bombing","tactics":["Impact"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1667","sourceCount":1},{"id":"T1668","name":"Exclusive Control","tactics":["Persistence"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1668","sourceCount":0},{"id":"T1669","name":"Wi-Fi Networks","tactics":["Initial Access"],"platforms":["Linux","Network Devices","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1669","sourceCount":2},{"id":"T1671","name":"Cloud Application Integration","tactics":["Persistence"],"platforms":["Office Suite","SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1671","sourceCount":1},{"id":"T1672","name":"Email Spoofing","tactics":["Defense Evasion"],"platforms":["Linux","Office Suite","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1672","sourceCount":0},{"id":"T1673","name":"Virtual Machine Discovery","tactics":["Discovery"],"platforms":["ESXi","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1673","sourceCount":4},{"id":"T1674","name":"Input Injection","tactics":["Execution"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1674","sourceCount":1},{"id":"T1675","name":"ESXi Administration Command","tactics":["Execution"],"platforms":["ESXi"],"parent":null,"url":"https://attack.mitre.org/techniques/T1675","sourceCount":2},{"id":"T1677","name":"Poisoned Pipeline Execution","tactics":["Execution"],"platforms":["SaaS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1677","sourceCount":0},{"id":"T1678","name":"Delay Execution","tactics":["Defense Evasion"],"platforms":["Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1678","sourceCount":4},{"id":"T1679","name":"Selective Exclusion","tactics":["Defense Evasion"],"platforms":["Windows"],"parent":null,"url":"https://attack.mitre.org/techniques/T1679","sourceCount":3},{"id":"T1680","name":"Local Storage Discovery","tactics":["Discovery"],"platforms":["ESXi","IaaS","Linux","Windows","macOS"],"parent":null,"url":"https://attack.mitre.org/techniques/T1680","sourceCount":99},{"id":"T1681","name":"Search Threat Vendor Data","tactics":["Reconnaissance"],"platforms":["PRE"],"parent":null,"url":"https://attack.mitre.org/techniques/T1681","sourceCount":2}]'),PU=JSON.parse('[{"id":"C0028","name":"2015 Ukraine Electric Power Attack","type":"campaign","techniques":["T1018","T1040","T1055","T1056.001","T1059.005","T1070.004","T1071.001","T1078","T1105","T1112","T1133","T1136.002","T1204.002","T1218.011","T1562.001","T1566.001","T1570"]},{"id":"C0025","name":"2016 Ukraine Electric Power Attack","type":"campaign","techniques":["T1003.001","T1018","T1021.002","T1027","T1027.002","T1036.005","T1036.008","T1036.010","T1047","T1059.001","T1059.003","T1059.005","T1098","T1110","T1136","T1136.002","T1505.001","T1543.003","T1554","T1562.002","T1570"]},{"id":"C0034","name":"2022 Ukraine Electric Power Attack","type":"campaign","techniques":["T1036.004","T1053.005","T1059.001","T1095","T1484.001","T1485","T1505.003","T1543.002","T1570","T1572"]},{"id":"C0057","name":"3CX Supply Chain Attack","type":"campaign","techniques":["T1027","T1027.009","T1027.013","T1055","T1055.002","T1071.001","T1078","T1102.001","T1189","T1195.002","T1203","T1217","T1218.007","T1218.015","T1543.004","T1546.016","T1553.002","T1559","T1573.001","T1574.001","T1620","T1678"]},{"id":"C0051","name":"APT28 Nearest Neighbor Campaign","type":"campaign","techniques":["T1003.002","T1003.003","T1006","T1016.002","T1021.001","T1021.002","T1059.001","T1059.003","T1074.001","T1090.001","T1110.003","T1140","T1560.001","T1561.001","T1562.004","T1567","T1584","T1669"]},{"id":"C0040","name":"APT41 DUST","type":"campaign","techniques":["T1027.013","T1036.004","T1070.004","T1071.001","T1074.001","T1102","T1105","T1119","T1213.006","T1505.003","T1543.003","T1553.002","T1560.001","T1567.002","T1569.002","T1573.002","T1574.001","T1583.007","T1586.003","T1588.003","T1593.002","T1594","T1596.005"]},{"id":"C0046","name":"ArcaneDoor","type":"campaign","techniques":["T1014","T1020","T1036","T1037","T1040","T1041","T1055","T1059","T1070.004","T1071.001","T1082","T1102.003","T1119","T1133","T1140","T1190","T1556","T1557","T1562.001","T1562.003","T1583.003","T1583.006","T1587.001","T1587.003","T1653"]},{"id":"C0010","name":"C0010","type":"campaign","techniques":["T1105","T1189","T1583.001","T1584.001","T1587.001","T1588.002","T1608.001","T1608.002","T1608.004"]},{"id":"C0011","name":"C0011","type":"campaign","techniques":["T1059.005","T1204.001","T1204.002","T1566.001","T1566.002","T1583.001","T1587.003","T1608.001"]},{"id":"C0015","name":"C0015","type":"campaign","techniques":["T1005","T1016","T1018","T1021.001","T1027","T1030","T1036","T1039","T1047","T1055.001","T1057","T1059.003","T1059.005","T1059.007","T1069.001","T1069.002","T1074.001","T1083","T1105","T1124","T1135","T1204.002","T1218.005","T1218.010","T1218.011","T1219.002","T1482","T1486","T1553.002","T1566.001","T1567.002","T1570","T1588.001","T1588.002"]},{"id":"C0017","name":"C0017","type":"campaign","techniques":["T1001.003","T1003.002","T1005","T1016","T1027","T1027.002","T1033","T1036.004","T1036.005","T1041","T1048.003","T1053.005","T1059.003","T1059.007","T1071.001","T1074.001","T1090","T1102","T1102.001","T1105","T1134","T1140","T1190","T1505.003","T1560.003","T1567","T1574","T1588.002","T1680"]},{"id":"C0018","name":"C0018","type":"campaign","techniques":["T1016","T1021.001","T1027.010","T1033","T1036","T1036.005","T1046","T1047","T1059.001","T1071.001","T1072","T1105","T1190","T1218.011","T1219.002","T1486","T1570","T1571","T1588.002"]},{"id":"C0021","name":"C0021","type":"campaign","techniques":["T1027.009","T1027.010","T1059.001","T1071.001","T1095","T1105","T1140","T1204.001","T1218.011","T1566.002","T1573.002","T1583.001","T1584.001","T1588.002","T1608.001"]},{"id":"C0026","name":"C0026","type":"campaign","techniques":["T1005","T1030","T1105","T1560.001","T1568","T1583.001"]},{"id":"C0027","name":"C0027","type":"campaign","techniques":["T1003.006","T1021.007","T1046","T1047","T1069.003","T1078.004","T1087.003","T1087.004","T1090","T1098.001","T1098.003","T1098.005","T1102","T1105","T1133","T1190","T1213.002","T1219.002","T1530","T1566.004","T1572","T1578.002","T1588.002","T1589.001","T1598.001","T1598.004","T1621","T1656"]},{"id":"C0032","name":"C0032","type":"campaign","techniques":["T1003.001","T1021.001","T1021.004","T1036.005","T1053.005","T1059.001","T1070.004","T1070.006","T1074.001","T1078","T1133","T1505.003","T1546.012","T1571","T1572","T1583.003","T1588.002"]},{"id":"C0004","name":"CostaRicto","type":"campaign","techniques":["T1005","T1046","T1053.005","T1090.003","T1105","T1133","T1572","T1583.001","T1587.001","T1588.002"]},{"id":"C0029","name":"Cutting Edge","type":"campaign","techniques":["T1003.001","T1003.003","T1005","T1021.001","T1021.002","T1021.004","T1027.013","T1055","T1056.001","T1056.003","T1059","T1059.006","T1070","T1070.004","T1070.006","T1071.004","T1078.002","T1082","T1095","T1105","T1190","T1205","T1505.003","T1554","T1560.001","T1562.001","T1572","T1584.008","T1588.002","T1594","T1595.002"]},{"id":"C0053","name":"FLORAHOX Activity","type":"campaign","techniques":["T1059","T1059.004","T1090.003","T1190","T1583.003","T1584.008"]},{"id":"C0001","name":"Frankenstein","type":"campaign","techniques":["T1005","T1016","T1020","T1027.010","T1033","T1036.004","T1041","T1047","T1053.005","T1057","T1059.001","T1059.003","T1059.005","T1071.001","T1082","T1105","T1119","T1127.001","T1140","T1203","T1204.002","T1221","T1497.001","T1518.001","T1566.001","T1573.001","T1588.002"]},{"id":"C0041","name":"FrostyGoop Incident","type":"campaign","techniques":["T1003.002","T1071","T1190","T1505.003","T1562.010"]},{"id":"C0007","name":"FunnyDream","type":"campaign","techniques":["T1016","T1018","T1047","T1049","T1057","T1059.003","T1059.005","T1082","T1105","T1560.001","T1583.001","T1585.002","T1588.001","T1588.002"]},{"id":"C0038","name":"HomeLand Justice","type":"campaign","techniques":["T1003.001","T1021.001","T1021.002","T1036.005","T1041","T1046","T1047","T1059.001","T1059.003","T1078","T1078.001","T1087.003","T1098.002","T1105","T1114.002","T1134.001","T1190","T1486","T1505.003","T1561.002","T1562.001","T1562.002","T1570","T1588.002","T1588.003"]},{"id":"C0043","name":"Indian Critical Infrastructure Intrusions","type":"campaign","techniques":["T1071.001","T1568","T1571","T1573.002","T1583.001","T1584","T1588.004","T1599"]},{"id":"C0050","name":"J-magic Campaign","type":"campaign","techniques":["T1036.005","T1583.003","T1587.003","T1588.001"]},{"id":"C0044","name":"Juicy Mix","type":"campaign","techniques":["T1053.005","T1059.001","T1059.005","T1071.001","T1074.001","T1082","T1132.001","T1140","T1217","T1518","T1555.003","T1555.004","T1584.004","T1587.001"]},{"id":"C0035","name":"KV Botnet Activity","type":"campaign","techniques":["T1016","T1036","T1036.004","T1055.009","T1057","T1059.004","T1070.004","T1082","T1083","T1095","T1105","T1222.002","T1518.001","T1546","T1562.001","T1564.013","T1571","T1573","T1583.003","T1584.008"]},{"id":"C0049","name":"Leviathan Australian Intrusions","type":"campaign","techniques":["T1018","T1021.002","T1021.004","T1041","T1056","T1068","T1074.001","T1078","T1078.002","T1078.003","T1082","T1111","T1135","T1190","T1212","T1213.006","T1482","T1505.003","T1528","T1552","T1552.001","T1558.003","T1562.004","T1588.006","T1594","T1615"]},{"id":"C0002","name":"Night Dragon","type":"campaign","techniques":["T1003.002","T1005","T1008","T1027.002","T1027.013","T1033","T1059.003","T1071.001","T1074.002","T1078","T1078.002","T1083","T1105","T1110.002","T1112","T1114.001","T1133","T1190","T1204.001","T1219","T1550.002","T1562.001","T1566.002","T1568","T1583.004","T1584.004","T1588.001","T1588.002","T1608.001"]},{"id":"C0012","name":"Operation CuckooBees","type":"campaign","techniques":["T1003.002","T1005","T1007","T1016","T1018","T1027.010","T1027.011","T1033","T1036.005","T1049","T1053.005","T1057","T1059.003","T1059.005","T1069.001","T1071.001","T1078.002","T1082","T1083","T1087.001","T1087.002","T1120","T1124","T1133","T1135","T1190","T1201","T1505.003","T1543.003","T1547.006","T1560.001","T1574.001","T1588.002"]},{"id":"C0022","name":"Operation Dream Job","type":"campaign","techniques":["T1005","T1027.002","T1027.013","T1036.008","T1041","T1047","T1053.005","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1083","T1087.002","T1105","T1106","T1110","T1204.001","T1204.002","T1218.010","T1218.011","T1220","T1221","T1497.001","T1497.003","T1505.004","T1534","T1547.001","T1553.002","T1560.001","T1566.001","T1566.002","T1566.003","T1567.002","T1573.001","T1583.001","T1583.004","T1583.006","T1584.001","T1584.004","T1585.001","T1585.002","T1587.001","T1587.002","T1588.002","T1588.003","T1589","T1591","T1591.004","T1593.001","T1608.001","T1608.002","T1614.001","T1622","T1656"]},{"id":"C0016","name":"Operation Dust Storm","type":"campaign","techniques":["T1027.002","T1027.013","T1036","T1059.005","T1059.007","T1140","T1189","T1203","T1204.001","T1204.002","T1218.005","T1518","T1566.001","T1566.002","T1568","T1583.001","T1585.002"]},{"id":"C0023","name":"Operation Ghost","type":"campaign","techniques":["T1001.002","T1027.003","T1078.002","T1102.002","T1546.003","T1583.001","T1585.001","T1587.001"]},{"id":"C0006","name":"Operation Honeybee","type":"campaign","techniques":["T1005","T1027.013","T1036","T1036.005","T1041","T1057","T1059.003","T1059.005","T1070.004","T1071.002","T1074.001","T1082","T1083","T1105","T1106","T1112","T1140","T1204.002","T1543.003","T1548.002","T1553.002","T1560.001","T1569.002","T1574.011","T1583.001","T1583.004","T1585.002","T1588.004"]},{"id":"C0048","name":"Operation MidnightEclipse","type":"campaign","techniques":["T1003.003","T1005","T1021.002","T1021.006","T1053.003","T1059.004","T1071.001","T1074.001","T1078","T1078.002","T1090","T1105","T1190","T1559","T1584.003","T1584.006","T1588.002"]},{"id":"C0013","name":"Operation Sharpshooter","type":"campaign","techniques":["T1036.005","T1055","T1059.005","T1090","T1105","T1106","T1204.002","T1547.001","T1559.002","T1583.006","T1584.004","T1587.001","T1608.001"]},{"id":"C0005","name":"Operation Spalax","type":"campaign","techniques":["T1027.002","T1027.003","T1027.013","T1059","T1102","T1140","T1204.001","T1204.002","T1218.011","T1497","T1566.001","T1566.002","T1568","T1583.001","T1588.001","T1588.002","T1608.001"]},{"id":"C0014","name":"Operation Wocao","type":"campaign","techniques":["T1001","T1003.001","T1003.006","T1005","T1007","T1012","T1016","T1016.001","T1018","T1021.002","T1027.005","T1027.010","T1033","T1036.005","T1041","T1046","T1047","T1049","T1053.005","T1055","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1059.006","T1069.001","T1070.001","T1070.004","T1071.001","T1074.001","T1078","T1078.002","T1078.003","T1082","T1083","T1087.002","T1090","T1090.001","T1090.003","T1095","T1105","T1106","T1111","T1112","T1115","T1119","T1120","T1124","T1133","T1135","T1190","T1505.003","T1518","T1518.001","T1552.004","T1555.005","T1558.003","T1560.001","T1562.004","T1569.002","T1570","T1571","T1573.002","T1583.004","T1585.002","T1587.001","T1588.002","T1589","T1680"]},{"id":"C0042","name":"Outer Space","type":"campaign","techniques":["T1027.013","T1059.005","T1071.001","T1105","T1217","T1584.004","T1585.003","T1587.001"]},{"id":"C0036","name":"Pikabot Distribution February 2024","type":"campaign","techniques":["T1059.001","T1059.007","T1566.002","T1574"]},{"id":"C0055","name":"Quad7 Activity","type":"campaign","techniques":["T1027.011","T1059.004","T1071.001","T1071.002","T1090.002","T1090.003","T1105","T1110.003","T1190","T1562.001","T1571","T1584.005","T1584.008","T1589.002","T1665"]},{"id":"C0047","name":"RedDelta Modified PlugX Infection Chain Operations","type":"campaign","techniques":["T1027.013","T1036.004","T1059.001","T1071.001","T1082","T1090","T1095","T1203","T1204.001","T1204.002","T1218.007","T1218.014","T1480","T1547.001","T1553.002","T1564.001","T1566.001","T1566.002","T1574.001","T1583.001","T1588.004","T1608.001"]},{"id":"C0056","name":"RedPenguin","type":"campaign","techniques":["T1014","T1016","T1027.013","T1036.005","T1040","T1041","T1055","T1057","T1059.004","T1059.008","T1070.004","T1070.007","T1078","T1090","T1090.003","T1095","T1104","T1105","T1140","T1203","T1205","T1554","T1562.003","T1571","T1573.001","T1587.001"]},{"id":"C0052","name":"SPACEHOP Activity","type":"campaign","techniques":["T1090.003","T1190","T1583.003","T1588.002"]},{"id":"C0059","name":"Salesforce Data Exfiltration","type":"campaign","techniques":["T1020","T1036","T1059.006","T1078.002","T1083","T1090","T1090.003","T1213.004","T1567","T1585","T1585.002","T1586.002","T1587.001","T1588.002","T1598.004","T1608.005","T1656","T1671"]},{"id":"C0045","name":"ShadowRay","type":"campaign","techniques":["T1003.008","T1016","T1027.013","T1059.006","T1068","T1105","T1190","T1496.001","T1546.004","T1588.002"]},{"id":"C0058","name":"SharePoint ToolShell Exploitation","type":"campaign","techniques":["T1003.001","T1005","T1027.002","T1027.010","T1033","T1041","T1047","T1053.005","T1059.001","T1059.003","T1071.001","T1074.001","T1082","T1083","T1090","T1105","T1112","T1119","T1140","T1190","T1484.001","T1486","T1505.003","T1505.004","T1552.001","T1562.001","T1569.002","T1570","T1572","T1583.001","T1585.002","T1588.002","T1595.002","T1620","T1657"]},{"id":"C0024","name":"SolarWinds Compromise","type":"campaign","techniques":["T1003.006","T1005","T1016.001","T1018","T1021.001","T1021.002","T1021.006","T1036.004","T1036.005","T1047","T1048.002","T1053.005","T1057","T1059.001","T1059.003","T1059.005","T1069","T1069.002","T1070","T1070.004","T1070.006","T1070.008","T1071.001","T1074.002","T1078","T1078.002","T1078.003","T1078.004","T1083","T1087","T1087.002","T1090.001","T1098.001","T1098.002","T1098.003","T1098.005","T1105","T1114.002","T1133","T1140","T1190","T1195.002","T1199","T1213","T1213.003","T1218.011","T1482","T1484.002","T1539","T1546.003","T1550","T1550.001","T1550.004","T1552.004","T1553.002","T1555","T1555.003","T1558.003","T1560.001","T1562.001","T1562.002","T1562.004","T1568","T1583.001","T1584.001","T1587.001","T1589.001","T1606.001","T1606.002","T1665","T1680"]},{"id":"C0030","name":"Triton Safety Instrumented System Attack","type":"campaign","techniques":["T1003.001","T1027.005","T1036.005","T1053.005","T1056.003","T1059.001","T1573","T1587.001","T1588.002","T1595"]},{"id":"C0039","name":"Versa Director Zero Day Exploitation","type":"campaign","techniques":["T1056","T1071.001","T1095","T1190","T1505.003","T1573.002","T1584.008","T1587.001"]},{"id":"C0037","name":"Water Curupira Pikabot Distribution","type":"campaign","techniques":["T1059.003","T1059.007","T1105","T1140","T1204","T1204.001","T1204.002","T1218.011","T1566.001","T1589.002"]},{"id":"G0099","name":"APT-C-36","type":"group","techniques":["T1027","T1036.004","T1053.005","T1059.005","T1105","T1204.002","T1566.001","T1571","T1588.002"]},{"id":"G0006","name":"APT1","type":"group","techniques":["T1003.001","T1005","T1007","T1016","T1021.001","T1036.005","T1049","T1057","T1059.003","T1087.001","T1114.001","T1114.002","T1119","T1135","T1550.002","T1560.001","T1566.001","T1566.002","T1583.001","T1584.001","T1585.002","T1588.001","T1588.002"]},{"id":"G0005","name":"APT12","type":"group","techniques":["T1102.002","T1203","T1204.002","T1566.001","T1568.003"]},{"id":"G0025","name":"APT17","type":"group","techniques":["T1583.006","T1585"]},{"id":"G0026","name":"APT18","type":"group","techniques":["T1027.013","T1053.002","T1059.003","T1070.004","T1071.001","T1071.004","T1078","T1082","T1083","T1105","T1133","T1547.001"]},{"id":"G0073","name":"APT19","type":"group","techniques":["T1016","T1027.010","T1027.013","T1033","T1059","T1059.001","T1071.001","T1082","T1112","T1132.001","T1140","T1189","T1204.002","T1218.010","T1218.011","T1543.003","T1547.001","T1564.003","T1566.001","T1574.001","T1588.002"]},{"id":"G0007","name":"APT28","type":"group","techniques":["T1001.001","T1003","T1003.001","T1003.003","T1005","T1014","T1021.002","T1025","T1027.013","T1030","T1036","T1036.005","T1037.001","T1039","T1040","T1048.002","T1056.001","T1057","T1059.001","T1059.003","T1068","T1070.001","T1070.004","T1070.006","T1071.001","T1071.003","T1074.001","T1074.002","T1078","T1078.004","T1083","T1090.002","T1090.003","T1091","T1092","T1098.002","T1102.002","T1105","T1110","T1110.001","T1110.003","T1113","T1114.002","T1119","T1120","T1133","T1134.001","T1137.002","T1140","T1189","T1190","T1199","T1203","T1204.001","T1204.002","T1210","T1211","T1213","T1213.002","T1218.011","T1221","T1498","T1505.003","T1528","T1542.003","T1546.015","T1547.001","T1550.001","T1550.002","T1557.004","T1559.002","T1560","T1560.001","T1564.001","T1564.003","T1566.001","T1567","T1573.001","T1583.001","T1583.003","T1583.006","T1584.008","T1586.002","T1588.002","T1589.001","T1591","T1595.002","T1596","T1598","T1598.003","T1669"]},{"id":"G0016","name":"APT29","type":"group","techniques":["T1003.002","T1003.004","T1005","T1016.001","T1021.007","T1027.001","T1027.002","T1027.006","T1036.005","T1037","T1037.004","T1047","T1053.005","T1059.001","T1059.006","T1059.009","T1068","T1070.004","T1070.006","T1078","T1078.003","T1078.004","T1087.004","T1090.002","T1090.003","T1090.004","T1098.002","T1098.005","T1105","T1110.001","T1110.003","T1114.002","T1133","T1136.003","T1190","T1199","T1203","T1204.001","T1204.002","T1218.005","T1505.003","T1528","T1546.003","T1546.008","T1547.001","T1548.002","T1550.003","T1553.005","T1556.007","T1562.008","T1566.001","T1566.002","T1566.003","T1568","T1573","T1583.006","T1586.002","T1586.003","T1587.001","T1587.003","T1588.002","T1595.002","T1621","T1649","T1651","T1665"]},{"id":"G0022","name":"APT3","type":"group","techniques":["T1003.001","T1005","T1016","T1018","T1021.001","T1021.002","T1027","T1027.002","T1027.005","T1033","T1036.010","T1041","T1049","T1053.005","T1056.001","T1057","T1059.001","T1059.003","T1069","T1070.004","T1074.001","T1078.002","T1082","T1083","T1087.001","T1090.002","T1095","T1098.007","T1104","T1105","T1110.002","T1136.001","T1203","T1204.001","T1218.011","T1543.003","T1546.008","T1547.001","T1552.001","T1555.003","T1560.001","T1564.003","T1566.002","T1574.001"]},{"id":"G0013","name":"APT30","type":"group","techniques":["T1204.002","T1566.001"]},{"id":"G0050","name":"APT32","type":"group","techniques":["T1003","T1003.001","T1012","T1016","T1018","T1021.002","T1027.010","T1027.011","T1027.013","T1027.016","T1033","T1036","T1036.003","T1036.004","T1036.005","T1041","T1046","T1047","T1048.003","T1049","T1053.005","T1055","T1056.001","T1059","T1059.001","T1059.003","T1059.005","T1059.007","T1068","T1070.001","T1070.004","T1070.006","T1071.001","T1071.003","T1072","T1078.003","T1082","T1083","T1087.001","T1102","T1105","T1112","T1135","T1137","T1189","T1203","T1204.001","T1204.002","T1216.001","T1218.005","T1218.010","T1218.011","T1222.002","T1505.003","T1543.003","T1547.001","T1550.002","T1550.003","T1552.002","T1560","T1564.001","T1564.003","T1564.004","T1566.001","T1566.002","T1569.002","T1570","T1571","T1574.001","T1583.001","T1583.006","T1585.001","T1588.002","T1589","T1589.002","T1598.003","T1608.001","T1608.004"]},{"id":"G0064","name":"APT33","type":"group","techniques":["T1003.001","T1003.004","T1003.005","T1027.013","T1040","T1048.003","T1053.005","T1059.001","T1059.005","T1068","T1071.001","T1078","T1078.004","T1105","T1110.003","T1132.001","T1203","T1204.001","T1204.002","T1546.003","T1547.001","T1552.001","T1552.006","T1555","T1555.003","T1560.001","T1566.001","T1566.002","T1571","T1573.001","T1588.002"]},{"id":"G0067","name":"APT37","type":"group","techniques":["T1005","T1027","T1027.003","T1033","T1036.001","T1053.005","T1055","T1057","T1059","T1059.003","T1059.005","T1059.006","T1071.001","T1082","T1102.002","T1105","T1106","T1120","T1123","T1189","T1203","T1204.002","T1529","T1547.001","T1548.002","T1555.003","T1559.002","T1561.002","T1566.001"]},{"id":"G0082","name":"APT38","type":"group","techniques":["T1005","T1027.002","T1033","T1036.003","T1036.006","T1049","T1053.003","T1053.005","T1055","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1070.001","T1070.004","T1070.006","T1071.001","T1082","T1083","T1105","T1106","T1110","T1112","T1115","T1135","T1140","T1189","T1204.001","T1204.002","T1217","T1218.001","T1218.005","T1218.007","T1218.011","T1480.002","T1485","T1486","T1505.003","T1518.001","T1529","T1543.003","T1548.002","T1553.005","T1561.002","T1562.001","T1562.003","T1562.004","T1562.013","T1565.001","T1565.002","T1565.003","T1566.001","T1569.002","T1583.001","T1588.002"]},{"id":"G0087","name":"APT39","type":"group","techniques":["T1003","T1003.001","T1005","T1012","T1018","T1021.001","T1021.002","T1021.004","T1027.002","T1027.013","T1033","T1036.005","T1041","T1046","T1053.005","T1056","T1056.001","T1059","T1059.001","T1059.005","T1059.006","T1059.010","T1070.004","T1071.001","T1071.004","T1074.001","T1078","T1083","T1090.001","T1090.002","T1102.002","T1105","T1110","T1113","T1115","T1135","T1136.001","T1140","T1190","T1197","T1204.001","T1204.002","T1505.003","T1546.010","T1547.001","T1547.009","T1553.006","T1555","T1560.001","T1566.001","T1566.002","T1569.002","T1588.002"]},{"id":"G0096","name":"APT41","type":"group","techniques":["T1003.001","T1003.002","T1003.003","T1005","T1008","T1012","T1014","T1016","T1018","T1021.001","T1021.002","T1027","T1027.002","T1030","T1033","T1036.004","T1036.005","T1037","T1046","T1047","T1049","T1053.005","T1055","T1056.001","T1059.001","T1059.003","T1059.004","T1069","T1070.001","T1070.003","T1070.004","T1071.001","T1071.002","T1071.004","T1078","T1082","T1083","T1087.001","T1087.002","T1090","T1098.007","T1102.001","T1104","T1105","T1110","T1112","T1133","T1135","T1136.001","T1190","T1195.002","T1197","T1203","T1213.003","T1218.001","T1218.011","T1480.001","T1484.001","T1486","T1496.001","T1542.003","T1543.003","T1546.008","T1547.001","T1550.002","T1553.002","T1555","T1555.003","T1560.001","T1562.006","T1566.001","T1568.002","T1569.002","T1570","T1574.001","T1574.006","T1588.002","T1595.002","T1595.003","T1596.005","T1599","T1656"]},{"id":"G1044","name":"APT42","type":"group","techniques":["T1016","T1036.005","T1047","T1053.005","T1056","T1056.001","T1059.001","T1059.005","T1070","T1070.008","T1071.001","T1082","T1087.001","T1102","T1111","T1112","T1113","T1132.001","T1518.001","T1530","T1539","T1547","T1555.003","T1566.002","T1573.002","T1583.001","T1583.003","T1585.002","T1588.002","T1608.001","T1656"]},{"id":"G1023","name":"APT5","type":"group","techniques":["T1003.001","T1003.002","T1021.001","T1021.004","T1036.005","T1049","T1053.003","T1055","T1056.001","T1057","T1059.001","T1059.003","T1070","T1070.003","T1070.004","T1070.006","T1074.001","T1078.002","T1078.004","T1083","T1098.007","T1136.001","T1190","T1505.003","T1554","T1560.001","T1562.006","T1583.005","T1654"]},{"id":"G1030","name":"Agrius","type":"group","techniques":["T1003.001","T1003.002","T1005","T1018","T1021.001","T1036","T1041","T1046","T1059.003","T1074.001","T1078.002","T1110","T1110.003","T1119","T1140","T1190","T1505.003","T1543.003","T1560.001","T1562.001","T1570","T1583"]},{"id":"G0130","name":"Ajax Security Team","type":"group","techniques":["T1056.001","T1105","T1204.002","T1555.003","T1566.001","T1566.003"]},{"id":"G1024","name":"Akira","type":"group","techniques":["T1018","T1021.001","T1027.001","T1036.005","T1059.001","T1078","T1133","T1213.002","T1219","T1482","T1486","T1531","T1558","T1560.001","T1562.001","T1567.002","T1657"]},{"id":"G0138","name":"Andariel","type":"group","techniques":["T1005","T1027.003","T1049","T1057","T1105","T1189","T1203","T1204.002","T1566.001","T1588.001","T1590.005","T1592.002"]},{"id":"G1007","name":"Aoqin Dragon","type":"group","techniques":["T1027.002","T1036","T1083","T1091","T1203","T1204.002","T1570","T1587.001","T1588.002"]},{"id":"G1049","name":"AppleJeus","type":"group","techniques":["T1566","T1657"]},{"id":"G0143","name":"Aquatic Panda","type":"group","techniques":["T1003.001","T1005","T1007","T1021","T1021.001","T1021.002","T1021.004","T1027.010","T1033","T1036.004","T1036.005","T1047","T1059.001","T1059.003","T1059.004","T1070.001","T1070.003","T1070.004","T1078.002","T1082","T1087","T1105","T1112","T1218.011","T1518.001","T1543.003","T1550.002","T1560.001","T1562.001","T1574.001","T1574.006","T1588.001","T1588.002","T1595.002","T1654"]},{"id":"G0001","name":"Axiom","type":"group","techniques":["T1001.002","T1003","T1005","T1021.001","T1078","T1189","T1190","T1203","T1546.008","T1553","T1560","T1563.002","T1566","T1583.002","T1583.003","T1584.005"]},{"id":"G1002","name":"BITTER","type":"group","techniques":["T1027.013","T1036.004","T1053.005","T1068","T1071.001","T1095","T1105","T1203","T1204.002","T1559.002","T1566.001","T1568","T1573","T1583.001","T1588.002","T1608.001"]},{"id":"G0060","name":"BRONZE BUTLER","type":"group","techniques":["T1003.001","T1005","T1007","T1018","T1027.001","T1027.003","T1036","T1036.002","T1036.005","T1039","T1053.002","T1053.005","T1059.001","T1059.003","T1059.005","T1059.006","T1070.004","T1071.001","T1080","T1083","T1087.002","T1102.001","T1105","T1113","T1124","T1132.001","T1140","T1189","T1203","T1204.002","T1518","T1547.001","T1548.002","T1550.003","T1560.001","T1562.001","T1566.001","T1573.001","T1574.001","T1588.002"]},{"id":"G0135","name":"BackdoorDiplomacy","type":"group","techniques":["T1027","T1036.004","T1036.005","T1046","T1049","T1055.001","T1074.001","T1095","T1105","T1120","T1190","T1505.003","T1574.001","T1588.001","T1588.002"]},{"id":"G1043","name":"BlackByte","type":"group","techniques":["T1003","T1012","T1016","T1018","T1021.001","T1021.002","T1036.008","T1041","T1046","T1047","T1053.005","T1055","T1055.012","T1059.001","T1059.003","T1068","T1070.004","T1071.001","T1078","T1078.002","T1082","T1087.002","T1105","T1112","T1134.003","T1135","T1136.002","T1140","T1190","T1219","T1480","T1482","T1486","T1490","T1491.001","T1505.003","T1518.001","T1543.003","T1547.001","T1560","T1562","T1562.001","T1562.004","T1567","T1569.002","T1570","T1583.003","T1608.001","T1614.001"]},{"id":"G0098","name":"BlackTech","type":"group","techniques":["T1021.004","T1036.002","T1046","T1106","T1190","T1203","T1204.001","T1204.002","T1566.001","T1566.002","T1574.001","T1588.002","T1588.003","T1588.004"]},{"id":"G0108","name":"Blue Mockingbird","type":"group","techniques":["T1003.001","T1021.001","T1021.002","T1027.013","T1036.005","T1047","T1053.005","T1059.001","T1059.003","T1082","T1090","T1112","T1134","T1190","T1218.010","T1218.011","T1496.001","T1543.003","T1546.003","T1569.002","T1574.012","T1588.002"]},{"id":"G1012","name":"CURIUM","type":"group","techniques":["T1005","T1041","T1048.002","T1059.001","T1082","T1124","T1189","T1204.002","T1505.003","T1566.001","T1566.003","T1583.001","T1583.003","T1583.004","T1584.006","T1585.001","T1585.002","T1598.003","T1608.004"]},{"id":"G0008","name":"Carbanak","type":"group","techniques":["T1036.004","T1036.005","T1078","T1102.002","T1218.011","T1219","T1543.003","T1562.004","T1588.002"]},{"id":"G0114","name":"Chimera","type":"group","techniques":["T1003.003","T1007","T1012","T1016","T1018","T1021.001","T1021.002","T1021.006","T1027.010","T1033","T1036.005","T1039","T1041","T1046","T1047","T1049","T1053.005","T1057","T1059.001","T1059.003","T1069.001","T1070.001","T1070.004","T1070.006","T1071.001","T1071.004","T1074.001","T1074.002","T1078","T1078.002","T1083","T1087.001","T1087.002","T1105","T1106","T1110.003","T1110.004","T1111","T1114.001","T1114.002","T1119","T1124","T1133","T1135","T1201","T1213.002","T1217","T1482","T1550.002","T1556.001","T1560.001","T1567.002","T1569.002","T1570","T1572","T1574.001","T1588.002","T1589.001","T1680"]},{"id":"G1021","name":"Cinnamon Tempest","type":"group","techniques":["T1021.002","T1047","T1059.001","T1059.003","T1059.006","T1078","T1078.002","T1080","T1090","T1105","T1140","T1190","T1484.001","T1543.003","T1567.002","T1572","T1574.001","T1588.002","T1657"]},{"id":"G0003","name":"Cleaver","type":"group","techniques":["T1003.001","T1557.002","T1585.001","T1587.001","T1588.002"]},{"id":"G0080","name":"Cobalt Group","type":"group","techniques":["T1021.001","T1027.010","T1037.001","T1046","T1053.005","T1055","T1059.001","T1059.003","T1059.005","T1059.007","T1068","T1070.004","T1071.001","T1071.004","T1105","T1195.002","T1203","T1204.001","T1204.002","T1218.003","T1218.008","T1218.010","T1219","T1220","T1518.001","T1543.003","T1547.001","T1548.002","T1559.002","T1566.001","T1566.002","T1572","T1573.002","T1588.002"]},{"id":"G0142","name":"Confucius","type":"group","techniques":["T1041","T1053.005","T1059.001","T1059.005","T1071.001","T1083","T1105","T1119","T1203","T1204.001","T1204.002","T1218.005","T1221","T1547.001","T1566.001","T1566.002","T1567.002","T1583.006","T1680"]},{"id":"G1052","name":"Contagious Interview","type":"group","techniques":["T1027.010","T1027.013","T1036","T1041","T1048.003","T1059.003","T1059.004","T1059.005","T1059.006","T1059.007","T1070.004","T1071.003","T1082","T1083","T1090","T1204.001","T1204.002","T1204.004","T1204.005","T1219.002","T1480","T1497","T1543.001","T1546.004","T1547.001","T1547.013","T1555.001","T1562.001","T1566.003","T1567","T1567.002","T1571","T1573.001","T1583","T1583.001","T1583.003","T1583.006","T1585","T1585.001","T1585.002","T1587","T1587.001","T1588.002","T1588.007","T1589","T1593","T1593.001","T1593.003","T1608.001","T1656","T1657","T1681"]},{"id":"G0052","name":"CopyKittens","type":"group","techniques":["T1059.001","T1090","T1218.011","T1553.002","T1560.001","T1560.003","T1564.003","T1588.002"]},{"id":"G1034","name":"Daggerfly","type":"group","techniques":["T1003.002","T1012","T1036.003","T1053.005","T1059.001","T1071.001","T1082","T1105","T1136.001","T1189","T1195.002","T1204.001","T1218.011","T1553.002","T1574.001","T1584.004","T1587.002"]},{"id":"G0070","name":"Dark Caracal","type":"group","techniques":["T1005","T1027.002","T1027.013","T1059.003","T1071.001","T1083","T1113","T1189","T1204.002","T1218.001","T1547.001","T1566.003"]},{"id":"G0079","name":"DarkHydrus","type":"group","techniques":["T1059.001","T1187","T1204.002","T1221","T1564.003","T1566.001","T1588.002"]},{"id":"G0105","name":"DarkVishnya","type":"group","techniques":["T1040","T1046","T1059.001","T1110","T1135","T1200","T1219","T1543.003","T1571","T1588.002"]},{"id":"G0012","name":"Darkhotel","type":"group","techniques":["T1016","T1027.013","T1036.005","T1056.001","T1057","T1059.003","T1080","T1082","T1083","T1091","T1105","T1124","T1140","T1189","T1203","T1204.002","T1497","T1497.001","T1497.002","T1518.001","T1547.001","T1553.002","T1566.001","T1573.001"]},{"id":"G0009","name":"Deep Panda","type":"group","techniques":["T1018","T1021.002","T1027.005","T1047","T1057","T1059.001","T1218.010","T1505.003","T1546.008","T1564.003"]},{"id":"G0035","name":"Dragonfly","type":"group","techniques":["T1003.002","T1003.003","T1003.004","T1005","T1012","T1016","T1018","T1021.001","T1033","T1036.010","T1053.005","T1059","T1059.001","T1059.003","T1059.006","T1069.002","T1070.001","T1070.004","T1071.002","T1074.001","T1078","T1083","T1087.002","T1098.007","T1105","T1110","T1110.002","T1112","T1113","T1114.002","T1133","T1135","T1136.001","T1187","T1189","T1190","T1195.002","T1203","T1204.002","T1210","T1221","T1505.003","T1547.001","T1560","T1562.004","T1564.002","T1566.001","T1583.001","T1583.003","T1584.004","T1588.002","T1591.002","T1595.002","T1598.002","T1598.003","T1608.004"]},{"id":"G1011","name":"EXOTIC LILY","type":"group","techniques":["T1102","T1203","T1204.001","T1204.002","T1566.001","T1566.002","T1566.003","T1583.001","T1585.001","T1585.002","T1589.002","T1593.001","T1594","T1597","T1608.001"]},{"id":"G1006","name":"Earth Lusca","type":"group","techniques":["T1003.001","T1003.006","T1007","T1016","T1018","T1027","T1027.003","T1033","T1036.005","T1047","T1049","T1053.005","T1057","T1059.001","T1059.005","T1059.006","T1059.007","T1090","T1098.004","T1112","T1140","T1189","T1190","T1204.001","T1204.002","T1210","T1218.005","T1482","T1543.003","T1547.012","T1548.002","T1560.001","T1566.002","T1567.002","T1574.001","T1583.001","T1583.004","T1583.006","T1584.004","T1584.006","T1588.001","T1588.002","T1595.002","T1608.001"]},{"id":"G0066","name":"Elderwood","type":"group","techniques":["T1027.002","T1027.013","T1105","T1189","T1203","T1204.001","T1204.002","T1566.001","T1566.002"]},{"id":"G1003","name":"Ember Bear","type":"group","techniques":["T1003","T1003.001","T1003.002","T1003.004","T1005","T1018","T1021","T1036","T1036.005","T1046","T1047","T1053.005","T1059.001","T1070.004","T1071.004","T1078.001","T1090.003","T1095","T1110","T1110.003","T1112","T1114","T1119","T1125","T1133","T1190","T1195","T1203","T1210","T1491.002","T1505.003","T1550.002","T1552.001","T1560","T1561.002","T1562.001","T1567.002","T1570","T1571","T1572","T1583","T1583.003","T1585","T1588.001","T1588.005","T1595.001","T1595.002","T1654"]},{"id":"G0020","name":"Equation","type":"group","techniques":["T1120","T1480.001","T1542.002","T1564.005"]},{"id":"G0120","name":"Evilnum","type":"group","techniques":["T1059.007","T1070.004","T1105","T1204.001","T1219.002","T1497.001","T1539","T1548.002","T1555","T1566.002","T1574.001"]},{"id":"G0051","name":"FIN10","type":"group","techniques":["T1021.001","T1033","T1053.005","T1059.001","T1059.003","T1070.004","T1078","T1078.003","T1547.001","T1570","T1588.002"]},{"id":"G1016","name":"FIN13","type":"group","techniques":["T1003.001","T1003.002","T1003.003","T1005","T1016","T1016.001","T1021.001","T1021.002","T1021.004","T1021.006","T1036","T1036.004","T1036.005","T1046","T1047","T1049","T1053.005","T1056.001","T1059.001","T1059.003","T1059.005","T1069","T1071.001","T1074.001","T1078.001","T1082","T1083","T1087","T1087.002","T1090.001","T1098.007","T1105","T1133","T1134.003","T1135","T1136.001","T1140","T1190","T1505.003","T1547.001","T1550.002","T1552.001","T1556","T1560.001","T1564.001","T1565","T1572","T1574.001","T1587.001","T1588.002","T1589","T1590.004","T1657"]},{"id":"G0085","name":"FIN4","type":"group","techniques":["T1056.001","T1056.002","T1059.005","T1071.001","T1078","T1090.003","T1114.002","T1204.001","T1204.002","T1564.008","T1566.001","T1566.002"]},{"id":"G0053","name":"FIN5","type":"group","techniques":["T1018","T1059","T1070.001","T1070.004","T1074.001","T1078","T1090.002","T1110","T1119","T1133","T1588.002"]},{"id":"G0037","name":"FIN6","type":"group","techniques":["T1003.001","T1003.003","T1005","T1018","T1021.001","T1027.010","T1036.004","T1046","T1047","T1048.003","T1053.005","T1059","T1059.001","T1059.003","T1059.007","T1068","T1070.004","T1074.002","T1078","T1087.002","T1095","T1102","T1110.002","T1119","T1134","T1204.002","T1213.006","T1547.001","T1553.002","T1555","T1555.003","T1560","T1560.003","T1562.001","T1566.001","T1566.003","T1569.002","T1572","T1573.002","T1588.002"]},{"id":"G0046","name":"FIN7","type":"group","techniques":["T1005","T1008","T1021.001","T1021.004","T1021.005","T1027.010","T1027.016","T1033","T1036.004","T1036.005","T1047","T1053.005","T1057","T1059","T1059.001","T1059.003","T1059.005","T1059.007","T1069.002","T1071.004","T1078","T1078.003","T1082","T1087.002","T1091","T1102.002","T1105","T1113","T1124","T1125","T1140","T1190","T1195.002","T1204.001","T1204.002","T1210","T1218.005","T1218.011","T1219","T1486","T1497.002","T1543.003","T1546.011","T1547.001","T1553.002","T1558.003","T1559.002","T1562.004","T1564.001","T1564.003","T1566.001","T1566.002","T1567.002","T1569.002","T1571","T1572","T1583.001","T1583.006","T1587.001","T1588.002","T1591","T1591.004","T1608.001","T1608.004","T1608.005","T1620","T1674"]},{"id":"G0061","name":"FIN8","type":"group","techniques":["T1003.001","T1016.001","T1018","T1021.001","T1021.002","T1027.010","T1033","T1047","T1048.003","T1053.005","T1055.004","T1059.001","T1059.003","T1068","T1070.001","T1070.004","T1071.001","T1074.002","T1078","T1082","T1102","T1105","T1112","T1134.001","T1204.001","T1204.002","T1482","T1486","T1518.001","T1546.003","T1560.001","T1566.001","T1566.002","T1573.002","T1588.002","T1588.003"]},{"id":"G0137","name":"Ferocious Kitten","type":"group","techniques":["T1036.002","T1036.005","T1204.002","T1566.001","T1583.001","T1588.002"]},{"id":"G0117","name":"Fox Kitten","type":"group","techniques":["T1003.001","T1003.003","T1005","T1012","T1018","T1021.001","T1021.002","T1021.004","T1021.005","T1027.010","T1027.013","T1036.004","T1036.005","T1039","T1046","T1053.005","T1059","T1059.001","T1059.003","T1078","T1083","T1087.001","T1087.002","T1090","T1102","T1105","T1110","T1136.001","T1190","T1210","T1213.005","T1217","T1505.003","T1530","T1546.008","T1552.001","T1555.005","T1560.001","T1572","T1585","T1585.001"]},{"id":"G0093","name":"GALLIUM","type":"group","techniques":["T1003.001","T1003.002","T1005","T1016","T1018","T1027","T1027.002","T1027.005","T1033","T1036.003","T1041","T1047","T1049","T1053.005","T1059.001","T1059.003","T1074.001","T1078","T1090.002","T1105","T1133","T1136.002","T1190","T1505.003","T1550.002","T1553.002","T1560.001","T1570","T1574.001","T1583.004","T1588.002"]},{"id":"G0036","name":"GCMAN","type":"group","techniques":["T1021.004","T1021.005"]},{"id":"G0115","name":"GOLD SOUTHFIELD","type":"group","techniques":["T1027.010","T1059.001","T1113","T1133","T1190","T1195.002","T1199","T1219","T1566"]},{"id":"G0084","name":"Gallmaker","type":"group","techniques":["T1027","T1059.001","T1204.002","T1559.002","T1560.001","T1566.001"]},{"id":"G0047","name":"Gamaredon Group","type":"group","techniques":["T1001","T1005","T1012","T1016.001","T1020","T1021.005","T1025","T1027","T1027.004","T1027.010","T1027.012","T1027.015","T1027.016","T1033","T1036.005","T1039","T1041","T1047","T1053.005","T1055","T1057","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1080","T1082","T1083","T1090","T1090.003","T1091","T1095","T1102","T1102.002","T1102.003","T1105","T1106","T1112","T1113","T1119","T1120","T1137","T1140","T1204.001","T1204.002","T1218.005","T1218.011","T1221","T1480","T1491.001","T1497.001","T1518.001","T1534","T1547.001","T1559.001","T1561.001","T1562.001","T1564.003","T1566.001","T1568","T1568.001","T1571","T1583.001","T1583.003","T1583.006","T1587.003","T1588.002","T1608.001","T1620"]},{"id":"G0078","name":"Gorgon Group","type":"group","techniques":["T1055.002","T1055.012","T1059.001","T1059.003","T1059.005","T1105","T1106","T1112","T1140","T1204.002","T1547.001","T1547.009","T1562.001","T1564.003","T1566.001","T1588.002"]},{"id":"G0043","name":"Group5","type":"group","techniques":["T1027.013","T1056.001","T1070.004","T1113"]},{"id":"G0125","name":"HAFNIUM","type":"group","techniques":["T1003.001","T1003.003","T1005","T1016","T1016.001","T1018","T1033","T1057","T1059.001","T1059.003","T1068","T1070.001","T1071.001","T1078.003","T1078.004","T1083","T1095","T1098","T1105","T1110.003","T1114.002","T1119","T1132.001","T1136.002","T1190","T1199","T1213.002","T1218.011","T1505.003","T1530","T1550.001","T1555.006","T1560.001","T1564.001","T1567.002","T1583.003","T1583.005","T1583.006","T1584.005","T1589.002","T1590","T1590.005","T1592.004","T1593.003"]},{"id":"G1001","name":"HEXANE","type":"group","techniques":["T1010","T1016","T1016.001","T1018","T1021.001","T1027.010","T1033","T1049","T1053.005","T1056.001","T1057","T1059.001","T1059.005","T1069.001","T1082","T1102.002","T1105","T1110","T1110.003","T1204.002","T1518","T1534","T1546.003","T1555","T1555.003","T1567.002","T1583.001","T1583.002","T1585.001","T1585.002","T1586.002","T1588.002","T1589","T1589.002","T1591.004","T1608.001"]},{"id":"G0126","name":"Higaisa","type":"group","techniques":["T1001.003","T1016","T1027.001","T1027.013","T1027.015","T1029","T1036.004","T1041","T1053.005","T1057","T1059.003","T1059.005","T1059.007","T1071.001","T1082","T1090.001","T1106","T1124","T1140","T1203","T1204.002","T1220","T1547.001","T1564.003","T1566.001","T1573.001","T1574.001","T1680"]},{"id":"G1032","name":"INC Ransom","type":"group","techniques":["T1021.001","T1036.005","T1046","T1047","T1049","T1059.003","T1069.002","T1070.004","T1071","T1074","T1078","T1087.002","T1105","T1135","T1190","T1219","T1486","T1537","T1560.001","T1562.001","T1566","T1569.002","T1570","T1588.002","T1657"]},{"id":"G0100","name":"Inception","type":"group","techniques":["T1005","T1027.013","T1057","T1059.001","T1059.005","T1069.002","T1071.001","T1082","T1083","T1090.003","T1102","T1203","T1204.002","T1218.005","T1218.010","T1221","T1518","T1547.001","T1555.003","T1566.001","T1573.001","T1588.002"]},{"id":"G0136","name":"IndigoZebra","type":"group","techniques":["T1105","T1204.002","T1566.001","T1583.001","T1583.006","T1586.002","T1588.002"]},{"id":"G0119","name":"Indrik Spider","type":"group","techniques":["T1003.001","T1007","T1012","T1018","T1021.001","T1021.004","T1036.005","T1047","T1059.001","T1059.003","T1059.007","T1070.001","T1074.001","T1078","T1078.002","T1105","T1112","T1136","T1136.001","T1204.002","T1484.001","T1486","T1489","T1552.001","T1555.005","T1558.003","T1562.001","T1567.002","T1583","T1584.004","T1585.002","T1587.001","T1590"]},{"id":"G0004","name":"Ke3chang","type":"group","techniques":["T1003.001","T1003.002","T1003.003","T1003.004","T1005","T1007","T1016","T1018","T1020","T1021.002","T1027","T1033","T1036.002","T1036.005","T1041","T1049","T1056.001","T1057","T1059","T1059.003","T1069.002","T1071.001","T1071.004","T1078","T1078.004","T1082","T1083","T1087.001","T1087.002","T1105","T1114.002","T1119","T1133","T1140","T1190","T1213.002","T1543.003","T1547.001","T1558.001","T1560","T1560.001","T1569.002","T1583.005","T1587.001","T1588.002","T1614.001"]},{"id":"G0094","name":"Kimsuky","type":"group","techniques":["T1003.001","T1005","T1007","T1012","T1016","T1021.001","T1027","T1027.001","T1027.002","T1027.010","T1027.012","T1027.016","T1036.004","T1036.005","T1036.007","T1040","T1041","T1053.005","T1055","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1059.006","T1059.007","T1070.004","T1070.006","T1071.001","T1071.002","T1071.003","T1074.001","T1078.003","T1082","T1083","T1098.007","T1102.001","T1102.002","T1105","T1111","T1112","T1113","T1114.002","T1114.003","T1133","T1136.001","T1140","T1176.001","T1185","T1190","T1204.001","T1204.002","T1205","T1218.005","T1218.010","T1218.011","T1219.002","T1505.003","T1518.001","T1534","T1539","T1543.003","T1546.001","T1547.001","T1550.002","T1552.001","T1553.002","T1555.003","T1557","T1560.001","T1560.003","T1562.001","T1562.004","T1564.002","T1564.003","T1566","T1566.001","T1566.002","T1567.002","T1583","T1583.001","T1583.004","T1583.006","T1584.001","T1585","T1585.001","T1585.002","T1586.002","T1587","T1587.001","T1588.002","T1588.003","T1588.005","T1589.002","T1589.003","T1591","T1593","T1593.001","T1593.002","T1594","T1596","T1598","T1598.003","T1608.001","T1620","T1656","T1657","T1680"]},{"id":"G1004","name":"LAPSUS$","type":"group","techniques":["T1003.003","T1003.006","T1005","T1068","T1069.002","T1078","T1078.004","T1087.002","T1090","T1098.003","T1111","T1114.003","T1133","T1136.003","T1199","T1204","T1213.001","T1213.002","T1213.003","T1213.005","T1485","T1489","T1531","T1552.008","T1555.003","T1555.005","T1578.002","T1578.003","T1583.003","T1584.002","T1586.002","T1588.001","T1588.002","T1589","T1589.001","T1589.002","T1591.002","T1591.004","T1593.003","T1597.002","T1598.004","T1621","T1656"]},{"id":"G0032","name":"Lazarus Group","type":"group","techniques":["T1001.003","T1005","T1008","T1010","T1012","T1016","T1021.001","T1021.002","T1021.004","T1027.007","T1027.009","T1027.013","T1033","T1036.003","T1036.004","T1036.005","T1041","T1046","T1047","T1048.003","T1049","T1053.005","T1055.001","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1070","T1070.003","T1070.004","T1070.006","T1071.001","T1074.001","T1078","T1082","T1083","T1090.001","T1090.002","T1098","T1102.002","T1104","T1105","T1106","T1110.003","T1124","T1132.001","T1134.002","T1140","T1189","T1202","T1203","T1204.002","T1218","T1218.005","T1218.011","T1485","T1489","T1491.001","T1529","T1542.003","T1543.003","T1547.001","T1547.009","T1553.002","T1557.001","T1560","T1560.002","T1560.003","T1561.001","T1561.002","T1562.001","T1562.004","T1564.001","T1566.001","T1566.002","T1566.003","T1571","T1573.001","T1574.001","T1574.013","T1583.001","T1583.006","T1584.004","T1585.001","T1585.002","T1587.001","T1588.002","T1588.004","T1589.002","T1591","T1620","T1680"]},{"id":"G0140","name":"LazyScripter","type":"group","techniques":["T1027.010","T1036","T1059.001","T1059.003","T1059.005","T1059.007","T1071.004","T1102","T1105","T1204.001","T1204.002","T1218.005","T1218.011","T1547.001","T1566.001","T1566.002","T1583.001","T1583.006","T1588.001","T1608.001"]},{"id":"G0077","name":"Leafminer","type":"group","techniques":["T1003.001","T1003.004","T1003.005","T1018","T1027.010","T1046","T1055.013","T1059.007","T1083","T1110.003","T1114.002","T1136.001","T1189","T1552.001","T1555","T1555.003","T1588.002"]},{"id":"G0065","name":"Leviathan","type":"group","techniques":["T1003","T1003.001","T1021.001","T1021.004","T1027.001","T1027.003","T1027.013","T1027.015","T1041","T1047","T1055.001","T1059.001","T1059.005","T1074.001","T1074.002","T1078","T1090.003","T1102.003","T1105","T1133","T1140","T1189","T1190","T1197","T1203","T1204.001","T1204.002","T1218.010","T1505.003","T1534","T1546.003","T1547.001","T1547.009","T1553.002","T1559.002","T1560","T1566.001","T1566.002","T1567.002","T1572","T1583.001","T1584.004","T1584.008","T1585.001","T1585.002","T1586.001","T1586.002","T1587.004","T1589.001","T1595.002"]},{"id":"G0030","name":"Lotus Blossom","type":"group","techniques":["T1012","T1016","T1016.001","T1018","T1046","T1047","T1049","T1074.001","T1083","T1087.001","T1087.002","T1090.001","T1090.003","T1112","T1134","T1482","T1539","T1543.003","T1560.001","T1560.003","T1588.002"]},{"id":"G1014","name":"LuminousMoth","type":"group","techniques":["T1005","T1030","T1033","T1036.005","T1041","T1053.005","T1071.001","T1083","T1091","T1105","T1112","T1204.001","T1539","T1547.001","T1553.002","T1557.002","T1560","T1564.001","T1566.002","T1567.002","T1574.001","T1587.001","T1588.001","T1588.002","T1588.004","T1608.001","T1608.004","T1608.005"]},{"id":"G0095","name":"Machete","type":"group","techniques":["T1036.005","T1053.005","T1059.003","T1059.005","T1059.006","T1189","T1204.001","T1204.002","T1218.007","T1566.001","T1566.002"]},{"id":"G0059","name":"Magic Hound","type":"group","techniques":["T1003.001","T1005","T1016","T1016.001","T1016.002","T1018","T1021.001","T1027.010","T1027.013","T1033","T1036.004","T1036.005","T1036.010","T1046","T1047","T1049","T1053.005","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1070.003","T1070.004","T1071","T1071.001","T1078.001","T1078.002","T1082","T1083","T1087.003","T1090","T1098.002","T1098.007","T1102.002","T1105","T1112","T1113","T1114","T1114.001","T1114.002","T1136.001","T1189","T1190","T1204.001","T1204.002","T1218.011","T1482","T1486","T1505.003","T1547.001","T1560.001","T1562","T1562.001","T1562.002","T1562.004","T1564.003","T1566.002","T1566.003","T1567","T1570","T1571","T1572","T1573","T1583.001","T1583.006","T1584.001","T1585.001","T1585.002","T1586.002","T1588.002","T1589","T1589.001","T1589.002","T1590.005","T1591.001","T1592.002","T1595.002","T1598.003"]},{"id":"G1026","name":"Malteiro","type":"group","techniques":["T1027.013","T1055.001","T1059.005","T1082","T1140","T1204.002","T1518.001","T1555","T1555.003","T1566.001","T1614.001","T1657"]},{"id":"G1051","name":"Medusa Group","type":"group","techniques":["T1003.001","T1003.003","T1016","T1018","T1021.001","T1027.002","T1027.010","T1033","T1046","T1047","T1057","T1059.001","T1059.003","T1069.002","T1070.003","T1070.004","T1071.001","T1072","T1078","T1082","T1083","T1087.001","T1090.003","T1105","T1106","T1112","T1135","T1136.002","T1190","T1218.014","T1219","T1486","T1489","T1490","T1505.003","T1518.001","T1529","T1543.003","T1548.002","T1553.002","T1559.001","T1562.001","T1562.003","T1562.004","T1564.003","T1567.002","T1569.002","T1570","T1573.002","T1583.006","T1585.001","T1585.002","T1588.002","T1608.002","T1650","T1652","T1657"]},{"id":"G1013","name":"Metador","type":"group","techniques":["T1027.013","T1059.003","T1070.004","T1071.001","T1095","T1105","T1546.003","T1588.001","T1588.002"]},{"id":"G0103","name":"Mofang","type":"group","techniques":["T1027.013","T1027.015","T1204.001","T1204.002","T1566.001","T1566.002"]},{"id":"G0021","name":"Molerats","type":"group","techniques":["T1027.015","T1053.005","T1057","T1059.001","T1059.005","T1059.007","T1105","T1140","T1204.001","T1204.002","T1218.007","T1547.001","T1553.002","T1555.003","T1566.001","T1566.002"]},{"id":"G1036","name":"Moonstone Sleet","type":"group","techniques":["T1003.001","T1016","T1027","T1027.009","T1027.013","T1033","T1053.005","T1071.001","T1082","T1105","T1140","T1195.002","T1204.002","T1217","T1486","T1547.001","T1566.001","T1566.003","T1569.002","T1583.001","T1583.003","T1585.001","T1585.002","T1587","T1587.001","T1589.002","T1591","T1598","T1598.003","T1608.001"]},{"id":"G1009","name":"Moses Staff","type":"group","techniques":["T1016","T1021.002","T1027.013","T1082","T1087.001","T1105","T1190","T1505.003","T1553.002","T1562.004","T1587.001","T1588.002"]},{"id":"G1019","name":"MoustachedBouncer","type":"group","techniques":["T1027.002","T1059.001","T1059.007","T1068","T1074.002","T1090","T1113","T1659"]},{"id":"G0069","name":"MuddyWater","type":"group","techniques":["T1003.001","T1003.004","T1003.005","T1016","T1027.003","T1027.004","T1027.010","T1033","T1036.005","T1041","T1047","T1049","T1053.005","T1057","T1059.001","T1059.003","T1059.005","T1059.006","T1059.007","T1071.001","T1074.001","T1082","T1083","T1087.002","T1090.002","T1102.002","T1104","T1105","T1113","T1132.001","T1137.001","T1140","T1190","T1203","T1204.001","T1204.002","T1210","T1218.003","T1218.005","T1218.011","T1219","T1518","T1518.001","T1547.001","T1548.002","T1552.001","T1555","T1555.003","T1559.001","T1559.002","T1560.001","T1562.001","T1566.001","T1566.002","T1573.001","T1574.001","T1583.006","T1588.002"]},{"id":"G0129","name":"Mustang Panda","type":"group","techniques":["T1001.003","T1003","T1003.001","T1003.003","T1003.006","T1016","T1018","T1027","T1027.007","T1027.012","T1027.016","T1036.005","T1036.007","T1036.008","T1041","T1046","T1047","T1048.003","T1049","T1052.001","T1053.005","T1057","T1059","T1059.001","T1059.003","T1059.005","T1059.007","T1069.002","T1070","T1070.004","T1070.006","T1071.001","T1072","T1074.001","T1082","T1083","T1087.002","T1091","T1095","T1102","T1105","T1106","T1119","T1129","T1140","T1176.002","T1203","T1204.001","T1204.002","T1205","T1218.004","T1218.005","T1219.001","T1219.002","T1505.003","T1518","T1546.003","T1547.001","T1553.002","T1557","T1560.001","T1560.003","T1564.001","T1566.001","T1566.002","T1567.002","T1572","T1573.001","T1574.001","T1574.005","T1583.001","T1583.006","T1585.002","T1586.002","T1587.001","T1588.002","T1588.003","T1588.004","T1593","T1598.003","T1608","T1608.001","T1622","T1654","T1678"]},{"id":"G1020","name":"Mustard Tempest","type":"group","techniques":["T1036.005","T1082","T1105","T1189","T1204.001","T1566.002","T1583.004","T1583.008","T1584.001","T1608.001","T1608.004","T1608.006"]},{"id":"G0019","name":"Naikon","type":"group","techniques":["T1016","T1018","T1036.004","T1036.005","T1046","T1047","T1053.005","T1078.002","T1137.006","T1204.002","T1518.001","T1547.001","T1566.001","T1574.001"]},{"id":"G0133","name":"Nomadic Octopus","type":"group","techniques":["T1036","T1059.001","T1059.003","T1105","T1204.002","T1564.003","T1566.001"]},{"id":"G0049","name":"OilRig","type":"group","techniques":["T1003.001","T1003.004","T1003.005","T1005","T1007","T1008","T1012","T1016","T1021.001","T1021.004","T1025","T1027.005","T1027.013","T1033","T1036","T1036.005","T1046","T1047","T1048.003","T1049","T1053.005","T1056.001","T1057","T1059","T1059.001","T1059.003","T1059.005","T1068","T1069.001","T1069.002","T1070.004","T1071.001","T1071.004","T1078","T1078.002","T1082","T1087.001","T1087.002","T1105","T1110","T1112","T1113","T1115","T1119","T1120","T1133","T1137.004","T1140","T1195","T1201","T1203","T1204.001","T1204.002","T1218.001","T1219","T1497.001","T1505.003","T1543.003","T1552.001","T1553.002","T1555","T1555.003","T1555.004","T1556.002","T1562.004","T1566.001","T1566.002","T1566.003","T1572","T1573.002","T1583.001","T1586.002","T1587.001","T1588.002","T1588.003","T1608.001"]},{"id":"G0071","name":"Orangeworm","type":"group","techniques":["T1021.002","T1071.001"]},{"id":"G0068","name":"PLATINUM","type":"group","techniques":["T1003.001","T1036","T1055","T1056.001","T1056.004","T1068","T1095","T1105","T1189","T1204.002","T1566.001"]},{"id":"G1005","name":"POLONIUM","type":"group","techniques":["T1078","T1090","T1102.002","T1199","T1567.002","T1583.006","T1588.002"]},{"id":"G0056","name":"PROMETHIUM","type":"group","techniques":["T1036.004","T1036.005","T1078.003","T1189","T1204.002","T1205.001","T1543.003","T1547.001","T1553.002","T1587.002","T1587.003"]},{"id":"G0040","name":"Patchwork","type":"group","techniques":["T1005","T1021.001","T1027.001","T1027.002","T1027.005","T1027.010","T1033","T1036.005","T1053.005","T1055.012","T1059.001","T1059.003","T1059.005","T1070.004","T1074.001","T1082","T1083","T1102.001","T1105","T1112","T1119","T1132.001","T1189","T1197","T1203","T1204.001","T1204.002","T1518.001","T1547.001","T1548.002","T1553.002","T1555.003","T1559.002","T1560","T1566.001","T1566.002","T1574.001","T1587.002","T1588.002","T1598.003","T1680"]},{"id":"G0011","name":"PittyTiger","type":"group","techniques":["T1078","T1588.002"]},{"id":"G1040","name":"Play","type":"group","techniques":["T1003.001","T1016","T1018","T1021.002","T1027.010","T1030","T1048","T1057","T1059.001","T1059.003","T1070.001","T1070.004","T1078","T1078.002","T1078.003","T1082","T1083","T1105","T1133","T1190","T1518.001","T1560.001","T1562.001","T1587.001","T1588.002","T1657"]},{"id":"G0033","name":"Poseidon Group","type":"group","techniques":["T1003","T1007","T1036.005","T1049","T1057","T1059.001","T1087.001","T1087.002"]},{"id":"G0024","name":"Putter Panda","type":"group","techniques":["T1027.013","T1055.001","T1547.001","T1562.001"]},{"id":"G0048","name":"RTM","type":"group","techniques":["T1102.001","T1189","T1204.002","T1219.002","T1547.001","T1566.001","T1574.001"]},{"id":"G0075","name":"Rancor","type":"group","techniques":["T1053.005","T1059.003","T1059.005","T1071.001","T1105","T1204.002","T1218.007","T1546.003","T1566.001"]},{"id":"G1039","name":"RedCurl","type":"group","techniques":["T1003.001","T1005","T1020","T1027","T1036.005","T1039","T1046","T1053.005","T1056.002","T1059.001","T1059.003","T1059.005","T1059.006","T1070.004","T1071.001","T1080","T1082","T1083","T1087.001","T1087.002","T1087.003","T1102","T1114.001","T1119","T1199","T1202","T1204.001","T1204.002","T1218.011","T1537","T1547.001","T1552.001","T1552.002","T1555.003","T1560.001","T1564.001","T1566.001","T1566.002","T1573.001","T1573.002","T1587.001"]},{"id":"G1042","name":"RedEcho","type":"group","techniques":["T1071.001","T1568","T1571","T1573.002","T1583.001"]},{"id":"G0106","name":"Rocke","type":"group","techniques":["T1014","T1018","T1021.004","T1027","T1027.002","T1027.004","T1036.005","T1037","T1046","T1053.003","T1055.002","T1057","T1059.004","T1059.006","T1070.002","T1070.004","T1070.006","T1071","T1071.001","T1082","T1102","T1102.001","T1105","T1140","T1190","T1222.002","T1496.001","T1518.001","T1543.002","T1547.001","T1552.004","T1562.001","T1562.004","T1564.001","T1571","T1574.006"]},{"id":"G1031","name":"Saint Bear","type":"group","techniques":["T1027.002","T1027.013","T1059","T1059.001","T1059.003","T1059.007","T1112","T1203","T1204.001","T1204.002","T1497","T1553.002","T1562.001","T1566.001","T1583.006","T1589.002","T1608.001","T1656"]},{"id":"G1045","name":"Salt Typhoon","type":"group","techniques":["T1021.004","T1040","T1048.003","T1070.002","T1098.004","T1110.002","T1136","T1190","T1562.004","T1572","T1587.001","T1588.002","T1590.004","T1602.002"]},{"id":"G0034","name":"Sandworm Team","type":"group","techniques":["T1003.001","T1003.003","T1005","T1018","T1021.002","T1027","T1027.010","T1033","T1036","T1036.005","T1040","T1041","T1047","T1049","T1053.005","T1056.001","T1059.001","T1059.005","T1070.004","T1071.001","T1072","T1078","T1078.002","T1082","T1083","T1087.002","T1087.003","T1090","T1102.002","T1105","T1106","T1132.001","T1133","T1140","T1190","T1195","T1195.002","T1199","T1203","T1204.001","T1204.002","T1213.006","T1218.011","T1219","T1485","T1486","T1489","T1490","T1491.002","T1499","T1505.003","T1539","T1555.003","T1561.002","T1566.001","T1566.002","T1570","T1571","T1583","T1583.001","T1583.004","T1584.004","T1584.005","T1585.001","T1585.002","T1586.001","T1587.001","T1588.002","T1588.006","T1589.002","T1589.003","T1590.001","T1591.002","T1592.002","T1593","T1594","T1595.002","T1598.003","T1608.001"]},{"id":"G1015","name":"Scattered Spider","type":"group","techniques":["T1003.003","T1006","T1016","T1018","T1021.001","T1021.004","T1021.007","T1041","T1059.001","T1059.004","T1068","T1069","T1069.002","T1070.008","T1074","T1078","T1078.004","T1082","T1083","T1087","T1087.002","T1090","T1098","T1098.003","T1105","T1114","T1114.003","T1133","T1136","T1204","T1213.003","T1213.005","T1217","T1219.002","T1484.002","T1486","T1490","T1530","T1538","T1539","T1543.002","T1552.001","T1552.004","T1553.002","T1555.005","T1556.006","T1556.009","T1562.001","T1564.008","T1567.002","T1572","T1578.002","T1580","T1583.001","T1585.001","T1588.001","T1588.002","T1589","T1598","T1598.003","T1598.004","T1621","T1656","T1657"]},{"id":"G1041","name":"Sea Turtle","type":"group","techniques":["T1027.004","T1059.004","T1070.002","T1071.001","T1074.002","T1078","T1078.003","T1114.001","T1133","T1190","T1199","T1203","T1213.006","T1505.003","T1557","T1560.001","T1562.003","T1564.011","T1566","T1583","T1583.001","T1583.002","T1583.003","T1584.002","T1588.002","T1588.004","T1608.003"]},{"id":"G1008","name":"SideCopy","type":"group","techniques":["T1016","T1036.005","T1059.005","T1082","T1105","T1106","T1204.002","T1218.005","T1518","T1518.001","T1566.001","T1574.001","T1584.001","T1598.002","T1608.001","T1614"]},{"id":"G0121","name":"Sidewinder","type":"group","techniques":["T1016","T1020","T1027.010","T1027.013","T1033","T1036.005","T1057","T1059.001","T1059.005","T1059.007","T1071.001","T1074.001","T1082","T1083","T1105","T1119","T1124","T1203","T1204.001","T1204.002","T1218.005","T1518","T1518.001","T1547.001","T1559.002","T1566.001","T1566.002","T1574.001","T1598.002","T1598.003"]},{"id":"G0091","name":"Silence","type":"group","techniques":["T1003.001","T1018","T1021.001","T1027.010","T1036.005","T1053.005","T1055","T1059.001","T1059.003","T1059.005","T1059.007","T1070.004","T1072","T1078","T1090.002","T1105","T1106","T1112","T1113","T1125","T1204.002","T1218.001","T1547.001","T1553.002","T1566.001","T1569.002","T1571","T1588.002"]},{"id":"G0122","name":"Silent Librarian","type":"group","techniques":["T1078","T1110.003","T1114","T1114.003","T1583.001","T1585.002","T1588.002","T1588.004","T1589.002","T1589.003","T1594","T1598.003","T1608.005"]},{"id":"G0083","name":"SilverTerrier","type":"group","techniques":["T1071.001","T1071.002","T1071.003","T1657"]},{"id":"G0054","name":"Sowbug","type":"group","techniques":["T1003","T1036.005","T1039","T1056.001","T1059.003","T1082","T1083","T1135","T1560.001"]},{"id":"G1033","name":"Star Blizzard","type":"group","techniques":["T1059.007","T1078","T1114.002","T1114.003","T1204.002","T1539","T1550.004","T1566.001","T1583","T1583.001","T1585.001","T1585.002","T1586.002","T1588.002","T1589","T1593","T1598.002","T1598.003","T1608.001"]},{"id":"G0038","name":"Stealth Falcon","type":"group","techniques":["T1005","T1012","T1016","T1033","T1041","T1047","T1053.005","T1057","T1059","T1059.001","T1071.001","T1082","T1555","T1555.003","T1555.004","T1573.001"]},{"id":"G1053","name":"Storm-0501","type":"group","techniques":["T1003","T1003.006","T1021.006","T1021.007","T1027.002","T1036.004","T1053.005","T1057","T1059.001","T1059.009","T1078.004","T1082","T1087.002","T1087.004","T1098.001","T1098.003","T1110","T1190","T1218.010","T1218.011","T1219.002","T1482","T1484.001","T1484.002","T1485","T1486","T1490","T1518.001","T1526","T1530","T1537","T1552.004","T1555.005","T1555.006","T1556.009","T1567.002","T1578.003","T1580","T1587.003","T1588.006","T1614.001","T1657"]},{"id":"G1046","name":"Storm-1811","type":"group","techniques":["T1021.002","T1021.004","T1027.013","T1033","T1036","T1036.005","T1036.010","T1048.002","T1056","T1059.001","T1059.003","T1074.001","T1087.002","T1105","T1140","T1204.002","T1219.002","T1222.001","T1482","T1486","T1547.001","T1566.002","T1566.003","T1566.004","T1570","T1574.001","T1583.001","T1585.003","T1588.002","T1656","T1667"]},{"id":"G0041","name":"Strider","type":"group","techniques":["T1090.001","T1556.002","T1564.005"]},{"id":"G0039","name":"Suckfly","type":"group","techniques":["T1003","T1046","T1059.003","T1078","T1553.002"]},{"id":"G1018","name":"TA2541","type":"group","techniques":["T1016.001","T1027.002","T1027.013","T1027.015","T1036.005","T1047","T1053.005","T1055","T1055.012","T1059.001","T1059.005","T1082","T1105","T1204.001","T1204.002","T1218.005","T1518.001","T1547.001","T1562.001","T1566.001","T1566.002","T1568","T1573.002","T1583.001","T1583.006","T1588.001","T1588.002","T1608.001"]},{"id":"G0062","name":"TA459","type":"group","techniques":["T1059.001","T1059.005","T1203","T1204.002","T1566.001"]},{"id":"G0092","name":"TA505","type":"group","techniques":["T1027.002","T1027.010","T1027.013","T1055.001","T1059.001","T1059.003","T1059.005","T1059.007","T1069","T1071.001","T1078.002","T1087.003","T1105","T1106","T1112","T1140","T1204.001","T1204.002","T1218.007","T1218.011","T1486","T1552.001","T1553.002","T1553.005","T1555.003","T1559.002","T1562.001","T1566.001","T1566.002","T1568.001","T1583.001","T1588.001","T1588.002","T1608.001"]},{"id":"G0127","name":"TA551","type":"group","techniques":["T1027.003","T1027.010","T1036","T1059.003","T1071.001","T1105","T1132.001","T1204.002","T1218.005","T1218.010","T1218.011","T1566.001","T1568.002","T1589.002"]},{"id":"G1037","name":"TA577","type":"group","techniques":["T1027.009","T1059.003","T1059.007","T1204.001","T1566.002","T1586.002"]},{"id":"G1038","name":"TA578","type":"group","techniques":["T1059.007","T1204.001","T1583.006","T1594"]},{"id":"G0139","name":"TeamTNT","type":"group","techniques":["T1007","T1014","T1016","T1021.004","T1027.002","T1027.013","T1036","T1036.005","T1046","T1048","T1049","T1057","T1059.001","T1059.003","T1059.004","T1059.009","T1059.013","T1070.002","T1070.003","T1070.004","T1071","T1071.001","T1074.001","T1082","T1083","T1098.004","T1102","T1105","T1120","T1133","T1136.001","T1140","T1204.003","T1219","T1222.002","T1496.001","T1518.001","T1543.002","T1543.003","T1547.001","T1552.001","T1552.004","T1552.005","T1562.001","T1562.004","T1569.003","T1583.001","T1587.001","T1595.001","T1595.002","T1608.001","T1609","T1610","T1611","T1613","T1680"]},{"id":"G0089","name":"The White Company","type":"group","techniques":["T1027.002","T1070.004","T1124","T1203","T1204.002","T1518.001","T1566.001"]},{"id":"G0028","name":"Threat Group-1314","type":"group","techniques":["T1021.002","T1059.003","T1072","T1078.002"]},{"id":"G0027","name":"Threat Group-3390","type":"group","techniques":["T1003.001","T1003.002","T1003.004","T1005","T1012","T1016","T1018","T1021.006","T1027.002","T1027.013","T1027.015","T1030","T1033","T1046","T1047","T1049","T1053.002","T1055.012","T1056.001","T1059.001","T1059.003","T1068","T1070.004","T1070.005","T1071.001","T1074.001","T1074.002","T1078","T1087.001","T1105","T1112","T1119","T1133","T1140","T1189","T1190","T1195.002","T1199","T1203","T1204.002","T1210","T1505.003","T1543.003","T1547.001","T1548.002","T1555.005","T1560.002","T1562.002","T1566.001","T1567.002","T1574.001","T1583.001","T1588.002","T1588.003","T1608.001","T1608.002","T1608.004"]},{"id":"G0076","name":"Thrip","type":"group","techniques":["T1048.003","T1059.001","T1219.002","T1588.002"]},{"id":"G1022","name":"ToddyCat","type":"group","techniques":["T1005","T1018","T1021.002","T1036.005","T1047","T1049","T1053.005","T1057","T1059.001","T1059.003","T1069.002","T1074.002","T1078.002","T1083","T1087.002","T1095","T1106","T1190","T1518.001","T1560.001","T1562.004","T1564.003","T1566.003","T1567.002","T1680"]},{"id":"G0131","name":"Tonto Team","type":"group","techniques":["T1003","T1056.001","T1059.001","T1059.006","T1068","T1069.001","T1090.002","T1105","T1135","T1203","T1204.002","T1210","T1505.003","T1566.001","T1574.001"]},{"id":"G0134","name":"Transparent Tribe","type":"group","techniques":["T1027.013","T1036.005","T1059.005","T1189","T1203","T1204.001","T1204.002","T1564.001","T1566.001","T1566.002","T1568","T1583.001","T1584.001","T1608.004"]},{"id":"G0081","name":"Tropic Trooper","type":"group","techniques":["T1016","T1020","T1027.003","T1027.013","T1033","T1036.005","T1046","T1049","T1052.001","T1055.001","T1057","T1059.003","T1070.004","T1071.001","T1071.004","T1078.003","T1082","T1083","T1091","T1105","T1106","T1119","T1132.001","T1135","T1140","T1203","T1204.002","T1221","T1505.003","T1518","T1518.001","T1543.003","T1547.001","T1547.004","T1564.001","T1566.001","T1573","T1573.002","T1574.001","T1680"]},{"id":"G0010","name":"Turla","type":"group","techniques":["T1005","T1007","T1012","T1016","T1016.001","T1018","T1021.002","T1025","T1027.005","T1027.010","T1027.011","T1036.005","T1049","T1055","T1055.001","T1057","T1059.001","T1059.003","T1059.005","T1059.006","T1059.007","T1068","T1069.001","T1069.002","T1071.001","T1071.003","T1078.003","T1082","T1083","T1087.001","T1087.002","T1090","T1090.001","T1102","T1102.002","T1105","T1106","T1110","T1112","T1120","T1124","T1134.002","T1140","T1189","T1201","T1204.001","T1213.006","T1518.001","T1546.003","T1546.013","T1547.001","T1547.004","T1553.006","T1555.004","T1560.001","T1562.001","T1564.012","T1566.002","T1567.002","T1570","T1583.006","T1584.003","T1584.004","T1584.006","T1587.001","T1588.001","T1588.002","T1615"]},{"id":"G1048","name":"UNC3886","type":"group","techniques":["T1003.001","T1008","T1014","T1021.004","T1027.005","T1036.004","T1037","T1037.004","T1040","T1057","T1059.001","T1059.003","T1059.004","T1059.006","T1059.012","T1068","T1070.004","T1070.006","T1070.007","T1074.001","T1078","T1078.001","T1083","T1095","T1124","T1190","T1203","T1205","T1205.001","T1212","T1218.011","T1505.006","T1548","T1554","T1555.005","T1560.001","T1560.003","T1562.001","T1562.003","T1562.004","T1564.011","T1570","T1587.001","T1587.004","T1588.001","T1588.004","T1673","T1675","T1681"]},{"id":"G1047","name":"Velvet Ant","type":"group","techniques":["T1021.002","T1036.005","T1037.004","T1040","T1047","T1049","T1055","T1059.004","T1071","T1078.003","T1083","T1090.001","T1132","T1133","T1211","T1562.001","T1562.004","T1569.002","T1570","T1571","T1573.002","T1574.001"]},{"id":"G0123","name":"Volatile Cedar","type":"group","techniques":["T1105","T1190","T1505.003","T1595.002","T1595.003"]},{"id":"G1017","name":"Volt Typhoon","type":"group","techniques":["T1003.001","T1003.003","T1005","T1006","T1007","T1010","T1012","T1016","T1016.001","T1018","T1021.001","T1027.002","T1033","T1036.005","T1036.008","T1046","T1047","T1049","T1056.001","T1057","T1059.001","T1059.003","T1059.004","T1068","T1069","T1069.001","T1069.002","T1070.001","T1070.004","T1070.007","T1074","T1074.001","T1078","T1078.002","T1083","T1087.001","T1087.002","T1090","T1090.001","T1090.003","T1105","T1112","T1113","T1120","T1124","T1133","T1140","T1190","T1217","T1218","T1497.001","T1505.003","T1518","T1552","T1552.004","T1555","T1555.003","T1560.001","T1570","T1573.001","T1584.003","T1584.004","T1584.005","T1584.008","T1587.004","T1588.002","T1588.006","T1589","T1589.002","T1590","T1590.004","T1590.006","T1591","T1591.004","T1592","T1593","T1594","T1596.005","T1614","T1654","T1680"]},{"id":"G0090","name":"WIRTE","type":"group","techniques":["T1036.005","T1059.001","T1059.005","T1071.001","T1105","T1140","T1204.002","T1218.010","T1566.001","T1571","T1588.002"]},{"id":"G1050","name":"Water Galura","type":"group","techniques":["T1486","T1585.001","T1657"]},{"id":"G0107","name":"Whitefly","type":"group","techniques":["T1003.001","T1027.013","T1036.005","T1059","T1068","T1105","T1204.002","T1574.001","T1588.002"]},{"id":"G0124","name":"Windigo","type":"group","techniques":["T1005","T1059","T1082","T1083","T1090","T1189","T1518"]},{"id":"G0112","name":"Windshift","type":"group","techniques":["T1027","T1033","T1036","T1036.001","T1047","T1057","T1059.005","T1071.001","T1082","T1105","T1189","T1204.001","T1204.002","T1518","T1518.001","T1547.001","T1566.001","T1566.002","T1566.003"]},{"id":"G0044","name":"Winnti Group","type":"group","techniques":["T1014","T1057","T1083","T1105","T1553.002","T1583.001"]},{"id":"G1035","name":"Winter Vivern","type":"group","techniques":["T1020","T1033","T1036","T1036.004","T1041","T1053.005","T1056.003","T1059","T1059.001","T1059.003","T1059.007","T1071.001","T1082","T1083","T1105","T1113","T1114.001","T1119","T1140","T1189","T1190","T1204.001","T1566.001","T1583.001","T1583.003","T1584.006","T1595.002"]},{"id":"G0102","name":"Wizard Spider","type":"group","techniques":["T1003.001","T1003.002","T1003.003","T1005","T1016","T1018","T1021","T1021.001","T1021.002","T1021.006","T1027.010","T1033","T1036.004","T1041","T1047","T1048.003","T1053.005","T1055","T1055.001","T1059.001","T1059.003","T1070.004","T1071.001","T1074","T1074.001","T1078","T1078.002","T1082","T1087.002","T1105","T1112","T1133","T1135","T1136.001","T1136.002","T1197","T1204.001","T1204.002","T1210","T1218.011","T1222.001","T1489","T1490","T1518.001","T1518.002","T1543.003","T1547.001","T1547.004","T1550.002","T1552.006","T1553.002","T1555.004","T1557.001","T1558.003","T1560.001","T1562.001","T1566.001","T1566.002","T1567.002","T1569.002","T1570","T1585.002","T1588.002","T1588.003"]},{"id":"G0128","name":"ZIRCONIUM","type":"group","techniques":["T1012","T1016","T1027.002","T1033","T1036","T1036.004","T1041","T1059.003","T1059.006","T1068","T1082","T1090.003","T1102.002","T1105","T1124","T1140","T1204.001","T1218.007","T1547.001","T1555.003","T1566.002","T1567.002","T1573.001","T1583.001","T1583.006","T1584.008","T1598","T1598.003","T1665"]},{"id":"G0018","name":"admin@338","type":"group","techniques":["T1007","T1016","T1036.005","T1049","T1059.003","T1069.001","T1082","T1083","T1087.001","T1203","T1204.002","T1566.001"]},{"id":"G0045","name":"menuPass","type":"group","techniques":["T1003.002","T1003.003","T1003.004","T1005","T1016","T1018","T1021.001","T1021.004","T1027.013","T1036","T1036.003","T1036.005","T1039","T1046","T1047","T1049","T1053.005","T1055.012","T1056.001","T1059.001","T1059.003","T1070.003","T1070.004","T1074.001","T1074.002","T1078","T1083","T1087.002","T1090.002","T1105","T1106","T1119","T1140","T1190","T1199","T1204.002","T1210","T1218.004","T1553.002","T1560","T1560.001","T1566.001","T1568.001","T1574.001","T1583.001","T1588.002"]},{"id":"S0066","name":"3PARA RAT","type":"software","techniques":["T1070.006","T1071.001","T1083","T1573.001"]},{"id":"S0065","name":"4H RAT","type":"software","techniques":["T1057","T1059.003","T1071.001","T1082","T1083","T1573.001"]},{"id":"S0677","name":"AADInternals","type":"software","techniques":["T1003.004","T1048","T1059.001","T1069.003","T1087.004","T1098.005","T1112","T1136.003","T1484.002","T1526","T1528","T1530","T1552.001","T1552.004","T1556.006","T1556.007","T1558.002","T1566.002","T1589.002","T1590.001","T1598.003","T1606.002","T1649","T1651"]},{"id":"S0469","name":"ABK","type":"software","techniques":["T1027.003","T1055","T1059.003","T1071.001","T1105","T1140","T1518.001"]},{"id":"S0045","name":"ADVSTORESHELL","type":"software","techniques":["T1012","T1027","T1029","T1041","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1074.001","T1082","T1083","T1106","T1112","T1120","T1132.001","T1218.011","T1546.015","T1547.001","T1560","T1560.003","T1573.001","T1573.002"]},{"id":"S1074","name":"ANDROMEDA","type":"software","techniques":["T1036.005","T1036.008","T1055","T1071.001","T1091","T1105","T1547.001"]},{"id":"S1167","name":"AcidPour","type":"software","techniques":["T1070.004","T1082","T1083","T1120","T1485","T1529","T1561.001"]},{"id":"S1125","name":"AcidRain","type":"software","techniques":["T1083","T1485","T1529","T1561.001"]},{"id":"S1028","name":"Action RAT","type":"software","techniques":["T1005","T1016","T1027","T1033","T1047","T1059.003","T1071.001","T1082","T1083","T1105","T1140","T1518.001"]},{"id":"S0552","name":"AdFind","type":"software","techniques":["T1016","T1018","T1069.002","T1087.002","T1482"]},{"id":"S0331","name":"Agent Tesla","type":"software","techniques":["T1016","T1016.002","T1027","T1033","T1047","T1048.003","T1053.005","T1055","T1055.012","T1056.001","T1057","T1071.001","T1071.003","T1082","T1087.001","T1105","T1112","T1113","T1115","T1124","T1125","T1140","T1185","T1203","T1204.002","T1218.009","T1497","T1547.001","T1552.001","T1552.002","T1555","T1555.003","T1560","T1562.001","T1564.001","T1564.003","T1566.001"]},{"id":"S0092","name":"Agent.btz","type":"software","techniques":["T1016","T1033","T1052.001","T1091","T1105","T1560.003"]},{"id":"S1129","name":"Akira","type":"software","techniques":["T1047","T1057","T1059.001","T1059.003","T1082","T1083","T1106","T1135","T1486","T1490"]},{"id":"S1194","name":"Akira _v2","type":"software","techniques":["T1083","T1480","T1486","T1489","T1543","T1654"]},{"id":"S1025","name":"Amadey","type":"software","techniques":["T1005","T1016","T1027","T1033","T1041","T1071.001","T1082","T1083","T1105","T1106","T1112","T1140","T1518.001","T1547.001","T1553.005","T1568.001","T1614"]},{"id":"S0504","name":"Anchor","type":"software","techniques":["T1008","T1016","T1021.002","T1027","T1027.002","T1053.003","T1053.005","T1059.003","T1059.004","T1070.004","T1071.001","T1071.004","T1082","T1095","T1105","T1480","T1543.003","T1553.002","T1564.004","T1569.002"]},{"id":"S1133","name":"Apostle","type":"software","techniques":["T1053.005","T1057","T1070.001","T1070.004","T1140","T1480","T1485","T1486","T1529","T1561.001"]},{"id":"S0584","name":"AppleJeus","type":"software","techniques":["T1027","T1041","T1053.005","T1059.004","T1070.004","T1071.001","T1082","T1140","T1204.001","T1204.002","T1218.007","T1497.003","T1543.003","T1543.004","T1546.016","T1548.002","T1553.002","T1564.001","T1566.002","T1569.001"]},{"id":"S0622","name":"AppleSeed","type":"software","techniques":["T1005","T1008","T1016","T1025","T1027","T1027.002","T1030","T1036","T1036.005","T1041","T1056.001","T1057","T1059.001","T1059.007","T1070.004","T1071.001","T1074.001","T1082","T1083","T1106","T1113","T1119","T1124","T1134","T1140","T1204.002","T1218.010","T1547.001","T1560","T1560.001","T1566.001","T1567"]},{"id":"S0456","name":"Aria-body","type":"software","techniques":["T1010","T1016","T1025","T1027.013","T1033","T1049","T1055.001","T1057","T1070.004","T1071.001","T1082","T1083","T1090","T1095","T1105","T1106","T1113","T1134.001","T1134.002","T1140","T1547.001","T1560","T1568.002","T1680"]},{"id":"S0099","name":"Arp","type":"software","techniques":["T1016","T1018"]},{"id":"S0373","name":"Astaroth","type":"software","techniques":["T1016","T1027.002","T1027.010","T1027.013","T1041","T1047","T1055.012","T1056.001","T1057","T1059.003","T1059.005","T1059.007","T1074.001","T1082","T1102.001","T1105","T1115","T1124","T1129","T1132.001","T1140","T1204.002","T1218.001","T1218.010","T1220","T1497.001","T1518.001","T1547.001","T1547.009","T1552","T1555","T1564.003","T1564.004","T1566.001","T1568.002","T1574.001"]},{"id":"S1087","name":"AsyncRAT","type":"software","techniques":["T1033","T1053.005","T1056.001","T1057","T1105","T1106","T1113","T1125","T1497.001","T1564.003","T1568","T1622","T1680"]},{"id":"S0438","name":"Attor","type":"software","techniques":["T1010","T1012","T1020","T1027.013","T1036.004","T1037.001","T1041","T1053.005","T1055","T1055.004","T1056.001","T1070.004","T1070.006","T1071.002","T1074.001","T1083","T1090.003","T1105","T1106","T1112","T1113","T1115","T1119","T1120","T1123","T1129","T1218.011","T1497.001","T1543.003","T1560.003","T1564.001","T1569.002","T1573.001","T1573.002","T1680"]},{"id":"S1029","name":"AuTo Stealer","type":"software","techniques":["T1005","T1033","T1041","T1059.003","T1071.001","T1074.001","T1082","T1095","T1518.001","T1547.001"]},{"id":"S0347","name":"AuditCred","type":"software","techniques":["T1027.013","T1055","T1059.003","T1070.004","T1083","T1090","T1105","T1140","T1543.003"]},{"id":"S0129","name":"AutoIt backdoor","type":"software","techniques":["T1059.001","T1083","T1132.001","T1548.002"]},{"id":"S0640","name":"Avaddon","type":"software","techniques":["T1016","T1027","T1047","T1057","T1059.007","T1083","T1106","T1112","T1135","T1140","T1486","T1489","T1490","T1547.001","T1548.002","T1562.001","T1614.001"]},{"id":"S0473","name":"Avenger","type":"software","techniques":["T1016","T1027.003","T1027.013","T1055","T1057","T1071.001","T1082","T1083","T1105","T1140","T1518.001","T1680"]},{"id":"S1053","name":"AvosLocker","type":"software","techniques":["T1027","T1027.007","T1036.008","T1057","T1083","T1106","T1124","T1135","T1140","T1486","T1489","T1529","T1547.001","T1562.009","T1564.003"]},{"id":"S0344","name":"Azorult","type":"software","techniques":["T1012","T1016","T1033","T1055.012","T1057","T1070.004","T1082","T1083","T1105","T1113","T1124","T1134.002","T1140","T1552.001","T1555.003","T1573.001"]},{"id":"S0031","name":"BACKSPACE","type":"software","techniques":["T1012","T1041","T1057","T1059.003","T1071.001","T1082","T1083","T1090.001","T1104","T1112","T1132.002","T1547.001","T1547.009","T1562.004"]},{"id":"S0245","name":"BADCALL","type":"software","techniques":["T1001.003","T1016","T1082","T1090","T1112","T1562.004","T1571","T1573.001"]},{"id":"S0642","name":"BADFLICK","type":"software","techniques":["T1005","T1016","T1082","T1083","T1105","T1140","T1204.002","T1497.003","T1560.002","T1566.001"]},{"id":"S1081","name":"BADHATCH","type":"software","techniques":["T1018","T1027.009","T1027.010","T1027.015","T1033","T1041","T1046","T1047","T1049","T1053.005","T1055","T1055.001","T1055.004","T1057","T1059.001","T1059.003","T1069.002","T1070.004","T1071.001","T1071.002","T1082","T1090","T1102","T1105","T1106","T1113","T1124","T1134.001","T1135","T1482","T1546.003","T1548.002","T1550.002","T1573.002","T1620"]},{"id":"S0128","name":"BADNEWS","type":"software","techniques":["T1005","T1025","T1036.001","T1036.005","T1039","T1053.005","T1055.012","T1056.001","T1059.003","T1071.001","T1074.001","T1083","T1102.001","T1102.002","T1105","T1106","T1113","T1119","T1120","T1132","T1132.001","T1547.001","T1573.001","T1574.001"]},{"id":"S0470","name":"BBK","type":"software","techniques":["T1027.003","T1055","T1059.003","T1071.001","T1105","T1106","T1140"]},{"id":"S0127","name":"BBSRAT","type":"software","techniques":["T1007","T1055.012","T1057","T1070.004","T1071.001","T1083","T1140","T1543.003","T1546.015","T1547.001","T1560.002","T1569.002","T1573.001","T1574.001"]},{"id":"S1136","name":"BFG Agonizer","type":"software","techniques":["T1490","T1529","T1554","T1561.002"]},{"id":"S0017","name":"BISCUIT","type":"software","techniques":["T1008","T1033","T1056.001","T1057","T1059.003","T1082","T1105","T1113","T1124","T1573.002"]},{"id":"S0190","name":"BITSAdmin","type":"software","techniques":["T1048.003","T1105","T1197","T1570"]},{"id":"S0069","name":"BLACKCOFFEE","type":"software","techniques":["T1057","T1059.003","T1070.004","T1083","T1102.001","T1102.002","T1104"]},{"id":"S0520","name":"BLINDINGCAN","type":"software","techniques":["T1005","T1016","T1027.002","T1027.013","T1036.005","T1041","T1059.003","T1070.004","T1070.006","T1071.001","T1082","T1083","T1105","T1129","T1132.001","T1140","T1204.002","T1218.011","T1553.002","T1566.001","T1573.001","T1680"]},{"id":"S0657","name":"BLUELIGHT","type":"software","techniques":["T1016","T1027.013","T1033","T1041","T1057","T1070.004","T1071.001","T1082","T1083","T1102.002","T1105","T1113","T1124","T1497.001","T1518.001","T1539","T1555.003","T1560","T1560.003"]},{"id":"S1184","name":"BOLDMOVE","type":"software","techniques":["T1016","T1059.004","T1070.004","T1071.001","T1082","T1083","T1090.003","T1190","T1480","T1543","T1554","T1562","T1562.006","T1564.011","T1573.002"]},{"id":"S0360","name":"BONDUPDATER","type":"software","techniques":["T1053.005","T1059.001","T1059.003","T1071.004","T1105","T1564.003","T1568.002"]},{"id":"S1226","name":"BOOKWORM","type":"software","techniques":["T1001.003","T1027","T1027.013","T1033","T1036.004","T1056.001","T1070.006","T1071.001","T1106","T1112","T1115","T1140","T1543.003","T1553.002","T1564.003","T1573.001","T1574.001"]},{"id":"S0415","name":"BOOSTWRITE","type":"software","techniques":["T1027.013","T1129","T1140","T1553.002","T1574.001"]},{"id":"S0114","name":"BOOTRASH","type":"software","techniques":["T1542.003","T1564.005"]},{"id":"S1161","name":"BPFDoor","type":"software","techniques":["T1027","T1036.009","T1036.011","T1059.004","T1070","T1070.004","T1070.006","T1205.002","T1480","T1480.002","T1562.003","T1562.004","T1564.011"]},{"id":"S0043","name":"BUBBLEWRAP","type":"software","techniques":["T1071.001","T1082","T1095"]},{"id":"S1118","name":"BUSHWALK","type":"software","techniques":["T1027","T1105","T1140","T1205","T1505.003","T1554"]},{"id":"S0638","name":"Babuk","type":"software","techniques":["T1007","T1027.002","T1049","T1057","T1059.003","T1083","T1106","T1135","T1140","T1486","T1489","T1490","T1562.001","T1680"]},{"id":"S0414","name":"BabyShark","type":"software","techniques":["T1012","T1016","T1033","T1053.005","T1056.001","T1057","T1059.003","T1059.005","T1070.004","T1082","T1083","T1105","T1132.001","T1140","T1218.005","T1547.001"]},{"id":"S0475","name":"BackConfig","type":"software","techniques":["T1027.010","T1036.005","T1053.005","T1059.003","T1059.005","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1137.001","T1140","T1204.001","T1553.002","T1564.001"]},{"id":"S0093","name":"Backdoor.Oldrea","type":"software","techniques":["T1016","T1018","T1033","T1046","T1055","T1057","T1070.004","T1082","T1083","T1087.003","T1105","T1132.001","T1218.011","T1547.001","T1555.003","T1560"]},{"id":"S0606","name":"Bad Rabbit","type":"software","techniques":["T1003.001","T1036.005","T1053.005","T1057","T1106","T1110.003","T1135","T1189","T1204.002","T1210","T1218.011","T1486","T1495","T1548.002","T1569.002"]},{"id":"S0337","name":"BadPatch","type":"software","techniques":["T1005","T1056.001","T1071.001","T1071.003","T1074.001","T1082","T1083","T1105","T1113","T1497.001","T1518.001","T1547.001"]},{"id":"S0234","name":"Bandook","type":"software","techniques":["T1005","T1016","T1027.003","T1041","T1055.012","T1056.001","T1059","T1059.001","T1059.003","T1059.005","T1059.006","T1070.004","T1083","T1095","T1105","T1106","T1113","T1120","T1123","T1125","T1140","T1204.002","T1553.002","T1566.001","T1573.001","T1680"]},{"id":"S0239","name":"Bankshot","type":"software","techniques":["T1001.003","T1005","T1012","T1041","T1057","T1059.003","T1070","T1070.004","T1070.006","T1071.001","T1082","T1083","T1087.001","T1087.002","T1105","T1106","T1112","T1119","T1132.002","T1134.002","T1140","T1203","T1543.003","T1571","T1680"]},{"id":"S0534","name":"Bazar","type":"software","techniques":["T1005","T1008","T1012","T1016","T1018","T1027.002","T1027.007","T1027.013","T1033","T1036.004","T1036.005","T1036.007","T1047","T1053.005","T1055","T1055.012","T1055.013","T1057","T1059.001","T1059.003","T1070.004","T1070.009","T1071.001","T1082","T1083","T1087.001","T1087.002","T1102","T1104","T1105","T1106","T1124","T1135","T1140","T1197","T1204.001","T1482","T1497","T1497.003","T1518","T1518.001","T1547.001","T1547.004","T1547.009","T1553.002","T1562.001","T1566.002","T1568.002","T1573.001","T1573.002","T1614.001"]},{"id":"S1246","name":"BeaverTail","type":"software","techniques":["T1001.001","T1005","T1027.013","T1036","T1041","T1059.007","T1070.004","T1071.001","T1074.001","T1082","T1083","T1105","T1124","T1195.001","T1204.002","T1217","T1555","T1555.001","T1555.003","T1560.001","T1571","T1654","T1657"]},{"id":"S0574","name":"BendyBear","type":"software","techniques":["T1001.001","T1012","T1027.013","T1027.014","T1105","T1106","T1124","T1140","T1497.003","T1571","T1573.001"]},{"id":"S0268","name":"Bisonal","type":"software","techniques":["T1005","T1012","T1016","T1027.001","T1027.002","T1027.013","T1036","T1036.005","T1041","T1057","T1059.003","T1059.005","T1070.004","T1071.001","T1082","T1083","T1090","T1095","T1105","T1106","T1112","T1124","T1132.001","T1137.006","T1140","T1204.002","T1218.011","T1497","T1497.003","T1543.003","T1547.001","T1566.001","T1568","T1573.001"]},{"id":"S0570","name":"BitPaymer","type":"software","techniques":["T1007","T1012","T1018","T1027.013","T1070.006","T1087.001","T1106","T1112","T1134.001","T1135","T1222.001","T1480","T1486","T1490","T1543.003","T1547.001","T1548.002","T1564.004"]},{"id":"S1070","name":"Black Basta","type":"software","techniques":["T1007","T1018","T1027.001","T1036.004","T1036.005","T1047","T1059.001","T1059.003","T1082","T1083","T1106","T1112","T1204.002","T1222.002","T1480.002","T1486","T1490","T1491.001","T1497","T1497.001","T1529","T1543.003","T1553.002","T1562.009","T1622","T1680"]},{"id":"S1181","name":"BlackByte 2.0 Ransomware","type":"software","techniques":["T1055","T1068","T1070.004","T1070.006","T1112","T1135","T1486","T1489","T1490","T1562.004","T1569.002"]},{"id":"S1180","name":"BlackByte Ransomware","type":"software","techniques":["T1012","T1021.002","T1027.013","T1046","T1053.005","T1059.007","T1082","T1106","T1112","T1135","T1140","T1222.001","T1480","T1486","T1490","T1497.001","T1518.001","T1562.001","T1562.010","T1570","T1614.001"]},{"id":"S1068","name":"BlackCat","type":"software","techniques":["T1018","T1033","T1047","T1059.003","T1069.002","T1070.001","T1082","T1083","T1087.002","T1112","T1134","T1135","T1222.001","T1486","T1489","T1490","T1491.001","T1548.002","T1561.001","T1570","T1680"]},{"id":"S0089","name":"BlackEnergy","type":"software","techniques":["T1008","T1016","T1021.002","T1046","T1047","T1049","T1055.001","T1056.001","T1057","T1070","T1070.001","T1071.001","T1082","T1083","T1113","T1120","T1485","T1543.003","T1547.001","T1547.009","T1548.002","T1552.001","T1553.006","T1555.003","T1574.010"]},{"id":"S0564","name":"BlackMould","type":"software","techniques":["T1005","T1059.003","T1071.001","T1083","T1105","T1680"]},{"id":"S0521","name":"BloodHound","type":"software","techniques":["T1018","T1033","T1059.001","T1069.001","T1069.002","T1087.001","T1087.002","T1106","T1482","T1560","T1615"]},{"id":"S0486","name":"Bonadan","type":"software","techniques":["T1016","T1033","T1057","T1059","T1082","T1105","T1496.001","T1554","T1573.001"]},{"id":"S0635","name":"BoomBox","type":"software","techniques":["T1027","T1033","T1036","T1071.001","T1082","T1083","T1087.002","T1087.003","T1102","T1105","T1140","T1204.002","T1218.011","T1480","T1547.001","T1567.002"]},{"id":"S0651","name":"BoxCaon","type":"software","techniques":["T1005","T1016","T1027","T1041","T1059.003","T1074.001","T1083","T1102.002","T1105","T1106","T1547","T1567.002"]},{"id":"S0252","name":"Brave Prince","type":"software","techniques":["T1012","T1016","T1048.003","T1057","T1082","T1083","T1562.001"]},{"id":"S0204","name":"Briba","type":"software","techniques":["T1105","T1218.011","T1543.003","T1547.001"]},{"id":"S1063","name":"Brute Ratel C4","type":"software","techniques":["T1005","T1021","T1021.002","T1021.006","T1027","T1027.007","T1036.005","T1036.008","T1046","T1047","T1055.002","T1057","T1059.003","T1069.002","T1071.001","T1071.004","T1087.002","T1095","T1102","T1105","T1106","T1113","T1140","T1204.002","T1482","T1497.003","T1518.001","T1558.003","T1562.006","T1569.002","T1572","T1574.001","T1620"]},{"id":"S1039","name":"Bumblebee","type":"software","techniques":["T1005","T1008","T1012","T1027","T1033","T1036.005","T1041","T1047","T1053.005","T1055","T1055.001","T1055.004","T1057","T1059.001","T1059.003","T1059.005","T1070.004","T1082","T1102","T1105","T1106","T1129","T1132.001","T1140","T1204.001","T1204.002","T1218.008","T1218.011","T1497","T1497.001","T1497.003","T1518.001","T1548.002","T1559.001","T1560","T1566.001","T1566.002","T1573.001","T1622"]},{"id":"S0482","name":"Bundlore","type":"software","techniques":["T1027","T1036.005","T1048","T1056.002","T1057","T1059.002","T1059.004","T1059.006","T1059.007","T1071.001","T1082","T1098.004","T1105","T1140","T1176.001","T1189","T1204.002","T1222.002","T1518","T1543.001","T1543.004","T1562.001","T1564"]},{"id":"S0025","name":"CALENDAR","type":"software","techniques":["T1059.003","T1102.002"]},{"id":"S1237","name":"CANONSTAGER","type":"software","techniques":["T1027.007","T1036.005","T1055.005","T1106","T1564.003","T1574.001"]},{"id":"S0465","name":"CARROTBALL","type":"software","techniques":["T1027","T1071.002","T1105","T1204.002"]},{"id":"S0462","name":"CARROTBAT","type":"software","techniques":["T1027.010","T1027.013","T1059.003","T1070.004","T1082","T1105"]},{"id":"S1224","name":"CASTLETAP","type":"software","techniques":["T1005","T1040","T1059.004","T1105","T1140","T1205.002","T1573.001","T1573.002"]},{"id":"S0222","name":"CCBkdr","type":"software","techniques":["T1195.002","T1568.002"]},{"id":"S1149","name":"CHIMNEYSWEEP","type":"software","techniques":["T1005","T1027","T1027.001","T1027.007","T1027.009","T1033","T1041","T1053.005","T1056.001","T1057","T1059.001","T1059.005","T1070.006","T1071.001","T1074.001","T1083","T1102","T1105","T1106","T1112","T1113","T1115","T1120","T1132.002","T1140","T1218.003","T1480","T1518.001","T1529","T1548.002","T1553.002"]},{"id":"S0023","name":"CHOPSTICK","type":"software","techniques":["T1008","T1012","T1027.011","T1056.001","T1059","T1071.001","T1071.003","T1083","T1090.001","T1091","T1092","T1105","T1112","T1113","T1497","T1518.001","T1568.002","T1573.001","T1573.002"]},{"id":"S1236","name":"CLAIMLOADER","type":"software","techniques":["T1027.007","T1036.005","T1053.005","T1106","T1140","T1204.002","T1480.002","T1547.001","T1559.001","T1564.001","T1574.001"]},{"id":"S1105","name":"COATHANGER","type":"software","techniques":["T1014","T1027","T1027.002","T1055","T1057","T1059.004","T1070.004","T1071.001","T1083","T1095","T1140","T1190","T1222.002","T1543.004","T1564.001","T1573.002","T1574","T1574.006"]},{"id":"S0212","name":"CORALDECK","type":"software","techniques":["T1048.003","T1083","T1560.001"]},{"id":"S0137","name":"CORESHELL","type":"software","techniques":["T1027","T1027.016","T1071.001","T1071.003","T1082","T1105","T1132.001","T1218.011","T1547.001","T1573.001","T1680"]},{"id":"S0527","name":"CSPY Downloader","type":"software","techniques":["T1027.002","T1036.004","T1053.005","T1070","T1070.004","T1071.001","T1105","T1112","T1204.002","T1497.001","T1548.002","T1553.002"]},{"id":"S0693","name":"CaddyWiper","type":"software","techniques":["T1057","T1082","T1083","T1106","T1222.001","T1485","T1561.002"]},{"id":"S0454","name":"Cadelspy","type":"software","techniques":["T1010","T1056.001","T1082","T1113","T1115","T1120","T1123","T1560"]},{"id":"S0274","name":"Calisto","type":"software","techniques":["T1005","T1016","T1036.005","T1056.002","T1070.004","T1074.001","T1098","T1105","T1136.001","T1217","T1543.001","T1555.001","T1560.001","T1564.001","T1569.001"]},{"id":"S0077","name":"CallMe","type":"software","techniques":["T1041","T1059.004","T1105","T1573.001"]},{"id":"S0351","name":"Cannon","type":"software","techniques":["T1033","T1041","T1057","T1071.003","T1082","T1083","T1105","T1113","T1124","T1547.004","T1680"]},{"id":"S0030","name":"Carbanak","type":"software","techniques":["T1003","T1012","T1021.001","T1027","T1030","T1055.002","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1113","T1114.001","T1132.001","T1136.001","T1219","T1547.001","T1573.001"]},{"id":"S0484","name":"Carberp","type":"software","techniques":["T1012","T1014","T1021.005","T1027.013","T1036.005","T1041","T1055.001","T1055.004","T1056.004","T1057","T1068","T1071.001","T1082","T1105","T1106","T1113","T1185","T1497","T1518.001","T1542.003","T1547.001","T1555","T1555.003","T1562.001","T1564.001"]},{"id":"S0335","name":"Carbon","type":"software","techniques":["T1012","T1016","T1018","T1027","T1048.003","T1049","T1053.005","T1055.001","T1057","T1069","T1071.001","T1074.001","T1095","T1102","T1124","T1140","T1543.003","T1573.002"]},{"id":"S0348","name":"Cardinal RAT","type":"software","techniques":["T1008","T1012","T1027.004","T1027.013","T1033","T1055","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1082","T1083","T1090","T1105","T1112","T1113","T1140","T1204.002","T1547.001","T1560.002","T1573.001"]},{"id":"S0261","name":"Catchamas","type":"software","techniques":["T1010","T1016","T1036.004","T1056.001","T1074.001","T1112","T1113","T1115","T1543.003"]},{"id":"S0572","name":"Caterpillar WebShell","type":"software","techniques":["T1005","T1007","T1014","T1016","T1033","T1041","T1046","T1057","T1059.003","T1069.001","T1082","T1083","T1105","T1110","T1112"]},{"id":"S0144","name":"ChChes","type":"software","techniques":["T1036.005","T1057","T1071.001","T1082","T1083","T1105","T1132.001","T1547.001","T1553.002","T1555.003","T1562.001","T1573.001"]},{"id":"S0631","name":"Chaes","type":"software","techniques":["T1027.011","T1033","T1036.005","T1048","T1056","T1059.003","T1059.005","T1059.006","T1059.007","T1071.001","T1082","T1105","T1106","T1112","T1113","T1132.001","T1140","T1185","T1204.002","T1218.004","T1218.007","T1221","T1539","T1547.001","T1555.003","T1566.001","T1573","T1574.001"]},{"id":"S0220","name":"Chaos","type":"software","techniques":["T1059.004","T1104","T1110","T1205","T1573.001"]},{"id":"S0674","name":"CharmPower","type":"software","techniques":["T1005","T1008","T1012","T1016","T1016.002","T1041","T1047","T1048.003","T1057","T1059.001","T1059.003","T1070.004","T1071.001","T1082","T1083","T1102","T1102.001","T1105","T1112","T1113","T1132.001","T1140","T1518","T1573.001"]},{"id":"S1096","name":"Cheerscrypt","type":"software","techniques":["T1059.012","T1083","T1486","T1489","T1673"]},{"id":"S0107","name":"Cherry Picker","type":"software","techniques":["T1048.003","T1070.004","T1546.010"]},{"id":"S0020","name":"China Chopper","type":"software","techniques":["T1005","T1027.002","T1046","T1059.003","T1070.006","T1071.001","T1083","T1105","T1110.001","T1505.003"]},{"id":"S1041","name":"Chinoxy","type":"software","techniques":["T1027.013","T1036.005","T1140","T1547.001","T1574.001"]},{"id":"S0667","name":"Chrommme","type":"software","techniques":["T1005","T1016","T1027.013","T1029","T1033","T1041","T1074.001","T1082","T1105","T1106","T1113","T1140","T1560","T1680"]},{"id":"S0660","name":"Clambling","type":"software","techniques":["T1005","T1012","T1016","T1027","T1033","T1055","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1071","T1071.001","T1082","T1083","T1095","T1102.002","T1112","T1113","T1115","T1124","T1125","T1135","T1140","T1204.002","T1497.003","T1543.003","T1547.001","T1548.002","T1564.001","T1566.001","T1567.002","T1569.002","T1574.001"]},{"id":"S0611","name":"Clop","type":"software","techniques":["T1027.002","T1057","T1059.003","T1083","T1106","T1112","T1135","T1140","T1218.007","T1486","T1489","T1490","T1497.003","T1518.001","T1553.002","T1562.001","T1614.001"]},{"id":"S0054","name":"CloudDuke","type":"software","techniques":["T1071.001","T1102.002","T1105"]},{"id":"S0154","name":"Cobalt Strike","type":"software","techniques":["T1001.003","T1003.001","T1003.002","T1005","T1007","T1012","T1016","T1018","T1021.001","T1021.002","T1021.003","T1021.004","T1021.006","T1027","T1027.005","T1029","T1030","T1046","T1047","T1049","T1055","T1055.001","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1059.006","T1059.007","T1068","T1069.001","T1069.002","T1070.006","T1071.001","T1071.002","T1071.004","T1078.002","T1078.003","T1083","T1087.002","T1090.001","T1090.004","T1095","T1105","T1106","T1112","T1113","T1132.001","T1134.001","T1134.003","T1134.004","T1135","T1137.001","T1140","T1185","T1197","T1203","T1218.011","T1518","T1543.003","T1548.002","T1548.003","T1550.002","T1553.002","T1562.001","T1564.010","T1569.002","T1572","T1573.001","T1573.002","T1620"]},{"id":"S0338","name":"Cobian RAT","type":"software","techniques":["T1056.001","T1059.003","T1071.004","T1113","T1123","T1125","T1132.001","T1547.001"]},{"id":"S0369","name":"CoinTicker","type":"software","techniques":["T1027","T1059.003","T1059.004","T1059.006","T1105","T1140","T1543.001","T1553.001","T1564.001"]},{"id":"S0126","name":"ComRAT","type":"software","techniques":["T1012","T1027","T1027.009","T1027.010","T1027.011","T1029","T1036.004","T1053.005","T1055.001","T1059.001","T1059.003","T1071.001","T1071.003","T1102.002","T1106","T1112","T1124","T1140","T1518","T1546.015","T1564.005","T1573.002"]},{"id":"S0244","name":"Comnie","type":"software","techniques":["T1007","T1016","T1018","T1027","T1027.001","T1049","T1057","T1059.003","T1059.005","T1071.001","T1082","T1087.001","T1102.002","T1119","T1218.011","T1518.001","T1547.001","T1547.009","T1573.001"]},{"id":"S0608","name":"Conficker","type":"software","techniques":["T1021.002","T1027","T1046","T1091","T1105","T1112","T1124","T1210","T1490","T1543.003","T1547.001","T1562.001","T1568.002"]},{"id":"S0591","name":"ConnectWise","type":"software","techniques":["T1059.001","T1113","T1125"]},{"id":"S0575","name":"Conti","type":"software","techniques":["T1016","T1018","T1021.002","T1027","T1049","T1055.001","T1057","T1059.003","T1080","T1083","T1106","T1135","T1140","T1486","T1489","T1490"]},{"id":"S0492","name":"CookieMiner","type":"software","techniques":["T1005","T1027.010","T1048.003","T1059.004","T1059.006","T1083","T1105","T1140","T1496.001","T1518.001","T1539","T1543.001","T1555.003","T1562.004"]},{"id":"S1235","name":"CorKLOG","type":"software","techniques":["T1027.013","T1053.005","T1056.001","T1074.001","T1140","T1543.003","T1553.002","T1574.001"]},{"id":"S0050","name":"CosmicDuke","type":"software","techniques":["T1003.002","T1003.004","T1005","T1020","T1025","T1039","T1048.003","T1053.005","T1056.001","T1068","T1071.001","T1083","T1113","T1114.001","T1115","T1543.003","T1555","T1555.003","T1573.001"]},{"id":"S0614","name":"CostaBricks","type":"software","techniques":["T1027.001","T1027.002","T1055","T1105","T1106","T1140"]},{"id":"S1155","name":"Covenant","type":"software","techniques":["T1047","T1059.001","T1059.003","T1071.001","T1082","T1218.004","T1218.005","T1218.010","T1571","T1573.002"]},{"id":"S0046","name":"CozyCar","type":"software","techniques":["T1003.001","T1003.002","T1027.013","T1036.003","T1053.005","T1059.003","T1071.001","T1082","T1102.002","T1218.011","T1497","T1518.001","T1543.003","T1547.001"]},{"id":"S0488","name":"CrackMapExec","type":"software","techniques":["T1003.002","T1003.003","T1003.004","T1016","T1018","T1047","T1049","T1053.002","T1059.001","T1069.002","T1083","T1087.002","T1110","T1110.001","T1110.003","T1112","T1135","T1201","T1550.002","T1680"]},{"id":"S1023","name":"CreepyDrive","type":"software","techniques":["T1005","T1059.001","T1071.001","T1083","T1102.002","T1105","T1550.001","T1567.002"]},{"id":"S1024","name":"CreepySnail","type":"software","techniques":["T1016","T1033","T1041","T1059.001","T1071.001","T1078.002","T1132.001"]},{"id":"S0115","name":"Crimson","type":"software","techniques":["T1005","T1012","T1016","T1025","T1033","T1041","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1082","T1083","T1091","T1095","T1105","T1112","T1113","T1114.001","T1120","T1123","T1124","T1125","T1140","T1497.003","T1518.001","T1547.001","T1555.003","T1614","T1680"]},{"id":"S0235","name":"CrossRAT","type":"software","techniques":["T1083","T1113","T1543.001","T1547.001","T1547.013"]},{"id":"S0538","name":"Crutch","type":"software","techniques":["T1005","T1008","T1020","T1025","T1036.004","T1041","T1053.005","T1071.001","T1074.001","T1102.002","T1119","T1120","T1560.001","T1567.002","T1574.001"]},{"id":"S0498","name":"Cryptoistic","type":"software","techniques":["T1005","T1033","T1070.004","T1083","T1095","T1105","T1573"]},{"id":"S0625","name":"Cuba","type":"software","techniques":["T1007","T1016","T1027","T1027.002","T1036.005","T1049","T1056.001","T1057","T1059.001","T1059.003","T1070.004","T1083","T1105","T1106","T1134","T1135","T1486","T1489","T1543.003","T1564.003","T1614.001","T1620","T1680"]},{"id":"S1153","name":"Cuckoo Stealer","type":"software","techniques":["T1027.008","T1027.013","T1033","T1036.005","T1041","T1056.002","T1057","T1059.002","T1059.004","T1071.001","T1074.001","T1082","T1083","T1095","T1113","T1140","T1217","T1518","T1543.001","T1553.001","T1555.001","T1564.001","T1569.001","T1614","T1614.001","T1647"]},{"id":"S0687","name":"Cyclops Blink","type":"software","techniques":["T1005","T1016","T1036.005","T1037.004","T1041","T1057","T1070.006","T1071.001","T1082","T1083","T1090.003","T1105","T1106","T1132.002","T1140","T1542.002","T1559","T1562.004","T1571","T1572","T1573.002"]},{"id":"S1033","name":"DCSrv","type":"software","techniques":["T1027.013","T1036.004","T1106","T1112","T1124","T1486","T1529","T1543.003"]},{"id":"S0255","name":"DDKONG","type":"software","techniques":["T1083","T1105","T1140","T1218.011"]},{"id":"S1052","name":"DEADEYE","type":"software","techniques":["T1016","T1027.009","T1027.013","T1036.004","T1059.003","T1082","T1106","T1140","T1218.007","T1218.011","T1480","T1564.004"]},{"id":"S1134","name":"DEADWOOD","type":"software","techniques":["T1027.009","T1027.013","T1036.004","T1124","T1140","T1485","T1531","T1561.001","T1561.002","T1569.002"]},{"id":"S0616","name":"DEATHRANSOM","type":"software","techniques":["T1047","T1071.001","T1083","T1105","T1135","T1486","T1490","T1614.001","T1680"]},{"id":"S0213","name":"DOGCALL","type":"software","techniques":["T1027.013","T1056.001","T1102.002","T1105","T1113","T1123"]},{"id":"S0694","name":"DRATzarus","type":"software","techniques":["T1005","T1018","T1027","T1027.002","T1033","T1036.005","T1057","T1071.001","T1105","T1106","T1124","T1497.003","T1622"]},{"id":"S1158","name":"DUSTPAN","type":"software","techniques":["T1027.009","T1027.013","T1036.005","T1055.002","T1140","T1543.003"]},{"id":"S1159","name":"DUSTTRAP","type":"software","techniques":["T1005","T1010","T1012","T1016","T1018","T1027.009","T1027.013","T1041","T1055","T1056.001","T1057","T1059.003","T1070","T1070.001","T1070.005","T1082","T1083","T1087.001","T1087.002","T1105","T1113","T1124","T1135","T1140","T1482","T1497.001","T1518.001","T1615","T1654"]},{"id":"S0497","name":"Dacls","type":"software","techniques":["T1027.013","T1036","T1057","T1071.001","T1083","T1105","T1543.001","T1543.004","T1564.001"]},{"id":"S1014","name":"DanBot","type":"software","techniques":["T1005","T1021.005","T1027.013","T1036.005","T1053.005","T1059.003","T1059.005","T1070.004","T1071.001","T1071.004","T1105","T1140","T1204.002","T1566.001"]},{"id":"S0334","name":"DarkComet","type":"software","techniques":["T1021.001","T1027.002","T1033","T1036.005","T1056.001","T1057","T1059","T1059.003","T1071.001","T1082","T1105","T1112","T1115","T1123","T1125","T1547.001","T1562.001","T1562.004"]},{"id":"S1111","name":"DarkGate","type":"software","techniques":["T1001","T1005","T1010","T1027","T1027.013","T1036","T1036.003","T1036.007","T1041","T1047","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1059.010","T1070.004","T1071.004","T1082","T1083","T1098.007","T1105","T1106","T1115","T1119","T1124","T1134.004","T1136.001","T1140","T1204.002","T1480","T1486","T1490","T1496.001","T1497.001","T1518.001","T1529","T1539","T1547.001","T1548.002","T1552","T1555","T1561.001","T1562.001","T1564.001","T1566.001","T1566.002","T1569.002","T1574","T1574.001","T1574.007","T1583.001","T1614","T1622","T1657","T1665","T1680"]},{"id":"S1066","name":"DarkTortilla","type":"software","techniques":["T1007","T1016.001","T1027","T1036","T1047","T1055.001","T1056.001","T1057","T1059.003","T1071.001","T1082","T1102","T1105","T1106","T1112","T1115","T1140","T1204.002","T1497.001","T1497.003","T1518.001","T1547.001","T1547.004","T1559.001","T1564","T1566.001","T1574.012","T1622"]},{"id":"S0673","name":"DarkWatchman","type":"software","techniques":["T1005","T1010","T1012","T1027.004","T1027.010","T1027.011","T1027.015","T1033","T1036","T1047","T1053.005","T1056.001","T1059.001","T1059.003","T1059.007","T1070","T1070.004","T1071.001","T1074.001","T1082","T1083","T1112","T1120","T1124","T1129","T1132.001","T1140","T1217","T1490","T1518.001","T1566.001","T1568.002","T1573.002","T1614"]},{"id":"S0187","name":"Daserf","type":"software","techniques":["T1001.002","T1003.001","T1027","T1027.002","T1027.005","T1036.005","T1056.001","T1059.003","T1071.001","T1105","T1113","T1132.001","T1553.002","T1560","T1560.001","T1573.001"]},{"id":"S0243","name":"DealersChoice","type":"software","techniques":["T1059.003","T1071.001","T1203"]},{"id":"S0354","name":"Denis","type":"software","techniques":["T1012","T1016","T1027","T1027.010","T1033","T1055.012","T1059.001","T1059.003","T1070.004","T1071.004","T1082","T1083","T1105","T1106","T1132.001","T1140","T1497.001","T1560.002","T1574","T1574.001"]},{"id":"S0021","name":"Derusbi","type":"software","techniques":["T1008","T1012","T1033","T1055.001","T1056.001","T1057","T1059.004","T1070.004","T1070.006","T1082","T1083","T1095","T1113","T1123","T1125","T1218.010","T1571","T1573.001"]},{"id":"S0659","name":"Diavol","type":"software","techniques":["T1016","T1018","T1021.002","T1027","T1027.003","T1033","T1057","T1071.001","T1082","T1083","T1105","T1106","T1135","T1485","T1486","T1489","T1490","T1491.001","T1562.001"]},{"id":"S0200","name":"Dipsind","type":"software","techniques":["T1029","T1059.003","T1071.001","T1105","T1132.001","T1547.004","T1573.001"]},{"id":"S1088","name":"Disco","type":"software","techniques":["T1053.005","T1071.002","T1105","T1204.002","T1659"]},{"id":"S1021","name":"DnsSystem","type":"software","techniques":["T1005","T1033","T1041","T1059.003","T1071.004","T1105","T1132.001","T1204.002","T1547.001"]},{"id":"S0281","name":"Dok","type":"software","techniques":["T1027.002","T1048.003","T1056.002","T1059.002","T1090.003","T1222.002","T1543.001","T1547.015","T1548.003","T1553.004","T1557"]},{"id":"S0600","name":"Doki","type":"software","techniques":["T1020","T1036.005","T1041","T1057","T1059.004","T1071.001","T1083","T1102","T1105","T1133","T1568.002","T1573.002","T1610","T1611"]},{"id":"S0695","name":"Donut","type":"software","techniques":["T1027.002","T1027.013","T1027.015","T1055","T1057","T1059","T1059.001","T1059.005","T1059.006","T1059.007","T1070","T1071.001","T1105","T1106","T1562.001","T1620"]},{"id":"S0186","name":"DownPaper","type":"software","techniques":["T1012","T1033","T1059.001","T1059.003","T1071.001","T1082","T1547.001"]},{"id":"S0134","name":"Downdelph","type":"software","techniques":["T1001.001","T1105","T1548.002","T1573.001","T1574.001"]},{"id":"S0384","name":"Dridex","type":"software","techniques":["T1027","T1053.005","T1071.001","T1082","T1090","T1090.003","T1106","T1185","T1204.002","T1218.010","T1219","T1518","T1573.001","T1573.002","T1574.001"]},{"id":"S0547","name":"DropBook","type":"software","techniques":["T1059.003","T1059.006","T1082","T1083","T1102","T1105","T1140","T1567","T1614.001"]},{"id":"S0502","name":"Drovorub","type":"software","techniques":["T1005","T1014","T1027","T1041","T1059.004","T1070.004","T1071.001","T1090.001","T1095","T1105","T1140","T1547.006"]},{"id":"S0567","name":"Dtrack","type":"software","techniques":["T1005","T1012","T1016","T1027.009","T1036.005","T1049","T1055.012","T1056.001","T1057","T1059.003","T1070.004","T1074.001","T1078","T1082","T1083","T1105","T1129","T1140","T1217","T1543.003","T1547","T1560","T1574"]},{"id":"S0038","name":"Duqu","type":"software","techniques":["T1001.002","T1010","T1016","T1021.002","T1049","T1053.005","T1055.001","T1055.012","T1056.001","T1057","T1071","T1074.001","T1078","T1087.001","T1090.001","T1134","T1218.007","T1543.003","T1560.003","T1572","T1573.001"]},{"id":"S0062","name":"DustySky","type":"software","techniques":["T1008","T1027","T1041","T1047","T1056.001","T1057","T1070.004","T1071.001","T1074.001","T1082","T1083","T1091","T1113","T1120","T1518","T1518.001","T1547.001","T1560.001","T1570"]},{"id":"S0024","name":"Dyre","type":"software","techniques":["T1007","T1016","T1027.002","T1033","T1041","T1053.005","T1055","T1055.001","T1071.001","T1074.001","T1082","T1105","T1140","T1497.001","T1518","T1543.003"]},{"id":"S0593","name":"ECCENTRICBANDWAGON","type":"software","techniques":["T1027","T1056.001","T1059.003","T1070.004","T1074.001","T1113"]},{"id":"S0605","name":"EKANS","type":"software","techniques":["T1016","T1027","T1036.005","T1047","T1057","T1486","T1489","T1490","T1562.001"]},{"id":"S0064","name":"ELMER","type":"software","techniques":["T1057","T1071.001","T1083"]},{"id":"S0568","name":"EVILNUM","type":"software","techniques":["T1033","T1041","T1047","T1070","T1070.006","T1082","T1102.003","T1105","T1112","T1218.010","T1218.011","T1518.001","T1539","T1547.001"]},{"id":"S0377","name":"Ebury","type":"software","techniques":["T1008","T1014","T1020","T1027","T1041","T1059.004","T1059.006","T1071.004","T1129","T1132.001","T1140","T1552.004","T1553.002","T1554","T1556","T1556.003","T1562.001","T1562.006","T1562.012","T1568.002","T1573.001","T1574.006"]},{"id":"S0624","name":"Ecipekac","type":"software","techniques":["T1027","T1105","T1140","T1553.002","T1574.001"]},{"id":"S0554","name":"Egregor","type":"software","techniques":["T1027.002","T1033","T1036.004","T1039","T1049","T1055","T1059.001","T1059.003","T1069.002","T1071.001","T1082","T1105","T1106","T1124","T1140","T1197","T1218.010","T1218.011","T1219","T1484.001","T1486","T1497","T1497.003","T1562.001","T1574.001"]},{"id":"S0081","name":"Elise","type":"software","techniques":["T1007","T1016","T1027.013","T1036.005","T1055.001","T1057","T1070.004","T1070.006","T1071.001","T1074.001","T1082","T1083","T1087.001","T1105","T1132.001","T1218.011","T1543.003","T1547.001","T1573.001"]},{"id":"S1247","name":"Embargo","type":"software","techniques":["T1007","T1027.013","T1053.005","T1057","T1059.003","T1068","T1070.004","T1083","T1106","T1112","T1135","T1140","T1480.002","T1486","T1489","T1490","T1543.003","T1547.001","T1562.009","T1569.002","T1657","T1679"]},{"id":"S0082","name":"Emissary","type":"software","techniques":["T1007","T1016","T1027.001","T1027.013","T1055.001","T1059.003","T1069.001","T1071.001","T1082","T1105","T1218.011","T1543.003","T1547.001","T1573.001","T1615"]},{"id":"S0367","name":"Emotet","type":"software","techniques":["T1003.001","T1016.002","T1021.002","T1027.001","T1027.002","T1027.009","T1027.010","T1027.013","T1033","T1036.004","T1040","T1041","T1047","T1053.005","T1055.001","T1055.012","T1057","T1059.001","T1059.003","T1059.005","T1071.001","T1078.003","T1087.003","T1105","T1106","T1110.001","T1114","T1114.001","T1132.001","T1134.001","T1135","T1140","T1204.001","T1204.002","T1210","T1218.010","T1543.003","T1547.001","T1552.001","T1555.003","T1566.001","T1566.002","T1570","T1571","T1573","T1573.001","T1620"]},{"id":"S0363","name":"Empire","type":"software","techniques":["T1003.001","T1016","T1020","T1021.003","T1021.004","T1027.010","T1033","T1040","T1041","T1046","T1047","T1049","T1053.005","T1055","T1056.001","T1056.004","T1057","T1059","T1059.001","T1059.003","T1068","T1070.006","T1071.001","T1082","T1083","T1087.001","T1087.002","T1102.002","T1105","T1106","T1113","T1114.001","T1115","T1119","T1125","T1127.001","T1134","T1134.002","T1134.005","T1135","T1136.001","T1136.002","T1210","T1217","T1482","T1484.001","T1518.001","T1543.003","T1546.008","T1547.001","T1547.005","T1547.009","T1548.002","T1550.002","T1552.001","T1552.004","T1555.001","T1555.003","T1557.001","T1558.001","T1558.002","T1558.003","T1560","T1567.001","T1567.002","T1569.002","T1573.002","T1574.001","T1574.004","T1574.007","T1574.008","T1574.009","T1615"]},{"id":"S0634","name":"EnvyScout","type":"software","techniques":["T1005","T1027.006","T1027.013","T1036","T1059.003","T1059.007","T1082","T1140","T1187","T1204.002","T1218.011","T1480","T1564.001","T1566.001"]},{"id":"S0091","name":"Epic","type":"software","techniques":["T1007","T1012","T1016","T1018","T1027","T1033","T1049","T1055.011","T1057","T1069.001","T1070.004","T1071.001","T1082","T1083","T1087.001","T1124","T1518.001","T1553.002","T1560","T1560.002","T1573.001","T1680"]},{"id":"S0396","name":"EvilBunny","type":"software","techniques":["T1047","T1053.005","T1057","T1059.003","T1059.011","T1070.004","T1071.001","T1105","T1106","T1124","T1203","T1497.001","T1497.003","T1518.001","T1547.001"]},{"id":"S0152","name":"EvilGrab","type":"software","techniques":["T1056.001","T1113","T1123","T1125","T1547.001"]},{"id":"S0401","name":"Exaramel for Linux","type":"software","techniques":["T1008","T1027.013","T1033","T1053.003","T1059.004","T1070.004","T1071.001","T1105","T1140","T1543","T1543.002","T1548.001"]},{"id":"S0343","name":"Exaramel for Windows","type":"software","techniques":["T1027.011","T1036.004","T1059.003","T1059.005","T1074.001","T1112","T1543.003","T1560"]},{"id":"S1179","name":"Exbyte","type":"software","techniques":["T1069.001","T1070.004","T1083","T1106","T1140","T1480","T1497.001","T1518.001","T1567"]},{"id":"S0361","name":"Expand","type":"software","techniques":["T1140","T1564.004","T1570"]},{"id":"S0569","name":"Explosive","type":"software","techniques":["T1016","T1025","T1033","T1056.001","T1071.001","T1082","T1105","T1106","T1112","T1115","T1564.001","T1573.001"]},{"id":"S0181","name":"FALLCHILL","type":"software","techniques":["T1001.003","T1016","T1070.004","T1070.006","T1082","T1083","T1543.003","T1573.001","T1680"]},{"id":"S0267","name":"FELIXROOT","type":"software","techniques":["T1012","T1016","T1027.013","T1033","T1047","T1057","T1059.003","T1070.004","T1071.001","T1082","T1105","T1112","T1124","T1218.011","T1518.001","T1547.001","T1547.009","T1560","T1680"]},{"id":"S0618","name":"FIVEHANDS","type":"software","techniques":["T1027.013","T1047","T1059","T1083","T1135","T1140","T1486","T1490"]},{"id":"S0036","name":"FLASHFLOOD","type":"software","techniques":["T1005","T1025","T1074.001","T1083","T1547.001","T1560.003"]},{"id":"S1120","name":"FRAMESTING","type":"software","techniques":["T1001","T1001.003","T1059.006","T1071.001","T1140","T1505.003","T1554"]},{"id":"S1144","name":"FRP","type":"software","techniques":["T1046","T1049","T1059.007","T1071.001","T1090","T1090.003","T1095","T1572","T1573.001","T1573.002"]},{"id":"S0628","name":"FYAnti","type":"software","techniques":["T1027.002","T1083","T1105","T1140"]},{"id":"S0076","name":"FakeM","type":"software","techniques":["T1001.003","T1056.001","T1095","T1573.001"]},{"id":"S0512","name":"FatDuke","type":"software","techniques":["T1005","T1008","T1012","T1016","T1027","T1027.002","T1027.016","T1036.012","T1057","T1059.001","T1070.004","T1071.001","T1082","T1083","T1090.001","T1106","T1140","T1218.011","T1497.003","T1547.001","T1573.001"]},{"id":"S0171","name":"Felismus","type":"software","techniques":["T1016","T1033","T1036.005","T1059.003","T1071.001","T1082","T1105","T1132.001","T1518.001","T1573.001"]},{"id":"S0679","name":"Ferocious","type":"software","techniques":["T1059.001","T1059.005","T1070.004","T1082","T1112","T1120","T1497.001","T1518.001","T1546.015"]},{"id":"S0182","name":"FinFisher","type":"software","techniques":["T1012","T1027","T1027.002","T1027.016","T1036.005","T1055.001","T1056.004","T1057","T1070.001","T1082","T1083","T1113","T1134.001","T1140","T1497.001","T1518.001","T1542.003","T1543.003","T1547.001","T1548.002","T1574.001","T1574.013"]},{"id":"S0355","name":"Final1stspy","type":"software","techniques":["T1027","T1057","T1071.001","T1082","T1140","T1547.001"]},{"id":"S0696","name":"Flagpro","type":"software","techniques":["T1005","T1010","T1016","T1018","T1027","T1029","T1033","T1036","T1041","T1049","T1057","T1059.003","T1059.005","T1069.001","T1070","T1071.001","T1105","T1106","T1132.001","T1135","T1204.002","T1547.001","T1566.001","T1614.001"]},{"id":"S0143","name":"Flame","type":"software","techniques":["T1011.001","T1036.010","T1091","T1113","T1123","T1136.001","T1210","T1218.011","T1518.001","T1547.002"]},{"id":"S0381","name":"FlawedAmmyy","type":"software","techniques":["T1001","T1005","T1033","T1041","T1047","T1056","T1056.001","T1059.001","T1059.003","T1069.001","T1070.004","T1071.001","T1082","T1105","T1113","T1115","T1120","T1218.007","T1218.011","T1518.001","T1547.001","T1573.001"]},{"id":"S0661","name":"FoggyWeb","type":"software","techniques":["T1005","T1027.004","T1027.013","T1036","T1036.005","T1040","T1041","T1057","T1071.001","T1083","T1105","T1106","T1129","T1140","T1550","T1552.004","T1560.002","T1560.003","T1573.001","T1574.001","T1620"]},{"id":"S0193","name":"Forfiles","type":"software","techniques":["T1005","T1083","T1202"]},{"id":"S0503","name":"FrameworkPOS","type":"software","techniques":["T1005","T1048","T1057","T1074.001","T1560.003"]},{"id":"S0277","name":"FruitFly","type":"software","techniques":["T1027.010","T1057","T1070.004","T1083","T1113","T1543.001","T1564.001"]},{"id":"S1044","name":"FunnyDream","type":"software","techniques":["T1001","T1005","T1010","T1012","T1016","T1018","T1025","T1027.013","T1033","T1036.004","T1041","T1047","T1055.001","T1056.001","T1057","T1059.003","T1070","T1070.004","T1074.001","T1083","T1090","T1095","T1105","T1106","T1113","T1119","T1120","T1124","T1218.011","T1518.001","T1543.003","T1547.001","T1559.001","T1560.002","T1560.003","T1572","T1680"]},{"id":"S0410","name":"Fysbis","type":"software","techniques":["T1027.013","T1036.004","T1036.005","T1056.001","T1057","T1059.004","T1070.004","T1082","T1083","T1132.001","T1543.002","T1547.013"]},{"id":"S1117","name":"GLASSTOKEN","type":"software","techniques":["T1059.001","T1132.001","T1140","T1505.003"]},{"id":"S0026","name":"GLOOXMAIL","type":"software","techniques":["T1071.005","T1102.002"]},{"id":"S0417","name":"GRIFFON","type":"software","techniques":["T1053.005","T1059.001","T1059.007","T1069.002","T1082","T1113","T1124","T1547.001"]},{"id":"S0168","name":"Gazer","type":"software","techniques":["T1027.013","T1033","T1053.005","T1055","T1055.003","T1070.004","T1070.006","T1071.001","T1105","T1480.002","T1546.002","T1547.001","T1547.004","T1547.009","T1553.002","T1564.004","T1573.001","T1573.002"]},{"id":"S0666","name":"Gelsemium","type":"software","techniques":["T1005","T1008","T1012","T1027.011","T1027.015","T1027.016","T1033","T1036.001","T1036.005","T1055.001","T1057","T1059.003","T1070.004","T1070.006","T1071.001","T1071.004","T1082","T1083","T1095","T1105","T1106","T1112","T1134","T1140","T1497","T1518.001","T1543.003","T1547.001","T1547.012","T1548.002","T1559.001","T1568","T1620"]},{"id":"S0049","name":"GeminiDuke","type":"software","techniques":["T1007","T1016","T1057","T1071.001","T1083","T1087.001"]},{"id":"S0460","name":"Get2","type":"software","techniques":["T1033","T1055.001","T1057","T1059","T1071.001","T1082"]},{"id":"S1197","name":"GoBear","type":"software","techniques":["T1036.005","T1090","T1553.002"]},{"id":"S0249","name":"Gold Dragon","type":"software","techniques":["T1012","T1033","T1057","T1059.003","T1070.004","T1071.001","T1074.001","T1082","T1083","T1105","T1518.001","T1547.001","T1560","T1562.001"]},{"id":"S0597","name":"GoldFinder","type":"software","techniques":["T1016.001","T1071.001","T1119"]},{"id":"S0588","name":"GoldMax","type":"software","techniques":["T1001.001","T1016","T1027.002","T1027.013","T1036.004","T1036.005","T1041","T1053.003","T1053.005","T1059.003","T1071.001","T1105","T1124","T1140","T1497.001","T1497.003","T1564.011","T1573.002"]},{"id":"S0493","name":"GoldenSpy","type":"software","techniques":["T1027.013","T1036.005","T1041","T1059.003","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1136.001","T1195.002","T1497.003","T1543.003","T1571"]},{"id":"S1198","name":"Gomir","type":"software","techniques":["T1016","T1018","T1053.003","T1059.004","T1069.001","T1070.004","T1071.001","T1082","T1083","T1090.001","T1132.001","T1543.002","T1573","T1573.002"]},{"id":"S0477","name":"Goopy","type":"software","techniques":["T1005","T1027.001","T1027.016","T1033","T1036.005","T1041","T1053.005","T1057","T1059.003","T1059.005","T1070.008","T1071.001","T1071.003","T1071.004","T1106","T1140","T1562.001","T1574.001"]},{"id":"S1138","name":"Gootloader","type":"software","techniques":["T1016","T1027","T1055.002","T1055.012","T1059.001","T1059.007","T1069.002","T1082","T1105","T1132.001","T1140","T1204.001","T1497.003","T1547.001","T1584.001","T1584.006","T1614","T1614.001"]},{"id":"S0531","name":"Grandoreiro","type":"software","techniques":["T1010","T1016","T1027.001","T1027.011","T1027.013","T1033","T1036.005","T1041","T1056.001","T1057","T1059.005","T1070.004","T1071.001","T1082","T1087.003","T1102.001","T1102.002","T1105","T1106","T1112","T1115","T1124","T1140","T1176.001","T1185","T1189","T1204.001","T1204.002","T1218.007","T1222.001","T1497.001","T1518.001","T1539","T1547.001","T1547.009","T1548.002","T1555.003","T1562.001","T1562.004","T1562.013","T1566.002","T1568.002","T1573.002"]},{"id":"S0237","name":"GravityRAT","type":"software","techniques":["T1005","T1007","T1016","T1025","T1027.005","T1027.013","T1033","T1047","T1049","T1053.005","T1057","T1059.003","T1071.001","T1082","T1083","T1124","T1497.001","T1559.002","T1571"]},{"id":"S0690","name":"Green Lambert","type":"software","techniques":["T1005","T1016","T1027","T1036.004","T1036.005","T1037.004","T1059.004","T1070.004","T1071.004","T1082","T1090","T1124","T1140","T1543.001","T1543.004","T1546.004","T1547.015","T1555.001"]},{"id":"S0342","name":"GreyEnergy","type":"software","techniques":["T1003.001","T1007","T1027.002","T1027.013","T1055.002","T1056.001","T1059.003","T1070.004","T1071.001","T1090.003","T1105","T1112","T1218.011","T1543.003","T1553.002","T1573.001","T1573.002"]},{"id":"S0632","name":"GrimAgent","type":"software","techniques":["T1001.001","T1005","T1016","T1027","T1027.001","T1033","T1041","T1053.005","T1059.003","T1070.004","T1070.009","T1071.001","T1082","T1083","T1105","T1106","T1132.001","T1140","T1480.002","T1497.003","T1547.001","T1573.001","T1573.002","T1614","T1614.001"]},{"id":"S0561","name":"GuLoader","type":"software","techniques":["T1055","T1070.004","T1071.001","T1102","T1105","T1106","T1204.001","T1204.002","T1497.001","T1497.003","T1547.001","T1566.002"]},{"id":"S0132","name":"H1N1","type":"software","techniques":["T1027","T1027.002","T1059.003","T1080","T1091","T1105","T1132","T1490","T1548.002","T1555.003","T1562.001","T1562.004","T1573.001"]},{"id":"S0151","name":"HALFBAKED","type":"software","techniques":["T1047","T1057","T1059.001","T1070.004","T1082","T1113"]},{"id":"S0037","name":"HAMMERTOSS","type":"software","techniques":["T1001.002","T1059.001","T1071.001","T1102.003","T1564.003","T1567.002","T1573.001"]},{"id":"S0214","name":"HAPPYWORK","type":"software","techniques":["T1033","T1082","T1105"]},{"id":"S0246","name":"HARDRAIN","type":"software","techniques":["T1001.003","T1059.003","T1090","T1562.004","T1571"]},{"id":"S0391","name":"HAWKBALL","type":"software","techniques":["T1027.013","T1033","T1041","T1059.003","T1070.004","T1071.001","T1082","T1106","T1203","T1559.002","T1560.003"]},{"id":"S0061","name":"HDoor","type":"software","techniques":["T1046","T1562.001"]},{"id":"S0617","name":"HELLOKITTY","type":"software","techniques":["T1047","T1057","T1135","T1486","T1490","T1680"]},{"id":"S0135","name":"HIDEDRV","type":"software","techniques":["T1014","T1055.001"]},{"id":"S1230","name":"HIUPAN","type":"software","techniques":["T1057","T1091","T1112","T1120","T1204.002","T1547.001","T1564.001","T1574.001","T1678"]},{"id":"S0232","name":"HOMEFRY","type":"software","techniques":["T1003","T1027.013","T1059.003"]},{"id":"S0376","name":"HOPLIGHT","type":"software","techniques":["T1003.002","T1008","T1012","T1041","T1047","T1055","T1059.003","T1082","T1083","T1090","T1105","T1112","T1124","T1132.001","T1546.003","T1550.002","T1562.004","T1569.002","T1571","T1652","T1680"]},{"id":"S0040","name":"HTRAN","type":"software","techniques":["T1014","T1055","T1090"]},{"id":"S0070","name":"HTTPBrowser","type":"software","techniques":["T1027","T1036.005","T1056.001","T1059.003","T1070.004","T1071.001","T1071.004","T1083","T1105","T1547.001","T1574.001"]},{"id":"S1097","name":"HUI Loader","type":"software","techniques":["T1140","T1562.006","T1574.001"]},{"id":"S0047","name":"Hacking Team UEFI Rootkit","type":"software","techniques":["T1014","T1542.001"]},{"id":"S0499","name":"Hancitor","type":"software","techniques":["T1027","T1027.015","T1059.001","T1070.004","T1105","T1106","T1140","T1204.001","T1204.002","T1218.012","T1497","T1547.001","T1566.001","T1566.002"]},{"id":"S1211","name":"Hannotog","type":"software","techniques":["T1020","T1059.003","T1105","T1489","T1543.003","T1562.004","T1571"]},{"id":"S1229","name":"Havoc","type":"software","techniques":["T1005","T1016","T1016.001","T1018","T1033","T1055.001","T1055.002","T1057","T1059.001","T1059.003","T1071.001","T1071.002","T1082","T1083","T1087","T1090","T1105","T1106","T1113","T1134.001","T1204.004","T1497.003","T1559","T1566.002","T1570","T1573.001"]},{"id":"S0170","name":"Helminth","type":"software","techniques":["T1027.013","T1030","T1053.005","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1069.001","T1069.002","T1071.001","T1071.004","T1074.001","T1105","T1115","T1119","T1132.001","T1547.001","T1547.009","T1553.002","T1573.001"]},{"id":"S0697","name":"HermeticWiper","type":"software","techniques":["T1027.015","T1036.005","T1053.005","T1059.003","T1070","T1070.001","T1070.004","T1082","T1083","T1106","T1112","T1134","T1140","T1484.001","T1485","T1489","T1490","T1497.003","T1529","T1543.003","T1553.002","T1561.001","T1561.002","T1562.006","T1569.002","T1680"]},{"id":"S0698","name":"HermeticWizard","type":"software","techniques":["T1018","T1021.002","T1027.013","T1036.005","T1046","T1047","T1059.003","T1070.001","T1106","T1110.001","T1218.010","T1218.011","T1553.002","T1559.001","T1569.002","T1570"]},{"id":"S1249","name":"HexEval Loader","type":"software","techniques":["T1016","T1027.013","T1033","T1036.005","T1041","T1056.001","T1059.007","T1071.001","T1082","T1105","T1140","T1614"]},{"id":"S1027","name":"Heyoka Backdoor","type":"software","techniques":["T1007","T1027.013","T1036.004","T1055.001","T1057","T1070.004","T1071.004","T1083","T1120","T1140","T1204.002","T1218.011","T1547.001","T1572","T1680"]},{"id":"S0087","name":"Hi-Zor","type":"software","techniques":["T1027.013","T1059.003","T1070.004","T1071.001","T1105","T1218.010","T1547.001","T1573.001","T1573.002"]},{"id":"S0394","name":"HiddenWasp","type":"software","techniques":["T1014","T1027.013","T1037.004","T1059.003","T1095","T1105","T1136.001","T1140","T1573.001","T1574.006"]},{"id":"S0009","name":"Hikit","type":"software","techniques":["T1005","T1014","T1059.003","T1071.001","T1090.001","T1105","T1553.004","T1553.006","T1566","T1573.001","T1574.001"]},{"id":"S0601","name":"Hildegard","type":"software","techniques":["T1014","T1027.002","T1027.013","T1036.004","T1046","T1059.004","T1068","T1070.003","T1070.004","T1071","T1082","T1102","T1105","T1133","T1136.001","T1140","T1219","T1496.001","T1543.002","T1552.001","T1552.004","T1552.005","T1562.001","T1574.006","T1609","T1611","T1613"]},{"id":"S0431","name":"HotCroissant","type":"software","techniques":["T1007","T1010","T1016","T1027.002","T1027.013","T1033","T1041","T1053.005","T1057","T1059.003","T1070.004","T1082","T1083","T1105","T1106","T1113","T1489","T1518","T1564.003","T1573.001"]},{"id":"S0203","name":"Hydraq","type":"software","techniques":["T1005","T1007","T1012","T1016","T1027","T1048","T1057","T1070.001","T1070.004","T1082","T1083","T1105","T1112","T1113","T1129","T1134","T1543.003","T1569.002","T1573.001"]},{"id":"S0398","name":"HyperBro","type":"software","techniques":["T1007","T1027.002","T1027.013","T1055","T1070.004","T1071.001","T1105","T1106","T1113","T1140","T1569.002","T1574.001"]},{"id":"S0537","name":"HyperStack","type":"software","techniques":["T1078.001","T1087.001","T1106","T1112","T1559","T1573.001"]},{"id":"S1152","name":"IMAPLoader","type":"software","techniques":["T1047","T1053.005","T1071.003","T1082","T1105","T1106","T1543","T1564.003","T1574.014"]},{"id":"S1139","name":"INC Ransomware","type":"software","techniques":["T1047","T1057","T1083","T1106","T1120","T1135","T1140","T1486","T1489","T1490","T1491.001","T1566","T1570","T1652","T1680"]},{"id":"S1132","name":"IPsec Helper","type":"software","techniques":["T1005","T1027.013","T1041","T1057","T1059.001","T1059.003","T1059.005","T1070","T1070.004","T1070.009","T1071.001","T1112","T1497.003","T1569.002","T1570"]},{"id":"S0189","name":"ISMInjector","type":"software","techniques":["T1027","T1053.005","T1055.012","T1140"]},{"id":"S1022","name":"IceApple","type":"software","techniques":["T1003.002","T1003.004","T1005","T1016","T1027.010","T1036.005","T1041","T1056.003","T1070.004","T1071.001","T1082","T1083","T1087.002","T1140","T1505.004","T1552.002","T1560.001","T1573.001","T1620"]},{"id":"S0483","name":"IcedID","type":"software","techniques":["T1016","T1027.002","T1027.003","T1027.009","T1027.013","T1036.005","T1047","T1048.002","T1053.005","T1055.004","T1055.012","T1059.005","T1069","T1071.001","T1082","T1087.002","T1105","T1106","T1135","T1185","T1189","T1204.002","T1218.007","T1218.011","T1482","T1497","T1518.001","T1547.001","T1566.001","T1573.002","T1614.001"]},{"id":"S0434","name":"Imminent Monitor","type":"software","techniques":["T1021.001","T1027","T1041","T1056.001","T1057","T1059","T1070.004","T1083","T1106","T1123","T1125","T1140","T1496.001","T1555.003","T1562.001","T1564.001"]},{"id":"S0357","name":"Impacket","type":"software","techniques":["T1003.001","T1003.002","T1003.003","T1003.004","T1040","T1047","T1557.001","T1558.003","T1558.005","T1569.002","T1570"]},{"id":"S0604","name":"Industroyer","type":"software","techniques":["T1012","T1016","T1018","T1027","T1041","T1046","T1071.001","T1078","T1082","T1083","T1090.003","T1105","T1140","T1485","T1489","T1499.004","T1543.003","T1554","T1572"]},{"id":"S0259","name":"InnaputRAT","type":"software","techniques":["T1027","T1036.004","T1036.005","T1059.003","T1070.004","T1082","T1083","T1106","T1543.003","T1547.001","T1680"]},{"id":"S0260","name":"InvisiMole","type":"software","techniques":["T1001.003","T1005","T1007","T1008","T1010","T1012","T1016","T1025","T1027","T1027.005","T1033","T1036.004","T1036.005","T1046","T1053.005","T1055","T1055.002","T1055.004","T1055.015","T1056.001","T1057","T1059.003","T1059.007","T1068","T1070.004","T1070.005","T1070.006","T1071.001","T1071.004","T1074.001","T1080","T1082","T1083","T1087.001","T1090.001","T1090.002","T1095","T1105","T1106","T1112","T1113","T1119","T1123","T1124","T1125","T1132.002","T1135","T1140","T1203","T1204.002","T1210","T1218.002","T1218.011","T1480.001","T1490","T1497.001","T1518","T1518.001","T1543.003","T1547.001","T1547.009","T1548.002","T1559.001","T1560.001","T1560.002","T1560.003","T1562.004","T1564.001","T1564.003","T1569.002","T1573.001","T1574.001","T1680"]},{"id":"S1245","name":"InvisibleFerret","type":"software","techniques":["T1005","T1016","T1027.013","T1033","T1041","T1048.003","T1056","T1056.001","T1057","T1059.001","T1059.006","T1071.001","T1074.001","T1082","T1083","T1087.001","T1095","T1105","T1115","T1140","T1219","T1489","T1518","T1543.001","T1547.001","T1547.013","T1555.003","T1555.005","T1560.001","T1564.003","T1567","T1571","T1614","T1657","T1679"]},{"id":"S0231","name":"Invoke-PSImage","type":"software","techniques":["T1027.003","T1027.009"]},{"id":"S0581","name":"IronNetInjector","type":"software","techniques":["T1027.013","T1036.004","T1053.005","T1055","T1055.001","T1057","T1059.006","T1140"]},{"id":"S0015","name":"Ixeshe","type":"software","techniques":["T1005","T1007","T1016","T1033","T1036.005","T1057","T1059.003","T1070.004","T1071.001","T1082","T1083","T1105","T1132.001","T1547.001","T1564.001"]},{"id":"S1203","name":"J-magic","type":"software","techniques":["T1016","T1036.005","T1040","T1059.004","T1070.003","T1095","T1205","T1573.002"]},{"id":"S0389","name":"JCry","type":"software","techniques":["T1059.001","T1059.003","T1059.005","T1204.002","T1486","T1490","T1547.001"]},{"id":"S0044","name":"JHUHUGIT","type":"software","techniques":["T1008","T1016","T1027.013","T1037.001","T1053.005","T1055","T1057","T1059.003","T1068","T1070.004","T1071.001","T1105","T1113","T1115","T1132.001","T1218.011","T1543.003","T1546.015","T1547.001","T1680"]},{"id":"S0201","name":"JPIN","type":"software","techniques":["T1007","T1012","T1016","T1027","T1033","T1055","T1056.001","T1057","T1059.003","T1069.001","T1070.004","T1071.002","T1071.003","T1082","T1083","T1105","T1197","T1222.001","T1518.001","T1562.001"]},{"id":"S0648","name":"JSS Loader","type":"software","techniques":["T1053.005","T1059.001","T1059.005","T1059.007","T1105","T1204.002","T1566.001"]},{"id":"S0163","name":"Janicab","type":"software","techniques":["T1053.003","T1113","T1123","T1553.002"]},{"id":"S0528","name":"Javali","type":"software","techniques":["T1027.001","T1057","T1059.005","T1102.001","T1105","T1204.001","T1204.002","T1218.007","T1555.003","T1566.001","T1566.002","T1574.001"]},{"id":"S1206","name":"JumbledPath","type":"software","techniques":["T1040","T1070.002","T1104","T1560","T1562","T1665"]},{"id":"S0215","name":"KARAE","type":"software","techniques":["T1082","T1102.002","T1105","T1189"]},{"id":"S0271","name":"KEYMARBLE","type":"software","techniques":["T1016","T1057","T1059.003","T1070.004","T1082","T1083","T1105","T1112","T1113","T1573.001","T1680"]},{"id":"S1051","name":"KEYPLUG","type":"software","techniques":["T1027.013","T1071.001","T1090","T1095","T1102.001","T1124","T1140","T1573.002"]},{"id":"S0526","name":"KGH_SPY","type":"software","techniques":["T1005","T1027.013","T1036.005","T1037.001","T1041","T1056.001","T1059.001","T1059.003","T1071.001","T1074.001","T1083","T1105","T1114.001","T1140","T1204.002","T1518","T1555","T1555.003","T1555.004","T1680"]},{"id":"S0669","name":"KOCTOPUS","type":"software","techniques":["T1027.010","T1036.005","T1059.001","T1059.003","T1059.005","T1070.009","T1082","T1090","T1105","T1106","T1112","T1140","T1204.001","T1204.002","T1547.001","T1548.002","T1562.001","T1564.003","T1566.001","T1566.002"]},{"id":"S0156","name":"KOMPROGO","type":"software","techniques":["T1047","T1059.003","T1082"]},{"id":"S0356","name":"KONNI","type":"software","techniques":["T1005","T1016","T1027.002","T1027.013","T1033","T1036.004","T1036.005","T1041","T1048.003","T1049","T1056.001","T1057","T1059.001","T1059.003","T1059.007","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1112","T1113","T1115","T1132.001","T1134.002","T1134.004","T1140","T1204.002","T1218.011","T1543.003","T1546.015","T1547.001","T1547.009","T1548.002","T1555.003","T1560","T1566.001","T1573.001","T1680"]},{"id":"S1075","name":"KOPILUWAK","type":"software","techniques":["T1005","T1016","T1033","T1041","T1049","T1057","T1059.007","T1071.001","T1074.001","T1135","T1204.002","T1566.001","T1680"]},{"id":"S1190","name":"Kapeka","type":"software","techniques":["T1012","T1027.013","T1036.008","T1053.005","T1059.003","T1070.009","T1071.001","T1082","T1090","T1106","T1112","T1132.001","T1140","T1218.011"]},{"id":"S0088","name":"Kasidet","type":"software","techniques":["T1056.001","T1057","T1059.003","T1082","T1083","T1105","T1113","T1518.001","T1547.001","T1562.004"]},{"id":"S0265","name":"Kazuar","type":"software","techniques":["T1005","T1008","T1010","T1016","T1027","T1029","T1033","T1047","T1055.001","T1057","T1059.003","T1059.004","T1069.001","T1070.004","T1071.001","T1071.002","T1074.001","T1082","T1083","T1087.001","T1090.001","T1102.002","T1105","T1113","T1125","T1132.001","T1485","T1543.003","T1547.001","T1547.009","T1680"]},{"id":"S0585","name":"Kerrdown","type":"software","techniques":["T1027.013","T1027.015","T1059.005","T1082","T1105","T1140","T1204.001","T1204.002","T1566.001","T1566.002","T1574.001"]},{"id":"S0487","name":"Kessel","type":"software","techniques":["T1016","T1027.013","T1030","T1041","T1048.003","T1059","T1082","T1090","T1105","T1132.001","T1140","T1554","T1556","T1560"]},{"id":"S1020","name":"Kevin","type":"software","techniques":["T1001.001","T1005","T1008","T1016","T1027.013","T1030","T1036.003","T1041","T1059.003","T1070.004","T1071.001","T1071.004","T1074","T1082","T1105","T1106","T1132.001","T1497","T1546.003","T1564.003","T1572"]},{"id":"S0387","name":"KeyBoy","type":"software","techniques":["T1001.003","T1016","T1027.013","T1056.001","T1059.001","T1059.003","T1059.005","T1059.006","T1070.006","T1082","T1083","T1105","T1113","T1543.003","T1547.004","T1555.003","T1559.002","T1564.003"]},{"id":"S0276","name":"Keydnap","type":"software","techniques":["T1036.006","T1056.002","T1059.006","T1071.001","T1090.003","T1543.001","T1548.001","T1555.002","T1564.009"]},{"id":"S0607","name":"KillDisk","type":"software","techniques":["T1027","T1036.004","T1057","T1070.001","T1070.004","T1083","T1106","T1129","T1134","T1485","T1486","T1489","T1529","T1561.002","T1680"]},{"id":"S0599","name":"Kinsing","type":"software","techniques":["T1018","T1021.004","T1053.003","T1057","T1059.004","T1071.001","T1078","T1083","T1105","T1110","T1133","T1222.002","T1496.001","T1552.003","T1552.004","T1609","T1610"]},{"id":"S0437","name":"Kivars","type":"software","techniques":["T1021","T1056.001","T1070.004","T1083","T1105","T1113","T1564.003"]},{"id":"S0250","name":"Koadic","type":"software","techniques":["T1003.002","T1003.003","T1005","T1016","T1021.001","T1033","T1046","T1047","T1053.005","T1055.001","T1059.001","T1059.003","T1059.005","T1071.001","T1082","T1083","T1105","T1115","T1135","T1218.005","T1218.010","T1218.011","T1547.001","T1548.002","T1564.003","T1569.002","T1573.002"]},{"id":"S0641","name":"Kobalos","type":"software","techniques":["T1016","T1027","T1048","T1056","T1059.004","T1070.003","T1070.006","T1074","T1082","T1090.003","T1140","T1205","T1554","T1573.001","T1573.002"]},{"id":"S0162","name":"Komplex","type":"software","techniques":["T1033","T1057","T1070.004","T1071.001","T1543.001","T1564.001","T1573.001"]},{"id":"S0236","name":"Kwampirs","type":"software","techniques":["T1007","T1008","T1016","T1018","T1021.002","T1027.001","T1027.013","T1033","T1036.004","T1049","T1057","T1069.001","T1069.002","T1082","T1083","T1087.001","T1105","T1135","T1140","T1201","T1218.011","T1543.003"]},{"id":"S1119","name":"LIGHTWIRE","type":"software","techniques":["T1071.001","T1140","T1505.003","T1554","T1573.001"]},{"id":"S1121","name":"LITTLELAMB.WOOLTEA","type":"software","techniques":["T1082","T1083","T1090","T1095","T1543","T1554","T1573.002"]},{"id":"S0042","name":"LOWBALL","type":"software","techniques":["T1071.001","T1102.002","T1105"]},{"id":"S0349","name":"LaZagne","type":"software","techniques":["T1003.001","T1003.004","T1003.005","T1003.007","T1003.008","T1552.001","T1555","T1555.001","T1555.003","T1555.004"]},{"id":"S1160","name":"Latrodectus","type":"software","techniques":["T1005","T1016","T1021.005","T1027.001","T1027.002","T1027.007","T1027.013","T1033","T1036.005","T1041","T1047","T1053.005","T1057","T1059.003","T1059.007","T1069.002","T1070.004","T1071.001","T1082","T1083","T1087.002","T1102","T1104","T1105","T1106","T1132.001","T1135","T1140","T1204.001","T1204.002","T1218.007","T1218.011","T1482","T1497.001","T1518.001","T1529","T1547.001","T1559.001","T1564.004","T1566.001","T1566.002","T1573.001","T1622"]},{"id":"S0395","name":"LightNeuron","type":"software","techniques":["T1001.002","T1005","T1016","T1020","T1027.013","T1029","T1036.005","T1041","T1059.003","T1070.004","T1071.003","T1074.001","T1082","T1105","T1106","T1114.002","T1119","T1140","T1505.002","T1560","T1565.002","T1573.001"]},{"id":"S1185","name":"LightSpy","type":"software","techniques":["T1027.001","T1027.013","T1041","T1046","T1057","T1071.001","T1082","T1083","T1105","T1113","T1123","T1129","T1217","T1480","T1518","T1555.001"]},{"id":"S1186","name":"Line Dancer","type":"software","techniques":["T1014","T1040","T1041","T1059.008","T1071.001","T1082","T1140","T1562.003","T1653"]},{"id":"S1188","name":"Line Runner","type":"software","techniques":["T1027.015","T1041","T1059.011","T1070.004","T1071.001","T1505.003","T1557","T1653"]},{"id":"S0211","name":"Linfo","type":"software","techniques":["T1005","T1008","T1029","T1057","T1059.003","T1070.004","T1082","T1083","T1105"]},{"id":"S0362","name":"Linux Rabbit","type":"software","techniques":["T1033","T1078","T1110.003","T1132","T1133","T1546.004"]},{"id":"S0513","name":"LiteDuke","type":"software","techniques":["T1012","T1016","T1027.002","T1027.003","T1033","T1070.004","T1071.001","T1082","T1105","T1140","T1497.003","T1518.001","T1547.001"]},{"id":"S0680","name":"LitePower","type":"software","techniques":["T1012","T1033","T1041","T1053.005","T1059.001","T1071.001","T1082","T1105","T1106","T1113","T1518.001","T1680"]},{"id":"S0681","name":"Lizar","type":"software","techniques":["T1003.001","T1016","T1027","T1033","T1049","T1055","T1055.001","T1055.002","T1057","T1059.001","T1059.003","T1059.006","T1082","T1087.003","T1095","T1105","T1106","T1113","T1132.002","T1140","T1217","T1518.001","T1555.003","T1555.004","T1560","T1573","T1588.002","T1620"]},{"id":"S1101","name":"LoFiSe","type":"software","techniques":["T1005","T1074.001","T1083","T1119","T1560","T1574.001"]},{"id":"S0397","name":"LoJax","type":"software","techniques":["T1014","T1112","T1542.001","T1547.001","T1564.004"]},{"id":"S1199","name":"LockBit 2.0","type":"software","techniques":["T1021.002","T1047","T1053.005","T1057","T1059.001","T1059.003","T1070.001","T1070.004","T1082","T1083","T1112","T1120","T1135","T1136","T1140","T1480","T1484.001","T1486","T1489","T1490","T1547.001","T1548.002","T1562.001","T1564.003","T1614.001","T1680"]},{"id":"S1202","name":"LockBit 3.0","type":"software","techniques":["T1021.002","T1027.002","T1027.013","T1057","T1059.001","T1070.001","T1070.004","T1071.001","T1078.003","T1082","T1083","T1106","T1112","T1120","T1132.001","T1135","T1140","T1218.003","T1480","T1480.002","T1484.001","T1486","T1489","T1490","T1543.003","T1547.004","T1548.002","T1562.001","T1562.009","T1569.002","T1573.001","T1614.001","T1622","T1680"]},{"id":"S0372","name":"LockerGoga","type":"software","techniques":["T1070.004","T1486","T1529","T1531","T1553.002","T1562.001","T1570"]},{"id":"S0447","name":"Lokibot","type":"software","techniques":["T1016","T1027","T1027.002","T1033","T1041","T1053","T1053.005","T1055.012","T1056.001","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1112","T1140","T1204.002","T1497.003","T1548.002","T1555","T1555.003","T1564.001","T1566.001","T1620"]},{"id":"S0582","name":"LookBack","type":"software","techniques":["T1007","T1036.005","T1057","T1059.003","T1059.005","T1070.004","T1071.001","T1083","T1095","T1113","T1140","T1489","T1529","T1547.001","T1573.001","T1574.001"]},{"id":"S0451","name":"LoudMiner","type":"software","techniques":["T1016","T1027.010","T1027.013","T1057","T1059.003","T1059.004","T1070.004","T1082","T1105","T1189","T1218.007","T1496.001","T1543.003","T1543.004","T1564.001","T1564.006","T1569.001","T1569.002"]},{"id":"S0532","name":"Lucifer","type":"software","techniques":["T1012","T1016","T1021.002","T1027.002","T1033","T1046","T1047","T1049","T1053.005","T1057","T1059.003","T1070.001","T1071","T1082","T1105","T1110.001","T1140","T1210","T1496.001","T1497.001","T1498","T1547.001","T1570","T1573.001"]},{"id":"S1213","name":"Lumma Stealer","type":"software","techniques":["T1027","T1027.013","T1036.008","T1041","T1055.012","T1059.001","T1059.006","T1059.010","T1071.001","T1074.001","T1082","T1113","T1119","T1140","T1176.001","T1195","T1204","T1204.002","T1217","T1218.005","T1218.015","T1497.001","T1518.001","T1539","T1547.001","T1553.002","T1555.003","T1562.001","T1564.003","T1566.001","T1566.002","T1573.002","T1574.001","T1620","T1622"]},{"id":"S1143","name":"LunarLoader","type":"software","techniques":["T1016","T1137.006","T1140","T1480","T1620"]},{"id":"S1142","name":"LunarMail","type":"software","techniques":["T1001.002","T1027.013","T1041","T1059.005","T1070.004","T1070.008","T1071.003","T1074.001","T1082","T1083","T1095","T1113","T1114.001","T1137.006","T1140","T1204.002","T1543"]},{"id":"S1141","name":"LunarWeb","type":"software","techniques":["T1001.002","T1016","T1027.013","T1030","T1033","T1047","T1049","T1057","T1059.001","T1059.003","T1069.001","T1070.004","T1071.001","T1082","T1083","T1090","T1104","T1132.001","T1135","T1140","T1497.003","T1518","T1518.001","T1559","T1560.001","T1560.002","T1572","T1573.001","T1573.002","T1615"]},{"id":"S0010","name":"Lurid","type":"software","techniques":["T1560","T1573.001"]},{"id":"S0500","name":"MCMD","type":"software","techniques":["T1005","T1027","T1036.005","T1053.005","T1059.003","T1070.009","T1071.001","T1105","T1547.001","T1564.003"]},{"id":"S1220","name":"MEDUSA","type":"software","techniques":["T1014","T1027.013","T1563.001","T1574.006"]},{"id":"S0443","name":"MESSAGETAP","type":"software","techniques":["T1040","T1049","T1070.004","T1074.001","T1083","T1119","T1140","T1560.003"]},{"id":"S1221","name":"MOPSLED","type":"software","techniques":["T1027.013","T1071.001","T1095","T1102","T1102.001","T1140"]},{"id":"S0233","name":"MURKYTOP","type":"software","techniques":["T1018","T1046","T1053.002","T1059.003","T1069","T1070.004","T1082","T1087.001","T1135"]},{"id":"S1016","name":"MacMa","type":"software","techniques":["T1005","T1016","T1021","T1033","T1041","T1056.001","T1057","T1059.004","T1070.002","T1070.004","T1070.006","T1074.001","T1082","T1083","T1095","T1105","T1106","T1113","T1123","T1140","T1543.001","T1553.001","T1553.002","T1555.001","T1571","T1573","T1680"]},{"id":"S0282","name":"MacSpy","type":"software","techniques":["T1056.001","T1070.004","T1071.001","T1090.003","T1113","T1115","T1123","T1543.001","T1564.001"]},{"id":"S0409","name":"Machete","type":"software","techniques":["T1005","T1008","T1010","T1016","T1016.002","T1020","T1025","T1027.002","T1027.010","T1029","T1036.004","T1036.005","T1041","T1052.001","T1053.005","T1056.001","T1057","T1059.006","T1070.004","T1071.001","T1071.002","T1074.001","T1082","T1083","T1105","T1113","T1115","T1120","T1123","T1125","T1132.001","T1140","T1217","T1547.001","T1552.004","T1555.003","T1560","T1560.003","T1564.001","T1573.001","T1573.002"]},{"id":"S1060","name":"Mafalda","type":"software","techniques":["T1003.001","T1005","T1012","T1016","T1027.013","T1033","T1041","T1049","T1056","T1057","T1059.001","T1059.003","T1070.001","T1071.001","T1074.001","T1082","T1083","T1090.001","T1095","T1105","T1106","T1112","T1113","T1132.001","T1133","T1134","T1134.003","T1140","T1205.001","T1217","T1518.001","T1552.004","T1569.002","T1573.001","T1622","T1680"]},{"id":"S1182","name":"MagicRAT","type":"software","techniques":["T1016","T1027.013","T1036.005","T1036.008","T1041","T1053.005","T1059.003","T1070.004","T1071.001","T1082","T1105","T1140","T1547.001"]},{"id":"S0413","name":"MailSniper","type":"software","techniques":["T1087.003","T1110.003","T1114.002"]},{"id":"S1169","name":"Mango","type":"software","techniques":["T1027.013","T1033","T1041","T1053.005","T1071.001","T1082","T1083","T1106","T1132.001","T1204.002","T1562.001","T1573.001","T1573.002"]},{"id":"S1156","name":"Manjusaka","type":"software","techniques":["T1016","T1041","T1059.003","T1071.001","T1082","T1083","T1113","T1132.001","T1555","T1555.003"]},{"id":"S0652","name":"MarkiRAT","type":"software","techniques":["T1005","T1033","T1036.005","T1041","T1056.001","T1057","T1059.003","T1071.001","T1074.001","T1082","T1083","T1105","T1106","T1113","T1115","T1197","T1518","T1518.001","T1547.001","T1547.009","T1555.005","T1614.001"]},{"id":"S0167","name":"Matryoshka","type":"software","techniques":["T1027","T1053.005","T1055.001","T1056.001","T1059","T1071.004","T1113","T1218.011","T1547.001","T1555"]},{"id":"S0449","name":"Maze","type":"software","techniques":["T1027","T1027.016","T1036.004","T1047","T1049","T1053.005","T1055.001","T1057","T1059.003","T1070","T1071.001","T1082","T1106","T1218.007","T1486","T1489","T1490","T1529","T1547.001","T1562.001","T1564.006","T1568","T1614.001"]},{"id":"S0459","name":"MechaFlounder","type":"software","techniques":["T1033","T1036.005","T1041","T1059.003","T1059.006","T1071.001","T1105","T1132.001"]},{"id":"S1244","name":"Medusa Ransomware","type":"software","techniques":["T1007","T1027.013","T1057","T1059.001","T1059.003","T1070.004","T1082","T1083","T1106","T1124","T1135","T1140","T1486","T1489","T1490","T1518.001","T1543.003","T1559","T1562.001","T1564.003","T1679","T1680"]},{"id":"S0576","name":"MegaCortex","type":"software","techniques":["T1055.001","T1059.003","T1083","T1106","T1112","T1134","T1140","T1218.011","T1486","T1489","T1490","T1497.001","T1531","T1561.001","T1562.001","T1588.003"]},{"id":"S1191","name":"Megazord","type":"software","techniques":["T1057","T1059.003","T1083","T1486","T1489","T1654"]},{"id":"S0530","name":"Melcoz","type":"software","techniques":["T1027.002","T1059.005","T1059.010","T1105","T1115","T1185","T1204.001","T1218.007","T1555.003","T1565.002","T1566.002","T1574.001"]},{"id":"S0455","name":"Metamorfo","type":"software","techniques":["T1010","T1027.002","T1027.013","T1033","T1036.005","T1041","T1055.001","T1056.001","T1056.002","T1057","T1059.003","T1059.005","T1059.007","T1070","T1070.004","T1071.001","T1082","T1083","T1095","T1102.001","T1102.003","T1105","T1106","T1112","T1113","T1115","T1119","T1124","T1129","T1140","T1204.002","T1218.005","T1218.007","T1497","T1518","T1518.001","T1547.001","T1553.002","T1562.001","T1564.003","T1565.002","T1566.001","T1571","T1573.001","T1573.002","T1574.001"]},{"id":"S0688","name":"Meteor","type":"software","techniques":["T1036.004","T1047","T1053.005","T1057","T1059.001","T1059.003","T1070.001","T1070.004","T1082","T1105","T1106","T1484.001","T1485","T1489","T1490","T1491.001","T1518.001","T1531","T1562.001","T1564.003"]},{"id":"S1146","name":"MgBot","type":"software","techniques":["T1003","T1005","T1018","T1025","T1033","T1046","T1056.001","T1057","T1087.001","T1087.002","T1115","T1123","T1213.006","T1482","T1539","T1555","T1555.003"]},{"id":"S0339","name":"Micropsia","type":"software","techniques":["T1027.013","T1033","T1047","T1056.001","T1059.003","T1071.001","T1082","T1083","T1105","T1113","T1119","T1123","T1518.001","T1547.009","T1560.001","T1564.001"]},{"id":"S1015","name":"Milan","type":"software","techniques":["T1005","T1012","T1016","T1027.013","T1033","T1036","T1036.007","T1053.005","T1059.003","T1070.004","T1071.001","T1071.004","T1074.001","T1082","T1087.001","T1105","T1106","T1559.001","T1568.002","T1572"]},{"id":"S0002","name":"Mimikatz","type":"software","techniques":["T1003.001","T1003.002","T1003.004","T1003.006","T1098","T1134.005","T1207","T1547.005","T1550.002","T1550.003","T1552.004","T1555","T1555.003","T1555.004","T1558.001","T1558.002","T1649"]},{"id":"S0051","name":"MiniDuke","type":"software","techniques":["T1008","T1027","T1071.001","T1082","T1083","T1090.001","T1102.001","T1105","T1568.002"]},{"id":"S0280","name":"MirageFox","type":"software","techniques":["T1033","T1059.003","T1082","T1140","T1574.001"]},{"id":"S0084","name":"Mis-Type","type":"software","techniques":["T1005","T1008","T1016","T1033","T1036.005","T1041","T1055","T1059.003","T1071.001","T1074.001","T1082","T1087.001","T1095","T1105","T1106","T1132.001","T1136.001","T1547"]},{"id":"S0083","name":"Misdat","type":"software","techniques":["T1005","T1027.002","T1036.005","T1041","T1059.003","T1070.004","T1070.006","T1070.009","T1082","T1083","T1095","T1105","T1106","T1132.001","T1547","T1614.001"]},{"id":"S1122","name":"Mispadu","type":"software","techniques":["T1027.013","T1041","T1055","T1056.001","T1056.002","T1057","T1059.005","T1082","T1083","T1106","T1113","T1115","T1140","T1176.001","T1204.002","T1217","T1218.007","T1218.011","T1497.001","T1518.001","T1547.001","T1555","T1555.003","T1566.002","T1573.002","T1614.001"]},{"id":"S0080","name":"Mivast","type":"software","techniques":["T1003.002","T1059.003","T1105","T1547.001"]},{"id":"S0079","name":"MobileOrder","type":"software","techniques":["T1005","T1041","T1057","T1082","T1083","T1105","T1217"]},{"id":"S0553","name":"MoleNet","type":"software","techniques":["T1047","T1059.001","T1059.003","T1082","T1105","T1518.001","T1547.001"]},{"id":"S1137","name":"Moneybird","type":"software","techniques":["T1027.009","T1486"]},{"id":"S1026","name":"Mongall","type":"software","techniques":["T1005","T1027.002","T1041","T1055.001","T1071.001","T1082","T1105","T1120","T1132.001","T1140","T1204.002","T1218.011","T1547.001","T1573.001","T1680"]},{"id":"S0149","name":"MoonWind","type":"software","techniques":["T1016","T1033","T1056.001","T1057","T1059.003","T1070.004","T1074.001","T1082","T1083","T1095","T1120","T1124","T1543.003","T1571","T1573.001"]},{"id":"S0284","name":"More_eggs","type":"software","techniques":["T1016","T1016.001","T1027.013","T1033","T1059.003","T1070.004","T1071.001","T1082","T1105","T1132.001","T1140","T1218.010","T1518.001","T1553.002","T1573.001"]},{"id":"S1047","name":"Mori","type":"software","techniques":["T1001.001","T1012","T1070.004","T1071.001","T1071.004","T1112","T1132.001","T1140","T1218.010"]},{"id":"S0256","name":"Mosquito","type":"software","techniques":["T1016","T1027.011","T1027.013","T1033","T1047","T1057","T1059.001","T1059.003","T1070.004","T1105","T1106","T1112","T1218.011","T1518.001","T1546.015","T1547.001","T1573.001"]},{"id":"S1135","name":"MultiLayer Wiper","type":"software","techniques":["T1027.009","T1053.005","T1059.003","T1070","T1070.001","T1070.004","T1070.006","T1083","T1485","T1490","T1529","T1561.002","T1562.001","T1565.001"]},{"id":"S0699","name":"Mythic","type":"software","techniques":["T1008","T1030","T1071.001","T1071.002","T1071.004","T1090.001","T1090.002","T1090.004","T1095","T1119","T1132","T1572","T1573.002"]},{"id":"S0590","name":"NBTscan","type":"software","techniques":["T1016","T1018","T1033","T1040","T1046"]},{"id":"S0272","name":"NDiskMonitor","type":"software","techniques":["T1033","T1082","T1083","T1105","T1573.001"]},{"id":"S0034","name":"NETEAGLE","type":"software","techniques":["T1008","T1041","T1057","T1059.003","T1071","T1071.001","T1083","T1095","T1547.001","T1568","T1573.001"]},{"id":"S0198","name":"NETWIRE","type":"software","techniques":["T1010","T1016","T1027","T1027.002","T1027.011","T1036.001","T1036.005","T1049","T1053.003","T1053.005","T1055","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1059.004","T1059.005","T1071.001","T1074.001","T1082","T1083","T1090","T1095","T1102","T1105","T1106","T1112","T1113","T1119","T1204.001","T1204.002","T1543.001","T1547.001","T1547.013","T1547.015","T1555","T1555.003","T1560","T1560.003","T1564.001","T1566.001","T1566.002","T1573","T1573.001"]},{"id":"S1106","name":"NGLite","type":"software","techniques":["T1016","T1033","T1071.001","T1090.003","T1573.001"]},{"id":"S1192","name":"NICECURL","type":"software","techniques":["T1059","T1070.004","T1071.001","T1105","T1573.002"]},{"id":"S1107","name":"NKAbuse","type":"software","techniques":["T1016.001","T1053.003","T1057","T1059.004","T1082","T1090.003","T1113","T1498"]},{"id":"S0353","name":"NOKKI","type":"software","techniques":["T1016","T1027","T1033","T1036.005","T1056.004","T1070.004","T1071.001","T1071.002","T1074.001","T1082","T1105","T1124","T1140","T1218.011","T1547.001","T1680"]},{"id":"S1131","name":"NPPSPY","type":"software","techniques":["T1005","T1056","T1112","T1119","T1552","T1557","T1656"]},{"id":"S0205","name":"Naid","type":"software","techniques":["T1016","T1082","T1112","T1543.003"]},{"id":"S0228","name":"NanHaiShu","type":"software","techniques":["T1016","T1027.013","T1033","T1059.005","T1059.007","T1070.004","T1071.004","T1082","T1105","T1218.005","T1547.001","T1562.001"]},{"id":"S0336","name":"NanoCore","type":"software","techniques":["T1016","T1027","T1056.001","T1059.003","T1059.005","T1105","T1112","T1123","T1125","T1547.001","T1562.001","T1562.004","T1573.001"]},{"id":"S0637","name":"NativeZone","type":"software","techniques":["T1036","T1140","T1204.002","T1218.011","T1480","T1497.001"]},{"id":"S0247","name":"NavRAT","type":"software","techniques":["T1055","T1056.001","T1057","T1059.003","T1071.003","T1074.001","T1082","T1105","T1547.001"]},{"id":"S0630","name":"Nebulae","type":"software","techniques":["T1005","T1036.004","T1036.005","T1057","T1059.003","T1070.004","T1083","T1095","T1105","T1106","T1543.003","T1547.001","T1573.001","T1574.001","T1680"]},{"id":"S1189","name":"Neo-reGeorg","type":"software","techniques":["T1059.006","T1071.001","T1090","T1095","T1105","T1132.002","T1505.003","T1572"]},{"id":"S0691","name":"Neoichor","type":"software","techniques":["T1005","T1016","T1016.001","T1033","T1070","T1071.001","T1082","T1105","T1112","T1559.001","T1614.001"]},{"id":"S0210","name":"Nerex","type":"software","techniques":["T1105","T1112","T1543.003","T1553.002"]},{"id":"S0039","name":"Net","type":"software","techniques":["T1007","T1018","T1021.002","T1049","T1069.001","T1069.002","T1070.005","T1087.001","T1087.002","T1098.007","T1124","T1135","T1136.001","T1136.002","T1201","T1569.002"]},{"id":"S0056","name":"Net Crawler","type":"software","techniques":["T1003.001","T1021.002","T1110.002","T1569.002"]},{"id":"S0033","name":"NetTraveler","type":"software","techniques":["T1010","T1056.001"]},{"id":"S0457","name":"Netwalker","type":"software","techniques":["T1027.009","T1027.010","T1047","T1055.001","T1059.001","T1059.003","T1082","T1105","T1106","T1112","T1140","T1486","T1489","T1490","T1518.001","T1562.001","T1569.002","T1570"]},{"id":"S0118","name":"Nidiran","type":"software","techniques":["T1036.004","T1105","T1543.003"]},{"id":"S1090","name":"NightClub","type":"software","techniques":["T1005","T1010","T1027","T1036.004","T1036.005","T1041","T1056.001","T1057","T1070.006","T1071.003","T1071.004","T1074.001","T1083","T1105","T1106","T1112","T1113","T1120","T1123","T1132.002","T1543.003"]},{"id":"S1147","name":"Nightdoor","type":"software","techniques":["T1016","T1033","T1053.005","T1057","T1059.003","T1070.004","T1071","T1082","T1102","T1124","T1140","T1497.001","T1574","T1680"]},{"id":"S1100","name":"Ninja","type":"software","techniques":["T1001","T1001.003","T1016","T1027.013","T1027.015","T1029","T1036.005","T1055","T1057","T1070.006","T1071.001","T1082","T1083","T1090.001","T1090.003","T1095","T1106","T1132.002","T1140","T1204.002","T1218.011","T1480.001","T1543.003","T1559","T1566.003","T1573.001","T1574.001","T1680"]},{"id":"S0359","name":"Nltest","type":"software","techniques":["T1016","T1018","T1482"]},{"id":"S0368","name":"NotPetya","type":"software","techniques":["T1003.001","T1021.002","T1036","T1047","T1053.005","T1070.001","T1078.003","T1083","T1210","T1218.011","T1486","T1518.001","T1529","T1569.002"]},{"id":"S1170","name":"ODAgent","type":"software","techniques":["T1041","T1059.003","T1070.004","T1083","T1102.002","T1105","T1106","T1140","T1567.002"]},{"id":"S0138","name":"OLDBAIT","type":"software","techniques":["T1027","T1036.005","T1071.001","T1071.003","T1555","T1555.003"]},{"id":"S0165","name":"OSInfo","type":"software","techniques":["T1012","T1016","T1018","T1049","T1069.001","T1069.002","T1082","T1087.001","T1087.002","T1135"]},{"id":"S0402","name":"OSX/Shlayer","type":"software","techniques":["T1036.005","T1059.004","T1082","T1083","T1105","T1140","T1176.001","T1204.002","T1222.002","T1548.004","T1553.001","T1564","T1564.001","T1564.009","T1564.011"]},{"id":"S0352","name":"OSX_OCEANLOTUS.D","type":"software","techniques":["T1005","T1016","T1027.002","T1027.013","T1036.004","T1036.008","T1059.001","T1059.004","T1059.005","T1070.004","T1070.006","T1071.001","T1082","T1095","T1105","T1129","T1132.001","T1140","T1222.002","T1497.001","T1543.001","T1543.004","T1553.001","T1560.002","T1560.003","T1564.001","T1571","T1573.001"]},{"id":"S0644","name":"ObliqueRAT","type":"software","techniques":["T1025","T1027.003","T1030","T1033","T1057","T1074.001","T1082","T1083","T1113","T1120","T1125","T1204.001","T1497.001","T1547.001"]},{"id":"S0346","name":"OceanSalt","type":"software","techniques":["T1016","T1057","T1059.003","T1070.004","T1082","T1083","T1132.002","T1566.001"]},{"id":"S0340","name":"Octopus","type":"software","techniques":["T1005","T1016","T1033","T1036.005","T1041","T1047","T1071.001","T1074.001","T1082","T1083","T1105","T1113","T1132.001","T1204.002","T1547.001","T1560.001","T1566.001","T1567.002","T1680"]},{"id":"S1172","name":"OilBooster","type":"software","techniques":["T1008","T1033","T1041","T1059.003","T1071.001","T1074.001","T1082","T1102.002","T1105","T1106","T1140","T1559","T1564.003","T1567.002","T1573.002"]},{"id":"S1171","name":"OilCheck","type":"software","techniques":["T1102.002","T1105","T1567"]},{"id":"S0439","name":"Okrum","type":"software","techniques":["T1001","T1001.003","T1003.001","T1003.005","T1016","T1027.003","T1033","T1036.004","T1041","T1049","T1053.005","T1056.001","T1059.003","T1070.004","T1071.001","T1082","T1083","T1090.002","T1105","T1124","T1132.001","T1134.001","T1140","T1497.001","T1497.002","T1497.003","T1543.003","T1547.001","T1547.009","T1560.001","T1560.003","T1564.001","T1569.002","T1573.001"]},{"id":"S0365","name":"Olympic Destroyer","type":"software","techniques":["T1003.001","T1016","T1018","T1021.002","T1047","T1070.001","T1135","T1485","T1489","T1490","T1529","T1555.003","T1569.002","T1570"]},{"id":"S0052","name":"OnionDuke","type":"software","techniques":["T1003","T1071.001","T1102.003","T1140","T1499"]},{"id":"S0264","name":"OopsIE","type":"software","techniques":["T1027","T1027.002","T1030","T1041","T1047","T1053.005","T1059.003","T1059.005","T1070.004","T1071.001","T1074.001","T1082","T1105","T1124","T1132.001","T1140","T1497.001","T1560.001","T1560.003"]},{"id":"S0229","name":"Orz","type":"software","techniques":["T1016","T1027","T1055.012","T1057","T1059.003","T1070","T1082","T1083","T1102.002","T1105","T1112","T1218.010","T1518"]},{"id":"S0594","name":"Out1","type":"software","techniques":["T1005","T1027","T1059.003","T1071.001","T1114.001"]},{"id":"S1017","name":"OutSteel","type":"software","techniques":["T1005","T1020","T1036.005","T1041","T1057","T1059.003","T1059.010","T1070.004","T1071.001","T1083","T1105","T1119","T1204.001","T1204.002","T1566.001","T1566.002","T1570"]},{"id":"S0072","name":"OwaAuth","type":"software","techniques":["T1036.005","T1056.001","T1070.006","T1071.001","T1083","T1505.003","T1505.004","T1560.003"]},{"id":"S0598","name":"P.A.S. Webshell","type":"software","techniques":["T1005","T1027","T1046","T1059","T1070.004","T1071.001","T1083","T1087.001","T1105","T1110.001","T1140","T1213.006","T1222.002","T1505.003","T1518"]},{"id":"S0626","name":"P8RAT","type":"software","techniques":["T1001.001","T1057","T1105","T1497.001","T1497.003"]},{"id":"S1109","name":"PACEMAKER","type":"software","techniques":["T1003.007","T1055.008","T1059.004","T1074.001","T1083","T1119"]},{"id":"S1233","name":"PAKLOG","type":"software","techniques":["T1010","T1027.013","T1056.001","T1057","T1074.001","T1106","T1115","T1124","T1553.002","T1574.001"]},{"id":"S0158","name":"PHOREAL","type":"software","techniques":["T1059.003","T1095","T1112"]},{"id":"S1123","name":"PITSTOP","type":"software","techniques":["T1059.004","T1140","T1205.002","T1559","T1573.002"]},{"id":"S0254","name":"PLAINTEE","type":"software","techniques":["T1016","T1057","T1059.003","T1082","T1105","T1112","T1547.001","T1548.002","T1573.001"]},{"id":"S0435","name":"PLEAD","type":"software","techniques":["T1001.001","T1010","T1057","T1059.003","T1070.004","T1071.001","T1083","T1090","T1105","T1106","T1204.001","T1204.002","T1555","T1555.003","T1573.001"]},{"id":"S0216","name":"POORAIM","type":"software","techniques":["T1057","T1082","T1083","T1102.002","T1113","T1189"]},{"id":"S0150","name":"POSHSPY","type":"software","techniques":["T1027","T1030","T1059.001","T1070.006","T1105","T1546.003","T1568.002","T1573.002"]},{"id":"S0145","name":"POWERSOURCE","type":"software","techniques":["T1012","T1059.001","T1071.004","T1105","T1547.001","T1564.004"]},{"id":"S0223","name":"POWERSTATS","type":"software","techniques":["T1005","T1016","T1027.010","T1027.016","T1029","T1033","T1036.004","T1047","T1053.005","T1057","T1059.001","T1059.005","T1059.007","T1070.004","T1082","T1087.001","T1090.002","T1105","T1113","T1132.001","T1140","T1218.005","T1518.001","T1559.001","T1559.002","T1562.001","T1573.002"]},{"id":"S0371","name":"POWERTON","type":"software","techniques":["T1003.002","T1059.001","T1071.001","T1546.003","T1547.001","T1573.001"]},{"id":"S0184","name":"POWRUNER","type":"software","techniques":["T1012","T1016","T1033","T1047","T1049","T1053.005","T1057","T1059.001","T1059.003","T1069.001","T1069.002","T1071.001","T1071.004","T1082","T1083","T1087.002","T1105","T1113","T1132.001","T1518.001"]},{"id":"S0613","name":"PS1","type":"software","techniques":["T1027.013","T1055.001","T1059.001","T1105","T1140"]},{"id":"S1228","name":"PUBLOAD","type":"software","techniques":["T1001.003","T1007","T1012","T1016","T1016.001","T1016.002","T1027","T1027.015","T1033","T1036.005","T1047","T1048.003","T1049","T1053.005","T1057","T1059.003","T1071.001","T1071.002","T1082","T1105","T1106","T1124","T1140","T1205","T1480.001","T1518","T1518.001","T1547.001","T1553.002","T1560.001","T1573.001","T1574.001","T1614.001","T1622","T1680"]},{"id":"S1108","name":"PULSECHECK","type":"software","techniques":["T1059.004","T1071.001","T1132.001","T1505.003"]},{"id":"S0196","name":"PUNCHBUGGY","type":"software","techniques":["T1027","T1036.005","T1059.001","T1059.006","T1070.004","T1071.001","T1074.001","T1082","T1087.001","T1105","T1129","T1140","T1218.011","T1518.001","T1546.009","T1547.001","T1560.001"]},{"id":"S0197","name":"PUNCHTRACK","type":"software","techniques":["T1005","T1027","T1074.001"]},{"id":"S1091","name":"Pacu","type":"software","techniques":["T1049","T1059.009","T1069.003","T1078.004","T1087.004","T1098.001","T1119","T1518.001","T1526","T1530","T1546","T1552","T1555.006","T1562.007","T1562.008","T1578.001","T1580","T1619","T1648","T1651","T1654"]},{"id":"S0664","name":"Pandora","type":"software","techniques":["T1027.015","T1055","T1057","T1068","T1071.001","T1105","T1112","T1205","T1543.003","T1553.006","T1569.002","T1573.001","T1574.001"]},{"id":"S0208","name":"Pasam","type":"software","techniques":["T1005","T1057","T1070.004","T1082","T1083","T1105","T1547.008","T1680"]},{"id":"S0556","name":"Pay2Key","type":"software","techniques":["T1016","T1070.004","T1082","T1090.001","T1095","T1486","T1489","T1573.002"]},{"id":"S1050","name":"PcShare","type":"software","techniques":["T1005","T1012","T1016","T1027.013","T1027.015","T1036.001","T1036.005","T1041","T1055","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1106","T1112","T1113","T1125","T1140","T1218.011","T1546.015"]},{"id":"S1102","name":"Pcexter","type":"software","techniques":["T1005","T1083","T1567.002","T1574.001"]},{"id":"S0683","name":"Peirates","type":"software","techniques":["T1046","T1078.004","T1528","T1530","T1550.001","T1552.005","T1552.007","T1609","T1610","T1611","T1613","T1619"]},{"id":"S0587","name":"Penquin","type":"software","techniques":["T1016","T1027.005","T1027.013","T1036.005","T1040","T1041","T1053.003","T1059.004","T1070.004","T1082","T1083","T1095","T1105","T1205","T1205.002","T1222.002","T1573.002","T1680"]},{"id":"S0643","name":"Peppy","type":"software","techniques":["T1020","T1056.001","T1059.003","T1071.001","T1083","T1105","T1113"]},{"id":"S1145","name":"Pikabot","type":"software","techniques":["T1016","T1027.003","T1027.009","T1027.011","T1041","T1055.002","T1055.003","T1059.003","T1082","T1087.001","T1106","T1132.001","T1140","T1480.001","T1482","T1497.001","T1547.001","T1571","T1573.001","T1620","T1622"]},{"id":"S0517","name":"Pillowmint","type":"software","techniques":["T1005","T1012","T1027","T1027.011","T1027.015","T1055.004","T1057","T1059.001","T1070.004","T1070.009","T1106","T1112","T1140","T1546.011","T1560"]},{"id":"S0048","name":"PinchDuke","type":"software","techniques":["T1003","T1005","T1071.001","T1082","T1083","T1555","T1555.003"]},{"id":"S1031","name":"PingPull","type":"software","techniques":["T1005","T1016","T1036.004","T1041","T1059.003","T1070.006","T1071.001","T1082","T1083","T1095","T1132.001","T1140","T1543.003","T1571","T1573.001"]},{"id":"S0501","name":"PipeMon","type":"software","techniques":["T1008","T1016","T1027.011","T1027.013","T1036.005","T1055.001","T1057","T1082","T1095","T1105","T1106","T1112","T1124","T1129","T1134.002","T1134.004","T1140","T1518.001","T1543.003","T1547.012","T1548.002","T1553.002","T1573.001"]},{"id":"S0124","name":"Pisloader","type":"software","techniques":["T1016","T1027","T1059.003","T1071.004","T1082","T1083","T1105","T1132.001","T1547.001"]},{"id":"S1162","name":"Playcrypt","type":"software","techniques":["T1083","T1486","T1490"]},{"id":"S0013","name":"PlugX","type":"software","techniques":["T1012","T1016","T1027","T1027.001","T1027.007","T1027.013","T1033","T1036.004","T1036.005","T1041","T1049","T1053.005","T1056.001","T1057","T1059.003","T1070.004","T1070.009","T1071.001","T1071.004","T1074.001","T1082","T1083","T1091","T1095","T1102.001","T1105","T1106","T1112","T1113","T1120","T1124","T1127.001","T1135","T1140","T1204.002","T1480.002","T1497.001","T1543.003","T1547.001","T1562.004","T1564.001","T1564.003","T1571","T1573.001","T1574.001","T1614","T1620","T1622","T1680"]},{"id":"S0428","name":"PoetRAT","type":"software","techniques":["T1003.001","T1018","T1027","T1027.010","T1033","T1041","T1048","T1048.003","T1056.001","T1057","T1059.003","T1059.005","T1059.006","T1059.011","T1070.004","T1071.001","T1071.002","T1082","T1083","T1105","T1112","T1113","T1119","T1125","T1140","T1204.002","T1497.001","T1547.001","T1555.003","T1559.002","T1560.001","T1564.001","T1566.001","T1571","T1573.002"]},{"id":"S0012","name":"PoisonIvy","type":"software","techniques":["T1005","T1010","T1014","T1027","T1055.001","T1056.001","T1059.003","T1074.001","T1105","T1112","T1480.002","T1543.003","T1547.001","T1547.014","T1573.001"]},{"id":"S0518","name":"PolyglotDuke","type":"software","techniques":["T1027","T1027.003","T1027.011","T1071.001","T1102.001","T1105","T1106","T1112","T1140","T1218.011"]},{"id":"S0453","name":"Pony","type":"software","techniques":["T1027.015","T1027.016","T1036","T1059.003","T1070.004","T1071.001","T1082","T1087.001","T1105","T1106","T1110.001","T1204.001","T1204.002","T1497.003","T1566.001","T1566.002"]},{"id":"S0378","name":"PoshC2","type":"software","techniques":["T1003.001","T1007","T1016","T1040","T1046","T1047","T1049","T1055","T1056.001","T1068","T1069.001","T1071.001","T1082","T1083","T1087.001","T1087.002","T1090","T1110","T1119","T1134","T1134.002","T1201","T1210","T1482","T1546.003","T1548.002","T1550.002","T1552.001","T1555","T1557.001","T1560.001","T1569.002"]},{"id":"S1046","name":"PowGoop","type":"software","techniques":["T1036","T1036.005","T1059.001","T1071.001","T1132.002","T1140","T1573","T1574.001"]},{"id":"S0139","name":"PowerDuke","type":"software","techniques":["T1010","T1016","T1027.003","T1033","T1057","T1059.003","T1070.004","T1082","T1083","T1105","T1124","T1218.011","T1485","T1547.001","T1564.004"]},{"id":"S1173","name":"PowerExchange","type":"software","techniques":["T1041","T1059.001","T1071.003","T1105","T1140"]},{"id":"S1012","name":"PowerLess","type":"software","techniques":["T1005","T1056.001","T1059.001","T1074.001","T1105","T1140","T1217","T1560","T1573"]},{"id":"S0685","name":"PowerPunch","type":"software","techniques":["T1027.010","T1059.001","T1105","T1480.001"]},{"id":"S0441","name":"PowerShower","type":"software","techniques":["T1016","T1033","T1041","T1057","T1059.001","T1059.005","T1070.004","T1071.001","T1082","T1112","T1132.001","T1547.001","T1560.001","T1564.003"]},{"id":"S0194","name":"PowerSploit","type":"software","techniques":["T1003.001","T1005","T1012","T1027.005","T1027.010","T1047","T1053.005","T1055.001","T1056.001","T1057","T1059.001","T1087.001","T1113","T1123","T1134","T1482","T1543.003","T1547.001","T1547.005","T1552.002","T1552.006","T1555.004","T1558.003","T1574.001","T1574.007","T1574.008","T1574.009","T1620"]},{"id":"S0393","name":"PowerStallion","type":"software","techniques":["T1027","T1057","T1059.001","T1070.006","T1102.002"]},{"id":"S1058","name":"Prestige","type":"software","techniques":["T1053.005","T1059.001","T1083","T1106","T1112","T1484.001","T1486","T1489","T1490"]},{"id":"S0113","name":"Prikormka","type":"software","techniques":["T1016","T1025","T1027.013","T1033","T1056.001","T1070.004","T1074.001","T1082","T1083","T1113","T1120","T1132.001","T1218.011","T1518.001","T1547.001","T1555","T1555.003","T1560","T1573.001","T1574.001"]},{"id":"S0654","name":"ProLock","type":"software","techniques":["T1027.003","T1047","T1068","T1070.004","T1197","T1486","T1490"]},{"id":"S0279","name":"Proton","type":"software","techniques":["T1021.005","T1056.001","T1056.002","T1059.004","T1070.002","T1070.004","T1113","T1140","T1543.001","T1548.003","T1555.001","T1555.003","T1555.005","T1560","T1562.001"]},{"id":"S0238","name":"Proxysvc","type":"software","techniques":["T1005","T1012","T1016","T1041","T1057","T1059.003","T1070.004","T1071.001","T1082","T1083","T1119","T1124","T1485","T1569.002","T1680"]},{"id":"S0029","name":"PsExec","type":"software","techniques":["T1021.002","T1136.002","T1543.003","T1569.002","T1570"]},{"id":"S0078","name":"Psylo","type":"software","techniques":["T1041","T1070.006","T1071.001","T1083","T1105"]},{"id":"S0147","name":"Pteranodon","type":"software","techniques":["T1027.007","T1041","T1053.005","T1059.003","T1059.005","T1070.004","T1071.001","T1074.001","T1083","T1105","T1106","T1113","T1140","T1218.005","T1218.011","T1497","T1547.001"]},{"id":"S0192","name":"Pupy","type":"software","techniques":["T1003.001","T1003.004","T1003.005","T1016","T1021.001","T1033","T1041","T1046","T1049","T1055.001","T1056.001","T1057","T1059.001","T1059.006","T1070.001","T1071.001","T1082","T1083","T1087.001","T1105","T1113","T1114.001","T1123","T1125","T1134.001","T1135","T1136.001","T1136.002","T1497.001","T1543.002","T1547.001","T1547.013","T1548.002","T1550.003","T1552.001","T1555","T1555.003","T1557.001","T1560.001","T1569.002","T1573.002"]},{"id":"S1032","name":"PyDCrypt","type":"software","techniques":["T1027.013","T1033","T1036.005","T1047","T1049","T1059.001","T1059.003","T1059.006","T1070.004","T1140","T1562.004"]},{"id":"S0583","name":"Pysa","type":"software","techniques":["T1003.001","T1016","T1021.001","T1036.005","T1046","T1059.001","T1059.006","T1070.004","T1110","T1112","T1486","T1489","T1490","T1552.001","T1562.001","T1569.002"]},{"id":"S0269","name":"QUADAGENT","type":"software","techniques":["T1008","T1012","T1016","T1027.010","T1027.011","T1033","T1036.005","T1053.005","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1071.004","T1112","T1132.001","T1140"]},{"id":"S1076","name":"QUIETCANARY","type":"software","techniques":["T1012","T1016","T1071.001","T1074","T1106","T1132.001","T1140","T1564.003","T1573.001"]},{"id":"S1084","name":"QUIETEXIT","type":"software","techniques":["T1008","T1036.005","T1071","T1090.002","T1095"]},{"id":"S0650","name":"QakBot","type":"software","techniques":["T1005","T1010","T1016","T1016.001","T1018","T1027","T1027.001","T1027.002","T1027.005","T1027.006","T1027.010","T1027.011","T1033","T1036.008","T1041","T1047","T1049","T1053.005","T1055","T1055.012","T1056.001","T1057","T1059.001","T1059.003","T1059.005","T1059.007","T1069.001","T1070.004","T1071.001","T1074.001","T1082","T1083","T1090.002","T1091","T1095","T1105","T1106","T1110","T1112","T1114.001","T1120","T1124","T1132.001","T1135","T1140","T1185","T1204.001","T1204.002","T1210","T1218.007","T1218.010","T1218.011","T1482","T1497.001","T1497.003","T1518","T1518.001","T1539","T1543.003","T1547.001","T1553.002","T1553.005","T1555.003","T1562.001","T1564.001","T1566.001","T1566.002","T1568.002","T1572","T1573.001","T1574.001"]},{"id":"S1242","name":"Qilin","type":"software","techniques":["T1003.001","T1007","T1012","T1016","T1018","T1021.002","T1027.013","T1053.005","T1055.001","T1057","T1059.001","T1070.001","T1070.004","T1083","T1087.001","T1106","T1112","T1134","T1135","T1190","T1204.001","T1204.002","T1222","T1480","T1480.002","T1484.001","T1486","T1489","T1490","T1491.001","T1529","T1547.001","T1547.004","T1548.002","T1562.001","T1562.009","T1566.001","T1566.002","T1673","T1680"]},{"id":"S0262","name":"QuasarRAT","type":"software","techniques":["T1005","T1016","T1021.001","T1033","T1053.005","T1056.001","T1059.003","T1082","T1090","T1095","T1105","T1112","T1125","T1547.001","T1548.002","T1552.001","T1553.002","T1555","T1555.003","T1564.001","T1564.003","T1571","T1573.001","T1614"]},{"id":"S1209","name":"Quick Assist","type":"software","techniques":["T1071.001","T1113","T1125"]},{"id":"S0686","name":"QuietSieve","type":"software","techniques":["T1005","T1016.001","T1071.001","T1083","T1105","T1113","T1120","T1135","T1564.003"]},{"id":"S1113","name":"RAPIDPULSE","type":"software","techniques":["T1005","T1027.013","T1140","T1505.003"]},{"id":"S0055","name":"RARSTONE","type":"software","techniques":["T1055.001","T1083","T1095","T1105"]},{"id":"S0241","name":"RATANKBA","type":"software","techniques":["T1007","T1012","T1016","T1018","T1033","T1047","T1049","T1055.001","T1057","T1059.001","T1059.003","T1071.001","T1082","T1087.001","T1105"]},{"id":"S0662","name":"RCSession","type":"software","techniques":["T1005","T1027.011","T1027.015","T1033","T1036","T1055.012","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1082","T1095","T1105","T1106","T1112","T1113","T1218.007","T1547.001","T1548.002","T1573","T1574.001"]},{"id":"S0495","name":"RDAT","type":"software","techniques":["T1001","T1001.002","T1008","T1027.003","T1030","T1036.004","T1036.005","T1041","T1059.003","T1070.004","T1071.001","T1071.003","T1071.004","T1105","T1113","T1132.001","T1132.002","T1140","T1543.003","T1573.001"]},{"id":"S0416","name":"RDFSNIFFER","type":"software","techniques":["T1056.004","T1070.004","T1106"]},{"id":"S1219","name":"REPTILE","type":"software","techniques":["T1014","T1059.004","T1095","T1140","T1205","T1205.001","T1543.004","T1546.017","T1547.006","T1564.001","T1573.002"]},{"id":"S0496","name":"REvil","type":"software","techniques":["T1007","T1012","T1027.011","T1027.013","T1036.005","T1041","T1047","T1055","T1059.001","T1059.003","T1059.005","T1069.002","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1112","T1134.001","T1134.002","T1140","T1189","T1204.002","T1480.002","T1485","T1486","T1489","T1490","T1562.001","T1562.009","T1566.001","T1573.002","T1614.001","T1680"]},{"id":"S0258","name":"RGDoor","type":"software","techniques":["T1033","T1059.003","T1071.001","T1105","T1140","T1505.004","T1560.003"]},{"id":"S1222","name":"RIFLESPINE","type":"software","techniques":["T1059.004","T1071.001","T1074.001","T1082","T1102.002","T1105","T1140","T1543.002","T1567.002","T1573.001"]},{"id":"S0003","name":"RIPTIDE","type":"software","techniques":["T1071.001","T1573.001"]},{"id":"S1150","name":"ROADSWEEP","type":"software","techniques":["T1027.013","T1059.003","T1070.004","T1083","T1120","T1140","T1480","T1486","T1489","T1490","T1491.001","T1547.001","T1553.002","T1559","T1680"]},{"id":"S0684","name":"ROADTools","type":"software","techniques":["T1018","T1069.003","T1078.004","T1087.004","T1119","T1526"]},{"id":"S0240","name":"ROKRAT","type":"software","techniques":["T1005","T1010","T1012","T1027","T1033","T1041","T1055","T1056.001","T1057","T1059.005","T1070.004","T1071.001","T1082","T1083","T1102.002","T1105","T1106","T1112","T1113","T1115","T1123","T1140","T1204.002","T1480.001","T1497.001","T1555.003","T1555.004","T1566.001","T1567.002","T1622"]},{"id":"S0148","name":"RTM","type":"software","techniques":["T1027","T1027.015","T1033","T1036","T1036.004","T1053.005","T1056.001","T1057","T1059.003","T1070.004","T1070.009","T1071.001","T1082","T1083","T1102.001","T1105","T1106","T1112","T1113","T1115","T1119","T1120","T1124","T1204.002","T1218.011","T1219","T1497","T1518","T1518.001","T1547.001","T1548.002","T1553.002","T1553.004","T1559.002","T1566.001","T1568","T1571","T1573.001"]},{"id":"S1148","name":"Raccoon Stealer","type":"software","techniques":["T1005","T1012","T1020","T1027.007","T1027.013","T1033","T1041","T1070.004","T1071.001","T1082","T1083","T1087.001","T1105","T1113","T1119","T1124","T1140","T1195","T1213","T1518","T1539","T1555.003","T1560","T1614"]},{"id":"S0481","name":"Ragnar Locker","type":"software","techniques":["T1059.003","T1120","T1218.007","T1218.010","T1218.011","T1486","T1489","T1490","T1543.003","T1562.001","T1564.006","T1569.002","T1614"]},{"id":"S0565","name":"Raindrop","type":"software","techniques":["T1027.002","T1027.003","T1027.013","T1036","T1036.005","T1140","T1497.003"]},{"id":"S0629","name":"RainyDay","type":"software","techniques":["T1005","T1007","T1008","T1027.013","T1036.004","T1036.005","T1053.005","T1057","T1059.003","T1070.004","T1071.001","T1074.001","T1083","T1090","T1095","T1105","T1106","T1113","T1140","T1543.003","T1555.003","T1555.004","T1567.002","T1573.001","T1574.001"]},{"id":"S0458","name":"Ramsay","type":"software","techniques":["T1005","T1014","T1016","T1025","T1027","T1027.003","T1036","T1036.005","T1039","T1046","T1049","T1053.005","T1055.001","T1057","T1059.005","T1071.001","T1074.001","T1080","T1083","T1091","T1106","T1113","T1119","T1120","T1132.001","T1135","T1140","T1203","T1204.002","T1546.010","T1547.001","T1548.002","T1559.001","T1559.002","T1560.001","T1560.003","T1566.001","T1574.001","T1680"]},{"id":"S1212","name":"RansomHub","type":"software","techniques":["T1018","T1021.002","T1027.013","T1057","T1059.001","T1059.003","T1070.001","T1070.004","T1082","T1083","T1090","T1135","T1140","T1480","T1486","T1489","T1490","T1491.001","T1497.003","T1547.001","T1562.009"]},{"id":"S1130","name":"Raspberry Robin","type":"software","techniques":["T1027","T1027.002","T1033","T1036.004","T1036.008","T1047","T1055.012","T1057","T1059","T1059.003","T1070.004","T1070.009","T1071","T1071.001","T1082","T1083","T1091","T1102","T1105","T1140","T1204","T1218.007","T1218.008","T1218.010","T1218.011","T1480","T1497","T1497.001","T1518.001","T1547.001","T1548","T1548.002","T1559","T1559.001","T1562.001","T1571","T1574","T1574.001","T1583.001","T1583.008","T1622"]},{"id":"S0364","name":"RawDisk","type":"software","techniques":["T1485","T1561.001","T1561.002"]},{"id":"S0169","name":"RawPOS","type":"software","techniques":["T1005","T1036.004","T1074.001","T1543.003","T1560.003"]},{"id":"S1040","name":"Rclone","type":"software","techniques":["T1030","T1048.002","T1048.003","T1083","T1560.001","T1567.002"]},{"id":"S0172","name":"Reaver","type":"software","techniques":["T1012","T1016","T1027.013","T1033","T1070.004","T1071.001","T1082","T1095","T1218.002","T1543.003","T1547.001","T1547.009","T1560.003","T1680"]},{"id":"S0153","name":"RedLeaves","type":"software","techniques":["T1016","T1027.013","T1033","T1049","T1059.003","T1070.004","T1071.001","T1082","T1083","T1105","T1113","T1547.001","T1547.009","T1555.003","T1571","T1573.001","T1574.001"]},{"id":"S1240","name":"RedLine Stealer","type":"software","techniques":["T1005","T1012","T1016","T1027.002","T1027.010","T1027.013","T1033","T1036","T1041","T1053.005","T1059.003","T1059.011","T1071.001","T1082","T1087.001","T1102","T1105","T1113","T1132.001","T1140","T1204.002","T1217","T1218.007","T1480","T1497","T1518","T1518.001","T1539","T1553.002","T1555","T1555.003","T1562.001","T1614","T1614.001","T1657"]},{"id":"S0075","name":"Reg","type":"software","techniques":["T1012","T1112","T1552.002"]},{"id":"S0511","name":"RegDuke","type":"software","techniques":["T1027","T1027.003","T1027.011","T1059.001","T1102.002","T1105","T1112","T1140","T1546.003"]},{"id":"S0019","name":"Regin","type":"software","techniques":["T1021.002","T1036.001","T1040","T1056.001","T1071.001","T1071.002","T1090.002","T1095","T1112","T1564.004","T1564.005"]},{"id":"S0332","name":"Remcos","type":"software","techniques":["T1027","T1055","T1056.001","T1059.003","T1059.006","T1083","T1090","T1105","T1112","T1113","T1115","T1123","T1125","T1497.001","T1547.001","T1548.002"]},{"id":"S0375","name":"Remexi","type":"software","techniques":["T1010","T1027.013","T1041","T1047","T1053.005","T1056.001","T1059.003","T1059.005","T1071.001","T1083","T1113","T1115","T1140","T1547.001","T1547.004","T1560"]},{"id":"S0166","name":"RemoteCMD","type":"software","techniques":["T1053.005","T1105","T1569.002"]},{"id":"S0592","name":"RemoteUtilities","type":"software","techniques":["T1083","T1105","T1113","T1218.007"]},{"id":"S0125","name":"Remsec","type":"software","techniques":["T1003.002","T1016","T1018","T1025","T1027.013","T1033","T1036.005","T1046","T1048.003","T1049","T1052.001","T1053.005","T1055.001","T1056.001","T1057","T1059.011","T1068","T1070.004","T1071.001","T1071.003","T1071.004","T1082","T1083","T1087.001","T1095","T1105","T1518.001","T1556.002","T1562.004","T1652"]},{"id":"S0174","name":"Responder","type":"software","techniques":["T1040","T1557.001"]},{"id":"S0379","name":"Revenge RAT","type":"software","techniques":["T1003","T1016","T1021.001","T1033","T1053.005","T1056.001","T1059.001","T1059.003","T1082","T1102.002","T1105","T1113","T1123","T1125","T1132.001","T1202","T1218.005","T1547.004"]},{"id":"S0433","name":"Rifdoor","type":"software","techniques":["T1016","T1027.001","T1027.013","T1033","T1082","T1204.002","T1547.001","T1566.001","T1573.001"]},{"id":"S0448","name":"Rising Sun","type":"software","techniques":["T1005","T1012","T1016","T1016.001","T1027.013","T1033","T1041","T1057","T1059.003","T1070","T1070.004","T1071.001","T1082","T1083","T1106","T1140","T1560.003","T1564.001","T1573.002","T1680"]},{"id":"S0400","name":"RobbinHood","type":"software","techniques":["T1059.003","T1070.005","T1486","T1489","T1490","T1562.001"]},{"id":"S0270","name":"RogueRobin","type":"software","techniques":["T1016","T1027.010","T1033","T1047","T1057","T1059.001","T1059.003","T1082","T1102.002","T1105","T1113","T1132.001","T1140","T1218.010","T1497.001","T1518.001","T1547.001","T1547.009"]},{"id":"S1078","name":"RotaJakiro","type":"software","techniques":["T1036.005","T1037","T1041","T1057","T1082","T1095","T1106","T1119","T1129","T1132.001","T1140","T1543.002","T1546.004","T1547.013","T1559","T1571","T1573.001"]},{"id":"S0090","name":"Rover","type":"software","techniques":["T1005","T1020","T1025","T1056.001","T1074.001","T1083","T1112","T1113","T1119","T1547.001"]},{"id":"S1073","name":"Royal","type":"software","techniques":["T1016","T1021.002","T1046","T1057","T1059.012","T1082","T1083","T1095","T1106","T1135","T1486","T1489","T1490","T1566","T1680"]},{"id":"S1071","name":"Rubeus","type":"software","techniques":["T1482","T1558.001","T1558.002","T1558.003","T1558.004"]},{"id":"S0358","name":"Ruler","type":"software","techniques":["T1087.003","T1137.003","T1137.004","T1137.005"]},{"id":"S0253","name":"RunningRAT","type":"software","techniques":["T1056.001","T1059.003","T1070.001","T1070.004","T1082","T1115","T1547.001","T1560","T1562.001","T1680"]},{"id":"S0446","name":"Ryuk","type":"software","techniques":["T1016","T1021.002","T1027","T1036","T1036.005","T1053.005","T1055","T1057","T1059.003","T1078.002","T1083","T1106","T1134","T1205","T1222.001","T1486","T1489","T1490","T1547.001","T1562.001","T1614.001","T1680"]},{"id":"S0085","name":"S-Type","type":"software","techniques":["T1007","T1008","T1016","T1027.002","T1033","T1036.005","T1041","T1059.003","T1070.004","T1070.009","T1071.001","T1082","T1087.001","T1105","T1106","T1132.001","T1136.001","T1547.001","T1547.009","T1614.001"]},{"id":"S0461","name":"SDBbot","type":"software","techniques":["T1005","T1016","T1021.001","T1027","T1027.002","T1033","T1041","T1055.001","T1057","T1059.003","T1070","T1070.004","T1082","T1083","T1090","T1095","T1105","T1125","T1140","T1218.011","T1546.011","T1546.012","T1547.001","T1614"]},{"id":"S0195","name":"SDelete","type":"software","techniques":["T1070.004","T1485"]},{"id":"S0185","name":"SEASHARPEE","type":"software","techniques":["T1059.003","T1070.006","T1105","T1505.003"]},{"id":"S0450","name":"SHARPSTATS","type":"software","techniques":["T1016","T1027.010","T1033","T1059.001","T1082","T1105","T1124"]},{"id":"S0028","name":"SHIPSHAPE","type":"software","techniques":["T1091","T1547.001","T1547.009"]},{"id":"S0063","name":"SHOTPUT","type":"software","techniques":["T1018","T1027","T1049","T1057","T1083","T1087.001"]},{"id":"S0217","name":"SHUTTERSPEED","type":"software","techniques":["T1082","T1105","T1113"]},{"id":"S0692","name":"SILENTTRINITY","type":"software","techniques":["T1003.001","T1007","T1010","T1012","T1018","T1021.003","T1021.006","T1033","T1041","T1046","T1047","T1055","T1056.001","T1056.002","T1057","T1059.001","T1059.003","T1059.006","T1069.001","T1069.002","T1070","T1070.004","T1082","T1083","T1087.002","T1105","T1106","T1112","T1113","T1115","T1124","T1134.001","T1134.003","T1135","T1518.001","T1543.003","T1546.001","T1546.003","T1546.015","T1547.001","T1548.002","T1552.006","T1555.003","T1555.004","T1556","T1558.003","T1559.001","T1562.001","T1562.003","T1562.010","T1564.003","T1620","T1680"]},{"id":"S1110","name":"SLIGHTPULSE","type":"software","techniques":["T1005","T1059","T1071.001","T1074.001","T1105","T1132.001","T1140","T1505.003","T1573.001"]},{"id":"S0533","name":"SLOTHFULMEDIA","type":"software","techniques":["T1001","T1005","T1007","T1033","T1036.004","T1036.005","T1041","T1049","T1055","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1082","T1083","T1105","T1112","T1113","T1489","T1543.003","T1564.001","T1569.002","T1680"]},{"id":"S0218","name":"SLOWDRIFT","type":"software","techniques":["T1082","T1102.002","T1105"]},{"id":"S1104","name":"SLOWPULSE","type":"software","techniques":["T1027","T1074.001","T1111","T1554","T1556.004","T1556.006"]},{"id":"S0649","name":"SMOKEDHAM","type":"software","techniques":["T1027.009","T1033","T1041","T1056.001","T1059.001","T1071.001","T1082","T1087.001","T1090.004","T1098.007","T1102","T1105","T1112","T1113","T1132.001","T1136.001","T1204.001","T1547.001","T1564.002","T1573.001","T1598.003"]},{"id":"S0159","name":"SNUGRIDE","type":"software","techniques":["T1059.003","T1071.001","T1547.001","T1573.001"]},{"id":"S0157","name":"SOUNDBITE","type":"software","techniques":["T1010","T1071.004","T1082","T1083","T1112"]},{"id":"S0035","name":"SPACESHIP","type":"software","techniques":["T1052.001","T1074.001","T1083","T1547.001","T1547.009","T1560.003"]},{"id":"S0390","name":"SQLRat","type":"software","techniques":["T1027.010","T1053.005","T1059.001","T1059.003","T1070.004","T1105","T1140","T1204.002"]},{"id":"S1037","name":"STARWHALE","type":"software","techniques":["T1005","T1016","T1027.013","T1033","T1041","T1059.003","T1059.005","T1071.001","T1074.001","T1082","T1132.001","T1204.002","T1543.003","T1547.001"]},{"id":"S1238","name":"STATICPLUGIN","type":"software","techniques":["T1036.005","T1036.008","T1204.002","T1553.002","T1559.001"]},{"id":"S1112","name":"STEADYPULSE","type":"software","techniques":["T1071.001","T1105","T1132.001","T1140","T1505.003"]},{"id":"S1042","name":"SUGARDUMP","type":"software","techniques":["T1036.004","T1036.005","T1041","T1053.005","T1071.001","T1071.003","T1074.001","T1083","T1204.002","T1217","T1518","T1555.003","T1560.003"]},{"id":"S1049","name":"SUGARUSH","type":"software","techniques":["T1016.001","T1059.003","T1095","T1543.003","T1571","T1680"]},{"id":"S0559","name":"SUNBURST","type":"software","techniques":["T1001.001","T1001.002","T1001.003","T1005","T1007","T1012","T1016","T1027","T1027.005","T1027.015","T1033","T1036.005","T1047","T1057","T1059.005","T1070","T1070.004","T1070.007","T1070.009","T1071.001","T1071.004","T1082","T1083","T1105","T1112","T1124","T1132.001","T1218.011","T1497.001","T1497.003","T1518.001","T1546.012","T1553.002","T1562.001","T1568","T1573.001"]},{"id":"S0562","name":"SUNSPOT","type":"software","techniques":["T1027","T1036.005","T1057","T1070.004","T1083","T1106","T1134","T1140","T1195.002","T1480","T1480.002","T1565.001"]},{"id":"S0578","name":"SUPERNOVA","type":"software","techniques":["T1027.013","T1036.005","T1071.001","T1203","T1505.003"]},{"id":"S1064","name":"SVCReady","type":"software","techniques":["T1005","T1012","T1027","T1033","T1036.004","T1041","T1047","T1053.005","T1057","T1059.005","T1071.001","T1082","T1105","T1106","T1113","T1120","T1124","T1204.002","T1218.011","T1497.001","T1497.003","T1518","T1546.015","T1566.001"]},{"id":"S0519","name":"SYNful Knock","type":"software","techniques":["T1205","T1556.004","T1601.001"]},{"id":"S0464","name":"SYSCON","type":"software","techniques":["T1057","T1059.003","T1071.002","T1082","T1204.002"]},{"id":"S1210","name":"Sagerunex","type":"software","techniques":["T1016","T1027.002","T1027.013","T1041","T1055.001","T1057","T1071.001","T1074.001","T1082","T1090","T1102.002","T1102.003","T1106","T1134","T1140","T1480","T1560.001","T1573.002"]},{"id":"S1018","name":"Saint Bot","type":"software","techniques":["T1005","T1012","T1016","T1027","T1027.002","T1033","T1036","T1036.005","T1053.005","T1055.001","T1055.004","T1055.012","T1057","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1082","T1083","T1105","T1106","T1132.001","T1140","T1204.001","T1204.002","T1218.004","T1218.010","T1497.001","T1497.003","T1547.001","T1548.002","T1566.001","T1566.002","T1574","T1614","T1622"]},{"id":"S0074","name":"Sakula","type":"software","techniques":["T1027.013","T1059.003","T1070.004","T1071.001","T1105","T1218.011","T1543.003","T1547.001","T1548.002","T1573.001","T1574.001"]},{"id":"S0370","name":"SamSam","type":"software","techniques":["T1027.013","T1027.016","T1059.003","T1070.004","T1486"]},{"id":"S1168","name":"SampleCheck5000","type":"software","techniques":["T1059.003","T1071.001","T1074.001","T1082","T1102.002","T1105","T1140","T1560.001","T1567","T1680"]},{"id":"S1099","name":"Samurai","type":"software","techniques":["T1005","T1012","T1027","T1027.004","T1027.007","T1027.015","T1036.005","T1059.003","T1071.001","T1083","T1090","T1095","T1105","T1106","T1112","T1132.001","T1518","T1543.003","T1573.001"]},{"id":"S1085","name":"Sardonic","type":"software","techniques":["T1005","T1007","T1016","T1027","T1027.010","T1047","T1049","T1055.004","T1057","T1059.001","T1059.003","T1070","T1082","T1095","T1105","T1106","T1132.001","T1135","T1140","T1546.003","T1571","T1573.001","T1573.002","T1620","T1680"]},{"id":"S0053","name":"SeaDuke","type":"software","techniques":["T1027.002","T1059.001","T1059.003","T1070.004","T1071.001","T1078","T1105","T1114.002","T1132.001","T1546.003","T1547.001","T1547.009","T1550.003","T1560.002","T1573.001"]},{"id":"S0345","name":"Seasalt","type":"software","techniques":["T1027.013","T1036.004","T1057","T1059.003","T1070.004","T1071.001","T1083","T1105","T1543.003","T1547.001"]},{"id":"S0382","name":"ServHelper","type":"software","techniques":["T1021.001","T1033","T1036.010","T1053.005","T1059.001","T1059.003","T1070.004","T1071.001","T1082","T1098.007","T1105","T1136.001","T1218.011","T1547.001","T1573.002"]},{"id":"S0639","name":"Seth-Locker","type":"software","techniques":["T1059.003","T1105","T1486"]},{"id":"S0596","name":"ShadowPad","type":"software","techniques":["T1016","T1027","T1027.011","T1029","T1033","T1055","T1055.001","T1057","T1070","T1071.001","T1071.002","T1071.004","T1082","T1095","T1105","T1112","T1124","T1132.002","T1140","T1568.002","T1680"]},{"id":"S0140","name":"Shamoon","type":"software","techniques":["T1012","T1016","T1018","T1021.002","T1027","T1036.004","T1053.005","T1070.006","T1071.001","T1078.002","T1082","T1105","T1112","T1124","T1134.001","T1140","T1485","T1486","T1529","T1543.003","T1548.002","T1561.002","T1569.002","T1570"]},{"id":"S1019","name":"Shark","type":"software","techniques":["T1005","T1008","T1012","T1027.013","T1029","T1036.005","T1041","T1059.003","T1070.004","T1071.001","T1071.004","T1074","T1082","T1105","T1140","T1497.001","T1568.002"]},{"id":"S1089","name":"SharpDisco","type":"software","techniques":["T1005","T1041","T1053.005","T1059.003","T1071.002","T1083","T1105","T1106","T1120","T1564.003","T1680"]},{"id":"S0546","name":"SharpStage","type":"software","techniques":["T1047","T1053.005","T1059.001","T1059.003","T1082","T1102","T1105","T1113","T1140","T1547.001","T1614.001"]},{"id":"S0444","name":"ShimRat","type":"software","techniques":["T1005","T1008","T1027.002","T1027.015","T1029","T1036.004","T1059.003","T1070.004","T1071.001","T1083","T1090.002","T1105","T1106","T1112","T1135","T1140","T1543.003","T1546.011","T1547.001","T1548.002","T1574"]},{"id":"S0445","name":"ShimRatReporter","type":"software","techniques":["T1016","T1020","T1027","T1036.005","T1041","T1049","T1057","T1069","T1071.001","T1082","T1087","T1105","T1106","T1119","T1518","T1560"]},{"id":"S1178","name":"ShrinkLocker","type":"software","techniques":["T1016","T1041","T1047","T1057","T1059.001","T1059.005","T1070.001","T1070.004","T1071.001","T1082","T1102","T1112","T1124","T1480","T1485","T1486","T1491.001","T1529","T1562.001","T1562.004"]},{"id":"S0589","name":"Sibot","type":"software","techniques":["T1012","T1016","T1027.010","T1027.011","T1036.005","T1047","T1049","T1053.005","T1059.005","T1070","T1070.004","T1071.001","T1102","T1105","T1112","T1140","T1218.005","T1218.011"]},{"id":"S0610","name":"SideTwist","type":"software","techniques":["T1001","T1005","T1008","T1016","T1033","T1041","T1059.003","T1071.001","T1082","T1083","T1105","T1106","T1132.001","T1140","T1573.001"]},{"id":"S0623","name":"Siloscape","type":"software","techniques":["T1027","T1059.003","T1068","T1069","T1071","T1083","T1090.003","T1106","T1134.001","T1140","T1190","T1518","T1609","T1611"]},{"id":"S0468","name":"Skidmap","type":"software","techniques":["T1014","T1027.013","T1036.005","T1053.003","T1057","T1059.004","T1082","T1083","T1098.004","T1105","T1140","T1496.001","T1518.001","T1547.006","T1556.003","T1562.001"]},{"id":"S0633","name":"Sliver","type":"software","techniques":["T1001.002","T1003.001","T1016","T1027","T1027.004","T1027.013","T1041","T1049","T1055","T1059.001","T1071","T1071.001","T1071.004","T1083","T1090.001","T1105","T1113","T1132.001","T1134","T1548.002","T1558.001","T1573.001","T1573.002"]},{"id":"S1035","name":"Small Sieve","type":"software","techniques":["T1016","T1027","T1033","T1036.005","T1059.003","T1059.006","T1071.001","T1102.002","T1105","T1132.002","T1480","T1547.001","T1573.002"]},{"id":"S0226","name":"Smoke Loader","type":"software","techniques":["T1027.013","T1053.005","T1055","T1055.012","T1059.005","T1071.001","T1083","T1105","T1114.001","T1140","T1497.001","T1547.001","T1552.001","T1555.003"]},{"id":"S1163","name":"SnappyTCP","type":"software","techniques":["T1059.004","T1071.001","T1095","T1505.003","T1573.002"]},{"id":"S1086","name":"Snip3","type":"software","techniques":["T1027","T1027.001","T1047","T1055.012","T1059.001","T1059.005","T1082","T1102","T1104","T1105","T1140","T1189","T1204.001","T1204.002","T1497.001","T1497.003","T1547.001","T1564.003","T1566.001","T1566.002"]},{"id":"S1124","name":"SocGholish","type":"software","techniques":["T1016","T1027.013","T1027.015","T1033","T1036.005","T1047","T1048.003","T1057","T1059.007","T1074.001","T1082","T1102","T1105","T1189","T1204.001","T1482","T1518","T1566.002","T1614"]},{"id":"S0273","name":"Socksbot","type":"software","techniques":["T1055.001","T1057","T1059.001","T1090","T1113"]},{"id":"S0627","name":"SodaMaster","type":"software","techniques":["T1012","T1027","T1033","T1057","T1082","T1105","T1106","T1497.001","T1497.003","T1573.001","T1573.002"]},{"id":"S1166","name":"Solar","type":"software","techniques":["T1020","T1041","T1053.005","T1070.004","T1082","T1105","T1132.001","T1573.001"]},{"id":"S0615","name":"SombRAT","type":"software","techniques":["T1005","T1007","T1027","T1033","T1036","T1041","T1055.001","T1057","T1070.004","T1071.004","T1074.001","T1082","T1083","T1090","T1095","T1105","T1106","T1124","T1140","T1560.003","T1564.010","T1568.002","T1573.001","T1573.002"]},{"id":"S0516","name":"SoreFang","type":"software","techniques":["T1016","T1027","T1053.005","T1057","T1069.002","T1071.001","T1082","T1083","T1087.001","T1087.002","T1105","T1140","T1190","T1680"]},{"id":"S0543","name":"Spark","type":"software","techniques":["T1027.002","T1033","T1041","T1059.003","T1071.001","T1082","T1132.001","T1140","T1497.002","T1614.001"]},{"id":"S0374","name":"SpeakUp","type":"software","techniques":["T1016","T1027.013","T1033","T1046","T1049","T1053.003","T1059","T1059.006","T1070.004","T1071.001","T1082","T1105","T1110.001","T1132.001","T1203"]},{"id":"S1140","name":"Spica","type":"software","techniques":["T1036.004","T1053.005","T1059.001","T1083","T1095","T1105","T1140","T1539","T1560"]},{"id":"S0646","name":"SpicyOmelette","type":"software","techniques":["T1005","T1016","T1018","T1059.007","T1082","T1105","T1204.001","T1518","T1518.001","T1553.002","T1566.002"]},{"id":"S1234","name":"SplatCloak","type":"software","techniques":["T1036.001","T1082","T1083","T1106","T1518.001","T1562.001"]},{"id":"S1232","name":"SplatDropper","type":"software","techniques":["T1027.007","T1027.013","T1070.009","T1106","T1140","T1543.003","T1553.002","T1574.001"]},{"id":"S1030","name":"Squirrelwaffle","type":"software","techniques":["T1016","T1027.002","T1027.013","T1033","T1041","T1059.001","T1059.003","T1059.005","T1071.001","T1082","T1105","T1132.001","T1140","T1204.001","T1204.002","T1218.010","T1218.011","T1497","T1560.003","T1566.001","T1566.002"]},{"id":"S0058","name":"SslMM","type":"software","techniques":["T1008","T1033","T1036.005","T1056.001","T1082","T1134","T1547.001","T1547.009","T1562.001"]},{"id":"S1227","name":"StarProxy","type":"software","techniques":["T1001.003","T1059","T1090.001","T1095","T1106","T1124","T1140","T1573.001","T1574.001"]},{"id":"S0188","name":"Starloader","type":"software","techniques":["T1036.005","T1140"]},{"id":"S1200","name":"StealBit","type":"software","techniques":["T1005","T1027.013","T1030","T1070.004","T1071.001","T1082","T1083","T1095","T1106","T1140","T1480","T1559","T1562.006","T1614.001","T1622"]},{"id":"S0380","name":"StoneDrill","type":"software","techniques":["T1012","T1027.013","T1047","T1055","T1059.005","T1070.004","T1082","T1105","T1113","T1124","T1485","T1497","T1518.001","T1561.001","T1561.002"]},{"id":"S0142","name":"StreamEx","type":"software","techniques":["T1027","T1057","T1059.003","T1082","T1083","T1112","T1218.011","T1518.001","T1543.003"]},{"id":"S1183","name":"StrelaStealer","type":"software","techniques":["T1001","T1020","T1027","T1027.002","T1027.013","T1027.015","T1027.016","T1036","T1036.003","T1036.005","T1036.008","T1041","T1059.001","T1059.003","T1059.007","T1071.001","T1082","T1105","T1119","T1132.001","T1140","T1204.002","T1218.011","T1480","T1480.002","T1497","T1518","T1552.001","T1552.002","T1553.002","T1566.001","T1574.001","T1614.001","T1622"]},{"id":"S1034","name":"StrifeWater","type":"software","techniques":["T1005","T1033","T1036.005","T1041","T1053.005","T1059.003","T1070.004","T1082","T1083","T1105","T1106","T1113","T1124","T1497.003","T1573.001"]},{"id":"S0491","name":"StrongPity","type":"software","techniques":["T1016","T1020","T1027.013","T1036.004","T1036.005","T1041","T1057","T1059.001","T1070.004","T1071.001","T1083","T1090.003","T1105","T1119","T1204.002","T1518.001","T1543.003","T1547.001","T1553.002","T1560.003","T1562.001","T1564.003","T1569.002","T1571","T1573.002","T1680"]},{"id":"S0603","name":"Stuxnet","type":"software","techniques":["T1008","T1012","T1014","T1016","T1021","T1021.002","T1027.013","T1041","T1047","T1053.005","T1055.001","T1068","T1070","T1070.004","T1070.006","T1071.001","T1078.001","T1078.002","T1080","T1082","T1083","T1087.001","T1087.002","T1090.001","T1091","T1106","T1112","T1120","T1124","T1129","T1132.001","T1134.001","T1135","T1140","T1210","T1480","T1505.001","T1518.001","T1543.003","T1553.002","T1560.003","T1562","T1570","T1573.001"]},{"id":"S0018","name":"Sykipot","type":"software","techniques":["T1007","T1016","T1018","T1049","T1055.001","T1056.001","T1057","T1087.002","T1111","T1547.001","T1573.002"]},{"id":"S0242","name":"SynAck","type":"software","techniques":["T1007","T1012","T1027","T1033","T1055.013","T1057","T1070.001","T1082","T1083","T1106","T1112","T1486","T1497.001","T1614.001"]},{"id":"S0060","name":"Sys10","type":"software","techniques":["T1016","T1033","T1069.001","T1071.001","T1082","T1573.001"]},{"id":"S0663","name":"SysUpdate","type":"software","techniques":["T1005","T1007","T1016","T1016.001","T1027.002","T1027.011","T1027.013","T1033","T1036.004","T1041","T1047","T1057","T1070.004","T1071.004","T1082","T1083","T1105","T1106","T1112","T1113","T1132.001","T1140","T1543.002","T1543.003","T1547.001","T1553.002","T1564.001","T1569.002","T1573.001","T1574.001","T1680"]},{"id":"S0098","name":"T9000","type":"software","techniques":["T1016","T1033","T1082","T1113","T1119","T1120","T1123","T1124","T1125","T1518.001","T1546.010","T1560.003","T1574.001"]},{"id":"S0586","name":"TAINTEDSCRIBE","type":"software","techniques":["T1001.003","T1008","T1018","T1027.001","T1036.005","T1057","T1059.003","T1070.004","T1070.006","T1083","T1105","T1124","T1547.001","T1560","T1573.001","T1680"]},{"id":"S1193","name":"TAMECAT","type":"software","techniques":["T1047","T1059.001","T1059.003","T1059.005","T1071.001","T1105","T1132.001","T1518.001","T1573.001"]},{"id":"S0164","name":"TDTESS","type":"software","techniques":["T1059.003","T1070.004","T1070.006","T1105","T1543.003"]},{"id":"S0560","name":"TEARDROP","type":"software","techniques":["T1012","T1027","T1036.005","T1112","T1140","T1543.003"]},{"id":"S0146","name":"TEXTMATE","type":"software","techniques":["T1059.003","T1071.004"]},{"id":"S1223","name":"THINCRUST","type":"software","techniques":["T1059.006","T1071.001","T1140","T1562.004","T1573.001"]},{"id":"S0131","name":"TINYTYPHON","type":"software","techniques":["T1020","T1027.013","T1083","T1547.001"]},{"id":"S1239","name":"TONESHELL","type":"software","techniques":["T1001.003","T1010","T1027.001","T1027.007","T1027.012","T1033","T1036.004","T1036.005","T1047","T1053.005","T1055.001","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1082","T1087","T1095","T1105","T1106","T1113","T1132.002","T1134.002","T1140","T1205","T1218.010","T1218.013","T1480","T1480.001","T1480.002","T1497.002","T1518.001","T1543.003","T1547.001","T1553.002","T1559","T1560.001","T1573.001","T1574.001","T1622","T1678","T1680"]},{"id":"S1201","name":"TRANSLATEXT","type":"software","techniques":["T1012","T1036.005","T1041","T1059.001","T1071.001","T1102.001","T1102.002","T1112","T1113","T1114","T1176.001","T1185","T1205","T1539","T1555.003"]},{"id":"S0436","name":"TSCookie","type":"software","techniques":["T1016","T1055","T1057","T1059.003","T1071.001","T1083","T1090","T1095","T1105","T1140","T1204.001","T1555.003","T1573.001"]},{"id":"S0199","name":"TURNEDUP","type":"software","techniques":["T1055.004","T1059.003","T1082","T1105","T1113","T1547.001"]},{"id":"S0263","name":"TYPEFRAME","type":"software","techniques":["T1027.011","T1027.013","T1059.003","T1059.005","T1070.004","T1083","T1090","T1105","T1112","T1140","T1204.002","T1543.003","T1562.004","T1571","T1680"]},{"id":"S0011","name":"Taidoor","type":"software","techniques":["T1005","T1012","T1016","T1027.013","T1055.001","T1057","T1059.003","T1070.004","T1071.001","T1083","T1095","T1105","T1106","T1112","T1124","T1140","T1204.002","T1547.001","T1566.001","T1573.001"]},{"id":"S0467","name":"TajMahal","type":"software","techniques":["T1005","T1016","T1020","T1025","T1027","T1041","T1055.001","T1056.001","T1057","T1082","T1083","T1112","T1113","T1115","T1119","T1120","T1123","T1124","T1125","T1129","T1518","T1518.001","T1539","T1560.002"]},{"id":"S1011","name":"Tarrask","type":"software","techniques":["T1036.004","T1036.005","T1053.005","T1059.003","T1112","T1134.001","T1564"]},{"id":"S0057","name":"Tasklist","type":"software","techniques":["T1007","T1057","T1518.001"]},{"id":"S0595","name":"ThiefQuest","type":"software","techniques":["T1036.005","T1041","T1056.001","T1057","T1059.002","T1071.001","T1105","T1106","T1486","T1497.003","T1518.001","T1543.001","T1543.004","T1554","T1562.001","T1564.001","T1620","T1622"]},{"id":"S0665","name":"ThreatNeedle","type":"software","techniques":["T1005","T1027.011","T1027.013","T1027.015","T1036.005","T1082","T1083","T1105","T1112","T1140","T1204.002","T1543.003","T1547.001","T1566.001"]},{"id":"S0668","name":"TinyTurla","type":"software","techniques":["T1005","T1008","T1012","T1027.011","T1029","T1036.004","T1036.005","T1059.003","T1071.001","T1105","T1106","T1112","T1569.002","T1573.002"]},{"id":"S0004","name":"TinyZBot","type":"software","techniques":["T1056.001","T1059.003","T1113","T1115","T1543.003","T1547.001","T1547.009","T1562.001"]},{"id":"S0671","name":"Tomiris","type":"software","techniques":["T1005","T1027.002","T1041","T1053.005","T1071.001","T1105","T1497.003","T1568"]},{"id":"S0183","name":"Tor","type":"software","techniques":["T1090.003","T1573.002"]},{"id":"S0678","name":"Torisma","type":"software","techniques":["T1016","T1027.002","T1027.013","T1041","T1049","T1071.001","T1106","T1124","T1132.001","T1140","T1480","T1573.001","T1680"]},{"id":"S0682","name":"TrailBlazer","type":"software","techniques":["T1001","T1001.001","T1036","T1071.001","T1546.003"]},{"id":"S0266","name":"TrickBot","type":"software","techniques":["T1005","T1007","T1008","T1016","T1018","T1021.005","T1027","T1027.002","T1027.013","T1033","T1036","T1041","T1053.005","T1055","T1055.012","T1056.004","T1057","T1059.001","T1059.003","T1069","T1071.001","T1082","T1083","T1087.001","T1087.003","T1090.002","T1105","T1106","T1110.004","T1112","T1132.001","T1135","T1140","T1185","T1204.002","T1210","T1219","T1482","T1495","T1497.003","T1542.003","T1543.003","T1547.001","T1552.001","T1552.002","T1553.002","T1555.003","T1555.005","T1559.001","T1562.001","T1564.003","T1566.001","T1566.002","T1571","T1573.001"]},{"id":"S0094","name":"Trojan.Karagany","type":"software","techniques":["T1003","T1010","T1016","T1027","T1027.002","T1033","T1049","T1055.003","T1056.001","T1057","T1059.003","T1070.004","T1071.001","T1074.001","T1082","T1083","T1105","T1113","T1497.001","T1547.001","T1555.003","T1573.002"]},{"id":"S1196","name":"Troll Stealer","type":"software","techniques":["T1005","T1016","T1027.002","T1036.005","T1041","T1059.001","T1059.003","T1070.004","T1071.001","T1074.001","T1082","T1083","T1113","T1132.001","T1213","T1217","T1218.011","T1480.002","T1552.004","T1553.002","T1560","T1573.001"]},{"id":"S0178","name":"Truvasys","type":"software","techniques":["T1036.004","T1547.001"]},{"id":"S0647","name":"Turian","type":"software","techniques":["T1001.001","T1016","T1027","T1033","T1036.004","T1059.003","T1059.004","T1059.006","T1071.001","T1074.001","T1082","T1083","T1105","T1113","T1120","T1140","T1547.001","T1560.001"]},{"id":"S0333","name":"UBoatRAT","type":"software","techniques":["T1057","T1059.003","T1071.001","T1102.002","T1105","T1197","T1497.001","T1573.001"]},{"id":"S0275","name":"UPPERCUT","type":"software","techniques":["T1016","T1033","T1059.003","T1071.001","T1082","T1083","T1105","T1113","T1124","T1573.001"]},{"id":"S1164","name":"UPSTYLE","type":"software","techniques":["T1001.001","T1027.013","T1036","T1057","T1059.006","T1070.002","T1070.004","T1070.006","T1102.003","T1140","T1546","T1665"]},{"id":"S0136","name":"USBStealer","type":"software","techniques":["T1020","T1025","T1027.013","T1036.005","T1052.001","T1070.004","T1070.006","T1074.001","T1083","T1091","T1092","T1119","T1120","T1547.001"]},{"id":"S0452","name":"USBferry","type":"software","techniques":["T1005","T1016","T1018","T1049","T1057","T1059.003","T1083","T1087.001","T1091","T1120","T1218.011"]},{"id":"S0221","name":"Umbreon","type":"software","techniques":["T1014","T1059.003","T1078.003","T1095","T1205"]},{"id":"S0130","name":"Unknown Logger","type":"software","techniques":["T1016","T1033","T1056.001","T1082","T1091","T1105","T1555.003","T1562.001"]},{"id":"S0022","name":"Uroburos","type":"software","techniques":["T1001.001","T1001.003","T1005","T1008","T1012","T1014","T1027.002","T1027.009","T1027.011","T1027.013","T1036.004","T1055.001","T1057","T1059.003","T1070.004","T1071.001","T1071.003","T1071.004","T1082","T1083","T1090.003","T1095","T1104","T1105","T1106","T1112","T1132.002","T1140","T1205","T1543.003","T1559","T1564.005","T1572","T1573.001","T1573.002","T1620"]},{"id":"S0386","name":"Ursnif","type":"software","techniques":["T1005","T1007","T1012","T1027.010","T1027.013","T1036.005","T1041","T1047","T1055.005","T1055.012","T1056.004","T1057","T1059.001","T1059.005","T1070.004","T1071.001","T1074.001","T1080","T1082","T1090","T1090.003","T1091","T1105","T1106","T1112","T1113","T1132","T1140","T1185","T1497.003","T1543.003","T1547.001","T1559.001","T1564.003","T1568.002"]},{"id":"S0442","name":"VBShower","type":"software","techniques":["T1059.005","T1070.004","T1071.001","T1105","T1547.001"]},{"id":"S0257","name":"VERMIN","type":"software","techniques":["T1016","T1027.002","T1027.013","T1033","T1056.001","T1057","T1070.004","T1071.001","T1082","T1105","T1113","T1115","T1119","T1123","T1140","T1518.001","T1560"]},{"id":"S1218","name":"VIRTUALPIE","type":"software","techniques":["T1059.006","T1059.012","T1505.006","T1570","T1571","T1573.001"]},{"id":"S1217","name":"VIRTUALPITA","type":"software","techniques":["T1036.004","T1036.005","T1037","T1059.004","T1059.006","T1105","T1489","T1562.003","T1570","T1571","T1673","T1675"]},{"id":"S0476","name":"Valak","type":"software","techniques":["T1008","T1012","T1016","T1027","T1027.002","T1027.011","T1033","T1041","T1047","T1053.005","T1057","T1059.001","T1059.007","T1071.001","T1082","T1087.001","T1087.002","T1104","T1105","T1112","T1113","T1114.002","T1119","T1132.001","T1140","T1204.002","T1218.010","T1518.001","T1552.002","T1555.004","T1559.002","T1564.004","T1566.001","T1566.002"]},{"id":"S0636","name":"VaporRage","type":"software","techniques":["T1071.001","T1105","T1140","T1480"]},{"id":"S0207","name":"Vasport","type":"software","techniques":["T1071.001","T1090","T1105","T1547.001"]},{"id":"S1154","name":"VersaMem","type":"software","techniques":["T1027.013","T1040","T1056.004","T1059","T1070.004","T1074.001","T1129","T1203"]},{"id":"S0180","name":"Volgmer","type":"software","techniques":["T1007","T1012","T1016","T1027.011","T1027.013","T1036.004","T1049","T1057","T1059.003","T1070.004","T1082","T1083","T1105","T1106","T1112","T1140","T1543.003","T1573.001","T1573.002"]},{"id":"S1116","name":"WARPWIRE","type":"software","techniques":["T1048.003","T1056.003","T1059.007","T1132.001","T1554"]},{"id":"S0109","name":"WEBC2","type":"software","techniques":["T1059.003","T1105","T1574.001"]},{"id":"S0155","name":"WINDSHIELD","type":"software","techniques":["T1012","T1033","T1070.004","T1082","T1095"]},{"id":"S0219","name":"WINERACK","type":"software","techniques":["T1007","T1010","T1033","T1057","T1059","T1082","T1083"]},{"id":"S1115","name":"WIREFIRE","type":"software","techniques":["T1071.001","T1105","T1132.001","T1140","T1505.003","T1554","T1573.001"]},{"id":"S0366","name":"WannaCry","type":"software","techniques":["T1016","T1018","T1047","T1083","T1090.003","T1120","T1210","T1222.001","T1486","T1489","T1490","T1543.003","T1563.002","T1564.001","T1570","T1573.002"]},{"id":"S0670","name":"WarzoneRAT","type":"software","techniques":["T1005","T1014","T1021.001","T1021.005","T1041","T1055","T1056.001","T1057","T1059.001","T1059.003","T1082","T1083","T1090","T1095","T1105","T1106","T1112","T1125","T1140","T1204.002","T1221","T1546.015","T1547.001","T1548.002","T1555.003","T1562.001","T1564","T1564.003","T1566.001","T1573.001"]},{"id":"S0612","name":"WastedLocker","type":"software","techniques":["T1012","T1027.013","T1027.016","T1059.003","T1083","T1106","T1112","T1120","T1135","T1140","T1222.001","T1486","T1490","T1497.001","T1543.003","T1548.002","T1564.001","T1564.004","T1569.002","T1574.001"]},{"id":"S0579","name":"Waterbear","type":"software","techniques":["T1012","T1027.005","T1027.013","T1049","T1055","T1055.003","T1057","T1105","T1106","T1112","T1140","T1518.001","T1562.006","T1574.001"]},{"id":"S0515","name":"WellMail","type":"software","techniques":["T1005","T1016","T1033","T1095","T1105","T1140","T1560","T1571","T1573.002"]},{"id":"S0514","name":"WellMess","type":"software","techniques":["T1001.001","T1005","T1016","T1033","T1059.001","T1059.003","T1069.002","T1071.001","T1071.004","T1082","T1105","T1132.001","T1140","T1573.001","T1573.002"]},{"id":"S0645","name":"Wevtutil","type":"software","techniques":["T1005","T1070.001","T1562.002"]},{"id":"S0689","name":"WhisperGate","type":"software","techniques":["T1027.013","T1036","T1055.012","T1059.001","T1059.003","T1059.005","T1070.004","T1071.001","T1083","T1102","T1105","T1106","T1134.002","T1135","T1140","T1218.004","T1485","T1497.001","T1497.003","T1518.001","T1529","T1542.003","T1561.001","T1561.002","T1562.001","T1569.002","T1620","T1680"]},{"id":"S0206","name":"Wiarp","type":"software","techniques":["T1055","T1059.003","T1105","T1543.003"]},{"id":"S0059","name":"WinMM","type":"software","techniques":["T1008","T1033","T1057","T1071.001","T1082","T1083"]},{"id":"S0466","name":"WindTail","type":"software","techniques":["T1027.013","T1027.015","T1036","T1036.001","T1048.003","T1059.004","T1070.004","T1071.001","T1083","T1106","T1119","T1124","T1140","T1560.001","T1564.003"]},{"id":"S0176","name":"Wingbird","type":"software","techniques":["T1055","T1068","T1070.004","T1082","T1518.001","T1543.003","T1547.008","T1569.002","T1574.001"]},{"id":"S0430","name":"Winnti for Linux","type":"software","techniques":["T1014","T1027.013","T1071.001","T1095","T1105","T1140","T1205","T1573.001"]},{"id":"S0141","name":"Winnti for Windows","type":"software","techniques":["T1027.013","T1027.015","T1036.005","T1057","T1070.004","T1070.006","T1071.001","T1082","T1083","T1090.001","T1090.002","T1095","T1105","T1106","T1140","T1218.011","T1480.001","T1543.003","T1547.001","T1548.002","T1569.002","T1573.001"]},{"id":"S1065","name":"Woody RAT","type":"software","techniques":["T1005","T1012","T1016","T1016.001","T1027.013","T1033","T1041","T1055","T1055.012","T1057","T1059.001","T1059.003","T1070.004","T1071.001","T1082","T1083","T1087","T1105","T1106","T1113","T1140","T1203","T1204.002","T1518","T1518.001","T1562.006","T1566.001","T1573.001","T1573.002","T1680"]},{"id":"S0161","name":"XAgentOSX","type":"software","techniques":["T1033","T1056.001","T1057","T1070.004","T1071.002","T1082","T1083","T1106","T1113","T1555.003"]},{"id":"S0658","name":"XCSSET","type":"software","techniques":["T1005","T1027.013","T1036","T1041","T1056.002","T1059.004","T1068","T1082","T1083","T1087","T1098.004","T1105","T1113","T1195.001","T1222.002","T1486","T1497.003","T1518","T1518.001","T1539","T1543.004","T1546","T1546.004","T1548.006","T1553.001","T1554","T1560","T1564.001","T1569.001","T1573.001","T1574.006","T1614.001","T1647"]},{"id":"S1207","name":"XLoader","type":"software","techniques":["T1027.002","T1027.013","T1033","T1053.005","T1055.004","T1055.012","T1056.001","T1059.010","T1070.004","T1071.001","T1082","T1106","T1113","T1115","T1140","T1185","T1203","T1497","T1497.001","T1529","T1539","T1547.001","T1555","T1555.003","T1562.001","T1566.001","T1583.001","T1622"]},{"id":"S1248","name":"XORIndex Loader","type":"software","techniques":["T1016","T1027.010","T1027.013","T1033","T1036.005","T1041","T1059.007","T1071.001","T1082","T1105","T1140","T1614"]},{"id":"S0117","name":"XTunnel","type":"software","techniques":["T1008","T1027","T1027.016","T1046","T1059.003","T1090","T1552.001","T1573.002"]},{"id":"S0341","name":"Xbash","type":"software","techniques":["T1016","T1046","T1053.003","T1059.001","T1059.005","T1059.007","T1071.001","T1102.001","T1105","T1110.001","T1203","T1218.005","T1218.010","T1485","T1486","T1547.001"]},{"id":"S0388","name":"YAHOYAH","type":"software","techniques":["T1027.013","T1071.001","T1082","T1105","T1140","T1518.001"]},{"id":"S1114","name":"ZIPLINE","type":"software","techniques":["T1057","T1059.004","T1083","T1090","T1095","T1105","T1205","T1562.001","T1573.001"]},{"id":"S0086","name":"ZLib","type":"software","techniques":["T1007","T1036.005","T1041","T1059.003","T1071.001","T1082","T1083","T1105","T1113","T1543.003","T1560.002"]},{"id":"S0251","name":"Zebrocy","type":"software","techniques":["T1012","T1016","T1027.002","T1033","T1037.001","T1041","T1047","T1049","T1053.005","T1056.004","T1057","T1059.003","T1070.004","T1071.001","T1071.003","T1074.001","T1082","T1083","T1105","T1113","T1119","T1120","T1124","T1132.001","T1135","T1140","T1547.001","T1555.003","T1560","T1573.002","T1680"]},{"id":"S1151","name":"ZeroCleare","type":"software","techniques":["T1059","T1059.001","T1068","T1070.004","T1106","T1553.002","T1561.002","T1680"]},{"id":"S0230","name":"ZeroT","type":"software","techniques":["T1001.002","T1016","T1027.002","T1027.013","T1027.016","T1071.001","T1082","T1105","T1140","T1543.003","T1548.002","T1573.001","T1574.001"]},{"id":"S0027","name":"Zeroaccess","type":"software","techniques":["T1014","T1564.004"]},{"id":"S0330","name":"Zeus Panda","type":"software","techniques":["T1012","T1027.010","T1027.013","T1055.002","T1056.001","T1056.004","T1057","T1059","T1059.001","T1059.003","T1070.004","T1071.001","T1082","T1083","T1105","T1112","T1113","T1115","T1124","T1140","T1518.001","T1547.001","T1614.001"]},{"id":"S0672","name":"Zox","type":"software","techniques":["T1001.002","T1005","T1021.002","T1027.013","T1057","T1068","T1083","T1105","T1680"]},{"id":"S0412","name":"ZxShell","type":"software","techniques":["T1005","T1007","T1012","T1021.001","T1021.005","T1033","T1046","T1055.001","T1056.001","T1056.004","T1057","T1059.003","T1070.001","T1070.004","T1071.001","T1071.002","T1082","T1083","T1090","T1105","T1106","T1112","T1113","T1125","T1134.002","T1136.001","T1190","T1218.011","T1499","T1543.003","T1562.001","T1562.004","T1569.002","T1571"]},{"id":"S1013","name":"ZxxZ","type":"software","techniques":["T1005","T1012","T1027.013","T1033","T1036.004","T1053.005","T1057","T1082","T1105","T1106","T1140","T1204.002","T1518.001","T1566.001"]},{"id":"S0202","name":"adbupd","type":"software","techniques":["T1059.003","T1546.003","T1573.002"]},{"id":"S0471","name":"build_downer","type":"software","techniques":["T1027.003","T1036.004","T1105","T1106","T1124","T1518.001","T1547.001","T1680"]},{"id":"S1043","name":"ccf32","type":"software","techniques":["T1005","T1048.003","T1053.005","T1059.003","T1070.004","T1074.001","T1074.002","T1083","T1119","T1124","T1560.001","T1564.001"]},{"id":"S1204","name":"cd00r","type":"software","techniques":["T1016","T1040","T1095","T1205.001"]},{"id":"S0160","name":"certutil","type":"software","techniques":["T1105","T1140","T1553.004","T1560.001"]},{"id":"S0106","name":"cmd","type":"software","techniques":["T1059.003","T1070.004","T1082","T1083","T1105","T1570"]},{"id":"S0472","name":"down_new","type":"software","techniques":["T1016","T1057","T1071.001","T1083","T1105","T1132.001","T1518","T1518.001","T1573.001","T1680"]},{"id":"S0105","name":"dsquery","type":"software","techniques":["T1069.002","T1082","T1087.002","T1482"]},{"id":"S0404","name":"esentutl","type":"software","techniques":["T1003.003","T1005","T1006","T1105","T1564.004","T1570"]},{"id":"S0095","name":"ftp","type":"software","techniques":["T1048.003","T1105","T1570"]},{"id":"S0032","name":"gh0st RAT","type":"software","techniques":["T1012","T1055","T1056.001","T1057","T1059","T1070.001","T1070.004","T1082","T1095","T1105","T1106","T1112","T1113","T1129","T1132.001","T1140","T1218.011","T1543.003","T1547.001","T1568.001","T1569.002","T1573","T1573.001","T1574.001"]},{"id":"S0008","name":"gsecdump","type":"software","techniques":["T1003.002","T1003.004"]},{"id":"S0071","name":"hcdLoader","type":"software","techniques":["T1059.003","T1543.003"]},{"id":"S0068","name":"httpclient","type":"software","techniques":["T1059.003","T1071.001","T1573.001"]},{"id":"S0278","name":"iKitten","type":"software","techniques":["T1016","T1037.004","T1056.002","T1057","T1555.001","T1560.001","T1564.001"]},{"id":"S0283","name":"jRAT","type":"software","techniques":["T1007","T1016","T1021.001","T1027","T1027.002","T1029","T1037.005","T1047","T1049","T1056.001","T1057","T1059.003","T1059.005","T1059.007","T1070.004","T1082","T1083","T1090","T1105","T1113","T1115","T1120","T1123","T1125","T1518.001","T1552.001","T1552.004","T1555.003"]},{"id":"S1048","name":"macOS.OSAMiner","type":"software","techniques":["T1027.008","T1027.009","T1057","T1059.002","T1082","T1105","T1497.001","T1543.001","T1562.001","T1569.001","T1680"]},{"id":"S1059","name":"metaMain","type":"software","techniques":["T1005","T1027.013","T1033","T1041","T1055","T1056","T1056.001","T1057","T1070.004","T1070.006","T1071.001","T1074.001","T1082","T1083","T1090.001","T1095","T1105","T1106","T1112","T1113","T1140","T1205.001","T1497.003","T1546.003","T1560.003","T1573.001","T1574.001","T1620"]},{"id":"S0102","name":"nbtstat","type":"software","techniques":["T1016","T1049"]},{"id":"S0108","name":"netsh","type":"software","techniques":["T1090","T1518.001","T1546.007","T1562.004"]},{"id":"S0508","name":"ngrok","type":"software","techniques":["T1090","T1102","T1567","T1568.002","T1572"]},{"id":"S0385","name":"njRAT","type":"software","techniques":["T1005","T1010","T1012","T1018","T1021.001","T1027.004","T1027.013","T1033","T1041","T1056.001","T1057","T1059.001","T1059.003","T1070.004","T1070.009","T1071.001","T1082","T1083","T1091","T1105","T1106","T1112","T1113","T1120","T1125","T1132.001","T1547.001","T1555.003","T1562.004","T1568.001","T1571"]},{"id":"S0067","name":"pngdowner","type":"software","techniques":["T1070.004","T1071.001","T1552.001"]},{"id":"S1187","name":"reGeorg","type":"software","techniques":["T1021.001","T1021.002","T1021.004","T1059.006","T1071.001","T1090","T1095","T1105","T1505.003","T1572"]},{"id":"S0653","name":"xCaon","type":"software","techniques":["T1005","T1016","T1059.003","T1071.001","T1105","T1106","T1132.001","T1140","T1518.001","T1547","T1573.001"]},{"id":"S0248","name":"yty","type":"software","techniques":["T1005","T1016","T1018","T1027.002","T1027.016","T1033","T1053.005","T1056.001","T1057","T1082","T1083","T1102.002","T1113","T1497.001","T1680"]},{"id":"S0350","name":"zwShell","type":"software","techniques":["T1016","T1021.001","T1021.002","T1033","T1053.005","T1059.003","T1070.004","T1082","T1083","T1112","T1543.003"]}]'),_U={version:jU,tacticOrder:FU,techniques:LU,entities:PU},qU=Math.PI*(3-Math.sqrt(5)),Gi=(e,t)=>`${e}:${t}`;function My(e,t,n=0){const a=t*Math.sqrt(e+1),i=e*qU+n;return{x:Math.cos(i)*a,y:Math.sin(i)*a}}function jy(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)/4294967295*Math.PI*2}function Fy(e,t){const n=e.map(i=>t.get(i)).filter(i=>!!i);if(!n.length)return{x:0,y:0};const a=n.reduce((i,r)=>({x:i.x+r.x,y:i.y+r.y}),{x:0,y:0});return{x:a.x/n.length,y:a.y/n.length}}function BU(e,t){if(!e.length)return{nodes:[],edges:[]};const n=[],a=[],i=new Map(t.techniques.map(y=>[y.id,y])),r=[...new Set(e.flatMap(y=>y.categories?.length?y.categories:[y.category]))].filter(Boolean).sort((y,w)=>y.localeCompare(w,"en-US")),c=[...new Set(e.flatMap(y=>y.defenses??[]))].filter(Boolean).sort((y,w)=>y.localeCompare(w,"en-US")),l=[...new Set(e.flatMap(y=>y.targets??[]))].filter(Boolean).sort((y,w)=>y.localeCompare(w,"en-US")),f=t.tacticOrder.filter(y=>e.some(w=>w.tactics.includes(y))),T=new Map,p=[...r.map(y=>({kind:"category",label:y})),...c.map(y=>({kind:"defense",label:y})),...l.map(y=>({kind:"target",label:y})),...f.map(y=>({kind:"tactic",label:y}))].sort((y,w)=>y.label.localeCompare(w.label,"en-US")||y.kind.localeCompare(w.kind)),m=Math.min(1280,Math.max(460,p.length*88));p.forEach((y,w)=>{const C=p.length===1?0:w/p.length*Math.PI*2-Math.PI/2,k={x:Math.cos(C)*m,y:Math.sin(C)*m},E=Gi(y.kind,y.label);T.set(E,k),n.push({id:E,kind:y.kind,label:y.label,...k,radius:y.kind==="category"?12:y.kind==="defense"?9:10})});const g=[...new Set(e.flatMap(y=>y.techniqueIds))],S=new Map;g.forEach(y=>{const k=(i.get(y)?.tactics??e.find(O=>O.techniqueIds.includes(y))?.tactics??[]).filter(O=>f.includes(O)).sort().join("|"),E=S.get(k)??[];E.push(y),S.set(k,E)});for(const[y,w]of S){const C=y?y.split("|"):[],k=C.map(O=>Gi("tactic",O)),E=Fy(k,T);w.sort().forEach((O,N)=>{const B=My(N,96,jy(y||O)),A={x:E.x+B.x,y:E.y+B.y},z=Gi("technique",O);T.set(z,A),n.push({id:z,kind:"technique",label:`${O} · ${i.get(O)?.name??"MITRE technique"}`,...A,radius:7});for(const P of C)a.push({id:`technique-tactic:${O}:${P}`,source:z,target:Gi("tactic",P),kind:"technique"})})}const x=new Map;e.forEach(y=>{const w=(y.categories?.length?y.categories:[y.category]).filter(z=>r.includes(z)).map(z=>Gi("category",z)),C=(y.defenses??[]).filter(z=>c.includes(z)).map(z=>Gi("defense",z)),k=(y.targets??[]).filter(z=>l.includes(z)).map(z=>Gi("target",z)),E=y.techniqueIds.map(z=>Gi("technique",z)).filter(z=>T.has(z)),O=E.length?[]:y.tactics.map(z=>Gi("tactic",z)).filter(z=>T.has(z)),N=[...new Set([...w,...C,...k,...E,...O])],B=[...N].sort().join("|"),A=x.get(B)??[];A.push({item:y,relationIds:N}),x.set(B,A)});for(const[y,w]of x){const C=Fy(w[0]?.relationIds??[],T);w.sort((k,E)=>E.item.risk-k.item.risk||k.item.id.localeCompare(E.item.id)).forEach(({item:k,relationIds:E},O)=>{const N=My(O,92,jy(y||k.id)),B={x:C.x+N.x,y:C.y+N.y},A=Gi("finding",k.id);n.push({id:A,kind:"finding",itemId:k.id,label:k.title,severity:k.severity,...B,radius:Math.min(7,4+k.risk/220)}),E.forEach(z=>{const P=z.startsWith("category:")?"category":z.startsWith("defense:")?"defense":z.startsWith("target:")?"target":z.startsWith("technique:")?"technique":"tactic";a.push({id:`finding-${P}:${k.id}:${z}`,source:A,target:z,kind:P})})})}return{nodes:n,edges:a}}const s7=["Result Status","Result message","SI version"];function UU(e,t){return e.values.find(n=>n.value===t)?.label??t}function zU(e,t,n){if(t&&n)return`${e.label}: ${t}–${n}`;if(t)return`${e.label}: ≥ ${t}`;if(n)return`${e.label}: ≤ ${n}`}function WU({facets:e,filters:t,search:n,actionOnly:a}){const i=[],r=n.trim();return r&&i.push(`Search: ${r}`),e.forEach(c=>{if(c.source==="profile-status"||s7.includes(c.label))return;const l=t[c.id];if(!l)return;if(c.kind==="category"&&l.values?.length){i.push(`${c.label}: ${l.values.map(T=>UU(c,T)).join(", ")}`);return}const f=zU(c,l.minimum,l.maximum);f&&i.push(f)}),a&&i.push("My Workspace"),i}const Ly=(e,t,n)=>Math.min(n,Math.max(t,e));function Ih(e,t,n=5){let a=Ly(e.x,t.x,t.x+t.width),i=Ly(e.y,t.y,t.y+t.height);if(a===e.x&&i===e.y){const p=[{distance:Math.abs(e.x-t.x),x:t.x,y:e.y},{distance:Math.abs(t.x+t.width-e.x),x:t.x+t.width,y:e.y},{distance:Math.abs(e.y-t.y),x:e.x,y:t.y},{distance:Math.abs(t.y+t.height-e.y),x:e.x,y:t.y+t.height}].sort((m,g)=>m.distance-g.distance)[0];a=p.x,i=p.y}const r=a-e.x,c=i-e.y,l=Math.hypot(r,c)||1,f=Math.min(l,e.radius+n);return{startX:e.x+r/l*f,startY:e.y+c/l*f,endX:a,endY:i}}const r7=(e,t)=>Math.max(e,t)*1.6;function Py(e,t,n,a,i,r){return e>=n&&e<=i&&t>=a&&t<=r}function Tu(e,t,n,a,i,r){return(n-e)*(r-t)-(a-t)*(i-e)}function Uc(e,t,n,a,i,r,c,l){const f=Tu(e,t,n,a,i,r),T=Tu(e,t,n,a,c,l),p=Tu(i,r,c,l,e,t),m=Tu(i,r,c,l,n,a),g=1e-6,S=(x,y,w,C,k,E)=>w>=Math.min(x,k)-g&&w<=Math.max(x,k)+g&&C>=Math.min(y,E)-g&&C<=Math.max(y,E)+g;return(f>g&&T<-g||f<-g&&T>g)&&(p>g&&m<-g||p<-g&&m>g)||Math.abs(f)<=g&&S(e,t,i,r,n,a)||Math.abs(T)<=g&&S(e,t,c,l,n,a)||Math.abs(p)<=g&&S(i,r,e,t,c,l)?!0:Math.abs(m)<=g&&S(i,r,n,a,c,l)}function VU(e,t,n){const a=e.x2-e.x1,i=e.y2-e.y1,r=a*a+i*i;if(r===0)return Math.hypot(t-e.x1,n-e.y1);const c=Math.max(0,Math.min(1,((t-e.x1)*a+(n-e.y1)*i)/r));return Math.hypot(t-(e.x1+c*a),n-(e.y1+c*i))}function bp(e,t,n,a,i=4){const r=e.x-i,c=e.y-i,l=e.x+t+i,f=e.y+n+i;return a.reduce((T,p)=>{const m=Py(p.x1,p.y1,r,c,l,f)||Py(p.x2,p.y2,r,c,l,f)||Uc(p.x1,p.y1,p.x2,p.y2,r,c,l,c)||Uc(p.x1,p.y1,p.x2,p.y2,l,c,l,f)||Uc(p.x1,p.y1,p.x2,p.y2,l,f,r,f)||Uc(p.x1,p.y1,p.x2,p.y2,r,f,r,c);return T+Number(m)},0)}function HU(e,t,n,a,i,r=()=>0){const c=Math.min(140,Math.max(n,a)*.65),l=r7(n,a);let f,T=Number.POSITIVE_INFINITY;for(const p of e){const m=Math.hypot(p.x-t.x,p.y-t.y),g=Math.max(0,m-l)*12,S=m+bp(p,n,a,i)*c+g+r(p);S>=T||(f=p,T=S)}return f}function GU(e,t,n){const a=Math.max(.001,e),i=Math.log2(Math.max(1,a))*.06,r=Math.min(n,Math.max(t,t+i));return{screenScale:r,graphScale:r/a}}function XU(e){return e<=2?0:Math.min(.8,.28+Math.log2(e)*.08)}const zc="__filtered-graph-selection__";function Nh(e,t){if(e.source===t)return e.target;if(e.target===t)return e.source}function KU(e,t){const n=new Map(e.nodes.map(f=>[f.id,f.kind])),a=n.get(t);if(!a||a==="finding")return[];const i=new Set([t]),r=a==="tactic"?[t,...e.edges.flatMap(f=>{const T=Nh(f,t);return T&&n.get(T)==="technique"?[T]:[]})]:[t];r.forEach(f=>i.add(f));const c=e.edges.flatMap(f=>r.flatMap(T=>{const p=Nh(f,T);return p&&n.get(p)==="finding"?[p]:[]}));c.forEach(f=>i.add(f)),e.edges.forEach(f=>{const T=c.includes(f.source),p=c.includes(f.target);if(!T&&!p)return;const m=T?f.target:f.source;i.add(m)});const l=[...i].filter(f=>n.get(f)==="technique");return e.edges.forEach(f=>{const T=l.includes(f.source)?f.source:l.includes(f.target)?f.target:void 0;if(!T)return;const p=Nh(f,T);p&&n.get(p)==="tactic"&&(a!=="tactic"||p===t)&&i.add(p)}),e.nodes.map(f=>f.id).filter(f=>i.has(f))}function Oh(e,t){const n=new Set;for(const a of t){if(a===zc)return e.nodes.map(r=>r.id);const i=KU(e,a);if(i.length){i.forEach(r=>n.add(r));continue}e.nodes.some(r=>r.id===a)&&(n.add(a),e.edges.forEach(r=>{r.source===a&&n.add(r.target),r.target===a&&n.add(r.source)}))}return e.nodes.map(a=>a.id).filter(a=>n.has(a))}function Ru(e){return e.trim().replace(/\s+/g," ").toLocaleLowerCase("de-DE")}function $U(e,t){const n=Ru(e.label);return e.kind!=="category"||e.source==="profile-status"?!1:t==="category"?e.role==="category"||/^(?:cis\s+)?(?:category|kategorie)$/.test(n):t==="target"?e.role==="asset"||/^(?:target|ziel|affected object|betroffenes objekt|asset)$/.test(n):t==="defense"?/^mitre\s*d3fend$/.test(n):t==="technique"||t==="tactic"?/^mitre\s*att&?ck$/.test(n):t==="finding"?e.role==="rule-id"||/^(?:rule|regel)(?:\s+|-)?id$/.test(n):!1}function YU(e,t){const n=Ru(e.label),a=e.kind==="technique"?/\bt\d{4}(?:\.\d{3})?\b/i.exec(e.label)?.[0]?.toLocaleLowerCase("en-US"):void 0;return t.values.find(i=>{const r=Ru(i.value),c=Ru(i.label);return n===r||n===c||a&&(r.includes(a)||c.includes(a))?!0:e.kind==="finding"?n.startsWith(`${r} `)||n.startsWith(`${c} `):!1})?.value}function o7(e,t){for(const n of t){if(!$U(n,e.kind))continue;const a=YU(e,n);if(a!==void 0)return{facetId:n.id,value:a}}}function ZU(e,t,n){for(const a of e){if(a.kind==="finding")continue;const i=o7(a,t);if(i&&n[i.facetId]?.values?.includes(i.value))return a.id}return""}const vr={screenScale:{minimum:.7,maximum:.76},finding:{width:240,height:232},relation:{width:190,height:130},category:{width:220,height:150}};function _y({variant:e,relationKind:t,children:n}){const a=e==="finding"?"pathfinder-micro-card pathfinder-micro-card-finding obsidian-node-matrix-card":`pathfinder-micro-card pathfinder-micro-card-relation obsidian-node-card data-tile obsidian-node-card-${t??"relation"}`;return d.jsx("div",{className:a,"data-pathfinder-micro-card":e,children:n})}const JU=_U,QU={critical:"Critical",high:"High",medium:"Medium",low:"Low",info:"Info",unknown:"Unknown"},Mh={finding:"Finding",category:"Category",defense:"D3FEND",target:"Target",technique:"Technique",tactic:"Tactic"},qy=["#7c3aed","#0f766e","#b45309","#be123c","#1d4ed8","#6d28d9"],Du=(e,t,n)=>Math.min(n,Math.max(t,e)),jh=e=>e.length>44?`${e.slice(0,41).trimEnd()}…`:e,By=vr.finding.width,Uy=vr.finding.height,zy=vr.relation.width,Wy=vr.relation.height,Vy=vr.category.width,Hy=vr.category.height;function fu(e,t,n){if(!e.length)return{x:0,y:0,scale:1};const a=e.map(p=>p.x),i=e.map(p=>p.y),r=Math.min(...a)-170,c=Math.max(...a)+170,l=Math.min(...i)-90,f=Math.max(...i)+90,T=Du(Math.min(t/(c-r),n/(f-l))*.88,.12,1.8);return{x:-((r+c)/2)*T,y:-((l+f)/2)*T,scale:T}}const ez=H.memo(tz);function tz({active:e,onOpenFinding:t,pathSnapshotRequest:n,onPathSnapshotApplied:a}){const i=ca(),{dataset:r,activeSheet:c,activeSheetId:l,activeProfile:f,titleColumn:T,reviews:p,actionOnly:m,facetFilters:g,pathFindingIds:S,search:x,statusFilter:y,setFacetFilter:w,setSelectedRecord:C,setView:k,toggleWorkspace:E,updateReview:O}=i,[N]=H.useState(()=>D6()??JU),[B,A]=H.useState(""),[z,P]=H.useState([]),[K,I]=H.useState(""),[L,le]=H.useState("off"),ue=L==="labels",X=L==="text",[F,re]=H.useState({x:0,y:0,scale:1}),me=GU(F.scale,vr.screenScale.minimum,vr.screenScale.maximum).graphScale,[te,Ce]=H.useState({width:1200,height:720}),[ee,M]=H.useState({}),[Y,Z]=H.useState({}),[J,he]=H.useState([]),[ge,de]=H.useState([]),[fe,ye]=H.useState([]),[qe,ae]=H.useState(),[Ne,Ve]=H.useState(0),tt=H.useRef(null),We=H.useRef(null),Le=H.useRef(""),_e=H.useRef(0),Xe=H.useRef(2100),pt=H.useRef(""),Pt=H.useRef(void 0),Kt=H.useRef(""),Dt=H.useRef(void 0),dt=H.useRef(0),jt=H.useRef(F),Gt=H.useRef(void 0);jt.current=F;const ln=Object.values(p).filter(oe=>oe.include).length,Et=XU(z.length),_t=ue&&F.scale<Et,pe=ue&&!_t,He=bd("deviation"),Je=H.useMemo(()=>l0(c,r,f,p),[f,c,r,p]),rt=H.useMemo(()=>E_(He,N,T,c?.toolId??r?.profileId),[c?.toolId,r?.profileId,N,T,He]),Ye=H.useMemo(()=>BU(rt,N),[rt,N]),mt=H.useMemo(()=>Ye.nodes.map(oe=>oe.id).join("|"),[Ye.nodes]),Qe=H.useMemo(()=>Ye.nodes.map(oe=>({...oe,...ee[oe.id]??{}})),[Ye.nodes,ee]),qt=H.useMemo(()=>Oh(Ye,J),[Ye,J]),ot=H.useMemo(()=>ge.length?new Set(Oh(Ye,ge)):void 0,[ge,Ye]),Pe=H.useMemo(()=>ot?Qe.filter(oe=>ot.has(oe.id)):Qe,[ot,Qe]),Me=H.useMemo(()=>{const oe=[],Ee={};if(!X)return Ee;const ze=[0,-22,22,-44,44,-66,66,-88,88,-110,110,-132,132,-154,154,-176,176,-198,198,-220,220],lt=[...Pe].sort((nt,ut)=>+(nt.kind==="finding")-+(ut.kind==="finding")||nt.y-ut.y);for(const nt of lt){const ut=jh(nt.label),Tt=Math.max(48,Math.min(352,ut.length*8.6)),bt=te.width/2+F.x+nt.x*F.scale,Ea=te.height/2+F.y+nt.y*F.scale,za=nt.radius*F.scale+6,ua=nt.x>0?bt-za-Tt:bt+za,It=ua+Tt,Bt=ze.find(Hn=>{const Jn=Ea+Hn-15,Tn=Jn+20;return Jn>=6&&Tn<=te.height-6&&oe.every(yn=>It+4<=yn.left||ua>=yn.right+4||Tn+3<=yn.top||Jn>=yn.bottom+3)})??0;Ee[nt.id]=Bt,oe.push({left:ua,right:It,top:Ea+Bt-15,bottom:Ea+Bt+5})}return Ee},[F.scale,F.x,F.y,te.height,te.width,Pe,X]),Ke=H.useMemo(()=>new Map(Qe.map(oe=>[oe.id,oe])),[Qe]),st=H.useMemo(()=>new Map(rt.map(oe=>[oe.id,oe])),[rt]),Vt=H.useMemo(()=>{const oe=new Set(Pe.map(It=>It.id)),Ee=K&&oe.has(K)?K:"";if(!pe&&!Ee||!Pe.length)return[];const ze=[...Ke.values()],lt=ze.length?(Math.min(...ze.map(It=>It.x))+Math.max(...ze.map(It=>It.x)))/2:0,nt=ot?18:10,ut=[],Tt=[],bt=[],Ea=Ye.edges.flatMap(It=>{if(!z.includes(It.source)&&!z.includes(It.target))return[];if(ot&&(!ot.has(It.source)||!ot.has(It.target)))return[];const Bt=Ke.get(It.source),Hn=Ke.get(It.target);return Bt&&Hn?[{x1:Bt.x,y1:Bt.y,x2:Hn.x,y2:Hn.y}]:[]}),ua=[...new Set([...pe?z.filter(It=>oe.has(It)):[],...Ee?[Ee]:[]])].sort((It,Bt)=>{const Hn=Y[It]?0:1,Jn=Y[Bt]?0:1;if(Hn!==Jn)return Hn-Jn;if(!ot)return 0;const Tn=Ke.get(It),yn=Ke.get(Bt);return(Tn?.y??0)-(yn?.y??0)||(Tn?.x??0)-(yn?.x??0)});for(const It of ua){if(ot&&!ot.has(It))continue;const Bt=Ke.get(It);if(!Bt)continue;const Hn=Bt.itemId?st.get(Bt.itemId):void 0,Jn=Bt.kind==="category"?Vy:zy,Tn=(Hn?By:Jn)*me,yn=Bt.kind==="category"?Hy:Wy,da=(Hn?Uy:yn)*me,rs=Bt.x<=lt,Fs=Bt.radius+(Hn?12:9),os=rs?Bt.x+Fs:Bt.x-Fs-Tn,Gn=Bt.y-da/2,wi=da+nt,g0=Y[Bt.id],Do=Math.min(8,Math.max(4,Math.ceil(Math.sqrt(ua.length))+2)),Ls=Array.from({length:Do*2+1},(yt,$t)=>{if($t===0)return 0;const fn=Math.ceil($t/2);return($t%2?fn:-fn)*wi}),cs=rs?1:-1,Io=ot?4:3,No=rs?Bt.x-Fs-Tn:Bt.x+Fs,L1=Ls.flatMap(yt=>[...Array.from({length:Io},($t,fn)=>({x:os+cs*fn*(Tn+nt),y:Gn+yt})),...Array.from({length:Io},($t,fn)=>({x:No-cs*fn*(Tn+nt),y:Gn+yt}))]),yr=yt=>ut.every($t=>yt.x+Tn+nt<=$t.left||yt.x>=$t.right+nt||yt.y+da+nt<=$t.top||yt.y>=$t.bottom+nt),Ci=yt=>ze.every($t=>{const fn=$t.radius+8;return yt.x+Tn+fn<=$t.x||yt.x>=$t.x+fn||yt.y+da+fn<=$t.y||yt.y>=$t.y+fn}),Oo=yt=>yr(yt)&&Ci(yt),Sr=r7(Tn,da),Ei=L1.filter(yt=>Math.hypot(yt.x-os,yt.y-Gn)<=Sr),v0=Ei.filter(Oo),x0=yt=>{const $t=Ih(Bt,{x:yt.x,y:yt.y,width:Tn,height:da}),fn={x1:$t.startX,y1:$t.startY,x2:$t.endX,y2:$t.endY},wr=ut.filter(hn=>bp({x:hn.left,y:hn.top},hn.right-hn.left,hn.bottom-hn.top,[fn],2)>0).length,kd=bp(yt,Tn,da,Tt,2),jo=Tt.filter(hn=>Uc(fn.x1,fn.y1,fn.x2,fn.y2,hn.x1,hn.y1,hn.x2,hn.y2)).length,Fo=ze.filter(hn=>hn.id!==Bt.id&&VU(fn,hn.x,hn.y)<=hn.radius+5).length;return(wr+kd)*5e3+Fo*2400+jo*900},Mo=HU(v0.length?v0:Ei,{x:os,y:Gn},Tn,da,Ea,x0)??{x:os,y:Gn},ls=g0?.x??Mo.x,us=g0?.y??Mo.y;ut.push({left:ls,right:ls+Tn,top:us,bottom:us+da});const br=Ih(Bt,{x:ls,y:us,width:Tn,height:da});Tt.push({x1:br.startX,y1:br.startY,x2:br.endX,y2:br.endY}),bt.push({node:Bt,finding:Hn,x:ls,y:us,width:Tn,height:da})}return bt},[Y,Pe,ot,st,Ye.edges,me,K,Ke,z,pe]),Xt=Ke.get(B),Fn=H.useMemo(()=>ZU(Qe,Je,g),[g,Je,Qe]),Sa=f.defaults(c).statusFilter,Zn=!!(x||Object.keys(g).length||y!==Sa||m||S.length),ba=[...z].reverse().find(oe=>Ke.get(oe)?.kind!=="finding")??"",Wn=ge[0]||ba||Fn||(Zn&&Qe.length?zc:""),Ln=Wn?[Wn]:[],Si=Ke.get(Wn),wa=Ln.length>0&&Ln.length===J.length&&Ln.every(oe=>J.includes(oe)),ti=Ke.get(K),Pn=Xt?.itemId?st.get(Xt.itemId):void 0,Vn=Xt??ti,q=Vn?.itemId?st.get(Vn.itemId):void 0,ne=K?[K]:z,V=H.useMemo(()=>{const oe=new Set(z);for(const Ee of Ye.edges)(z.includes(Ee.source)||z.includes(Ee.target))&&(oe.add(Ee.source),oe.add(Ee.target));return{activeNodeIds:[...z],nodeIds:[...oe]}},[Ye.edges,z]),G=Vn?Ye.edges.filter(oe=>oe.source===Vn.id||oe.target===Vn.id).length:0,Q=(oe,Ee)=>{const ze=Dt.current;if(!Ee){const lt=g[oe.facetId]?.values;lt?.length===1&<[0]===oe.value&&w(oe.facetId,null),Dt.current=void 0;return}if(ze&&ze.facetId!==oe.facetId){const lt=g[ze.facetId]?.values;lt?.length===1&<[0]===ze.value&&w(ze.facetId,null)}w(oe.facetId,{values:[oe.value]}),Dt.current=oe},ie=oe=>{const Ee=Ke.get(oe);if(!Ee)return;const ze=z.includes(oe),lt=Ee.kind!=="finding"&&!ge.length?o7(Ee,Je):void 0;lt&&(!ze||L==="labels")&&Q(lt,!ze),P(nt=>{if(L!=="labels")return Ee.kind!=="finding"&&!ge.length&&he([]),le("labels"),A(oe),[oe];const ut=nt.includes(oe),Tt=ut?nt.filter(bt=>bt!==oe):Ee.kind!=="finding"&&!ge.length?[...nt.filter(bt=>Ke.get(bt)?.kind==="finding"),oe]:[...nt,oe];return!ut&&Ee.kind!=="finding"&&!ge.length&&he([]),ut&&!Tt.length&&le("off"),A(bt=>ut?bt===oe?Tt.at(-1)??"":bt:oe),Tt})};H.useEffect(()=>{const oe=tt.current;if(!e||!oe||typeof ResizeObserver>"u")return;const Ee=new ResizeObserver(ze=>{const lt=ze[0]?.contentRect;lt&&Ce(nt=>{const ut=Math.max(1,lt.width),Tt=Math.max(1,lt.height);return nt.width===ut&&nt.height===Tt?nt:{width:ut,height:Tt}})});return Ee.observe(oe),()=>Ee.disconnect()},[e]);const W=H.useCallback(()=>{Gt.current!==void 0&&globalThis.cancelAnimationFrame(Gt.current),Gt.current=void 0},[]),D=H.useCallback((oe,Ee=620)=>{W();const ze=jt.current;if(typeof globalThis.matchMedia=="function"&&globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches){jt.current=oe,re(oe);return}const lt=globalThis.performance.now(),nt=ut=>{const Tt=Du((ut-lt)/Ee,0,1),bt=Tt*Tt*Tt*(Tt*(Tt*6-15)+10),Ea=Math.sin(Math.PI*Tt)*.032,za=Math.exp(Math.log(ze.scale)+(Math.log(oe.scale)-Math.log(ze.scale))*bt),ua={x:ze.x+(oe.x-ze.x)*bt,y:ze.y+(oe.y-ze.y)*bt,scale:za*(1-Ea)};jt.current=ua,re(ua),Tt<1?Gt.current=globalThis.requestAnimationFrame(nt):Gt.current=void 0};Gt.current=globalThis.requestAnimationFrame(nt)},[W]),j=H.useCallback((oe,Ee)=>{re(fu(Pe,oe,Ee))},[Pe]),_=H.useCallback(()=>D(fu(Pe,te.width,te.height),520),[D,te.height,te.width,Pe]);H.useEffect(()=>{M({}),Z({}),P(oe=>oe.filter(Ee=>Ye.nodes.some(ze=>ze.id===Ee))),A(oe=>Ye.nodes.some(Ee=>Ee.id===oe)?oe:""),he(oe=>oe.filter(Ee=>Ee===zc||Ye.nodes.some(ze=>ze.id===Ee))),de(oe=>oe.filter(Ee=>Ee===zc||Ye.nodes.some(ze=>ze.id===Ee)))},[mt]),H.useEffect(()=>{e&&n&&ae(n)},[e,n]),H.useEffect(()=>{if(!e||!qe)return;const oe=new Set(Ye.nodes.map(ze=>ze.id)),Ee=qe.path.activeNodeIds.filter(ze=>oe.has(ze));P(Ee),A(Ee.at(-1)??""),ae(void 0),a?.()},[e,Ye.nodes,mt,a,qe]),H.useEffect(()=>{if(!e||pt.current===mt)return;const oe=globalThis.requestAnimationFrame(()=>{const Ee=tt.current?.getBoundingClientRect();!Ee||Ee.width<=1||Ee.height<=1||(pt.current=mt,Ce({width:Ee.width,height:Ee.height}),j(Ee.width,Ee.height))});return()=>globalThis.cancelAnimationFrame(oe)},[e,j,mt]),H.useEffect(()=>{if(!e)return;const oe=ge.join("|");if(!oe){Kt.current="";return}if(Kt.current===oe)return;Kt.current=oe;const Ee=globalThis.requestAnimationFrame(()=>D(fu(Pe,te.width,te.height),520));return()=>globalThis.cancelAnimationFrame(Ee)},[e,D,te.height,te.width,Pe,ge]),H.useEffect(()=>{if(!e||!Ne||dt.current===Ne)return;dt.current=Ne;const oe=globalThis.requestAnimationFrame(()=>D(fu(Pe,te.width,te.height)));return()=>globalThis.cancelAnimationFrame(oe)},[e,D,te.height,te.width,Pe,Ne]),H.useEffect(()=>{e||W()},[e,W]),H.useEffect(()=>W,[W]);const se=oe=>r&&c?[...H6(oe.record,r.sheets,l),...X6(oe.record,r.sheets),...wd(oe.record,c.toolId??r.profileId)?[]:K6(oe.record)]:[],xe=oe=>Am(oe.record,c?.toolId??r?.profileId),Ae=oe=>fe.find(Ee=>Ee.recordId===oe),Fe=oe=>ye(Ee=>Ee.map(ze=>ze.recordId===oe?{...ze,zIndex:++Xe.current}:ze)),Oe=oe=>{if(Ae(oe.id))return ye(lt=>lt.filter(nt=>nt.recordId!==oe.id));const Ee=se(oe);if(!Ee.length&&!xe(oe).length)return;const ze=Ee.reduce((lt,nt)=>lt+nt.analysis.records.length,0);ye(lt=>[...lt,{recordId:oe.id,toolId:oa(oe.record,c?.toolId??r?.profileId),title:Ee.length?`Results (${ze.toLocaleString("en-US")}) – ${oe.title}`:`Result – ${oe.title}`,color:qy[_e.current++%qy.length],zIndex:++Xe.current,minimized:!1}])},Ue=oe=>{C(oe.id),k("records"),t()},Ge=oe=>{const Ee=jt.current;D({...Ee,scale:Du(Ee.scale*oe,.08,4)},280)},kt=()=>{const oe=jt.current;D({...oe,scale:Math.max(oe.scale,Et+.04)},360)},Be=oe=>{oe.preventDefault(),W();const Ee=oe.currentTarget.getBoundingClientRect(),ze=Du(F.scale*Math.exp(-oe.deltaY*.0012),.08,4),lt=oe.clientX-Ee.left-te.width/2,nt=oe.clientY-Ee.top-te.height/2,ut=(lt-F.x)/F.scale,Tt=(nt-F.y)/F.scale;re({x:lt-ut*ze,y:nt-Tt*ze,scale:ze})},ct=oe=>{oe.button===0&&(W(),oe.currentTarget.setPointerCapture(oe.pointerId),We.current={kind:"pan",pointerId:oe.pointerId,moved:!1,startX:oe.clientX,startY:oe.clientY,camera:F})},St=(oe,Ee)=>{if(oe.button!==0)return;W(),oe.stopPropagation(),oe.currentTarget.setPointerCapture(oe.pointerId);const ze=Vt.find(lt=>lt.node.id===Ee.id);We.current={kind:"node",pointerId:oe.pointerId,moved:!1,nodeId:Ee.id,startX:oe.clientX,startY:oe.clientY,camera:F,nodeStart:{x:Ee.x,y:Ee.y},cardStart:ze?{x:ze.x,y:ze.y}:void 0}},kn=(oe,Ee)=>{oe.stopPropagation(),!(oe.button!==0||oe.target.closest("button, a, input, select, textarea"))&&(W(),oe.currentTarget.setPointerCapture(oe.pointerId),A(Ee.node.id),We.current={kind:"card",pointerId:oe.pointerId,moved:!1,nodeId:Ee.node.id,startX:oe.clientX,startY:oe.clientY,camera:F,nodeStart:{x:Ee.node.x,y:Ee.node.y},cardStart:{x:Ee.x,y:Ee.y}})},ni=oe=>{const Ee=We.current;if(!Ee||Ee.pointerId!==oe.pointerId)return;const ze=oe.clientX-Ee.startX,lt=oe.clientY-Ee.startY;if(Math.hypot(ze,lt)>3&&(Ee.moved=!0),Ee.kind==="pan")re({...Ee.camera,x:Ee.camera.x+ze,y:Ee.camera.y+lt});else if(Ee.nodeId&&Ee.nodeStart){const nt=ze/Ee.camera.scale,ut=lt/Ee.camera.scale;M(Tt=>({...Tt,[Ee.nodeId]:{x:Ee.nodeStart.x+nt,y:Ee.nodeStart.y+ut}})),Ee.cardStart&&Z(Tt=>({...Tt,[Ee.nodeId]:{x:Ee.cardStart.x+nt,y:Ee.cardStart.y+ut}}))}},Ca=oe=>{const Ee=We.current;!Ee||Ee.pointerId!==oe.pointerId||(Ee.kind==="node"&&Ee.nodeId&&!Ee.moved&&ie(Ee.nodeId),Ee.kind==="card"&&Ee.nodeId&&Ee.moved&&(Le.current=Ee.nodeId,globalThis.setTimeout(()=>{Le.current===Ee.nodeId&&(Le.current="")},0)),We.current=null)},ss=()=>{Ln.length&&he(wa?[]:[...Ln])},la=()=>{if(!Ln.length)return;const oe=Oh(Ye,Ln);oe.length&&(Pt.current={camera:jt.current,pinnedNodeIds:z,selectedNodeId:B,displayMode:L,markedSelectionIds:J},P(oe),le("labels"),he([...Ln]),de([...Ln]))},m0=()=>{de([]);const oe=Pt.current;Pt.current=void 0,oe&&(D(oe.camera,520),P(oe.pinnedNodeIds),A(oe.selectedNodeId),le(oe.displayMode),he(oe.markedSelectionIds))},bi=()=>{P([]),A(""),I(""),he([]),de([]),M({}),Z({}),le("off"),Pt.current=void 0,Kt.current="",Ve(oe=>oe+1)};return d.jsxs("div",{className:"obsidian-graph","data-testid":"obsidian-graph",children:[d.jsxs("div",{className:"obsidian-graph-layout",children:[d.jsxs("aside",{className:"obsidian-graph-filter-panel","aria-label":"Shared Work and Graph filters",children:[d.jsxs("header",{children:[d.jsx("strong",{children:"Filters"}),d.jsxs("span",{children:[rt.length.toLocaleString("en-US")," findings"]})]}),d.jsxs("div",{className:"obsidian-graph-filter-scroll",children:[d.jsxs("section",{className:"obsidian-graph-filter-section",children:[d.jsx("span",{className:"obsidian-panel-label",children:"Search"}),d.jsx(P6,{})]}),d.jsx(_6,{hiddenFacetLabels:s7}),d.jsxs("section",{className:"obsidian-graph-workspace-tools","aria-label":"Workspace and snapshots",children:[d.jsxs("label",{className:"obsidian-graph-workspace-check",children:[d.jsx("input",{type:"checkbox",checked:m,disabled:!ln,onChange:()=>E()}),d.jsx("span",{children:"My Workspace"})]}),d.jsx(i7,{mode:"path",path:V,onApplyPathSnapshot:oe=>oe.path&&ae({id:oe.id,path:oe.path})})]})]})]}),d.jsxs("section",{className:"obsidian-graph-stage","aria-label":"Graph workspace",children:[d.jsxs("div",{className:"obsidian-graph-toolbar","aria-label":"Graph controls",children:[d.jsx("button",{className:`btn${L==="off"?" active":""}`,type:"button","aria-pressed":L==="off",title:"Hide labels and node text",onClick:()=>le("off"),children:"Off"}),d.jsx("button",{className:`btn${ue?" active":""}`,type:"button","aria-pressed":ue,title:"Show or hide the currently selected node cards",onClick:()=>le(ue?"off":"labels"),children:"Labels"}),d.jsx("button",{className:`btn${X?" active":""}`,type:"button","aria-pressed":X,title:"Show node text",onClick:()=>le("text"),children:"Text"}),d.jsxs("button",{className:"btn obsidian-graph-reset-view",type:"button",title:"Clear all marked nodes and restore the default graph view",onClick:bi,children:[d.jsx("span",{"aria-hidden":"true",children:"○"}),"Reset view"]}),d.jsxs("span",{className:"obsidian-graph-count",children:[Pe.length.toLocaleString("en-US")," nodes · ",Ye.edges.filter(oe=>!ot||ot.has(oe.source)&&ot.has(oe.target)).length.toLocaleString("en-US")," links"]}),d.jsxs("div",{className:"obsidian-graph-branch-actions",role:"group","aria-label":"Selected graph branch actions",children:[d.jsx("span",{children:Si?Mh[Si.kind]:Wn===zc?"Filters":"Selection"}),d.jsx("button",{className:`btn${wa?" active":""}`,type:"button",disabled:!Ln.length,"aria-pressed":wa,onClick:ss,children:wa?"Unmark all":"Mark all"}),d.jsx("button",{className:`btn${ge.length?" active":""}`,type:"button",disabled:!Ln.length,"aria-pressed":!!ge.length,onClick:ge.length?m0:la,children:ge.length?"Exit extract":"Extract"})]})]}),d.jsxs("div",{className:"obsidian-graph-zoom","aria-label":"Zoom controls",children:[d.jsx("button",{type:"button",onClick:()=>Ge(1.2),title:"Zoom in","aria-label":"Zoom in",children:"+"}),d.jsx("button",{type:"button",onClick:_,title:"Fit graph","aria-label":"Fit graph",children:"◎"}),d.jsx("button",{type:"button",onClick:()=>Ge(1/1.2),title:"Zoom out","aria-label":"Zoom out",children:"−"})]}),d.jsx("svg",{ref:tt,className:"obsidian-graph-surface",role:"img","aria-label":"Interactive network of deviation findings, categories, targets, MITRE techniques, tactics and D3FEND mappings",onWheel:Be,onPointerDown:ct,onPointerMove:ni,onPointerUp:Ca,onPointerCancel:Ca,children:d.jsxs("g",{transform:`translate(${te.width/2+F.x} ${te.height/2+F.y}) scale(${F.scale})`,children:[d.jsx("g",{className:"obsidian-graph-edges","aria-hidden":"true",children:Ye.edges.map(oe=>{const Ee=Ke.get(oe.source),ze=Ke.get(oe.target);if(ot&&(!ot.has(oe.source)||!ot.has(oe.target)))return null;const lt=ne.includes(oe.source)||ne.includes(oe.target),nt=qt.includes(oe.source)&&qt.includes(oe.target),ut=qt.length>0&&!nt&&!lt,Tt=!qt.length&&z.length>0&&!z.includes(oe.source)&&!z.includes(oe.target);return Ee&&ze?d.jsx("line",{className:`obsidian-edge-${oe.kind}${lt?" is-direct-path":""}${nt?" is-branch-path":""}${ut?" is-branch-muted":""}${Tt?" is-selection-muted":""}`,x1:Ee.x,y1:Ee.y,x2:ze.x,y2:ze.y},oe.id):null})}),d.jsx("g",{className:"obsidian-graph-card-connectors","aria-hidden":"true",children:Vt.map(oe=>{const Ee=Ih(oe.node,oe);return d.jsxs("g",{children:[d.jsx("line",{className:"obsidian-card-connector-backdrop",x1:Ee.startX,y1:Ee.startY,x2:Ee.endX,y2:Ee.endY}),d.jsx("line",{className:"obsidian-card-connector",x1:Ee.startX,y1:Ee.startY,x2:Ee.endX,y2:Ee.endY}),d.jsx("circle",{className:"obsidian-card-connector-anchor",cx:Ee.endX,cy:Ee.endY,r:2.5})]},`connector:${oe.node.id}`)})}),d.jsx("g",{className:"obsidian-graph-nodes",children:Pe.map(oe=>{const Ee=z.includes(oe.id),ze=qt.includes(oe.id),lt=qt.length>0&&!ze&&!Ee,nt=!qt.length&&z.length>0&&!Ee,ut=oe.x>0,Tt=Me[oe.id]??0,bt=jh(oe.label),Ea=te.width/2+F.x+oe.x*F.scale,za=te.height/2+F.y+oe.y*F.scale,ua=Math.max(32,bt.length*7.2),It=Ea+(ut?-1:1)*(oe.radius*F.scale+6),Bt=ut?It-ua:It,Hn=ut?It:It+ua,Jn=za+Tt-15,Tn=za+Tt+5,yn=6,da=Ea>=yn&&Ea<=te.width-yn&&za>=yn&&za<=te.height-yn,rs=Bt>=yn&&Hn<=te.width-yn&&Jn>=yn&&Tn<=te.height-yn,Fs=X&&da&&rs,os=oe.itemId?st.get(oe.itemId):void 0;return d.jsxs("g",{className:`obsidian-node obsidian-node-${oe.kind}${oe.severity?` severity-${oe.severity}`:""}${Ee?" is-selected":""}${ze?" is-branch-marked":""}${lt?" is-branch-muted":""}${nt?" is-selection-muted":""}`,transform:`translate(${oe.x} ${oe.y})`,tabIndex:0,role:"button","aria-pressed":Ee,"aria-label":oe.label,onPointerDown:Gn=>St(Gn,oe),onPointerEnter:()=>I(oe.id),onPointerLeave:()=>I(Gn=>Gn===oe.id?"":Gn),onDoubleClick:()=>os&&Ue(os),onKeyDown:Gn=>{(Gn.key==="Enter"||Gn.key===" ")&&ie(oe.id)},children:[ze&&!Ee&&d.jsx("circle",{className:"obsidian-node-branch-ring",r:oe.radius+4}),Ee&&d.jsx("circle",{className:"obsidian-node-selection-ring",r:oe.radius+5}),oe.kind!=="finding"&&d.jsx("circle",{className:"obsidian-node-role-ring",r:oe.radius+4}),d.jsx("circle",{className:"obsidian-node-core",r:oe.radius}),Fs&&d.jsx("g",{transform:`scale(${1/F.scale})`,children:d.jsx("text",{className:"obsidian-node-inline-label",x:(ut?-1:1)*(oe.radius*F.scale+6),y:Tt+4,textAnchor:ut?"end":"start",children:bt})})]},oe.id)})}),d.jsx("g",{className:"obsidian-graph-cards",children:Vt.map(oe=>{const{node:Ee,finding:ze,x:lt,y:nt}=oe,ut=ze?By:Ee.kind==="category"?Vy:zy,Tt=ze?Uy:Ee.kind==="category"?Hy:Wy;return d.jsx("g",{className:"obsidian-graph-card is-selected",transform:`translate(${lt} ${nt}) scale(${me})`,children:d.jsx("foreignObject",{className:`obsidian-node-card-wrap${ze?" obsidian-node-matrix-card-wrap":""}`,x:0,y:0,width:ut,height:Tt,onPointerDown:bt=>kn(bt,oe),onClickCapture:bt=>{Le.current===Ee.id&&(Le.current="",bt.preventDefault(),bt.stopPropagation())},children:ze?d.jsx(_y,{variant:"finding",children:d.jsx(W6,{record:ze.record,title:ze.title,bookmarked:!!p[ze.id]?.include,resultColor:Ae(ze.id)?.color,toolId:c?.toolId??r?.profileId,onOpen:()=>ie(Ee.id),onBookmark:()=>O(ze.id,{include:!p[ze.id]?.include}),onResults:se(ze).length||xe(ze).length?()=>Oe(ze):void 0})}):d.jsxs(_y,{variant:"relation",relationKind:Ee.kind,children:[d.jsx("span",{className:"data-tile-hex","aria-hidden":"true"}),d.jsxs("div",{className:"data-tile-content",children:[d.jsx("h3",{children:jh(Ee.label)}),d.jsx("div",{className:"data-tile-badges",children:d.jsx("span",{className:"reader-severity",children:Mh[Ee.kind]})})]})]})})},`card:${Ee.id}`)})})]})}),_t&&d.jsxs("button",{className:"obsidian-graph-card-zoom-hint",type:"button",onClick:kt,children:["Zoom in to show ",z.length.toLocaleString("en-US")," labels"]}),!Qe.length&&d.jsxs("div",{className:"obsidian-graph-empty",children:[d.jsx("strong",{children:"No matching graph nodes."}),d.jsx("span",{children:"Change the shared filters or open a scan with MITRE mappings."})]})]}),d.jsxs("aside",{className:`obsidian-graph-inspector${Xt?" is-pinned":""}`,"aria-live":"polite",children:[d.jsxs("header",{children:[d.jsx("strong",{children:"Details"}),Xt&&d.jsx("button",{className:"obsidian-inspector-close",type:"button",onClick:()=>ie(Xt.id),"aria-label":"Close details",children:"×"})]}),Vn?d.jsxs("div",{className:"obsidian-graph-inspector-content",children:[d.jsx("small",{children:Mh[Vn.kind]}),d.jsx("strong",{children:Vn.label}),d.jsx("span",{children:Xt?`${G} direct connections`:"Click the node to keep these details open"}),q&&d.jsx(d.Fragment,{children:d.jsxs("dl",{children:[d.jsxs("div",{children:[d.jsx("dt",{children:"Severity"}),d.jsx("dd",{children:QU[q.severity]})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Mapping"}),d.jsx("dd",{children:q.mappingOrigin})]}),d.jsxs("div",{children:[d.jsx("dt",{children:"Risk"}),d.jsx("dd",{children:Math.round(q.risk)})]})]})}),Pn&&d.jsx(d.Fragment,{children:d.jsxs("div",{className:"obsidian-graph-inspector-actions",children:[d.jsx("button",{className:"btn primary",type:"button",onClick:()=>Ue(Pn),children:"Open in Work"}),d.jsx("button",{className:"btn",type:"button",disabled:!se(Pn).length&&!xe(Pn).length,onClick:()=>Oe(Pn),children:"Results"}),d.jsx("button",{className:`btn${p[Pn.id]?.include?" active":""}`,type:"button",onClick:()=>O(Pn.id,{include:!p[Pn.id]?.include}),children:p[Pn.id]?.include?"In Workspace":"Add to Workspace"})]})})]}):d.jsxs("div",{className:"obsidian-graph-inspector-empty",children:[d.jsx("strong",{children:"Select a node"}),d.jsx("span",{children:"Hover for a preview or click to keep details and actions visible."})]})]})]}),fe.map((oe,Ee)=>{if(oe.minimized&&fe.some(ut=>!ut.minimized))return null;const ze=rt.find(ut=>ut.id===oe.recordId),lt=ze?se(ze):[],nt=ze?xe(ze):[];return d.jsx(n7,{id:`graph-results-${oe.recordId}`,title:oe.title,sheets:lt,toolId:oe.toolId,sections:nt,color:oe.color,zIndex:oe.zIndex,offset:Ee*24,search:x,onActivate:()=>Fe(oe.recordId),onClose:()=>ye(ut=>ut.filter(Tt=>Tt.recordId!==oe.recordId)),onOpenRecord:ze?()=>Ue(ze):void 0,actionLabel:"To Report",actionTitle:"Jump to this finding’s record in the Report",minimized:oe.minimized,onToggleMinimize:()=>ye(ut=>ut.map(Tt=>Tt.recordId===oe.recordId?{...Tt,minimized:!Tt.minimized}:Tt))},oe.recordId)})]})}const nz="data:font/woff2;base64,d09GMgABAAAAALyAABUAAAAB4CAAALwFAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoZeG4KyRBzVcD9IVkFSi2k/TVZBUl4GYD9TVEFUgU4nJgCFNi9sEQgKgbtAgaEUC4gOADCCnD4BNgIkA5AYBCAFhi4HoQQMB1tzzZFCvBvP7u3DbGpQpdsQgMqps1L7r3ADN3ekcLpSd3VjDvdRxlSwXT24HeDivrPV7P/////PTiZjjG6zbhuAgIaVWf//oFG6m0fKpZa1GtEM3hHeiRiGTOHDNEtW1uphm9xD8Yfsc845xSOllI6MZ0bgBa6OXQbsGPkQKYlQqD3X9YVVvH2KntB6YJwvZMXkp+C5yraOrUrG4lPZsKGIy79I0v3UzBZt9SM6yqcJLyKfWogpGCTMhFHtxxQ74e+iXfmlkqJiNbeKZ4KLcfByGbnFit+pfrn4okou/l1zuyzDbEtoImSSXDLgSfrNakEiSjNkyuNXIhj2Rtg8HXFaJ1HMmcuGV+Se8CUCw/bq3NAqMQ78EUkhmkVBNNkIe66aFY24EF5FxJKmvYhLeZu+817KeHDRANVOdSZTE0mx05wGy3iIsAUf0f92lq9M9/vv/v/fb8Oa8yVqT0nuI2nTGlyeDouviNs9inRBSSqDf7jIJKu0nX6r99J6jx/12cSUdscJp/KxG3QT7RY/9SEwOBbgQ6oeY7Wz9aQv/8DXVf25LyKzMVb1gPyyV/Vl7QRt6Yojsq2qemYjy5LWBREQDCugh4gIihyuKEEw4qrLEgyHmBCRJ4m6LkFU2IMVOZKIiIiYOEQeMxhxWTBhSKjoeZiRLHLKDI9u9i8BQgghYQQIEEKYUxQFUXDWDq/aau0aNzrutm2vd78V8cbevb39PbuWZ+c8x6yKiPAv2cH/SXIzsw/6FFq5J1BCrkRshmBunSgGwlBJAxEEpGLApFwUq2DBGCNGjNwYg41Bb8RokWEBgmRpAypG/w8j8yOHxzn7l6YGDJgwUT8nKWxnYvunm0dKKkBbSk3TVKjTFqliMpggPjnuPrMz5WTD46b9o6Xicz8RK9tuu7tvrowTla6+VY2ikiAhJBCHQEhQ+fE36//kJECQUp/ObldcunvvM5Mvk9KrX8/F1mREaYECwcJRbVYVmlQxSMieub9uWxgmi8RIlphMT53AF76nKsiZ0PP9fv+5+lz6NKMTYVIxFkhYYhkun/JxgkCrUW8HgAHfZv5wV/Vceo2IEwFWEZPFfBFfSpOnX/qnojXxvfbOns7sUMptOJJCQsyoiP+evOentnLVv/qvc+q3CjpUOcAOsAPo0KMDOG0kq58AOljNltFOGB3g1Wk39AQ+xS8O8/f2tb0KFOBgKOMZL1U4wNeMYxxsv9E/WGcJZSGtFOEB7fTCvnubsV0HO3elSVt20/zFnBLJeSx2SYRDOIxGqPU8RgJPuF85+HmvCAoloAW0qpnN1ZoqVyeaB86JTwag9vO2+U4T8Oqd45RC8P1TgDARxX5JhfAg1M6n8RC/Vvnq03CY1Bm5s2EdFWWiq64nQELabXh/W6ELYrD0KGN/dy8Pnu/Hfp2LS/+ZITNElUYJRCp+/sOmQ9KI727UZhKaaVN7/e7eDp/n+d+v37nET/Jmln+chL03c1EfaZBcszZCIc/qeKRSqXhopLsRZGxnVCgYOdkLjTA1U75J7ShGrq85AEUWC04hNRKJJLmkXTYEEomQ8r+0uDorErLq35tqlf7X/UE2WrcsAJTp9U2t+1gLaU0MqaVZ41x+cQMQBkADJJuQWQAUZ5qUa1DDuQ+InAHJZa0akKHIcZY6Z9YY8wFKdS1K2mqRMqDWUVqrUnbWcM6a7C6zNrq66C4zNr4ssjYyPojyi6Pjefzlp9RXxx159GynISsw0ICMHEp2x2Pw96b1UZBRSilwUsStMGYtS6mEg8D//99rmnf3+uukV5OABjjgrdyfaZX/GqqAo8FB7AajPvD/7zSjunpyTr4H5QwKTbZUzt32yPZI6ZV5thZAFtEQuADh/f911tvqzrOO7GXtnH/GIfAnLBpDCGY3XSO9J83T05VsztrWeHDh27OzhAFr7M2RvfsBePIrxNn5wHj6cAVUp0pR5vRY/roO9m3aOvn/177VnXUPkU5IYt5onA5zd7hriHv0O/Lfmgs9U/Obh31IYl9QSfDwdtNuh0l/yQPCLsqCk7aAsgDwYxiG8fBxpbpvArSA3xLRKu3+nj/HSTuhYmYplrUe1IK1ZgUs8T+3urfPITbBbEhpWMR1wRYNLUqgLqa70lw8win+AxOkGc4hlEASFBLH+49zadu+ZpCODzJQKCd86ya/PCUX6OUgf4wKWKid69xkIaJpe8B9qYqXCivJzm0ubT+U1oRC5aKSEw4lgX+3l0fPDZgfC5PyJkVCCRLKvuc7UfJ5cruT7hDMYYIwRgghjAhp8O20fw2wgOmSf4buq3WCi1asL3tb8RLoYXGaTkRUytALu8f1t7tllNFh3+45Z+eWItkgUkSCpEEkc96Gae8EDyDdH9wnQUTEfiJHkJK653clm/QYm6mDz3L/exsG6IGkubz2yz5bg5njsnzHHhc5yjCOQwi22FGChFCOu19raU01dtpuYNXfAVGAH//IzvUXirFP/zv0Q8D3EOZgGihbNVTjCfTMK6jNIPTLEIwgAYxGFmACFAAmRAPARuKCGssWlDdc2DyUMI2KsDy6sEKGsCLmsBN8YacEwy5JhdXJhGnZouoghXXxouoTRkEEOBywO8ROy8zCKiUMYc0hGE+IBuOEgNsD1wcOJoEIBF76FNWvW8a/lWR8cpnwualV31D+g2XPb5YWzMFgE7wQfBUMiAAtzk8QD+7nLDCA3lr4ji7Q0qn9RVPfxlPKpM8205pLNKVuzXBniJpTlqg1ZdfZU/aMPWcvOFOuBXdyD+4UPAq33uSd+lb9t8irUghIFrgw8DAwDcQDKXQVA6xiA76MZ3wdZ3wa3iH+iPoCy31ii6hEQwzkY+RO0pNIrpNMfZQeJVCdlEEt0/+7SXv0Ns2MY4CpgemcrGjJK78i7vGxxvmOODaaYWbamPJQnJtgIt/rscV78eCP0M1GjQYdDqZhIlT0WSxeGk/pWQTGRLq5+prRdZ7EK3o6H/HJP8evCCaCIlCCYqAMR8LTUXtpI4gcpSOKxiNzFIqiMRoXY18ci6sEKq5NYklxEk9K02jmy6JZLItnVXm2SAtSnC+F5TtDRXQUU8xxchFpgJhMk5PSKJJ8aL2HUzy/nXlm2SqXxJZqrCGVy6mfFiVVRSGVVMuyZ9nHwjaTLVjWQfh/hK6gxvV3VUAXZJKUlpW3vMpRFQwnG7V6g83hhLwIiocIima5KB8TEqnBcRiJNC8IzFTdMC27WqfUes5ktjndvmisUmmtDVyBVLUGRD7VFYArSUHATgtlo6/1tt4Ol3u2+Bzs78vHs7B/UKRagDk+YCkBDFQJthOPcYcHfsUXMHXRbL/LZVg/OJt/7eaAsMTJdXMrUCuaLVhf/OXV7+irnJ6SCbEZgvAh3KOsYL642IdjkXJko4KjRshppO/9pI0aLFZX/N3DQxmbYOrjAT/79NOaeBWf88J2dwlitElg8r0ECXjeIqwTKkUDwaLg1SoH/uKvY/3gQ1Jj/KofmAvXXbL1+8nCn5e5j892isPgkDd8ZkN5u5fmmZMfahGqutcXnayYN6Xlw7NN46XUvlhu/lkVUl4w6XzysiO8fH1cuNCuSZWVv9ZVTS+k+kVz5S7r51DS4q660uy2speX4DLhin0E4kVJOLZoghXZU45b4SfhYo16VZcnHEuoYBwSe8U/L7TkdFxRq3AynWlNrRJqQDY4PozgA4ujA+sl2EOsrGNGbbHa8ztEtUG3WmuF0y1o9gyHOWSHaaOsAYlirvCmQIek0+zdqluzo9oDXSOVJOIzZTZrtuAKki0Ey0Jyq6qC6W5ShKjhtLwfszlR1u3ymUIhKYygjxZqQ4jMGiI2CNcgAINtsTVYRD/aUY8KyD1kZiJYQNsZWkIoN7igBUYGO9Zou9rQk93ZNa1qSYs6qkkd1s6WZ6sKE2/c3KwZwlBgE8R4k8A00o6++ED2lLdfLdw8l8oR0FH2KW0rQ6JMDtnNrdmNj9qDjG5iirnc7F7sBrIQbhOS1MFtX25g2/amFoBFyeuvIjZPbtqe1M32bnRTf937nIaxN4kJ5TOiRLYrigtKw+H1am3avnke0G78iZN8myoQtVa5xM5H+Y3Ss2tTnuRoW1HluNqHxXKYBEt4KHvBRmA5ra0eV8rpJ7Ku1z4/dxP/WD84MxS8hdi6vlhiVlQ1SmM4NbDTp/Y+P0MDWzmXZsbp6MnxvBiixZJn8AVb1/yMN2qWBjceS2pDo+krl0JvY7aXv1IL3nzP7UIcPB0/pF3dBK/eaL/t9Fgl+MJOxLV8FidqeKb5sgUXi2Ot2sTGU2edj3EKowZ2/CXvfrUN7TX56J6+XVybPM3erX/zkdzIzXeU6Fbfrw+u/mgcvhq6kPeVjfTS/UssNRSqoytJDzOtCE0aQuuJWz+4D1UrijRM/6Rw1XK8lao/8nSKlKSaeCgTB60KK5/2W/0puNbqSX7BuypUrxpl008XHRNfAtSUojuQPnMTOGmMap1HB/82N59DGUNsnD38aynt8URUd5jmY9TUGKH8q79vOzz69ttFvtdEbrzpfgc5ISzXY1pc7RCRT2y9SpMIrprR4vbHskEuxmTEa9Pt+TkKl7f2V0+8ZXu2/YeS2z02tq9o1pcn9upFSdPGO0Atn+Ewl1J8+ZkWS8R7c9OH7c+evtcOvo0VCnUOd+VLBrVyEpIX+5ph8Oaz12NYUkcWaK0ylwpZS00NzpJtp8Yt0enZiE/YZ7eSGujCfomrOdrze0U1VNUNbSEg6sn18wtRzG8QqEpthNNA1/v8GxBqhJS6NbEkO6yu696019d8GTJlPVxLtf75fzk/C7g+t3XWw2xo868ziOzl09OJDeBpHJXQlViH8EnQ/LVoO7cLwUZNk3V/ik2xJooyeCyJyzjrbxct1CyXtGtbLfLaUaHo9JeGqR58x+eNhyeib2qFKF1lLIksUriemEI5rZ9lJJGe04GUa0G346ZLHWFfLLIax3C1/iSXCgBNDwWpF9RQZmK1k1orduRjd8YVu7tbYluu6376eFLW00N8dlUnT5Yac6uSqE752qObLFAqqSuJLEIfrk/Uw0mbnh+4XnPxZTOgz3/F4/hkVd5Ivx7gEiVatx2fVLvY4QvjfA5L3OXfL3lTcbkiHtVcy/qh/sgdXe6IulA5HYYzG21vsPCN+5NBEzlJnWLNb9sbKbCnfOwD91cOrYRlDqbqRCw5ikQ/f+06f47Hz2Y0f/q0rdS9edC0PQIddCYbMMVPtLoQzf96srbYp9LOs7a3QXQ9AZL11duq3PWE7pLCA8/06vfdjw5eRvhJrR8qASnBJXaJu4d3DfGLdmADD7i5AzfgYk6eDsVLbyDak1/S8EVIyZ3KPMue9MKnzxrxj3wlVDFvedMZfOd5nNQy5UUHfxIVZZWnU5iluWj4MsWfJSRC96du732sBlKbqpzkkjQSp4R/dkuFt6ELiA1UnyEyl+pX2uFxsgZSm6occkla8rje8FhIpKkdF2sDO+sXyKB9KoXU0i7Ir7F1VZwunWqzy4sB6fCjSMQPhGEh5vpwty1uYThoAXqeC0G4NIlRVnVCJX1db50yVyJcX4AiFK9XV9ehnx/1HI/VMsvSJI/xYf26hnnkXUuhZnhiqVArLcVqi3MhO3PMwPew1GNQ38blrmMJO7ElUR2F3APuZfyiF6niEsEaBMvLrBKofzlTkSa/SvrBPIXY4QGJGn2oN34J/aAUxJ/Hq0Gc9uF3/FvJEinZqrPY24VM9FXO61tdJiyRawzTfx4A5TJD2fjoiHkUWBfuHdBKhp4A0TSrwI9BG7imK2ZdQhPfWNOAH4JYh7a3EqkdfhaKYbwyDqVEE0z+grfBACEA9iYjNkyIhLM5xmuUwV8WjSTZcqTIUy1NjfFCKZe4SZO3jxH/MKn+7RME1ii9eEF/MZc+Inz9CUN8YGL+858LQrVemvSwxts8whDvuDvz30QIjCNfMBvs+plhgPF84nj7hGD8/P6Duj0ji0M/6Dq9t8LeRCMlKnwXNiSPbxNsk4tzvGycPaA4m31YBvc5jKOextkmH+doQRz0MXvI5kovrqX/pLhi/L5n5lbGvHy6uSQWf9YsLqg7lPnZxfEGQqlVfcvbhvPibczl4byyl6TURW9rMWy5oujdtXpaMkkgF83nwXtO17Z9uw7BpYVugztrH3TFcRgZaFSQ+K2zvey4ncSllPDIzbmQeAb7ONvzZJzIt/C7lLHjozQDPIPlJVFUC0kXh+9GYTGkFTVb8QsODq1sKZdtc6VU2md8xJxEbxP8OzJOh6XGdzAGHpYjOy215rT2s5E45nUrWoPgN5iuFtUfU3CvGmc2NnY+8b+v67tw6J8MYC+TQC6LNDgfOK6OyuubEglkg1TDwtvR5heOPe0HnjbpldAWCI6kPGGliT/KOuBFgBptoXqfhzPwhTV38B8KWXf/rTZfhuOobHTWj6N54UTtyV7+8a+bhR1shsosivZ4HkFbUl7IMGxxznXMP4H1Tz7iN87iKYfT3/ez4LET6FTAOP/NfbkQ29XmFZac6wtaUq0mnX0365eqUrs0Ky07Nd9vWpPylCSmNqaYEczVZK5FOV8r38b6pcdxd9AfJlDMSDXFt9P5T/Ij2439IaPu7E+t7+EEBl82Wb0mArDXy62Jjlk9zknVr29ymnQNNk65Hd5vlrGBiod6wM1GiRstvLGSZPsY0RTFkXkiZtosZNN190Y1F7ud5uH250KCxrVUcnatkZFTt5Ln0gaFudeCalbV5PnVYtKiWhkKaB9aVrvkHVBg3UmKBngLahiFNPWh0I5JtjwDbyt7imk1dGfzZdRWZs+oO+qq7l6ujAn/HBaWXmyXitFykyACjOMB8/hgQgIwMgSIQoFxImAX1mFMTQqU5QfnIhLUVMVvmqDcBDddUO7i5ymjymVWpYT5SNgcCfMTO5nG1yCqZRpVk7Ag0QULWy66FdJrZRKvVRLiF0YrYjXxm3DJcVsvPU4bZcUqSmGbJe4OmXanxN0l0zYkkRIowxIR3VZh20TaLkzVrOxIQmwpiC5V2M6WRRrRfQ9p+mUgOrWsekzsMmXYEz193ofhC7LsBf3Wi7LpJY3rZZn0ikb0mqx7XcN6s9k6Ng773lZvLNiVAYv7S+qEhD2DRuhcfo1hQ8gUxdawDmfW2FeGJdbzYJoJUGhRrleWC/O7Mgsm/qhlFdAZwoeNqoLNUBzvaRr8wjWjVwT5z+fj5hJuuezPx5XDewnjCH18evTx8cJ+IyO6TZQGI1gYwWLluoTl2/zeYbaE05VNBghrAiIGKCPZYxldswxnx5yEGWNWRqVSNemwir0DvHcHFcC+Vbz3co1y+te4D7SX4sre/pwyuaIs5cGRcRBSyEEu8nAJzqd/ZlVFRc8nIBKQvkXZ6zql4MaC232q6cD+gH02CcwVzBRcn88N5v002Q1LSi7jwGVDBgqsCjNmBYVaNmG4WhLqNgZl4w3tYKIbvAhbktftnKDjMP/c8EGS1Uw38xLBDb6VPbjhwYAN+QtbNqdv51BzcPujQdUHt9vAa/3wDa1aSz3rRgmjcjF39ZkJlMi6gz4U3Gj3Jek9WeMAnKdbSDEBuO13ascxQZ5o4PBep6Mk9J6z7xHyydttY4KG/DnDKEECnY4rQY1q3nGHy56D59JQQhZO1RRwbT2cIYmAQyTuUIZ6sVg2harDcwhlysnI2QU1MHjFQK+OLXGhN8MxMqZCOjixT9+DkGYMJ06H/MsomDkczIxOYMFl1PGKL9lypvcN9fToRNQbhGRsNVW3yV9azlfoeMw6Z4hBgMKUsL1efIVcGJPYo/P6XyzxKExW4NJ1zvWlO5H7YfV388YBN4BBFq/Z6/+T1U7o+aGi47HjMF/q0ssDuuqxcX1+PFbdDLn1KrxYvY3Fj+qJ8PbCasXgtbBuoETciI94trWeFn3bB9ov+O7TMbcj131VxT1Thgd8/SbkOkBC8bVLso1aWNbM4+q/42eexXayLcW7JYNQAWM/0WxL2ZNk5d7jvizh5Vm1uNavGZ1tHFcu4q9H/xHsv9373c48He9WxN6+q81XeHVdzi6faj05BekBdmYnHlfacjnwjM06bdiXVtxqz8u9vVIo9cLKAqwcKQ9gsY9oW5HQNsnpYDVrdKRqH8DW4NqijLmjLdYr+8UHlqZP5L4c9g/AfiwtrpRJ97GcR2pj66rv7ppbelejasQvprfl8T3IvnxjqmhUMsoEWueXGs3gU2mPsGtEdhruwya4VD113lVXWOd2MfY575o7AxVwnGq2OW9ZNUphWrABT7HIBel7cLuemC2461UD68/EX/QQ0+Le7Z/vV9cFr7Qvn3PUN7pz1mbHH01Xaq+X//evdcxWJxc29wVUq76mtCisUVSaAZZw4kvrjYO2N4XH9rUmDeyt7zzXINmz0TqDamwmShmz/noFCj2jy/b04TRARoMvN8sN143FM72G3hxTHC2FE9Kx110GZ+wWJ6wvUeek+2k6+WDSYLTeF9Ed8yqnaHJabcEWCch5+yZmLW81aK3/AP9m0eofK2aOYyexOHo8FpetDeUjYHa9d8yM1vtxFu237B69CZ2s6eino4899Fq4kZvXhY+H30ThjKZOfKwZQeekgMzwmCO3u6/JAE6rJfAxuzuZ99geWK9b6yvHqfeA6tEv0iR2kGQM6oanpTN/OsPJdj/pvYTjHL/P8EV6pb/5EN7pP4enOU1l+I7fR6s9TYBWPuyKFG5Bj5bB2u5Y07xj1gHNb4ljZyHVti6UUFIChVU9ZT62ABu9kUauB7R/KYZCmTxzd20z1FfYvhRosdvqpKuzd7YTNI2n035NzpwgurhwNQJAaqdiL0VnH5lWOnbcywyZN9n6jOhw3ID7CPMec9p12dNijrHbd62B7T597sW/oWLBY1m+gt0bxzgWokWBJbZ+uUBnDbAlLxH7zhWUY5xkQZemKknXL5E2znFYWxJ02LMpGKeXL8Fnr2ZawR48atBP6znhZ4XZPJ6H6deUoBMUKQDYMA4sPOIRxzgt7b11QcGQ5I0bps1fKAE92AojHt5OFHw9BqwHgNqlFtYHaXaE1SdaIXUiCtgPKYWnPOz9hhEyYplTyN8Dl6KtTd5HAe19MYPESDnqpuZOi66CaLG7Yf9cvPkhDauxC7k9Hv2QO1V+igGnCxgsysGOdiSFWEfBFU/3+60WH+DGBZj+ou5BQGyOJDDrNZtVzOU2LzmKPKQkH4zd5lB1HOaIF4KdUbJdnqHVGtUFIAUBVxu4XgGI/3YsKD9wFla7TBYt7aikZxLpxKoeU0c5pf7R7dLrO6rGQGZi1hPqTzExEFqctwBYAjQ+d2HGtcFasJ+Smbk6PSZKi/vyZUtEtBzX3XtF69BSEUcc5ekkm8Zyvo+pdQbWbeNiXWWcMBEJtTz6aOksndQtT6Mb2DrpvWRHYhvOHEu0gVpVtlVPLSuvqZVjTlvZ+9vCcP9IJ8gheY1P0ohuxhaQmidOuP2jMbtLryEgtvb+pKelZpHI7tn5TivyTZAvp3Qyz61ErFUurSif0uI5YEtGdYsTJvZiyu9WppgDtSB5OZUg5KW814eZfQTGN07bvAQ20bmj415h8GeLld2VgLwexfLF7xnZsfwBMwDMckKBQgIAgOggakRH10zM4Q6HAtqSEKWchT+f6RkoueEGNP/wcHaP/Y3y4aHX80sN4JIn3gQcD4prQhotLX6AQvZhu/7c/nF+ntxY7Z8ajOx8hR5sEzZJfj7jCyxxskXc4Oh/bqune+EaObNalUUToDfMPI5eYGbFvVu2XtapW2z2y3zu7LmFRPO/h8X8n9t1TNettsibDAxLDj7f+wQpYLWHVJ7i97KBEeBEMBKEDdTqIHxw9kDcgDoxmEz3UQWWGASt2e8zNBHKh98PYN64re7VCwZ86E3mq8WViqo9G7e4FhN6XHxsqls/H/rvUTvmnQBa0Vyirxb6PQIY8mIApGF2ETA5gwfY9y5ov8eOzoClzkzB0WmOw88+ECVYzHpA1gd63otmLSSZJvAOg9nh9/FaDWIu1WwrCo1SsL/CG0aADR77/wz5ESIFP1OQDUPpqIeAu1wxvTwc7eXjWK8AbTWk6p1IKDIXrRdtEG0U2YnsRQ4id5G3COp2e15FoBXvQ6a0h6vYiT7f7cs+oTQPXyevpglnxDuHbxnTuxXfjcudIhhc377ZuzHApT3C5NkaIm8GJ+eSLZsDhR4TXq7VCUbuuk7HgqfdDxziuNx70tb1+IEXbpBrD040ucqcRnJy3RG5PKdxEZG9B+dmyhbX7Y3e4CJXeO6GC13csyCHjlzvHuC1PR3sgOw1kuWYHD2x/8hjNzsLvFyZcZBHzulO4OUE2+3LSSNPNPR04fyeCQ60y9oZtuWCLfmQ+/9PDakIAyyGZCDGKHzDmEBGs+KTcILYc6N4eEEcBFCCQiCT5TELS0KeFqPJLIGWWoq2TCCkEMzIYqH0LReBZ6NNhrtNDEvN4hjbQElghyRirTJxZNkLZTuIKFFijLccRpQph46qYOCY46x84hQDlSpZ+dxpBqqdYeYbF6CLrqFcdwdx1z2U++4jWjxEeeQJPU89hZ55ga3VK1yvvebhtH9xtfuA76OvLPT6xly/7/gGDDI14T/op5+IX35xkzPELhgJTIyHFExJgCxwDUE2OIYiFyYmQh7MCEM+TM/E1EGXmk5DSrZjSVlbc9sRWUOSoAmSoM27qTJoYmpiamL6Su5rPqj04/g3/erdgp76PdWZJGiCNtSyhlqVQkxYWVtZkwRNkARJ0ARJGNP2crPPj9n2pMrG9aw9mHMvPdjvff187lUiCU8M97r/oalguxACLPoMcLKDPJr7qfCZMhIaZfVmSvU5UlqUzougXyygFFFESwIOiw1nPvbWIlxjjJqbxuqQod9WyzTOE3KgPAdhphjJAsEjwYvkSOGNWuKQ7R7MDu1/iWx589lgRWA5VlpBXIUAScoTZVbYWEaoaGGlTVFu7rpxTiLp5iSSzq3ustc+e+2z177uqMBps802O2B1N4F8i+VbbJdttttlmy3dWI3Thm7IDvnucKc75nfKt3ieP8+Xb/GF/HE/yLfHYogd9ttjZwh7dVkyBxRGgMA7BPIrcGqq3JSd29bUNDMlw648uBgCb180mFnxDiZ77nKRc2OcVsNW57527j3nIgC7kkCeP+iSO+ciuLWvP82eew7bGQ6EKJz+He66vfkLeOPp904X8ABij2cPOJ3WUDyhITmVbSwjKyLJJP+2t3IbJWsPzY0nek4uxxwSTn3nM5x97wKP/Kh4YmzRpq0ogPe4QB8my74pVGgOM2W/qpg1fwsYqpyFnVm3JyrNFzBCkVgilckVShVrYGhkamZlbWtn7+Do5Ozi6ubu4enlnyywcXDxNGjU5KAevWf6HlnyAPQbMmzEmHETnfboDDjksCOOOua4E06aNWfeKadd9wuDRTdUQp/6r1BgfnWIXXJCcfAGOGqT+EcJmO4UBWgsbBxcPHx6BPQJGdxMhCx6rGvJzaiNy+nBhkibHhu1OE5ud4c73fUEOHr3Rc/u9rWegxflpt6RHFnASaf8rcrpkpqkpeg0Kn1HQY+rAqdjvByfTgAnnWqlyd+qnD5h4HlV8FW+oxbl2ofgE1t96nNf+NJXvj7hr/2uTyrhCgOXe/J2jNMi9xZwwkmn/K3K6RMqhucVB/C6vo6DyfBdxCu0nfxnEzy0XCDxyNLC2tblMXPAYSV3WrcJ6yGjTqvtk+MCp9KvRQ1zx9OxAJG+/vi9ZOkGXO33/pcLMpep3DHG/MyRB+bPBzbBdvFsLRJ6WyTaapvtlBUPlSj5akkbBqW1D+x3q9s94wWHHHbEMTiCEEVkyDBde0bGgLMjY9tBRCCi6EEgKd7uIEXkGozVVAqXTzzR+ECvsrlt3+UnHZfpotY5M+fcaXntEoTPX/RfefNp+alN/MAxePxGWQa/IiPvEOFRWQfhgB8hR6DXdXC9qkOaFJ5L9ypusuxRX73d2j7c3tsEd+ayOtb6sUIXaDF+3e6LVzZUOZU4mo0FJiuCFJ+z65NZyspiSWwKRfQuC1Ufp3BOKVjxc26q89Q/kfluuGmBp15ZpM1X8tIOw5/3lCPboWi3higUNfHh5sIGo6c/Eotx5UolvkowobTAxKP3u8pxOgmkTJkyZcqUKafYjCHTyH9l0omMtiNOm0GhMVhKKmoaWjp6BkYmZhZWNs4IMC7BCu0KI4ITFROXkJSSlpGVizyjU1CM7/0x0ZqiHsPjnveCF73kZa941Wu7U2uvoYfuFHnGpKCopIxXUY0a41KPBiPT1NLW0dUjRJ+B3GiweGnyDKWgGDXGpx4NBtPU0tbR1SN8Pc1Je2kCFaQezesxPO55L3jRS172ile9lh5sR+QZTkGxGrGaaGnr6OoRdrMp6T4A0ClKDKWMV1GNBmPS1NLW0dUjxKM4j3ncE570lKc943kveNFLXvaKV5vXFpRwiqEqKJvKVyPBXhRoLGwcXDx8egT0CRmY/CYiCFu0g2qVVL8ccp3irUnsvvGASVvbrLvPi4FR+2zKrQf+U6OqgxeG8THSiqrqKzu6YGHaduQVsaOqnKLjFiGqk+UZyCn/5NTdfKVFVU2V01JfvgU8usVVSFahT5myj6cDHNM2jR/wO05Dp7tFUS9+5YozaUbt1tCzcyE38/v0233D+qhMfQW9fsNt/Kw6M6+MO/IXdMPNaF3YS6+81uaNt/7xzr/1qabLgB/NYAa+74msv7gWT5VpdPV1VeMYmIhXsfZ6SVXaFCLFGj3WBWHyszg0xAnqotsreP8Q0luS59BJp990ZbfqKaGBiIldhO0uoSxQHRC6zdC/n6y3BUGHfzPZUxMaA7rmNfs4DCxlAPqXjwFL5aApq3Tj1WvEvednuSri7hnNlxB5r0Ixj7X34SNR+D2oGM1h9kNqeR4eD/tbxdRHvUAnKdqD2BE2ULPtgYtPQMjw8mU2FZoWg8XVgeOOr6/ObBQzGzv3SSdHudU7U2mVXK2aXBv/z7Pz1Dxs7NyRwhax6oR7UAnpEAbuknHEst26Vv0fgrQkzcZHHu89qh/ff2ATIaabAXIIhIuIMDkc9VGIBmhIRk6BoqTDMODosYxMrGzMLOwcVNRoGlpOLm4eXj5+AUF5wvIViChUJCompFhcSTB+BPUAupbI+PmjZVgTbuIWEWTaGmmZdbOszGumzbKHlTax3RxN8kt/zjEHafNvaqjyUU8alSHz+UHDwIuEhUNEQkVDRsElcGdu511C6H3vBdQK1TipWMmlg943FipBKTWUyBUmQI+AcWO+MaUVqRpTFXRd/RhCsTJVXvhXKDQGixMRxYuJEyQiODp0xLEzIUwuOu6Fyj9iQbEK0y+dNHEHhDL1grELsGlm05WqZIaVkCDsbmPWedS1zne8Cfa1XDlF5dK8vCVnjgIxWjjPTlZRwUTSsiY3mYRSvdOraIiqyA9lhMfccPRr47lf8wpXe6QHuJtzzq+WgO0spukcJwTFQqHTc9dU0KCQHUX3ptA5ZM7JdwROxEPN2+4rJrvGs8lNM1tedS8xnXIaXHxaH8VAkcU+v3uGFlTnlgi5+jvfF6sWVU2Twh1jKLtDONnps6GVq4L5pAi0feDVHwKCOhAkCvUA2gOHJULhrK58/q6S4dwQaAyxV6XIFZbHVwyyVmnI5Tvi1VV6FYFcDiMuWiO8kuUSD0UxAcHmeQhMJYbEc2lzMCQUFuchMCQo8/M7MCSEZedmGBLn9iw43lwFhoS2b87ZYEi85sSBIbHcDgZDotqaDUNiDPhfATIGDcf3DmPnjx50J7FxitS3pZeSNsG1eeOMRGLF/dVrvB67bNjfcLP99RSybl8+hEAmzn68TmYtGa03XPxoRStf7JFao8x4zVlV7Xr6GvFJjWEoHw8Xn2bCLoXlRBU6gycSlDW2RfLOPEGmHb7ySYDKAbFu81Wnii1PjS9Gncu4snU86eqcxpT5QHQCdJquUD/M6vSAtvwO0XjdAHeNbss0Vgt1pQ4Cj3YBXjH8uZX6FmhA2dhuqCO1GXiE5rSjZnAgGMCqSSVUXkLu6SOBB0itB6NIpptogKidfRHGPMCwrt3m5kE2MQHE8NUnaMmqZvuQVyY6bVDwtb6IF7KHLwHCIXpEQIZ5YvDw95LAk8bZVX7VLlWh8gov1fHghfPGJaU0dOjJoX3kDB2vtZ/NEYfgbojdfMqn8Gpyg6xcKFfZkN2rdNZg3biSbZlKoAKYnQ8ErzzMZ7G9TY+v47MfyzyEHyWX4EdBOfzIymYqkDnENxgDEYlSllGA7k0mnVxPEu4o0TgBwoYSLMwQchRfnL2365O6gv6uRaMFUfzzogXsPmpqiW2dosGS8TpyIAoqWRIk+8aHEYXsEO9HAiVRZOQojjZ5QGKeqit2ArNA8Q/lhRTiJcfDF/0wwlMq0wts/HdbPYGUcXOHw1LzzebGcRh3FmD3OdKOxY3bkE/k3VpE15rJixdCeeUxHWNblcqXKVWiKOFCtZ+aNw8FfGzB0N9UVCrYSr5040uIxw+ce4rIF248QXz5Y7RolefQF7SBg80Li1filfie+I1iscXtv4f3ocueu0VvPbAV4sm9B1bEMVWAgwlDRRoStseBT4D/zrXHvL24Dz1nHpnVEbfYZ8MiJfrA6JRzTaxIqDKSDm8wuAvKrSSZph5bjMB+KrOFnHAIFDC4C49M97jBPgv5ycd6ZqQjD8G4UeUENUxpGbam3dNlsat3WADlfSB2W7L7vMLInsXPV8zos45nv3+Cj/OJA4vK/MRpruyIO3yFi513/pRP5ehC5zj2qMNMMKIJ2ySVT8U105QT7+Sqyyw85/SL+7ZMO+kQPW+60U6F9sZZfddfurrKKuzRlpqov9aqK2+4rnJVFdeRi5lS/mvoUiWIlkg8sUQVabB8kVy4uGMMk4MEYgsTedBsyxlKNrEQ8cUWTRYzmoPZk8Zoo44sKRGGFULgCYonptAhODR70ElzxgzZ5HVPe9CdbnWty5zvTCeab5qxc6R8YNaUMTYY/5cgSogcr5r+rIyrV/vUrCoVSS6JRIoSSUjB5JNFWkmF0D+ZZpQhemihmvMcZhfbWM8KqpjNJArIIJ4RDNNFjiriNKEGIIIBChcMWMXk7CjvrQU1KIEC6YgHFxTXhwhJmGTJPUcRF2kXb+7Nl/m3kXAoIrxoBkpShKN+vj7i5enhbm2sElHEcTuO61/w7muVOMqUU5kKizlXMzNTVVUVEREhSRIAEJ7/KF3atst5Zyos1vzMzExVVVVERIQkSQBAsZZiMzMzs9wVJ5qqqqqIiAhJkgCAGwquqqqqqqqqqqoKAAAAAAAAAAAgcwAAAAAAAAAAAOEAAAAAAAAAAAAAAAAAGPykWXyfiZLYSVUZYU56FCkfCy0p5FL15yZIrPdzvFcNSilxFC+D42Vn7P9FXv4//r9Fuqupp7s1lWVRBOvmfYCb3Xy6eVp4eLi5y70MSpIkCQAAMPigdcmHuf6pn/yFn+txT/VwiigUPeY0/A+aET1aVCkV8wtzcro1ynhgQJuMclEiyeIhw0Mjhp9V30TGpJyDzecn9hlFft+mxjIJD1swplezSo8M6ZCVEkMgEQIbQoGHQngcHfk4VXLE8GNH/YWypo06CSZavvVLq1Om0KOWTOjXqlq5YV1yqsQRiUDkoKMiQCOCBwsqpM/g38/B4cYIwxFhPFhgoMAJg/x19R5djNuevtBmq/M7flDGI/u0qFUqQnLSRJkAEize+KHRIUPIUUok8GNFjZwwLjhU4ARBuEclw3P3NKhTq1K5YrkypVGuOV/eb71+EK8iNF51iKrgUlRgyOP2WUFRgSHv18V9Fy/FEODjFXeF+AkRIkSIEMGCBQsWLJiCgoKCgkKgQIECBQokJycnJ09539miViBeci9Mi0CB5ORDnp2iIS71NEvZtbmKwldzJkfhYWurKTh7vu4XKbkCdnEG7LY1zHh8tg4gHvXqjFrAy+1UXeXpZ/zcL/FJj25HuF3evXgZIq7qkh0myp+Odix0t0uyQ6Yp46iDQrO7ZAetlceWD/ilS3bApHMCMYDaLtl+E8bxBQCWd0n2WW90R3EC7++S7YUPPwONN3W4RyLVE5JydTIqM3qjf26uv38hYdUiomLqxSUl1KlRG9BRchQFdqPsNLEdHbZV8sB/zObGjIgIsDdlfxkg9gEGGA4K3Vpp1SiloRJlFRlf7jygSw/sWCJZAhD0ABNQBsE0BRHaIJinJMIaIFi1IGD7CNYtiXB8RLa1JJnrI2V7C1J4PlJ2tCTgtyTY2TYRvZak7NaSaiXTkfUJBkAbY9AdyacWGlg8pZ2KphEYYeu9zDhb3BdmYWVjR3Nw8/Cq4sJwRtAhCSA/GBEEhWGu3QkUPa1yRAvi4uhUwScQwxJCBEQYNKTf5bRiDLPTN4zqYreutYVwru8s9gQfCEgaBPmCZ5sI0FeAndoS10Cqv0S2lN2r7OpTtuXjbE5lRqQixcmnu+c21V2PvlCTpEKowtgd4REco0LqnX7DL3iVl3uEKx6OfDuOg32wx1bzcODBZeZpjvTzwjXnKOWDS/oIDKrN/LgiLRxw5vDTgYgeVcd3tYl+r8/PRuj1Gun6KRN+E9F+8FvpLpN5fPja5kD9xPRDQz9LVksf8v7WTf3Xxov+Y+9VX+p4Om/rCy73nmze5MnUzONzWg+ffuD06Xv5p2/33WZ7l+l6wyBntya0cOt73bqWq6ORK6k/1+Ty/pIfF/bnN2r9v+yf9i0/yXhLRAh/e8nopuO4Yo8hw5OWE23sZF8VQMur+55ND0t/urTbHlRssUX2T80UDR359ly4Y7u1LjktLuwbZ3WPX98H9WlV01Rn3nJSueq0dP7pEnSTtEWiFmpSt4CqxNP57n5McTzJ5ZDNpcp6k8i/FggTTGau2TwUCu1M1xna0NWzMH9YacUb61Hp3od160YTU2sPXVnX4CgK759c7kNjbPDNPuiICHxa3tPTS7KAe/VF/gTzXim3wFrn1UJzMmvrarbj+oC3BZup+etRzLxDU+nJud7rT69b8vP8vUjNjHQ0NiMe55q476f3Ytp+6oaLKa9yuffTA1wsWDS5UCWTtr4c/Wfi1FSvbhoe8NqSzU97inXU9vZYYx1/Amt+KQtU7etGAaNmV5jEMP0FLBl/AotpLMiy/KlL1/WEXFBdoOYyxM/J77D4TCwLjI+LQ6xM9qH5W5mnNsH0GZJTUjOzcQqLiIor40VmGYUQy20UJVa8HZKpZcn2lzyHlDmqQo2zLqpzXYO7WjzyTKt2H3XoNHBXXIlBV6edVj3gB4UPIpSCBwcBcOBn807PDeavMV2RlvX/q0GQvkL6LruCqqZKObOILjsS8UC1SpUzr7tGwHxswP4AfeLAgYAs9R4ihgTxhzmpp/fW8iPeqaYsLm/d3OqIjxL4WU37QCRY9UbZiQWsn6mLPKTsBFWyLJKTSkTqiTVRAJe04kOtzUBmprYDPwHeSaHAV6HMS+3sNlojAjJ88WPNMK2cUsjKRJKreEF6sjwiea4iy4yh4JCkkEmf3DACeiiugmN3C+Gzk32uFoJMRYWgkTmwt1u5NvsSGYy1lgtGQj6ZYiXS7L73NZMQ2ciD3ZIC8MqGuzopO9dcJOirhwnvjS9Fr6EdImNhDhuFtExQvyF5EiLM6F1nBJwpzHgB1p+hWAkp5/A5ZdZinE8k50Cte5rnCN9WQ2oFSaykOMjZlylJtThMm5alTxYv55t37a8cWESm6+WP9gqXCJBlAgj6aBTwd+AxwP5U+5HntPVrstsdnbp95MjW4zRbT9mxjJVaxrVQ9373TG3uTI8+8/gv85c97QBylqUZv9LUWWbSsj7MbLZ+2e7M0mL6cqSMOabauGdN/5f//SfeeMpfT/X3Uw09TcNzLj9vZOd05hWevDL5TdRvc+gdit6j7H0aPnT240o/rehLcr4u7XsyfiLrp/J+KvlnKn+m/udyfyH9d1q3ZBVmB8xNmF/AG+CeAM8eoHpf+G0DFgID6ElbuK5J61T1pV1ZfUVf27tGv8gIgzO+/PBoKDAWnShMvhHJTGdmyEPqw+nDhSOKuP5o5xh3fChZPDmZmW4/vx38cva3p/786e9/8Ieb27/8x8/86eaOz/7tt/+AbI3din+BMxP/+e3/7jj4r5sPHf7erbd2XX/kjiP3HDtwfNfx60/sObH35N2n95zZc/bA+V88evaxW67e2P33Z3t7f/18foT9W/uPD/ztxb+/lIntsWIKE29qJABQTPCfnaXqGTNGZ+UfQ9myDsd2LM6tbRfiH30dsQLg0Q+JFSGmjz3ufsmqjbnjof3Q7kgqLvxNH94/PfCDz/NbL8YCq3P23YFXqQOMr6ceVg9r8r0LejO4L/AAF+/YLW5psOEK2Frywa0Btv98vRr0+oD5LochsAGHL6386O1PDJwKfuh3lbYEFnjsfVNVyRLA+/8UyUngEbnSKUVbZSk/HkJsVHgI0swAAUHQBVvbQ9/5G9d33vql79zVpJ5jGCYaSNI0u/SdxTN8Zh3Ye0arDglG0yLoMs1J3wPu/vXHx14uDPi2ryefv5nsWJZOlmozXo8HlcofpbVrkT7h/cE8Q5HNTmLsZHPWidW+0IVtMoqmxppHjV4A5iZwk7hZOC3HcibOxuVxUa7C+uRKk/Gplc+skueYhgQswJGbEpUxyer9YoD9gKIo7qdm5miOWXqIKwIDv1PYc+jBxn9DX+SHex2PX9hJI2kgzwE+/unjabbuxy4vpC8cH82dIz6a/9G8D9fI1vjqDVd//C7aDS3vdWyi0GseOJy9XtHF/fZ1/RIw+tXPFVrxQsWoGofd4noe60sheqcfyVuLRIgc5LkmCubRN5BZavfDBt+NU02sqeRDPreE4s7o7OY+/Ij0YGyRCl2jaCjAW8aYsUuz5yh8qlKZNi84Tk+nsde96pDzXlfhMyelZBR94einn8KlzwRNQ0vHw8vHVW8eqvjwNdusVHlZYaVV/pDgP0/tkiJVhp3Sqe1ToNB++U446ZRjfqp3i1ajm270rxq0eeOtl7rt1WWxOwPg3V089IywVELPhhdFMnsHe4MhERHuydwJYaAXBOdsY4UTA9sLDmcuvuTOsk7lbF7AOfzNnWvjdpzHx9z5Nm1wQXoK/e8WxjTAWAMw7w7QzYP9nk7gqCsBe14v2DkDYCcwlk8dsyr2WZa3k2bTRqviogUvCkFN9H/azrspHogU5ZqgBtiqXXdzPWyeee9ZuB+d0zpIstBraq0sKv0z6TZm5G/FWhKVgJAhEeAN7Ygsyqzlk6uDIS89UKLUTE8TtjeFNhAttCMJZIqRhLKB9i4hmtIoLGfEn3ZUxJuRrrE6XXmXOIlPSii4ulHlpdE2iTjCZSP1uRqBjEH14+SwkwMg5UBRgATFufWjPR8ieLwLdJ5I6aNhZmdgw3xhC2mG3v9AWtzuX3DGEFz7NMDpgujjYD9cZqjpFLoprWiSGMGHWMIGLGw8CUK8qBjMih2ng9plSQ1qkwemFNjMa1YmqLpcl+XTH3vvpanv2CayuSdSynkaUTCiWeaZuqV+oVRXHdzN+2DUDjw8ls4/GCyecVrnDivSxtKBFx1hEjyRF0Mzm5ok6VGAb72rbrf0leUtlEZPolCdmc+ai6IBSe+db5dnSZ6Yy0ouBA/JYga4HPPiijDdkYCRgdA05MFkaH0O4h0tmpXm832zsKNoQIZ7oMIAc8VEEbKx3GctL/S8Xq6Lfcj9IvS369Kk12Vsn6pQBp8Ua5jBdbbfsN3/z92KiqaBbEsd+AWy7bPXoFruYY5a+t3p9rzn9VdI+SdyJCyFbvnumCQENvDyDOaYLW7uIFFIsqNkPiFhR1nsECJDi2JbHOWRFjRwKOvsbPDGHmHdDrGSTuS2rFOftjXiuXuRowfT/SwOzCqUbj/xULgb7BdSdB/pyH6w7/aid58Fkse0/uyPMKvmUE2lHNNPLm+60FTzIJPXX52ktuvpukmzFN8666wv9slcooS3xbpZbjfPL3ZAulyVNUaz2E7UsBTpjdTTuHa5/tTOE4JFyJjS3hQtplp7sr8N4J9cxO5F+9KwwqGXYZhh3y4QhliZBWrAV0+ml61g/Wh0NPtRXz6FX3AjF03nknBnOEqN0QSjPLc9ueehLBYhbLLqlHyCc1DvyK2vbzLk7xHbz7njTME8ZR0YhPQMbAO1jLeAFA/r9YwzLeeiGt6VgFK5U/UBm0yUqXIp8nTClO4abyWvJ+7snll3PoaAhBP8dCW1jdFxoG1Ug+SzTVAHO0OfD6v7eDkbSHMO1D6K/NEc+GWkJ9A+p6sLJBZUW+WDCmTRjbY/fri67U0jcFztHPMusU+SIPJ2SHdmhzaOqxPrVV6w2TskRJ1QSLbLszxaaUkv9atEyG2HBnKDN2huCFZ3281Rq+9Tt1MmM/Ux+56tZqvVge+r9xuktVkv4AuD2R2yR7cmieco2VNDEI+7hXGERyla7e+A2wJQbIzZFlHkRxH1EkVFre9c1jb9l1fwwzVTbNMzxcwN1DqjAY+0MBYeqR+5sbGbFZjkhG/uL8kjFOe8L/kBvHGqpfMFaD50W979bQPklBfxrmEmVfVM9oPB73hI5cHA1d3mJW6q3ayrN7c8h/NkRnVD+fbwTyv8HI2O9soomMUChJCDFeckpT5BTZcVsx4G1uDxPNDiRf36K2RIX8rCzkxnmNtnl8fW0eJU5CrvLbQpSi9CHh3k0aKvmcqAe0hV9a4+7YTCQtdccmYCirAAovLWqRa7vLdk5S/UBuGrWqtg9c/ndEisT9M4xdhsufqBc9Bo7kKnIQdzuxk6nLpP0ZAv5L9zgMJAIRRgOm5H2XHgTDufZ6oFyJb4fUb2QkkY4CmMvOzysXC/qxh22QPcRfcWLKZ+OC2t3K2aNeEZ6Hj0wXRkacuMxx78ya6Zd5KxAJGJ81Wc59jqkIUB2W24EEdHIaL6O7cW8hYybFcpcWCHrKG41OuxShTqPlfs0/9fjKMx7WhLQLMrj39dLRDZgM0edR6vF0QcljoNpclDjvDjuyiLDcHtWNv+BoaPEbe9hndBj864Hm3bZgEDGiT60Wq7/33XFkPt8KumQecPe+N5vxkem/+FFOWLB+QYfGQh9JwOB11ncyM9AKLPJuQzHEIvLEze8YxTovFEsbPY2f43fxZH6jeWLCvXbBZGtqjClFqLYR7yLTxzUozV4SdUxiQkGazlgBPDHSUouRixE8giwdhwhOvSmUdXXpUnEqeSBuvOef5Tsw2enrGNWZ6ZrqLAyp6wxypIiOvjuGMNXXUk6dxYTnNqbbI5GvIoUT8WGtG74LyYYCW2rafrunolyYlgHqvqb/P1psB9M1bMd4WfRUs8i4VYAfLzw31ON3meylxqBjUzNWnrrxmmdK2uJv3l4OqvApy4yolrnEB3Tq/11013g9awziS97rInlVJxwlhzCuchylHX+RCoSu8fwQw3zTgz96XCfsATmSQnPL2hfJxjs+iBWKF1km6O1A8N+W1THlkGXkB42M0xafK7g2qaU1Gnwfb/MmMNWUmM0gz88kBvMN7CsGRSAXylXijsVg8lVgzOmfwOlL1nStnMNYjyL51d1/KgGn93W6g+CcD66Qw+9fiQP54tKUqSQivYeP//8pFF+uwZdBkX8K9hEyzcy49CTNRlvyWEIStjO8KgdQwhk2egLYnNKS9TPZgI6ks7hO8kjfJw6LIHtdhkoBJ4oPDQJKf25FLeU8c7wgQeZBTfbgV923dIAPexdcpEXNINP9jvAeQmnlCm504RvDPxs5QDwFdjv3rBYOfUtcZXJo7cV50iypfSgQ9T7jiV5MQk5mD9uE6PYkVFwHSaLUJ6PupwppOsYe6g9p/pfsClahYCFtQcmxhQB8AxcU106rNFhFdmf9rSarPffbXuXffa67rffsndy4HH6xS2trX6IVavO/b1E6ksjNHRgzOO+aGcyPm6ur9ABK4xfTPcNLMd3dicNeM2VqBo7PvM5XOPer5zBzSGxS72Tz+6MNb1ayfYlOolIpR1bzSNm/Dm2ceIM9tb3Y2EKCrCos50E1n8rB0bYn0yfs/pzQ4HlALVuriObG8q89OZRZccfW8VjnQKkD/w2LPIkfOUbBzN6h+XVl98zH00uHIx2tvvqEtrXXiqeYAFM7sEuYmEAftAZnrzj8hxsnefR1kdP+wd58ejVSyFVjwGoLTJ7o71pdbt7WlQLRrn2mMxfWpPppK2fA1nu2qzN22xHJtBF3YgN33J7tSzDcB/I/pzXFKU1ke1zP6ie4eDnvFEWxhw225f/iCQyshtj/+7YbjX25/8D0QKP9n4/8bG70il1Ze1VFY/sEwj90uvK1v4TUkeaYP2WC9dQfQVba/sdQ2nLtkP7fE6/B2pFMaeXYf/hx0bbNFuv1GdZ9Hcl10ur8m/n2DnKH+sJ1oEyDEdvf/2Aqjn2QPx/Vc+tPe3f7rdXweMOTHbXs7TdLSPtoNpYGxYs++SJH4yQ4RSZ0bC10IwS2s4ggO52UlT91PG4/uEo82aOCKxsIYoSunE00ojiDJynFbTRAG+X6g59yODUR8+Dka5H52TXkB0FEmmLWSz5iRSTiZVsy1Se7uycPncbNHy21pNpMY1k0KSmxNn10klUx3FF5BA806/4NCnmtylM1Ny8OqhEUV/+T3oxEHS67c9lPApe7EBGBtmgbFBwklq+6+92t+//8ftiv+mpv/8f2QtswL40SzPu4/2Rb3/qOdh29E5xRXMgVLJpEXagjWOKE2hl7tTy29qC5fPzxYZ362sLpqTSBa0Ncd7w7qP7jdf1yKmd7YCUjGbXq4X0gtsnNu02WJxdvTKY9osrUpXnyPj06lynXW9de0KBA5c9sckFqcqC048+fPYQOPmM07yI/xnRBgJgm5ofzbvdE2oEboZGLtPgv1iBLH+vnV+S7xTjoNs3v2hMdtJ7iA+Zd09bA6MDceZ3qDZqNRIA1ljifau96zYlrFouTinx2or0+As8SzzabTFr7MxKl1SsUTlx4yn9cT5+Y9yVA6lyZmxcSV7xb4l5d7NgKf7zOHMbAJBHTuILdy6LHPF8WU6VwbwA06CIW6InnM7Ohj18YOy3I7MjmluaYuWz84bNUoa7e1KaW62yLgU2Cx4jw1SHj0F2+vowpb+LY1365RGE6Mmc7e+cT4O3hk/0ftf8ElR+k2NJv324+LR1D6RooEGr+Vy4TWN1LwgIPAA+/ef67m7+/fIcwfu6k/uBhMV71WkX5/B5cey0V0DtYp6NKKIw0OUNeCjudqT3H4rox00LjzwIVlzbKX6zApmXHoblCPuRMTkUfE0nmY71WrKf/pqcP7XlqLKE6+TG3c+TS6bXJp9zDR9RqERNUZQ07EUkbACKmxxnWsMLhew6lNURWe+/g8sd3bvT+pfBMbus8DYHWTU48urGz7vvj17IU3YOxarUo3GxvSmXZi9vbvh87JqwB2OB5ySbyDS/g086hw4S40cX3J4eQBc0ogNpyFnmtfhHVrt95jRbSD0u761dc42t2i+A/mutMA7tjrsWUhtuP/KtRYPmWpeWK8xPFyzdNw22uuOss7VSuNmYFLNv4fBdqccRJ1jwuYHnaE+mLBY/+j/jS0UHSHywdwLvW1iWtc6WeDvL1Pu38714350uxfihvBnlysBN94Rlf3A5UmQRmp2zSK5Sskt3iTnJ8eaWceDMsqt+7EnUqz1R5CjjY8aCVb3m1a5Lb3ug5XUQdEdOvTVAdIPbmkkw1Tx7kwRMa8IvduBvCrBtNDslNtybIAoOYBCk/phCdbDMHdxk2zMJwpWv6GCGrWv/OlEm6kLk6EJ3tGeWE3GqdF7hyMtheZck2b4imwXFAEeEkpO3gb+1UhGxNqyi3WEvi0MFjPCLB0xUieWX0E3xZPbo8Vq9tBunhiV5kwh4Uc917MKSg7j5ap5ekGTZexmqBNdntcOT+QNhejKGDf3Eo9Tta4MJpxTxk1MrCJj1ehYjH9cEsAvXwi9Y5nEXuLYZwmhM3IiqreCd+dLSvEYgbflyCgwNkxvg3ih+MW4jNobunyjicm8pTfqejtTa7Oxs7lyzLHaDEmyLhl7RK3GnayVsH0yhFCnwQo5K9Gm7UVD8dLhseJl8c+mNnqDm4LCllnjh32P+eGw0OhNwdkNcszJ7EzMiYacbFiMHT7Ij3hiyNeKECXPYzS5g4SN7mZd3tLJiXyjmzpdRjEOzbeDbJsGxobREcvNWEEJntqZpJPgTqrV2CO65GRJbQbmmDwXO1uXDXJsut41FC0ZHi4wfrazjTccUlvGvLmXmNi2lBmciR6sFInFDfFE88vDe7hJSET+Kj3is55ZUHwIB9wThXua95gtCL/H8UubEHQ40xLmt/vGZRcmkUW/DOKPqqcj8pI9m2KKseT8oHjtcHHNk7U+aE4JMl17s6jg+9iI8r9bGbr0Eiwm2mvt1FhBY+mhB+zatCSdADeqysNO65KSJXXp2JnsHNxYXTyg729X6UvhdLm9/54TpcXSQYHwWP25mcOl2qZcWjEmUgPaX5oWglU3hDOjIDVS30TNcOp1oOC4TIBteuzwsPvxsnWWGQRgbJgGxgbzIcfionUHgJWzoRB69/yNgT+J6/jxiopQvKp1l5XS1oKZqmxF8OI6mMKBsm/TH5WVyXxiekRIBu7e9P8BkcYiZGGYPN48sEuEIwCyHvEDQdPlXKzvfpmIZWPDxUtffsM7pU05mBOZWZjZJrnU0W8/2G8Hy8Fo1DKQ2mp97QYFu/vUDujSrmkqxPXjpHnHG8lyanTzmcM+8ad7+0ujw6abWe1JiZZxX2akvzvRipA4OekEWG+TM4nMKbeIHXS1ia5gJ+bWJGBCaCTGuqMe+q07WxWitOZjjLycTnRivi2lyy1NEpeeWBGNjeAR4qz7t+m3NrXmxGe2neOA6ccLM6cXRCVF5wQ5Q/nqolGJE6TRbGJhjyLt6EJqRU9fj7ymOk26u6m8dDAan4KHyZHJlfWK7OYKCQ04Jwr3IPf0rZrGEsPQuLU4ppP+KHbV1qYDbdXA1ixKH6/TO1SiogNqY9tnhKPmtgH7Zov1OUfTrhR8uSqMSFKEo8tSeqfjgv8qttvrpKsuLhC7Z4XXi2iSLV5e6jCWFl6f5WoEnmqnhWc/tjonQa8wsUirjrolaZ44u+Ic7J4LFc5Vvt6YsOMftsPeri38XyZV83q+fDxUUtg/+n1b7PdE/MOkVL6eq3E01finFcmtY1ufZZSrBdu13+2AFWH4IgEQR8pAtS3RUHMnkElpckMJ3VHYpiBm3Z1rXema6dxfu/+C0km1rvBYVzimNpDe8xfQqbz2OmXwTHHEDVR7wYbpRGBLkgMu/7/JPrcubJ4xduAKZYVBVF+MGSjSbgtwWR3bh2twsbBbndsHTDSGeWBsmDeePlAMOsflslOKPNnp+zmdJb0lSbXhuBwGA5dXC08qAWG5lfyt3hm8rZYuZq0Pq/O/7mvP+3Jpl5ql3s5mqdZsiS7/9dG1ATZerQ77/uetZQr0/LTq/+OVzR0pujhcT5IQPlOTn51aI0GPJcfvGKqRANZdsEKbD1ZoQ+dW7rw9EBgUejP69MyoZ4D42WeaA2tAbCxXbd4KsymHGXQ7VWAm7yQEOFfhqqDSLdc/DkBGng+PJDYSWQ4tLUu/fjW/XnYoWtG7Jnt44zpJRWFabAFpe+kSmuXAEmQAnxUcu4m1an1e30rvKK+IAR+NukLr69je6tEKkM/PoBoPQRuhcVuRzTBoM85xBN9+ODFM6ghXndJmGZ+ay1p+SqNCZDvEbS8l7CPiLuOzp6yO7Iv68JHqszo6Jb1IApo5vW+nCljfv3XZb2d6et7NFLC/fWsnu6nengx9HdXk5CzVVF+XYch66urZk1STHHC9Oeuh4//s4WiSbHIF9QnskXyyZfAyKoNVGEqktDCMxlajUWrWoQrl+V8zNZormfLjufTtbU2nynUYvulYH1BZND9NqJhYljtvjGUl1QSxhY1wZi6ZTlPtxmQpe5SciohIKZkAz8gLo5MqglhiI/zhpfLyiTsJ5boLWWkzkqKKMamDqRCijcPuEqrK515mgjzvva4LaM4n8uYcI1NZX7F3DMB7zgBjA2BalF9PKphcJj1ijCAnq0OI/FomdadQxNQ3RgkxdR4TE1acp2v6sv0nV97U+ZKThiOLtdiZ9IaSx49LgGZOzFFUW0f02mv/J/jWGy6mFxeeTSicWCs/ZivSlcplBzWcf6ZMC7O41d7kksXCokeNuoJnT7X6Xn4Dj9kaE01rqePw0XIoR+CrQHDprQ0CcMEptjf9x31mwo3tADZa6F9JSo4rhcTO8jQGZGX6xuKjClnu5NUkTTnNiWJSpig5mrpxJQ1SnkbuFCrLjr+S7DqY0ACnyKlMZlETXiA0TplFTCpZ3gRPmKUqI7BSIhGVoQqjM4yOyqAvymhpQQRYYFF8NqFwaq3ihHW8rlwh69Zw/502VWdxq3wpJTeLih416ApfPNO2GUWDw8X6/dHm184R/OoMF9MzZtG5gRyBnwIZxWipFwj49VxmqyCa1qLjAL3f+CvZ37512G+8b2dU8RYisVlLWX1yTiNxvI7dcyffrlrw9M3dnZY/fWdu6ZpYVWyi4lWS606+sMUrTV8EhPLizdvtBHRUq9Nm5v60Fk++0HVn8ou8WHGVQ2WrMx1tFwPbVCzMLY6ZODR1CFy9T2nVUT1cY/vmohh5iT5tp1fETHqlECWqnJ9n1SUxfupNMLsYOrrVWRmrArFixYvktv4E2OlpH4CfAoeiABRZ7LyZLjuSE0+tq1VyEQ+6un/3JENxwmg6jO3lTQuC+Ys5GcEo9+eJu9AeqqioDb+Ll8DTH2RnZh+I4jTy0P453Lg9bg8WoghyTCQmszCcwevGl1YS5/JHWlAnozIuh+Ep98jg8klwZqgHFoeefg+jUILVA4ORUXAWzN+0lIhu9XCrhuDHDgp5QGQ1/cwJiuZXV0NbEqLQrohtPBUHC0/MCEaHpvviko0Zs8sKFWOnBIqy2cTUCZkydUgU8lst3jGZt5pzVfwketPqKuiuBDbaTYQfBi7ODEZ58cnLvGrF+N1L58Sp4zvCt5FxjilcLJJhUVBzB+4u6UYm5hAIqjHSvmxmKKFZAzXP9GZPjBXdKTsFYq25hzJ8/c1KmlfNLCZ531jNByInIMRdjytOqW+ApyogRNfvfgaWr3v2ElBZ/ybqV25e0OALD/U7f8KhCN1jjvLdu7yoBzeV9DcfyOob14Iqfn2WateWZnWrYrIqXQ5V2gsi61Z2aERSzWQ5/0mdVrJ4TJUnKsH0mLDad4YhefBIcoLd9XfUjDd9R//PPTtslnL8fNzmQ0fiNp9q3yg+Rmuzy3O66NIZGp0P2u7HxynIQfsU+aFaRRCHkcMKr2UJ/A5kxYPzpNigN8cYAp6+YrtLYLsrbO3eLFxwZNbdYavnW+vBU4X6dmzXYPRzjUardQ3cFqoL7gi7BwTeELzoHkylqgP5p4tki8WlxDitzs9bUMsXS4uNzUKRw3eyVnD+qrJgxUFVX5irvHwZW6Iu9MtKSTy8VCu4fBV4YG03L//DpcuADcGTYFXz/vcG5pQDQwMmre/6BvqA2ePaUr9ne3vrP2Nvg4wRAawjtazCAp1nuEcJPyVZQy8euCZL9+4NquEExRIn6NorJFG+1yrotLIWknA4YMOlezYAm2nQ7fxpgh9PNN5uPNeqb+cAteFVu5ZjgxFeUeiSBwtXWdGbeD5/GkQaVubU6Wus1E1pSCykweDprt6qXljp5FAPoCWcGzgXtLPjbAfATe4fHhgG8M7sgHJYTi4VhASUyHNyojoLbTjYNzgwaGAGk8nBQWRScDCJFKQZctDPLwIJBmSV47CFweBqRf94f6gROZxLD+efH/0EfbVLChi7tEgCQRlOw5J/ukRgeZyDS1TMXRokgVQAJyGFL1xCiHQgBMEToeZ7O9CjoFeYYJOGBiVCc295ys+39hOvfuQ//AMcKTUNWz2IK1zfNOm44qeaGY2rw0x6vjheSCo5ApX/mfwkUfGVXFV/OaTuOrUy50cixdv7uPyhzlQOCKm/TK5SfJUzwcCz+QZ+RwffkJ+valRTOl+ZBR7mldSqzisU51UqVrlLpbywUfEJ/zFS9m9Zxb9XzdY4kp2CCCGhMAbNzfnM/I71mb6+MuvMU+D/SH7OmYWcvJRRrkxvJhqHRFbEsvB5WFxeJB6nMPZ4llwIIYybitJ293JT8hbklay+yg4rxeKiwqqjQ1VS01gdWVb7SMGt6O7u6FsFBayyymMVbD4hIDDg2Hub+C5ttzburY2/baxttm2cbdObuDdGZ1g9LGCHCo9p40W3CWKid7fxYwR6Pn93yPDb9GXJrgCmnx8zAOp1pj/pLP9WhwbQVxCWH7hdy64KoUkZsUni/Z7MldSV8Sbv7JahOcQoThI6tNPFnigTNLqRAvNsJREoKd+rN2dVaSkDryEkQ4NYvpJjzLUxJmcoq1JhESGiMNDzQOHx9KRTpeVJp4+nFRYeS0s+XV5qVBxKXc+UUKBlVGpAeRqVyUiZcho1V+mLB4h7bXvAdtn3Ey5sp60sFyf0VhcUMP8x1NFhu7tk+X55JF1a31Rs3vGDzObicIJogGB7Ji1jddxXSm9UaqWG+6qOY6vPU7njf/Pz95IdiIyvsRJ1utnyUySZMVIaNdgvEhewbn33T5EYmhsWHpwtJmKWOiFhKCm1/vLB3u6JA+6telcHUXRSkiiVHRnoR8AHOK3vQbgIk/ylITtCMpNwCGOX78VkO46/MK56hGCme8qzRdORbpsxJy7YdX9jbgxnIFztsI//BvZBo54ju1feK2m7VgBWJJQVME1//vWwVVBMBAbHjQjqlR2qatRPV6Q4WCADieJoemhb5ooZHdjUnR/fsV2YsgQzbpPqH0mJD/fxk4QLSAUkckKYrxcbhsbGB23qAxh+aluoMK4xjJqMQIv5DJPlElNpHBkjSOsKA08ixoYBrQtU8tsOGC5f6rqp13fdunipc7FNSyI0VFYTmkj0L7nNVVWEerAxwdPzwMFV8y2dXWogSTd3wYewvH0IAT7+P4N7M9rVOapd5THO9jReXlRsqtwEWwnq+cxyb0oUoTuFZu8bQoV5Q3FoMquIFYyOgHpW+HlwnP33hNGjSwNIbNmO0MRgLD7moQl7FSOJkjBUDvjqUpRX6jzqQszqa9p/1N3uFL0naM0m5wdhYjz2+qHdPUKpxPAINgu1ZlpaZ79dea4Ss+HQigdYG2eSAoNWkikklQYH6vnemRsTaDv2lbby5lujeSRlKEVsAu94gfALIMaq1audxMFwbA4Kk0dVdB/Ule1gsXeEUdlwF7jTKDY1Kg4URe1ZXa+F1XI7QClfUBNCSkL6bWNitx9Z1Y5MDNuBi1MH02mFMFxcRDgqoWiVHrPdnemPpCTVhPDVaEI4FEZHh++goWHQyHBMKhQd4u+PgAXD4DB/f2QIWL+KrAwlp5ggOm/CA6D+pGCPLKYJOjk0ApuLxuRTmJSymkieUYlkfSIZua+ijXdqZzR7pyfCfRvKEc0SoeGMqIhwMhuQil1LXJm3lNuUoK2/wrkCaM4XQ4rNlpZASkCFkuNyvuKYB7J5h5a4JRe1SRfe65vWjM+l/AChlICssP4NVfBcwha4ttkDgTq27XxTLukHIQ+8F3l98j6UAPFm7EKPemFlxS24hr1lakdsGQNZzaAwUFWPAqGohIGomnmQ1SU/MMpI4SkoCjI0lUKEpyIpqIgUBOox6ZNayoBftGNNUoiyTSq+6Jwv/ukMlPIv84weOYP+lwfr3euBq8bBGWv7ZJrFhtJNRUY8Si5tG2J9Y+T69bsIBUYxDCmI0smPTXJyDL86lmWVpgTNtTHMGCvdjHqN3BgrGRD9XLogMoEhYIgNv5J1SztBr1Yg7Q6cR5pYvRZfvrQuGwDXl/raqczO3s7eftemgz1lNNBL0IVeyAdpQOLOFAsYCQxBZPpcJQPS5t2Neo3cfalZ1ZxLWUppln+jHniDdDqggAPCqCwViT+7dbYAeVDnqqcAumR5jtTpdnaZbUNTTOnSXtoT0OPElgp7U+5ZkPtkR7e3d2E6vWEJkWU0cNCZv6QjHzx2RSfjctoPSSVpEWePaPqmqQUCH1ktsPZjglRksxMy+Z3gpmU+JhN7dc1BhPIR7e9yjwB314TYJtpo2i2EwfrVsDWrNKUs/u8qs86P4W7Za+m+nZH/97k58OJRm1uB0FFOuKxjdllyacLfSgi4IbfHM2NU0wHGVn4YjJ8iNIe+LsytLAXMc60CInvTPxIdACXd3y85B2tzjSZWvTMZem+yaqpuFFhY9uDzUFgpVuLZMYOPVBBkC1KFXhjY56FQPD5QQ/zzn0hgmfilClvVfdpSp9BFULbAVhIHwB57qiJ42Nl5KJhh93Kpb1TcUj6Jzs2k5wOfl9/Xu9df1essLv5pAfKW/Qn0JmGwCa3pVZ34u8S95NVAMnve4uIjFi5u1HttUJ96V83ygbDOEe8up7A2jkiQYoxsBTJyx5ELoIjFxMViSuNwzPB6p6lxsKM86lMQb+2K5/ePIj3q6RXZcpIXGqqPPg4qt5by4C9vlPLAiS0SXuhBYSoPrGUzHY47hFE06KN5RsG9e4z3zLsIIoEA0LGLWGOK/k1c7t9oY/prral/TyP2+9Ve4PQ6nvGn/0GC/bq787f3E3nV11lAv64LLzS0cmVDCfJg/Nk/aGYEV1o3Aw9rgiqY+s94I0yruxPtcYd2cSQ6cjsIDXmz+N1Z5TNoXzGNJhJ5tMeqMTV0Zh0kCtmgWeIDe4Mdbd+qpQNbF2ljNVMtFrRn+TVtKoLqyqX6rNRk7Nk5LjSyc6do/utqxa484tmNUMpuveEI/x4JGPF7Vb9QjRZuAEPhiSkH0mR6WwjCNWAUEO1AtT6c9rSO6mwc/eEIZaCm4s/CUAeh0XYWvzv/eQvVN1jDxR2PuAuyJO2vaZaN55iAcZoVPAqEAsUcQijl5WEgRCwHLZZXZaBd2mkT/VRnxvSH7uJAcZD+9Lf6LxMTDTjp8qzOvY3DyJMfHIhqNPpiB6r1QdVVjlHHL47tDTGIr2vtCtEufKrjjmq04cYHrnO8Y5wU8ajmHerhz1RKkM7J/J0rQKpH5VPDrm+/KgX5abQRDe1rtNJtSr3Xv6xsWhLqhs4uuNTQ+knOssFBZM/3F2RhvSKS/2rC8pCHZIvz3OEy5wmqYYXqMa1teACVWuNrTE9YiDzZtB0fAsLDIXFykCjDOi4bmtg/rIDsHlzB/iuioE1jb6OxFjpBXkt7li/WdSVtmen7w2AxEztCYYyKbhFX9xvvQCTUvAKKmmhRBM6ubjAnv9WQbzKwaljKF/cPe9KL2VCHutiSHcbrfiXSSL2f4+tRO9sO02zTHg1CsJTGt0zyB8Oj1WPW7lBylLiOzQ6bfSkA/cX+sVcRrEBeX8J3DXAotKRpakbiSB9l5pQ+ypoSnmGWxhyF+fPBD61dJ9LW4Q43Pig/+xAdVI9D3eMoWrGeWztFQGhXHq51U7bAHx8HXasvVKNVmH3GAvERAeiQXd8JnRN+WzrFHMcq3faoRkqNEsK4kzAl7UzW5oEZzjzgO5r0Ahfp0S2HrOGLZKPkOEmupeTJJN/qUM+SnlfWlX+GwsSGn4aLUdR/1JewY9zrE06WcbttMziAf3pm4+xF4Se9pkvvDa58fgcOoROh5NASRFa2juAOVzyUH3a39jckh7Ez6DDu5UXG/yITfjZni0Rbbcv2D3VMJ0e6Ecssh0dc/Tri69tIqK/ntpxLPLc126LP9s/tw8aMAEJn+60XePPhmzkf5KAfgI/Cq3LeR2AUR2mC3rqUpBWu3lhlMoBZNlZYlOVWLpHmzjLXd11wYApumtbatfSUpCd0f6IAFi/6/NGEGqGUYbsigYLbC+ed14tEAZMxiCWnJbvwcT8+1O3vZst1VHdc0cXlcTaQdq7ik5Ar55ZyJsLWbMul2Z6rWuHq5fYrckCxg0ocUuqwMkeUO9orDsb1yvuSz+tpK4rHX9xeHH7Lazrvr3c9YzGmUZceTXR6n+wfaQFvsLGFEDzw0COPPfHUM8+90OplkehVXtYZdtiQCest4HL90nbnf+3aP4q6+thUMNw4/05j4ojxdVSY7/j9+KtU3981eXl5BpgZr4b/2H/q8pH75scQAPMvdwoFjgUEwCogF/W41bVuVdJdg9hHGNYJW0HXypaWdN9Yi1AmnRrc0tKJY3GuzXYEPqzh3Dm3twZoTlmZXHHYp2l4EpY+Ys1JrtOGhDWU9LHAHipSX1+X3B4M1+WVwxP01lm0VPfhuAsCGSRbXPrq+i9v26v5oAIVOWiy4CWwHC13XA/yOGdMqS0D81qahtlaW9zXQUmnUlhMvdbKehzBOslQalDuSTpCPl9qWCc/yRwER3gE0T3gGmggSnKl+6EH+ODF8IoTMVFUfnFX7WW2Zj/YUmq9ynHyupDP/GHdZ/IED0YBUkb8yPmP2Jxe6V/tuJqGjjStlO5HWbjBEi/lanxYC9z8LTTyEQHKNBqRtvTTVVPwKtqaGBLR0DgZikApH5RyUU9fvvVwNOmVeyt+CaTMFtaOUDloHWHe6AZrwZeWNe9G6DMQF/JBK3pLfRz0aV34GVv1ChSva5kH6nOAaF/P8f1ZfKOYLw7gno0wnZbFlwMsKYAFiGIkJlznIu4G7+pC1gMCEJmnHbeNIEtsFOygbRRar8ZQi4s0jci3p8vogaait1HOhjJp+zxLKLawCDQVFC0ZtMgR6MYRfgnM3rSqQ0jX5kwWFa8Mbg/EZEZDwhgZEqOW6/u12vJSkdIq4o+k7fvzR4rkg2w8QFvhERRVBAWH89hcW1drMNoFUPxhWTZ4Xo7o1dYYiH6ZlnB1F6A5X0QQMGf0oID2vzbXOLFmGjoqKkCCw1tLOULiE+SDkmlNUTtgnyIB8dVSEomvkN4+OtvJ3QVpltgSP1GbLVSLeCBPFGRQC1sgX+TJwIN/JGIURDb3aPaMFRumsOwjqvB9TdTa9sz4NVa134iSZHM8MyFMhj4AU0MpQwdsggGQ7nyBjYro0Prz3S6O+12knBnDjXoT5lu1ikyDWx7tQIzQovgfMWGxRfZcj645wg+0nKiKsMLytZx8voDX3leiDY1yQ4Bsoh7ZeibdHU0W1C1+1iCSfhh1CpZYNsGht+g211uOIkIKESa6VVd1n6OfPlGvdTYD9G2Cno8KGjCa0QOe79WW0TJYARjBW4iCrcADTWsH4Jl9IuxZ2pQoWk5YRRTgkwQw1DaAx0IlO1r6fh/N8RIeNlz8E0ZBqRDuVSuMYu4L97MhyZDKHeXFJXum+RlCskrZC26vTbqm6Uqh/V41/HlDFCNQUh4ReC0bdHeEJgu+wgGnb6NO6yXmOkabuklLy9HWkDYiTLRZV3Wf8dMn7mid5oDeNkHvRQXz7YBfyxf4W7kdtfgf6nCNEmEZ1KMgt+vMGNvvJxVphTrks94rwKkEdaoS+7Izcaktk8t683iomOm39cH9aGnTZ6tl/6Od42lj51O5A0n36Q/W9zkMsD+EhTUGV8w/Ks6JngctHgJ1KLf3TxaEr4zIBzvds6ujm+MY6eHqwfXf8e/s5/fWLeer7d8K2p853kXUtNyZRSdk3XV8Tgt2HFu6bP9HnVsQitljwAndcQPoixtIvouD20ZSiHBrpBZO4h5BsZRYFlVdKgJW932ooRL7w7m7YD76zyVcd3yf/mPGlRYItUGiPfIdVeumh3WgKavHGDl0mpi40Vd5tGu82E/6Bdf6Y3/n3RNQQsoiIvFOnI76aI1PMTDzaFNZlaekFihEG7RFu3Q5Ccs4TVmYlSnL99m3ptgrWmTb1tJbfuvbRnGMuqF7e6zX9GU9rEd3Vc/sRf14P9cb+qPtFe5EH6Nhf4gXii4a3YdiXCxJY9gcdj/pilfHjbyK1/E2CZZISZJqMr+F4osTXNq9lLNKHD18EX9FJbYpHoVW0io6UjIriZInR+5c0naICwQKQUJoECEkHaKCVEP0kB7zDPMC82rzbzOBNHXNZek96RtZ5FrO2kNrF2QG2RPZJ9k/cpN1tuuc16Wt+yj/W7HKgmIhsJBY5FvUWLRZ9FpMW5xW/KJ4pPig+I8ytQy0RFnmWWosd1oetJy2PE39osRasa0SrQasDludVS4qn6pg1lhrlnWCtdS62LrOeq/1gPVh6wuqW2q4DcVmzOaL+j9q6lCbVKVS62xdr+O1TE/ojO4xN5rOnBu+STV5RmPCpsGcsXfbYxtlE63Mztkzbp/zrrgjF+XETu7KXdil3elRz6htJm+meYbmmP02+132r7jlW2K3PDfaOJQ4mjv6OF40k7d2bb1gvml+Zv5s/seyysnaaauTr1O4E96J45TilO9U7lTn9N3Kc050znJWOWuc6531zl3OI87HnC9ab1mfW79YhfsPG6hhCVahg1PgQQoooAKUYIcQZKAX0Jd/4x3/ezwyvjz59uSu7/NlXuBz/ceVHwZoGAI58II4SENh0IUoLseMuyjATCzGOjRiAjsRxhDy1EQayjQQjUQkpwoyk4+SdJEkasRcNMUcD6Mgpkd17Is9kY2VdCRPekg16WzCUzwVc2Z5nsuUJZ9kQU7PO3PPat/q7asXCQT/CmH9jwYsD/ANSAwohuKgYuh44PpA18DEwNLAswUeQZygwWBIsHtwLwwCc4IFwrg5K/mlp7SVYOFLgZMVPM+JWz5jHidzLpdzBVs5wL1Mc6Eelau/lahCLUqIVEbiZUtORSgZ0i+1kpH2huzntLm2eWtCzcX23va9TbXfdge6z/6X/WQ/PdTDFxEkWEIiiP+JWIowQ9ggHBAeCCgiHIFD0BGxiOz252oLYhxxHfF/2RHIOGQJchr5FGWFwqF0qKvoILQKvR89hb6AfoD+C9P7XIKgEawBHIQABBIAgBNrUqWrPgs0jBqJbH9PrOVoQK0G+hIKSh6x4Puo0VCIhxyy3wbPvh35/DGUUSskM+BE+bFfmg4qezQkCG/xa8w2kxARJZJhhWhzNAr9AkWhClE+HP9HCMpVe6LQrUEIolot7RDQVwkGeYBkzJIKPrrSm3mEyyWJN+UI9zf6rYTbV4HEhOsKBwSUEzGOsxWyIILnUO3lZPiUyx4hQBAabh9EtA9CFgAIJgoUEs6uUAQsCmyX4ADBnzSy/hLD7ROvYzRWxT/YL5Zt1LiAZ2/6XQ1emkbm3Rgfbgf+c+3qdNxTJZ7aX7b9G9Akr5AFnvCRCE4f+wUSS6J69Bor9zzwwAu9MvD9JtZKfPTKyuNjQWdgDtxKO8PhYe9q/eUYssNtsTj0i2TD/3e+u0iaDNzQSN9ldlRpCecX/TkAJiVzpRqZhr8QS/cxdKo3n5pzP3L8hy5PFHXIbIeyvh1wPGerf1VgVtjPr90O14Zrag5rCBBx9i2BPCNNkryoAHHv7bT+VYF6Vg2X96edYEmKzCW7aqtWZHCdV1aQrC+IAajbCt0OONro1mLVWe2gQAZGdU25EPfOsxdBXy/JoQnWmea+gljb9uJYkkGuz/W9cEBzfR82Kaeu0Li0r8YfDv3Hm7gAfhRnCzmM/XJ4l71EM707FlIgsuXHygVwaEdAMGZmuGbgOhfdlisQIdt0yarAkLQ5zaRYRUimH8wK/Y9CFD6cc/MGKV2foPrUp8eChfgeMKdw9mgOcLHDGeXMczW6A3i8mJNJatYC9lWiRDi5LZxk80adLqifbsPlvK7vl4khmdWyGqrr3CcH/Yt3gdWQB1Uluis0nSMS4Q5UjooW49X+676iADnA7Al/ej37fgnHeJNzSXsmN7EhirJ2H1tzhd+556zYxc2M1t7wx0UGmGEtqLV2jS7NvtUPWBemBE3uP9Zel2VfEcjzdp/ZU7JayPs0Jbb6mw41AYno9UKk20xDPfTXQNfAWfz/8KZf7Lsfh7Y+pgl0f09UnmnpFO4HfjRWSe0LgRPNT4MFVj62KP6JxxTfwqjib3iBYjmev/plVrWIJ08seHOBtQoOuHZaU0wETYEEKdchAnVWVQ7tHjg98EsLa9PNn+3cheWoKL7/iAtuNsvMqXYOi+EW09lTxLWxl2Q5MslD1u9n4pqhYduHcliWjsS20kbnxiGPhbUBvtsgRBj//RDdGCuDlD1L7tFwBlw9Y62e31xu99fRTQZ89ooTLIDvUpqLqlWKA2ZphamzxkTLgTFq3LtGLg8bbx+qraLvxXNKpZQBsvHoU7KuCR3uRGYxEtG/UCyxepC6tclLy1E676d7hjsDgS/Z5pX8u5TE9TfvA7OsfFwRVA/kvkpU/ijw7n3v7nv7/f9Bs+COFPA/hWiPvvYcDSGvBTwkCJc+xQO9j+SzPN8UuN5dII8DAsYJOJcUmOSQLkUwTBBpdKKt21or+oZA135OgG1ypHJ8xS6sV/wSk4qn8TnFP/C4IosrFVdgXeNVq9LELV1NP28DB0QMhbBTHLRVGmmLrET/ZxfAJfHsMcrno9ZFsDKTSuhssY3tvKwjOpCYs2lhYsGcICI2ZbsRu1M4h3Lk53ONFCqT/tE4mYJcSrxABCqdIcds3hDFHSgTwzSorXvC7zLu2/PB63wMEWiIVHFu+b9DrzUqIQp1WN1r0ymo4m+PchcHbEex+l8K4hCmiq3+YpPQTrzOPv7+GymB4LdEEi2EL6bqysiKAfRJgkCSifonF7oi8hvtt4msjmyMg58VfoaRhugodFjoAOlm2GpBhyCaBAhejoNAxgE+bzg99P5EuQVQ1arSsLXdpje1jDJiWuEFXinI3BKMJVQiYeRJvOPNPgCBZ6RwHzxbBxQOJ8TEPl0Vo8VEA2Rfh6kEJF/+lLg7TpUMScjLTN6Q/xe7h/JFtc5RHa+JhkMBHICOIoqYZFG2I/Okc2TCL1keHsVpYWmTYmlqejhrbyQewUDtftBoY/rjufdpMhSeKCClLvgcovpOgk7ejBSLSXmrl/lqVbOjzM5QQRlDk0ZXrv/07CIxIZ7u6+/5tnyG8p0iVXLfekijp4RYmubUsvK6EkTUCcXludVbMN/JioTDGCh1xwq7suFQP1UVtUR9sLSS92i3ZbIIz/ZoTAnlNaABym6aHkPjMsfIkMpSkI8FvfuFYB3mxcO9Tad/DY0w7wiicLjl2Qu5ZILv0MAL2xhI9eC+Pl4ud7ZP+V2OpMHaY8kwokBHXdXq6X2rIGOCuV5UFkINMMlPcVuJhs/N2Ah1jhUzwncfsvrcHhtjruyhn9/89KGxLdbs4zUnUV6UJliZIu4thyRzfi0E4AjMgcDJk35UPb63ueqDpYoxhvD6jnChpOt7pPUZgLVZCYxWPs5X/BeXN35oVZL48Jmm71bCdbDYNPbmRNoQWChykIaAOHFb8SziSN5r/Ug+PWsXmBBnowaM/nI44wUQCSF5lrpM+K+BeXPOX+7GYYRQfTYmCVsRRB1ThacP2VZhC+8KRNmAMF3v9Nwz5nupfs8yUNl4/cQWDH+HkdGDiFsR2DYgNueVlnWAW5MQCW/S+kbA8eY9YJ6VjycUSZxV/B0bFN/GMsX9+ILil7g6aI5LkGrNx91eAV/7TYOluGr1663YEbcdX/DFPGsVrIdjFooNZ+mePV5x6k37/dFHASA0FiZZWQC0GkAQwTLC2vBtttpsBtNqxUGkX+xNVxyDcjlz5bzY45uMYASKjkuNs2AIi3qft7HZ8kycHqZw+5cCMxQjPltN6i9qbi+vTWdAqmIlxKFiam32j/rOkDDaGatiP3v7kiB2YrAvD6jQGY0PCO0NMOfGcbqxobhDgD+g/1EtGsuoh68BSos04XD3iuFNT9w4a/za0+7UFnXz7zIgU+Rscp3Nk7CAbidi3bZEvBVwkr/Vv8ORCNaS6Y2YcWEUE6ixYsN8YwoQTh5aQ+dnGcuExVpoVx91zjJDGlBZovApwW+Ld4M1sBQ2vKudN9x5gn/pp/qccb95QS93KiFu2Mi/5WLtOX0ZCobrfSQaNfjv8X0pqNFJgO7wGlaeAGX+EIWa0XrFCxQFHZzI7qHRl1ygXXK2ZLXJGUkE/ZEItZuKV7Y+6wASahoQCgoacIRzZxzsB6n7Q07sSpH5uTi04PaKbu/TXoGWKLk+24IkFV34MNi235NglwGJ3W1NP++CW+FBG9uJPO1wPacyJS6UaGsTAeOYHN1gI1nGzMNawzoHdst9WQsL0T7wmm4xpnkbO7oBtLoLxiSCINaLYqpbO0i+3RMrTkitSmSkmMrY3nudg5iUMQiu2zWztKOJiRXhNNuLX1hv7wf52Rbvup33IwlEqN8l4pqpPRWmZGUx9znvzTFfaZQIMfbYoPMRfRJWZWud1b1yEErBKG9OU4HC3TScvDMWX2rGxiHNmtce7AqkWtl9xkEXUcSf/AASLuom2oKlpbXMrJTcIAI0rTafENpX4Zy4qr1xG+BIvlbAJ43psTXv6ze2/x/ehKNAnf8loIrfnrgAjpQVBPHdpr1fhhCqoID6Qk1GBbURzn62aJuGfmKfOgN6ZMNIykLJ73W+h2FnPisq4ckGhAPOJf+an2jneLG+/IZLM0VKqNWndTUjahQckI2o1FqdggINDCrE2DxXRMN6CtbjVPUfelVg1xuI6DfQ52hzu8b9jI+PKz6OuxU/wYOK3bhEMYBHf9O8n+AexUs43ui3alRcu2vBY33WKpgK+gHcyP/FA0A00RMb67dSQA0vO6vWPILoNqAvQtDS0m3M1NpaAdUQ64P3QBh1/8zmHzKlVL7MEbito/zQTC6EqX/4uw6BFieu9enLeguS0BxOp/h9r8RmP2rwTLBRS2weWLHVW8uLNosV8Xsclr6xduF247FETaxVp1lLzibpurJ3zvN3/L7FunCMAuoiBLYwCbmnXG0mV+Ben3X9ndXR2JT0HdsaGndIWd8D+vaPF/9QKcOfNHJm0J7JHH+ulKbz0vFnq3h2e2o0VrqLpMez8XXHbQwyQBMoac3tEoGxFSTtEoLyiGQL+KN0viw+n0JjeKBHD1K7Y7RN/NePabNZoDOY+7GEqvKNgkdhgm+3bsFXVsGFd7vsHGgV+QsSrZ6BgTVpFkQQRN6tPVAAUA/LzjFPtBgvJkT76fRSbTrepjFpJ1e3KRSI5rb419N2o2WuLlrX3i+mG8ALg9pvSiEys0hjjUZtWlH6tWdB9l/xrPVhp/EgOsMWqp/AIzcGpJWSLPiIk52ZfibksYLQvjNoJirqcmXXPfHpPq5YpyGipvXLCpJBMaj2S3jWppabNJkoT6s9gL67/ynrfjFVpIIPHyUjKEoou68D4OCFwZhHAAJfBGCTieiJmZO/qjb5W0ZDHvQFpRJECgOvyOsDc8rpK7OSEryyyoJIehp/8RHVao7VOLl7z2n0MMigjkO1iAkw5FVGo/SaYWym/k9tFnylnSWnQaRCQGJxCHz1BP3aU1g1fqIS3K75lUJ7CoXGsHULvrjCTVAMC+dWQtPLPDK/hb2vauGs5Id6lIj00FzvtwgRCq+5GzwsLKtizzNaulhrhjGYID/5wlBSLqF4n4TQu8/6S7akPUGyvmXf9+KnoJWG2GBoaA01zvsYAJfJT3toGhhQfBIFZGv+LcVSSSC+mEZRcY/T3vCoWm1joGVmScoajE8Mh4Acl1KLuO0Q6m+gYBM8ZMZ6KjgV/26zp22g2rLNeDTaKX1lAf+6wcgEZ2UMniVTo0uUw5PfKcG6eRHjrpfKdWzNgNpaAaPMj/4414SGg0xqaG8ixEPWUuYFUdY0F4tkS3Iwb7p2VoTvrKjlTXc5rGajjpqAkvBEBVnwj8GB4G9ZqW2I++lp113pLVxHQko9u9bcfXubGEjJYIz1zo/xdNBRvWl4xWUNe0fN7S1tpmAG532LDve4EOVlmPdzQykT11US89aI1B8ZXW2WucDABficM3IwNQ9R3Sx6Y1IhEkuNZifkhpCsOtSQtEZ8PPiuGYJpVj7+V/EMvgS5igMU990jOfhQSlbFdcCaYnIlYl7EF32OSMh8xsZxfwbcE1QKP8M/udLuMhKqZ6NSb35zUq6AAuOAOK+53OaZabP+1UID3ghJis7p+JQMY2OWbPfB9y758Bm8ocI1J3Yhx2kBOjw3Ei2RFAwTLocxT835rXZIqcbMqZLGU11XyjqeP6bq1vGG682t4PZymA3/Hypjz76DuYBwXcXKHrHneullY+zpa0lkOfrbJyFB4RMA7SU3TMODrLOwG/FYXG62qVyUY0dJ+LCdzkeXmfr2R8wTFCpJ8Lbeory86Rcp/WCkxWJM9FIkXduCa1pSwXXh4vCqB2MlWmIdGwhoTsvJ2JNUMBgG/3cNyssoH1KVRSkf/zFF1k/LOuWzBbJo3F5OneHbXvsQ0bO7txStS7pRLHWa7VTVkEy2v2t2nWudtwX/zydKfxtZkqpo2gbjJp6IB1xIofygj6EO7nLk2E/aLxo8ng2Ot2kDc5aDzHOuEDVdQon2E+oxAV9lHCTGQKM4DO1emz1e8px6QAZjE2VAgsFj/1dN1I3zajiyDOfoiXLyYOR8ImgWntEvOkzn4KpuYVctSPXWhnQBcue6CxdFw5lvdlUxIFjgtPBWgWI5mBGmTPEA7pM6SYejYuCgZCSP+ICxdgqc2gmE0qEeBpvvJDbG3sxHXP2H8GVxRUn/0NF0EpbwNwhAPbqeAvYeGaWNPQUtl4YuzNjWevPsouXIcgXTTlxJtNtDXutb0ZH0GHxba1Fu21pR7SxFROfMBCWTgYpsCC+PqKt25LTmndppG4cOCnST4cwZhWu6kjVCO//VYBvTZVzEwCJeOLPcFk1gNzdHmXdvtlMykJTLZ8o4JSkddq9joIwSEUU61OCBI/gzolnAQD5vEvi6p1MPbCn5A3LyseBbQVwB9UnBt6PO8qEOVrY5gtJORDTF2Fj2Rd0C2qYbCnnYViYE/7bHPFKR9rTrks7BKjD0Ha1C/vOamixYm12B0BL6uq6pk10TOWyke8W3XT44C9onNZUOl8Vy/MEnTC67Ur9t6veDDG+u+5YzsEmzD8DalqJYLmYkGWRUrTBpDCUVW2x6uVN3zzuXwL/bS42XwOq1Fche7PzRdOoszIXFOeewXK80LQyq4ZQn1Rbrlyzy7woCdkFpTs3Rm9EUJYmfxPtEcF18jchWZZ0ILz0A5ala2sTbS5sFedt8LCF9RbJgbmxh2HuU25HGC3mx7/dWsKB42RTkpUQ25pzyvHBWPQsCJ7d/UVOFzFnaM/WdsPj436MwsX3uSxu2/AZco7xwYwZc9UUr7EhZ+IqfYJXiUXxV8Sc8s3GRVcHi7qsLftxhrYJNrvNW72uEG0RDMZRFJr6M5ff8OPSFaReFSozLh5SiKioECnYNESsMWpcb5BnJMlfWsde1a5RXc4KmxEzxOp0G3nC8u4MA1jeWYhUaMhEISPCeGKo+tFiPxK5egCbrnq5Uq0N1qaHFjoYN0FIrcqIiU+u/rx+O423+Uru+N5D26NFYUm1Sq59PPjbkoZrLXv6UxzjcITwdIFO4dEiqfiEryenuygzdZdfEJqq8sVSMbDi0rcZhgcUhmbsjfRjPZ6nZNetwnh12vY3odrYma108rYCB+NXtyqGhQYoNulJNbRtsPKW2Sa3K6bFaT0rkqeXc5oDRWPMsfXBZ7SxtCQ6KzyMONi776sqSqmuHMpfp6gkvRcu0qhUmjKGkzK4+0IBNc96xa9Cr3ej1TcNoXj2njTSfFvz2REZAVWo2P2gDhGBGij4T0DWuTKZRZw76vO3QMLZAg58EjyS+wcBHAmSPI8WN1Na3xK3HaC+ffQSmqbaHkQTDKyiU6PNAZVp8s3Yg4Ukl+FIwlFgDqf9eYA2ITSnoV7mvaz8NCQ5Z4sEB4czfKnhmuJ+eyBDY4OPAjludBB+FvjlJWK71oBvS0NHs6/moaE5c9xMZB7ek+vmKUUwp7saIYhYfVTyOixU3Y3kQAmJOnO2c3hk4WJNebn8yDD4aj0+yC1bvaPgtsGCfNuH/0OP2diZhOCju9YN94qzPusQL7CnT3iAJuvr0XZPzfNc8H+TQayRmNgvvY9nb8JMm9SaMJSth0WfLvVFtDQVbcKoZh65XcmdWKrJJdXLY7JsbVgrcRnKxHGsSHLKcvQ3y+jT1YHj9gMW7gzO6aQnt87j7YXB27524pjBBXG1AobEHD6zxhUehvNXabL5UspOhqBANkoVHh5SLmAibwwaggzDSk/uAJTwevupxW0RoLahoQma3asU6xUzRY239jvYTOoB58EDcfefgAxfDBOriyX44gHjcLsSlC3pE3kJi1wy6VaaH/bM0A3wrMWswncqcfDTFiMVYEnh5nwftuMMMt0/du/tuPatuqa8N6jB9CWJ2lbRMaG4MqzoOfgmNJLTSTnOhl5+vIcdKltFQ8IE+Tzlka6iGBsYFzEQiLWLmLhtdyJgffy04VoqTjDwHWL9TxJvSFTVFcFD+zdX67MvK9Hg/fFrQDZJxpW64uL8bdYO0AmEt+Mij6y2JwWr+/LgqxlQohFUGVu+wVcvcYHMCh62QYvmKMPbwByuQID/Y8HeohEXtRls349eshmhBEhl9xbobBke87PgUGBJfKjJZWkZt0hIT6/DY/84xuWdJjUkCS/xLF8vJ2UxufGvWmaKGoEMc+8ypNwXabITrLh2Yx8A40n0pY5uHPdZtjjVFQDtnyw4ci0eQ4ajghfB+36pfTJRVjG8YdD6RU2BPKsMP4hox6OuBYBx0HxQuV8AuzLq+tnosVTyLzyv+hasaV1mPQtzaueDPW617MBPU3Y4vd7W+/yTNgktIwzkyK6V8OiBY/C4YgDpojjtyrQ89J7Sobquk065F5Ci0tFOg2ir4yMnscTw8rlVOwV3B00ktRSg0PGONarvC4CvY1LhfeIVQEVNxsLLH8eIyVrdYzzP7pekXdYwGK5d9HTVzPXj+SSZ376csJxernvlUmkzH/Vo85+xiPc9cYaWPXIAfVaWB8rBq076GM9qXS0tlrWH7NEcjrcnLlHOZQICSEKPm5lxGvcnInQ/D9nOwVYmjYE7EkSX9VneAp1HJtTr4fDB5nb5iLgOF90DRjIdPX+8UgkgfmiL1wshRbuZeaDrzF1gEdzK9J8UOhnnD1nC5amsZ8+ttC1s6QGiHaWYhMRNeM/F7kasbjSN6dlUniBe+Yer11L8XFeRSN9r/z2rlgEkrRqI6qQiuyNdFDuVcFoPVE+ZybexS7XmjSYEK5W+tsA3vQ6azl33qXnfNVk31tiNYxim+6l0cXTdJrFWzIGkECrvytgjHLOCzTihhSNbbya5iHLJq13tQqd46Z4y0bK6WM3+tkW53JBJP7BnFbOC+cHHvELingtvJ/djU+S9YCZt0cbgI/Xg0MKvtFgmkXbZ2IkAKRe2GJ5o6za8gfFdWQxmdNihBtzf8zoG/MJbXgDk5SEMn9NK5NxuNF1oLHkCqn9pXi/4lYx2RlS3Zs97G3Tq8UxaoM0DvdOad5Ebz91xmdVFF/+4Kjp7JqW+b8W7oFidoi7YXNVAQZyeeSEyFsXqyWSeHF5NpnkzS4sN/Hy7chGhe563zf17o1mLqhPZ9gUi6UaUMXiCerHTipAIF6/HPi7nUkakchiIN0pjgUhM+nx6Ee954+JtyvzZgGp268j9ErLu+TdUNHzsUmBpBa3qCPmXKmSmZ113kKm+GAwgqR27rGarMT4TEFWUsEUxmPzVfOvYQjXJGNACqcrGL8B1nBA2orPEmJp0X8joavS2P1ZSx2c7+an5YI5slBQOyc3UcQpS87dNSaGMgTMJnyO/UgHPQYTaZOt3ZqHWHZmkYUlM4MjNb5zFXKA02iLPIek4JlZdpMMU8SaJ+Mc0iq7vbkMb9NC7koqQQflAZzIDbktamUjXjObLwuqC/ksEIRYkHZ7BYdt8ijFjTtMt1kiYJ/g+NY3IDvI2LOHv75UobgnvaukWqlKEOG60rP8KEcuHHo4VrjlTfB3fnOYSYbEOyGbcxgbZqaoA7KjS6aJ+GCog5TCKxFQFx9QzEjElNUdSPp8Dn/SinTozXeZakEnEQDmTC0cRSlnpSLvlch618zCjycf9KzvMivr4HCZXrSlHR3MAjGfhbyiEwiAA9uH+lTPp8Lw3ZXVA7VlHOfzMAxiV4DzHD8bh/QEJBPw71o+64wG7Wm7Ss4qQCcQMrSORFoNGT91tZtkhCRh/A9k2AYzBLUS5uO5boZQvZwE1ny4o009+xptXzphn/vq/uKrLoghZR+ZJ/3Df+jfAl6L8Mj9I/A74NugeM/rejUa0OR8Y43F80/G/NexrTPfrhtCWLylsSFN9TGatiNJQficC5P4E+qEdiPjaYGGnI7bZ390N8nKHSUIqgSXdQgUZ6a853yfUOX5XeFU0TUCQ4LIFEOtcns9lCD1r9Sbg74851qm73qhPEg5nNKWGiePhHWTz4JkH3E8mBjSk7X/EA1jRCVo2L+7qbuv4O5TD9/xR5E/k47onBW78Ffe4fYlLonvc9HnfhQS419vXaRG+/GGuALgzacXOK90ry/9nh6RUjDkX/VfKarROEvb6+dgJ3GoxwP1zHZQ6rYd7qs545g7CICP/x2EmPwznLorERoBMJURjU9BWcN0N1FlFXVusG0JdvPuV9m/pJJPJWawKPvi5AA7+BgEI050sBYDIhL10REwd9rww5YXeb0FR63zQ56sfSCA7H5AnfrRLJbbY/U7yH7L04bv9QgrMOcuUH+MdabMGIbtiM17NJE/sFkfwLZ9HEJS7RjbzXHWVBAm2BWeWoJCUiabdS5+It2SPrt6Mykr+dxUoqDK2A65lODeEZFLzWugWTvKp8kDpRiSg8QR1tSl+Nv1QJxAtB1KSgTemgkbNCanyLay4HBBMneLihQo6brt0teMUYnv4ZL+xOJ2gTgz88ebc1gJfeJBIJs1CghUgIIqGw92/SSrXOO+5MSAADt70R+SdRRW6j4B5KRhI/d3O/g8hoFfVvNv2zLbiClDH3yS/qNl15yDThilF9muYXsjh8gsejulYEyoqcu/NC2+jvE4wt9CmRvlz23VyRV9FzDBL3c+iA8dNiQ7I8HjDfup0c033NYJeWWx/rXGzAZsm5kcLCPE4cMaSBP4rGfLviW6uRNRqGG2FTKSnZU7ch7nJa6zL6i4pmZAlgX27MqOSNI5GwOlPJRGHo6roQ2quxTPuag84GaKe2+a+7/DsACS2OWhXnzazfv7XGZZZ8Z9cEAVdA3qGo/m5b6eoaTnyLwmvDChJc6RHDV5+YrxbO+3Bmd5KGMXcwqCmiQ8EJI66lfvqrKuHbM42ohwemfzbNYICfiZxIWyMKU8v+e6bpMICyFeh7H3fq3sJK1iM9N/rD9sLkrsuhgE5JCXVdJXXout7xxbra9K6FBChJYQM8+ZpxSSq/1kYUvtr3caeJI1GFHXw37+3IQo337r8uogthHqx59bil0g5TIO0qIdmrdYHT6XZfT7t6SAYBKJhOIpdvdpwgoPGyw2Ta7P6udo6iPDugQwy+fDW4LOR6H+e/H5mBf2vFpvZ4GklLRe3tgPvwQ1fJTlR8+b7uqZN/1IMOHtpPszbfCRDEs3BU3svfcTJ0dRq1WmEJapsL4GUYa2HYYlLBXjxg0ijYa/vJRaM1FO5vcgQpanhfaVC7HiyvdpkynHftkyKRv7dFiLm9TGmO1ntnGIvwH9y2RbsCiPT4+rRnhlTC4V22W9M552hEFDA4qbOX3kiCIB6/d7b6GhiUcju2A3O+lzj3MkU1nbWZOw0dZA6zx77JtUlYbYZml75usH5tArC7L6Wd09o4XTsTVacPRKvECSjqXUIWRbKDS8facNi8loK7rnR0yQrXwxqaPNkpH9Gn70dktlmU/ML92kQQ6/Zz52s8mdExkC7ClerrCcEYzlT2qdPUfesrjb/9ta5BA79hmqi7GvRcKooUjvsuNWShDltcgeHvDphOedEw3rHK50nnXbKu2mFrMmjlD2C0t2+02ZgZ/Anm3zLkrDrHbUvaPA4cEMxPcdXgwhuwvK0Yhz598BAO1c0bWERmYEPFlWwreywvVcQBeWngY2spQFBX8HYlcUo8RDY/VhVhbxiJdejzogXEcBGSsx0EHbIFGmT/OXMnq4AI4MG/3BfB6qaGM/BMgZOHYrJAARGCjBBKqD9Jv82Ybe+x2f5Nod4IdeueTf5iXH4nA5sRvH9WTPJgLKHMCAnovnF93xOIUIjP3bhR8aABTSaZOwenM58bB0IW8HkR0GaBgBGvDU01+qFrYJQzDCyWQNntUjLf9wrTYBGts1hkvnhh2TlxwRmmI7dFLfwgrJmms7YdCeXZ+08pUKewma/Vf92tNxUsalhHUJ6XpxM4WeKVnMHkDqREIuHcDlPLFes6hx8GC/IX8/xXPMkb25NtGirmL4rlB+X4FT0yVYL7xZDo58zxK7pZ6wnX8nCiWeJv2kSzrdzJmMe5EY0IomdkbCzcDI/ZFJzKSljzU2W2DqrCuBOIXbPfGNjN7ciz0w4FN2ijZa0JmfJvjrshtFJpudpsU30O1BW+EiJ59fqoCMI9GG/1lKIdPXgTE5JnzpzjPEpKR4BPyAkEZDLjJnKTd7G95A2LUwEn64ebTdvEvy4Z2FF349ZO6SX3SXBb/eVlEmq6tdOItLgr2zdY9W/muA4D1Z9mgmz1eFecrSyqNWYYyFgLmnqjcY86udFoVz9dr2NSWHQUTpBeWOLx3oQqZzBESE18tdJSE3QFrrUBYLsQJVf4HS9o443Dh2XOrVjWvSKgLcj/HY5GRra+qK3dDshDj3OOY8OPHnn7TH1xhwF9KJPn59BEr4BPhX58Zq9Oqz49kJf6KbjReb83jruzVgdSIKmHhWW+TqblHwvvOrSRqVtt/MDtUyoMdMihqYBkjwOfNicEkbk4IArhGslpy50shceUyt3Q+J3GheOcFtKDcXEXu1hxZK1RAaWy612WI67fS82sY5q+SACPvVMoPo7aF1eraTUkArxcHL3Q1LK2HB+Kc+T5tcZAi0JpQR/XSXWThoEeokQIEiy0JzP3Mw5hu/3UepNFLbS+4V54lsI7DGGwyLOQcS82VCtQZRLLz7KTG1U6lUqGEBxXmZVF+lQZfYgCnWg65xzMmxdcUkRnwiu8TUYgK5wrZ2WDupXxC+shpPTEJkj2jsepykCjjc6NCxXwwJ/WDrzIRbCxCm+YPxCKyJyqiQG/jRPBS2xwPoVyDMvY4asFaw23HRzcxcjMLyop4r7T4ssSambQU73SkXhDP3CcrC5MdVuJQ86AS6xzO2iUOOwLuqW4rogZSvhT8vdruYJlB3vSgBXgqNK3mzZkQ+tmR0aGwBzf9QRKqRxUwMxOZJ5lGGV/TpaBUTHWllZrgAR/cDufFA/5flI7NJjg9hQmkFSwur1eHpNwH7xlll6RqbQhDM5g0K0iyJz36zeIAE37a+NEwwBfsVcTy/A8PFxOhMb4hucXsTDJ+8fK5tY7KAMHxWfARXaYyGYEkzQwdLbyzAZBRTl0pewkgof+9o4KNVMMG9OkEBiVtOqYXi60sE413yZHTOlUs+JcD+exHI/nxe7YofjS/8SowkaWxsYmCxHbZAitOC+SUSc2M5zaH1/JwCTNaPq8Wma8hjs8Y4gvZiBhg7rEbSGOic8Q6FyVRZGGvsikszVXFl442wmporoCt8+GZCb4Xwtl099sii8rrwd0Q75lFcYAVWIowwTUDXfAQw6Z3aEG++JlWXUvnRsTsoonqayqtb/gukY/IRO0Qrtbz2WG/FG5QlIwdr1+dmePTOZof6J3QjD57/ePN5nasKmdt5JOZEGbml8AaIBJEvGqGbD9Hnpj5K/otqw/cmTFbppV7Dh9zg4pwDC+d6eMu6LTmTxuzUos08MIbottlsBA3/JKK2/rLVvMgGvNvvEe78zu5Ozh+xYLDsnNVlfEyukEDX9RUvZlxQV8InJ1wqNZIg9DTIkp2BcpZPPnRHRzk7zrnbFB/9SeSXQlIrYaVECTaZzcGYwX4acmOdMK0cHUSF85sUoWcctcT3cc/DnUrqgiD7dKcE+iI3N2Fp5gJAJ9VdsMe592Jht4Z4GQy4RxtMotnoGSXjwuyBaGCUwl1lQJBIYk9GH5cfMkOLklEBoZqotg1c0EaG0BC9ypSbTaryJq9SqTZaZeDsbEoMdl5Jm3JPdDz8G+Wv14cul0x5bIQcfahl9AAOmAB7ezQtaZUJbL65V28kGlX3mX0nY+X6mdlyqd4hVX2e+CTBBNg84npEUrIgB84L92QKSFwLnNQweUBRH2AENi3KD3tjdhQLilgLVizzrIG/mqPvB3j9gX2IZV3R6Vp0Enk1+wkhBXrka4vqEOYOBvbXuARX+HRbAy755tthvFn13KQFDYV4wkjhwouysf781uNo/3IHoYWuZ8vyi9uW89E40/OtCJCHlpOmJ/mQ1zUmNKcMaJew8xzNUKvYUlvmLT6Q58TB/Y2f2aWS1n/8xfJoaxFhUHZAcOmMbXs7j6RK5vawB0K7Oo54w0v+fLsdM8tC+PTaEq8JM8smOdEW9ZmX/OETn4Y8Dvn6PIMS7os/w12Nejf/r4sW+ScuS/uLzd4WJ/zucT/m81qvvDi8b99d4citOT4UBhaqjti07TJNclcWE2O5fLZCSQ3o3W/TSaydzEfJs/j7XoB0YFa9Z8u4MrTlXM8UzlV6z0ugzijzJMqK2c1zPcoqF/vTeXeN0KLpulz7/Y1vrhMa8n0czmBb5SSJGpFH81tOcetieJj+3gvTuM/3MxdYViayAYX3rJQYP3CR4/fqw9WMC3WzggbsyprOkG/i3cTGuANTgNSaW/7dl6Y+bAU0H9gLah3E5wM60nAlvTVXiDa5sl5UmlYV6ldJxX/1Y4kVzpk/u7BMnUinu6jGo4A4K4bXDVusVFrjDMI1YlXBtce7I+7z40otHa9kYldIE7Of4PW1phkY0/Wgk96B94Aj40lWcb6vshJ0IM3WPWy31ezftCukgPgQ++UC90/3enxRLqCN2wawirQTR8WT4XgRGpmbA7rk/smUvBNCyB+wqfl80NXUv16YZLHayhuoKjwL7F6rFRKTRK4m9Wy61aXMWmaTA6fWZq1goWhiYrmEqlqSyjxg8y2BZP24Jcqm+kdaO2uQw8rdznLF3VZFbLZQLqd47PjQgRiLLGF6t19w8E3UYaIjeo6mGLZk6DUcQ7UDm9j3b4jA+QKbDavGyVCLVEJJz1qWFosqxIMnHQTWtti92DKucdHdGH0z1Sex1WhJwO7UKsbnK3c1qHhR5ORadSSayvE5DMee/67FQ17e1FeWFfbvguJPXwAyVvBmYm/vHeBdAv66D8KUREBwCA+H7RZ0ivpbtS0wVLLb5kqLCXJJKGAr84YygX1gsW1Oty3l3ZiAoIX0mhdDrwiRX9s2pz9ipnth/Gbh/7lREGmu6W1FuxDC1zSXlpCTzSBIcKsV9Dzdjw9QXWuQ3j2S6ygjWQ0glnZA1eLylyYsoQi1JUE+ExoYsIYZ4LIdfTZhvj+aa1QEKmNK9M2QzSNWf8y5d9Fc1qWJV3XozpiV7No2HeyRe29NGGw4CtYO4bcv5/ZiquDhd6RXRAns4lWdJeJDjTkmdmmIKUV3hmclakNqWFRRNLum7/zIUEwVgLN/He8cBCBiV8EA7YvZe6ypY51DIpVrvqmsBO6/drNUxt+kijVYypQ5qj4xmRQ3ZsIzLDamjTBc8mgIn4Ef0XbXbGFrwlXKH4PNbmx7Mogax0DXqN58iCSKobLbu0zANT+JWfDGp8lorBI3Kp+Pe1SRPzyOMCbRhrc6HmcV62unNWkbocH95vNSxlVffHWzxw3ACTXGJCy0yBOXCv4NodSGvGB7+tNg1fi1zXkVzf8nQGlLSd1Fp0BDTwqY+S1YdEJSnfPxGoY4DhlC4bqw5jNHQ75UilrtfqKTxCpC6xaxmc4bKxW+wCCIDPhk8pecOYQszDB1EeTTLlc9bycR3MBa/UTLdtMiqDtE35bsUVujGlrk5z33c5na43L9PASArzsDkf/1KdGNiewlgCrvS5fIMDTyZPQcN5+gE7BE25Ty8lJFc4fV/6taLTMFcDY2F5p+g+T4EVRZyvOzwm8V38HeogRUmo0XIeEtJjNI+XquV7HJUrMSRAMdbnCLgKmZ9UBrJ26Wz0QmDLxSaf4Zl+nIZe/rGbCfnsqR0QR+NaC6ompfUMZDu5fyFunDieFHuN59n3ChOPDI0qgNueROk46uyHxfd1cFrxl40a3rf46GWY+LfvtxdkWn+OYbqXGFr3WZZXo0CBP7Xm8rzxkiQ06EQtKK10uUVtnM+3oCMoeluhjtE98rKUnFeN7S0vRhtdoXbuQuo1lEjosvdgCWwp8L432K43iL/SbM5apzy63bloyr/emx7970UnXVh9uvpeOu38W/egxTcISdV1+UWX3DISCwTCB1ezoJnBqDp917B/Lgh3Lleiitqcr91t9cipc9kQ6SEi5V6yBuF36KJKj7Y57NoEWB2yPsgdb7WbtXvKwztW81XvpCHoVBKo0SidN/Q7nYvlMK9WNAL01/Tlxm+u2eX0+P4LMCPeBy+Q9B5meg3COK6A/jZsO7YVcKl1U2LzCT1OBfkyAd7FcUqW+llLWOL11plJIouGUi5r/BjFj9RLRP3/cFKyZVKYyivzB8jpbB0vrpnsrIlLD86JyndlJ76JRE9dD5u55IrlopLMMSnHcBuTQpEd0VolynTxM9hvQ/7B6rIn1heErkVNLqidjPElGF8oHKaRAEr24c0+m8sAh8Of8PuiWWdxj0ZRLq/0UbDQEp4bSg5CxvAqX7bBQqwSkqqvaGVnqvBvrcXPSVlZ3swKsGvPnFhJjJYJgMZL03GCIKR2zh5gE2rbnfj6ZaRscPZC1DE5KHk+yVcV1g2XUzhs4YdQq/abXvbqy6umZUVe6iu+FFgQbwUCM8VYwme0fc3TaCGvC9xM60p7737KI9AURtMVFwIIeVRbMfLScBWsA79nYARjFVkkf5ete7LA8yO7fTzHAJQi4bzd9lsmu/yd1tvSs474f8w92dxw9K+FsUcbcz6C2Kb0493Dn8Z/rtafUyisgeUUe8iHkWwCSMzn8ThNWt3kfK+dMcaKi42DngWpQLk4tkNa23MC+1q2Zddlw49d/WLXRpIvewcNuAqHpsq3j3y0zD0O1jSWes6d0xcHjn1QS/15f4r5T/OM+cz+n9TA+yMklIQLC/D28Q4Iw5Fo3Lik5KQ4Lo2Ex6AhMHgSic45QTopk8BQMAiZCvgmF7zLJjgewCEpO3hJIMCiMPbcZS2iCFA20Ncn65O+6VvJOYQ1KgIR4E4Eb9oKKPBNidCUKesnQ+C9tcxci/t5pHQ6A/fd73k07B+Ael8p9W+/U8zzeFmrwX4A+aniXGJd8hJTFAnIMD4WqJXTJ0SzvG4B1Z3Qqw/uk5lbbOtIbd9R5MI8h07NeA5k7N9W5Kk5l7k1Tu231j9hHovg4ecPq57mIDUugmE7l4NIFTkcu9dCDrlV7xYPwK3tvyNEt+LNeSAIRlcx3FGl0I3He4j3divHz+qWXpmTOEA49vIPHGlVCgEIxhsfPpMNAC76/ASR38gsEFvEdlGAhCDfY0Ood7kf4ADY22Xw0ilaoC16V4iIBPie1kx1uSAjNXYIgcD9WC73Rhjczhl2+7LS+zLmrgMc+GzfdA/8yx8X+5AiWix5ovA6fhtUNAQ96anYss0SQcdHU4Mw6/xqaPC5Ht9GFejvQZVIWXS8WS/gZnF8Dx/yS7Qb1A8u0dk1EozAZLgJBNJS2HH6leFg4pMhi/mSwMxs6G4tcPmzwsyZeZlZnqNKNN2ReXxNzSJaoR0FkTUHgngjPWYD7QlKjos23KC5aEJGazYg0ofwuIiELUu7TpdGNsyC5RsUL8Fj36Hy7T339X3ygMDBcb31fpBTFIYmGMHHbbCEv1qjIiNLpUU8aRrxEcKPa7YF83WAIzZtg1h7TlQsCPqF6Dtoy5dWyGr/AUjF5PmTLCSKWrlZKPiiGxuuwJA64VkaKcfwF/N01ulsc8zDl2dSU2u1QsCIMxgOiBQhotmpC55vz6UoIBTB/n/MpF01pqKK/27EH8/6QBUxICo5vmQbhwkSQ0cDwnaJZ1VLDiXkk57t62zB7WJJ3oJUZP3H/5ElLZn8k0q7/7LtKBoGJdALu0cGWpQ/hToE3z67nlQf06IqsAaLkklH1ixaEOjxvtT5HrhdkOQ/acmchb/+LUWW4OmWs+CZm8MOh4dv++fwcwMq//2+/w6Rq9VfvLADFBZHEfYwmp3pyiNHFv+Uf7r2yBfA3vHX6a2RBOR94L7XgJ5ie5ts00erP/6j9Ne92+64rQ787omvk+c8dO8P/gZIkfh+we6mkj9ev+vvVJzq+hGCPtOXVH8aT+dLfgh65bkcB5Cru6Ar0yzB92+lt2zR95z7wROg8r6Yvnf9ix33vqlHCKOKNEkIjzQmfDqrU7S/X4AeK7z0hvZKe6iz3d4Z//O/K5JrPbXjhs8RfQstB0B/ffxO9Ch8IVKTsWR1Vm7kJW+zsdROAZIWNN3s+fpn7Kfj7SFHoovWj6bHt5RzV/0u11fQs+OqIWUfxcK6+uQ3B5tVH/S27j7/rQ2TKOAe/TEH/s9vSMn/nugH1pGjtU9QgkrmCOhpMw3lVdesdhPSHue3TLA3wMpMHjJELtOg18XBgXlXJG8/G55zzLIOJaxWu3KcXKllFO700u4oltglqZNF2r+BeL/i4cxLAbevuNbky+SAXmj8iR6eqxQKFfMo6GHFv0ka9VxkwniTapBAvQAh9Mpe5QcLksL8gr9WuZY9XgFfGPeHDMOuH0GEsOhCsuRezze9sqKOt3UweRt5OnjgK6gcRa/+N3CQD8uaiXXiegIz6IsF7eP+1l5RxMIsInFxJiUHSC4Wt6Bgjg03cx/rLCe5rDAuZ6bZnj/M1OD2E+QOy+YmmK9e/3uDXQlOiJ0Lhd90cVfVdReP+fcG91xevLrnmBP8J8aNuzrBlkNaJfdvz7WgsyPeBiX1BIStcbbxzoiZpBp6cs+sfmoJPZPTJ9Ijq7sz6CnwRMZT3LjtKGjV1gbFUPy1lYQTl3B8KLPhiqsEP21sG0dUlKYRfFa1vaME6ppfMeqpez62C//KALWamvSMz1BdTdYtsxXH+b3N0dDVTmzu+ijP/XdyI54AGcsjBPBZFLyxi/edv5c2j6wxnwx8ZU8fDOojDXeEjls+6qKdBgwL0BIKPPtKVxUKoTwLLl53MFNTd0WvxrdIL1YyiwRUQe8rekuk5BCFxO8MqsqNb9mTU2BR5WGBvb7omp0zXlKAIKy6ymZFGckk274DCwbLWZihphBCma2RIEjSn+GSQlwzVhZ1doJ5uk4ekDrGpHAVBWiOrvYULrDF/7YOqhap1dIM3ybIKoenZBF5lHtJOS8ILc2HJjRzq07LI5BEFgVhUnCeOoSdB92hb9JzxHdUqliefU7mWYKuEiABlgB7PUtX4ffn2m3v1MkhilLRdHJKCbVsSS9Qf8SIwNshzSFZsTrDJjoXJ7G3bf9Vc6p30Unvt8lROffsgruGrrFYmIlGTe/WL50ei+2rVDqb7a7V2DxY8HxpJA6TUwP5f9zx+HLie3EliUO77Up4rxMkiwCBf2GaBpYUWJOGKrME5HPBdE2epklQqO7z3VocQOX0AC6n8bEEKHwcnBOc0yhUoaoulRKoIUXKiLGdD6TtXJuK41S5/CyOR/K5A5WbOdtST005Q09vm+Uob5jD5fpHColQObQ8ClRK6C0qv5dQDN2MdlZgShJaTe7334RE1mArHa48Q7a/bTiLMplsMIU6N+aqjl4yGgM3duEd1sE6MzwuJ1v6XcZ7Jtt0Nt1uy6ClAPNQD+lZMBM4T6UVe35SpiVknE36rcFZA2hy12gh8l27IRDCKF7YGWiEMOwYREnRcGMN9oyx1Y7GF06d/MtZXJgfCtihoeM9cs9Z0rktwH0hzOtgm2i7rdryVNDB9fqn61kC7wribnhPJugibOJ2pb3R2RawpXbhloq01FsyokGR9rIJgokTqNR+4olYoVFumml3gljA6S0uIYpSUelKUBtUoSoKGHvBHFpCAbmYWUuYMbFsKiMmxkV6SWdTPwnGXX4tn8nEDwQ2vp/IPHp3pW+sRFf4YNJD4+hYJbmSkBIPIdUJgy+P8BkI17xIdIq9vvrovVtXAZNajnm4xtUj0zBM4wmOA1pcXlrztY3WxXS04ZguwVwi47hPfFMVrdIEB81U6wOJInPMFv4QO86ekFot6VknQw+yl/1HKFUJa2V2BqzYps6QFdKcdMsMWZDiwAvejOrTwJz4mqRYKBhAK5xOPWK/BJoEW9IslCsOhFT7HFd8EaYsPa9G81iiIFUsodKqLL03hIP5nul464+oz5MpF0JWyhy3jNvaXgfI0xLgaQ91oaEUsScWc7XZ8qRNzGE6/Ofgiw1+7JTZYA6Gz70IWv+sAF+hfWxAjvdppdj7HNdzdFMYSebNfug+W7akhQiUHRTmy1njEf9qZJk5R2tehaXwjihEKcXb78QgnepKla/LRwT5yxe32tKiny83aNwq+sOw1bt3NeKMeOF4mV24dMpZd/ZqvC9+vo2kxjo6IyWisUp/rjyuuKI3faLmoSL9v+V5w1K5/yqWRSQKYlYrwcIjqHegYjKlayTLjcIs7p8tIwupqf8tpN8+eUB6akgv4cpc8NgIJBKLLMhY9Ve3zJC2mpNTPcWQbntMZfCGSS9H6xLR3AfpXBvf0r1hdflTLasFxkqvVctSh2kujE1vrCx1c2jdd7sOGRF+WIKq01BCWayDHQMa2BVzD8gtnkNcgwI8+yk+q/2NaDyzrK6BjEKJY0g5uAVEVMwbfNQw/DoC1NqompTD48hpsUKcVvrPeIkcGmvEaWb2oJgjUA2Dw5fFu7BNXqNRP8aqFviNH77QZEdNg1v8MIezP0o03u8UKwIVNK3VTm43mpIRegGpnUHCMw9Je6q7KYVYGm29wwimXCL/6Vy8jdLYS5U5uXyUc1IS4y2DJ/xVLDY7vWCs2MGTJCxD55+pf5ipaxJBNoWdm/hN9ba93opilwyfWWQEIxbRKVOZIU1+MCRMz2Ao/bBK9bI0sAJWMP3H4y0q9Yu65GiJkxzytgn/m6TZI8g67VioQeYQw7gV2eXzmfQ2vi4Qqq1yuThPjv47hTQQb7WhLiktNiWJSZEuJa6ORIUvwKyahDGRNNLbbUahl3lhTGrGpiF3JC7g98YG2XVjuMn7QlJ2rHmzgsgmlSoYsbHugZVuHc5SncMRrkRaZPAI6dKY8a/nR0SxjPmquMxEBQUwaqIga3SGXcvIPlMOSkuEw9Uq3P0WASiAfENzoqyKNI6rP5EyFzIKaQg3DrI6QLzmT4lpLOiFgcdKUx8c7Y21uQlEF+xD5EIbuSz12kqXSjKbfFJq2GLXMfbBTPG5kmqThaEgLYjHObIg+ZQaaYynUcOp6n5By+ZrDbkG/FqgX7bTGT0Mq7KqVW+UhIHVgGkDLes7S2X0rCxQCjFKpVDw19qaJR0NqdVXOoQBskZnE8S5n3Z+mQB/iC34sW5MyKEOZdhPX/bYcsmeDMq8W1UlXHICl0EzsIpZlaJ22YJ5fYTBBXTvOaW0EBDvFZQyZCyIkCs8Xo0llRAMPHbdHrX2YBksYfqORSoi/GP61HhJLXkJakf/lVOzB7zzjDsXi0Lw5nQAzevBV2W3gWRtmRKRIV4cQuplKhS5Ta8hk0InkQ0GEa/HeYjnBSGa4Lh4birtMF65bXOf0CNSsEH6c71i7lKIzWcH25q9VohJjbddyDIYOy6mFKhT+EZh1+8vKkUK2RUZtE6ST73EEgzPl+XswXR4CoQS21ypEckBVrCec5mksusM2fFRldnMESB+3Ar8lWfaAcMPlG6z2Y4B0RkYfjTrPENf6xEejVQpBxyUP0SDZam8y4dZdr/7ZlwG001jVCTMhJlMyyEizxN81FgzIHXHwVzQsJHI5n/ZF6Jt4WjU66ApCrWD+loVXDGi6H/jSoOJLutQij+E4atde5236zgJRWOpDEmvcdOjnHBfUcDFimVtKXT78jPcedWwCXlGjY9YbfSHoDS1CsaaLRj0BJFMWtko68rqlUPspYhaze7kteo4vQLBiH9usXnAyYB5OhuwQ4YxtXwa7vEuBwNui8tN61VIsX62Oq2r1mW7qSrdC7y1eUo07BRbTnULk+P5jqDC0BpqZZkgNNH45EQ3npXBzBHOKR+5lRaGYgJnaUAa84vyz8bKGnONht2cGwnppEgmtdCdRpNC4y5OKOeBNYVvFLX1Okm7o8gsOx7alY3hsNDOMhs0BF4vLSbLXJLKKnKvOYGSU8bxEx8dqfSXlBH0iHH8LtdB+Lq2rEs2G8ft1eSBKVWcfkE4xHZrCNZDs1l0pUKomlBrGEZPEWLBo8Z1or6mJpFOyW0I3/BIgnnnoDTAyxzS1BOeUWf9oM/9U2KWXeYjUZ7luQiBeFmLUn9iRyJ8IjtRfnm6n80qZAyz8FSLls0hVhhIyGpVt+qUU89AFHJ5DgNEqXhgKZpGSGOxaJl204FFx+vV9WCNklQnySVD5y925AWRFL5XaBncsMyKUaeUGhaGhqLkWMU0dW2jRAOr1aASRjI0FWfVaBSCOMVmoVAaVbUtp3lHh6magv7UneqPFCayUqygVlMVyZ+Gw65JFTMxHoo3i6HviU83DrMHeAvfPC7FYpZPIJpySqVK7pBgeRyBPF7dyrmCTgPab8KJBvcCQywo3Y0jBW/IJ+4vtIvoUiCApfZp9GhCko+lMXt+ITPPLBf4HB0uSrh8MhZgtSRbrRjtdt8sCZtRFverHVISzahpjVY9gaSO5zeHrEqFdIBXqMr1obQ36Qdpp6PvACn/fd7/twJ+9zVDJ2n+psGrexLiL1tPNNF/EfbBvbB7ZUVB+tYfD9Rl+Wc3i5vUz9+q6p1PTR46BTZkYwAZYStJ7n1aJnPiMGt+AwT4qvJFdAYKBJg2EQz8rEkJYzDrAAR7vDvUDgyDkjr85QcW+Mt8gUoJIYAIuG0RAry0UIORS+wiJplf4wEmHU4DLR2OVUXi+WsajspF3KppXKAQdy+l2BM2u2YBJqQbqqICBAEsUEciBwQFN8roz7Vlmzrnx+TQtyu/AgCvWpaUtKsqJLBDQCitnNFC21sVY7NyRTmqaCCQdEZAoI20ewArBY+k/XDAHs68xbH7y4d37NPu8J2gOGxFD4w9ycdpxVX4D8U8nFScj/2Ky3C9YiH2Kq7FPYo3cd9Vul8c/kpxAb6guPCKXq6CI1fmr3SXsfDMwxcNO3r/MbI11X9B+KmZZI3wdKiicOkHPvqD2H6A0y2iT+Tt2LNTYOvXnb61O4GAF5hc26eBQNsLGtEJtiSuAo/hfOZxlISjVFSYW31HkAK+g3fz2q96CEr8wtZprZBsKdFF4t8PWIhUvaHBHvzrzASsJEhl41iKi0e4ELJmuQZdCqqQkGUb10YNnJdB/W41ioBqSIsrC/1+K2uCOYqEAmsDa/UfRfMmeN9MbdbhDdfQHgnNwem3hI8QWOCfUskP6gfA5QaX1YgbYOCyaPkV32rQ+KVH+JrG0aLJ8oHN2wf4snKZXD+Ua0vcddCEDjgllybOs2wzziJL9DWUVYFIXQ6ZzKF7MszKKE7Je8Pqb3Y4sEwrdwh7I9RjVnzzBX3R1vGaGxYLOIKGIxwu8yTUPdS9xyYTxHVvJouoarcnnJF4X2Cb94B9t3i8AH6+HnA4QM7PHjuyL/djw+8NSO6JkV2PghCe4v+zPnK9pvIh4ED+UOBRxmdDJKyYEpsdgiGB3JcJHttDj6n2uQt/zVOWnJdKzvaxwD5o8G3SDv+XBfbJ9nwI7b1qDWEI160eEHJg6gMyEwYwKsDUr3xuu0MXcUI1X6OxBIsj5zEMMu8JQybTQ1ElzaZjXCSj1JtD0ZeV56MlIcqUCYNuVXwe8x8jRArKrNXal+dxMYqX7wgGR4xhMFTCrUEhxA9zbmshB0DLE3eR4M8ccgtMzbyFBXW0Cvzc1PWuBgtHEz9mZCwxXvcdQzEh44R/baok+5yWcP1P4N8I8MRkd6lw/bur2RM+qy7o3i8qYbsRa4aXkBDTC2xIxHkwEl+TUMOolDbuqVPw+zFA6rkA0M/WWN9RQktGxyclYTJdT7ZBIv7Ixy+jEnW7IuWin89jBwyXYV6ZVv7VcBR8ymzWj6xu0BV8yotNrhYFWjBSvAzIHCFTotSJfLjxEchM/V57T+wbEgmRAggTTIvqHP8xhNCQYNMhLDUiAqwNHqaAn68wWoYFw3e54J/cfBLU/vqD/sbYB+7lr3xxola12HDXtz+B2O8H/QadHeDowULNG1d+EHlMvTBv1i2eGJMUQrvBJP+gJ8YIaWKAy96bywykWYcwxCwmwwH18PgaBgL36InfWbKtwNbbwz7enjNm9eHZy/MogYQ8sXa3JqMoYXCQgietJRIBG5eX6IBoPk4lJQe3CqgSR1vVPULjkpl3D1QyJQ9TGDauJITvoD2Xm5fkS/6eBMQP0OwL6LEWO3QW1P9mCyZP1ihNFwU0sIUQ8lQCk2r1WHCekId85/bY39rPvllB301zQR9VfRsiLQ+EkCMH6phPZDvZoElvdfRk2hVN5xFgUwPzhTE2pXOR74GHfoN2UVhMYBq9LiOcQXePqK+sdCfkbAwc8kXJe6wgmmfQRqCfMG2jF2DPSCtIS0PXqnbBu6nXTFvxl13Q2+eiCB6b1vTuEUHjlTIvrUUkNL5dvqdoYfmAv9KSYzbWDoIP5Jt2HvTdy2EHH9gVWnnt4m33QbD1EKXE2s1L/ec6cLCzTVmo5ncddikSou01uEdrNOh7S9SBnqzeD8HdP/eTINcnzzECSz9sMYWJtIU+uSRcX6CLL/vnULAaRyWK3vtNiZk+53c1N4BA2LTbZ1kdHsgXJb8tJa5m4LlcKkWOOq/Z07ovI5qdd1QRlb3q9cVYi+DXj3sw4hBCLbVdlILLcEa1ek1Mn7McZPL5WBDSVxO74plKCQWICpNcNag25cJ8GGSgRqp/ni8QjQ1cN7LSmEG69+yDd4NQkU0MpKqLXTqQiI8+8Ml7DFLeqRkuMC+ZPzAMsSHh/Ne/fIz2LLo8VnFuHNZu2Rrlm9LGekrqx3DBEICt6jEUE155InGN/h0IVv//6a73E2o3tAghLYH8Kwi7ZMmUMoN2NtE0rf9U0yuoetXOUEuVYhe1DDWbeX3vgmr5T+W5aqfskyKrT7+hUOaDATtgIP6AKOujH5XIkkbjsBrVnj95XmLI/RGIT+7vuz6Pbg+KgQYJQdjJu3D432P6LC8KXl4QFrBD8TKd4KQY6EkwOgZRtD7jgAODDG5UGHmbQrOPHRxZXvPwMm/aQ0vLytB6N6JCMTUeUxcmIO2k27f8/O6q/1KykyOPaA+fxz5eI4todCNKTne8vX/ZNDYLkEKk6WVrCAu3l8I6Lz40Px4/g5AEjJjboW7Noqbzbwe+PKQMiEMr1lCoLg+k4YW/UR8vg8LPDMZ8zzH/Ikfvoc+9pPAIN3AhlyDGwu95tqjCKKGXjgo/I9AgQMPrm/WazrJz/Gp//zX/sWIaExFKdgh/mg/t9ek0hRJq6thSJUGSnLC22kDJDTQ2GasGnEPBp7xrW+UnlZyT0HrQ5SFzFYqre2uCRCbltj3gzLuwQDxhO0fYriuVIj5zrBjP+EV7LuIv4p4QcEEJpThLOfwZA/9vDEVnY0alkfD0qrCZ/5foNDBWPUeDHz5dzfDuezwat9TNQB2K4M7adWBpSq2eUEqkT8a1kTRysTFCFCFbx1Ol/kHbpl7w5CPp/TDGK0Q/jc7bd2Ngn2yqJAP2HseHNjWioc1eFc97EL5OBmNdueBGgQ0SHBuRKIg2q4VcZrnnjcREN0rCgsK7RdtKBKJ44Q41hyfOeQgQ1z1g939l+D3WAsDAihxuMRZlG9C429q0d7AzTwu+vUP0KYToE7e2uhY2XiT287x9FkDjn0PLCj+pf1ZGApsCo7w4bMNnrafsjCn92Ftv1EabX+8QQ4zbjn0nfldPl2t2vFCOEvVvH4ZkIeh+p4grNdIvFrb+63I3rjybjQJRd1zxLrnr1HXRTzvBtCZNmwOxyCGdTjDnCbmN22GSLNK6vkKLHXfjxEa2/oy5w+JlpJajDse2Ao/XoOp1h8NjFjlxGjxoRlVcDBCfUEIZxVvRz8ePCj+DGp0U6XiDk65G5+ObY017EFlOKUC3lFPpHpEq95WQ0aCZ1pAdtvR548JLJ4WygnUqLRZqWFSzyK8aUZYXKGzIofwK9JZClsjrh1VoucAZQvQIkcROQHLtkaqwqnGw+sHFbU0vmcuGdaU0doouNrBAYBnx3YiM6ag1yrSuXnLUV6j516UzR9j7Mquew6XLFeWe0OyzbLUeNz+LX3ME334WafpqTPrM1YpZHNbKxLXquCmE0WTZfllcB2gxWzhVzATZFoNgri09g7Crqy10XSyHjle350cfKi6XR0IlFev6NPDNEqfv5X8BXJSMZ8KHb182ObeKNE97OsuiQNCC7BkkjJoxnCH30ZxJEI+ByHTnXBMsQdwqDqGEv37rVJ5tNDRoXJogpV9+rDvO9AAIL1gkIOnHFSPj+mexRf/9586yPEJEvKHaEHmGz4+e6VZDFf5bn5r4MgADQOD59/OPD00vd/+dS3EBgE9+O/U8NfLq/1ZGa9HH/Cdt0PACpOAfNOqzPurg/k8xBlx8D+JsltR8VQXkTpyvl2wbcsdVMTVLnpLoa6DmMTXuovN3nQNUi7tNi03iLh26ux49HVoSnaAhNxEPWTD2EpYriC0ZaSw5uPHIFuepakWisPDvkBbUqIQ2ksRwyShimu1Z9RTvNW3lYZyzcMdVM7c+6bewZzEKic92KHluybyMu0Y7xUuyWetqX83jlPWznC9bDBZepNivJqyTGrW7l0nwtaZ0WETMegw7FGsc3kVhWMJu6damIpgpnAkXwiMbFx63mbVjLdatZmFmdo69b61TUCzutT2mEXHfHdS0YkTpsscVA6halYuLd7DvGa4fxfuOEQoase8qLF7LSSrFVIxjFh5/EY7OdjjL5nNE5hL2rHBI9Jm8Em8oHF0KczwJUY9q9FPFLlZFD9VDdzqSecMbuAy5sAWqIQ9qtXyI5uNoDbZEuDUMRKUClGimXTJtTkerRTf1UAcPoabx+hpzIq9yASBFNDQJgMvlONbaPGy3H6YEtITbZ57DCnjbstXXoXilj80XSMRppRGjVrtIqCyPZzmMj3CJXX88fIdOn6WZAdgOzJuAvokc2Jui5a1apuXmxytpeamEPskXCp9qpEFJJVWyvq4qCqn3ht3TnFbRMnseKKxl4YpYJXyFt3A9uAXuXBXl9kO1TYPB9PkCZiOIXrlVzv2XC9tGq2L+uoCpp+TJ3qzpQfPblXwqaMVsKHKuLXFk9cdUXdTU1Jqqb6VYU+3Y2IzxNatuBmGTQwvHX8VMpm3wuXwmY5g/mVp+fXdPZhRu6P5utJMW97pSXe3h/sT6fP7rtKrbIBC27X7t47UqoHPnhIKt9uRgNoG3E9TD8cPsh7VXQBNACPje8r9JKnHAA2HW2aO6oLa9Kd3OZdYdEKPUKAACsEECHsKmrXsC+IpYtx6/3uN+w1dkormlGhen2f4BTwDuA5wMuBfwauB786SCuMJqyHagshnAb+whtI89TDlOtnneF3tuLKC0FO7fP9MvcgKBsQYFPgUWdJGc9NyBEXcjZh6AF6QgXGOIX1qMEJYQozg2LUYzzxdjcTEWYzN3Ugiz0IebIYJAEcQmhsqJOUZpiU0KExdwWmcOJ3+T18eck1oQmxIqIOaSXCLmGsYlNjUaK6Yhi2PSBPgw877ALfw42T5vn/N1fzta2m7H30o6YMaK8XHXL3XsIk/qW3I6il6VmClTKfGxMrynOryGSowmXtm0dcN9m4eVT81e236tgV5r/YDd8GQlmNXr9rrXWr7NdCCGnzCTRr9+btap948/uLcet1oz/CK8gfqub7imNev21VqCl9FHLVWDUhQ0hUpi+H3rHz6+vvf0at1+rdmFfskkqovPfdSdBgrZ6RtJSdTLsg2JdyPLNiFZOnbiMVVJFtuExr20RWF4MxZmyX5y5ZjY3/GVYoE33b+lUF28sK23UDupsQaQMVaodEqjW/5oRU8aNPRBwdhQkFjll3GJwNZOq2np6kS9Rvv0gB1Xs33SuekIeexpR3s1u93O5vrUyMuXhjZ/I37SBeSmgm5oyc/hjYXc6G97PXDP/Y415qe/lY2dA2r0hcl5CstfpiugeJrfYIU6PfTI2vxb9dNRkfuKi/4qpVSi6SVz95+LCaCgYWD7vWr4Zltng4giWx8BsUgblfQAcl5R6uBtkyE+UfP1P5tFiY6GjoHZHH6xsPMvCqe5noiPW6wYcQ1wyTQPlwjFtuDkC6RbSDu0SELiBoSd9wDbbHdIoi22liKVRFqnLS49mSVlyGxpWbLbY1lSsuSS+pS8HZRUNQEoXSBtSEFCQa+lYBd8aeJPuhA65b76hCNVrp1RmaAoqaj/u20X0wOnhaC9lDoVKv6s/3YVNc0/wh1f3wiA7QwnVzsAElXOQi3/2v9/ihq16tSLx0M7bJS36RHwkBBqhdH9JCklLaNBY2yXGVvqgxmkvnLGrppoaOmqdRYfS43/u+lGeoYMGPmEZf9k5W916h1z3EhGHMI3nc7ZZ+Up5fpToI2dg5OrMp5m0u9+6TKopTiguD5wu6U1wMvXpYYhAlBBGFxIGNEUIXbyvP4+J3l8gbFQJCbq1acf159myfTUM8+99KqSVCZXRDWkJED6myErqqYbpmU7rufzc3n6FM0XMEKRWCKNLqxcoVSpNVrWwNDI2MTUzNzC0sraRrLoBu/zsmctHFtq2SlRH7EJthxkyhJUkcjgyGsoWa6oJZD4MgSbYcifH4cydpJQbiZKyELZlf2fg4DnnO6qGj7/+6ouJSFCeL5jnR6BVz0rOT5CxHK3yBuz4VBouUeCbwdeQwibbpI2gBCZ71khND9JbpDIb4ddPjTNX8BzwQdvfww+lnwkBhPweYidn4+A6wk5cGJRCkKE8Hzihvz5QbINAV/XfX6oLWvw+8WvFa1XqI7xVwpDaRyJCeQg8D2vsZMzyJg8fQh+dFyOStjGGRyY7wXJO+rzRPaWSGFdiiMpx266NCGvhGzI3mAA6ER10vNBjkqxImzzYzeZo3KDs8C15Q06d3YV42DXN54eyi7gOqA9U+RIGztZm3J65pnMjvwSHuiXiMEgO2bp8SgA46CYiFixrxHtXdN0A+mmGMrE4zEtguOxJkfzyLqRdNN5OIMDzkdY9uRgiQhcftpHzh11YBfw67O44NeAi9o44kdfKSh0Xf4KqOdFzGN6SFsP9IQ+G2WPchplv25puxHW+UiCStT7ogvu7lhbqRDVLiacKeFsT6MrZUWZiAoXJQ8e62s9UgpNM6YSkWKo3W5r/me6N+XOtEJtr57V6oPltLYwA6EQNq81YFuEQ/4Wm3PXzIpptkYWUEuOSWOSeiFlTtDoo8Svu934LOxpa21kFbwX59qcBh+Zn+RImvyj5kNJLxXJvJ8d8VrfkJKFVrRJ05tK/aXanhx8bT7aVauoJ81roNL64KfMd8Sj0Rtfge+SohT0+ShTwFVwhK1KW45QTKfoZNrjU4poyxfT6QTmZlc+GpmMrLLWuHv26eonGfHyrlIqK1kXkTsd6eStxRnuKdSRqBapI1Ffpa5MEY1iOvVVugLU/LBXx6A1CuG6/RzGbhBarFJiuBQvbvkwWJIFSwAUwqV4kWPD5BEGsHNgl0kYMExsoHumATSWF28A8Zt8m6AE9w5Ar/3gsARAIUyvsQEQsFPAAABsAIDuAWgAbwDxK3AV1Mg9NsmPCvFmjM39+cmxXPF4EnoWKsaVX2nwQhAzQ84QJtFHLOZ9XyEdIPQUZJ7mEWV4FzjWEB2HUia6pvsjX/c196Wa/Kcqdtsqql2UbjmGZ4HCzYgVhidjl1XUbVlr3XLXgfYNROYdDBJHYa13NSw58stFXNu+N+t5WGAU1doYgvhRsJmWa/0f4Ys7r6o1nW1LF8pCcxJM0H9YbRjb5gVb1go9Y9/SxF08sf0p8GbuymWEe+zrfrqQc8Rnc8lptIpSPWmoLslM6sWzOZaLyLaco1nYjntDeIpj5e/663Cvs+oZM4Z+HNgvV5U0ktw/VU411pkVh8q/32PH77H8z9qVLwAAAA==",az="1.0.0",c7=["Soll-Zustand","Abweichungen"],iz=/^(?:baseline value|expected(?: value| result)?|desired(?: value| state)?|recommended value|soll(?:-zustand|wert)?)$/i,sz=/^(?:remediation(?: guidance| recommendation| action)?|advised solution|solution|recommendation|resolution)$/i,rz=/^(?:audit(?: procedure)?|verification|verify|test procedure)$/i,oz=/^(?:description|rationale|impact|technical explanation|documentation|references?|notes)$/i,cz=/^(?:id|rule id|shortname|technical identity|scope|target|registry path|baseline|policy type|policy section|imported|evaluated|source: .+|source file|source sheet)$/i,lz=/^(?:title|name|finding|benchmark item|check title)$/i,uz=new Set(["Not configured","No baseline rule","Not comparable","Review required"]),dz="Vergleich importierter GPO-Backups, kein Nachweis der wirksamen Endpoint-Konfiguration. Baseline-Varianten sind getrennte Empfehlungen; ihre Anwendbarkeit und Zielrolle vor einer Änderung bestätigen. Keine GPO-Priorität aus der Quellenreihenfolge ableiten.";function Tz(e){return Xb(e.policySourceEvidence??[]).flatMap(t=>[{label:t.label,value:[t.backupLabel,`Backup-Identität: ${t.id}`].filter(Boolean).join(`
|
||
`)},...t.observations.map(n=>{const a=[`Evidence: ${n.sourceReference}`,`Observation: ${n.id}`,n.sequence===void 0?"":`Source sequence: ${n.sequence}`].filter(Boolean).map(r=>({text:r})),i=n.values.flatMap((r,c)=>Kb(r,n.deviationFields?.[c],n.deviationItems?.[c]));return{label:"GPO-Quellbeleg",value:[...a,...i].map(r=>r.text).join(`
|
||
`),lines:[...a,...i]}})])}function fz(e,t){const n=oa(t,e.sheet.toolId??e.dataset.profileId),a=n==="group-policy",i=Cd(t,n),r=i?.value??"Unknown",c=t.fields.find(N=>N.label===e.titleColumn)?.value||t.title,l=[],f=[{label:"Result Status",value:r}],T=[`Finding: ${c}`,`Record ID: ${t.id}`,`Source tool: ${n??"Unknown"}`,t.findingOccurrenceId?`Occurrence: ${t.findingOccurrenceId}`:"",t.scanRunId?`Scan run: ${t.scanRunId}`:"",t.importFileId?`Import file: ${t.importFileId}`:""],p=$6(t,e.dataset.sheets,e.sheet.id,n),m=Am(t,n),g=new Set(m.map(N=>N.value));let S=!1,x=!1,y=!1;for(const N of t.fields)if(!(!N.value||lz.test(N.label)||N.index===i?.index)){if(cz.test(N.label)){T.push(`${N.label}: ${N.value}`);continue}g.has(N.value)||(iz.test(N.label)?(S=!0,l.push({label:"Sollwert · "+N.label,value:a?c0(N.value):N.value}),a&&l.push({label:"Sollwert · typisierter Originalwert",value:N.value})):sz.test(N.label)?(x=!0,l.push({label:"Behebung laut Quelle · "+N.label,value:N.value,rich:!0})):rz.test(N.label)?(y=!0,l.push({label:"Prüfung laut Quelle · "+N.label,value:N.value,rich:!0})):oz.test(N.label)&&!a?l.push({label:"Regel und Anleitung laut Quelle · "+N.label,value:N.value,rich:!0}):a&&N.label==="Configured Value"?t.policySourceEvidence?.length||f.push({label:"Konfiguration im Backup",value:c0(N.value)}):a&&["Sources","GPO conflict details","GPO duplicate details"].includes(N.label)?!p.length&&!t.policySourceEvidence?.length&&f.push({label:N.label,value:N.value}):/^(?:results?|verwandte daten)$/i.test(N.label)&&p.length||f.push({label:N.label,value:N.value,rich:!a&&/^(?:description|details?|result message)$/i.test(N.label)}))}l.unshift({label:"Finding und Geltungsbereich",value:T.filter(Boolean).join(`
|
||
`)}),a&&l.push({label:"Geltungsgrenze",value:dz}),a&&uz.has(r)&&l.push({label:"Einordnung",value:r==="Not configured"?"Score-neutral: Empfehlung im analysierten Backup-Set nicht konfiguriert. Keine automatische Behebungspflicht; vollständiges Baseline-Hardening ist ein eigener Auftrag.":r==="No baseline rule"?"Score-neutral: Keine anwendbare Baseline-Regel vorhanden. Kein belegter Sollwert und keine daraus ableitbare Behebungspflicht.":"Score-neutral: Vergleich nicht abschließend möglich. Zuerst Anwendbarkeit, technische Vergleichbarkeit und Diagnostik klären; keine Abweichung erfinden."}),S||l.push({label:"Sollwert",value:"Kein separater Sollwert hinterlegt. Maßgeblich sind die wiedergegebenen Quell-Anleitungen; es wird kein Wert aus dem Finding-Titel abgeleitet."}),x||l.push({label:"Behebung",value:"Keine separate Behebungsanleitung hinterlegt. Eingebettete Anleitung und Referenzen im Regeltext prüfen. Fehlen diese ebenfalls, ist eine fachliche Klärung erforderlich."}),y||l.push({label:"Nachweis nach Änderung",value:a?"Nach bestätigter Anwendbarkeit und freigegebener Änderung neue GPO-Backups importieren und dieselbe technische Einstellung erneut auswerten. Wirksamkeit am Endpoint separat prüfen; der Backup-Vergleich beweist sie nicht.":"Nach freigegebener Änderung dieselbe Regel im gleichen Scope erneut mit dem Quellwerkzeug ausführen. Nur ein vergleichbarer Rescan belegt die Behebung; Review-Status und Abwesenheit eines Findings reichen nicht."}),f.push(...Tz(t));const w=[...new Set(ed(t).flatMap(N=>[...N.matchAll(/source-table:(\d+)/g)].map(B=>Number(B[1]))))],C=new Set(p.map(N=>N.sourceTableIndex)),k=w.filter(N=>!C.has(N));k.length&&f.push({label:"Results · fehlende Belege",value:`Referenzierte Ergebnistabellen nicht geladen: ${k.map(N=>`source-table:${N}`).join(", ")}. Die verfügbaren Belege folgen; der Nachweis ist unvollständig.`});for(const N of m)f.push({label:"Results · "+N.title,value:N.value,rich:!/xml/i.test(N.title)});let E=0;for(const N of p){f.push({label:"Results · "+N.name,value:[`Sheet ID: ${N.id}`,N.sourceFile?`Source: ${N.sourceFile}`:"",N.resultPreamble??"",`Zeilen: ${N.analysis.records.length}`].filter(Boolean).join(`
|
||
`)});for(const[B,A]of N.analysis.records.entries())E++,f.push({label:`${N.name} · Zeile ${B+1}${A.highlighted?" · vom Quellbericht hervorgehoben":""}`,value:N.analysis.headers.map(z=>`${z}: ${A.fields.find(P=>P.label===z)?.value??""}`).join(`
|
||
`)})}if(!p.length&&!m.length){const N=ed(t).filter(Rm);f.push({label:"Results",value:N.length?`Referenzierte Results nicht geladen: ${[...new Set(N)].join(", ")}. Diese Belege fehlen im Export; Quelldateien im selben Projekt laden.`:"Keine zusätzlichen Results hinterlegt. Dies ist kein Nachweis, dass keine Abweichung besteht."})}const O=e.reviews?.[t.id];if(O){const N=[O.nextStep&&`Next step: ${O.nextStep}`,O.prerequisites&&`Prerequisites: ${O.prerequisites}`,O.access&&`Access: ${O.access}`,O.owner&&`Owner: ${O.owner}`,O.due&&`Due: ${O.due}`].filter(Boolean);N.length&&l.push({label:"Geplante Maßnahme · ungeprüfte Review-Angaben",value:N.join(`
|
||
`)}),f.push({label:"Review · kein technischer Behebungsnachweis",value:[`Status: ${O.status}`,`Priority: ${O.priority}`,O.comment&&`Comment: ${O.comment}`,O.evidence&&`Evidence (Review): ${O.evidence}`,O.riskAcceptance?`Risk acceptance: ${JSON.stringify(O.riskAcceptance)}`:""].filter(Boolean).join(`
|
||
`)})}return{id:t.id,title:c,status:r,expected:l,observed:f,resultSheetIds:p.map(N=>N.id),resultRowCount:E}}function hz(e){return{version:az,generatedAt:e.generatedAt,context:[{label:"Ansicht",value:`${e.dataset.fileName} · ${e.sheet.name}`},{label:"Exportzeitpunkt",value:e.generatedAt},{label:"Treffer",value:String(e.records.length)},...e.context??[],{label:"Umfang",value:"Alle Treffer der aktuellen Filterung und Sortierung, einschließlich Results. Nicht passende oder noch nicht bewertete Treffer bleiben unverändert; keine Neuberechnung. Quelltexte bleiben in ihrer Originalsprache."}],entries:e.records.map(t=>fz(e,t))}}function ad(e){return e.map(t=>t.kind==="strong"||t.kind==="emphasis"?ad(t.children):t.kind==="link"?`${ad(t.children)} (${t.href})`:t.text).join("")}function l7(e){return e.rich?sm(e.value).map(t=>t.kind==="code"?t.text:t.kind==="list"?t.items.map((n,a)=>`${t.ordered?`${a+1}.`:"•"} ${ad(n)}`).join(`
|
||
`):t.kind==="table"?t.table.rows.map((n,a)=>`Zeile ${a+1}
|
||
`+t.table.headers.map((i,r)=>`${i}: ${n[r]??""}`).join(`
|
||
`)).join(`
|
||
|
||
`):ad(t.content)).join(`
|
||
|
||
`):e.value}const go=e=>e.map(t=>`${t.label}
|
||
${l7(t)}`).join(`
|
||
|
||
`),cr=e=>e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'"),Fh=e=>cr(e).replace(/[\\`*_{}\[\]()#!~]/g,"\\$&").replaceAll("|","|").replace(/\r\n?|\n/g,"<br>");function pz(e){const t=n=>{const a=[];for(;n.length>3e4;){let i=n.lastIndexOf(`
|
||
`,3e4);i<15e3?i=3e4:i+=1,/[\uD800-\uDBFF]/.test(n[i-1])&&i--,a.push(n.slice(0,i)),n=n.slice(i)}return a.push(n),a};return[[...c7],...e.entries.flatMap(n=>{const a=t(`${go(e.context)}
|
||
|
||
${go(n.expected)}`),i=t(go(n.observed)),r=Math.max(a.length,i.length);return Array.from({length:r},(c,l)=>{const f=r>1?`Finding ID: ${n.id}
|
||
Teil ${l+1}/${r} · Fortsetzungszeile desselben Findings
|
||
|
||
`:"";return[f+(a[l]??""),f+(i[l]??"")]})})]}function mz(e,t=";"){return"\uFEFF"+Yh(pz(e),t)}function gz(e){return`# ASSESSOR · Aktuelle Work-Ansicht
|
||
|
||
${Fh(go(e.context))}
|
||
|
||
| ${c7.join(" | ")} |
|
||
| --- | --- |
|
||
`+e.entries.map(t=>`| ${Fh(go(t.expected))} | ${Fh(go(t.observed))} |`).join(`
|
||
`)+`
|
||
`}function vz(e){const t=n=>n.map(a=>`<section class="fact${a.rich?" prose":""}"><h4>${cr(a.label)}</h4><div class="value">${a.lines?a.lines.map(i=>i.deviating?`<span class="deviation-value">${cr(i.text)}</span>`:cr(i.text)).join(`
|
||
`):cr(l7(a))}</div></section>`).join("");return`<!doctype html><html lang="de"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; font-src data:; base-uri 'none'; form-action 'none'"><title>ASSESSOR · Work-Ansicht</title><style>
|
||
*{box-sizing:border-box}body{margin:0;background:#f3f4f6;color:#192231;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;font-weight:400}main{max-width:1500px;margin:auto;padding:20px}h1{font-size:32px;font-weight:600;margin:0 0 20px}h2{font-size:20px;font-weight:600;overflow-wrap:anywhere}h4{font-size:16px;font-weight:600;margin:0 0 6px}.meta{font-size:12px}.finding{margin:28px 0;background:white;padding:20px;border-top:3px solid #adb2bb}.columns{width:100%;table-layout:fixed;border-collapse:collapse}.columns th{text-align:left;font-size:12px;font-weight:600;padding:12px;background:#e9ecf0}.columns td{vertical-align:top;width:50%;padding:16px;border:1px solid #d7dbe1}.fact{margin:0 0 20px;min-width:0}.value{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.meta .fact{margin:0 0 8px}.finding-count{font-size:12px}footer{font-size:12px}@page{size:A4 landscape;margin:12mm}@media print{body{background:white}main{padding:0;max-width:none}.finding{padding:0;break-before:page}.finding:first-of-type{break-before:auto}h2,h4{break-after:avoid}.columns thead{display:table-header-group}.columns td{padding:10px}.fact{break-inside:auto}}@media(max-width:700px){.columns,.columns tbody,.columns tr,.columns td{display:block;width:100%}.columns thead{display:none}.columns td:before{display:block;font-weight:600;margin-bottom:16px}.columns td:first-child:before{content:'Soll-Zustand'}.columns td:last-child:before{content:'Abweichungen'}}
|
||
.deviation-value{background:#f5dce0;border-left:2px solid #bf3a50;padding:0 4px}
|
||
@font-face{font-family:Inter;src:url('${nz}') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}h1{font-size:56px;overflow-wrap:anywhere}.columns .value{font-size:14px}.columns .prose .value{font-size:16px}.meta h4{font-size:12px}
|
||
</style></head><body><main><h1>ASSESSOR · Aktuelle Work-Ansicht</h1><div class="meta">${t(e.context)}</div>${e.entries.map((n,a)=>`<article class="finding"><div class="finding-count">${a+1} / ${e.entries.length} · ${cr(n.status)}</div><h2>${cr(n.title)}</h2><table class="columns"><thead><tr><th scope="col">Soll-Zustand</th><th scope="col">Abweichungen</th></tr></thead><tbody><tr><td>${t(n.expected)}</td><td>${t(n.observed)}</td></tr></tbody></table></article>`).join("")}<footer>Exportvertrag ${cr(e.version)} · Statischer Snapshot. Review-Angaben sind kein technischer Behebungsnachweis.</footer></main></body></html>`}function xz(){const e=ca(),t=bd(),[n,a]=H.useState(!1),i=r=>{if(!(!e.dataset||!e.activeSheet||!t.length))try{const c=km(e.activeSheet,e),l=e.activeProfile.presentation.statusFilters.find(g=>g.value===e.statusFilter)?.label??e.statusFilter,f=Object.entries(e.facetFilters).map(([g,S])=>{const x=c.find(y=>y.id===g);return`${x?.label??g}: ${S.values?.map(y=>x?.values.find(w=>w.value===y)?.label??y).join(", ")??""}${S.minimum?` ≥ ${S.minimum}`:""}${S.maximum?` ≤ ${S.maximum}`:""}`}),T=hz({dataset:e.dataset,sheet:e.activeSheet,records:t,generatedAt:new Date().toISOString(),reviews:e.reviews,titleColumn:e.titleColumn,context:[{label:"Scope",value:[`Project: ${e.projectId}`,`Assessments: ${e.activeAssessmentIds?.join(", ")??"geladener Workspace"}`,`Scan runs: ${e.activeScanRunIds?.join(", ")??"geladener Workspace"}`].join(`
|
||
`)},{label:"Filter",value:[`Result Status: ${l}`,...f,`Suche: ${e.search||"—"}`,`My Workspace: ${e.actionOnly?"Ja":"Nein"}`,`Drilldown: ${e.pathFindingIds.length?`${e.pathFindingIds.length} Record IDs`:"Nein"}`].join(`
|
||
`)},{label:"Sortierung",value:`${e.sortColumn} · ${e.sortDirection}`}]}),p=r==="html"?vz(T):r==="md"?gz(T):mz(T,e.delimiter==="auto"?";":e.delimiter),m=e.dataset.fileName.replace(/\.[^.]+$/,"").replace(/[<>:"/\\|?*\u0000-\u001f]/g,"_");yd(Ju,`${m}-work-view.${r}`,p,r==="html"?"text/html;charset=utf-8":r==="md"?"text/markdown;charset=utf-8":"text/csv;charset=utf-8"),a(!1)}catch{a(!0)}};return d.jsxs("div",{className:"header-export-row","aria-label":"Export current view including Results",children:[["csv","md","html"].map(r=>d.jsx("button",{className:"btn export-btn",type:"button",disabled:!t.length,title:`Export current view including Results (${t.length} records)`,onClick:()=>i(r),children:r.toUpperCase()},r)),n&&d.jsx(Ua,{title:"Export unavailable",onClose:()=>a(!1),children:d.jsx("p",{children:"The current view could not be exported completely. No partial file was downloaded."})})]})}const yz={ready:"Ready",warning:"Notice",duplicate:"Duplicate",error:"Error"};function Sz(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toLocaleString("en-US",{maximumFractionDigits:1})} KB`:`${(e/1024/1024).toLocaleString("en-US",{maximumFractionDigits:1})} MB`}function bz({entry:e,reimport:t}){const{setImportEntrySelected:n,confirmImportEntry:a}=ca(),i=[...e.warningMessages,...e.errorMessages],r=t&&!!e.duplicateOf;return d.jsxs("article",{className:`import-preview-entry import-preview-${e.status}${r?" import-preview-replacement":""}`,children:[d.jsx("div",{className:"import-preview-selection",children:d.jsx("input",{type:"checkbox",checked:e.selected,disabled:e.status==="error"||!e.dataset,"aria-label":t?`Select ${e.fileName} as replacement source`:`Select ${e.fileName} for import`,onChange:c=>n(e.id,c.target.checked)})}),d.jsxs("div",{className:"import-preview-main",children:[d.jsxs("div",{className:"import-preview-heading",children:[d.jsx("strong",{children:e.fileName}),d.jsx("span",{className:`import-status ${r?"import-status-replacement":`import-status-${e.status}`}`,children:r?"Expected replacement source":yz[e.status]})]}),d.jsxs("div",{className:"import-preview-meta",children:[d.jsx("span",{children:e.format??"Unknown format"}),d.jsx("span",{children:Sz(e.sizeBytes)}),d.jsx("span",{children:e.toolName??"Source not recognized"}),e.confidence&&d.jsxs("span",{children:["Confidence ",e.confidence," · ",Math.round((e.confidenceScore??0)*100)," %"]}),d.jsxs("span",{children:[e.tableCount," tables · ",e.rowCount.toLocaleString("en-US")," rows",e.rowCount!==e.recordCount&&d.jsxs(d.Fragment,{children:[" · ",e.recordCount.toLocaleString("en-US")," of which as finding"]})]})]}),d.jsxs("code",{className:"import-hash",title:e.sha256,children:["SHA-256 ",e.sha256.slice(0,16),"…"]}),e.duplicateOf&&d.jsxs("section",{className:t?"import-replacement-notice":"import-duplicate-notice",children:[d.jsx("h3",{children:t?"Expected replacement source":"Duplicate found"}),d.jsx("p",{children:t?"This file matches the existing scan. That is expected for a reimport. Continue to reprocess and replace the active scan. The existing scan remains active until the replacement succeeds.":`Already imported or included in this batch: ${e.duplicateOf}`})]}),e.possibleDuplicateOf&&d.jsxs("section",{className:t?"import-replacement-notice":"import-duplicate-notice",children:[d.jsx("h3",{children:t?"Replacement source rejected":"Duplicate found"}),d.jsx("p",{children:t?"This file is only similar to the selected scan. A safe reimport requires byte-identical source files and has been blocked.":`${e.possibleDuplicateOf} is already recorded for this client. Importing this report will add it a second time. Keep it selected only if this is intentional.`})]}),i.map((c,l)=>d.jsx("p",{className:"import-message",children:c},`${c}-${l}`)),!!e.unassignedFields.length&&d.jsxs("p",{className:"import-message",children:["Not semantically mapped: ",e.unassignedFields.slice(0,8).join(", "),e.unassignedFields.length>8?" …":""]}),e.mappingsToConfirm>0&&d.jsxs("button",{className:"btn",type:"button",onClick:()=>a(e.id),children:["Confirm ",e.mappingsToConfirm," mapping",e.mappingsToConfirm===1?"":"s"]})]})]})}function wz(){const{importWorkflow:e,closeImportWorkflow:t,commitImportBatch:n}=ca();if(e.phase==="idle")return null;const a=e.phase==="preparing"||e.phase==="committing",i=e.preview,r=i?.entries.filter(f=>f.selected&&f.dataset&&f.status!=="error")??[],c=r.reduce((f,T)=>f+T.mappingsToConfirm,0),l=!!e.replacesScanRunId;if(e.phase==="report"&&e.report){const f=e.report;return d.jsxs(Ua,{title:l?"Reimport Report":"Import Report",onClose:t,children:[d.jsxs("div",{className:"import-report-summary",children:[d.jsx("strong",{children:l?"Replacement completed successfully":`${f.importedFiles} files · ${f.importedRecords.toLocaleString("en-US")} records imported`}),d.jsx("span",{children:l?`${f.importedFiles} replacement source file${f.importedFiles===1?"":"s"} processed · the previous scan was retained in the audit history`:`${f.skippedFiles} skipped · ${f.failedFiles} failed · ${f.duplicateFiles} duplicates detected`})]}),d.jsx("div",{className:"import-report-list",children:f.entries.map(T=>d.jsxs("div",{className:`import-report-entry import-report-${T.status}`,children:[d.jsx("strong",{children:T.fileName}),d.jsx("span",{children:T.status==="imported"?"Imported":T.status==="failed"?"Failed":"Skipped"}),d.jsxs("small",{children:[T.recordCount.toLocaleString("en-US")," records",T.messages.length?` · ${T.messages.join(" · ")}`:""]})]},`${T.sha256}-${T.fileName}`))}),d.jsx("footer",{className:"import-dialog-footer",children:d.jsx("button",{className:"btn primary",type:"button",onClick:t,children:"Close"})})]})}return d.jsxs(Ua,{title:a?"Processing":"Review and approve import",dismissible:!a,onClose:t,children:[a&&d.jsx(w6,{label:e.phase==="preparing"?"Preparing files":"Importing files"}),!a&&d.jsxs(d.Fragment,{children:[d.jsx("p",{className:"import-dialog-intro",children:l?"Review the expected replacement source and mappings. Matching the existing scan is correct in this workflow. The existing scan remains active unless the replacement completes successfully.":'Review source, format, automatic mappings, and warnings. Only "Import selection" saves the selected files to the open client.'}),e.error&&d.jsx("p",{className:"import-workflow-error",role:"alert",children:e.error}),d.jsxs("div",{className:"import-preview-list",children:[i?.entries.map(f=>d.jsx(bz,{entry:f,reimport:l},f.id)),!i?.entries.length&&d.jsx("p",{children:"No file could be prepared for preview."})]}),d.jsxs("footer",{className:"import-dialog-footer",children:[d.jsx("span",{children:c>0?`Confirm ${c} mapping${c===1?"":"s"} before importing`:`${r.length} of ${i?.entries.length??0} files selected`}),d.jsxs("div",{children:[d.jsx("button",{className:"btn",type:"button",onClick:t,children:"Cancel"}),d.jsx("button",{className:"btn primary",type:"button",disabled:!r.length||c>0,onClick:()=>{n()},children:l?"Reimport and replace":"Import selection"})]})]})]})]})}function Cz(e,t,n){yd(n,t,JSON.stringify(e,null,2),"application/json;charset=utf-8")}const id=["critical","high","medium","low","info"];function Ez(e,t){const n=new Set(id.filter(a=>e.includes(a)));return n.has(t)?n.delete(t):n.add(t),id.filter(a=>n.has(a))}function kz(e){const{sheet:t,dataset:n,activeProfile:a,reviews:i,statusFilter:r,facetFilters:c,pathFindingIds:l,search:f,actionOnly:T}=e;if(!t)return;const m=km(t,{dataset:n,activeProfile:a,reviews:i,statusFilter:r,facetFilters:c,pathFindingIds:l,search:f,actionOnly:T}).find(x=>x.severityScale&&x.kind==="category");if(!m)return;const g=new Map(m.values.map(x=>[x.value,x.count])),S=id.reduce((x,y)=>x+(g.get(y)??0),0);return{facetId:m.id,metrics:id.map(x=>{const y=g.get(x)??0;return{severity:x,count:y,percentage:S>0?y/S*100:0}})}}function Az({sheet:e}){const{dataset:t,activeProfile:n,reviews:a,statusFilter:i,facetFilters:r,pathFindingIds:c,search:l,actionOnly:f,setFacetFilter:T}=ca(),p=H.useMemo(()=>Sd("severity-summary",()=>kz({sheet:e,dataset:t,activeProfile:n,reviews:a,statusFilter:i,facetFilters:r,pathFindingIds:c,search:l,actionOnly:f})),[f,n,t,r,c,a,l,e,i]);if(!p)return null;const m=r[p.facetId]?.values??[];return d.jsx("section",{className:"sidebar-severity-rack","aria-label":"Severity distribution",children:p.metrics.map(g=>d.jsx(Hr,{active:m.includes(g.severity),className:"sidebar-severity-card",label:Cb[g.severity],value:g.count,percentage:g.percentage,tone:g.severity,onClick:()=>{const S=Ez(m,g.severity);T(p.facetId,S.length?{values:S}:null)}},g.severity))})}function Rz(){const{activeSheet:e,activeProfile:t,dataset:n,reviews:a,facetFilters:i,search:r,actionOnly:c}=ca(),l=H.useMemo(()=>l0(e,n,t,a),[t,e,n,a]),f=H.useMemo(()=>WU({facets:l,filters:i,search:r,actionOnly:c}),[c,i,l,r]);if(!f.length)return null;const T=`Active filters: ${f.join(" plus ")}`;return d.jsxs("span",{className:"pathfinder-filter-trail","aria-label":T,title:f.join(" + "),children:[d.jsx("span",{className:"pathfinder-filter-trail-marker",children:d.jsx(vn,{direction:"right"})}),f.map((p,m)=>d.jsxs(H.Fragment,{children:[m>0&&d.jsx("span",{className:"pathfinder-filter-trail-plus","aria-hidden":"true",children:"+"}),d.jsx("span",{className:"pathfinder-filter-trail-item",children:p})]},`${p}-${m}`))]})}const Dz="2.5.5",Iz={version:Dz},Im=Iz.version,Nz={version:"1.0.0"},Oz={version:"1.1.0"},Mz={version:"1.4.0"},jz=new qi,u7="2026-09-18T13:54:52.743Z",Fz=`${Im}+${u7.replace(/\D/g,"").slice(0,14)}`;function Lz(){return new Date(u7).toLocaleString()}function Xi({label:e,value:t}){return d.jsxs("div",{className:"about-detail",children:[d.jsx("dt",{children:e}),d.jsx("dd",{children:t})]})}function Pz({onClose:e}){const[t,n]=H.useState();H.useEffect(()=>{let i=!0;return jz.health().then(r=>{i&&n(r)}).catch(()=>{}),()=>{i=!1}},[]);const a=t?`${t.productVersion}${t.releaseId?` · ${t.releaseId.slice(0,12)}`:""}`:"Unavailable";return d.jsx(Ua,{title:"About ASSESSOR",onClose:e,children:d.jsxs("div",{className:"about-sections",children:[d.jsx("div",{className:"about-brand","aria-hidden":"true",children:d.jsx("img",{src:Sm,alt:""})}),d.jsxs("section",{children:[d.jsx("h3",{children:"Product"}),d.jsxs("dl",{children:[d.jsx(Xi,{label:"Version",value:Im}),d.jsx(Xi,{label:"Build",value:Fz}),d.jsx(Xi,{label:"Built",value:Lz()}),d.jsx(Xi,{label:"Backend",value:a})]})]}),d.jsxs("section",{children:[d.jsx("h3",{children:"Processing"}),d.jsxs("dl",{children:[d.jsx(Xi,{label:"Import contract",value:PF}),d.jsx(Xi,{label:"GPO evaluation",value:d1.version}),d.jsx(Xi,{label:"GPO comparison",value:OF.version}),d.jsx(Xi,{label:"Baseline analysis",value:Mz.version}),d.jsx(Xi,{label:"Snapshot aggregation",value:Oz.version}),d.jsx(Xi,{label:"Policy identity",value:Nz.version})]})]}),d.jsx("footer",{className:"about-credits",children:"Credits · Michael Lukas · Binh Karl"})]})})}function _z({area:e}){return e==="dashboard"?d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M4 19V9m5 10V5m5 14v-7m5 7V8",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round"})}):e==="db-structure"?d.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:[d.jsx("ellipse",{cx:"12",cy:"5",rx:"7",ry:"2.6",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("path",{d:"M5 5v4.7c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6V5",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("path",{d:"M5 12.3V17c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6v-4.7",fill:"none",stroke:"currentColor",strokeWidth:"1.7"})]}):e==="data-hub"?d.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:[d.jsx("ellipse",{cx:"12",cy:"5",rx:"7",ry:"3",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("path",{d:"M5 5v7c0 1.7 3.1 3 7 3s7-1.3 7-3V5M5 12v7c0 1.7 3.1 3 7 3s7-1.3 7-3v-7",fill:"none",stroke:"currentColor",strokeWidth:"1.7"})]}):e==="graph"?d.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:[d.jsx("circle",{cx:"5",cy:"12",r:"2.2",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("circle",{cx:"12",cy:"5",r:"2.2",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("circle",{cx:"19",cy:"12",r:"2.2",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("circle",{cx:"12",cy:"19",r:"2.2",fill:"none",stroke:"currentColor",strokeWidth:"1.7"}),d.jsx("path",{d:"m6.6 10.4 3.8-3.8m3.2 0 3.8 3.8m0 3.2-3.8 3.8m-3.2 0-3.8-3.8",fill:"none",stroke:"currentColor",strokeWidth:"1.7"})]}):e==="results"?d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M4 5h16l-6 8v6l-4-2v-4z",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinejoin:"round"})}):d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M4 5h16v14H4zM4 10h16M9 10v9",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinejoin:"round"})})}const qz={"db-structure":"DB Structure","data-hub":"Data Hub",dashboard:"Client Info",graph:"Pathfinder",work:"Work",results:"Result DB"},Gy=[["db-structure","DB Structure"],["data-hub","Datahub"],["dashboard","Client Info"],["work","Work"],["results","Result DB"],["graph","Pathfinder"]];function Bz(){const e=ca(),[t,n]=H.useState("data-hub"),[a,i]=H.useState(),[r,c]=H.useState(!1),[l,f]=H.useState(),[T,p]=H.useState(),[m,g]=H.useState(!1),[S,x]=H.useState(),y=S===e.workScopeId;H.useEffect(()=>{t==="graph"&&x(e.workScopeId)},[t,e.workScopeId]);const w=H.useCallback(()=>p(void 0),[]),{dataset:C,activeSheet:k,reviews:E,snapshot:O,theme:N,setTheme:B,delimiter:A,setDelimiter:z,view:P,setView:K,actionOnly:I,sidebarCollapsed:L,toggleSidebar:le,toggleWorkspace:ue,backendStatus:X,targetProjectId:F}=e,re=H.useCallback(()=>{K("records"),n("work")},[K]),me=H.useCallback(()=>{e.search.trim()||Object.keys(e.facetFilters).length||e.pathFindingIds.length||e.actionOnly||e.resetFilters(),re()},[e.actionOnly,e.facetFilters,e.pathFindingIds,e.resetFilters,e.search,re]),te=H.useMemo(()=>Object.values(E).filter(fe=>fe.include).length,[E]),Ce=bd().length,ee=X==="connected"?"Server connection available":X==="checking"?"Checking server connection":"No server connection",M=!F||S6(e.activeScanRunIds,e.activeAssessmentIds),Y=(t==="data-hub"&&r?l:a)?.trim(),Z=H.useCallback((fe,ye)=>{c(fe),f(fe?ye:void 0)},[]),J=d.jsxs("span",{className:`connection-indicator connection-${X}`,role:"status","aria-label":ee,title:ee,children:[d.jsx("i",{className:"connection-state-square is-offline","aria-hidden":"true"}),d.jsx("i",{className:"connection-state-square is-online","aria-hidden":"true"})]}),he=d.jsxs("div",{className:"app-header-context",children:[J,Y&&t!=="dashboard"&&d.jsx("span",{className:"app-header-client-name",title:Y,children:Y})]}),ge=t==="dashboard"&&Y?d.jsxs("span",{className:"area-client-context-inline",children:[d.jsx("span",{className:"area-client-marker",children:d.jsx(vn,{direction:"right"})}),d.jsx("span",{className:"area-client-name",title:Y,children:Y})]}):null,de=d.jsxs("div",{className:"reader-toolbar",children:[d.jsxs("div",{className:"live-summary","aria-live":"polite",children:[d.jsxs("span",{children:["Shown ",d.jsx("b",{children:Ce.toLocaleString("en-US")})]}),d.jsxs("span",{children:["Marked ",d.jsx("b",{children:te.toLocaleString("en-US")})]})]}),d.jsxs("div",{className:"toolbar",children:[d.jsx("button",{className:"btn",type:"button",disabled:!C,onClick:()=>{const fe=O();fe&&C&&Cz(fe,`${C.fileName.replace(/\.[^.]+$/,"")}-copy.assessor-snapshot.json`,Ju)},children:"Snapshot"}),d.jsxs("select",{className:"select delimiter-select",value:A,onChange:fe=>z(fe.target.value),title:"CSV delimiter",children:[d.jsx("option",{value:"auto",children:"CSV: Auto"}),d.jsx("option",{value:",",children:"Comma"}),d.jsx("option",{value:";",children:"Semicolon"}),d.jsx("option",{value:"\\t",children:"Tab"}),d.jsx("option",{value:"|",children:"Pipe"})]}),d.jsx("button",{className:"icon-btn",type:"button",disabled:!k,title:"Copy current table","aria-label":"Copy current table",onClick:()=>k&&navigator.clipboard.writeText(Yh(k.rows,A)),children:d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M8 8h11v13H8zM5 16H3V3h11v2",fill:"none",stroke:"currentColor",strokeWidth:"1.8"})})}),d.jsx("button",{className:"icon-btn",type:"button",disabled:!k,title:"Export current sheet as CSV","aria-label":"Export current sheet as CSV",onClick:()=>k&&yd(Ju,`${k.name}.csv`,`\uFEFF${Yh(k.rows,A)}`,"text/csv;charset=utf-8"),children:d.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:d.jsx("path",{d:"M12 3v12m-4-4 4 4 4-4M4 20h16",fill:"none",stroke:"currentColor",strokeWidth:"1.8"})})}),d.jsx("button",{className:`btn workspace-btn${te?" has-items":""}${I?" active":""}`,type:"button",disabled:!te,"aria-pressed":I,onClick:ue,children:"My Workspace"}),d.jsx("div",{className:"view-tabs",role:"tablist","aria-label":"View",children:[["records","Reports"],["columns","Matrix"],["table","Grid"],["raw","Raw Data"]].map(([fe,ye])=>d.jsx("button",{className:`tab-btn${P===fe?" active":""}`,type:"button",onClick:()=>K(fe),children:ye},fe))}),d.jsx(xz,{}),d.jsx(_q,{}),d.jsx(M6,{})]})]});return d.jsxs("div",{className:`app-shell app-shell-${t}${L?" sidebar-collapsed":""}`,children:[d.jsxs("header",{className:"topbar",children:[d.jsxs("button",{className:"brand",type:"button","aria-label":"About ASSESSOR",title:"About ASSESSOR",onClick:()=>g(!0),children:[d.jsx("span",{className:"brand-logo","aria-hidden":"true",children:d.jsx("img",{src:Sm,alt:""})}),d.jsxs("span",{className:"brand-copy",children:[d.jsx("h1",{children:"ASSESSOR"}),d.jsx("span",{className:"brand-version",children:Im})]})]}),d.jsx("div",{className:`app-header-panel app-header-panel-${t}`,id:t==="graph"?GP:void 0,children:t==="work"?d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"work-header-row",children:[de,he]}),d.jsx("div",{className:"workbar",children:d.jsx(_6,{})}),d.jsxs("div",{className:"status-line",children:[d.jsx(i7,{onApplyPathSnapshot:fe=>{fe.path&&(e.setPathFindingIds(EU(fe.path)),p({id:fe.id,path:fe.path}))}}),d.jsxs("div",{className:"status-line-tools",children:[d.jsx(P6,{}),d.jsx("div",{className:"result-dock-slot",id:e7})]})]})]}):d.jsxs("div",{className:"area-topbar",children:[d.jsxs("span",{className:"area-topbar-heading",children:[d.jsx("strong",{children:t==="data-hub"&&r?"Client":qz[t]}),ge,t==="graph"&&d.jsx(Rz,{})]}),he]})})]}),d.jsxs("main",{children:[d.jsx("aside",{children:d.jsxs("div",{className:"app-sidebar",children:[d.jsx("nav",{className:"sidebar-primary-actions","aria-label":"Main navigation",children:Gy.map(([fe,ye])=>d.jsxs("button",{className:`sidebar-tab-btn${t===fe?" active":""}`,type:"button",disabled:fe!=="data-hub"&&fe!=="db-structure"&&!F,onClick:()=>fe==="work"?me():n(fe),children:[d.jsx(_z,{area:fe}),d.jsx("span",{children:ye})]},fe))}),t==="work"&&d.jsx(Az,{sheet:k}),d.jsx("section",{className:"sidebar-theme-panel",children:d.jsxs("div",{className:"theme-switcher",role:"group","aria-label":"Controls and color scheme",children:[d.jsx("button",{type:"button",className:"sidebar-toggle-inline",onClick:le,title:"Collapse sidebar","aria-label":"Collapse sidebar",children:d.jsx(vn,{direction:"left"})}),d.jsx("button",{type:"button",className:`theme-switcher-btn${N==="dark"?" active":""}`,onClick:()=>B("dark"),title:"Dark Mode","aria-label":"Dark Mode",children:"◔"}),d.jsx("button",{type:"button",className:`theme-switcher-btn${N==="system"?" active":""}`,onClick:()=>B("system"),title:"System mode","aria-label":"System mode",children:"▣"}),d.jsx("button",{type:"button",className:`theme-switcher-btn${N==="light"?" active":""}`,onClick:()=>B("light"),title:"Light Mode","aria-label":"Light Mode",children:"☀"})]})})]})}),L&&d.jsx("button",{className:"sidebar-toggle",type:"button",onClick:le,title:"Expand sidebar","aria-label":"Expand sidebar",children:d.jsx(vn,{direction:"right"})}),d.jsx("section",{className:`workspace workspace-${t}`,children:d.jsxs("section",{className:`viewer app-area app-area-${t}${t===Gy[0][0]?" is-joined-top":""}${t==="work"?` view-${P}`:""}`,children:[t==="work"&&d.jsx(CU,{}),C&&M&&(y||t==="graph")&&d.jsx("div",{className:"pathfinder-view-host",hidden:t!=="graph",children:d.jsx(HP,{active:t==="graph",children:d.jsx(ez,{active:t==="graph",onOpenFinding:re,pathSnapshotRequest:T,onPathSnapshotApplied:w})},e.workScopeId)}),t==="graph"&&C&&!M&&d.jsxs("div",{className:"datahub-empty",children:[d.jsx("h3",{children:"No timeslot selected"}),d.jsx("p",{children:"Select a timeslot in Work to build its graph."})]}),t==="data-hub"&&d.jsx(__,{activeProjectId:F,backendStatus:X,onDetailViewChanged:Z,onProjectDataChanged:async fe=>{await e.openProject(fe,fe===F?e.activeScanRunIds:void 0,fe===F?e.activeAssessmentIds:void 0)},onProjectSelected:(fe,ye,qe)=>{i(fe?.name),fe?(n("dashboard"),e.openProject(fe.id,ye,qe)):e.setTargetProjectId(void 0)}}),t==="dashboard"&&d.jsx(xq,{onOpenWork:re}),t==="db-structure"&&d.jsx(Eq,{backendStatus:X}),t==="results"&&d.jsx(Rq,{backendStatus:X,projectId:F,scanRunIds:e.activeScanRunIds,assessmentIds:e.activeAssessmentIds})]})})]}),d.jsx(wz,{}),m&&d.jsx(Pz,{onClose:()=>g(!1)})]})}y8.createRoot(document.getElementById("root")).render(d.jsx(H.StrictMode,{children:d.jsx(VP,{children:d.jsx(Bz,{})})}));
|