cozyclay 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/bin/agent/agent-routes.mjs +3 -3
  3. package/bin/agent/agent-runner.mjs +5 -5
  4. package/bin/agent/session-store.mjs +2 -2
  5. package/bin/agent/studio-context-budget.mjs +93 -0
  6. package/bin/agent/studio-prompt.mjs +1 -1
  7. package/dist/app/index.html +4 -4
  8. package/dist/assets/analytics-BWCqdgWA.js +1 -0
  9. package/dist/assets/app-DfTCxaKk.js +5087 -0
  10. package/dist/assets/compile-worker-BxKXh07s.js +5 -0
  11. package/dist/assets/{first-shot-handoff-CC4xe4HM.js → first-shot-handoff-DNO8kv_N.js} +1 -1
  12. package/dist/assets/{landing-DjHD8u7k.js → landing-yfZaJkWc.js} +1 -1
  13. package/dist/assets/scene-asset-sync-U3kS2rvK.js +20 -0
  14. package/dist/assets/workflow-D78eiKTa.js +179 -0
  15. package/dist/cozyclay-package.json +1 -1
  16. package/dist/index.html +3 -3
  17. package/dist/workflow/index.html +3 -3
  18. package/package.json +1 -1
  19. package/src/App.jsx +1 -1
  20. package/src/agent-progress.js +3 -2
  21. package/src/app-context.js +7 -2
  22. package/src/command-bus.js +2 -2
  23. package/src/commands/motion3.js +12 -5
  24. package/src/commands/shot.js +6 -2
  25. package/src/domains/motion/take-source.js +4 -2
  26. package/src/draft-ghost.js +3 -2
  27. package/src/motion/beat-board-model.js +1 -1
  28. package/src/motion/beat-board.jsx +2 -1
  29. package/src/motion3/compile-job.js +4 -0
  30. package/src/motion3/compiler/anchors.js +8 -0
  31. package/src/motion3/compiler/limbs.js +35 -8
  32. package/src/motion3/compiler/pose.js +17 -2
  33. package/src/motion3/compiler/validate-objects.js +3 -2
  34. package/src/motion3/compiler/validate-parts.js +2 -0
  35. package/src/motion3/compiler/validate.js +3 -3
  36. package/src/motion3/compiler/vocab.js +17 -16
  37. package/src/motion3/describe.js +5 -2
  38. package/src/motion3/docs.js +1 -1
  39. package/src/motion3/free-motion.js +42 -11
  40. package/src/motion3/object-pose.js +1 -1
  41. package/src/motion3/people.js +82 -0
  42. package/src/motion3/qa/checks.js +6 -2
  43. package/src/motion3/qa/hints-contact.js +17 -1
  44. package/src/motion3/qa/index.js +6 -4
  45. package/src/motion3/qa/people-checks.js +37 -0
  46. package/src/motion3/qa/style.js +14 -4
  47. package/src/motion3/refs.js +10 -1
  48. package/src/motion3/schema/fields.js +4 -4
  49. package/src/motion3/schema/topics.js +6 -4
  50. package/src/motion3/schema/types.js +10 -8
  51. package/src/motion3/settle.js +136 -0
  52. package/src/motion3/skills/basic.js +2 -1
  53. package/src/motion3/skills/flip.js +200 -0
  54. package/src/motion3/skills/impact.js +109 -0
  55. package/src/motion3/skills/index.js +3 -1
  56. package/src/motion3/skills/info.js +15 -0
  57. package/src/qa-label.js +25 -0
  58. package/src/studio-actions.js +4 -0
  59. package/src/studio-agent-protocol.js +8 -8
  60. package/src/studio-app-binding.js +2 -2
  61. package/src/studio-error-codes.js +8 -1
  62. package/src/workflow/AgentProgressCard.jsx +6 -4
  63. package/tools/run-tests.mjs +2 -2
  64. package/dist/assets/analytics-C9sUnndd.js +0 -1
  65. package/dist/assets/app-CCh--1Hc.js +0 -5087
  66. package/dist/assets/compile-worker-CkxiD6lH.js +0 -5
  67. package/dist/assets/scene-asset-sync-Hx_FzdOH.js +0 -20
  68. package/dist/assets/workflow-C4yKH1p4.js +0 -179
@@ -1,20 +0,0 @@
1
- import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{B as n,G as r,N as i,Q as a,X as o,_t as s,dt as c,gt as l,i as u,j as d,m as f,n as p,q as m,r as h,rt as g,s as _,t as v,y}from"./analytics-C9sUnndd.js";import{Aa as b,An as x,Br as S,Cr as C,Ct as w,D as T,Gr as E,H as D,Hn as ee,It as te,Jt as ne,K as O,Kn as re,M as k,Mn as A,Mt as ie,Nr as ae,Rn as oe,Rt as se,Ui as ce,W as j,Wr as le,Zi as ue,aa as de,ar as fe,eo as pe,fr as me,ga as he,i as ge,ir as _e,ja as ve,kr as ye,la as be,lr as xe,no as Se,o as Ce,qn as we,ro as Te,rr as Ee,sa as De,st as Oe,t as ke,to as Ae,tr as je,w as Me,wr as Ne,za as Pe}from"./fflate.module-KbGj5-H6.js";var Fe=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=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,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function ee(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function te(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ne=/\/+/g;function O(e,t){return typeof e==`object`&&e&&e.key!=null?te(``+e.key):t.toString(36)}function re(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function k(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,k(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+O(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ne,`$&/`)+`/`),k(o,r,i,``,function(e){return e})):o!=null&&(ee(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ne,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+O(a,u),c+=k(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+O(a,u++),c+=k(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return k(re(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function A(e,t,n){if(e==null)return e;var r=[],i=0;return k(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ie(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ae=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},oe={map:A,forEach:function(e,t,n){A(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return A(e,function(){t++}),t},toArray:function(e){return A(e,function(e){return e})||[]},only:function(e){if(!ee(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=oe,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=ee,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ie}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,ae)}catch(e){ae(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),Ie=t(((e,t)=>{t.exports=Fe()})),Le=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,ee());else{var t=n(l);t!==null&&O(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&O(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?ee():S=!1}}}var ee;if(typeof y==`function`)ee=function(){y(D)};else if(typeof MessageChannel<`u`){var te=new MessageChannel,ne=te.port2;te.port1.onmessage=D,ee=function(){ne.postMessage(null)}}else ee=function(){_(D,0)};function O(t,n){C=_(function(){t(e.unstable_now())},n)}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(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,O(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,ee()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Re=t(((e,t)=>{t.exports=Le()})),ze=t((e=>{var t=Ie();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,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})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),Be=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ze()})),M=t((e=>{var t=Re(),n=Ie(),r=Be();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),S=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),w=Symbol.for(`react.memo`),T=Symbol.for(`react.lazy`),E=Symbol.for(`react.activity`),D=Symbol.for(`react.memo_cache_sentinel`),ee=Symbol.iterator;function te(e){return typeof e!=`object`||!e?null:(e=ee&&e[ee]||e[`@@iterator`],typeof e==`function`?e:null)}var ne=Symbol.for(`react.client.reference`);function O(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ne?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case S:return`Suspense`;case C:return`SuspenseList`;case E:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case w:return t=e.displayName||null,t===null?O(e.type)||`Memo`:t;case T:t=e._payload,e=e._init;try{return O(e(t))}catch{}}return null}var re=Array.isArray,k=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ie={pending:!1,data:null,method:null,action:null},ae=[],oe=-1;function se(e){return{current:e}}function ce(e){0>oe||(e.current=ae[oe],ae[oe]=null,oe--)}function j(e,t){oe++,ae[oe]=e.current,e.current=t}var le=se(null),ue=se(null),de=se(null),fe=se(null);function pe(e,t){switch(j(de,t),j(ue,e),j(le,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Kd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Kd(t),e=qd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ce(le),j(le,e)}function me(){ce(le),ce(ue),ce(de)}function he(e){e.memoizedState!==null&&j(fe,e);var t=le.current,n=qd(t,e.type);t!==n&&(j(ue,e),j(le,n))}function ge(e){ue.current===e&&(ce(le),ce(ue)),fe.current===e&&(ce(fe),rp._currentValue=ie)}var _e,ve;function ye(e){if(_e===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);_e=t&&t[1]||``,ve=-1<e.stack.indexOf(`
2
- at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
- `+_e+e+ve}var be=!1;function xe(e,t){if(!e||be)return``;be=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
- `),l=s.split(`
5
- `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
6
- `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{be=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ye(n):``}function Se(e,t){switch(e.tag){case 26:case 27:case 5:return ye(e.type);case 16:return ye(`Lazy`);case 13:return e.child!==t&&t!==null?ye(`Suspense Fallback`):ye(`Suspense`);case 19:return ye(`SuspenseList`);case 0:case 15:return xe(e.type,!1);case 11:return xe(e.type.render,!1);case 1:return xe(e.type,!0);case 31:return ye(`Activity`);default:return``}}function Ce(e){try{var t=``,n=null;do t+=Se(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
7
- Error generating stack: `+e.message+`
8
- `+e.stack}}var we=Object.prototype.hasOwnProperty,Te=t.unstable_scheduleCallback,Ee=t.unstable_cancelCallback,De=t.unstable_shouldYield,Oe=t.unstable_requestPaint,ke=t.unstable_now,Ae=t.unstable_getCurrentPriorityLevel,je=t.unstable_ImmediatePriority,Me=t.unstable_UserBlockingPriority,Ne=t.unstable_NormalPriority,Pe=t.unstable_LowPriority,Fe=t.unstable_IdlePriority,Le=t.log,ze=t.unstable_setDisableYieldValue,M=null,Ve=null;function He(e){if(typeof Le==`function`&&ze(e),Ve&&typeof Ve.setStrictMode==`function`)try{Ve.setStrictMode(M,e)}catch{}}var Ue=Math.clz32?Math.clz32:Ke,We=Math.log,Ge=Math.LN2;function Ke(e){return e>>>=0,e===0?32:31-(We(e)/Ge|0)|0}var qe=256,Je=262144,Ye=4194304;function Xe(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ze(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Xe(n))):i=Xe(o):i=Xe(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Xe(n))):i=Xe(o)):i=Xe(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Qe(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function $e(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 et(){var e=Ye;return Ye<<=1,!(Ye&62914560)&&(Ye=4194304),e}function tt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function nt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function rt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ue(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&it(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function it(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ue(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function at(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ue(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function ot(e,t){var n=t&-t;return n=n&42?1:st(n),(n&(e.suspendedLanes|t))===0?n:0}function st(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=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:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function ct(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function lt(){var e=A.p;return e===0?(e=window.event,e===void 0?32:yp(e.type)):e}function ut(e,t){var n=A.p;try{return A.p=e,t()}finally{A.p=n}}var dt=Math.random().toString(36).slice(2),ft=`__reactFiber$`+dt,pt=`__reactProps$`+dt,mt=`__reactContainer$`+dt,ht=`__reactEvents$`+dt,gt=`__reactListeners$`+dt,_t=`__reactHandles$`+dt,vt=`__reactResources$`+dt,yt=`__reactMarker$`+dt;function bt(e){delete e[ft],delete e[pt],delete e[ht],delete e[gt],delete e[_t]}function xt(e){var t=e[ft];if(t)return t;for(var n=e.parentNode;n;){if(t=n[mt]||n[ft]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=gf(e);e!==null;){if(n=e[ft])return n;e=gf(e)}return t}e=n,n=e.parentNode}return null}function St(e){if(e=e[ft]||e[mt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Ct(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function wt(e){var t=e[vt];return t||=e[vt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Tt(e){e[yt]=!0}var Et=new Set,Dt={};function Ot(e,t){kt(e,t),kt(e+`Capture`,t)}function kt(e,t){for(Dt[e]=t,e=0;e<t.length;e++)Et.add(t[e])}var At=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]*$`),jt={},Mt={};function Nt(e){return we.call(Mt,e)?!0:we.call(jt,e)?!1:At.test(e)?Mt[e]=!0:(jt[e]=!0,!1)}function Pt(e,t,n){if(Nt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Ft(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function It(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Lt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Rt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function zt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Bt(e){if(!e._valueTracker){var t=Rt(e)?`checked`:`value`;e._valueTracker=zt(e,t,``+e[t])}}function Vt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Rt(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Ht(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Ut=/[\n"\\]/g;function Wt(e){return e.replace(Ut,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Gt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Lt(t)):e.value!==``+Lt(t)&&(e.value=``+Lt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):qt(e,o,Lt(n)):qt(e,o,Lt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Lt(s):e.removeAttribute(`name`)}function Kt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Bt(e);return}n=n==null?``:``+Lt(n),t=t==null?n:``+Lt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Bt(e)}function qt(e,t,n){t===`number`&&Ht(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Jt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Lt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Yt(e,t,n){if(t!=null&&(t=``+Lt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Lt(n)}function Xt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(re(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Lt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Bt(e)}function Zt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Qt=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 $t(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Qt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function en(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&$t(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&$t(e,o,t[o])}function tn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){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 nn=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`]]),rn=/^[\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 an(e){return rn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function on(){}var sn=null;function cn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var N=null,ln=null;function un(e){var t=St(e);if(t&&(e=t.stateNode)){var n=e[pt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Gt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Wt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[pt]||null;if(!a)throw Error(i(90));Gt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Vt(r)}break a;case`textarea`:Yt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Jt(e,!!n.multiple,t,!1)}}}var dn=!1;function fn(e,t,n){if(dn)return e(t,n);dn=!0;try{return e(t)}finally{if(dn=!1,(N!==null||ln!==null)&&(Cu(),N&&(t=N,e=ln,ln=N=null,un(t),e)))for(t=0;t<e.length;t++)un(e[t])}}function pn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[pt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var mn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),hn=!1;if(mn)try{var gn={};Object.defineProperty(gn,"passive",{get:function(){hn=!0}}),window.addEventListener(`test`,gn,gn),window.removeEventListener(`test`,gn,gn)}catch{hn=!1}var _n=null,vn=null,yn=null;function bn(){if(yn)return yn;var e,t=vn,n=t.length,r,i=`value`in _n?_n.value:_n.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return yn=i.slice(e,1<r?1-r:void 0)}function xn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Sn(){return!0}function Cn(){return!1}function wn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?Sn:Cn,this.isPropagationStopped=Cn,this}return f(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=Sn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=Sn)},persist:function(){},isPersistent:Sn}),t}var Tn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},En=wn(Tn),Dn=f({},Tn,{view:0,detail:0}),On=wn(Dn),kn,An,jn,Mn=f({},Dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Un,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==jn&&(jn&&e.type===`mousemove`?(kn=e.screenX-jn.screenX,An=e.screenY-jn.screenY):An=kn=0,jn=e),kn)},movementY:function(e){return`movementY`in e?e.movementY:An}}),Nn=wn(Mn),Pn=wn(f({},Mn,{dataTransfer:0})),Fn=wn(f({},Dn,{relatedTarget:0})),In=wn(f({},Tn,{animationName:0,elapsedTime:0,pseudoElement:0})),Ln=wn(f({},Tn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Rn=wn(f({},Tn,{data:0})),zn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Bn={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`},Vn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Hn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Vn[e])?!!t[e]:!1}function Un(){return Hn}var Wn=wn(f({},Dn,{key:function(e){if(e.key){var t=zn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=xn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Bn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Un,charCode:function(e){return e.type===`keypress`?xn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?xn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Gn=wn(f({},Mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Kn=wn(f({},Dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Un})),qn=wn(f({},Tn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Jn=wn(f({},Mn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Yn=wn(f({},Tn,{newState:0,oldState:0})),Xn=[9,13,27,32],Zn=mn&&`CompositionEvent`in window,Qn=null;mn&&`documentMode`in document&&(Qn=document.documentMode);var $n=mn&&`TextEvent`in window&&!Qn,er=mn&&(!Zn||Qn&&8<Qn&&11>=Qn),tr=` `,nr=!1;function rr(e,t){switch(e){case`keyup`:return Xn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function ir(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var ar=!1;function or(e,t){switch(e){case`compositionend`:return ir(t);case`keypress`:return t.which===32?(nr=!0,tr):null;case`textInput`:return e=t.data,e===tr&&nr?null:e;default:return null}}function sr(e,t){if(ar)return e===`compositionend`||!Zn&&rr(e,t)?(e=bn(),yn=vn=_n=null,ar=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return er&&t.locale!==`ko`?null:t.data;default:return null}}var cr={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 lr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!cr[e.type]:t===`textarea`}function ur(e,t,n,r){N?ln?ln.push(r):ln=[r]:N=r,t=Ad(t,`onChange`),0<t.length&&(n=new En(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var dr=null,fr=null;function pr(e){Cd(e,0)}function mr(e){if(Vt(Ct(e)))return e}function hr(e,t){if(e===`change`)return t}var gr=!1;if(mn){var _r;if(mn){var P=`oninput`in document;if(!P){var vr=document.createElement(`div`);vr.setAttribute(`oninput`,`return;`),P=typeof vr.oninput==`function`}_r=P}else _r=!1;gr=_r&&(!document.documentMode||9<document.documentMode)}function yr(){dr&&(dr.detachEvent(`onpropertychange`,br),fr=dr=null)}function br(e){if(e.propertyName===`value`&&mr(fr)){var t=[];ur(t,fr,e,cn(e)),fn(pr,t)}}function xr(e,t,n){e===`focusin`?(yr(),dr=t,fr=n,dr.attachEvent(`onpropertychange`,br)):e===`focusout`&&yr()}function Sr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return mr(fr)}function Cr(e,t){if(e===`click`)return mr(t)}function wr(e,t){if(e===`input`||e===`change`)return mr(t)}function Tr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Er=typeof Object.is==`function`?Object.is:Tr;function Dr(e,t){if(Er(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!we.call(t,i)||!Er(e[i],t[i]))return!1}return!0}function Or(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function kr(e,t){var n=Or(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Or(n)}}function Ar(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ar(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function jr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ht(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ht(e.document)}return t}function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Nr=mn&&`documentMode`in document&&11>=document.documentMode,Pr=null,Fr=null,Ir=null,Lr=!1;function Rr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Lr||Pr==null||Pr!==Ht(r)||(r=Pr,`selectionStart`in r&&Mr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ir&&Dr(Ir,r)||(Ir=r,r=Ad(Fr,`onSelect`),0<r.length&&(t=new En(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Pr)))}function zr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Br={animationend:zr(`Animation`,`AnimationEnd`),animationiteration:zr(`Animation`,`AnimationIteration`),animationstart:zr(`Animation`,`AnimationStart`),transitionrun:zr(`Transition`,`TransitionRun`),transitionstart:zr(`Transition`,`TransitionStart`),transitioncancel:zr(`Transition`,`TransitionCancel`),transitionend:zr(`Transition`,`TransitionEnd`)},Vr={},Hr={};mn&&(Hr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Br.animationend.animation,delete Br.animationiteration.animation,delete Br.animationstart.animation),`TransitionEvent`in window||delete Br.transitionend.transition);function Ur(e){if(Vr[e])return Vr[e];if(!Br[e])return e;var t=Br[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Hr)return Vr[e]=t[n];return e}var Wr=Ur(`animationend`),Gr=Ur(`animationiteration`),Kr=Ur(`animationstart`),qr=Ur(`transitionrun`),Jr=Ur(`transitionstart`),Yr=Ur(`transitioncancel`),Xr=Ur(`transitionend`),Zr=new Map,Qr=`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(` `);Qr.push(`scrollEnd`);function $r(e,t){Zr.set(e,t),Ot(t,[e])}var ei=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ti=[],ni=0,ri=0;function ii(){for(var e=ni,t=ri=ni=0;t<e;){var n=ti[t];ti[t++]=null;var r=ti[t];ti[t++]=null;var i=ti[t];ti[t++]=null;var a=ti[t];if(ti[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ci(n,i,a)}}function ai(e,t,n,r){ti[ni++]=e,ti[ni++]=t,ti[ni++]=n,ti[ni++]=r,ri|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function oi(e,t,n,r){return ai(e,t,n,r),li(e)}function si(e,t){return ai(e,null,null,t),li(e)}function ci(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ue(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function li(e){if(50<mu)throw mu=0,hu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ui={};function di(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function fi(e,t,n,r){return new di(e,t,n,r)}function pi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function mi(e,t){var n=e.alternate;return n===null?(n=fi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function hi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function gi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)pi(e)&&(s=1);else if(typeof e==`string`)s=Jf(e,n,le.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case E:return e=fi(31,n,t,a),e.elementType=E,e.lanes=o,e;case g:return _i(n.children,a,o,t);case _:s=8,a|=24;break;case v:return e=fi(12,n,t,a|2),e.elementType=v,e.lanes=o,e;case S:return e=fi(13,n,t,a),e.elementType=S,e.lanes=o,e;case C:return e=fi(19,n,t,a),e.elementType=C,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case b:s=10;break a;case y:s=9;break a;case x:s=11;break a;case w:s=14;break a;case T:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=fi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function _i(e,t,n,r){return e=fi(7,e,r,t),e.lanes=n,e}function vi(e,t,n){return e=fi(6,e,null,t),e.lanes=n,e}function yi(e){var t=fi(18,null,null,0);return t.stateNode=e,t}function bi(e,t,n){return t=fi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var xi=new WeakMap;function Si(e,t){if(typeof e==`object`&&e){var n=xi.get(e);return n===void 0?(t={value:e,source:t,stack:Ce(t)},xi.set(e,t),t):n}return{value:e,source:t,stack:Ce(t)}}var Ci=[],wi=0,Ti=null,Ei=0,Di=[],Oi=0,ki=null,Ai=1,ji=``;function Mi(e,t){Ci[wi++]=Ei,Ci[wi++]=Ti,Ti=e,Ei=t}function Ni(e,t,n){Di[Oi++]=Ai,Di[Oi++]=ji,Di[Oi++]=ki,ki=e;var r=Ai;e=ji;var i=32-Ue(r)-1;r&=~(1<<i),n+=1;var a=32-Ue(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ai=1<<32-Ue(t)+i|n<<i|r,ji=a+e}else Ai=1<<a|n<<i|r,ji=e}function Pi(e){e.return!==null&&(Mi(e,1),Ni(e,1,0))}function Fi(e){for(;e===Ti;)Ti=Ci[--wi],Ci[wi]=null,Ei=Ci[--wi],Ci[wi]=null;for(;e===ki;)ki=Di[--Oi],Di[Oi]=null,ji=Di[--Oi],Di[Oi]=null,Ai=Di[--Oi],Di[Oi]=null}function Ii(e,t){Di[Oi++]=Ai,Di[Oi++]=ji,Di[Oi++]=ki,Ai=t.id,ji=t.overflow,ki=e}var Li=null,Ri=null,zi=!1,Bi=null,Vi=!1,Hi=Error(i(519));function Ui(e){throw Yi(Si(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Hi}function Wi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ft]=e,t[pt]=r,n){case`dialog`:J(`cancel`,t),J(`close`,t);break;case`iframe`:case`object`:case`embed`:J(`load`,t);break;case`video`:case`audio`:for(n=0;n<xd.length;n++)J(xd[n],t);break;case`source`:J(`error`,t);break;case`img`:case`image`:case`link`:J(`error`,t),J(`load`,t);break;case`details`:J(`toggle`,t);break;case`input`:J(`invalid`,t),Kt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:J(`invalid`,t);break;case`textarea`:J(`invalid`,t),Xt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Id(t.textContent,n)?(r.popover!=null&&(J(`beforetoggle`,t),J(`toggle`,t)),r.onScroll!=null&&J(`scroll`,t),r.onScrollEnd!=null&&J(`scrollend`,t),r.onClick!=null&&(t.onclick=on),t=!0):t=!1,t||Ui(e,!0)}function Gi(e){for(Li=e.return;Li;)switch(Li.tag){case 5:case 31:case 13:Vi=!1;return;case 27:case 3:Vi=!0;return;default:Li=Li.return}}function Ki(e){if(e!==Li)return!1;if(!zi)return Gi(e),zi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Jd(e.type,e.memoizedProps)),n=!n),n&&Ri&&Ui(e),Gi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ri=hf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ri=hf(e)}else t===27?(t=Ri,nf(e.type)?(e=mf,mf=null,Ri=e):Ri=t):Ri=Li?pf(e.stateNode.nextSibling):null;return!0}function qi(){Ri=Li=null,zi=!1}function Ji(){var e=Bi;return e!==null&&(eu===null?eu=e:eu.push.apply(eu,e),Bi=null),e}function Yi(e){Bi===null?Bi=[e]:Bi.push(e)}var Xi=se(null),Zi=null,Qi=null;function $i(e,t,n){j(Xi,t._currentValue),t._currentValue=n}function ea(e){e._currentValue=Xi.current,ce(Xi)}function ta(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function na(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),ta(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),ta(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function ra(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Er(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===fe.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[rp]:e.push(rp))}a=a.return}e!==null&&na(t,e,n,r),t.flags|=262144}function ia(e){for(e=e.firstContext;e!==null;){if(!Er(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function aa(e){Zi=e,Qi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function oa(e){return ca(Zi,e)}function sa(e,t){return Zi===null&&aa(e),ca(e,t)}function ca(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Qi===null){if(e===null)throw Error(i(308));Qi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Qi=Qi.next=t;return n}var la=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ua=t.unstable_scheduleCallback,da=t.unstable_NormalPriority,fa={$$typeof:b,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function pa(){return{controller:new la,data:new Map,refCount:0}}function ma(e){e.refCount--,e.refCount===0&&ua(da,function(){e.controller.abort()})}var ha=null,ga=0,_a=0,va=null;function ya(e,t){if(ha===null){var n=ha=[];ga=0,_a=hd(),va={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ga++,t.then(ba,ba),t}function ba(){if(--ga===0&&ha!==null){va!==null&&(va.status=`fulfilled`);var e=ha;ha=null,_a=0,va=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function xa(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Sa=k.S;k.S=function(e,t){ru=ke(),typeof t==`object`&&t&&typeof t.then==`function`&&ya(e,t),Sa!==null&&Sa(e,t)};var Ca=se(null);function wa(){var e=Ca.current;return e===null?Bl.pooledCache:e}function Ta(e,t){t===null?j(Ca,Ca.current):j(Ca,t.pool)}function Ea(){var e=wa();return e===null?null:{parent:fa._currentValue,pool:e}}var Da=Error(i(460)),Oa=Error(i(474)),ka=Error(i(542)),Aa={then:function(){}};function ja(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Ma(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(on,on),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ia(e),e;default:if(typeof t.status==`string`)t.then(on,on);else{if(e=Bl,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ia(e),e}throw Pa=t,Da}}function Na(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Pa=e,Da):e}}var Pa=null;function Fa(){if(Pa===null)throw Error(i(459));var e=Pa;return Pa=null,e}function Ia(e){if(e===Da||e===ka)throw Error(i(483))}var La=null,Ra=0;function za(e){var t=Ra;return Ra+=1,La===null&&(La=[]),Ma(La,e,t)}function Ba(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Va(e,t){throw t.$$typeof===p?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Ha(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=mi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=vi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===g?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===T&&Na(i)===t.type)?(t=a(t,n.props),Ba(t,n),t.return=e,t):(t=gi(n.type,n.key,n.props,null,e.mode,r),Ba(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=bi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=_i(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=vi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case m:return n=gi(t.type,t.key,t.props,null,e.mode,n),Ba(n,t),n.return=e,n;case h:return t=bi(t,e.mode,n),t.return=e,t;case T:return t=Na(t),f(e,t,n)}if(re(t)||te(t))return t=_i(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,za(t),n);if(t.$$typeof===b)return f(e,sa(e,t),n);Va(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case m:return n.key===i?l(e,t,n,r):null;case h:return n.key===i?u(e,t,n,r):null;case T:return n=Na(n),p(e,t,n,r)}if(re(n)||te(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,za(n),r);if(n.$$typeof===b)return p(e,t,sa(e,n),r);Va(e,n)}return null}function _(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case m:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case h:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case T:return r=Na(r),_(e,t,n,r,i)}if(re(r)||te(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return _(e,t,n,za(r),i);if(r.$$typeof===b)return _(e,t,n,sa(t,r),i);Va(t,r)}return null}function v(i,a,s,c){for(var l=null,u=null,d=a,m=a=0,h=null;d!==null&&m<s.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var g=p(i,d,s[m],c);if(g===null){d===null&&(d=h);break}e&&d&&g.alternate===null&&t(i,d),a=o(g,a,m),u===null?l=g:u.sibling=g,u=g,d=h}if(m===s.length)return n(i,d),zi&&Mi(i,m),l;if(d===null){for(;m<s.length;m++)d=f(i,s[m],c),d!==null&&(a=o(d,a,m),u===null?l=d:u.sibling=d,u=d);return zi&&Mi(i,m),l}for(d=r(d);m<s.length;m++)h=_(d,i,m,s[m],c),h!==null&&(e&&h.alternate!==null&&d.delete(h.key===null?m:h.key),a=o(h,a,m),u===null?l=h:u.sibling=h,u=h);return e&&d.forEach(function(e){return t(i,e)}),zi&&Mi(i,m),l}function y(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,m=s,h=s=0,g=null,v=c.next();m!==null&&!v.done;h++,v=c.next()){m.index>h?(g=m,m=null):g=m.sibling;var y=p(a,m,v.value,l);if(y===null){m===null&&(m=g);break}e&&m&&y.alternate===null&&t(a,m),s=o(y,s,h),d===null?u=y:d.sibling=y,d=y,m=g}if(v.done)return n(a,m),zi&&Mi(a,h),u;if(m===null){for(;!v.done;h++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return zi&&Mi(a,h),u}for(m=r(m);!v.done;h++,v=c.next())v=_(m,a,h,v.value,l),v!==null&&(e&&v.alternate!==null&&m.delete(v.key===null?h:v.key),s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return e&&m.forEach(function(e){return t(a,e)}),zi&&Mi(a,h),u}function x(e,r,o,c){if(typeof o==`object`&&o&&o.type===g&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case m:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===g){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===T&&Na(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ba(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===g?(c=_i(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=gi(o.type,o.key,o.props,null,e.mode,c),Ba(c,o),c.return=e,e=c)}return s(e);case h:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}t(e,r),r=r.sibling}c=bi(o,e.mode,c),c.return=e,e=c}return s(e);case T:return o=Na(o),x(e,r,o,c)}if(re(o))return v(e,r,o,c);if(te(o)){if(l=te(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return x(e,r,za(o),c);if(o.$$typeof===b)return x(e,r,sa(e,o),c);Va(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=vi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ra=0;var i=x(e,t,n,r);return La=null,i}catch(t){if(t===Da||t===ka)throw t;var a=fi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ua=Ha(!0),Wa=Ha(!1),Ga=!1;function Ka(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ja(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ya(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,zl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=li(e),ci(e,null,n),t}return ai(e,r,t,n),li(e)}function Xa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,at(e,n)}}function Za(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Qa=!1;function $a(){if(Qa){var e=va;if(e!==null)throw e}}function eo(e,t,n,r){Qa=!1;var i=e.updateQueue;Ga=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var p=s.lane&-536870913,m=p!==s.lane;if(m?(q&p)===p:(r&p)===p){p!==0&&p===_a&&(Qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:Ga=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Jl|=o,e.lanes=o,e.memoizedState=d}}function to(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function no(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)to(n[e],t)}var ro=se(null),io=se(0);function ao(e,t){e=Kl,j(io,e),j(ro,t),Kl=e|t.baseLanes}function oo(){j(io,Kl),j(ro,ro.current)}function so(){Kl=io.current,ce(ro),ce(io)}var co=se(null),lo=null;function uo(e){var t=e.alternate;j(go,go.current&1),j(co,e),lo===null&&(t===null||ro.current!==null||t.memoizedState!==null)&&(lo=e)}function fo(e){j(go,go.current),j(co,e),lo===null&&(lo=e)}function po(e){e.tag===22?(j(go,go.current),j(co,e),lo===null&&(lo=e)):mo(e)}function mo(){j(go,go.current),j(co,co.current)}function ho(e){ce(co),lo===e&&(lo=null),ce(go)}var go=se(0);function _o(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||uf(n)||df(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var vo=0,F=null,yo=null,bo=null,xo=!1,So=!1,Co=!1,wo=0,To=0,Eo=null,Do=0;function Oo(){throw Error(i(321))}function ko(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Er(e[n],t[n]))return!1;return!0}function Ao(e,t,n,r,i,a){return vo=a,F=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,k.H=e===null||e.memoizedState===null?Ls:Rs,Co=!1,a=n(r,i),Co=!1,So&&(a=Mo(t,n,r,i)),jo(e),a}function jo(e){k.H=Is;var t=yo!==null&&yo.next!==null;if(vo=0,bo=yo=F=null,xo=!1,To=0,Eo=null,t)throw Error(i(300));e===null||tc||(e=e.dependencies,e!==null&&ia(e)&&(tc=!0))}function Mo(e,t,n,r){F=e;var a=0;do{if(So&&(Eo=null),To=0,So=!1,25<=a)throw Error(i(301));if(a+=1,bo=yo=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}k.H=zs,o=t(n,r)}while(So);return o}function No(){var e=k.H,t=e.useState()[0];return t=typeof t.then==`function`?Bo(t):t,e=e.useState()[0],(yo===null?null:yo.memoizedState)!==e&&(F.flags|=1024),t}function Po(){var e=wo!==0;return wo=0,e}function Fo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Io(e){if(xo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}xo=!1}vo=0,bo=yo=F=null,So=!1,To=wo=0,Eo=null}function Lo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return bo===null?F.memoizedState=bo=e:bo=bo.next=e,bo}function Ro(){if(yo===null){var e=F.alternate;e=e===null?null:e.memoizedState}else e=yo.next;var t=bo===null?F.memoizedState:bo.next;if(t!==null)bo=t,yo=e;else{if(e===null)throw F.alternate===null?Error(i(467)):Error(i(310));yo=e,e={memoizedState:yo.memoizedState,baseState:yo.baseState,baseQueue:yo.baseQueue,queue:yo.queue,next:null},bo===null?F.memoizedState=bo=e:bo=bo.next=e}return bo}function zo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Bo(e){var t=To;return To+=1,Eo===null&&(Eo=[]),e=Ma(Eo,e,t),t=F,(bo===null?t.memoizedState:bo.next)===null&&(t=t.alternate,k.H=t===null||t.memoizedState===null?Ls:Rs),e}function Vo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Bo(e);if(e.$$typeof===b)return oa(e)}throw Error(i(438,String(e)))}function Ho(e){var t=null,n=F.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=F.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=zo(),F.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=D;return t.index++,n}function Uo(e,t){return typeof t==`function`?t(e):t}function Wo(e){return Go(Ro(),yo,e)}function Go(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(vo&f)===f:(q&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===_a&&(d=!0);else if((vo&p)===p){u=u.next,p===_a&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,F.lanes|=p,Jl|=p;f=u.action,Co&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,F.lanes|=f,Jl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Er(o,e.memoizedState)&&(tc=!0,d&&(n=va,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Ko(e){var t=Ro(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Er(o,t.memoizedState)||(tc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function qo(e,t,n){var r=F,a=Ro(),o=zi;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Er((yo||a).memoizedState,n);if(s&&(a.memoizedState=n,tc=!0),a=a.queue,W(Xo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||bo!==null&&bo.memoizedState.tag&1){if(r.flags|=2048,H(9,{destroy:void 0},Yo.bind(null,r,a,n,t),null),Bl===null)throw Error(i(349));o||vo&127||Jo(r,t,n)}return n}function Jo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=F.updateQueue,t===null?(t=zo(),F.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Yo(e,t,n,r){t.value=n,t.getSnapshot=r,Zo(t)&&Qo(e)}function Xo(e,t,n){return n(function(){Zo(t)&&Qo(e)})}function Zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Er(e,n)}catch{return!0}}function Qo(e){var t=si(e,2);t!==null&&vu(t,e,2)}function $o(e){var t=Lo();if(typeof e==`function`){var n=e;if(e=n(),Co){He(!0);try{n()}finally{He(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},t}function es(e,t,n,r){return e.baseState=n,Go(e,yo,typeof r==`function`?r:Uo)}function ts(e,t,n,r,a){if(Ns(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};k.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,ns(t,o)):(o.next=n.next,t.pending=n.next=o)}}function ns(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=k.T,o={};k.T=o;try{var s=n(i,r),c=k.S;c!==null&&c(o,s),rs(e,t,s)}catch(n){I(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),k.T=a}}else try{a=n(i,r),rs(e,t,a)}catch(n){I(e,t,n)}}function rs(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){is(e,t,n)},function(n){return I(e,t,n)}):is(e,t,n)}function is(e,t,n){t.status=`fulfilled`,t.value=n,L(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,ns(e,n)))}function I(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,L(t),t=t.next;while(t!==r)}e.action=null}function L(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function R(e,t){return t}function z(e,t){if(zi){var n=Bl.formState;if(n!==null){a:{var r=F;if(zi){if(Ri){b:{for(var i=Ri,a=Vi;i.nodeType!==8;){if(!a){i=null;break b}if(i=pf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ri=pf(i.nextSibling),r=i.data===`F!`;break a}}Ui(r)}r=!1}r&&(t=n[0])}}return n=Lo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:R,lastRenderedState:t},n.queue=r,n=As.bind(null,F,r),r.dispatch=n,r=$o(!1),a=Ms.bind(null,F,!1,r.queue),r=Lo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=ts.bind(null,F,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function as(e){return B(Ro(),yo,e)}function B(e,t,n){if(t=Go(e,t,R)[0],e=Wo(Uo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Bo(t)}catch(e){throw e===Da?ka:e}else r=t;t=Ro();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(F.flags|=2048,H(9,{destroy:void 0},os.bind(null,i,n),null)),[r,a,e]}function os(e,t){e.action=t}function V(e){var t=Ro(),n=yo;if(n!==null)return B(t,n,e);Ro(),t=t.memoizedState,n=Ro();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function H(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=F.updateQueue,t===null&&(t=zo(),F.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ss(){return Ro().memoizedState}function cs(e,t,n,r){var i=Lo();F.flags|=e,i.memoizedState=H(1|t,{destroy:void 0},n,r===void 0?null:r)}function ls(e,t,n,r){var i=Ro();r=r===void 0?null:r;var a=i.memoizedState.inst;yo!==null&&r!==null&&ko(r,yo.memoizedState.deps)?i.memoizedState=H(t,a,n,r):(F.flags|=e,i.memoizedState=H(1|t,a,n,r))}function U(e,t){cs(8390656,8,e,t)}function W(e,t){ls(2048,8,e,t)}function G(e){F.flags|=4;var t=F.updateQueue;if(t===null)t=zo(),F.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function us(e){var t=Ro().memoizedState;return G({ref:t,nextImpl:e}),function(){if(zl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ds(e,t){return ls(4,2,e,t)}function fs(e,t){return ls(4,4,e,t)}function ps(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ms(e,t,n){n=n==null?null:n.concat([e]),ls(4,4,ps.bind(null,t,e),n)}function hs(){}function gs(e,t){var n=Ro();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&ko(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function _s(e,t){var n=Ro();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&ko(t,r[1]))return r[0];if(r=e(),Co){He(!0);try{e()}finally{He(!1)}}return n.memoizedState=[r,t],r}function vs(e,t,n){return n===void 0||vo&1073741824&&!(q&261930)?e.memoizedState=t:(e.memoizedState=n,e=_u(),F.lanes|=e,Jl|=e,n)}function ys(e,t,n,r){return Er(n,t)?n:ro.current===null?!(vo&42)||vo&1073741824&&!(q&261930)?(tc=!0,e.memoizedState=n):(e=_u(),F.lanes|=e,Jl|=e,t):(e=vs(e,n,r),Er(e,t)||(tc=!0),e)}function bs(e,t,n,r,i){var a=A.p;A.p=a!==0&&8>a?a:8;var o=k.T,s={};k.T=s,Ms(e,!1,t,n);try{var c=i(),l=k.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?js(e,t,xa(c,r),gu(e)):js(e,t,r,gu(e))}catch(n){js(e,t,{then:function(){},status:`rejected`,reason:n},gu())}finally{A.p=a,o!==null&&s.types!==null&&(o.types=s.types),k.T=o}}function xs(){}function Ss(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Cs(e).queue;bs(e,a,t,ie,n===null?xs:function(){return ws(e),n(r)})}function Cs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:ie},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ws(e){var t=Cs(e);t.next===null&&(t=e.alternate.memoizedState),js(e,t.next.queue,{},gu())}function Ts(){return oa(rp)}function Es(){return Ro().memoizedState}function Ds(){return Ro().memoizedState}function Os(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=gu();e=Ja(n);var r=Ya(t,e,n);r!==null&&(vu(r,t,n),Xa(r,t,n)),t={cache:pa()},e.payload=t;return}t=t.return}}function ks(e,t,n){var r=gu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ns(e)?Ps(t,n):(n=oi(e,t,n,r),n!==null&&(vu(n,e,r),Fs(n,t,r)))}function As(e,t,n){js(e,t,n,gu())}function js(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ns(e))Ps(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Er(s,o))return ai(e,t,i,0),Bl===null&&ii(),!1}catch{}if(n=oi(e,t,i,r),n!==null)return vu(n,e,r),Fs(n,t,r),!0}return!1}function Ms(e,t,n,r){if(r={lane:2,revertLane:hd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ns(e)){if(t)throw Error(i(479))}else t=oi(e,n,r,2),t!==null&&vu(t,e,2)}function Ns(e){var t=e.alternate;return e===F||t!==null&&t===F}function Ps(e,t){So=xo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Fs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,at(e,n)}}var Is={readContext:oa,use:Vo,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useLayoutEffect:Oo,useInsertionEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useSyncExternalStore:Oo,useId:Oo,useHostTransitionStatus:Oo,useFormState:Oo,useActionState:Oo,useOptimistic:Oo,useMemoCache:Oo,useCacheRefresh:Oo};Is.useEffectEvent=Oo;var Ls={readContext:oa,use:Vo,useCallback:function(e,t){return Lo().memoizedState=[e,t===void 0?null:t],e},useContext:oa,useEffect:U,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),cs(4194308,4,ps.bind(null,t,e),n)},useLayoutEffect:function(e,t){return cs(4194308,4,e,t)},useInsertionEffect:function(e,t){cs(4,2,e,t)},useMemo:function(e,t){var n=Lo();t=t===void 0?null:t;var r=e();if(Co){He(!0);try{e()}finally{He(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Lo();if(n!==void 0){var i=n(t);if(Co){He(!0);try{n(t)}finally{He(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ks.bind(null,F,e),[r.memoizedState,e]},useRef:function(e){var t=Lo();return e={current:e},t.memoizedState=e},useState:function(e){e=$o(e);var t=e.queue,n=As.bind(null,F,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:hs,useDeferredValue:function(e,t){return vs(Lo(),e,t)},useTransition:function(){var e=$o(!1);return e=bs.bind(null,F,e.queue,!0,!1),Lo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=F,a=Lo();if(zi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Bl===null)throw Error(i(349));q&127||Jo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,U(Xo.bind(null,r,o,e),[e]),r.flags|=2048,H(9,{destroy:void 0},Yo.bind(null,r,o,n,t),null),n},useId:function(){var e=Lo(),t=Bl.identifierPrefix;if(zi){var n=ji,r=Ai;n=(r&~(1<<32-Ue(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=wo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Do++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Ts,useFormState:z,useActionState:z,useOptimistic:function(e){var t=Lo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ms.bind(null,F,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ho,useCacheRefresh:function(){return Lo().memoizedState=Os.bind(null,F)},useEffectEvent:function(e){var t=Lo(),n={impl:e};return t.memoizedState=n,function(){if(zl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Rs={readContext:oa,use:Vo,useCallback:gs,useContext:oa,useEffect:W,useImperativeHandle:ms,useInsertionEffect:ds,useLayoutEffect:fs,useMemo:_s,useReducer:Wo,useRef:ss,useState:function(){return Wo(Uo)},useDebugValue:hs,useDeferredValue:function(e,t){return ys(Ro(),yo.memoizedState,e,t)},useTransition:function(){var e=Wo(Uo)[0],t=Ro().memoizedState;return[typeof e==`boolean`?e:Bo(e),t]},useSyncExternalStore:qo,useId:Es,useHostTransitionStatus:Ts,useFormState:as,useActionState:as,useOptimistic:function(e,t){return es(Ro(),yo,e,t)},useMemoCache:Ho,useCacheRefresh:Ds};Rs.useEffectEvent=us;var zs={readContext:oa,use:Vo,useCallback:gs,useContext:oa,useEffect:W,useImperativeHandle:ms,useInsertionEffect:ds,useLayoutEffect:fs,useMemo:_s,useReducer:Ko,useRef:ss,useState:function(){return Ko(Uo)},useDebugValue:hs,useDeferredValue:function(e,t){var n=Ro();return yo===null?vs(n,e,t):ys(n,yo.memoizedState,e,t)},useTransition:function(){var e=Ko(Uo)[0],t=Ro().memoizedState;return[typeof e==`boolean`?e:Bo(e),t]},useSyncExternalStore:qo,useId:Es,useHostTransitionStatus:Ts,useFormState:V,useActionState:V,useOptimistic:function(e,t){var n=Ro();return yo===null?(n.baseState=e,[e,n.queue.dispatch]):es(n,yo,e,t)},useMemoCache:Ho,useCacheRefresh:Ds};zs.useEffectEvent=us;function Bs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:f({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Vs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ja(r);i.payload=t,n!=null&&(i.callback=n),t=Ya(e,i,r),t!==null&&(vu(t,e,r),Xa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ja(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ya(e,i,r),t!==null&&(vu(t,e,r),Xa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=gu(),r=Ja(n);r.tag=2,t!=null&&(r.callback=t),t=Ya(e,r,n),t!==null&&(vu(t,e,n),Xa(t,e,n))}};function Hs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Dr(n,r)||!Dr(i,a):!0}function Us(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Vs.enqueueReplaceState(t,t.state,null)}function Ws(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=f({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Gs(e){ei(e)}function Ks(e){console.error(e)}function qs(e){ei(e)}function Js(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Ys(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Xs(e,t,n){return n=Ja(n),n.tag=3,n.payload={element:null},n.callback=function(){Js(e,t)},n}function Zs(e){return e=Ja(e),e.tag=3,e}function Qs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Ys(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Ys(t,n,r),typeof i!=`function`&&(ou===null?ou=new Set([this]):ou.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function $s(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&ra(t,n,a,!0),n=co.current,n!==null){switch(n.tag){case 31:case 13:return lo===null?Au():n.alternate===null&&ql===0&&(ql=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Aa?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Yu(e,r,a)),!1;case 22:return n.flags|=65536,r===Aa?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Yu(e,r,a)),!1}throw Error(i(435,n.tag))}return Yu(e,r,a),Au(),!1}if(zi)return t=co.current,t===null?(r!==Hi&&(t=Error(i(423),{cause:r}),Yi(Si(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Si(r,n),a=Xs(e.stateNode,r,a),Za(e,a),ql!==4&&(ql=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Hi&&(e=Error(i(422),{cause:r}),Yi(Si(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Si(o,n),$l===null?$l=[o]:$l.push(o),ql!==4&&(ql=2),t===null)return!0;r=Si(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Xs(n.stateNode,r,e),Za(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ou===null||!ou.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Zs(a),Qs(a,e,n,r),Za(n,a),!1}n=n.return}while(n!==null);return!1}var ec=Error(i(461)),tc=!1;function nc(e,t,n,r){t.child=e===null?Wa(t,null,n,r):Ua(t,e.child,n,r)}function rc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return aa(t),r=Ao(e,t,n,o,a,i),s=Po(),e!==null&&!tc?(Fo(e,t,i),Dc(e,t,i)):(zi&&s&&Pi(t),t.flags|=1,nc(e,t,r,i),t.child)}function ic(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!pi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,ac(e,t,a,r,i)):(e=gi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Oc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Dr:n,n(o,r)&&e.ref===t.ref)return Dc(e,t,i)}return t.flags|=1,e=mi(a,r),e.ref=t.ref,e.return=t,t.child=e}function ac(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Dr(a,r)&&e.ref===t.ref)if(tc=!1,t.pendingProps=r=a,Oc(e,i))e.flags&131072&&(tc=!0);else return t.lanes=e.lanes,Dc(e,t,i)}return pc(e,t,n,r,i)}function oc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return cc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ta(t,a===null?null:a.cachePool),a===null?oo():ao(t,a),po(t);else return r=t.lanes=536870912,cc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Ta(t,null),oo(),mo(t)):(Ta(t,a.cachePool),ao(t,a),mo(t),t.memoizedState=null);return nc(e,t,i,n),t.child}function sc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function cc(e,t,n,r,i){var a=wa();return a=a===null?null:{parent:fa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Ta(t,null),oo(),po(t),e!==null&&ra(e,t,r,!0),t.childLanes=i,null}function lc(e,t){return t=Sc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function uc(e,t,n){return Ua(t,e.child,null,n),e=lc(t,t.pendingProps),e.flags|=2,ho(t),t.memoizedState=null,e}function dc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(zi){if(r.mode===`hidden`)return e=lc(t,r),t.lanes=536870912,sc(null,e);if(fo(t),(e=Ri)?(e=lf(e,Vi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ki===null?null:{id:Ai,overflow:ji},retryLane:536870912,hydrationErrors:null},n=yi(e),n.return=t,t.child=n,Li=t,Ri=null)):e=null,e===null)throw Ui(t);return t.lanes=536870912,null}return lc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(fo(t),a)if(t.flags&256)t.flags&=-257,t=uc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(tc||ra(e,t,n,!1),a=(n&e.childLanes)!==0,tc||a){if(r=Bl,r!==null&&(s=ot(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,si(e,s),vu(r,e,s),ec;Au(),t=uc(e,t,n)}else e=o.treeContext,Ri=pf(s.nextSibling),Li=t,zi=!0,Bi=null,Vi=!1,e!==null&&Ii(t,e),t=lc(t,r),t.flags|=4096;return t}return e=mi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function fc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function pc(e,t,n,r,i){return aa(t),n=Ao(e,t,n,r,void 0,i),r=Po(),e!==null&&!tc?(Fo(e,t,i),Dc(e,t,i)):(zi&&r&&Pi(t),t.flags|=1,nc(e,t,n,i),t.child)}function mc(e,t,n,r,i,a){return aa(t),t.updateQueue=null,n=Mo(t,r,n,i),jo(e),r=Po(),e!==null&&!tc?(Fo(e,t,a),Dc(e,t,a)):(zi&&r&&Pi(t),t.flags|=1,nc(e,t,n,a),t.child)}function hc(e,t,n,r,i){if(aa(t),t.stateNode===null){var a=ui,o=n.contextType;typeof o==`object`&&o&&(a=oa(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Vs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ka(t),o=n.contextType,a.context=typeof o==`object`&&o?oa(o):ui,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Bs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Vs.enqueueReplaceState(a,a.state,null),eo(t,r,a,i),$a(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Ws(n,s);a.props=c;var l=a.context,u=n.contextType;o=ui,typeof u==`object`&&u&&(o=oa(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Us(t,a,r,o),Ga=!1;var f=t.memoizedState;a.state=f,eo(t,r,a,i),$a(),l=t.memoizedState,s||f!==l||Ga?(typeof d==`function`&&(Bs(t,n,d,r),l=t.memoizedState),(c=Ga||Hs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,qa(e,t),o=t.memoizedProps,u=Ws(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ui,typeof l==`object`&&l&&(c=oa(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Us(t,a,r,c),Ga=!1,f=t.memoizedState,a.state=f,eo(t,r,a,i),$a();var p=t.memoizedState;o!==d||f!==p||Ga||e!==null&&e.dependencies!==null&&ia(e.dependencies)?(typeof s==`function`&&(Bs(t,n,s,r),p=t.memoizedState),(u=Ga||Hs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ia(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,fc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ua(t,e.child,null,i),t.child=Ua(t,null,n,i)):nc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Dc(e,t,i),e}function gc(e,t,n,r){return qi(),t.flags|=256,nc(e,t,n,r),t.child}var _c={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function vc(e){return{baseLanes:e,cachePool:Ea()}}function yc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Zl),e}function bc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(go.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(zi){if(a?uo(t):mo(t),(e=Ri)?(e=lf(e,Vi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ki===null?null:{id:Ai,overflow:ji},retryLane:536870912,hydrationErrors:null},n=yi(e),n.return=t,t.child=n,Li=t,Ri=null)):e=null,e===null)throw Ui(t);return df(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(mo(t),a=t.mode,c=Sc({mode:`hidden`,children:c},a),r=_i(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=vc(n),r.childLanes=yc(e,s,n),t.memoizedState=_c,sc(null,r)):(uo(t),xc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(uo(t),t.flags&=-257,t=Cc(e,t,n)):t.memoizedState===null?(mo(t),c=r.fallback,a=t.mode,r=Sc({mode:`visible`,children:r.children},a),c=_i(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ua(t,e.child,null,n),r=t.child,r.memoizedState=vc(n),r.childLanes=yc(e,s,n),t.memoizedState=_c,t=sc(null,r)):(mo(t),t.child=e.child,t.flags|=128,t=null);else if(uo(t),df(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Yi({value:r,source:null,stack:null}),t=Cc(e,t,n)}else if(tc||ra(e,t,n,!1),s=(n&e.childLanes)!==0,tc||s){if(s=Bl,s!==null&&(r=ot(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,si(e,r),vu(s,e,r),ec;uf(c)||Au(),t=Cc(e,t,n)}else uf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ri=pf(c.nextSibling),Li=t,zi=!0,Bi=null,Vi=!1,e!==null&&Ii(t,e),t=xc(t,r.children),t.flags|=4096);return t}return a?(mo(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=mi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=_i(c,a,n,null),c.flags|=2):c=mi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,sc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=vc(n):(a=c.cachePool,a===null?a=Ea():(l=fa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=yc(e,s,n),t.memoizedState=_c,sc(e.child,r)):(uo(t),n=e.child,e=n.sibling,n=mi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function xc(e,t){return t=Sc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Sc(e,t){return e=fi(22,e,null,t),e.lanes=0,e}function Cc(e,t,n){return Ua(t,e.child,null,n),e=xc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ta(e.return,t,n)}function Tc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Ec(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=go.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,j(go,o),nc(e,t,r,n),r=zi?Ei:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&wc(e,n,t);else if(e.tag===19)wc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&_o(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Tc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&_o(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Tc(t,!0,n,null,a,r);break;case`together`:Tc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Dc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Jl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ra(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=mi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=mi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Oc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&ia(e)))}function kc(e,t,n){switch(t.tag){case 3:pe(t,t.stateNode.containerInfo),$i(t,fa,e.memoizedState.cache),qi();break;case 27:case 5:he(t);break;case 4:pe(t,t.stateNode.containerInfo);break;case 10:$i(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,fo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(uo(t),e=Dc(e,t,n),e===null?null:e.sibling):bc(e,t,n):(uo(t),t.flags|=128,null);uo(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(ra(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Ec(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),j(go,go.current),r)break;return null;case 22:return t.lanes=0,oc(e,t,n,t.pendingProps);case 24:$i(t,fa,e.memoizedState.cache)}return Dc(e,t,n)}function Ac(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)tc=!0;else{if(!Oc(e,n)&&!(t.flags&128))return tc=!1,kc(e,t,n);tc=!!(e.flags&131072)}else tc=!1,zi&&t.flags&1048576&&Ni(t,Ei,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Na(t.elementType),t.type=e,typeof e==`function`)pi(e)?(r=Ws(e,r),t.tag=1,t=hc(null,t,e,r,n)):(t.tag=0,t=pc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===x){t.tag=11,t=rc(null,t,e,r,n);break a}if(a===w){t.tag=14,t=ic(null,t,e,r,n);break a}}throw t=O(e)||e,Error(i(306,t,``))}}return t;case 0:return pc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Ws(r,t.pendingProps),hc(e,t,r,a,n);case 3:a:{if(pe(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,qa(e,t),eo(t,r,null,n);var s=t.memoizedState;if(r=s.cache,$i(t,fa,r),r!==o.cache&&na(t,[fa],n,!0),$a(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=gc(e,t,r,n);break a}else if(r!==a){a=Si(Error(i(424)),t),Yi(a),t=gc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ri=pf(e.firstChild),Li=t,zi=!0,Bi=null,Vi=!0,n=Wa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(qi(),r===a){t=Dc(e,t,n);break a}nc(e,t,r,n)}t=t.child}return t;case 26:return fc(e,t),e===null?(n=Pf(t.type,null,t.pendingProps,null))?t.memoizedState=n:zi||(n=t.type,e=t.pendingProps,r=Gd(de.current).createElement(n),r[ft]=t,r[pt]=e,zd(r,n,e),Tt(r),t.stateNode=r):t.memoizedState=Pf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return he(t),e===null&&zi&&(r=t.stateNode=_f(t.type,t.pendingProps,de.current),Li=t,Vi=!0,a=Ri,nf(t.type)?(mf=a,Ri=pf(r.firstChild)):Ri=a),nc(e,t,t.pendingProps.children,n),fc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&zi&&((a=r=Ri)&&(r=sf(r,t.type,t.pendingProps,Vi),r===null?a=!1:(t.stateNode=r,Li=t,Ri=pf(r.firstChild),Vi=!1,a=!0)),a||Ui(t)),he(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Jd(a,o)?r=null:s!==null&&Jd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Ao(e,t,No,null,null,n),rp._currentValue=a),fc(e,t),nc(e,t,r,n),t.child;case 6:return e===null&&zi&&((e=n=Ri)&&(n=cf(n,t.pendingProps,Vi),n===null?e=!1:(t.stateNode=n,Li=t,Ri=null,e=!0)),e||Ui(t)),null;case 13:return bc(e,t,n);case 4:return pe(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ua(t,null,r,n):nc(e,t,r,n),t.child;case 11:return rc(e,t,t.type,t.pendingProps,n);case 7:return nc(e,t,t.pendingProps,n),t.child;case 8:return nc(e,t,t.pendingProps.children,n),t.child;case 12:return nc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,$i(t,t.type,r.value),nc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,aa(t),a=oa(a),r=r(a),t.flags|=1,nc(e,t,r,n),t.child;case 14:return ic(e,t,t.type,t.pendingProps,n);case 15:return ac(e,t,t.type,t.pendingProps,n);case 19:return Ec(e,t,n);case 31:return dc(e,t,n);case 22:return oc(e,t,n,t.pendingProps);case 24:return aa(t),r=oa(fa),e===null?(a=wa(),a===null&&(a=Bl,o=pa(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ka(t),$i(t,fa,a)):((e.lanes&n)!==0&&(qa(e,t),eo(t,null,null,n),$a()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,$i(t,fa,r),r!==a.cache&&na(t,[fa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),$i(t,fa,r))),nc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function jc(e){e.flags|=4}function Mc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Du())e.flags|=8192;else throw Pa=Aa,Oa}else e.flags&=-16777217}function Nc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Yf(t))if(Du())e.flags|=8192;else throw Pa=Aa,Oa}function Pc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:et(),e.lanes|=t,Ql|=t)}function Fc(e,t){if(!zi)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ic(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Lc(e,t,n){var r=t.pendingProps;switch(Fi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ic(t),null;case 1:return Ic(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ea(fa),me(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ki(t)?jc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ji())),Ic(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(jc(t),o===null?(Ic(t),Mc(t,a,null,r,n)):(Ic(t),Nc(t,o))):o?o===e.memoizedState?(Ic(t),t.flags&=-16777217):(jc(t),Ic(t),Nc(t,o)):(e=e.memoizedProps,e!==r&&jc(t),Ic(t),Mc(t,a,e,r,n)),null;case 27:if(ge(t),n=de.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Ic(t),null}e=le.current,Ki(t)?Wi(t,e):(e=_f(a,r,n),t.stateNode=e,jc(t))}return Ic(t),null;case 5:if(ge(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Ic(t),null}if(o=le.current,Ki(t))Wi(t,o);else{var s=Gd(de.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ft]=t,o[pt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(zd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&jc(t)}}return Ic(t),Mc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=de.current,Ki(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Li,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ft]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Id(e.nodeValue,n)),e||Ui(t,!0)}else e=Gd(e).createTextNode(r),e[ft]=t,t.stateNode=e}return Ic(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ki(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ft]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),e=!1}else n=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ho(t),t):(ho(t),null);if(t.flags&128)throw Error(i(558))}return Ic(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Ki(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ft]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),a=!1}else a=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ho(t),t):(ho(t),null)}return ho(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Pc(t,t.updateQueue),Ic(t),null);case 4:return me(),e===null&&Ed(t.stateNode.containerInfo),Ic(t),null;case 10:return ea(t.type),Ic(t),null;case 19:if(ce(go),r=t.memoizedState,r===null)return Ic(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null)if(a)Fc(r,!1);else{if(ql!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=_o(e),o!==null){for(t.flags|=128,Fc(r,!1),e=o.updateQueue,t.updateQueue=e,Pc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)hi(n,e),n=n.sibling;return j(go,go.current&1|2),zi&&Mi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&ke()>iu&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}else{if(!a)if(e=_o(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Pc(t,e),Fc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!zi)return Ic(t),null}else 2*ke()-r.renderingStartTime>iu&&n!==536870912&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ic(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ke(),e.sibling=null,n=go.current,j(go,a?n&1|2:n&1),zi&&Mi(t,r.treeForkCount),e);case 22:case 23:return ho(t),so(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ic(t),t.subtreeFlags&6&&(t.flags|=8192)):Ic(t),n=t.updateQueue,n!==null&&Pc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ce(Ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ea(fa),Ic(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Rc(e,t){switch(Fi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ea(fa),me(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ge(t),null;case 31:if(t.memoizedState!==null){if(ho(t),t.alternate===null)throw Error(i(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ho(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ce(go),null;case 4:return me(),null;case 10:return ea(t.type),null;case 22:case 23:return ho(t),so(),e!==null&&ce(Ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ea(fa),null;case 25:return null;default:return null}}function zc(e,t){switch(Fi(t),t.tag){case 3:ea(fa),me();break;case 26:case 27:case 5:ge(t);break;case 4:me();break;case 31:t.memoizedState!==null&&ho(t);break;case 13:ho(t);break;case 19:ce(go);break;case 10:ea(t.type);break;case 22:case 23:ho(t),so(),e!==null&&ce(Ca);break;case 24:ea(fa)}}function Bc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Ju(t,t.return,e)}}function Vc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Ju(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Ju(t,t.return,e)}}function Hc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{no(t,n)}catch(t){Ju(e,e.return,t)}}}function Uc(e,t,n){n.props=Ws(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Ju(e,t,n)}}function Wc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Ju(e,t,n)}}function Gc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Ju(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Ju(e,t,n)}else n.current=null}function Kc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Ju(e,e.return,t)}}function qc(e,t,n){try{var r=e.stateNode;Bd(r,e.type,n,t),r[pt]=t}catch(t){Ju(e,e.return,t)}}function Jc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&nf(e.type)||e.tag===4}function Yc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Jc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&nf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=on));else if(r!==4&&(r===27&&nf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&nf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);zd(t,r,n),t[ft]=e,t[pt]=n}catch(t){Ju(e,e.return,t)}}var $c=!1,el=!1,tl=!1,nl=typeof WeakSet==`function`?WeakSet:Set,rl=null;function il(e,t){if(e=e.containerInfo,Ud=fp,e=jr(e),Mr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Wd={focusedElem:e,selectionRange:n},fp=!1,rl=t;rl!==null;)if(t=rl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,rl=e;else for(;rl!==null;){switch(t=rl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Ws(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Ju(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)of(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:of(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,rl=e;break}rl=t.return}}function al(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:bl(e,n),r&4&&Bc(5,n);break;case 1:if(bl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Ju(n,n.return,e)}else{var i=Ws(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Ju(n,n.return,e)}}r&64&&Hc(n),r&512&&Wc(n,n.return);break;case 3:if(bl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{no(e,t)}catch(e){Ju(n,n.return,e)}}break;case 27:t===null&&r&4&&Qc(n);case 26:case 5:bl(e,n),t===null&&r&4&&Kc(n),r&512&&Wc(n,n.return);break;case 12:bl(e,n);break;case 31:bl(e,n),r&4&&dl(e,n);break;case 13:bl(e,n),r&4&&fl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Qu.bind(null,n),ff(e,n))));break;case 22:if(r=n.memoizedState!==null||$c,!r){t=t!==null&&t.memoizedState!==null||el,i=$c;var a=el;$c=r,(el=t)&&!a?Sl(e,n,!!(n.subtreeFlags&8772)):bl(e,n),$c=i,el=a}break;case 30:break;default:bl(e,n)}}function ol(e){var t=e.alternate;t!==null&&(e.alternate=null,ol(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&bt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var sl=null,cl=!1;function ll(e,t,n){for(n=n.child;n!==null;)ul(e,t,n),n=n.sibling}function ul(e,t,n){if(Ve&&typeof Ve.onCommitFiberUnmount==`function`)try{Ve.onCommitFiberUnmount(M,n)}catch{}switch(n.tag){case 26:el||Gc(n,t),ll(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:el||Gc(n,t);var r=sl,i=cl;nf(n.type)&&(sl=n.stateNode,cl=!1),ll(e,t,n),vf(n.stateNode),sl=r,cl=i;break;case 5:el||Gc(n,t);case 6:if(r=sl,i=cl,sl=null,ll(e,t,n),sl=r,cl=i,sl!==null)if(cl)try{(sl.nodeType===9?sl.body:sl.nodeName===`HTML`?sl.ownerDocument.body:sl).removeChild(n.stateNode)}catch(e){Ju(n,t,e)}else try{sl.removeChild(n.stateNode)}catch(e){Ju(n,t,e)}break;case 18:sl!==null&&(cl?(e=sl,rf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Lp(e)):rf(sl,n.stateNode));break;case 4:r=sl,i=cl,sl=n.stateNode.containerInfo,cl=!0,ll(e,t,n),sl=r,cl=i;break;case 0:case 11:case 14:case 15:Vc(2,n,t),el||Vc(4,n,t),ll(e,t,n);break;case 1:el||(Gc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Uc(n,t,r)),ll(e,t,n);break;case 21:ll(e,t,n);break;case 22:el=(r=el)||n.memoizedState!==null,ll(e,t,n),el=r;break;default:ll(e,t,n)}}function dl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Lp(e)}catch(e){Ju(t,t.return,e)}}}function fl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Lp(e)}catch(e){Ju(t,t.return,e)}}function pl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new nl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new nl),t;default:throw Error(i(435,e.tag))}}function ml(e,t){var n=pl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=$u.bind(null,e,t);t.then(r,r)}})}function hl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(nf(c.type)){sl=c.stateNode,cl=!1;break a}break;case 5:sl=c.stateNode,cl=!1;break a;case 3:case 4:sl=c.stateNode.containerInfo,cl=!0;break a}c=c.return}if(sl===null)throw Error(i(160));ul(o,s,a),sl=null,cl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)_l(t,e),t=t.sibling}var gl=null;function _l(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:hl(t,e),vl(e),r&4&&(Vc(3,e,e.return),Bc(3,e),Vc(5,e,e.return));break;case 1:hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),r&64&&$c&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=gl;if(hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[yt]||o[ft]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),zd(o,r,n),o[ft]=e,Tt(o),r=o;break a;case`link`:var s=Kf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),zd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Kf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),zd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[ft]=e,Tt(o),r=o}e.stateNode=r}else qf(a,e.type,e.stateNode);else e.stateNode=Vf(a,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&qc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?qf(a,e.type,e.stateNode):Vf(a,r,e.memoizedProps))}break;case 27:hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),n!==null&&r&4&&qc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),e.flags&32){a=e.stateNode;try{Zt(a,``)}catch(t){Ju(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,qc(e,a,n===null?a:n.memoizedProps)),r&1024&&(tl=!0);break;case 6:if(hl(t,e),vl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Ju(e,e.return,t)}}break;case 3:if(Gf=null,a=gl,gl=xf(t.containerInfo),hl(t,e),gl=a,vl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Lp(t.containerInfo)}catch(t){Ju(e,e.return,t)}tl&&(tl=!1,yl(e));break;case 4:r=gl,gl=xf(e.stateNode.containerInfo),hl(t,e),vl(e),gl=r;break;case 12:hl(t,e),vl(e);break;case 31:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 13:hl(t,e),vl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(nu=ke()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=$c,d=el;if($c=u||a,el=d||l,hl(t,e),el=d,$c=u,vl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||$c||el||xl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Ju(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Ju(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?af(m,!0):af(l.stateNode,!1)}catch(e){Ju(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ml(e,n))));break;case 19:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 30:break;case 21:break;default:hl(t,e),vl(e)}}function vl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Jc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Zc(e,Yc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Zt(o,``),n.flags&=-33),Zc(e,Yc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Xc(e,Yc(e),s);break;default:throw Error(i(161))}}catch(t){Ju(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function yl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;yl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function bl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)al(e,t.alternate,t),t=t.sibling}function xl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Vc(4,t,t.return),xl(t);break;case 1:Gc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Uc(t,t.return,n),xl(t);break;case 27:vf(t.stateNode);case 26:case 5:Gc(t,t.return),xl(t);break;case 22:t.memoizedState===null&&xl(t);break;case 30:xl(t);break;default:xl(t)}e=e.sibling}}function Sl(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Sl(i,a,n),Bc(4,a);break;case 1:if(Sl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Ju(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)to(c[i],s)}catch(e){Ju(r,r.return,e)}}n&&o&64&&Hc(a),Wc(a,a.return);break;case 27:Qc(a);case 26:case 5:Sl(i,a,n),n&&r===null&&o&4&&Kc(a),Wc(a,a.return);break;case 12:Sl(i,a,n);break;case 31:Sl(i,a,n),n&&o&4&&dl(i,a);break;case 13:Sl(i,a,n),n&&o&4&&fl(i,a);break;case 22:a.memoizedState===null&&Sl(i,a,n),Wc(a,a.return);break;case 30:break;default:Sl(i,a,n)}t=t.sibling}}function Cl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&ma(n))}function wl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ma(e))}function Tl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)El(e,t,n,r),t=t.sibling}function El(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Tl(e,t,n,r),i&2048&&Bc(9,t);break;case 1:Tl(e,t,n,r);break;case 3:Tl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ma(e)));break;case 12:if(i&2048){Tl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Ju(t,t.return,e)}}else Tl(e,t,n,r);break;case 31:Tl(e,t,n,r);break;case 13:Tl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Tl(e,t,n,r):(a._visibility|=2,Dl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Tl(e,t,n,r):Ol(e,t),i&2048&&Cl(o,t);break;case 24:Tl(e,t,n,r),i&2048&&wl(t.alternate,t);break;default:Tl(e,t,n,r)}}function Dl(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Dl(a,o,s,c,i),Bc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Dl(a,o,s,c,i)):u._visibility&2?Dl(a,o,s,c,i):Ol(a,o),i&&l&2048&&Cl(o.alternate,o);break;case 24:Dl(a,o,s,c,i),i&&l&2048&&wl(o.alternate,o);break;default:Dl(a,o,s,c,i)}t=t.sibling}}function Ol(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Ol(n,r),i&2048&&Cl(r.alternate,r);break;case 24:Ol(n,r),i&2048&&wl(r.alternate,r);break;default:Ol(n,r)}t=t.sibling}}var kl=8192;function Al(e,t,n){if(e.subtreeFlags&kl)for(e=e.child;e!==null;)jl(e,t,n),e=e.sibling}function jl(e,t,n){switch(e.tag){case 26:Al(e,t,n),e.flags&kl&&e.memoizedState!==null&&Xf(n,gl,e.memoizedState,e.memoizedProps);break;case 5:Al(e,t,n);break;case 3:case 4:var r=gl;gl=xf(e.stateNode.containerInfo),Al(e,t,n),gl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=kl,kl=16777216,Al(e,t,n),kl=r):Al(e,t,n));break;default:Al(e,t,n)}}function Ml(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];rl=r,Il(r,e)}Ml(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Pl(e),e=e.sibling}function Pl(e){switch(e.tag){case 0:case 11:case 15:Nl(e),e.flags&2048&&Vc(9,e,e.return);break;case 3:Nl(e);break;case 12:Nl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fl(e)):Nl(e);break;default:Nl(e)}}function Fl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];rl=r,Il(r,e)}Ml(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Vc(8,t,t.return),Fl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Fl(t));break;default:Fl(t)}e=e.sibling}}function Il(e,t){for(;rl!==null;){var n=rl;switch(n.tag){case 0:case 11:case 15:Vc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:ma(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,rl=r;else a:for(n=e;rl!==null;){r=rl;var i=r.sibling,a=r.return;if(ol(r),r===n){rl=null;break a}if(i!==null){i.return=a,rl=i;break a}rl=a}}}var Ll={getCacheForType:function(e){var t=oa(fa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return oa(fa).controller.signal}},Rl=typeof WeakMap==`function`?WeakMap:Map,zl=0,Bl=null,K=null,q=0,Vl=0,Hl=null,Ul=!1,Wl=!1,Gl=!1,Kl=0,ql=0,Jl=0,Yl=0,Xl=0,Zl=0,Ql=0,$l=null,eu=null,tu=!1,nu=0,ru=0,iu=1/0,au=null,ou=null,su=0,cu=null,lu=null,uu=0,du=0,fu=null,pu=null,mu=0,hu=null;function gu(){return zl&2&&q!==0?q&-q:k.T===null?lt():hd()}function _u(){if(Zl===0)if(!(q&536870912)||zi){var e=Je;Je<<=1,!(Je&3932160)&&(Je=262144),Zl=e}else Zl=536870912;return e=co.current,e!==null&&(e.flags|=32),Zl}function vu(e,t,n){(e===Bl&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)&&(Tu(e,0),Su(e,q,Zl,!1)),nt(e,n),(!(zl&2)||e!==Bl)&&(e===Bl&&(!(zl&2)&&(Yl|=n),ql===4&&Su(e,q,Zl,!1)),sd(e))}function yu(e,t,n){if(zl&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||Qe(e,t),a=r?Nu(e,t):ju(e,t,!0),o=r;do{if(a===0){Wl&&!r&&Su(e,t,0,!1);break}if(n=e.current.alternate,o&&!xu(n)){a=ju(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=$l;var l=c.current.memoizedState.isDehydrated;if(l&&(Tu(c,s).flags|=256),s=ju(c,s,!1),s!==2){if(Gl&&!l){c.errorRecoveryDisabledLanes|=o,Yl|=o,a=4;break a}o=eu,eu=a,o!==null&&(eu===null?eu=o:eu.push.apply(eu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Tu(e,0),Su(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Su(r,t,Zl,!Ul);break a;case 2:eu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=nu+300-ke(),10<a)){if(Su(r,t,Zl,!Ul),Ze(r,0,!0)!==0)break a;uu=t,r.timeoutHandle=Zd(bu.bind(null,r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,`Throttled`,-0,0),a);break a}bu(r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,null,-0,0)}break}while(1);sd(e)}function bu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:on},jl(t,a,d);var m=(a&62914560)===a?nu-ke():(a&4194048)===a?ru-ke():0;if(m=Qf(d,m),m!==null){uu=a,e.cancelPendingCommit=m(Bu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Su(e,a,o,!l);return}}Bu(e,t,a,n,r,i,o,s,c)}function xu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Er(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Su(e,t,n,r){t&=~Xl,t&=~Yl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ue(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&it(e,n,t)}function Cu(){return zl&6?!0:(cd(0,!1),!1)}function wu(){if(K!==null){if(Vl===0)var e=K.return;else e=K,Qi=Zi=null,Io(e),La=null,Ra=0,e=K;for(;e!==null;)zc(e.alternate,e),e=e.return;K=null}}function Tu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),uu=0,wu(),Bl=e,K=n=mi(e.current,null),q=t,Vl=0,Hl=null,Ul=!1,Wl=Qe(e,t),Gl=!1,Ql=Zl=Xl=Yl=Jl=ql=0,eu=$l=null,tu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ue(r),a=1<<i;t|=e[i],r&=~a}return Kl=t,ii(),n}function Eu(e,t){F=null,k.H=Is,t===Da||t===ka?(t=Fa(),Vl=3):t===Oa?(t=Fa(),Vl=4):Vl=t===ec?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Hl=t,K===null&&(ql=1,Js(e,Si(t,e.current)))}function Du(){var e=co.current;return e===null?!0:(q&4194048)===q?lo===null:(q&62914560)===q||q&536870912?e===lo:!1}function Ou(){var e=k.H;return k.H=Is,e===null?Is:e}function ku(){var e=k.A;return k.A=Ll,e}function Au(){ql=4,Ul||(q&4194048)!==q&&co.current!==null||(Wl=!0),!(Jl&134217727)&&!(Yl&134217727)||Bl===null||Su(Bl,q,Zl,!1)}function ju(e,t,n){var r=zl;zl|=2;var i=Ou(),a=ku();(Bl!==e||q!==t)&&(au=null,Tu(e,t)),t=!1;var o=ql;a:do try{if(Vl!==0&&K!==null){var s=K,c=Hl;switch(Vl){case 8:wu(),o=6;break a;case 3:case 2:case 9:case 6:co.current===null&&(t=!0);var l=Vl;if(Vl=0,Hl=null,Lu(e,s,c,l),n&&Wl){o=0;break a}break;default:l=Vl,Vl=0,Hl=null,Lu(e,s,c,l)}}Mu(),o=ql;break}catch(t){Eu(e,t)}while(1);return t&&e.shellSuspendCounter++,Qi=Zi=null,zl=r,k.H=i,k.A=a,K===null&&(Bl=null,q=0,ii()),o}function Mu(){for(;K!==null;)Fu(K)}function Nu(e,t){var n=zl;zl|=2;var r=Ou(),a=ku();Bl!==e||q!==t?(au=null,iu=ke()+500,Tu(e,t)):Wl=Qe(e,t);a:do try{if(Vl!==0&&K!==null){t=K;var o=Hl;b:switch(Vl){case 1:Vl=0,Hl=null,Lu(e,t,o,1);break;case 2:case 9:if(ja(o)){Vl=0,Hl=null,Iu(t);break}t=function(){Vl!==2&&Vl!==9||Bl!==e||(Vl=7),sd(e)},o.then(t,t);break a;case 3:Vl=7;break a;case 4:Vl=5;break a;case 7:ja(o)?(Vl=0,Hl=null,Iu(t)):(Vl=0,Hl=null,Lu(e,t,o,7));break;case 5:var s=null;switch(K.tag){case 26:s=K.memoizedState;case 5:case 27:var c=K;if(s?Yf(s):c.stateNode.complete){Vl=0,Hl=null;var l=c.sibling;if(l!==null)K=l;else{var u=c.return;u===null?K=null:(K=u,Ru(u))}break b}}Vl=0,Hl=null,Lu(e,t,o,5);break;case 6:Vl=0,Hl=null,Lu(e,t,o,6);break;case 8:wu(),ql=6;break a;default:throw Error(i(462))}}Pu();break}catch(t){Eu(e,t)}while(1);return Qi=Zi=null,k.H=r,k.A=a,zl=n,K===null?(Bl=null,q=0,ii(),ql):0}function Pu(){for(;K!==null&&!De();)Fu(K)}function Fu(e){var t=Ac(e.alternate,e,Kl);e.memoizedProps=e.pendingProps,t===null?Ru(e):K=t}function Iu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=mc(n,t,t.pendingProps,t.type,void 0,q);break;case 11:t=mc(n,t,t.pendingProps,t.type.render,t.ref,q);break;case 5:Io(t);default:zc(n,t),t=K=hi(t,Kl),t=Ac(n,t,Kl)}e.memoizedProps=e.pendingProps,t===null?Ru(e):K=t}function Lu(e,t,n,r){Qi=Zi=null,Io(t),La=null,Ra=0;var i=t.return;try{if($s(e,i,t,n,q)){ql=1,Js(e,Si(n,e.current)),K=null;return}}catch(t){if(i!==null)throw K=i,t;ql=1,Js(e,Si(n,e.current)),K=null;return}t.flags&32768?(zi||r===1?e=!0:Wl||q&536870912?e=!1:(Ul=e=!0,(r===2||r===9||r===3||r===6)&&(r=co.current,r!==null&&r.tag===13&&(r.flags|=16384))),zu(t,e)):Ru(t)}function Ru(e){var t=e;do{if(t.flags&32768){zu(t,Ul);return}e=t.return;var n=Lc(t.alternate,t,Kl);if(n!==null){K=n;return}if(t=t.sibling,t!==null){K=t;return}K=t=e}while(t!==null);ql===0&&(ql=5)}function zu(e,t){do{var n=Rc(e.alternate,e);if(n!==null){n.flags&=32767,K=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){K=e;return}K=e=n}while(e!==null);ql=6,K=null}function Bu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Gu();while(su!==0);if(zl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=ri,rt(e,n,o,s,c,l),e===Bl&&(K=Bl=null,q=0),lu=t,cu=e,uu=n,du=o,fu=a,pu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,ed(Ne,function(){return Ku(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=k.T,k.T=null,a=A.p,A.p=2,s=zl,zl|=4;try{il(e,t,n)}finally{zl=s,A.p=a,k.T=r}}su=1,Vu(),Hu(),Uu()}}function Vu(){if(su===1){su=0;var e=cu,t=lu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=k.T,k.T=null;var r=A.p;A.p=2;var i=zl;zl|=4;try{_l(t,e);var a=Wd,o=jr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Ar(s.ownerDocument.documentElement,s)){if(c!==null&&Mr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=kr(s,h),v=kr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}fp=!!Ud,Wd=Ud=null}finally{zl=i,A.p=r,k.T=n}}e.current=t,su=2}}function Hu(){if(su===2){su=0;var e=cu,t=lu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=k.T,k.T=null;var r=A.p;A.p=2;var i=zl;zl|=4;try{al(e,t.alternate,t)}finally{zl=i,A.p=r,k.T=n}}su=3}}function Uu(){if(su===4||su===3){su=0,Oe();var e=cu,t=lu,n=uu,r=pu;t.subtreeFlags&10256||t.flags&10256?su=5:(su=0,lu=cu=null,Wu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ou=null),ct(n),t=t.stateNode,Ve&&typeof Ve.onCommitFiberRoot==`function`)try{Ve.onCommitFiberRoot(M,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=k.T,i=A.p,A.p=2,k.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{k.T=t,A.p=i}}uu&3&&Gu(),sd(e),i=e.pendingLanes,n&261930&&i&42?e===hu?mu++:(mu=0,hu=e):mu=0,cd(0,!1)}}function Wu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ma(t)))}function Gu(){return Vu(),Hu(),Uu(),Ku()}function Ku(){if(su!==5)return!1;var e=cu,t=du;du=0;var n=ct(uu),r=k.T,a=A.p;try{A.p=32>n?32:n,k.T=null,n=fu,fu=null;var o=cu,s=uu;if(su=0,lu=cu=null,uu=0,zl&6)throw Error(i(331));var c=zl;if(zl|=4,Pl(o.current),El(o,o.current,s,n),zl=c,cd(0,!1),Ve&&typeof Ve.onPostCommitFiberRoot==`function`)try{Ve.onPostCommitFiberRoot(M,o)}catch{}return!0}finally{A.p=a,k.T=r,Wu(e,t)}}function qu(e,t,n){t=Si(n,t),t=Xs(e.stateNode,t,2),e=Ya(e,t,2),e!==null&&(nt(e,2),sd(e))}function Ju(e,t,n){if(e.tag===3)qu(e,e,n);else for(;t!==null;){if(t.tag===3){qu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ou===null||!ou.has(r))){e=Si(n,e),n=Zs(2),r=Ya(t,n,2),r!==null&&(Qs(n,r,t,e),nt(r,2),sd(r));break}}t=t.return}}function Yu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Rl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Gl=!0,i.add(n),e=Xu.bind(null,e,t,n),t.then(e,e))}function Xu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Bl===e&&(q&n)===n&&(ql===4||ql===3&&(q&62914560)===q&&300>ke()-nu?!(zl&2)&&Tu(e,0):Xl|=n,Ql===q&&(Ql=0)),sd(e)}function Zu(e,t){t===0&&(t=et()),e=si(e,t),e!==null&&(nt(e,t),sd(e))}function Qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Zu(e,n)}function $u(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Zu(e,n)}function ed(e,t){return Te(e,t)}var td=null,nd=null,rd=!1,id=!1,ad=!1,od=0;function sd(e){e!==nd&&e.next===null&&(nd===null?td=nd=e:nd=nd.next=e),id=!0,rd||(rd=!0,md())}function cd(e,t){if(!ad&&id){ad=!0;do for(var n=!1,r=td;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ue(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,pd(r,a))}else a=q,a=Ze(r,r===Bl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Qe(r,a)||(n=!0,pd(r,a));r=r.next}while(n);ad=!1}}function ld(){ud()}function ud(){id=rd=!1;var e=0;od!==0&&Xd()&&(e=od);for(var t=ke(),n=null,r=td;r!==null;){var i=r.next,a=dd(r,t);a===0?(r.next=null,n===null?td=i:n.next=i,i===null&&(nd=n)):(n=r,(e!==0||a&3)&&(id=!0)),r=i}su!==0&&su!==5||cd(e,!1),od!==0&&(od=0)}function dd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ue(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=$e(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Bl,n=q,n=Ze(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Ee(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Qe(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Ee(r),ct(n)){case 2:case 8:n=Me;break;case 32:n=Ne;break;case 268435456:n=Fe;break;default:n=Ne}return r=fd.bind(null,e),n=Te(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Ee(r),e.callbackPriority=2,e.callbackNode=null,2}function fd(e,t){if(su!==0&&su!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Gu()&&e.callbackNode!==n)return null;var r=q;return r=Ze(e,e===Bl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(yu(e,r,t),dd(e,ke()),e.callbackNode!=null&&e.callbackNode===n?fd.bind(null,e):null)}function pd(e,t){if(Gu())return null;yu(e,t,!0)}function md(){ef(function(){zl&6?Te(je,ld):ud()})}function hd(){if(od===0){var e=_a;e===0&&(e=qe,qe<<=1,!(qe&261888)&&(qe=256)),od=e}return od}function gd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:an(``+e)}function _d(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function vd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=gd((i[pt]||null).action),o=r.submitter;o&&(t=(t=o[pt]||null)?gd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new En(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(od!==0){var e=o?_d(i,o):new FormData(i);Ss(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?_d(i,o):new FormData(i),Ss(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var yd=0;yd<Qr.length;yd++){var bd=Qr[yd];$r(bd.toLowerCase(),`on`+(bd[0].toUpperCase()+bd.slice(1)))}$r(Wr,`onAnimationEnd`),$r(Gr,`onAnimationIteration`),$r(Kr,`onAnimationStart`),$r(`dblclick`,`onDoubleClick`),$r(`focusin`,`onFocus`),$r(`focusout`,`onBlur`),$r(qr,`onTransitionRun`),$r(Jr,`onTransitionStart`),$r(Yr,`onTransitionCancel`),$r(Xr,`onTransitionEnd`),kt(`onMouseEnter`,[`mouseout`,`mouseover`]),kt(`onMouseLeave`,[`mouseout`,`mouseover`]),kt(`onPointerEnter`,[`pointerout`,`pointerover`]),kt(`onPointerLeave`,[`pointerout`,`pointerover`]),Ot(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Ot(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Ot(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Ot(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Ot(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Ot(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var xd=`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(` `),Sd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(xd));function Cd(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ei(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ei(e)}i.currentTarget=null,a=c}}}}function J(e,t){var n=t[ht];n===void 0&&(n=t[ht]=new Set);var r=e+`__bubble`;n.has(r)||(Dd(t,e,2,!1),n.add(r))}function wd(e,t,n){var r=0;t&&(r|=4),Dd(n,e,r,t)}var Td=`_reactListening`+Math.random().toString(36).slice(2);function Ed(e){if(!e[Td]){e[Td]=!0,Et.forEach(function(t){t!==`selectionchange`&&(Sd.has(t)||wd(t,!1,e),wd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Td]||(t[Td]=!0,wd(`selectionchange`,!1,t))}}function Dd(e,t,n,r){switch(yp(t)){case 2:var i=pp;break;case 8:i=mp;break;default:i=hp}n=i.bind(null,t,n,e),i=void 0,!hn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Od(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=xt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}fn(function(){var r=a,i=cn(n),s=[];a:{var c=Zr.get(e);if(c!==void 0){var l=En,u=e;switch(e){case`keypress`:if(xn(n)===0)break a;case`keydown`:case`keyup`:l=Wn;break;case`focusin`:u=`focus`,l=Fn;break;case`focusout`:u=`blur`,l=Fn;break;case`beforeblur`:case`afterblur`:l=Fn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Nn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Pn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Kn;break;case Wr:case Gr:case Kr:l=In;break;case Xr:l=qn;break;case`scroll`:case`scrollend`:l=On;break;case`wheel`:l=Jn;break;case`copy`:case`cut`:case`paste`:l=Ln;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Gn;break;case`toggle`:case`beforetoggle`:l=Yn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=pn(m,p),g!=null&&d.push(kd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==sn&&(u=n.relatedTarget||n.fromElement)&&(xt(u)||u[mt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?xt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Nn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Gn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:Ct(l),h=u==null?c:Ct(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,xt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=jd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Md(s,c,l,d,!1),u!==null&&f!==null&&Md(s,f,u,d,!0)}}a:{if(c=r?Ct(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=hr;else if(lr(c))if(gr)v=wr;else{v=Sr;var y=xr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&tn(r.elementType)&&(v=hr):v=Cr;if(v&&=v(e,r)){ur(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&qt(c,`number`,c.value)}switch(y=r?Ct(r):window,e){case`focusin`:(lr(y)||y.contentEditable===`true`)&&(Pr=y,Fr=r,Ir=null);break;case`focusout`:Ir=Fr=Pr=null;break;case`mousedown`:Lr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Lr=!1,Rr(s,n,i);break;case`selectionchange`:if(Nr)break;case`keydown`:case`keyup`:Rr(s,n,i)}var b;if(Zn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else ar?rr(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(er&&n.locale!==`ko`&&(ar||x!==`onCompositionStart`?x===`onCompositionEnd`&&ar&&(b=bn()):(_n=i,vn=`value`in _n?_n.value:_n.textContent,ar=!0)),y=Ad(r,x),0<y.length&&(x=new Rn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=ir(n),b!==null&&(x.data=b)))),(b=$n?or(e,n):sr(e,n))&&(x=Ad(r,`onBeforeInput`),0<x.length&&(y=new Rn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),vd(s,e,r,n,i)}Cd(s,t)})}function kd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ad(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=pn(e,n),i!=null&&r.unshift(kd(e,i,a)),i=pn(e,t),i!=null&&r.push(kd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function jd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Md(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=pn(n,a),l!=null&&o.unshift(kd(n,l,c))):i||(l=pn(n,a),l!=null&&o.push(kd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Nd=/\r\n?/g,Pd=/\u0000|\uFFFD/g;function Fd(e){return(typeof e==`string`?e:``+e).replace(Nd,`
9
- `).replace(Pd,``)}function Id(e,t){return t=Fd(t),Fd(e)===t}function Ld(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Zt(e,``+r);break;case`className`:Ft(e,`class`,r);break;case`tabIndex`:Ft(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ft(e,n,r);break;case`style`:en(e,r,o);break;case`data`:if(t!==`object`){Ft(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=an(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`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}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Ld(e,t,`name`,a.name,a,null),Ld(e,t,`formEncType`,a.formEncType,a,null),Ld(e,t,`formMethod`,a.formMethod,a,null),Ld(e,t,`formTarget`,a.formTarget,a,null)):(Ld(e,t,`encType`,a.encType,a,null),Ld(e,t,`method`,a.method,a,null),Ld(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=an(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=on);break;case`onScroll`:r!=null&&J(`scroll`,e);break;case`onScrollEnd`:r!=null&&J(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=an(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);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`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:J(`beforetoggle`,e),J(`toggle`,e),Pt(e,`popover`,r);break;case`xlinkActuate`:It(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:It(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:It(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:It(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:It(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:It(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:It(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Pt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=nn.get(n)||n,Pt(e,n,r))}}function Rd(e,t,n,r,a,o){switch(n){case`style`:en(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Zt(e,``+r);break;case`onScroll`:r!=null&&J(`scroll`,e);break;case`onScrollEnd`:r!=null&&J(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=on);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!Dt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[pt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Pt(e,n,r)}}}function zd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:J(`error`,e),J(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Ld(e,t,o,s,n,null)}}a&&Ld(e,t,`srcSet`,n.srcSet,n,null),r&&Ld(e,t,`src`,n.src,n,null);return;case`input`:J(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Ld(e,t,r,d,n,null)}}Kt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in J(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Ld(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Jt(e,!!r,n,!0):Jt(e,!!r,t,!1);return;case`textarea`:for(s in J(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Ld(e,t,s,c,n,null)}Xt(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Ld(e,t,l,r,n,null)}return;case`dialog`:J(`beforetoggle`,e),J(`toggle`,e),J(`cancel`,e),J(`close`,e);break;case`iframe`:case`object`:J(`load`,e);break;case`video`:case`audio`:for(r=0;r<xd.length;r++)J(xd[r],e);break;case`image`:J(`error`,e),J(`load`,e);break;case`details`:J(`toggle`,e);break;case`embed`:case`source`:case`link`:J(`error`,e),J(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Ld(e,t,u,r,n,null)}return;default:if(tn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Rd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Ld(e,t,c,r,n,null))}function Bd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Ld(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Ld(e,t,p,m,r,f)}}Gt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Ld(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Ld(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Jt(e,!!n,n?[]:``,!1):Jt(e,!!n,t,!0)):Jt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Ld(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Ld(e,t,s,a,r,o)}Yt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Ld(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Ld(e,t,l,p,r,m)}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 g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Ld(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Ld(e,t,u,p,r,m)}return;default:if(tn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Rd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Rd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Ld(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Ld(e,t,f,p,r,m)}function Vd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Hd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Vd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Vd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Ud=null,Wd=null;function Gd(e){return e.nodeType===9?e:e.ownerDocument}function Kd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function qd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Jd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Yd=null;function Xd(){var e=window.event;return e&&e.type===`popstate`?e!==Yd&&(Yd=e,!0):(Yd=null,!1)}var Zd=typeof setTimeout==`function`?setTimeout:void 0,Qd=typeof clearTimeout==`function`?clearTimeout:void 0,$d=typeof Promise==`function`?Promise:void 0,ef=typeof queueMicrotask==`function`?queueMicrotask:$d===void 0?Zd:function(e){return $d.resolve(null).then(e).catch(tf)};function tf(e){setTimeout(function(){throw e})}function nf(e){return e===`head`}function rf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Lp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)vf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,vf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[yt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&vf(e.ownerDocument.body);n=i}while(n);Lp(t)}function af(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function of(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:of(n),bt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function sf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[yt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=pf(e.nextSibling),e===null)break}return null}function cf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=pf(e.nextSibling),e===null))return null;return e}function lf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=pf(e.nextSibling),e===null))return null;return e}function uf(e){return e.data===`$?`||e.data===`$~`}function df(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function ff(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function pf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var mf=null;function hf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return pf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function gf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function _f(e,t,n){switch(t=Gd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function vf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);bt(e)}var yf=new Map,bf=new Set;function xf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Sf=A.d;A.d={f:Cf,r:wf,D:Df,C:Of,L:kf,m:Af,X:Mf,S:jf,M:Nf};function Cf(){var e=Sf.f(),t=Cu();return e||t}function wf(e){var t=St(e);t!==null&&t.tag===5&&t.type===`form`?ws(t):Sf.r(e)}var Tf=typeof document>`u`?null:document;function Ef(e,t,n){var r=Tf;if(r&&typeof t==`string`&&t){var i=Wt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),bf.has(i)||(bf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),zd(t,`link`,e),Tt(t),r.head.appendChild(t)))}}function Df(e){Sf.D(e),Ef(`dns-prefetch`,e,null)}function Of(e,t){Sf.C(e,t),Ef(`preconnect`,e,t)}function kf(e,t,n){Sf.L(e,t,n);var r=Tf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Wt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Wt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Wt(n.imageSizes)+`"]`)):i+=`[href="`+Wt(e)+`"]`;var a=i;switch(t){case`style`:a=Ff(e);break;case`script`:a=zf(e)}yf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),yf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(If(a))||t===`script`&&r.querySelector(Bf(a))||(t=r.createElement(`link`),zd(t,`link`,e),Tt(t),r.head.appendChild(t)))}}function Af(e,t){Sf.m(e,t);var n=Tf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Wt(r)+`"][href="`+Wt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=zf(e)}if(!yf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),yf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Bf(a)))return}r=n.createElement(`link`),zd(r,`link`,e),Tt(r),n.head.appendChild(r)}}}function jf(e,t,n){Sf.S(e,t,n);var r=Tf;if(r&&e){var i=wt(r).hoistableStyles,a=Ff(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(If(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=yf.get(a))&&Uf(e,n);var c=o=r.createElement(`link`);Tt(c),zd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Hf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Mf(e,t){Sf.X(e,t);var n=Tf;if(n&&e){var r=wt(n).hoistableScripts,i=zf(e),a=r.get(i);a||(a=n.querySelector(Bf(i)),a||(e=f({src:e,async:!0},t),(t=yf.get(i))&&Wf(e,t),a=n.createElement(`script`),Tt(a),zd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nf(e,t){Sf.M(e,t);var n=Tf;if(n&&e){var r=wt(n).hoistableScripts,i=zf(e),a=r.get(i);a||(a=n.querySelector(Bf(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=yf.get(i))&&Wf(e,t),a=n.createElement(`script`),Tt(a),zd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Pf(e,t,n,r){var a=(a=de.current)?xf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Ff(n.href),n=wt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Ff(n.href);var o=wt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(If(e)))&&!o._p&&(s.instance=o,s.state.loading=5),yf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},yf.set(e,n),o||Rf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=zf(n),n=wt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Ff(e){return`href="`+Wt(e)+`"`}function If(e){return`link[rel="stylesheet"][`+e+`]`}function Lf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Rf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),zd(t,`link`,n),Tt(t),e.head.appendChild(t))}function zf(e){return`[src="`+Wt(e)+`"]`}function Bf(e){return`script[async]`+e}function Vf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Wt(n.href)+`"]`);if(r)return t.instance=r,Tt(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Tt(r),zd(r,`style`,a),Hf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Ff(n.href);var o=e.querySelector(If(a));if(o)return t.state.loading|=4,t.instance=o,Tt(o),o;r=Lf(n),(a=yf.get(a))&&Uf(r,a),o=(e.ownerDocument||e).createElement(`link`),Tt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),zd(o,`link`,r),t.state.loading|=4,Hf(o,n.precedence,e),t.instance=o;case`script`:return o=zf(n.src),(a=e.querySelector(Bf(o)))?(t.instance=a,Tt(a),a):(r=n,(a=yf.get(o))&&(r=f({},n),Wf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Tt(a),zd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Hf(r,n.precedence,e));return t.instance}function Hf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Uf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Wf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Gf=null;function Kf(e,t,n){if(Gf===null){var r=new Map,i=Gf=new Map;i.set(n,r)}else i=Gf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[yt]||a[ft]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function qf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Jf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Yf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Ff(r.href),a=t.querySelector(If(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=$f.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Tt(a);return}a=t.ownerDocument||t,r=Lf(r),(i=yf.get(i))&&Uf(r,i),a=a.createElement(`link`),Tt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),zd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=$f.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Zf=0;function Qf(e,t){return e.stylesheets&&e.count===0&&tp(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&tp(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Zf===0&&(Zf=62500*Hd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&tp(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Zf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function $f(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ep=null;function tp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ep=new Map,t.forEach(np,e),ep=null,$f.call(e))}function np(e,t){if(!(t.state.loading&4)){var n=ep.get(e);if(n)var r=n.get(null);else{n=new Map,ep.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=$f.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var rp={$$typeof:b,Provider:null,Consumer:null,_currentValue:ie,_currentValue2:ie,_threadCount:0};function ip(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,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=tt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=tt(0),this.hiddenUpdates=tt(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ap(e,t,n,r,i,a,o,s,c,l,u,d){return e=new ip(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=fi(3,null,null,t),e.current=a,a.stateNode=e,t=pa(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ka(a),e}function op(e){return e?(e=ui,e):ui}function sp(e,t,n,r,i,a){i=op(i),r.context===null?r.context=i:r.pendingContext=i,r=Ja(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ya(e,r,t),n!==null&&(vu(n,e,t),Xa(n,e,t))}function cp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lp(e,t){cp(e,t),(e=e.alternate)&&cp(e,t)}function up(e){if(e.tag===13||e.tag===31){var t=si(e,67108864);t!==null&&vu(t,e,67108864),lp(e,67108864)}}function dp(e){if(e.tag===13||e.tag===31){var t=gu();t=st(t);var n=si(e,t);n!==null&&vu(n,e,t),lp(e,t)}}var fp=!0;function pp(e,t,n,r){var i=k.T;k.T=null;var a=A.p;try{A.p=2,hp(e,t,n,r)}finally{A.p=a,k.T=i}}function mp(e,t,n,r){var i=k.T;k.T=null;var a=A.p;try{A.p=8,hp(e,t,n,r)}finally{A.p=a,k.T=i}}function hp(e,t,n,r){if(fp){var i=gp(r);if(i===null)Od(e,t,r,_p,n),Dp(e,r);else if(kp(i,e,t,n,r))r.stopPropagation();else if(Dp(e,r),t&4&&-1<Ep.indexOf(e)){for(;i!==null;){var a=St(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Xe(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ue(o);s.entanglements[1]|=c,o&=~c}sd(a),!(zl&6)&&(iu=ke()+500,cd(0,!1))}}break;case 31:case 13:s=si(a,2),s!==null&&vu(s,a,2),Cu(),lp(a,2)}if(a=gp(r),a===null&&Od(e,t,r,_p,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Od(e,t,r,null,n)}}function gp(e){return e=cn(e),vp(e)}var _p=null;function vp(e){if(_p=null,e=xt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return _p=e,null}function yp(e){switch(e){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(Ae()){case je:return 2;case Me:return 8;case Ne:case Pe:return 32;case Fe:return 268435456;default:return 32}default:return 32}}var bp=!1,xp=null,Sp=null,Cp=null,Y=new Map,wp=new Map,Tp=[],Ep=`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 Dp(e,t){switch(e){case`focusin`:case`focusout`:xp=null;break;case`dragenter`:case`dragleave`:Sp=null;break;case`mouseover`:case`mouseout`:Cp=null;break;case`pointerover`:case`pointerout`:Y.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:wp.delete(t.pointerId)}}function Op(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=St(t),t!==null&&up(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function kp(e,t,n,r,i){switch(t){case`focusin`:return xp=Op(xp,e,t,n,r,i),!0;case`dragenter`:return Sp=Op(Sp,e,t,n,r,i),!0;case`mouseover`:return Cp=Op(Cp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Y.set(a,Op(Y.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,wp.set(a,Op(wp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ap(e){var t=xt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,ut(e.priority,function(){dp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,ut(e.priority,function(){dp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function jp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=gp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);sn=r,n.target.dispatchEvent(r),sn=null}else return t=St(n),t!==null&&up(t),e.blockedOn=n,!1;t.shift()}return!0}function Mp(e,t,n){jp(e)&&n.delete(t)}function Np(){bp=!1,xp!==null&&jp(xp)&&(xp=null),Sp!==null&&jp(Sp)&&(Sp=null),Cp!==null&&jp(Cp)&&(Cp=null),Y.forEach(Mp),wp.forEach(Mp)}function Pp(e,n){e.blockedOn===n&&(e.blockedOn=null,bp||(bp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Np)))}var Fp=null;function Ip(e){Fp!==e&&(Fp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Fp===e&&(Fp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(vp(r||n)===null)continue;break}var a=St(n);a!==null&&(e.splice(t,3),t-=3,Ss(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Lp(e){function t(t){return Pp(t,e)}xp!==null&&Pp(xp,e),Sp!==null&&Pp(Sp,e),Cp!==null&&Pp(Cp,e),Y.forEach(t),wp.forEach(t);for(var n=0;n<Tp.length;n++){var r=Tp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Tp.length&&(n=Tp[0],n.blockedOn===null);)Ap(n),n.blockedOn===null&&Tp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[pt]||null;if(typeof a==`function`)o||Ip(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[pt]||null)s=o.formAction;else if(vp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Ip(n)}}}function Rp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function zp(e){this._internalRoot=e}Bp.prototype.render=zp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;sp(n,gu(),e,t,null,null)},Bp.prototype.unmount=zp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;sp(e.current,2,null,e,null,null),Cu(),t[mt]=null}};function Bp(e){this._internalRoot=e}Bp.prototype.unstable_scheduleHydration=function(e){if(e){var t=lt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Tp.length&&t!==0&&t<Tp[n].priority;n++);Tp.splice(n,0,e),n===0&&Ap(e)}};var Vp=n.version;if(Vp!==`19.2.8`)throw Error(i(527,Vp,`19.2.8`));A.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:d(e),e=e===null?null:e.stateNode,e};var Hp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:k,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Up=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Up.isDisabled&&Up.supportsFiber)try{M=Up.inject(Hp),Ve=Up}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Gs,s=Ks,c=qs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=ap(e,1,!1,null,null,n,r,null,o,s,c,Rp),e[mt]=t.current,Ed(e),new zp(t)}})),Ve=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=M()})),He=`hdr-`,Ue=/^hdr-[0-9a-f]{32}$/,We=33554432,Ge=16777216,Ke=Object.freeze([`image/vnd.radiance`,`image/x-exr`,`image/png`,`image/jpeg`]),qe=Object.freeze([{id:`builtin:night-street`,name:`Night street`,ko:`밤거리`,brightest:[.72,.2,.66],note:`dark blue night sky, a building skyline with lit windows, two warm sodium street lamps (front right and back left) pooling light on wet asphalt, a dim moon`},{id:`builtin:overcast-field`,name:`Overcast field`,ko:`흐린 들판`,brightest:[-.35,.66,-.67],note:`bright soft grey overcast sky (brighter overhead), a faint sun glow behind the clouds back left, a distant tree line and a green field`},{id:`builtin:studio-softbox`,name:`Studio softbox`,ko:`스튜디오 소프트박스`,brightest:[-.6,.4,.7],note:`dark grey photo studio: a large white softbox front left, a tall strip light right, a soft overhead panel and a rim panel behind`}].map(e=>Object.freeze({...e,brightest:Object.freeze(e.brightest)}))),Je=new Set(qe.map(e=>e.id)),Ye=e=>typeof e==`string`&&Ue.test(e),Xe=e=>Je.has(e),Ze=e=>Xe(e)||Ye(e),Qe=e=>typeof e==`number`&&Number.isFinite(e),$e=e=>((e+180)%360+360)%360-180;function et(e={}){return{hdr:Ze(e.hdr)?e.hdr:null,hdrRotation:Qe(e.hdrRotation)?Number($e(e.hdrRotation).toFixed(3)):0,hdrIntensity:Qe(e.hdrIntensity)?Math.max(0,Math.min(4,e.hdrIntensity)):1,hdrBackground:typeof e.hdrBackground!=`boolean`||e.hdrBackground}}var tt=Object.freeze(Object.keys(et())),nt=(e,t,n)=>String.fromCharCode(...e.subarray(t,Math.min(e.length,t+n)));function rt(e){return nt(e,0,10)===`#?RADIANCE`||nt(e,0,6)===`#?RGBE`?`image/vnd.radiance`:e[0]===118&&e[1]===47&&e[2]===49&&e[3]===1?`image/x-exr`:e[0]===137&&nt(e,1,3)===`PNG`?`image/png`:e[0]===255&&e[1]===216&&e[2]===255?`image/jpeg`:null}function it(e){let t=/\n\s*-Y\s+(\d+)\s+\+X\s+(\d+)\s*\n/.exec(nt(e,0,8192));return t?{width:Number(t[2]),height:Number(t[1])}:null}function at(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t=>{let n=t;for(;n<e.length&&e[n]!==0;)n++;return[nt(e,t,n-t),n+1]},r=8;for(;r<Math.min(e.length,65536);){let[e,i]=n(r);if(!e)return null;let[,a]=n(i),o=t.getInt32(a,!0),s=a+4;if(e===`dataWindow`&&o===16){let[e,n,r,i]=[0,4,8,12].map(e=>t.getInt32(s+e,!0));return{width:r-e+1,height:i-n+1}}r=s+o}return null}function ot(e,t){try{return e===`image/vnd.radiance`?it(t):e===`image/x-exr`?at(t):null}catch{return null}}function st(e,t,n){return e>33554432?`that file is ${(e/1048576).toFixed(1)} MB; an HDR environment can be at most ${We/1048576} MB`:t?(t===`image/vnd.radiance`||t===`image/x-exr`)&&!n?`that HDR file has no readable image size`:n&&n.width*n.height>16777216?`that HDR is ${n.width} x ${n.height}; the limit is ${Ge/1048576} megapixels (4096 x 4096)`:null:`that file is not an HDR environment CozyClay can load (Radiance .hdr, OpenEXR .exr, or an equirectangular .png / .jpg)`}async function ct(e,t){if(!t?.digest)throw Error(`SubtleCrypto is unavailable — a secure context is required to load an HDR`);let n=await t.digest(`SHA-256`,e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));return Array.from(new Uint8Array(n),e=>e.toString(16).padStart(2,`0`)).join(``)}async function lt(e,t=globalThis.crypto?.subtle){return`${He}${(await ct(e instanceof ArrayBuffer?new Uint8Array(e):e,t)).slice(0,32)}`}var ut=e=>Array.isArray(e)&&e.length===3&&e.every(Qe)?e.map(e=>Number(e.toFixed(2))):null;function dt(e,t){if(!Ye(e?.id)||typeof e.type!=`string`||!Ke.includes(e.type.toLowerCase()))return null;let n=Math.round(Number(e.width)),r=Math.round(Number(e.height)),i=ut(e.brightest);return{id:e.id,type:e.type.toLowerCase(),bytes:t,name:typeof e.name==`string`?e.name:``,...n>0&&r>0?{width:n,height:r}:{},...i?{brightest:i}:{}}}var ft=`img-`,pt=`mesh-`,mt=32,ht=`cozyclay.assets`,gt=1,_t=`images`,vt=Object.freeze([`image/png`,`image/webp`,`image/jpeg`,`image/gif`]),yt=Object.freeze([`model/gltf-binary`,`model/obj`,`model/fbx`]),bt=33554432,xt=2048;function St(e){return typeof e==`string`&&vt.includes(e.toLowerCase())}function Ct(e){return typeof e==`string`&&yt.includes(e.toLowerCase())}function wt(e,t){if(typeof t!=`string`)return null;let n=t.trim().toLowerCase();return!/^[0-9a-f]+$/.test(n)||n.length<mt?null:`${e}${n.slice(0,mt)}`}function Tt(e,t){return typeof t==`string`&&RegExp(`^${e}[0-9a-f]{${mt}}$`).test(t)}function Et(e){return wt(ft,e)}function Dt(e){return wt(pt,e)}function Ot(e){return Tt(ft,e)}function kt(e){return Tt(pt,e)}function At(e){return Ot(e)||kt(e)||Ye(e)}async function jt(e,t){if(!t?.digest)throw Error(`SubtleCrypto is unavailable — a secure context is required to import images`);let n=e instanceof ArrayBuffer?e:e?.buffer?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):null;if(!n)return null;let r=await t.digest(`SHA-256`,n);return Array.from(new Uint8Array(r),e=>e.toString(16).padStart(2,`0`)).join(``)}async function Mt(e,t=globalThis.crypto?.subtle){let n=await jt(e,t);if(!n)throw TypeError(`assetIdForBytes needs an ArrayBuffer or a typed array`);return Et(n)}async function Nt(e,t=globalThis.crypto?.subtle){let n=await jt(e,t);if(!n)throw TypeError(`meshIdForBytes needs an ArrayBuffer or a typed array`);return Dt(n)}function Pt(e,t,n=xt){let r=Math.max(0,Math.round(Number(e)||0)),i=Math.max(0,Math.round(Number(t)||0));if(!r||!i)return null;let a=Math.max(r,i);if(a<=n)return{width:r,height:i,scaled:!1};let o=n/a;return{width:Math.max(1,Math.round(r*o)),height:Math.max(1,Math.round(i*o)),scaled:!0}}function Ft(e){let t=Number(e?.width),n=Number(e?.height);return!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0?null:t/n}function It(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e.bytes instanceof ArrayBuffer?e.bytes:null;if(!t||!t.byteLength)return null;if(Ye(e.id))return dt(e,t);if(kt(e.id))return Ct(e.type)?{id:e.id,type:e.type.toLowerCase(),bytes:t,name:typeof e.name==`string`?e.name:``,...typeof e.role==`string`?{role:e.role}:{}}:null;if(!Ot(e.id)||!St(e.type))return null;let n=Math.round(Number(e.width)),r=Math.round(Number(e.height));return!Number.isInteger(n)||!Number.isInteger(r)||n<=0||r<=0?null:{id:e.id,type:e.type.toLowerCase(),width:n,height:r,bytes:t,name:typeof e.name==`string`?e.name:``,...typeof e.role==`string`?{role:e.role}:{}}}function Lt(e){return Array.from(e?.files??[]).filter(e=>{if(!e)return!1;if(St(e.type))return!0;if(e.type)return!1;let t=String(e.name??``).toLowerCase().match(/\.([a-z0-9]+)$/)?.[1];return[`png`,`webp`,`jpg`,`jpeg`,`gif`].includes(t)})}function Rt(e){let t=[],n=Array.from(e?.items??[]);for(let e of n){if(e.kind!==`file`||!St(e.type))continue;let n=e.getAsFile?.();n&&t.push(n.name&&n.name!==`image.png`?n:new File([n],`pasted-${Date.now()}.${e.type.split(`/`)[1]||`png`}`,{type:e.type}))}return t.length?t:Lt(e)}function zt(e){return e===`image/jpeg`?`image/jpeg`:`image/png`}function Bt(e,t){if(typeof OffscreenCanvas==`function`)return new OffscreenCanvas(e,t);throw Error(`this browser cannot resize images — OffscreenCanvas is unavailable`)}async function Vt(e,{subtle:t=globalThis.crypto?.subtle,createBitmap:n=globalThis.createImageBitmap,makeCanvas:r=Bt,maxDimension:i=xt,maxSourceBytes:a=bt}={}){if(!e||typeof e.arrayBuffer!=`function`)throw TypeError(`importImageFile needs a File or Blob`);let o=typeof e.type==`string`?e.type.toLowerCase():``;if(!St(o))throw Error(`that file is not an image CozyClay can import (PNG, WebP, JPEG or GIF)`);if(Number(e.size)>a)throw Error(`that image is larger than ${Math.round(a/1048576)} MB`);if(typeof n!=`function`)throw Error(`this browser cannot decode images — createImageBitmap is unavailable`);let s=await n(e);try{let n=Pt(s.width,s.height,i);if(!n)throw Error(`that image has no usable size`);let a=o,c;if(n.scaled){let e=r(n.width,n.height),t=e.getContext(`2d`);if(!t)throw Error(`this browser cannot resize images — no 2D context`);t.drawImage(s,0,0,n.width,n.height),a=zt(o),c=await(await e.convertToBlob({type:a})).arrayBuffer()}else c=await e.arrayBuffer();let l=It({id:await Mt(c,t),type:a,width:n.width,height:n.height,bytes:c,name:typeof e.name==`string`?e.name:``});if(!l)throw Error(`that image could not be prepared for the set`);return l}finally{s?.close?.()}}function Ht(e){let t=new Set(Ut(e).keys());for(let n of Array.isArray(e)?e:[]){for(let e of Array.isArray(n?.shotDocument?.shots)?n.shotDocument.shots:[])Ot(e?.stylizedAssetId)&&t.add(e.stylizedAssetId);Ye(n?.stage?.lighting?.hdr)&&t.add(n.stage.lighting.hdr)}return t}function Ut(e){let t=new Map;for(let n of Array.isArray(e)?e:[])for(let e of Array.isArray(n?.objects)?n.objects:[]){let n=new Set;for(let t of[e?.assetId,e?.sourceAssetId,e?.matteAssetId])At(t)&&n.add(t);for(let e of n)t.set(e,(t.get(e)??0)+1)}return t}function Wt(e){return JSON.stringify((Array.isArray(e)?e:[]).map(e=>[typeof e?.id==`string`?e.id:null,(Array.isArray(e?.objects)?e.objects:[]).map(e=>[typeof e?.id==`string`?e.id:null,...[e?.assetId,e?.sourceAssetId,e?.matteAssetId].map(e=>At(e)?e:null)])]))}async function Gt({expectedGraphSignature:e,deleteRecord:t,restoreRecord:n,readGraphSignature:r}){return await t(),r()===e||(await n(),!1)}function Kt(e,t){let n=Ht(t);return(Array.isArray(e)?e:[]).filter(e=>At(e)&&!n.has(e))}var qt=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)});function Jt(e=globalThis.indexedDB){return e?new Promise((t,n)=>{let r=e.open(ht,gt);r.onupgradeneeded=()=>{r.result.objectStoreNames.contains(_t)||r.result.createObjectStore(_t,{keyPath:`id`})},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error),r.onblocked=()=>n(Error(`the asset database is blocked by another tab`))}):Promise.reject(Error(`IndexedDB is unavailable`))}async function Yt(e,t){let n=It(t);if(!n)throw TypeError(`putAsset needs a normalizable asset record`);let r=e.transaction(_t,`readwrite`);return r.objectStore(_t).put(n),await new Promise((e,t)=>{r.oncomplete=e,r.onerror=()=>t(r.error),r.onabort=()=>t(r.error)}),n}async function Xt(e,t){return At(t)?It(await qt(e.transaction(_t,`readonly`).objectStore(_t).get(t))):null}async function Zt(e){return(await qt(e.transaction(_t,`readonly`).objectStore(_t).getAllKeys())??[]).filter(At)}async function Qt(e,t){if(!At(t))return!1;let n=e.transaction(_t,`readwrite`);return n.objectStore(_t).delete(t),await new Promise((e,t)=>{n.oncomplete=e,n.onerror=()=>t(n.error),n.onabort=()=>t(n.error)}),!0}function $t(e,t,n){let r=n.length-e-1;if(t>=n[r])return r-1;if(t<=n[e])return e;let i=e,a=r,o=Math.floor((i+a)/2);for(;t<n[o]||t>=n[o+1];)t<n[o]?a=o:i=o,o=Math.floor((i+a)/2);return o}function en(e,t,n,r){let i=[],a=[],o=[];i[0]=1;for(let s=1;s<=n;++s){a[s]=t-r[e+1-s],o[s]=r[e+s]-t;let n=0;for(let e=0;e<s;++e){let t=o[e+1],r=a[s-e],c=i[e]/(t+r);i[e]=n+t*c,n=r*c}i[s]=n}return i}function tn(e,t,n,r){let i=$t(e,r,t),a=en(i,r,e,t),o=new Se(0,0,0,0);for(let t=0;t<=e;++t){let r=n[i-e+t],s=a[t],c=r.w*s;o.x+=r.x*c,o.y+=r.y*c,o.z+=r.z*c,o.w+=r.w*s}return o}function nn(e,t,n,r,i){let a=[];for(let e=0;e<=n;++e)a[e]=0;let o=[];for(let e=0;e<=r;++e)o[e]=a.slice(0);let s=[];for(let e=0;e<=n;++e)s[e]=a.slice(0);s[0][0]=1;let c=a.slice(0),l=a.slice(0);for(let r=1;r<=n;++r){c[r]=t-i[e+1-r],l[r]=i[e+r]-t;let n=0;for(let e=0;e<r;++e){let t=l[e+1],i=c[r-e];s[r][e]=t+i;let a=s[e][r-1]/s[r][e];s[e][r]=n+t*a,n=i*a}s[r][r]=n}for(let e=0;e<=n;++e)o[0][e]=s[e][n];for(let e=0;e<=n;++e){let t=0,i=1,c=[];for(let e=0;e<=n;++e)c[e]=a.slice(0);c[0][0]=1;for(let a=1;a<=r;++a){let r=0,l=e-a,u=n-a;e>=a&&(c[i][0]=c[t][0]/s[u+1][l],r=c[i][0]*s[l][u]);let d=l>=-1?1:-l,f=e-1<=u?a-1:n-e;for(let e=d;e<=f;++e)c[i][e]=(c[t][e]-c[t][e-1])/s[u+1][l+e],r+=c[i][e]*s[l+e][u];e<=u&&(c[i][a]=-c[t][a-1]/s[u+1][e],r+=c[i][a]*s[e][u]),o[a][e]=r;let p=t;t=i,i=p}}let u=n;for(let e=1;e<=r;++e){for(let t=0;t<=n;++t)o[e][t]*=u;u*=n-e}return o}function rn(e,t,n,r,i){let a=i<e?i:e,o=[],s=$t(e,r,t),c=nn(s,r,e,a,t),l=[];for(let e=0;e<n.length;++e){let t=n[e].clone(),r=t.w;t.x*=r,t.y*=r,t.z*=r,l[e]=t}for(let t=0;t<=a;++t){let n=l[s-e].clone().multiplyScalar(c[t][0]);for(let r=1;r<=e;++r)n.add(l[s-e+r].clone().multiplyScalar(c[t][r]));o[t]=n}for(let e=a+1;e<=i+1;++e)o[e]=new Se(0,0,0);return o}function an(e,t){let n=1;for(let t=2;t<=e;++t)n*=t;let r=1;for(let e=2;e<=t;++e)r*=e;for(let n=2;n<=e-t;++n)r*=n;return n/r}function on(e){let t=e.length,n=[],r=[];for(let i=0;i<t;++i){let t=e[i];n[i]=new Ae(t.x,t.y,t.z),r[i]=t.w}let i=[];for(let e=0;e<t;++e){let t=n[e].clone();for(let n=1;n<=e;++n)t.sub(i[e-n].clone().multiplyScalar(an(e,n)*r[n]));i[e]=t.divideScalar(r[0])}return i}function sn(e,t,n,r,i){return on(rn(e,t,n,r,i))}var cn=class extends Oe{constructor(e,t,n,r,i){super();let a=t?t.length-1:0,o=n?n.length:0;this.degree=e,this.knots=t,this.controlPoints=[],this.startKnot=r||0,this.endKnot=i||a;for(let e=0;e<o;++e){let t=n[e];this.controlPoints[e]=new Se(t.x,t.y,t.z,t.w)}}getPoint(e,t=new Ae){let n=t,r=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),i=tn(this.degree,this.knots,this.controlPoints,r);return i.w!==1&&i.divideScalar(i.w),n.set(i.x,i.y,i.z)}getTangent(e,t=new Ae){let n=t,r=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),i=sn(this.degree,this.knots,this.controlPoints,r,1);return n.copy(i[1]).normalize(),n}toJSON(){let e=super.toJSON();return e.degree=this.degree,e.knots=[...this.knots],e.controlPoints=this.controlPoints.map(e=>e.toArray()),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e}fromJSON(e){return super.fromJSON(e),this.degree=e.degree,this.knots=[...e.knots],this.controlPoints=e.controlPoints.map(e=>new Se(e[0],e[1],e[2],e[3])),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this}},N,ln,un,dn=class extends re{constructor(e){super(e)}load(e,t,n,r){let i=this,a=i.path===``?we.extractUrlBase(e):i.path,o=new te(this.manager);o.setPath(i.path),o.setResponseType(`arraybuffer`),o.setRequestHeader(i.requestHeader),o.setWithCredentials(i.withCredentials),o.load(e,function(n){try{t(i.parse(n,a))}catch(t){r?r(t):console.error(t),i.manager.itemError(e)}},n,r)}parse(e,t){if(yn(e))N=new gn().parse(e);else{let t=An(e);if(!bn(t))throw Error(`THREE.FBXLoader: Unknown format.`);if(xn(t)<7e3)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+xn(t));N=new hn().parse(t)}return new fn(new ve(this.manager).setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin),this.manager).parse(N)}},fn=class{constructor(e,t){this.textureLoader=e,this.manager=t}parse(){ln=this.parseConnections();let e=this.parseImages(),t=this.parseTextures(e),n=this.parseMaterials(t),r=this.parseDeformers(),i=new pn().parse(r);return this.parseScene(r,i,n),un}parseConnections(){let e=new Map;return`Connections`in N&&N.Connections.connections.forEach(function(t){let n=t[0],r=t[1],i=t[2];e.has(n)||e.set(n,{parents:[],children:[]});let a={ID:r,relationship:i};e.get(n).parents.push(a),e.has(r)||e.set(r,{parents:[],children:[]});let o={ID:n,relationship:i};e.get(r).children.push(o)}),e}parseImages(){let e={},t={};if(`Video`in N.Objects){let n=N.Objects.Video;for(let r in n){let i=n[r],a=parseInt(r);if(e[a]=i.RelativeFilename||i.Filename,`Content`in i){let e=i.Content instanceof ArrayBuffer&&i.Content.byteLength>0,a=typeof i.Content==`string`&&i.Content!==``;if(e||a){let e=this.parseImage(n[r]);t[i.RelativeFilename||i.Filename]=e}}}}for(let n in e){let r=e[n];e[n]=t[r]===void 0?e[n].split(`\\`).pop():t[r]}return e}parseImage(e){let t=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(`.`)+1).toLowerCase(),i;switch(r){case`bmp`:i=`image/bmp`;break;case`jpg`:case`jpeg`:i=`image/jpeg`;break;case`png`:i=`image/png`;break;case`tif`:i=`image/tiff`;break;case`tga`:this.manager.getHandler(`.tga`)===null&&console.warn(`FBXLoader: TGA loader not found, skipping `,n),i=`image/tga`;break;case`webp`:i=`image/webp`;break;default:console.warn(`FBXLoader: Image type "`+r+`" is not supported.`);return}if(typeof t==`string`)return`data:`+i+`;base64,`+t;{let e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){let t=new Map;if(`Texture`in N.Objects){let n=N.Objects.Texture;for(let r in n){let i=this.parseTexture(n[r],e);t.set(parseInt(r),i)}}return t}parseTexture(e,t){let n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;let r=e.WrapModeU,i=e.WrapModeV,a=r===void 0?0:r.value,o=i===void 0?0:i.value;if(n.wrapS=a===0?ce:D,n.wrapT=o===0?ce:D,`Scaling`in e){let t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}if(`Translation`in e){let t=e.Translation.value;n.offset.x=t[0],n.offset.y=t[1]}return n}loadTexture(e,t){let n=e.FileName.split(`.`).pop().toLowerCase(),r=this.manager.getHandler(`.${n}`);r===null&&(r=this.textureLoader);let i=r.path;i||r.setPath(this.textureLoader.path);let a=ln.get(e.id).children,o;if(a!==void 0&&a.length>0&&t[a[0].ID]!==void 0&&(o=t[a[0].ID],(o.indexOf(`blob:`)===0||o.indexOf(`data:`)===0)&&r.setPath(void 0)),o===void 0)return console.warn(`FBXLoader: Undefined filename, creating placeholder texture.`),new b;let s=r.load(o);return r.setPath(i),s}parseMaterials(e){let t=new Map;if(`Material`in N.Objects){let n=N.Objects.Material;for(let r in n){let i=this.parseMaterial(n[r],e);i!==null&&t.set(parseInt(r),i)}}return t}parseMaterial(e,t){let n=e.id,r=e.attrName,i=e.ShadingModel;if(typeof i==`object`&&(i=i.value),!ln.has(n))return null;let a=this.parseParameters(e,t,n),o;switch(i.toLowerCase()){case`phong`:o=new me;break;case`lambert`:o=new xe;break;default:console.warn(`THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.`,i),o=new me}return o.setValues(a),o.name=r,o}parseParameters(e,t,n){let r={};e.BumpFactor&&(r.bumpScale=e.BumpFactor.value),e.Diffuse?r.color=O.colorSpaceToWorking(new j().fromArray(e.Diffuse.value),ue):e.DiffuseColor&&(e.DiffuseColor.type===`Color`||e.DiffuseColor.type===`ColorRGB`)&&(r.color=O.colorSpaceToWorking(new j().fromArray(e.DiffuseColor.value),ue)),e.DisplacementFactor&&(r.displacementScale=e.DisplacementFactor.value),e.Emissive?r.emissive=O.colorSpaceToWorking(new j().fromArray(e.Emissive.value),ue):e.EmissiveColor&&(e.EmissiveColor.type===`Color`||e.EmissiveColor.type===`ColorRGB`)&&(r.emissive=O.colorSpaceToWorking(new j().fromArray(e.EmissiveColor.value),ue)),e.EmissiveFactor&&(r.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),r.opacity=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0),(r.opacity===1||r.opacity===0)&&(r.opacity=e.Opacity?parseFloat(e.Opacity.value):null,r.opacity===null&&(r.opacity=1)),r.opacity<1&&(r.transparent=!0),e.ReflectionFactor&&(r.reflectivity=e.ReflectionFactor.value),e.Shininess&&(r.shininess=e.Shininess.value),e.Specular?r.specular=O.colorSpaceToWorking(new j().fromArray(e.Specular.value),ue):e.SpecularColor&&e.SpecularColor.type===`Color`&&(r.specular=O.colorSpaceToWorking(new j().fromArray(e.SpecularColor.value),ue));let i=this;return ln.get(n).children.forEach(function(e){let n=e.relationship;switch(n){case`Bump`:r.bumpMap=i.getTexture(t,e.ID);break;case`Maya|TEX_ao_map`:r.aoMap=i.getTexture(t,e.ID);break;case`DiffuseColor`:case`Maya|TEX_color_map`:r.map=i.getTexture(t,e.ID),r.map!==void 0&&(r.map.colorSpace=ue);break;case`DisplacementColor`:r.displacementMap=i.getTexture(t,e.ID);break;case`EmissiveColor`:r.emissiveMap=i.getTexture(t,e.ID),r.emissiveMap!==void 0&&(r.emissiveMap.colorSpace=ue);break;case`NormalMap`:case`Maya|TEX_normal_map`:r.normalMap=i.getTexture(t,e.ID);break;case`ReflectionColor`:r.envMap=i.getTexture(t,e.ID),r.envMap!==void 0&&(r.envMap.mapping=303,r.envMap.colorSpace=ue);break;case`SpecularColor`:r.specularMap=i.getTexture(t,e.ID),r.specularMap!==void 0&&(r.specularMap.colorSpace=ue);break;case`TransparentColor`:case`TransparencyFactor`:r.alphaMap=i.getTexture(t,e.ID),r.transparent=!0;break;default:console.warn(`THREE.FBXLoader: %s map is not supported in three.js, skipping texture.`,n)}}),r}getTexture(e,t){return`LayeredTexture`in N.Objects&&t in N.Objects.LayeredTexture&&(console.warn(`THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.`),t=ln.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if(`Deformer`in N.Objects){let n=N.Objects.Deformer;for(let r in n){let i=n[r],a=ln.get(parseInt(r));if(i.attrType===`Skin`){let t=this.parseSkeleton(a,n);t.ID=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: skeleton attached to more than one geometry is not supported.`),t.geometryID=a.parents[0].ID,e[r]=t}else if(i.attrType===`BlendShape`){let e={id:r};e.rawTargets=this.parseMorphTargets(a,n),e.id=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: morph target attached to more than one geometry is not supported.`),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){let n=[];return e.children.forEach(function(e){let r=t[e.ID];if(r.attrType!==`Cluster`)return;let i={ID:e.ID,indices:[],weights:[],transformLink:new _e().fromArray(r.TransformLink.a)};`Indexes`in r&&(i.indices=r.Indexes.a,i.weights=r.Weights.a),n.push(i)}),{rawBones:n,bones:[]}}parseMorphTargets(e,t){let n=[];for(let r=0;r<e.children.length;r++){let i=e.children[r],a=t[i.ID],o={name:a.attrName,initialWeight:a.DeformPercent,id:a.id,fullWeights:a.FullWeights.a};if(a.attrType!==`BlendShapeChannel`)return;o.geoID=ln.get(parseInt(i.ID)).children.filter(function(e){return e.relationship===void 0})[0].ID,n.push(o)}return n}parseScene(e,t,n){un=new ne;let r=this.parseModels(e.skeletons,t,n),i=N.Objects.Model,a=this;r.forEach(function(e){let t=i[e.ID];a.setLookAtProperties(e,t),ln.get(e.ID).parents.forEach(function(t){let n=r.get(t.ID);n!==void 0&&n.add(e)}),e.parent===null&&un.add(e)}),this.addGlobalSceneSettings(),un.traverse(function(e){if(e.userData.transformData){e.parent&&(e.userData.transformData.parentMatrix=e.parent.matrix,e.userData.transformData.parentMatrixWorld=e.parent.matrixWorld);let t=Dn(e.userData.transformData);e.applyMatrix4(t),e.updateWorldMatrix()}});let o=this.parsePoseNodes(),s=new Set;for(let t in e.skeletons)e.skeletons[t].rawBones.forEach(function(n,r){let i=e.skeletons[t].bones[r];i&&s.add(i.ID)});let c=new _e;un.traverse(function(e){if(e.isBone&&e.ID!==void 0&&!s.has(e.ID)){let t=o[e.ID];t!==void 0&&(e.parent?(c.copy(e.parent.matrixWorld).invert(),c.multiply(t)):c.copy(t),c.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),e.matrixWorld.copy(t))}}),this.bindSkeleton(e.skeletons,t,r);let l=new mn().parse();un.children.length===1&&un.children[0].isGroup&&(un.children[0].animations=l,un=un.children[0]),un.animations=l,`GlobalSettings`in N&&`UpAxis`in N.GlobalSettings&&N.GlobalSettings.UpAxis.value===2&&(console.warn(`THREE.FBXLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted.`),un.rotation.set(-Math.PI/2,0,0))}parseModels(e,t,n){let r=new Map,i=N.Objects.Model;for(let a in i){let o=parseInt(a),s=i[a],c=ln.get(o),l=this.buildSkeleton(c,e,o,s.attrName);if(!l){switch(s.attrType){case`Camera`:l=this.createCamera(c);break;case`Light`:l=this.createLight(c);break;case`Mesh`:l=this.createMesh(c,t,n);break;case`NurbsCurve`:l=this.createCurve(c,t);break;case`LimbNode`:case`Root`:l=new Me;break;default:l=new ne}l.name=s.attrName?S.sanitizeNodeName(s.attrName):``,l.userData.originalName=s.attrName,l.ID=o}this.getTransformData(l,s),r.set(o,l)}return r}buildSkeleton(e,t,n,r){let i=null;return e.parents.forEach(function(e){for(let a in t){let o=t[a];o.rawBones.forEach(function(t,a){if(t.ID===e.ID){let e=i;i=new Me,i.matrixWorld.copy(t.transformLink),i.name=r?S.sanitizeNodeName(r):``,i.userData.originalName=r,i.ID=n,o.bones[a]=i,e!==null&&i.add(e)}})}}),i}createCamera(e){let t,n;if(e.children.forEach(function(e){let t=N.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new Ne;else{let e=0;n.CameraProjectionType!==void 0&&n.CameraProjectionType.value===1&&(e=1);let r=1;n.NearPlane!==void 0&&(r=n.NearPlane.value/1e3);let i=1e3;n.FarPlane!==void 0&&(i=n.FarPlane.value/1e3);let a=window.innerWidth,o=window.innerHeight;n.AspectWidth!==void 0&&n.AspectHeight!==void 0&&(a=n.AspectWidth.value,o=n.AspectHeight.value);let s=a/o,c=45;n.FieldOfView!==void 0&&(c=n.FieldOfView.value);let l=n.FocalLength?n.FocalLength.value:null;switch(e){case 0:t=new ye(c,s,r,i),l!==null&&t.setFocalLength(l);break;case 1:console.warn(`THREE.FBXLoader: Orthographic cameras not supported yet.`),t=new Ne;break;default:console.warn(`THREE.FBXLoader: Unknown camera type `+e+`.`),t=new Ne}}return t}createLight(e){let t,n;if(e.children.forEach(function(e){let t=N.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new Ne;else{let e;e=n.LightType===void 0?0:n.LightType.value;let r=16777215;n.Color!==void 0&&(r=O.colorSpaceToWorking(new j().fromArray(n.Color.value),ue));let i=n.Intensity===void 0?1:n.Intensity.value/100;n.CastLightOnObject!==void 0&&n.CastLightOnObject.value===0&&(i=0);let a=0;switch(n.FarAttenuationEnd!==void 0&&(a=n.EnableFarAttenuation!==void 0&&n.EnableFarAttenuation.value===0?0:n.FarAttenuationEnd.value),e){case 0:t=new ae(r,i,a,1);break;case 1:t=new w(r,i);break;case 2:let e=Math.PI/3,o=0;n.OuterAngle===void 0?n.InnerAngle!==void 0&&(e=je.degToRad(n.InnerAngle.value)):(e=je.degToRad(n.OuterAngle.value),n.InnerAngle!==void 0&&(o=1-n.InnerAngle.value/n.OuterAngle.value,o=Math.max(0,o))),t=new he(r,i,a,e,o,1);break;default:console.warn(`THREE.FBXLoader: Unknown light type `+n.LightType.value+`, defaulting to a PointLight.`),t=new ae(r,i)}n.CastShadows!==void 0&&n.CastShadows.value===1&&(t.castShadow=!0)}return t}createMesh(e,t,n){let r,i=null,a=null,o=[];if(e.children.forEach(function(e){t.has(e.ID)&&(i=t.get(e.ID)),n.has(e.ID)&&o.push(n.get(e.ID))}),o.length>1?a=o:o.length>0?a=o[0]:(a=new me({name:re.DEFAULT_MATERIAL_NAME,color:13421772}),o.push(a)),`color`in i.attributes&&o.forEach(function(e){e.vertexColors=!0}),i.groups.length>0){let e=!1;for(let t=0,n=i.groups.length;t<n;t++){let n=i.groups[t];(n.materialIndex<0||n.materialIndex>=o.length)&&(n.materialIndex=o.length,e=!0)}if(e){let e=new me;o.push(e)}}return i.FBX_Deformer?(r=new be(i,a),r.normalizeSkinWeights()):r=new fe(i,a),r}createCurve(e,t){let n=e.children.reduce(function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e},null),r=new A({name:re.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1});return new x(n,r)}getTransformData(e,t){let n={};`InheritType`in t&&(n.inheritType=parseInt(t.InheritType.value)),n.eulerOrder=`RotationOrder`in t?On(t.RotationOrder.value):On(0),`Lcl_Translation`in t&&(n.translation=t.Lcl_Translation.value),`PreRotation`in t&&(n.preRotation=t.PreRotation.value),`Lcl_Rotation`in t&&(n.rotation=t.Lcl_Rotation.value),`PostRotation`in t&&(n.postRotation=t.PostRotation.value),`Lcl_Scaling`in t&&(n.scale=t.Lcl_Scaling.value),`ScalingOffset`in t&&(n.scalingOffset=t.ScalingOffset.value),`ScalingPivot`in t&&(n.scalingPivot=t.ScalingPivot.value),`RotationOffset`in t&&(n.rotationOffset=t.RotationOffset.value),`RotationPivot`in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,t){`LookAtProperty`in t&&ln.get(e.ID).children.forEach(function(t){if(t.relationship===`LookAtProperty`){let n=N.Objects.Model[t.ID];if(`Lcl_Translation`in n){let t=n.Lcl_Translation.value;e.target===void 0?e.lookAt(new Ae().fromArray(t)):(e.target.position.fromArray(t),un.add(e.target))}}})}bindSkeleton(e,t,n){for(let r in e){let i=e[r],a=[];for(let e=0,t=i.bones.length;e<t;e++){let t=new _e;i.bones[e]&&i.rawBones[e]&&t.copy(i.rawBones[e].transformLink).invert(),a.push(t)}ln.get(parseInt(i.ID)).parents.forEach(function(e){if(t.has(e.ID)){let t=e.ID;ln.get(t).parents.forEach(function(e){if(n.has(e.ID)){let t=n.get(e.ID);t.updateMatrixWorld(!0),t.bind(new De(i.bones,a),t.matrixWorld)}})}})}}parsePoseNodes(){let e={};if(`Pose`in N.Objects){let t=N.Objects.Pose;for(let n in t)if(t[n].attrType===`BindPose`&&t[n].NbPoseNodes>0){let r=t[n].PoseNode;Array.isArray(r)?r.forEach(function(t){e[t.Node]=new _e().fromArray(t.Matrix.a)}):e[r.Node]=new _e().fromArray(r.Matrix.a)}}return e}addGlobalSceneSettings(){if(`GlobalSettings`in N){if(`AmbientColor`in N.GlobalSettings){let e=N.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],r=e[2];if(t!==0||n!==0||r!==0){let e=new j().setRGB(t,n,r,ue);un.add(new ge(e,1))}}`UnitScaleFactor`in N.GlobalSettings&&(un.userData.unitScaleFactor=N.GlobalSettings.UnitScaleFactor.value)}}},pn=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if(`Geometry`in N.Objects){let n=N.Objects.Geometry;for(let r in n){let i=ln.get(parseInt(r)),a=this.parseGeometry(i,n[r],e);t.set(parseInt(r),a)}}return this.negativeMaterialIndices===!0&&console.warn(`THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.`),t}parseGeometry(e,t,n){switch(t.attrType){case`Mesh`:return this.parseMeshGeometry(e,t,n);case`NurbsCurve`:return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){let r=n.skeletons,i=[],a=e.parents.map(function(e){return N.Objects.Model[e.ID]});if(a.length===0)return;let o=e.children.reduce(function(e,t){return r[t.ID]!==void 0&&(e=r[t.ID]),e},null);e.children.forEach(function(e){n.morphTargets[e.ID]!==void 0&&i.push(n.morphTargets[e.ID])});let s=a[0],c={};`RotationOrder`in s&&(c.eulerOrder=On(s.RotationOrder.value)),`InheritType`in s&&(c.inheritType=parseInt(s.InheritType.value)),`GeometricTranslation`in s&&(c.translation=s.GeometricTranslation.value),`GeometricRotation`in s&&(c.rotation=s.GeometricRotation.value),`GeometricScaling`in s&&(c.scale=s.GeometricScaling.value);let l=Dn(c);return this.genGeometry(t,o,i,l)}genGeometry(e,t,n,r){let i=new k;e.attrName&&(i.name=e.attrName);let a=this.parseGeoNode(e,t),o=this.genBuffers(a),s=new se(o.vertex,3);if(s.applyMatrix4(r),i.setAttribute(`position`,s),o.colors.length>0&&i.setAttribute(`color`,new se(o.colors,3)),t&&(i.setAttribute(`skinIndex`,new Pe(o.weightsIndices,4)),i.setAttribute(`skinWeight`,new se(o.vertexWeights,4)),i.FBX_Deformer=t),o.normal.length>0){let e=new Ee().getNormalMatrix(r),t=new se(o.normal,3);t.applyNormalMatrix(e),i.setAttribute(`normal`,t)}if(o.uvs.forEach(function(e,t){let n=t===0?`uv`:`uv${t}`;i.setAttribute(n,new se(o.uvs[t],2))}),a.material&&a.material.mappingType!==`AllSame`){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach(function(n,r){n!==e&&(i.addGroup(t,r-t,e),e=n,t=r)}),i.groups.length>0){let t=i.groups[i.groups.length-1],n=t.start+t.count;n!==o.materialIndex.length&&i.addGroup(n,o.materialIndex.length-n,e)}i.groups.length===0&&i.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(i,e,n,r),i}parseGeoNode(e,t){let n={};if(n.vertexPositions=e.Vertices===void 0?[]:e.Vertices.a,n.vertexIndices=e.PolygonVertexIndex===void 0?[]:e.PolygonVertexIndex.a,e.LayerElementColor&&e.LayerElementColor[0].Colors&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},t!==null&&(n.skeleton=t,t.rawBones.forEach(function(e,t){e.indices.forEach(function(r,i){n.weightTable[r]===void 0&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})})})),n}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,r=0,i=!1,a=[],o=[],s=[],c=[],l=[],u=[],d=this;return e.vertexIndices.forEach(function(f,p){let m,h=!1;f<0&&(f^=-1,h=!0);let g=[],_=[];if(a.push(f*3,f*3+1,f*3+2),e.color){let t=wn(p,n,f,e.color);s.push(t[0],t[1],t[2])}if(e.skeleton){if(e.weightTable[f]!==void 0&&e.weightTable[f].forEach(function(e){_.push(e.weight),g.push(e.id)}),_.length>4){i||=(console.warn(`THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.`),!0);let e=[0,0,0,0],t=[0,0,0,0];_.forEach(function(n,r){let i=n,a=g[r];t.forEach(function(t,n,r){if(i>t){r[n]=i,i=t;let o=e[n];e[n]=a,a=o}})}),g=e,_=t}for(;_.length<4;)_.push(0),g.push(0);for(let e=0;e<4;++e)l.push(_[e]),u.push(g[e])}if(e.normal){let t=wn(p,n,f,e.normal);o.push(t[0],t[1],t[2])}e.material&&e.material.mappingType!==`AllSame`&&(m=wn(p,n,f,e.material)[0],m<0&&(d.negativeMaterialIndices=!0,m=0)),e.uv&&e.uv.forEach(function(e,t){let r=wn(p,n,f,e);c[t]===void 0&&(c[t]=[]),c[t].push(r[0]),c[t].push(r[1])}),r++,h&&(d.genFace(t,e,a,m,o,s,c,l,u,r),n++,r=0,a=[],o=[],s=[],c=[],l=[],u=[])}),t}getNormalNewell(e){let t=new Ae(0,0,0);for(let n=0;n<e.length;n++){let r=e[n],i=e[(n+1)%e.length];t.x+=(r.y-i.y)*(r.z+i.z),t.y+=(r.z-i.z)*(r.x+i.x),t.z+=(r.x-i.x)*(r.y+i.y)}return t.normalize(),t}getNormalTangentAndBitangent(e){let t=this.getNormalNewell(e),n=(Math.abs(t.z)>.5?new Ae(0,1,0):new Ae(0,0,1)).cross(t).normalize();return{normal:t,tangent:n,bitangent:t.clone().cross(n).normalize()}}flattenVertex(e,t,n){return new pe(e.dot(t),e.dot(n))}genFace(e,t,n,r,i,a,o,s,c,l){let u;if(l>3){let e=[],r=t.baseVertexPositions||t.vertexPositions;for(let t=0;t<n.length;t+=3)e.push(new Ae(r[n[t]],r[n[t+1]],r[n[t+2]]));let{tangent:i,bitangent:a}=this.getNormalTangentAndBitangent(e),o=[];for(let t of e)o.push(this.flattenVertex(t,i,a));u=de.triangulateShape(o,[])}else u=[[0,1,2]];for(let[l,d,f]of u)e.vertex.push(t.vertexPositions[n[l*3]]),e.vertex.push(t.vertexPositions[n[l*3+1]]),e.vertex.push(t.vertexPositions[n[l*3+2]]),e.vertex.push(t.vertexPositions[n[d*3]]),e.vertex.push(t.vertexPositions[n[d*3+1]]),e.vertex.push(t.vertexPositions[n[d*3+2]]),e.vertex.push(t.vertexPositions[n[f*3]]),e.vertex.push(t.vertexPositions[n[f*3+1]]),e.vertex.push(t.vertexPositions[n[f*3+2]]),t.skeleton&&(e.vertexWeights.push(s[l*4]),e.vertexWeights.push(s[l*4+1]),e.vertexWeights.push(s[l*4+2]),e.vertexWeights.push(s[l*4+3]),e.vertexWeights.push(s[d*4]),e.vertexWeights.push(s[d*4+1]),e.vertexWeights.push(s[d*4+2]),e.vertexWeights.push(s[d*4+3]),e.vertexWeights.push(s[f*4]),e.vertexWeights.push(s[f*4+1]),e.vertexWeights.push(s[f*4+2]),e.vertexWeights.push(s[f*4+3]),e.weightsIndices.push(c[l*4]),e.weightsIndices.push(c[l*4+1]),e.weightsIndices.push(c[l*4+2]),e.weightsIndices.push(c[l*4+3]),e.weightsIndices.push(c[d*4]),e.weightsIndices.push(c[d*4+1]),e.weightsIndices.push(c[d*4+2]),e.weightsIndices.push(c[d*4+3]),e.weightsIndices.push(c[f*4]),e.weightsIndices.push(c[f*4+1]),e.weightsIndices.push(c[f*4+2]),e.weightsIndices.push(c[f*4+3])),t.color&&(e.colors.push(a[l*3]),e.colors.push(a[l*3+1]),e.colors.push(a[l*3+2]),e.colors.push(a[d*3]),e.colors.push(a[d*3+1]),e.colors.push(a[d*3+2]),e.colors.push(a[f*3]),e.colors.push(a[f*3+1]),e.colors.push(a[f*3+2])),t.material&&t.material.mappingType!==`AllSame`&&(e.materialIndex.push(r),e.materialIndex.push(r),e.materialIndex.push(r)),t.normal&&(e.normal.push(i[l*3]),e.normal.push(i[l*3+1]),e.normal.push(i[l*3+2]),e.normal.push(i[d*3]),e.normal.push(i[d*3+1]),e.normal.push(i[d*3+2]),e.normal.push(i[f*3]),e.normal.push(i[f*3+1]),e.normal.push(i[f*3+2])),t.uv&&t.uv.forEach(function(t,n){e.uvs[n]===void 0&&(e.uvs[n]=[]),e.uvs[n].push(o[n][l*2]),e.uvs[n].push(o[n][l*2+1]),e.uvs[n].push(o[n][d*2]),e.uvs[n].push(o[n][d*2+1]),e.uvs[n].push(o[n][f*2]),e.uvs[n].push(o[n][f*2+1])})}addMorphTargets(e,t,n,r){if(n.length===0)return;e.morphTargetsRelative=!0,e.morphAttributes.position=[];let i=r.clone().setPosition(0,0,0),a=this;n.forEach(function(n){n.rawTargets.forEach(function(n){let r=N.Objects.Geometry[n.geoID];r!==void 0&&a.genMorphGeometry(e,t,r,i,n.name)})})}genMorphGeometry(e,t,n,r,i){let a=t.Vertices===void 0?[]:t.Vertices.a,o=t.PolygonVertexIndex===void 0?[]:t.PolygonVertexIndex.a,s=n.Vertices===void 0?[]:n.Vertices.a,c=n.Indexes===void 0?[]:n.Indexes.a,l=e.attributes.position.count*3,u=new Float32Array(l);for(let e=0;e<c.length;e++){let t=c[e]*3;u[t]=s[e*3],u[t+1]=s[e*3+1],u[t+2]=s[e*3+2]}let d={vertexIndices:o,vertexPositions:u,baseVertexPositions:a},f=this.genBuffers(d),p=new se(f.vertex,3);p.name=i||n.attrName,p.applyMatrix4(r),e.morphAttributes.position.push(p)}parseNormals(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Normals.a,i=[];return n===`IndexToDirect`&&(`NormalIndex`in e?i=e.NormalIndex.a:`NormalsIndex`in e&&(i=e.NormalsIndex.a)),{dataSize:3,buffer:r,indices:i,mappingType:t,referenceType:n}}parseUVs(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.UV.a,i=[];return n===`IndexToDirect`&&(i=e.UVIndex.a),{dataSize:2,buffer:r,indices:i,mappingType:t,referenceType:n}}parseVertexColors(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Colors.a,i=[];n===`IndexToDirect`&&(i=e.ColorIndex.a);for(let e=0,t=new j;e<r.length;e+=4)t.fromArray(r,e),O.colorSpaceToWorking(t,ue),t.toArray(r,e);return{dataSize:4,buffer:r,indices:i,mappingType:t,referenceType:n}}parseMaterialIndices(e){let t=e.MappingInformationType,n=e.ReferenceInformationType;if(t===`NoMappingInformation`)return{dataSize:1,buffer:[0],indices:[0],mappingType:`AllSame`,referenceType:n};let r=e.Materials.a,i=[];for(let e=0;e<r.length;++e)i.push(e);return{dataSize:1,buffer:r,indices:i,mappingType:t,referenceType:n}}parseNurbsGeometry(e){let t=parseInt(e.Order);if(isNaN(t))return console.error(`THREE.FBXLoader: Invalid Order %s given for geometry ID: %s`,e.Order,e.id),new k;let n=t-1,r=e.KnotVector.a,i=[],a=e.Points.a;for(let e=0,t=a.length;e<t;e+=4)i.push(new Se().fromArray(a,e));let o,s;if(e.Form===`Closed`)i.push(i[0]);else if(e.Form===`Periodic`){o=n,s=r.length-1-o;for(let e=0;e<n;++e)i.push(i[e])}let c=new cn(n,r,i,o,s).getPoints(i.length*12);return new k().setFromPoints(c)}},mn=class{parse(){let e=[],t=this.parseClips();if(t!==void 0)for(let n in t){let r=t[n],i=this.addClip(r);e.push(i)}return e}parseClips(){if(N.Objects.AnimationCurve===void 0)return;let e=this.parseAnimationCurveNodes();this.parseAnimationCurves(e);let t=this.parseAnimationLayers(e);return this.parseAnimStacks(t)}parseAnimationCurveNodes(){let e=N.Objects.AnimationCurveNode,t=new Map;for(let n in e){let r=e[n];if(r.attrName.match(/S|R|T|DeformPercent/)!==null){let e={id:r.id,attr:r.attrName,curves:{}};t.set(e.id,e)}}return t}parseAnimationCurves(e){let t=N.Objects.AnimationCurve;for(let n in t){let r={id:t[n].id,times:t[n].KeyTime.a.map(Sn),values:t[n].KeyValueFloat.a},i=ln.get(r.id);if(i!==void 0){let t=i.parents[0].ID,n=i.parents[0].relationship;n.match(/X/)?e.get(t).curves.x=r:n.match(/Y/)?e.get(t).curves.y=r:n.match(/Z/)?e.get(t).curves.z=r:n.match(/DeformPercent/)&&e.has(t)&&(e.get(t).curves.morph=r)}}}parseAnimationLayers(e){let t=N.Objects.AnimationLayer,n=new Map;for(let r in t){let t=[],i=ln.get(parseInt(r));i!==void 0&&(i.children.forEach(function(n,r){if(e.has(n.ID)){let i=e.get(n.ID);if(i.curves.x!==void 0||i.curves.y!==void 0||i.curves.z!==void 0){if(t[r]===void 0){let e=ln.get(n.ID).parents.filter(function(e){return e.relationship!==void 0});if(e.length===0)return;let i=e[0].ID;if(i!==void 0){let e=N.Objects.Model[i.toString()];if(e===void 0){console.warn(`THREE.FBXLoader: Encountered a unused curve.`,n);return}let a={modelName:e.attrName?S.sanitizeNodeName(e.attrName):``,ID:e.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1]};un.traverse(function(t){t.ID===e.id&&(a.transform=t.matrix,t.userData.transformData&&(a.eulerOrder=t.userData.transformData.eulerOrder,t.userData.transformData.rotation&&(a.initialRotation=t.userData.transformData.rotation)))}),a.transform||=new _e,`PreRotation`in e&&(a.preRotation=e.PreRotation.value),`PostRotation`in e&&(a.postRotation=e.PostRotation.value),t[r]=a}}t[r]&&(t[r][i.attr]=i)}else if(i.curves.morph!==void 0){if(t[r]===void 0){let e=ln.get(n.ID).parents.filter(function(e){return e.relationship!==void 0});if(e.length===0)return;let i=e[0].ID,a=ln.get(i).parents[0].ID,o=ln.get(a).parents[0].ID,s=ln.get(o).parents[0].ID,c=N.Objects.Model[s],l={modelName:c.attrName?S.sanitizeNodeName(c.attrName):``,morphName:N.Objects.Deformer[i].attrName};t[r]=l}t[r][i.attr]=i}}}),n.set(parseInt(r),t))}return n}parseAnimStacks(e){let t=N.Objects.AnimationStack,n={};for(let r in t){let i=ln.get(parseInt(r)).children;i.length>1&&console.warn(`THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.`);let a=e.get(i[0].ID);n[r]={name:t[r].attrName,layer:a}}return n}addClip(e){let t=[],n=this;return e.layer.forEach(function(e){t=t.concat(n.generateTracks(e))}),new Ce(e.name,-1,t)}generateTracks(e){let t=[],n=new Ae,r=new Ae;if(e.transform&&e.transform.decompose(n,new le,r),n=n.toArray(),r=r.toArray(),e.T!==void 0&&Object.keys(e.T.curves).length>0){let r=this.generateVectorTrack(e.modelName,e.T.curves,n,`position`);r!==void 0&&t.push(r)}if(e.R!==void 0&&Object.keys(e.R.curves).length>0){let n=this.generateRotationTrack(e.modelName,e.R.curves,e.preRotation,e.postRotation,e.eulerOrder,e.initialRotation);n!==void 0&&t.push(n)}if(e.S!==void 0&&Object.keys(e.S.curves).length>0){let n=this.generateVectorTrack(e.modelName,e.S.curves,r,`scale`);n!==void 0&&t.push(n)}if(e.DeformPercent!==void 0){let n=this.generateMorphTrack(e);n!==void 0&&t.push(n)}return t}generateVectorTrack(e,t,n,r){let i=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(i,t,n);return new Te(e+`.`+r,i,a)}generateRotationTrack(e,t,n,r,i,a){let o,s;if(t.x!==void 0||t.y!==void 0||t.z!==void 0){let e=this.getTimesForAllAxes(t);if(e.length>0){let n=a||[0,0,0],r=this.synchronizeCurve(t.x,e,n[0]),c=this.synchronizeCurve(t.y,e,n[1]),l=this.synchronizeCurve(t.z,e,n[2]),u=this.interpolateRotations(r,c,l,i);o=u[0],s=u[1]}}let c=On(0);n!==void 0&&(n=n.map(je.degToRad),n.push(c),n=new ie().fromArray(n),n=new le().setFromEuler(n)),r!==void 0&&(r=r.map(je.degToRad),r.push(c),r=new ie().fromArray(r),r=new le().setFromEuler(r).invert());let l=new le,u=new ie,d=[];if(!(!s||!o)){for(let e=0;e<s.length;e+=3)u.set(s[e],s[e+1],s[e+2],i),l.setFromEuler(u),n!==void 0&&l.premultiply(n),r!==void 0&&l.multiply(r),e>2&&new le().fromArray(d,(e-3)/3*4).dot(l)<0&&l.set(-l.x,-l.y,-l.z,-l.w),l.toArray(d,e/3*4);return new E(e+`.quaternion`,o,d)}}generateMorphTrack(e){let t=e.DeformPercent.curves.morph,n=t.values.map(function(e){return e/100}),r=un.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];return new C(e.modelName+`.morphTargetInfluences[`+r+`]`,t.times,n)}getTimesForAllAxes(e){let t=[];if(e.x!==void 0&&(t=t.concat(e.x.times)),e.y!==void 0&&(t=t.concat(e.y.times)),e.z!==void 0&&(t=t.concat(e.z.times)),t=t.sort(function(e,t){return e-t}),t.length>1){let e=1,n=t[0];for(let r=1;r<t.length;r++){let i=t[r];i!==n&&(t[e]=i,n=i,e++)}t=t.slice(0,e)}return t}getKeyframeTrackValues(e,t,n){let r=n,i=[],a=-1,o=-1,s=-1;return e.forEach(function(e){if(t.x&&(a=t.x.times.indexOf(e)),t.y&&(o=t.y.times.indexOf(e)),t.z&&(s=t.z.times.indexOf(e)),a!==-1){let e=t.x.values[a];i.push(e),r[0]=e}else i.push(r[0]);if(o!==-1){let e=t.y.values[o];i.push(e),r[1]=e}else i.push(r[1]);if(s!==-1){let e=t.z.values[s];i.push(e),r[2]=e}else i.push(r[2])}),i}synchronizeCurve(e,t,n){if(e===void 0)return{times:t,values:t.map(()=>n)};if(e.times.length===t.length)return e;let r=[];for(let i=0;i<t.length;i++)r.push(this.sampleCurveValue(e,t[i],n));return{times:t,values:r}}sampleCurveValue(e,t,n){let r=e.times,i=e.values;if(t<=r[0])return i[0];if(t>=r[r.length-1])return i[i.length-1];for(let e=0;e<r.length-1;e++)if(t>=r[e]&&t<=r[e+1]){if(r[e]===t)return i[e];let n=(t-r[e])/(r[e+1]-r[e]);return i[e]*(1-n)+i[e+1]*n}return n}interpolateRotations(e,t,n,r){let i=[],a=[];i.push(e.times[0]),a.push(je.degToRad(e.values[0])),a.push(je.degToRad(t.values[0])),a.push(je.degToRad(n.values[0]));for(let o=1;o<e.values.length;o++){let s=[e.values[o-1],t.values[o-1],n.values[o-1]];if(isNaN(s[0])||isNaN(s[1])||isNaN(s[2]))continue;let c=s.map(je.degToRad),l=[e.values[o],t.values[o],n.values[o]];if(isNaN(l[0])||isNaN(l[1])||isNaN(l[2]))continue;let u=l.map(je.degToRad),d=[l[0]-s[0],l[1]-s[1],l[2]-s[2]],f=[Math.abs(d[0]),Math.abs(d[1]),Math.abs(d[2])];if(f[0]>=180||f[1]>=180||f[2]>=180){let t=Math.max(...f)/180,n=new ie(...c,r),s=new ie(...u,r),l=new le().setFromEuler(n),d=new le().setFromEuler(s);l.dot(d)<0&&d.set(-d.x,-d.y,-d.z,-d.w);let p=e.times[o-1],m=e.times[o]-p,h=new le,g=new ie;for(let e=0;e<1;e+=1/t)h.copy(l.clone().slerp(d.clone(),e)),i.push(p+e*m),g.setFromQuaternion(h,r),a.push(g.x),a.push(g.y),a.push(g.z)}else i.push(e.times[o]),a.push(je.degToRad(e.values[o])),a.push(je.degToRad(t.values[o])),a.push(je.degToRad(n.values[o]))}return[i,a]}},hn=class{getPrevNode(){return this.nodeStack[this.currentIndent-2]}getCurrentNode(){return this.nodeStack[this.currentIndent-1]}getCurrentProp(){return this.currentProp}pushStack(e){this.nodeStack.push(e),this.currentIndent+=1}popStack(){this.nodeStack.pop(),--this.currentIndent}setCurrentProp(e,t){this.currentProp=e,this.currentPropName=t}parse(e){this.currentIndent=0,this.allNodes=new vn,this.nodeStack=[],this.currentProp=[],this.currentPropName=``;let t=this,n=e.split(/[\r\n]+/);return n.forEach(function(e,r){let i=e.match(/^[\s\t]*;/),a=e.match(/^[\s\t]*$/);if(i||a)return;let o=e.match(`^\\t{`+t.currentIndent+`}(\\w+):(.*){`,``),s=e.match(`^\\t{`+t.currentIndent+`}(\\w+):[\\s\\t\\r\\n](.*)`),c=e.match(`^\\t{`+(t.currentIndent-1)+`}}`);o?t.parseNodeBegin(e,o):s?t.parseNodeProperty(e,s,n[++r]):c?t.popStack():e.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(e)}),this.allNodes}parseNodeBegin(e,t){let n=t[1].trim().replace(/^"/,``).replace(/"$/,``),r=t[2].split(`,`).map(function(e){return e.trim().replace(/^"/,``).replace(/"$/,``)}),i={name:n},a=this.parseNodeAttr(r),o=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(n,i):n in o?(n===`PoseNode`?o.PoseNode.push(i):o[n].id!==void 0&&(o[n]={},o[n][o[n].id]=o[n]),a.id!==``&&(o[n][a.id]=i)):typeof a.id==`number`?(o[n]={},o[n][a.id]=i):n!==`Properties70`&&(o[n]=n===`PoseNode`?[i]:i),typeof a.id==`number`&&(i.id=a.id),a.name!==``&&(i.attrName=a.name),a.type!==``&&(i.attrType=a.type),this.pushStack(i)}parseNodeAttr(e){let t=e[0];e[0]!==``&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));let n=``,r=``;return e.length>1&&(n=e[1].replace(/^(\w+)::/,``),r=e[2]),{id:t,name:n,type:r}}parseNodeProperty(e,t,n){let r=t[1].replace(/^"/,``).replace(/"$/,``).trim(),i=t[2].replace(/^"/,``).replace(/"$/,``).trim();r===`Content`&&i===`,`&&(i=n.replace(/"/g,``).replace(/,$/,``).trim());let a=this.getCurrentNode();if(a.name===`Properties70`){this.parseNodeSpecialProperty(e,r,i);return}if(r===`C`){let e=i.split(`,`).slice(1),t=parseInt(e[0]),n=parseInt(e[1]),o=i.split(`,`).slice(3);o=o.map(function(e){return e.trim().replace(/^"/,``)}),r=`connections`,i=[t,n],jn(i,o),a[r]===void 0&&(a[r]=[])}r===`Node`&&(a.id=i),r in a&&Array.isArray(a[r])?a[r].push(i):r===`a`?a.a=i:a[r]=i,this.setCurrentProp(a,r),r===`a`&&i.slice(-1)!==`,`&&(a.a=kn(i))}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,e.slice(-1)!==`,`&&(t.a=kn(t.a))}parseNodeSpecialProperty(e,t,n){let r=n.split(`",`).map(function(e){return e.trim().replace(/^\"/,``).replace(/\s/,`_`)}),i=r[0],a=r[1],o=r[2],s=r[3],c=r[4];switch(a){case`int`:case`enum`:case`bool`:case`ULongLong`:case`double`:case`Number`:case`FieldOfView`:c=parseFloat(c);break;case`Color`:case`ColorRGB`:case`Vector3D`:case`Lcl_Translation`:case`Lcl_Rotation`:case`Lcl_Scaling`:c=kn(c)}this.getPrevNode()[i]={type:a,type2:o,flag:s,value:c},this.setCurrentProp(this.getPrevNode(),i)}},gn=class{parse(e){let t=new _n(e);t.skip(23);let n=t.getUint32();if(n<6400)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+n);let r=new vn;for(;!this.endOfContent(t);){let e=this.parseNode(t,n);e!==null&&r.add(e.name,e)}return r}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let a=e.getUint8(),o=e.getString(a);if(r===0)return null;let s=[];for(let t=0;t<i;t++)s.push(this.parseProperty(e));let c=s.length>0?s[0]:``,l=s.length>1?s[1]:``,u=s.length>2?s[2]:``;for(n.singleProperty=i===1&&e.getOffset()===r;r>e.getOffset();){let r=this.parseNode(e,t);r!==null&&this.parseSubNode(o,n,r)}return n.propertyList=s,typeof c==`number`&&(n.id=c),l!==``&&(n.attrName=l),u!==``&&(n.attrType=u),o!==``&&(n.name=o),n}parseSubNode(e,t,n){if(n.singleProperty===!0){let e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if(e===`Connections`&&n.name===`C`){let e=[];n.propertyList.forEach(function(t,n){n!==0&&e.push(t)}),t.connections===void 0&&(t.connections=[]),t.connections.push(e)}else if(n.name===`Properties70`)Object.keys(n).forEach(function(e){t[e]=n[e]});else if(e===`Properties70`&&n.name===`P`){let e=n.propertyList[0],r=n.propertyList[1],i=n.propertyList[2],a=n.propertyList[3],o;e.indexOf(`Lcl `)===0&&(e=e.replace(`Lcl `,`Lcl_`)),r.indexOf(`Lcl `)===0&&(r=r.replace(`Lcl `,`Lcl_`)),o=r===`Color`||r===`ColorRGB`||r===`Vector`||r===`Vector3D`||r.indexOf(`Lcl_`)===0?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[e]={type:r,type2:i,flag:a,value:o}}else t[n.name]===void 0?typeof n.id==`number`?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:n.name===`PoseNode`?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):t[n.name][n.id]===void 0&&(t[n.name][n.id]=n)}parseProperty(e){let t=e.getString(1),n;switch(t){case`C`:return e.getBoolean();case`D`:return e.getFloat64();case`F`:return e.getFloat32();case`I`:return e.getInt32();case`L`:return e.getInt64();case`R`:return n=e.getUint32(),e.getArrayBuffer(n);case`S`:return n=e.getUint32(),e.getString(n);case`Y`:return e.getInt16();case`b`:case`c`:case`d`:case`f`:case`i`:case`l`:let r=e.getUint32(),i=e.getUint32(),a=e.getUint32();if(i===0)switch(t){case`b`:case`c`:return e.getBooleanArray(r);case`d`:return e.getFloat64Array(r);case`f`:return e.getFloat32Array(r);case`i`:return e.getInt32Array(r);case`l`:return e.getInt64Array(r)}let o=new _n(ke(new Uint8Array(e.getArrayBuffer(a))).buffer);switch(t){case`b`:case`c`:return o.getBooleanArray(r);case`d`:return o.getFloat64Array(r);case`f`:return o.getFloat32Array(r);case`i`:return o.getInt32Array(r);case`l`:return o.getInt64Array(r)}break;default:throw Error(`THREE.FBXLoader: Unknown property type `+t)}}},_n=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=t===void 0||t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return(this.getUint8()&1)==1}getBooleanArray(e){let t=[];for(let n=0;n<e;n++)t.push(this.getBoolean());return t}getUint8(){let e=this.dv.getUint8(this.offset);return this.offset+=1,e}getInt16(){let e=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}getInt32(){let e=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}getInt32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt32());return t}getUint32(){let e=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}getInt64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t&2147483648?(t=~t&4294967295,e=~e&4294967295,e===4294967295&&(t=t+1&4294967295),e=e+1&4294967295,-(t*4294967296+e)):t*4294967296+e}getInt64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt64());return t}getUint64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t*4294967296+e}getFloat32(){let e=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}getFloat32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat32());return t}getFloat64(){let e=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}getFloat64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat64());return t}getArrayBuffer(e){let t=this.dv.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}getString(e){let t=this.offset,n=new Uint8Array(this.dv.buffer,t,e);this.skip(e);let r=n.indexOf(0);return r>=0&&(n=new Uint8Array(this.dv.buffer,t,r)),this._textDecoder.decode(n)}},vn=class{add(e,t){this[e]=t}};function yn(e){return e.byteLength>=21&&An(e,0,21)===`Kaydara FBX Binary \0`}function bn(e){let t=[`K`,`a`,`y`,`d`,`a`,`r`,`a`,`\\`,`F`,`B`,`X`,`\\`,`B`,`i`,`n`,`a`,`r`,`y`,`\\`,`\\`],n=0;function r(t){let r=e[t-1];return e=e.slice(n+t),n++,r}for(let e=0;e<t.length;++e)if(r(1)===t[e])return!1;return!0}function xn(e){let t=e.match(/FBXVersion: (\d+)/);if(t)return parseInt(t[1]);throw Error(`THREE.FBXLoader: Cannot find the version number for the file given.`)}function Sn(e){return e/46186158e3}var Cn=[];function wn(e,t,n,r){let i;switch(r.mappingType){case`ByPolygonVertex`:i=e;break;case`ByPolygon`:i=t;break;case`ByVertice`:i=n;break;case`AllSame`:i=r.indices[0];break;default:console.warn(`THREE.FBXLoader: unknown attribute mapping type `+r.mappingType)}r.referenceType===`IndexToDirect`&&(i=r.indices[i]);let a=i*r.dataSize,o=a+r.dataSize;return Mn(Cn,r.buffer,a,o)}var Tn=new ie,En=new Ae;function Dn(e){let t=new _e,n=new _e,r=new _e,i=new _e,a=new _e,o=new _e,s=new _e,c=new _e,l=new _e,u=new _e,d=new _e,f=new _e,p=e.inheritType?e.inheritType:0;e.translation&&t.setPosition(En.fromArray(e.translation));let m=On(0);if(e.preRotation){let t=e.preRotation.map(je.degToRad);t.push(m),n.makeRotationFromEuler(Tn.fromArray(t))}if(e.rotation){let t=e.rotation.map(je.degToRad);t.push(e.eulerOrder||m),r.makeRotationFromEuler(Tn.fromArray(t))}if(e.postRotation){let t=e.postRotation.map(je.degToRad);t.push(m),i.makeRotationFromEuler(Tn.fromArray(t)),i.invert()}e.scale&&a.scale(En.fromArray(e.scale)),e.scalingOffset&&s.setPosition(En.fromArray(e.scalingOffset)),e.scalingPivot&&o.setPosition(En.fromArray(e.scalingPivot)),e.rotationOffset&&c.setPosition(En.fromArray(e.rotationOffset)),e.rotationPivot&&l.setPosition(En.fromArray(e.rotationPivot)),e.parentMatrixWorld&&(d.copy(e.parentMatrix),u.copy(e.parentMatrixWorld));let h=n.clone().multiply(r).multiply(i),g=new _e;g.extractRotation(u);let _=new _e;_.copyPosition(u);let v=_.clone().invert().multiply(u),y=g.clone().invert().multiply(v),b=a,x=new _e;if(p===0)x.copy(g).multiply(h).multiply(y).multiply(b);else if(p===1)x.copy(g).multiply(y).multiply(h).multiply(b);else{let e=new _e().scale(new Ae().setFromMatrixScale(d)).clone().invert(),t=y.clone().multiply(e);x.copy(g).multiply(h).multiply(t).multiply(b)}let S=l.clone().invert(),C=o.clone().invert(),w=t.clone().multiply(c).multiply(l).multiply(n).multiply(r).multiply(i).multiply(S).multiply(s).multiply(o).multiply(a).multiply(C),T=new _e().copyPosition(w),E=u.clone().multiply(T);return f.copyPosition(E),w=f.clone().multiply(x),w.premultiply(u.invert()),w}function On(e){e||=0;let t=[`ZYX`,`YZX`,`XZY`,`ZXY`,`YXZ`,`XYZ`];return e===6?(console.warn(`THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.`),t[0]):t[e]}function kn(e){return e.split(`,`).map(function(e){return parseFloat(e)})}function An(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=e.byteLength),new TextDecoder().decode(new Uint8Array(e,t,n))}function jn(e,t){for(let n=0,r=e.length,i=t.length;n<i;n++,r++)e[r]=t[n]}function Mn(e,t,n,r){for(let i=n,a=0;i<r;i++,a++)e[a]=t[i];return e}var Nn=`Kaydara FBX Binary \0`,Pn=65536;function Fn(e){return e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):null}function In(e){return e instanceof ArrayBuffer?e:ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):null}function Ln(e){let t=Fn(e);if(!t||t.byteLength<21)return!1;for(let e=0;e<21;e++)if(t[e]!==Nn.charCodeAt(e))return!1;return!0}function Rn(e){let t=Fn(e);if(!t||!t.byteLength)return null;let n=t.subarray(0,Math.min(t.byteLength,Pn)),r=new TextDecoder(`utf-8`).decode(n).match(/FBXVersion: (\d+)/);if(!r)return null;let i=Number(r[1]);return Number.isFinite(i)?i:null}function zn(e){let t=In(e);return!t||!t.byteLength?null:new dn().parse(t,``)}function Bn(e){try{let t=zn(e);if(!t)return null;t.updateMatrixWorld(!0);let n=new T().setFromObject(t),r=n.getSize(new Ae);return!(r.y>0)||!Number.isFinite(r.y)?null:{min:{x:n.min.x,y:n.min.y,z:n.min.z},max:{x:n.max.x,y:n.max.y,z:n.max.z}}}catch{return null}}var Vn=.05,Hn=1179937895,Un=1313821514,Wn=12,Gn=8;function Kn(e){return e instanceof ArrayBuffer?new DataView(e):ArrayBuffer.isView(e)?new DataView(e.buffer,e.byteOffset,e.byteLength):null}function qn(e){let t=Kn(e);return!!(t&&t.byteLength>=4&&t.getUint32(0,!0)===Hn)}function Jn(e){let t=Kn(e);if(!t||t.byteLength<Wn||t.getUint32(0,!0)!==Hn)return null;let n=Wn;for(;n+Gn<=t.byteLength;){let e=t.getUint32(n,!0),r=t.getUint32(n+4,!0),i=n+Gn;if(e>t.byteLength-i)return null;if(r===Un){let n=new Uint8Array(t.buffer,t.byteOffset+i,e);try{let e=n.length;for(;e>0&&n[e-1]===0;)--e;return JSON.parse(new TextDecoder().decode(n.subarray(0,e)))}catch{return null}}n=i+e}return null}function Yn(e){let t=Jn(e);if(!t||typeof t!=`object`)return null;let n=Array.isArray(t.accessors)?t.accessors:[],r=new Set;for(let e of Array.isArray(t.meshes)?t.meshes:[])for(let t of Array.isArray(e?.primitives)?e.primitives:[]){let e=t?.attributes?.POSITION;Number.isInteger(e)&&r.add(e)}let i=null;for(let e of r){let t=n[e],r=t?.min,a=t?.max;if(!Array.isArray(r)||!Array.isArray(a)||r.length!==3||a.length!==3)continue;let o=[Number(r[0]),Number(r[1]),Number(r[2])],s=[Number(a[0]),Number(a[1]),Number(a[2])];if(!(o.some(e=>!Number.isFinite(e))||s.some(e=>!Number.isFinite(e)))){if(!i){i={min:{x:o[0],y:o[1],z:o[2]},max:{x:s[0],y:s[1],z:s[2]}};continue}i.min.x=Math.min(i.min.x,o[0]),i.min.y=Math.min(i.min.y,o[1]),i.min.z=Math.min(i.min.z,o[2]),i.max.x=Math.max(i.max.x,s[0]),i.max.y=Math.max(i.max.y,s[1]),i.max.z=Math.max(i.max.z,s[2])}}return i}var Xn=new Set([`KHR_draco_mesh_compression`,`EXT_meshopt_compression`]),Zn=`That model is compressed — export it uncompressed (no Draco / meshopt)`;function Qn(e){let t=new Set;if(!e||typeof e!=`object`)return t;for(let n of[e.extensionsUsed,e.extensionsRequired])if(Array.isArray(n))for(let e of n)typeof e==`string`&&t.add(e);for(let n of Array.isArray(e.meshes)?e.meshes:[])for(let e of Array.isArray(n?.primitives)?n.primitives:[]){let n=e?.extensions;if(!(!n||typeof n!=`object`))for(let e of Object.keys(n))t.add(e)}return t}function $n(e){let t=Jn(e);if(!t)return null;for(let e of Qn(t))if(Xn.has(e))return Zn;return null}function er(e){return e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):null}function tr(e){let t=er(e);if(!t||!t.byteLength)return``;let n=new TextDecoder(`utf-8`).decode(t);return n.charCodeAt(0)===65279&&(n=n.slice(1)),n}function nr(e){let t=tr(e);if(!t)return null;let n=null;for(let e of t.split(/\r?\n/)){let t=e.trim();if(!/^v(?:\s|$)/.test(t))continue;let r=t.split(/\s+/);if(r[0]!==`v`)continue;let i=Number(r[1]),a=Number(r[2]),o=Number(r[3]);if([i,a,o].every(Number.isFinite)){if(!n){n={min:{x:i,y:a,z:o},max:{x:i,y:a,z:o}};continue}n.min.x=Math.min(n.min.x,i),n.min.y=Math.min(n.min.y,a),n.min.z=Math.min(n.min.z,o),n.max.x=Math.max(n.max.x,i),n.max.y=Math.max(n.max.y,a),n.max.z=Math.max(n.max.z,o)}}return n}function rr(e){let t=String(e?.type??``).toLowerCase();return t===`model/obj`?nr(e?.bytes):t===`model/fbx`?Bn(e?.bytes):t===`model/gltf-binary`?Yn(e?.bytes):null}function ir({min:e,max:t}={}){let n=Number(t?.x)-Number(e?.x),r=Number(t?.y)-Number(e?.y),i=Number(t?.z)-Number(e?.z);if(!Number.isFinite(r)||!(r>0))return null;let a=r<.05||r>10?1/r:1,o=n*a,s=r*a,c=i*a;return{width:o,height:s,depth:c,fitScale:a,footprint:{width:o,depth:c}}}function ar(e){if(!e)return!1;let t=typeof e.type==`string`?e.type.toLowerCase():``;return t===`model/gltf-binary`||t===`application/gltf-binary`?!0:t===``||t===`application/octet-stream`?String(e.name??``).toLowerCase().endsWith(`.glb`):!1}function or(e){if(!e)return!1;let t=typeof e.type==`string`?e.type.toLowerCase():``;return t===`model/obj`?!0:String(e.name??``).toLowerCase().endsWith(`.obj`)?t===``||t===`text/plain`||t===`application/octet-stream`||t===`text/x-obj`||t===`application/object`:!1}function sr(e){if(!e)return!1;let t=typeof e.type==`string`?e.type.toLowerCase():``;return t===`model/fbx`?!0:String(e.name??``).toLowerCase().endsWith(`.fbx`)?t===``||t===`text/plain`||t===`application/octet-stream`:!1}function cr(e){return Array.from(e?.files??[]).filter(e=>ar(e)||or(e)||sr(e))}function lr(e){return e?Array.isArray(e)?e:typeof e.length==`number`&&e.files==null?Array.from(e):Array.from(e.files??[]):[]}function ur(e){let t=[],n=[],r=[];for(let i of lr(e))cr({files:[i]}).length?n.push(i):Lt({files:[i]}).length?t.push(i):r.push(i);return{images:t,meshes:n,rejected:r}}async function dr(e,t=globalThis.crypto?.subtle){if(!e||typeof e.arrayBuffer!=`function`)throw Error(`importMeshFile needs a File or Blob`);if(Number(e.size)>33554432)throw Error(`That model is too large to import — larger than ${Math.round(bt/1048576)} MB`);let n=await e.arrayBuffer(),r=typeof e.name==`string`?e.name:``,i=ar(e)||r.toLowerCase().endsWith(`.glb`),a=sr(e)||r.toLowerCase().endsWith(`.fbx`),o=or(e)||r.toLowerCase().endsWith(`.obj`);if(qn(n)){let e=$n(n);if(e)throw Error(e);let i=Yn(n),a=i?ir(i):null;if(!a)throw Error(`That model has no measurable geometry`);let o=It({id:await Nt(n,t),type:`model/gltf-binary`,bytes:n,name:r});if(!o)throw Error(`That model could not be prepared for the set`);return{asset:o,height:a.height,footprint:a.footprint}}if(i)throw Error(`That file is not a GLB model`);let s=Rn(n);if(Ln(n)||(s??0)>=7e3)try{let e=Bn(n),i=e?ir(e):null;if(!i)throw Error(`That model has no measurable geometry`);let a=It({id:await Nt(n,t),type:`model/fbx`,bytes:n,name:r});if(!a)throw Error(`That model could not be prepared for the set`);return{asset:a,height:i.height,footprint:i.footprint}}catch(e){throw fr(e)}if(s!=null&&s<7e3)throw Error(`That FBX file is too old to import`);if(a)throw Error(`That file is not an FBX model`);let c=nr(n);if(!c)throw Error(o?`That file is not an OBJ model`:`That file is not a 3D model`);let l=ir(c);if(!l)throw Error(`That model has no measurable geometry`);let u=It({id:await Nt(n,t),type:`model/obj`,bytes:n,name:r});if(!u)throw Error(`That model could not be prepared for the set`);return{asset:u,height:l.height,footprint:l.footprint}}function fr(e){let t=String(e?.message??e);return/too old to import/i.test(t)||/no measurable geometry/i.test(t)||/not an FBX/i.test(t)?e instanceof Error?e:Error(t):/version not supported|FileVersion/i.test(t)?Error(`That FBX file is too old to import`):Error(`That file is not an FBX model`)}var pr=`cozyclay.locale`;function mr(){try{let e=localStorage.getItem(pr);return e===`ko`||e===`en`?e:null}catch{return null}}var hr=mr()??`en`,gr=hr===`ko`,_r=mr()!==null;function P(e,t){return gr?t:e}function vr(e){if(e===`ko`||e===`en`){try{localStorage.setItem(pr,e)}catch{}window.location.reload()}}var yr=1.8,br=1.3,xr=Object.freeze({super16:Object.freeze({id:`super16`,label:`Super 16`,widthMm:12.52,heightMm:7.41}),super35:Object.freeze({id:`super35`,label:`Super 35`,widthMm:24.89,heightMm:18.66}),fullFrame:Object.freeze({id:`fullFrame`,label:`Full Frame`,widthMm:36,heightMm:24}),"65mm":Object.freeze({id:`65mm`,label:`65mm`,widthMm:52.63,heightMm:23.01})}),Sr=`fullFrame`,Cr=16/9,wr=Object.freeze({"16:9":16/9,"2.39:1":2.39,"9:16":9/16,"1:1":1,"4:3":4/3,"12:7":12/7,"fal 480P":832/480});function Tr(e){return wr[e]??1.7777777777777777}function Er(e=Sr,t=Cr){let n=xr[e]??xr.fullFrame,r=Number.isFinite(t)&&t>0?t:Cr;return Math.min(n.heightMm,n.widthMm/r)}function Dr(e,t=Sr,n=Cr){return Er(t,n)/(2*Math.tan(e/2))}function Or(e,t=Sr,n=Cr){return 2*Math.atan(Er(t,n)/(2*e))}var kr=[14,18,24,28,35,50,85,100,135];function Ar(e,t=Sr,n=Cr){let r=Dr(e,t,n);return kr.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e)}var jr=[[2.8,`extreme close-up`,`ultra-realistic skin texture with visible pores and micro-detail, tack-sharp eyes, shallow depth of field`],[1.6,`close-up`,`ultra-realistic skin texture and fine facial detail, soft background blur, shallow depth of field`],[1.15,`medium close-up`,`natural skin and fabric texture, clear facial detail, shallow depth of field`],[.8,`medium shot`,`balanced detail on the subject and the surrounding space, moderate depth of field`],[.52,`medium-wide shot`,`the full figure with the environment clearly visible, deep focus`],[.3,`wide shot`,`full body in a richly detailed environment, deep focus`],[0,`extreme wide shot`,`a small figure within a vast, highly detailed environment, epic sense of scale, deep focus`]],Mr=[[2.5,`overhead`,`a directly overhead bird's-eye view looking down at the subject`],[1.8,`high angle`,`a high angle looking down at the subject`],[1.5,`eye level`,`eye level`],[1.25,`chest level`,`chest level`],[.95,`hip level`,`a low hip-level angle`],[.45,`knee level`,`a low knee-level angle looking up at the subject`],[-1/0,`ground level`,`a dramatic ground-level angle looking up at the subject`]],Nr=(e,t)=>e.find(([e])=>t>=e)??e[e.length-1];function Pr(e,t,n,r=yr,i={}){let a=i.sensorId??`fullFrame`,o=i.aspectRatio??1.7777777777777777,s=e.x-t.x,c=e.z-t.z,l=e.y-br,u=Math.hypot(s,c),d=Math.max(Math.hypot(u,l),1e-6),f=r/(2*d*Math.tan(n/2)),[,p,m]=Nr(jr,f),[,h,g]=Nr(Mr,e.y),_=Math.atan2(e.y-r*.94,Math.max(u,1e-6))*180/Math.PI,v=t.rot*Math.PI/180,y={x:Math.sin(v),z:Math.cos(v)},b={x:s/Math.max(u,1e-6),z:c/Math.max(u,1e-6)},x=y.x*b.x+y.z*b.z,S=y.x*b.z-y.z*b.x>=0?`right`:`left`,C=S===`right`?`R`:`L`,w,T;return x>.85?(w=`front`,T=`seen from the front, the face toward the camera`):x<-.85?(w=`back`,T=`seen from directly behind, the back of the head toward the camera`):x>.34?(w=`front ¾ ${C}`,T=`a three-quarter front view from the ${S}`):x<-.34?(w=`rear ¾ ${C}`,T=`a three-quarter rear view from the ${S}`):(w=`${S} profile`,T=`a ${S}-side profile view`),{sizeLabel:p,sizeContext:m,levelLabel:h,levelPhrase:g,viewShort:w,viewPhrase:T,focalMm:Ar(n,a,o),exactFocalMm:Dr(n,a,o),sensorId:xr[a]?.id??`fullFrame`,usedSensorHeightMm:Er(a,o),distance:d,screenFraction:f,elevationDeg:_}}var Fr=[{id:`nano_banana_pro`,label:`Nano Banana Pro`},{id:`nano_banana_2`,label:`Nano Banana 2`},{id:`gpt_image_2`,label:`GPT Image 2`},{id:`seedream_5`,label:`Seedream 5.0`},{id:`flux_2`,label:`Flux 2`,numericLens:!0,flavor:`fine film grain, high micro-detail`}],Ir=`Custom…`,Lr=[`Static / locked-off`,`Push-in (dolly in)`,`Pull-out (dolly out)`,`Pan left`,`Pan right`,`Tilt up`,`Tilt down`,`Tracking / follow`,`Orbit / arc`,`Crane up`,`Crane down`,`Handheld`,`Crash zoom in`,`Dolly-zoom (vertigo)`,`Whip pan`,`Aerial / drone`,Ir];function Rr({mode:e=`image`,model:t,shot:n,subject:r,subject2:i=null,posePhrase:a=``,pose2Phrase:o=``,environment:s,style:c,cameraMove:l=Lr[0],customMove:u=``,hasCharSheet:d=!1,hasEnvSheet:f=!1}){let p=t?.numericLens?`${n.focalMm}mm lens at f/2.2`:`${n.focalMm}mm lens`,m=e===`video`?`Cinematic ${n.sizeLabel} at ${p}, ${n.levelPhrase}, ${n.viewPhrase}.`:`Photorealistic cinematic film still, ${n.sizeLabel} at ${p}, ${n.levelPhrase}, ${n.viewPhrase}.`,h=(e,t)=>t?`${e}, ${t}`:e,g;g=d?i?`Both subjects are the characters from the attached character sheet. Each one exactly matches their own body pose and placement shown in the blocking frame.`:`The subject is the character from the attached character sheet, exactly matching the body pose and placement shown in the blocking frame.`:i?`Two subjects. Subject 1: ${h(r,a)}. Subject 2: ${h(i,o)}. Each subject exactly matches their own body pose and placement shown in the blocking frame.`:`Subject: ${h(r,a)}, exactly matching the body pose and placement shown in the blocking frame.`;let _=f?`The setting is the location from the attached environment sheet.`:`Environment: ${s}.`,v=l===`Custom…`?u.trim()||`static, locked-off shot`:l.toLowerCase();return[m,g,_,`${c}, ${n.sizeContext}.`,e===`video`?`Camera move: ${v}.`:null,`Use the attached blocking frame ONLY as a camera and staging guide — it fixes the exact framing, this camera angle, the lens, and the subject placement. Its floor grid is a measuring aid that encodes distance and scale: read the subject's depth and size from it, but do NOT draw the grid itself. Replace the entire setting with the described environment and render real people; do NOT reproduce its grey mannequins, grey box set, measurement grid, or flat lighting.`,t?.flavor??null,e===`video`&&(t?.audio||t?.capabilities?.audio)?`Include natural ambient sound.`:null,`16:9.`].filter(Boolean).join(` `)}var zr=1;function Br(e){return Array.isArray(e)?`[${e.map(Br).join(`,`)}]`:!e||typeof e!=`object`?JSON.stringify(e):`{${Object.keys(e).filter(e=>e!==`id`).sort().map(t=>`${JSON.stringify(t)}:${Br(e[t])}`).join(`,`)}}`}function Vr(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(36)}var Hr=class extends Error{constructor(e,t){super(`Unknown ${e} ID: ${t}`),this.name=`UnknownStableItemIdError`}};function Ur(e){return`${e}-${Date.now().toString(36)}-${zr++}`}function Wr(e){return typeof e==`string`&&e.trim()!==``}function Gr(e,t,n=new Set){let r=n,i=new Map;return(Array.isArray(e)?e:[]).map(e=>{let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{},a=Wr(n.id)?n.id:null;if(a&&!r.has(a))return r.add(a),{...n,id:a};let o=`${t}-${Vr(Br(n))}`,s=i.get(o)??0;i.set(o,s+1);let c=s===0?o:`${o}-${s+1}`;for(;r.has(c);){let e=i.get(o)??0;i.set(o,e+1),c=`${o}-${e+1}`}return r.add(c),{...n,id:c}})}function Kr(e,t,n){let r=Array.isArray(e)?e.find(e=>e.id===t):void 0;if(!r)throw new Hr(n,t);return r}function qr(e,t,n,r){return Kr(e,t,r),e.map(e=>e.id===t?n(e):e)}function Jr(e,t,n){return Kr(e,t,n),e.filter(e=>e.id!==t)}function Yr(e,t,n=e=>e.v){let r=e.length-1,i=Math.max(e[0].t,Math.min(e[r].t,t));if(i<=e[0].t)return n(e[0]);if(i>=e[r].t)return n(e[r]);let a=0;for(;a<e.length-2&&i>e[a+1].t;)a+=1;let o=e[a],s=e[a+1],c=s.t-o.t;if(c<1e-9)return n(s);let l=n(o),u=n(s),d=(e,t)=>(n(t)-n(e))/Math.max(t.t-e.t,1e-9),f=d(o,s),p=(e,t)=>e*t<=0?0:2*e*t/(e+t),m=a>0?p(d(e[a-1],o),f):f,h=a<e.length-2?p(f,d(s,e[a+2])):f,g=(i-o.t)/c,_=g*g,v=_*g;return(2*v-3*_+1)*l+(v-2*_+g)*c*m+(-2*v+3*_)*u+(v-_)*c*h}var Xr=.03,Zr=240,Qr=(e,t,n)=>Math.min(n,Math.max(t,e)),$r=(e,t=0)=>typeof e==`number`&&Number.isFinite(e)?e:t,ei=e=>{let t=Math.round(e*1e4)/1e4;return t===0?0:t};function ti(e){return e&&typeof e==`object`?{t:$r(e.t,-1),bank:ei(Qr($r(e.bank),-90,90)),pitch:ei(Qr($r(e.pitch),-90,90))}:{t:$r(e,-1),bank:0,pitch:0}}function ni(e){let t=[],n=(Array.isArray(e)?e:[]).map(ti).filter(e=>e.t>.03&&e.t<.97).sort((e,t)=>e.t-t.t);for(let e of n){let n=t.length?t[t.length-1].t:0;if(!(e.t-n<.03||1-e.t<.03)){if(t.length>=6)break;t.push(e)}}return t}function ri(e){let t=e&&typeof e==`object`?e:{};return{x:Qr($r(t.x),-240,Zr),y:Qr($r(t.y),0,60),z:Qr($r(t.z),-240,Zr)}}function ii(e){if(!e||typeof e!=`object`)return null;let t=Array.isArray(e.points)?e.points:[],n=[];for(let e of t){let t=ri(e),r=n[n.length-1];if(!(r&&Math.hypot(t.x-r.x,t.z-r.z,t.y-r.y)<1e-4)&&(n.push(t),n.length>=64))break}if(n.length<2)return null;let r=$r(e.speed,0),i=c(e.timing);return{points:n,marks:ni(e.marks),timing:l(i)?null:i,speed:r>0?Qr(r,.01,50):0,faceTravel:e.faceTravel!==!1,loop:e.loop===!0,extend:e.extend===!0}}function ai(e,t){let n=ii(e);if(!n)return null;let r=$r(t?.x),i=$r(t?.y),a=$r(t?.z);return!r&&!i&&!a?n:ii({...n,points:n.points.map(e=>({x:e.x+r,y:e.y+i,z:e.z+a}))})}var oi=.05,si=400,ci=.5,li=new Map,ui=64,di=(e,t)=>({x:2*e.x-t.x,y:2*e.y-t.y,z:2*e.z-t.z}),fi=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y,t.z-e.z);function pi(e,t,n,r,i){let a=0+Math.max(fi(e,t)**ci,1e-6),o=a+Math.max(fi(t,n)**ci,1e-6),s=o+Math.max(fi(n,r)**ci,1e-6),c=a+(o-a)*i,l=(e,t,n,r)=>{let i=r-n<1e-12?0:(c-n)/(r-n);return{x:e.x+(t.x-e.x)*i,y:e.y+(t.y-e.y)*i,z:e.z+(t.z-e.z)*i}},u=l(e,t,0,a),d=l(t,n,a,o),f=l(n,r,o,s);return l(l(u,d,0,o),l(d,f,a,s),a,o)}function mi(e,t){let n=e[t],r=e[t+1];return[t>0?e[t-1]:di(n,r),n,r,t+2<e.length?e[t+2]:di(r,n)]}var hi=e=>({x:$r(e?.x),y:$r(e?.y),z:$r(e?.z)});function gi(e){return ni(e?.marks)}function _i(e){return[0,...ni(e?.marks).map(e=>e.t),1]}function vi(e,t){let n=ni(e?.marks),r=$r(t,-1);if(n.length>=6||!(r>.03&&r<.97)||n.some(e=>Math.abs(e.t-r)<.03))return null;let i=yi(e,r),a=[...n,{t:r,bank:ei(i.bank),pitch:ei(i.pitch)}].sort((e,t)=>e.t-t.t);return{marks:a,index:a.findIndex(e=>e.t===r)+1}}function yi(e,t){let n=ni(e?.marks);if(!n.some(e=>e.bank||e.pitch))return{bank:0,pitch:0};let r=[{t:0,bank:0,pitch:0},...n,{t:1,bank:0,pitch:0}],i=Qr($r(t),0,1),a=e=>Math.abs(e)<1e-12?0:e;return{bank:a(Yr(r,i,e=>e.bank)),pitch:a(Yr(r,i,e=>e.pitch))}}function bi(e,t){let n=Si(e);if(!n.points.length)return null;let r=Ti({extend:!1},n,Qr($r(t),0,1)*n.length);return{x:r.x,y:r.y,z:r.z}}function xi(e,t,n,r){let i=Si(e);if(i.length<=1e-9)return null;let a=null,o=null;for(let e=0;e<i.points.length;e+=1){let s=t(i.points[e]);if(s&&o){let t=s.x-o.screen.x,c=s.y-o.screen.y,l=t*t+c*c,u=l<1e-12?0:Qr(((n-o.screen.x)*t+(r-o.screen.y)*c)/l,0,1),d=Math.hypot(o.screen.x+t*u-n,o.screen.y+c*u-r);(!a||d<a.d)&&(a={d,t:(i.cumulative[o.i]+(i.cumulative[e]-i.cumulative[o.i])*u)/i.length})}o=s?{screen:s,i:e}:null}return a&&(a.point=bi(e,a.t)),a}function Si(e){let t=(e?.points??[]).map(hi),n=t.map(e=>`${e.x},${e.y},${e.z}`).join(`;`),r=li.get(n);if(r)return r;let i=t.length?[{...t[0]}]:[];for(let e=0;e+1<t.length;e+=1){let n=mi(t,e),r=Qr(Math.ceil(fi(t[e],t[e+1])/oi),2,si);for(let a=1;a<=r;a+=1){let o=a===r?{...t[e+1]}:pi(...n,a/r);i.push({x:o.x,y:Math.max(0,o.y),z:o.z})}}let a=i.length?[0]:[];for(let e=1;e<i.length;e+=1)a.push(a[e-1]+fi(i[e-1],i[e]));let o=i.map((e,t)=>Ei(i[Math.max(0,t-1)],i[Math.min(i.length-1,t+1)])),s={points:i,cumulative:a,length:a[a.length-1]??0,headings:o};return li.size>=ui&&li.delete(li.keys().next().value),li.set(n,s),s}function Ci(e){let{cumulative:t,length:n}=Si(e);return{cumulative:t,length:n}}function wi(e,t,n){return e===null?t:t===null?e:e+(((t-e)%360+540)%360-180)*n}function Ti(e,t,n){let{points:r,cumulative:i,length:a,headings:o}=t;if(n<=0)return{...r[0],heading:o[0]};let s=r.length-1;if(n>=a){let t=r[s],i=o[s];if(!e.extend)return{...t,heading:i};let c=n-a,l=r[s-1],u=fi(l,t)||1;return{x:t.x+(t.x-l.x)/u*c,y:Math.max(0,t.y+(t.y-l.y)/u*c),z:t.z+(t.z-l.z)/u*c,heading:i}}let c=0,l=s;for(;l-c>1;){let e=c+l>>1;i[e]<=n?c=e:l=e}let u=r[c],d=r[l],f=i[l]-i[c],p=f>1e-9?(n-i[c])/f:0;return{x:u.x+(d.x-u.x)*p,y:u.y+(d.y-u.y)*p,z:u.z+(d.z-u.z)*p,heading:wi(o[c],o[l],p)}}function Ei(e,t){if(!e||!t)return null;let n=t.x-e.x,r=t.z-e.z;return Math.abs(n)<1e-9&&Math.abs(r)<1e-9?null:Math.atan2(n,r)*180/Math.PI}function Di(e,t,n,r){let i=Math.max(1,Math.round($r(r.frameCount,1))),a=Math.max(1,$r(r.fps,24)),o=Qr($r(n),0,Math.max(0,i-1))/a,c=Math.max(1e-6,(i-1)/a),l=e.speed>0?e.speed:t.length/c,u=t.length/l,d=o/Math.max(1e-6,u);return e.loop&&t.length>1e-9?t.length*s(e.timing,d-Math.floor(d)):d>=1?t.length+(e.extend?l*(o-u):0):t.length*s(e.timing,d)}function Oi(e,t,n={}){let r=ii(e);if(!r)return null;let i=Si(r);return i.length<=1e-9?null:Qr(Di(r,i,t,n)/i.length,0,1)}function ki(e,t,n={}){let r=ii(e?.path);if(!r)return null;let i=Si(r);if(i.length<=1e-9)return null;let a=Di(r,i,t,n),o=Ti(r,i,a),s=yi(r,a/i.length);return{x:o.x,y:o.y,z:o.z,rot:r.faceTravel&&o.heading!==null?o.heading:null,bank:s.bank,pitch:s.pitch}}var Ai=.12;function ji(e,t,{maxPoints:n=64,epsilon:r=Ai}={}){if(!e||e.length<2)return[];let i=t(e,r);for(let a=0;a<12&&i.length>n;a+=1)r*=1.8,i=t(e,r);if(i.length>n){let e=[i[0]];for(let t=1;t<n-1;t+=1)e.push(i[Math.round(t*(i.length-1)/(n-1))]);e.push(i[i.length-1]),i=e}return i.map(e=>({x:e.x,y:0,z:e.z}))}var Mi=1,Ni=Object.freeze([`blob`,`box`,`cylinder`,`torus`,`frame`]),Pi=Object.freeze({maxParts:48,minExtent:.005,maxExtent:20,maxOffset:20,maxDepth:8}),Fi=`#c2c6c8`,Ii=`.mirror`,Li=.05,Ri=/^[a-z0-9][a-z0-9-]{0,39}$/,zi=/^#?([0-9a-f]{3})$/i,Bi=/^#?([0-9a-f]{6})$/i,Vi=new Set([`id`,`shape`,`size`,`position`,`rotation`,`color`,`parent`,`mirror`,`roundness`,`taper`,`border`]),Hi={blob:new Set([`roundness`,`taper`]),box:new Set([`roundness`]),cylinder:new Set([`taper`]),torus:new Set,frame:new Set([`border`])},Ui={blob:.5,box:.1},Wi=e=>{let t=Math.round(e*1e4)/1e4;return t===0?0:t},Gi=e=>typeof e==`number`&&Number.isFinite(e),Ki=e=>{let t=((e+180)%360+360)%360-180;return t===-180?180:t},qi=class extends Error{constructor(e,t){super(`${e}: ${t}`),this.path=e}};function Ji(e,t){if(e===void 0)return Fi;let n=typeof e==`string`?e.trim():``,r=zi.exec(n);if(r)return`#${r[1].toLowerCase().replace(/./g,e=>e+e)}`;let i=Bi.exec(n);if(i)return`#${i[1].toLowerCase()}`;throw new qi(t,`colour must be #rgb or #rrggbb, got ${JSON.stringify(e)}`)}function Yi(e,t,n,r){if(e===void 0&&n)return[...n];if(!Array.isArray(e)||e.length!==3||!e.every(Gi))throw new qi(t,`must be three numbers [x, y, z], got ${JSON.stringify(e)}`);return e.forEach((e,n)=>r(e,`${t}[${n}]`)),e.map(Wi)}function Xi(e,t,n,r,i){if(e===void 0)return n;if(!Gi(e)||e<r||e>i)throw new qi(t,`must be a number from ${r} to ${i}, got ${JSON.stringify(e)}`);return Wi(e)}function Zi(e,t){let n=`parts[${t}]`;if(!e||typeof e!=`object`||Array.isArray(e))throw new qi(n,`must be an object`);for(let t of Object.keys(e))if(!Vi.has(t))throw new qi(`${n}.${t}`,`unknown key (allowed: ${[...Vi].join(`, `)})`);if(typeof e.id!=`string`||!Ri.test(e.id))throw new qi(`${n}.id`,`must be 1-40 characters of a-z, 0-9 and -, starting with a letter or digit; got ${JSON.stringify(e.id)}`);let r=`parts[${e.id}]`;if(!Ni.includes(e.shape))throw new qi(`${r}.shape`,`must be one of ${Ni.join(`, `)}; got ${JSON.stringify(e.shape)}`);for(let t of[`roundness`,`taper`,`border`])if(e[t]!==void 0&&!Hi[e.shape].has(t))throw new qi(`${r}.${t}`,`does not apply to a ${e.shape}`);let i=Yi(e.size,`${r}.size`,null,(e,t)=>{if(e<Pi.minExtent||e>Pi.maxExtent)throw new qi(t,`extent must be ${Pi.minExtent}-${Pi.maxExtent} m, got ${e}`)}),a=Yi(e.position,`${r}.position`,[0,0,0],(e,t)=>{if(Math.abs(e)>Pi.maxOffset)throw new qi(t,`must be within ±${Pi.maxOffset} m, got ${e}`)}),o=Yi(e.rotation,`${r}.rotation`,[0,0,0],()=>{}).map(e=>Wi(Ki(e)));if(e.parent!==void 0&&(typeof e.parent!=`string`||!e.parent))throw new qi(`${r}.parent`,`must be another part's id`);if(e.mirror!==void 0&&typeof e.mirror!=`boolean`)throw new qi(`${r}.mirror`,`must be true or false`);let s={id:e.id,shape:e.shape,size:i,position:a,rotation:o,color:Ji(e.color,`${r}.color`)};if(e.parent!==void 0&&(s.parent=e.parent),e.mirror===!0&&(s.mirror=!0),Hi[e.shape].has(`roundness`)&&(s.roundness=Xi(e.roundness,`${r}.roundness`,Ui[e.shape],0,1)),Hi[e.shape].has(`taper`)&&(s.taper=Xi(e.taper,`${r}.taper`,0,-1,1)),e.shape===`frame`){let t=Math.min(i[0],i[1])/2,n=Wi(Math.min(i[0],i[1])*.15),a=e.border===void 0?n:e.border;if(!Gi(a)||a<=0||a>=t)throw new qi(`${r}.border`,`must be above 0 and below half the frame's smaller side (${Wi(t)} m), got ${JSON.stringify(e.border)}`);s.border=Wi(a)}if(e.shape===`torus`&&i[2]>=Math.min(i[0],i[1]))throw new qi(`${r}.size`,`a torus's tube (size[2]) must be thinner than its outer diameter`);return s}function Qi(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map,r=(e,i)=>{if(n.has(e.id))return n.get(e.id);if(!e.parent)return n.set(e.id,0),0;let a=t.get(e.parent);if(!a)throw new qi(`parts[${e.id}].parent`,`no part named "${e.parent}"`);if(i.has(a.id))throw new qi(`parts[${e.id}].parent`,`parents form a cycle`);let o=r(a,new Set([...i,e.id]))+1;if(o>Pi.maxDepth)throw new qi(`parts[${e.id}].parent`,`parent chain is deeper than ${Pi.maxDepth}`);return n.set(e.id,o),o};for(let t of e)r(t,new Set([t.id]));for(let n of e)if(n.mirror){for(let e=t.get(n.parent);e;e=t.get(e.parent))if(e.mirror)throw new qi(`parts[${n.id}].mirror`,`"${e.id}" above it is already mirrored, which copies this part too`)}return n}function $i(e){try{if(!e||typeof e!=`object`||Array.isArray(e))throw new qi(`recipe`,`must be an object with a parts array`);for(let t of Object.keys(e))if(t!==`version`&&t!==`parts`)throw new qi(`recipe.${t}`,`unknown key (allowed: version, parts)`);if(e.version!==void 0&&e.version!==Mi)throw new qi(`recipe.version`,`only version ${Mi} is understood, got ${JSON.stringify(e.version)}`);if(!Array.isArray(e.parts)||e.parts.length===0)throw new qi(`recipe.parts`,`must be a non-empty array`);let t=e.parts.map(Zi),n=new Set;for(let e of t){if(n.has(e.id))throw new qi(`parts[${e.id}].id`,`is used twice`);n.add(e.id)}Qi(t);let r={version:Mi,parts:t},i=oa(r).length;if(i>Pi.maxParts)throw new qi(`recipe.parts`,`expands to ${i} parts with mirrors; the limit is ${Pi.maxParts}`);return{ok:!0,recipe:r}}catch(e){if(e instanceof qi)return{ok:!1,error:e.message,path:e.path};throw e}}function ea(e,t){let n=$i(e);if(!n.ok)return n;if(!Array.isArray(t)||t.length===0)return{ok:!1,error:`edits: must be a non-empty array`,path:`edits`};let r=n.recipe.parts.map(e=>({...e})),i=new Set;for(let[e,n]of t.entries()){let t=`edits[${e}]`,a=n&&typeof n==`object`?[`set`,`add`,`remove`].filter(e=>e in n):[];if(a.length!==1)return{ok:!1,error:`${t}: must have exactly one of set, add, remove`,path:t};if(a[0]===`add`){r.push(n.add),i.add(n.add?.id);continue}let o=n[a[0]],s=r.findIndex(e=>e.id===o);if(s<0)return{ok:!1,error:`${t}.${a[0]}: no part named ${JSON.stringify(o)}`,path:`${t}.${a[0]}`};if(a[0]===`remove`){let e=new Set([o]);for(let t=!0;t;){t=!1;for(let n of r)n.parent&&e.has(n.parent)&&!e.has(n.id)&&(e.add(n.id),t=!0)}for(let t=r.length-1;t>=0;--t)e.has(r[t].id)&&r.splice(t,1);e.forEach(e=>i.add(e));continue}let{set:c,...l}=n;if(`id`in l)return{ok:!1,error:`${t}.id: rename by remove + add`,path:`${t}.id`};let u={...r[s],...l};if(l.parent===null&&delete u.parent,l.mirror===!1&&delete u.mirror,`shape`in l)for(let e of[`roundness`,`taper`,`border`])e in l||delete u[e];r[s]=u,i.add(o)}let a=$i({version:Mi,parts:r});return a.ok?{...a,changed:[...i]}:a}var ta=Math.PI/180;function na(e,t){let[n,r,i]=t.map(e=>e*ta),a=Math.cos(n),o=Math.sin(n),s=Math.cos(r),c=Math.sin(r),l=Math.cos(i),u=Math.sin(i),d=a*l,f=a*u,p=o*l,m=o*u;return[s*l,f+p*c,m-d*c,0,-s*u,d-m*c,p+f*c,0,c,-o*s,a*s,0,e[0],e[1],e[2],1]}function ra(e,t){let n=Array(16);for(let r=0;r<4;r+=1)for(let i=0;i<4;i+=1){let a=0;for(let n=0;n<4;n+=1)a+=e[n*4+i]*t[r*4+n];n[r*4+i]=a}return n}function ia(e,[t,n,r]){return[e[0]*t+e[4]*n+e[8]*r+e[12],e[1]*t+e[5]*n+e[9]*r+e[13],e[2]*t+e[6]*n+e[10]*r+e[14]]}function aa(e,t){let n={...e,id:`${e.id}${Ii}`,position:[Wi(-e.position[0]),e.position[1],e.position[2]],rotation:[e.rotation[0],Wi(-e.rotation[1]),Wi(-e.rotation[2])]};return delete n.mirror,t!==void 0&&(n.parent=t),n}function oa(e){let t=e.parts,n=new Map;for(let e of t){let t=e.parent??``;n.has(t)||n.set(t,[]),n.get(t).push(e)}let r=[],i=(e,t,a,o)=>{let s=o?aa(e,a):a===void 0?{...e}:{...e,parent:a},c=ra(t,na(s.position,s.rotation));r.push({...s,matrix:c});for(let t of n.get(e.id)??[])i(t,c,s.id,o);if(e.mirror&&!o){let o=aa(e,a),s=ra(t,na(o.position,o.rotation));r.push({...o,matrix:s});for(let t of n.get(e.id)??[])i(t,s,o.id,!0)}},a=na([0,0,0],[0,0,0]);for(let e of n.get(``)??[])i(e,a,void 0,!1);return r}function sa(e){let[t,n,r]=e.size.map(e=>e/2),i=[];for(let e of[-t,t])for(let t of[-n,n])for(let n of[-r,r])i.push([e,t,n]);return i}function ca(e){let t=[1/0,1/0,1/0],n=[-1/0,-1/0,-1/0];for(let r of oa(e))for(let e of sa(r)){let i=ia(r.matrix,e);for(let e=0;e<3;e+=1)t[e]=Math.min(t[e],i[e]),n[e]=Math.max(n[e],i[e])}return{min:t.map(Wi),max:n.map(Wi)}}function la(e){let{min:t,max:n}=ca(e);return{footprint:{width:Wi(Math.max(Pi.minExtent,2*Math.max(Math.abs(t[0]),Math.abs(n[0])))),depth:Wi(Math.max(Pi.minExtent,2*Math.max(Math.abs(t[2]),Math.abs(n[2]))))},height:Wi(Math.max(Li,n[1]))}}function ua(e,t=[],n=[]){if(!e||typeof e!=`object`)return!1;let r=new Map;for(let e of t)e&&typeof e.id==`string`&&r.set(e.id,e);let i=e=>n.some(t=>t&&typeof t==`object`&&t.id===e&&t.hidden===!0),a=new Set,o=e;for(;o&&typeof o==`object`;){let e=typeof o.id==`string`?o.id:null;if(e){if(a.has(e))break;a.add(e),r.has(e)&&(o=r.get(e))}if(o.hidden===!0)return!0;let t=o.attach&&typeof o.attach.characterId==`string`?o.attach.characterId:null;if(t&&i(t))return!0;let n=typeof o.parent==`string`?o.parent:null;if(!n)break;o=r.get(n)??null}return!1}function da(e){return{width:(e.footprint?.width??1)*(e.scaleX??1),height:(e.height??1)*(e.scaleY??1),depth:(e.footprint?.depth??1)*(e.scaleZ??1)}}var fa=`light`,pa=.35,ma=Object.freeze({point:Object.freeze({type:`point`,color:`#ffc787`,intensity:5,range:0,angle:30,softness:.3,shadow:!1,flicker:0,aim:null}),spot:Object.freeze({type:`spot`,color:`#ffe0b2`,intensity:40,range:0,angle:30,softness:.3,shadow:!0,flicker:0,aim:null})}),ha=Object.freeze({color:`#ff9a3c`,intensity:4,halo:1.5}),ga={footprint:{width:0,depth:0},height:0},_a=Object.freeze({kind:fa,label:`Light`,group:`Lights`,...ga,color:`#ffd38a`}),va=Object.freeze([Object.freeze({kind:`point-light`,renderer:fa,label:`Point light`,group:`Lights`,...ga,color:`#ffc787`,placeY:1.5,light:ma.point}),Object.freeze({kind:`spot-light`,renderer:fa,label:`Spot light`,group:`Lights`,...ga,color:`#ffe0b2`,placeY:3,light:ma.spot})]);function ya(e){return e===`light`?_a:va.find(t=>t.kind===e)??null}var ba=(e,t,n)=>Math.min(n,Math.max(t,e)),xa=(e,t,n,r)=>{let i=typeof e==`number`||typeof e==`string`?Number(e):NaN;return Number.isFinite(i)?ba(i,n,r):t},Sa=(e,t)=>a(e)??t,Ca=e=>{if(!e||typeof e!=`object`)return null;let t={x:Number(e.x),y:Number(e.y),z:Number(e.z)};return Object.values(t).every(Number.isFinite)?t:null};function wa(e,t=`point`){let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{},r=n.type===`spot`||n.type===`point`?n.type:t===`spot`?`spot`:`point`,i=ma[r];return{type:r,color:Sa(n.color,i.color),intensity:xa(n.intensity,i.intensity,0,1e3),range:xa(n.range,i.range,0,100),angle:xa(n.angle,i.angle,1,89),softness:xa(n.softness,i.softness,0,1),shadow:typeof n.shadow==`boolean`?n.shadow:i.shadow,flicker:xa(n.flicker,i.flicker,0,1),aim:Ca(n.aim)}}function Ta(e){return!e||typeof e!=`object`||Array.isArray(e)?null:{color:Sa(e.color,ha.color),intensity:xa(e.intensity,ha.intensity,0,20),halo:xa(e.halo,ha.halo,0,4)}}function Ea(e,t){let n={};(t.renderer??t.kind)===`light`&&(n.light=wa(e.light,e.light?.type??t.light?.type));let r=Ta(e.glow);return r&&(n.glow=r),e.showOnlyInTake===!0&&(n.showOnlyInTake=!0),n}function Da(e,t){let n={};if(t?.light&&typeof t.light==`object`&&e.renderer===`light`){let r=wa({...e.light,...t.light},e.light?.type);JSON.stringify(r)!==JSON.stringify(e.light)&&(n.light=r)}if(t?.glow!==void 0){let r=t.glow===null?null:Ta({...e.glow??{},...t.glow});JSON.stringify(r)!==JSON.stringify(e.glow??null)&&(n.glow=r)}return n}function Oa(e){let t=2166136261;for(let n of String(e))t^=n.codePointAt(0),t=Math.imul(t,16777619)>>>0;return t}function ka(e,t){let n=Math.imul(e^Math.imul(t,668265261),374761393)>>>0;return n=Math.imul(n^n>>>15,2246822507)>>>0,n=Math.imul(n^n>>>13,3266489909)>>>0,((n^n>>>16)>>>0)/2147483647-1}function Aa(e,t){let n=Math.floor(t),r=t-n,i=r*r*(3-2*r);return ka(e,n)*(1-i)+ka(e,n+1)*i}function ja(e,t,n,r=24){let i=xa(n,0,0,1);if(!(i>0))return 1;let a=Oa(e),o=(Number(t)||0)/(r>0?r:24),s=.55*Aa(a,o*7)+.3*Aa(a^2654435769,o*15)+.15*Aa(a^2135587861,o*31);return Math.max(0,1+i*.65*s)}function Ma(e,t=e=>e?.hidden===!0){let n=(e??[]).filter(e=>e?.renderer===`light`&&e.light?.shadow===!0&&!t(e));return{casting:n.slice(0,2).map(e=>e.id),capped:n.slice(2).map(e=>e.id)}}function Na(e){let t=new Set(Ma(e).capped);return t.size?e.map(e=>t.has(e.id)?{...e,light:{...e.light,shadow:!1},shadowCapped:!0}:e):e}function Pa(e,t=null,n=void 0){let{casting:r,capped:i}=Ma(e,n);return i.filter(e=>!t||t.includes(e)).slice(0,4).map(e=>({code:`SHADOW_CAP`,id:e,message:`Renders without a shadow: only 2 lights cast shadows (${r.join(`, `)}).`.slice(0,120)}))}function Fa(e,t){let n=Pa(t,e?.affectedIds??[]);return n.length?{...e,warnings:[...e.warnings??[],...n]}:e}var Ia=[],La=`XYZ`,Ra=Math.PI/180,za=g(`object.position`),Ba=g(`object.rotation`),Va=g(`object.scale`),Ha=(e,t,n)=>Math.min(n,Math.max(t,e)),Ua=e=>{let t=Ba.min.y,n=Ba.max.y-t;return((e-t)%n+n)%n+t},Wa=(e,t)=>Number((t>0?Math.round(e/t)*t:e).toFixed(4)),Ga=[{kind:`cube`,label:`Cube`,group:`Primitives`,footprint:{width:1,depth:1},height:1,color:o},{kind:`sphere`,label:`Sphere`,group:`Primitives`,footprint:{width:1,depth:1},height:1,color:o},{kind:`capsule`,label:`Capsule`,group:`Primitives`,footprint:{width:.7,depth:.7},height:1.4,color:o},{kind:`cylinder`,label:`Cylinder`,group:`Primitives`,footprint:{width:1,depth:1},height:1,color:o},{kind:`cone`,label:`Cone`,group:`Primitives`,footprint:{width:1,depth:1},height:1,color:o},{kind:`plane`,label:`Plane`,group:`Primitives`,footprint:{width:2,depth:2},height:0,color:o},{kind:`chair`,label:`Chair`,group:`Set pieces`,footprint:{width:.6,depth:.6},height:1.15,supportY:.495,color:`#b9855d`},{kind:`car`,label:`Car`,group:`Set pieces`,footprint:{width:1.8,depth:4.5},height:1.4,color:`#d98770`},{kind:`small-plane`,label:`Plane (aircraft)`,group:`Set pieces`,footprint:{width:3.4,depth:3.6},height:1.4,color:`#7896a4`}],Ka=`cutout`,qa=.02,Ja=1.8,Ya=.05,Xa=.02,Za=50,Qa=`#ffffff`,$a={kind:Ka,label:`Cutout`,group:`Images`,footprint:{width:1,depth:qa},height:Ja,color:Qa},eo=`mesh`,to={kind:eo,label:`Model`,group:`Models`,footprint:{width:1,depth:1},height:1,color:`#c49a6c`},no=`sculpt`,ro={kind:no,label:`Sculpt`,group:`Sculpts`,footprint:{width:1,depth:1},height:1,color:`#c2c6c8`},io=`empty`,ao=.3,oo={kind:io,label:`Empty`,group:`Primitives`,footprint:{width:0,depth:0},height:0,color:`#ffffff`};function so(e){return e?.renderer===`empty`||e?.renderer===`light`}var co=Object.freeze([oo,...Ga,...va,r]);function lo(e){return e===`cutout`?$a:e===`mesh`?to:e===`sculpt`?ro:e===`empty`?oo:e===r.kind?r:Ga.find(t=>t.kind===e)??ya(e)}function uo(e){if(!e||typeof e!=`object`)return 0;let t=lo(e.renderer),n=Number(e.supportY??t?.supportY??e.height??t?.height);return Number.isFinite(n)?n:0}var fo=e=>Math.max(Ya,e),po=e=>Ha(e,Xa,Za),mo=.1,ho=10,go=e=>{let t=Number(e);return Number.isFinite(t)?Ha(t,mo,ho):1};function _o(e,t,n=1){return{width:fo(e)*po(t)*go(n),depth:qa}}var vo=Object.freeze([`hips`,`spine`,`chest`,`neck`,`head`,`leftShoulder`,`leftElbow`,`leftHand`,`rightShoulder`,`rightElbow`,`rightHand`,`leftKnee`,`leftFoot`,`rightKnee`,`rightFoot`]);function F(e){if(e===null)return null;if(!e||typeof e!=`object`||Array.isArray(e))return;let{characterId:t,bone:n}=e;if(!(typeof t!=`string`||!t)){if(n==null)return{characterId:t,bone:null};if(!(typeof n!=`string`||!vo.includes(n)))return{characterId:t,bone:n}}}function yo(e){return e.startsWith(`object:`)?e.slice(7):null}function bo(e,t=[],n={}){if(e===`cutout`||e===`mesh`||e===`sculpt`)return null;let r=lo(e);if(!r)return null;let i=new Set(t.map(e=>e.name)),a=r.label;for(let e=2;i.has(a);e+=1)a=`${r.label} ${e}`;let o=new Set(t.map(e=>e.id)),s=e;for(let t=2;o.has(s);t+=1)s=`${e}-${t}`;return{id:s,name:a,renderer:r.renderer??e,x:Do.x(Number(n.x)||0),y:r.placeY??0,z:Do.z(Number(n.z)||0),rot:Do.rot(Number(n.rot)||0),rotX:0,rotZ:0,scaleX:1,scaleY:1,scaleZ:1,path:null,color:r.color,parent:null,attach:null,hidden:!1,footprint:{...r.footprint},height:r.height,supportY:Number.isFinite(r.supportY)?r.supportY:r.height,...Ea({},r),...m({renderer:e})}}function xo({assetId:e,aspect:t=1,height:n=Ja,name:r=``,sourceAssetId:i,matteAssetId:a,matteScale:o,stretch:s}={},c=[],l={}){if(typeof e!=`string`||!e)return null;let u=po(Number(t)),d=fo(Number(n));if(!Number.isFinite(u)||!Number.isFinite(d))return null;let f=go(s),p=typeof r==`string`&&r.trim()?r.trim():$a.label,m=new Set(c.map(e=>e.name)),h=p;for(let e=2;m.has(h);e+=1)h=`${p} ${e}`;let g=new Set(c.map(e=>e.id)),_=Ka;for(let e=2;g.has(_);e+=1)_=`${Ka}-${e}`;return{id:_,name:h,renderer:Ka,x:Do.x(Number(l.x)||0),y:0,z:Do.z(Number(l.z)||0),rot:Do.rot(Number(l.rot)||0),rotX:0,rotZ:0,scaleX:1,scaleY:1,scaleZ:1,path:null,color:Qa,parent:null,attach:null,hidden:!1,assetId:e,sourceAssetId:typeof i==`string`&&i?i:e,matteAssetId:typeof a==`string`?a:``,matteScale:Number.isFinite(Number(o))?Number(o):1,aspect:u,stretch:f,footprint:_o(d,u,f),height:d}}function So(e){return{assetId:e.assetId,aspect:e.aspect,height:e.height,name:e.name,sourceAssetId:e.sourceAssetId,matteAssetId:e.matteAssetId,matteScale:e.matteScale,stretch:e.stretch}}function Co({assetId:e,height:t=1,footprint:n,name:r=``,clay:i=!1}={},a=[],o={}){if(typeof e!=`string`||!e)return null;let s=Math.max(Vn,Number(t));if(!Number.isFinite(s))return null;let c=Number(n?.width),l=Number(n?.depth),u=Number.isFinite(c)&&c>0&&Number.isFinite(l)&&l>0?{width:c,depth:l}:{width:s,depth:s},d=typeof r==`string`&&r.trim()?r.trim():to.label,f=new Set(a.map(e=>e.name)),p=d;for(let e=2;f.has(p);e+=1)p=`${d} ${e}`;let m=new Set(a.map(e=>e.id)),h=eo;for(let e=2;m.has(h);e+=1)h=`${eo}-${e}`;return{id:h,name:p,renderer:eo,x:Do.x(Number(o.x)||0),y:0,z:Do.z(Number(o.z)||0),rot:Ua(Number(o.rot)||0),rotX:0,rotZ:0,scaleX:1,scaleY:1,scaleZ:1,path:null,color:to.color,parent:null,attach:null,hidden:!1,assetId:e,clay:i===!0,footprint:u,height:s}}function wo(e){return{assetId:e.assetId,height:e.height,footprint:e.footprint,name:e.name,clay:e.clay===!0}}function To({recipe:e,name:t=``}={},n=[],r={}){let i=$i(e);if(!i.ok)return{error:i.error};let{footprint:a,height:o}=la(i.recipe),s=typeof t==`string`&&t.trim()?t.trim():ro.label,c=new Set(n.map(e=>e.name)),l=s;for(let e=2;c.has(l);e+=1)l=`${s} ${e}`;let u=new Set(n.map(e=>e.id)),d=no;for(let e=2;u.has(d);e+=1)d=`${no}-${e}`;return{object:{id:d,name:l,renderer:no,x:Do.x(Number(r.x)||0),y:Do.y(Number(r.y)||0),z:Do.z(Number(r.z)||0),rot:Ua(Number(r.rot)||0),rotX:0,rotZ:0,scaleX:1,scaleY:1,scaleZ:1,path:null,color:ro.color,parent:null,attach:null,hidden:!1,recipe:i.recipe,footprint:a,height:o}}}function Eo(e){return{recipe:e.recipe,name:e.name}}var Do={x:e=>Ha(e,za.min.x,za.max.x),y:e=>Ha(e,za.min.y,za.max.y),z:e=>Ha(e,za.min.z,za.max.z),rot:e=>Ua(e),rotX:e=>Ua(e),rotZ:e=>Ua(e),scaleX:e=>Ha(e,Va.min.x,Va.max.x),scaleY:e=>Ha(e,Va.min.y,Va.max.y),scaleZ:e=>Ha(e,Va.min.z,Va.max.z)};function Oo(e){let t=[...Object.keys(Do),`name`,`color`,`hidden`,`opacity`,`path`,`glow`];return e?.renderer===`light`&&t.push(`light`),e?.renderer===`cutout`&&t.push(`assetId`,`sourceAssetId`,`matteAssetId`,`matteScale`,`height`,`aspect`,`width`,`stretch`),e?.renderer===`mesh`&&t.push(`clay`,`assetId`,`height`),e?.renderer===`sculpt`&&t.push(`recipe`),t}function ko(e,t){let n=[],r=new Set([t]),i=[t];for(;i.length;){let t=[];for(let a of e)a.parent&&i.includes(a.parent)&&!r.has(a.id)&&(r.add(a.id),n.push(a),t.push(a.id));i=t}return n}var Ao=e=>{let t=Math.round(e*1e9)/1e9;return t===0?0:t},jo=e=>Ao(Ua(Ao(e))),Mo=e=>new le().setFromEuler(new ie((e.rotX??0)*Ra,(e.rot??0)*Ra,(e.rotZ??0)*Ra,La));function No(e,t){let n=new ie().setFromQuaternion(e,La),r=[t.rotX??0,t.rot??0,t.rotZ??0],i=[[n.x/Ra,n.y/Ra,n.z/Ra],[n.x/Ra+180,180-n.y/Ra,n.z/Ra+180]].map(e=>e.map(jo)),a=e=>e.reduce((e,t,n)=>e+Math.abs(Ua(t-r[n])),0),[o,s,c]=a(i[1])<a(i[0])?i[1]:i[0];return{rotX:o,rot:s,rotZ:c}}function Po(e,t){if((e.rotX??0)===(t.rotX??0)&&(e.rot??0)===(t.rot??0)&&(e.rotZ??0)===(t.rotZ??0))return null;let n=Mo(t).multiply(Mo(e).invert());if(n.w<0&&n.set(-n.x,-n.y,-n.z,-n.w),n.w>1-1e-15)return null;let{x:r,y:i,z:a,w:o}=n;return{quaternion:n,matrix:[1-2*(i*i+a*a),2*(r*i-a*o),2*(r*a+i*o),2*(r*i+a*o),1-2*(r*r+a*a),2*(i*a-r*o),2*(r*a-i*o),2*(i*a+r*o),1-2*(r*r+i*i)],yaw:jo(2*Math.atan2(i,o)/Ra),from:{x:e.x??0,y:e.y??0,z:e.z??0},to:{x:t.x??0,y:t.y??0,z:t.z??0}}}function Fo(e,t){let{matrix:n,from:r,to:i}=t,a=e.x-r.x,o=(e.y??0)-r.y,s=e.z-r.z;return{x:Ao(i.x+n[0]*a+n[1]*o+n[2]*s),y:Ao(i.y+n[3]*a+n[4]*o+n[5]*s),z:Ao(i.z+n[6]*a+n[7]*o+n[8]*s)}}function Io(e,t){let n=new Set,r=[t];for(;r.length;){let i=[];for(let a of e)!a.parent||!r.includes(a.parent)||a.id===t||n.has(a.id)||a.attach||(n.add(a.id),i.push(a.id));r=i}return n}function Lo(e,t,n){let r=!1,i=e.find(e=>e.id===t),a=i?ko(e,t):[],o={x:0,y:0,z:0};if(i)for(let e of[`x`,`y`,`z`]){if(n[e]===void 0)continue;let t=Number(n[e]);Number.isFinite(t)&&(o[e]=Do[e](t)-i[e])}let s=new Set(a.map(e=>e.id)),c=o.x||o.y||o.z,l=null,u=null;if(i&&!i.attach&&a.length){let r={x:(i.x??0)+o.x,y:(i.y??0)+o.y,z:(i.z??0)+o.z};for(let e of[`rotX`,`rot`,`rotZ`]){let t=n[e]===void 0?NaN:Number(n[e]);r[e]=Number.isFinite(t)?Do[e](t):i[e]??0}l=Po(i,r),l&&(u=Io(e,t))}let d=e.map(e=>{if(e.id!==t){if(!c&&!l||!s.has(e.id))return e;if(l&&u.has(e.id)){let t={},n=Fo({x:e.x,y:e.y,z:e.z},l);for(let r of[`x`,`y`,`z`]){let i=Do[r](n[r]);i!==(e[r]??0)&&(t[r]=i)}let i=No(new le().multiplyQuaternions(l.quaternion,Mo(e)),e);for(let n of[`rotX`,`rot`,`rotZ`])i[n]!==(e[n]??0)&&(t[n]=i[n]);if(e.path&&c){let n=ai(e.path,o);JSON.stringify(n??null)!==JSON.stringify(e.path??null)&&(t.path=n)}return Object.keys(t).length?(r=!0,{...e,...t}):e}if(!c)return e;let t={},n={x:0,y:0,z:0};for(let r of[`x`,`y`,`z`]){if(!o[r])continue;let i=Do[r](e[r]+o[r]);i!==e[r]&&(t[r]=i,n[r]=i-e[r])}return e.path&&(n.x||n.y||n.z)&&(t.path=ai(e.path,n)),Object.keys(t).length?(r=!0,{...e,...t}):e}let i={};for(let[t,r]of Object.entries(Do)){if(n[t]===void 0)continue;let a=Number(n[t]);if(!Number.isFinite(a))continue;let o=r(a);o!==e[t]&&(i[t]=o)}for(let t of[`name`,`color`])typeof n[t]!=`string`||!n[t]||n[t]===e[t]||(i[t]=n[t]);if(typeof n.hidden==`boolean`&&n.hidden!==(e.hidden===!0)&&(i.hidden=n.hidden),n.opacity!==void 0&&Number.isFinite(Number(n.opacity))){let t=Uo(n.opacity);t!==Uo(e.opacity)&&(i.opacity=t)}if(n.path!==void 0){let t=n.path===null?null:ii(n.path);JSON.stringify(t??null)!==JSON.stringify(e.path??null)&&(i.path=t)}else if(e.path&&c){let t=ai(e.path,o);JSON.stringify(t??null)!==JSON.stringify(e.path??null)&&(i.path=t)}if(e.renderer===`cutout`){for(let t of[`assetId`,`sourceAssetId`,`matteAssetId`])typeof n[t]==`string`&&n[t]&&n[t]!==e[t]&&(i[t]=n[t]);if(Number.isFinite(Number(n.matteScale))){let t=Ha(Number(n.matteScale),.01,1);t!==e.matteScale&&(i.matteScale=t)}let t=n.height===void 0?NaN:fo(Number(n.height)),r=n.aspect===void 0?NaN:po(Number(n.aspect)),a=Number.isFinite(t)?t:e.height,o=Number.isFinite(r)?r:e.aspect,s=go(e.stretch),c=n.width!==void 0&&Number.isFinite(Number(n.width))?go(Number(n.width)/(a*o)):n.stretch===void 0?s:go(n.stretch);(a!==e.height||o!==e.aspect||c!==s)&&(i.height=a,i.aspect=o,i.stretch=c,i.footprint=_o(a,o,c))}if(e.renderer===`mesh`){typeof n.clay==`boolean`&&n.clay!==(e.clay===!0)&&(i.clay=n.clay),typeof n.assetId==`string`&&n.assetId&&n.assetId!==e.assetId&&(i.assetId=n.assetId);let t=n.height===void 0?NaN:Math.max(Vn,Number(n.height));if(Number.isFinite(t)&&t!==e.height){i.height=t;let n=Number(e.height);if(n>0){let r=t/n;i.footprint={width:Number(e.footprint?.width)*r,depth:Number(e.footprint?.depth)*r}}}}if(e.renderer===`sculpt`&&n.recipe!==void 0){let t=$i(n.recipe);t.ok&&JSON.stringify(t.recipe)!==JSON.stringify(e.recipe)&&(i.recipe=t.recipe,Object.assign(i,la(t.recipe)))}return Object.assign(i,Da(e,n)),Object.keys(i).length?(r=!0,{...e,...i}):e});return r?d:e}function Ro(e,t,n){if(t===n||n!==null&&!e.some(e=>e.id===n)||n!==null&&ko(e,t).some(e=>e.id===n))return e;let r=!1,i=e.map(e=>{if(e.id!==t)return e;let i=n??null,a=i!==null&&(e.attach??null)!==null;return(e.parent??null)===i&&!a?e:(r=!0,a?{...e,parent:i,attach:null}:{...e,parent:i})});return r?i:e}function zo(e,t,n){let r=F(n);if(r===void 0||!e.some(e=>e.id===t))return e;let i=!1,a=e.map(e=>{if(e.id!==t)return e;let n=e.attach??null;if(r===null)return n===null?e:(i=!0,{...e,attach:null});let a=n!==null&&n.characterId===r.characterId&&(n.bone??null)===r.bone,o=(e.parent??null)!==null;return a&&!o?e:(i=!0,o?{...e,attach:r,parent:null}:{...e,attach:r})});return i?a:e}function Bo(e,t){let n=e.filter(e=>e.id!==t);return n.length===e.length?e:n.map(e=>e.parent===t?{...e,parent:null}:e)}function Vo(e,t){let n=e.find(e=>e.id===t);if(!n||n.attach)return null;let r=bo(io,e,{x:n.x,z:n.z});if(!r)return null;let i=new Set(e.map(e=>e.name)),a=`${n.name} Group`,o=a;for(let e=2;i.has(o);e+=1)o=`${a} ${e}`;let s={...r,name:o,y:Do.y(n.y??0),parent:n.parent??null};return{objects:e.flatMap(e=>e.id===t?[s,{...e,parent:s.id}]:[e]),emptyId:s.id}}var Ho=.05;function Uo(e){let t=Number(e);return Number.isFinite(t)?Math.min(1,Math.max(Ho,t)):1}function Wo(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=lo(e.renderer);if(!t||typeof e.id!=`string`||!e.id)return null;let n=t.kind===Ka,r=t.kind===eo,i=t.kind===`sculpt`?$i(e.recipe):null;if(i&&!i.ok||n&&(typeof e.assetId!=`string`||!e.assetId)||r&&(typeof e.assetId!=`string`||!e.assetId))return null;let a=e.scaleX===void 0&&e.scaleY===void 0&&e.scaleZ===void 0?Number(e.scale):NaN,o=Number.isFinite(a)?a:1,s=(e,t)=>{let n=e===void 0?t:Number(e);return Number.isFinite(n)?n:t},c=Number(e.footprint?.width),l=Number(e.footprint?.depth),u=Number.isFinite(c)&&c>0&&Number.isFinite(l)&&l>0?{width:c,depth:l}:{...t.footprint};return{id:e.id,name:typeof e.name==`string`&&e.name?e.name:t.label,renderer:t.renderer??t.kind,x:Do.x(s(e.x,0)),y:Do.y(s(e.y,0)),z:Do.z(s(e.z,0)),rot:Do.rot(s(e.rot,0)),rotX:Do.rotX(s(e.rotX,0)),rotZ:Do.rotZ(s(e.rotZ,0)),scaleX:Do.scaleX(s(e.scaleX,o)),scaleY:Do.scaleY(s(e.scaleY,o)),scaleZ:Do.scaleZ(s(e.scaleZ,o)),path:ii(e.path),color:typeof e.color==`string`&&e.color?e.color:t.color,parent:typeof e.parent==`string`&&e.parent?e.parent:null,attach:F(e.attach)??null,hidden:e.hidden===!0,...Uo(e.opacity)<1?{opacity:Uo(e.opacity)}:{},...n?{assetId:e.assetId,sourceAssetId:typeof e.sourceAssetId==`string`&&e.sourceAssetId?e.sourceAssetId:e.assetId,matteAssetId:typeof e.matteAssetId==`string`?e.matteAssetId:``,matteScale:Ha(s(e.matteScale,1),.01,1),aspect:po(s(e.aspect,1)),stretch:go(s(e.stretch,1)),footprint:_o(s(e.height,Ja),s(e.aspect,1),s(e.stretch,1)),height:fo(s(e.height,Ja))}:i?{recipe:i.recipe,...la(i.recipe)}:r?{assetId:e.assetId,clay:e.clay===!0,footprint:u,height:Math.max(Vn,s(e.height,t.height))}:{footprint:{...t.footprint},height:t.height,supportY:Number.isFinite(t.supportY)?t.supportY:t.height},...Ea(e,t),...m(e)}}var Go=[`x`,`y`,`z`],Ko={x:`rotX`,y:`rot`,z:`rotZ`},qo={x:`scaleX`,y:`scaleY`,z:`scaleZ`},Jo=.05,Yo=5,Xo=.05;function Zo(e,t,n,r=Jo){if(!Go.includes(t)||!Number.isFinite(n))return null;let i=Wa((e[t]??0)+n,r);return{[t]:i}}function Qo(e,t,n,r=Yo){let i=Ko[t];return!i||!Number.isFinite(n)?null:{[i]:Ua(Wa((e[i]??0)+n,r))}}function $o(e,t,n,r=Xo){if(!Number.isFinite(n)||n<=0)return null;let i=t===null?Go:Go.includes(t)?[t]:[];if(!i.length)return null;let a={};for(let t of i){let i=qo[t];a[i]=Do[i](Wa((e[i]??1)*n,r))}return a}function es(e,t,n,r=Yo){if(!Number.isFinite(n)||!t)return null;let i=Wa(n,r),a=new le().setFromEuler(new ie((e.rotX??0)*Ra,(e.rot??0)*Ra,(e.rotZ??0)*Ra,La));a.premultiply(new le().setFromAxisAngle(t,i*Ra));let o=new ie().setFromQuaternion(a,La);return{rotX:Ua(Wa(o.x/Ra,0)),rot:Ua(Wa(o.y/Ra,0)),rotZ:Ua(Wa(o.z/Ra,0))}}var ts=1e-4;function ns(e){let t=da(e),n=(e.rot??0)*Ra,r=Math.abs(Math.cos(n)),i=Math.abs(Math.sin(n)),a=(t.width*r+t.depth*i)/2,o=(t.width*i+t.depth*r)/2,s=e.x??0,c=e.z??0,l=e.y??0;return{minX:s-a,maxX:s+a,minZ:c-o,maxZ:c+o,baseY:l,topY:l+t.height}}function rs(e,t,n=[]){if(so(e))return null;let r=ns(e),i=0;for(let e of t){if(so(e)||ua(e,t,n))continue;let a=ns(e);r.minX>=a.maxX-ts||a.minX>=r.maxX-ts||r.minZ>=a.maxZ-ts||a.minZ>=r.maxZ-ts||a.topY>r.baseY+ts||a.topY>i&&(i=a.topY)}return i===r.baseY?null:{y:i}}function is(e,t,n=2.6){let r=e.x-Math.sin(t)*n,i=e.z-Math.cos(t)*n;return{x:Wa(Do.x(r),Jo),z:Wa(Do.z(i),Jo)}}var I=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]],L=(e,t)=>[e[0]-t[0],e[1]-t[1],e[2]-t[2]],R=(e,t)=>[e[0]*t,e[1]*t,e[2]*t],z=(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],as=(e,t)=>[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]],B=e=>Math.hypot(e[0],e[1],e[2]),os=(e,t)=>B(L(e,t));function V(e){let t=B(e);return t>1e-12?[e[0]/t,e[1]/t,e[2]/t]:[0,0,0]}var H=(e,t,n)=>Math.min(n,Math.max(t,e)),ss=e=>e*Math.PI/180,cs=e=>e*180/Math.PI,ls=()=>[[1,0,0],[0,1,0],[0,0,1]];function U(e,t){let n=[[0,0,0],[0,0,0],[0,0,0]];for(let r=0;r<3;r++)for(let i=0;i<3;i++)n[r][i]=e[r][0]*t[0][i]+e[r][1]*t[1][i]+e[r][2]*t[2][i];return n}var W=(e,t)=>[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]],G=e=>[[e[0][0],e[1][0],e[2][0]],[e[0][1],e[1][1],e[2][1]],[e[0][2],e[1][2],e[2][2]]],us=(e,t,n)=>[[e[0],t[0],n[0]],[e[1],t[1],n[1]],[e[2],t[2],n[2]]];function ds(e){let t=ss(e),n=Math.cos(t),r=Math.sin(t);return[[1,0,0],[0,n,-r],[0,r,n]]}function fs(e){let t=ss(e),n=Math.cos(t),r=Math.sin(t);return[[n,0,r],[0,1,0],[-r,0,n]]}function ps(e){let t=ss(e),n=Math.cos(t),r=Math.sin(t);return[[n,-r,0],[r,n,0],[0,0,1]]}function ms(e,t){let[n,r,i]=V(e),a=ss(t),o=Math.cos(a),s=Math.sin(a),c=1-o;return[[o+n*n*c,n*r*c-i*s,n*i*c+r*s],[r*n*c+i*s,o+r*r*c,r*i*c-n*s],[i*n*c-r*s,i*r*c+n*s,o+i*i*c]]}function hs(e,t){let n=V(e),r=L(t,R(n,z(t,n)));return B(r)<1e-9&&(r=L([0,1,0],R(n,n[1])),B(r)<1e-9&&(r=L([1,0,0],R(n,n[0])))),r=V(r),us(n,r,as(n,r))}var gs=(e,t,n,r)=>U(hs(n,r),G(hs(e,t)));function _s(e){let t=e[0][0],n=e[1][1],r=e[2][2],i=t+n+r,a,o,s,c;if(i>0){let t=.5/Math.sqrt(i+1);c=.25/t,a=(e[2][1]-e[1][2])*t,o=(e[0][2]-e[2][0])*t,s=(e[1][0]-e[0][1])*t}else if(t>n&&t>r){let i=2*Math.sqrt(1+t-n-r);c=(e[2][1]-e[1][2])/i,a=.25*i,o=(e[0][1]+e[1][0])/i,s=(e[0][2]+e[2][0])/i}else if(n>r){let i=2*Math.sqrt(1+n-t-r);c=(e[0][2]-e[2][0])/i,a=(e[0][1]+e[1][0])/i,o=.25*i,s=(e[1][2]+e[2][1])/i}else{let i=2*Math.sqrt(1+r-t-n);c=(e[1][0]-e[0][1])/i,a=(e[0][2]+e[2][0])/i,o=(e[1][2]+e[2][1])/i,s=.25*i}let l=Math.hypot(a,o,s,c);return[a/l,o/l,s/l,c/l]}function vs([e,t,n,r]){return[[1-2*(t*t+n*n),2*(e*t-n*r),2*(e*n+t*r)],[2*(e*t+n*r),1-2*(e*e+n*n),2*(t*n-e*r)],[2*(e*n-t*r),2*(t*n+e*r),1-2*(e*e+t*t)]]}var ys=(e,t)=>cs(Math.acos(H(z(V(e),V(t)),-1,1))),bs=.01;function xs(e){let t=e.bones,n=t.map(e=>e.name),r=Object.fromEntries(n.map((e,t)=>[e,t])),i=t.map(e=>e.parent),a=n.map(()=>[]);i.forEach((e,t)=>{e>=0&&a[e].push(t)});let o=n.map((e,t)=>{let n=[],r=[t];for(;r.length;){let e=r.shift();n.push(e),r.unshift(...a[e])}return n}),s=t.map(e=>e.localPos.map(e=>e*bs)),c=t.map(e=>vs(e.localQuat)),l=t.map(e=>e.worldPos.map(e=>e*bs)),u=t.map(e=>vs(e.worldQuat)),d=e.landmarks,f=r.Head,p=e=>W(G(u[f]),L(e.map(e=>e*bs),l[f])),m={mouth:p(d.mouth),headCentre:p(d.headEllipsoid.centre),headRadii:d.headEllipsoid.radii.map(e=>e*bs),sole:{ball:(d.sole?.ball??0)*bs,tip:(d.sole?.tip??0)*bs}};return{model:e.model,names:n,index:r,parent:i,children:a,subtree:o,restLocalPos:s,restLocalRot:c,restWorldPos:l,restWorldRot:u,landmarks:m}}function Ss(e){return{P:e.restWorldPos.map(e=>e.slice()),R:e.restWorldRot.map(e=>e.map(e=>e.slice()))}}function Cs(e,t,n,r,i){for(let a of e.subtree[n])t.P[a]=I(r,W(i,L(t.P[a],r))),t.R[a]=U(i,t.R[a])}function ws(e,t){return{quats:e.names.map((n,r)=>{let i=e.parent[r];return _s(i<0?t.R[r]:U(G(t.R[i]),t.R[r]))}),hips:t.P[e.index.Hips].slice()}}function Ts(e,t,n){let r=[],i=[];for(let a of e.subtree[e.index.Hips]){let o=e.parent[a],s=vs(t[a]);if(o<0){i[a]=s,r[a]=n.slice();continue}i[a]=U(i[o],s),r[a]=I(r[o],W(i[o],e.restLocalPos[a]))}return{P:r,R:i}}var Es=(e,t,n)=>I(e.P[t],W(e.R[t],n)),Ds=(e,t,n,r)=>W(t.R[n],W(G(e.restWorldRot[n]),r)),Os=(e,t,n)=>Math.acos(H((n*n-e*e-t*t)/(2*e*t),-1,1))*180/Math.PI,ks=(e,t,n)=>Math.sqrt(e*e+t*t+2*e*t*Math.cos(n*Math.PI/180));function As(e,t,n,r=145,i=150){let a=ks(e,t,r);if(n>=a)return n;let o=a-ks(e,t,i);return n>a-2*o?n+(a-n)*(a-n)/(4*o):a-o}function js(e,t,n,r,i,a=145,o=150){let s=ks(n,r,a),c=B(L(t,e));if(c>=s)return t;let l=As(n,r,c,a,o),u=R(i,ks(n,r,o)),d=I(e,u),f=L(t,d),p=B(f)>1e-9?V(f):R(i,-1),m=z(p,u);return I(d,R(p,-m+Math.sqrt(Math.max(0,m*m-z(u,u)+l*l))))}var Ms=(e,t)=>Ds(e,t,e.index.Spine2??e.index.Hips,[0,0,-1]),Ns=(e,t)=>Ds(e,t,e.index.Hips,[0,1,0]),Ps=(e,t,n)=>Os(e,t,As(e,t,ks(e,t,n)));function Fs(e,t,n,r,[i,a,o]=[`Arm`,`ForeArm`,`Hand`]){let s=t.P[e.index[`${n}${i}`]],c=t.P[e.index[`${n}${a}`]],l=t.P[e.index[`${n}${o}`]];return Os(B(L(c,s)),B(L(l,c)),B(L(r,s)))}function Is(e,t,n){let r=e.index[`${n}Arm`],i=e.index[`${n}ForeArm`],a=L(t.P[i],t.P[r]),o=L(t.P[e.index[`${n}Hand`]],t.P[i]),s=Math.acos(H(z(V(a),V(o)),-1,1))*180/Math.PI,c=as(a,o);s>145&&B(c)>1e-12&&Cs(e,t,i,t.P[i].slice(),ms(c,Ps(B(a),B(o),s)-s))}var Ls={elbow:[145,150,Ms],knee:[150,160,Ns]};function Rs(e,t,n,r,i,a,o,s,c=null){let l=t.P[n],u=t.P[r],d=t.P[i],f=B(L(u,l)),p=B(L(d,u)),m=Ls[c],h=m?js(l,a,f,p,m[2](e,t),m[0],m[1]):a,g=h===a?0:B(L(h,a)),_=L(h,l),v=B(_),y=R(_,1/Math.max(v,1e-9)),b=H(v,Math.abs(f-p)+1e-4,(f+p)*.9995),x=(f*f-p*p+b*b)/(2*b),S=Math.sqrt(Math.max(f*f-x*x,0)),C=V(L(o,R(y,z(o,y)))),w=I(l,I(R(y,x),R(C,S))),T=Ds(e,t,n,s);Cs(e,t,n,l.slice(),gs(L(u,l),T,L(w,l),C));let E=Ds(e,t,r,s),D=I(l,R(y,b));return Cs(e,t,r,t.P[r].slice(),gs(L(t.P[i],t.P[r]),E,L(D,t.P[r]),C)),g||v-b}function zs(e,t,n,r,i){let a=e.index[`${n}Foot`],o=e.index[`${n}ToeBase`],s=L(e.restWorldPos[o],e.restWorldPos[a]),c=W(fs(r),W(ds(i),s));Cs(e,t,a,t.P[a].slice(),gs(L(t.P[o],t.P[a]),Ds(e,t,a,[0,1,0]),c,[0,1,0]));let l=e.index[`${n}Toe_End`];if(i>0&&l!==void 0){let n=L(t.P[l],t.P[o]),r=[n[0],0,n[2]];B(r)>1e-6&&Cs(e,t,o,t.P[o].slice(),gs(n,[0,1,0],r,[0,1,0]))}}function Bs(e,t,n){let r=e.index[`${n}Hand`],i=e.index[`${n}HandMiddle1`],a=V(L(t.P[i],t.P[r])),o=L(t.P[e.index[`${n}HandIndex1`]],t.P[e.index[`${n}HandPinky1`]]);return o=V(L(o,R(a,z(o,a)))),{d:a,l:o,n:as(a,o)}}function Vs(e,t,n,r){let i=e.index[`${n}Arm`],a=e.index[`${n}Hand`],o=ms(L(t.P[a],t.P[i]),r);Cs(e,t,i,t.P[i].slice(),o),Cs(e,t,a,t.P[a].slice(),G(o))}function Hs(e,t,n,r,i){if(!r&&!i)return;let a=e.index[`${n}Hand`],o=e.index[`${n}ForeArm`],s=V(L(t.P[a],t.P[o])),{l:c}=Bs(e,t,n),l=V(L(c,R(s,z(c,s))));Cs(e,t,a,t.P[a].slice(),ms(l,H(i,-70,70))),Cs(e,t,a,t.P[a].slice(),ms(s,H(r,-85,85)))}var Us={relaxed:{Index:[12,18,10],Middle:[15,20,12],Ring:[18,22,12],Pinky:[20,24,14],Thumb:[15,10,8]},fist:{Index:[80,95,60],Middle:[85,95,60],Ring:[85,95,60],Pinky:[85,95,60],Thumb:[45,30,35]},grip:{Index:[55,60,35],Middle:[60,62,35],Ring:[62,62,35],Pinky:[65,62,35],Thumb:[40,20,20]},cigarette:{Index:[8,10,6],Middle:[10,12,8],Ring:[60,75,45],Pinky:[65,80,45],Thumb:[35,25,20]},point:{Index:[0,0,0],Middle:[80,95,60],Ring:[85,95,60],Pinky:[85,95,60],Thumb:[40,30,30]}};function Ws(e,t,n,r){let i=Us.relaxed,a=n===`Left`?-1:1,o=(e,t)=>i[e][t]+Object.entries(r??{}).reduce((n,[r,a])=>n+(a||0)*((Us[r]?.[e]?.[t]??i[e][t])-i[e][t]),0);for(let r of[`Index`,`Middle`,`Ring`,`Pinky`,`Thumb`])for(let i=0;i<3;i++){let s=e.index[`${n}Hand${r}${i+1}`];if(s===void 0)continue;let{l:c,d:l}=Bs(e,t,n),u=r===`Thumb`&&i===0?l:c;Cs(e,t,s,t.P[s].slice(),ms(u,a*o(r,i)))}}var Gs=(e,t)=>[e[3]*t[0]+e[0]*t[3]+e[1]*t[2]-e[2]*t[1],e[3]*t[1]-e[0]*t[2]+e[1]*t[3]+e[2]*t[0],e[3]*t[2]+e[0]*t[1]-e[1]*t[0]+e[2]*t[3],e[3]*t[3]-e[0]*t[0]-e[1]*t[1]-e[2]*t[2]],Ks=e=>[-e[0],-e[1],-e[2],e[3]],qs=(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3];function Js(e){let t=Math.hypot(e[0],e[1],e[2],e[3]);return t>1e-12?[e[0]/t,e[1]/t,e[2]/t,e[3]/t]:[0,0,0,1]}function Ys(e){let t=e[3]<0?-1:1,n=e[0]*t,r=e[1]*t,i=e[2]*t,a=e[3]*t,o=Math.hypot(n,r,i);if(o<1e-12)return[2*n,2*r,2*i];let s=2*Math.atan2(o,a)/o;return[n*s,r*s,i*s]}function Xs(e){let t=Math.hypot(e[0],e[1],e[2]);if(t<1e-12)return Js([e[0]/2,e[1]/2,e[2]/2,1]);let n=Math.sin(t/2)/t;return[e[0]*n,e[1]*n,e[2]*n,Math.cos(t/2)]}var Zs=(e,t)=>Gs(Gs(e,[t[0],t[1],t[2],0]),Ks(e)).slice(0,3);function Qs(e,t){let n=1+e[0]*t[0]+e[1]*t[1]+e[2]*t[2];if(n>1e-9)return Js([e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0],n]);let r=Math.abs(e[0])<.9?[0,e[2],-e[1]]:[-e[2],0,e[0]],i=Math.hypot(...r);return[r[0]/i,r[1]/i,r[2]/i,0]}var $s=(e,t)=>{let n=t*Math.PI/360,r=Math.sin(n);return[e[0]*r,e[1]*r,e[2]*r,Math.cos(n)]},ec=(e,t,n)=>Gs(e,Xs(Ys(Gs(Ks(e),t)).map(e=>e*n))),tc={"y-bot-tpose":{model:`y-bot-tpose`,step:.015,unit:`mm`,grids:JSON.parse(`{"LeftToeBase":{"min":[-0.1083,-0.0343,-0.0724],"dims":[14,12,11],"data":"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"},"LeftFoot":{"min":[-0.1062,-0.0914,-0.1519],"dims":[15,22,17],"data":"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R0xTW2RaU0xJRkU/ODQzNDc8Q0pSXFJKQz89PDYxKigpKzM6QktWSkE7NjQzMSslICAkKjM8RVBFOzItKyorJyEcGRsjLjdBTEA1LCckJCYlIBoXGR4pNT9KPzQrJCEhIiIgHBgXHSYzP0tANiwlIiAgIiIeGxoeKDI/TEQ5MColIyMkJSIeHSAmND5MSUA2MCspKCkpJSIfISozQU5QRj84MzAwMCsnJCAkLDdCUFhPSEE9OjkzLCgkISUuOENRYlpSTEdEOjErJiQhJS44RFFrY1xXTEE3LicjIR8iKzRCT3ZvaVZKPjMqIx8dHR4oMj9Mf29iVUg9MikhHRsbHiYxPUp/cGNVST0yKiMeHRsgJzI+S39yZVhLPzUsJiIhJCctOENOf3VpXVBGPTQvKigpLTQ+SFN/e29iWE5GPDUwLi8zOkJMV39/dmpgVkxEPTk3ODtDS1Nef39+c2heVU1HQ0FCRktTW2VtaWReW1hSTEhISUxRVVtkbGNcWFRSUEpCPzw+QUZNU1xlWlROSklIQz02NDM4PkRMVV5UTEVCQEA+ODMtLS42PEdQWU5FPzo4ODk1LyooKjA2QktWSkI7NTMyNDMuKSYnLDY9SlRJQDgzMDAxMS4qJyUrMz1IVUpCOTIwLy8xMC0oKSsyPUhTTkU9NjMxMjMzMCwsLTQ9SVRSSUI8OTc2Nzc0MC4xNj9KVllQSkQ/PT09OTYyMDM4QUxYYVlRTEhFRUA6NjMwNDpDTVhpYlxVUk9GPjg1MjE0OEJNWXNrZWFWS0M7NTEvLjI2QElWfXZwX1NIPzcxLSwrLTM9R1R/dmpdUkY9NS8rKiorMjpGUX94al5SRz42MCwrKy8yPUdTf3lsYFRKQTo0MDEvMjlAS1Z/fXBlWlBIQTw3Njc6QEhRXH9/dWpfV09HQT07PEBGTVZgf398cWdfVk9IRENER0xUXWV/f395cGZeVlFOTE1RVVtjbXZxbGlnY11XVFNTVlpgZm11bmdiYF5bVU9LSUlMUVdeZm9lX1pWVFVQSkVBQUJIT1hfaV9XUU5NTExFQDw6PEJJUVtkWlFLSEVGR0I9ODY4PERMV2BXTkhDQUFCQTs3NDU6QUpUXlRNRUFAP0BAPDg2Nzk+SFJdV01GQj8+P0A/Ozc3OT9IUl1ZUEpGQkFBQkI/Ozo7QUhSXl5WT0lFREVFRUI+PT9ESlNfY1xUT0xKSUtHREE/QEZMVWFqY1xXVVJRTUhFQkBCRk9XYnJrZmFdWlJLRkNBP0JHT1die3RvamJXT0hCPz49QERLVF5/f3RoXlRLRT87Ozo8QEhSXX9/cmddUktDPTk4OTs/R1Fbf39zZ11TS0M+Ozo6PUJJUlx/f3VpX1ZNR0I+PT9BRUtVX39/eG5kWlNNSEZERUdLUltkf399c2phWlNOSklKTVFZYWp/f395cWlhWlVRUFBTWF5mcH9/f395b2hhXVlYWVtfZm52"},"RightToeBase":{"min":[-0.0781,-0.0343,-0.0724],"dims":[14,12,11],"data":"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"},"RightFoot":{"min":[-0.0907,-0.0914,-0.1519],"dims":[15,22,17],"data":"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VltgZ3BnX1pWUk9MSktJSElNUVhgaF9XUk1KR0NBQEA/QUVKUVljWFBJRUJAPDg3OTo7PkRLVF1US0M+Ozk3MjEzNTY7QEdQWlBGPzg1NDMvLCswNTg+Rk9ZTUU7NTIwLy0pKS0yOT9GTlhMQjk0MS4uLSkoKzA4QElRW05DPDQvLS0tKSgqMTlDTVVeUUY9NzIuLiwoJygwOEFNWGNWSkI6NTIuKiYjJy43Q0xYY1tSSEE8My0nIiAjKzZBTFhkY1hQR0AyKiQfHCAoMz5LV2NpYVdGPDAoIh0WHSQxQElVYnJnXUc6LycgGhQaJC8+R1RheG1kSDwwJx8ZFhkjLT1IU2B/dWxLPjIpIBsZGiEsPkhUYH9pW05CNi0lIB0eJi9BS1Vjf21gUkg9MysnJiksNUZQW2d/c2ZZTkM9NjIyMzo/SVNhbX95bWFXTUZBPj9BRUtTXGl0f391amFYUk1MTE5SV15mdn55c25qZ2RhX2BeXV5hZmpyeXFsZmJeW1hWVVVWVlhdYmt1aWRdWVZUUE1NTk1OUlZdZW5kXlZSUE1KRkVHSElNUVhgal9WUUxIR0VAP0BCRUhOVF1mXFNMSENCQT07Oj1DRk1SW2RaUUlDQD4+Ozg6O0FHTFNbZVhQR0I/PT07ODc5PkVOVV5nWFBJQj48PDs4Nzk/RU5YYmxcUUtDQD08Ozc2Nz1FTldibV5WT0lDQD04NDI1PENMV2FtZFxTTEhBOjUwLzE4QEtWYW1rYVpQRz44Mi4qLjU9SFNhbHJqYFFFPTYvKikqMTtGUV9qe3FoUUY8My4pKCgtOUNPXml/aV1RRTwzLSgmJyw3Qk5daX9sX1RJPjUuKCcoLjdBTV1pf25iVkxAODEtKy4xOkRQX2t/c2ZaUUY+NjQxNDdASFRkb394bGFWTkZBPDw+QkhRW2l0f35zaF9XT0pHR0hNU1picXt/f3txaGBZVlJSVVleZWx2f39+eXZzb2xra2lpa21wdnx/fXZxbWtoZGJhY2JjZWlvdn91b2llY2FdWlpbW1xfZGlweW9pZF9bW1hUU1RWV1teZGt0amNeWVZVU1BNTlBTV1thaXJmX1pWUlBQTElJTFFVWmBncGZdVlFPTU1KSEdKTlNaYGdwZVxVUE5MTElHRkdMU1lhanJlXlZQTEtLSUdGSExTWmNtdmdfWFJOTUtJRkVGS1FZY213amFcVlFOS0VDQUNIT1hhbXduZ19bVU5IQ0A9QEVNVV9td3VtZVtTS0VAPDg8QkpSXWx2fHNsWlJJQz05Nzc+RVBbanR/enJbUUhCOzc2NjtETlhpc39yZ1tRSEE7NzU1OkNMV2hyf3NpXlJJQzw5NTg8QkxXaHJ/dmtgVUxGPzo5Oz9ET1lqdH96b2VbUUpEQEBCRUpTXW54f390amBXUExJSElNUlljc31/f3pxaGBaVVFRU1VbYmt6f39/f3lxaWNeXFxdYWZtdH1/"},"RightLeg":{"min":[-0.1112,-0.1017,-0.1376],"dims":[16,39,18],"data":"f399dG1nYV1bWltcYWRrcXt/f391bGRfWFRRUFJTVltiaXN8f3lvZVxXUExISEpKTlNbYmx1fnRpX1dQSURBQUJDR05UXGZwem9lWlJLQz89Ojw+QklPV2JsdGpgV05HPzs5Njg5PkVLVF5pb2VbU0xFPTg3NDQ3O0NJUlxnbGJYTUY+Ojg2MzM2O0NIUVxnaV5USkE6NjM0NTU4PERKU11jZltQRz44MS4xNDg7P0ZMUVdeY1lPRDs0LCsuMTU6P0RITVNaYVZLQTgxKisuMDU5PEFGTFFZYFZKPzktKSgqLTE1OkBES1FYXlVIPjcsKSopLzA1Oj9ES1FZX1RIQDctKisrLTE2PEFGTFNbX1NJQTUwLS4tMzQ5PkNJT1VeYVVKQzoyMDAxNTg9QkdNUlpiY1hPRTs3NjU2Oj1BRkpRVl5mZVtSSD87Ozo7PkFFSE5UW2NraV5VS0VBQD9AQURHS1BVXmdybGJYUElGREJDREZJTFFYYWt2b2ZcU01LR0ZFRkhKTlNaZG55c2lfV1JNSkhHSElMT1VdZ3F7dmtjWlVPS0lISElMUVZganJ+d21kXVZQTUpISElNUVhia3R/dmxlXVVQTElISElNUVhianV/cmlhWlNOSkhHR0lMUVlia3Z/b2VdVk9KSEZFRUhLUFhia3Z/aWFYUktGREJCQkVITVZganV/Zl1VTEdEQD8+P0JFSlReaXN/Y1lRSkJAPDw7PD9CSFFbZ3J+YlhPR0E8Ozo5OjtBRlBbZXF8YVdPSEE8Ojk5Oj1AR1FbZXB8Y1hQSUE9Ozo6PD5BSFJcZXB9ZFpSTEVAPz49P0FFSlReZ3J9aF5WUEtGRURFRUhLUVlia3Z/bWRdV1FOTE1NT09SWGBncHt/dGxkX1pXWFZXWVlcYWdud39/fXRtaGVjYWJjZGVma3B3f39/f311bGNcV1NQT09SVlphaXB6f3ZtYlpUTUlGRUVHTVFYYWhyem9mXFJKREA8Ozs/REhQWWJrdWlfVExDPDg2MzU3OkFIU1xmb2VbUUY9NjItLS8wNDtDTVdhamBXTUI6Mi0rKCorLzc/SVReZltRRz83LyomJSUpLTQ9R1JcYlhNQjoyLSolJCQoLTM8R1JbX1RKPzUtKSUmJiYqLjU+R1BXXFFGOzIpIiAjJiotMjg/RUpSWk5DOC8mHhwhIycsMTU6QEZO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cmZdUUg/ODMyLzEyNj1FTldgb2NaT0Q7NC8sKisvN0A+RVBZbGFVSkA2LicjIyUoMTc4QEpUaFxRRTswJyEgHyIlKjI2PUdQY1hNQTctIRwdHCAkKTE0PURPX1RJPjMpHhkcGx8kKTE0PUVPXFFGOzEnHRoZGx8kKTI1P0dRWk5EOS8mHRkeHCAlKi82QEhSWE5COi8nHRkbHiIrLDE4QkpTVktBNy4mHR4hJCgsLjY7RE1WVUxBNy8oHxwgIygtMjc+R1BZWExCOTAoIx8lJiszNj1CS1RdWU5FOzMrIyImKi80OkBHT1dhXVJJPjUtJyUqLTM5P0ZMVFxkYFVLQjkxKyktMTc9REpRWWFqY1lPRT02Li4wNTtBSE9WX2ZvZ11USUE7NjI2OT5FTFNbY2t0a2FYT0Y/Ojc6PUJIUVpfZ295bmVcU0tFPz0/QUZMVF1janN8cWliWFBJQ0FDRUpOV2BlbXZ/dWxnXVRMR0VER0tSW2Vmb3h/eG9pX1dQSkdISU1UXGZncHp/eW9mW1NKRUJDRUhQWWNncXp/d21kWVBKQ0FBQ0hNVV5lb3h/dWthVk1GQD08QERLUVpjbHR+cWheU0pDPDg7PUBHT1dha3F6b2VbUkdAOTU4OT5ES1NcZmx2bGJZTkU9NjQzNjpAR09XYWlyal9XTUM8NjIxNDc9RExUX2dwaV5VTEM8NTIwMjU7QkpSXWVuaV9VS0M8NTIwMjU6QklRXGVval9WTUU9ODUzNDc9Q0tTXmZwbWNZUUlBPDk3ODtAR05WYWlzcmheVk9JQ0E/P0JHTlVdZW94eG5mXldSTkxKS01RV15kbXV/f39+dm5pY19cXF1eYWZsc3x/f393bmZgWlZTUlRVWF5ka3V9f3tvZ15ZUk1KSkxNUFdcZG53f3VrYVhTS0dDQ0VGSVBWXmhwe3FnXFRNRkE9PT9AREtRWGBpeW5kWVBIPzo3Nzg7QkpJUVhjdWpeVElBODMzMDM2PUNETFVecGVaT0U8NC4uLjA0OD1DSlNcbGFWS0E4LyorKy4yNzxCSFJaamBUSD43LCcqKi4yNzxCSFFaZl1SRjw0LCgoKi4yNzxCSVNcZFtPRDs0KyssKy81OD9DSlRdYllPRDowLCcqLTE1OkBFTFdfYFZMQzo0LC0vMTM6PENIT1liYVZNRDszLSouMjY7QEZLUlxlYllORz03MS4zNDlAQ0pPVl9oY1lQRz84MTE0OD1CR01TWmNsZV5US0I8NTM4O0JGTFJYX2dvamBXTUU/OTc6P0RKUFdeZW11bmRaUUlDPjw+Q0hOVltianJ6cmheVU1HQUFDR0xSWGBnb3d/dmxkWlNMSEZIS09VXGVqc3x/enFnX1hRTUxOT1RZX2hud39/fXVsZFxWUVBRU1ZcYmtxeX9/f3lwaWBaVVRUVVhfZ29ye39/f3xzaWNcV1VVV1pgaHF0fH9/f3pwZ2BYU1FRU1ddZW5zfH9/f3huZV1WUk9QUVVaYWlxen9/f3VrYllTTkxMTlJYXmZud39/fXNnX1ZPSkhJS09VW2NrdXx/enBmXFRNR0ZGSEtRV19ncHh/eG1jWlFLRENCRElOVFtja3R+dmtiWVBKREBCQkVLUVhganJ8dGphWFBJREA/QUVIT1ZfZ3B6dGpgWE9JREA/QENJT1ZeZ3B6dGtiWVFLRkNCQ0ZKUVhgaHF7d25lXVVPSkZERUlMVFtja3R+fHJqYlpUUE1MTE9TWmBocHl/f3hwaGJdWFZVVlhaYWdud39/"},"LeftLeg":{"min":[-0.1131,-0.1017,-0.1376],"dims":[16,39,18],"data":"f399dW5pYl5cW11eYWVscnx/f393bWVgWlVTUlNVWF5ja3R9f3pwZl5YUU1KSUtMUFZcY213f3VrYFhSS0ZDQkRFSVBVXWdwenFmXFNNRUA/PD4/Q0pQV19peG5jWE9HPzk2Njg7QUlJUFhidWldU0lBODIyMDI2PUJES1VecGVaTkQ8My0tLS8zNzxCSVNba2FVS0E3LikrKi0yNjtBSFFaaWBTSD42LCcpKS0xNjtBSFFaZV1RRjw0KygnKS0xNj1BSFJbY1tORDszKyorKi41Nz5DSlRcYlhOQzowKycpLDA0OUBETFZfYFZMQzozKywuMDI5PENHTlhhYFZMQzszLSouMTU6P0ZKUlxkYllNRjw3MS0yNDk/Q0pOVV9nY1hQRz84MTAzNzxBR01TWmNrZV1TS0E8NTI3OkFFS1FXXmdval9WTUU+ODY6PkNKUFZdZG11bWNaUEhCPTs+QkdOVVtiaXF5cWdeVExHQkBCRktRWF9mbnZ/dWtjWlNMR0ZISk5VW2Rqcnt/eXBnXldRTEtNT1NYX2htdn9/fXRsY1xVUU9RUlVbYWpweH9/f3hwaGBZVFNTVVdeZm9ye39/f3tzaWJbV1RVVlpfZ3Bze39/f3pwZ19XU1BRUlZcZG1yfH9/f3dtZF1WUU5PUFRaYGlwen9/f3VqYVlTTUtMTlFXXmZud39/fHJnXlZOSkdISk5UW2JqdXx/enBmXFNNR0VGR0pRV15mb3h/d21jWVFKREJBREhNU1pia3R9dWthWFBIQ0BBQURKUFhgaXJ7c2pgV09IQz8/QERITlZeZnB5c2lgV09IQ0A/QENITlZdZ3B5dGphWVFKRUNBQkVJUFdfaHF6d21kXFVOSUVERUlMVFpia3R9e3JpYVpUT01LTE5TWWBnb3h/f3dvaGJcV1ZUVVdaYWZudn5/f352bWRdWFRRUFFTWFtianN7f3duY1xVTkpHRkhJTlJZYmpze3BnXVRMRkE+PT1ARUpRWmNsdmthVU1FPjk1NTU4PEJKVF1ncmZcUEg/ODMxLjEyNj1FTVZfb2NZTkQ7NC4rKSsuNj89RU9YbGFVST82LiciIiQoMDc4P0pTZ1xRRDowJiAfHiElKTE1PEZQY1hNQTYsIBsdGx8jKDA0PUNPX1RJPjMpHhkbGh4jKDE0PEROXFFGOzEnHBkYGh8jKDE0PkZP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cGVbUUY+NzIuLTAxNTxETlhhamBXTkM6Mi4sKCssMDdASlReZltSSEA4MCsmJiYpLjU9SFJcY1hOQzoyLiomJSUpLTQ9R1JdYFVKQDYuKSUmJycqLzU+R1FXXFFHPDMqIyAkJysuMzlARUtTWk5EOTAnHh0iIygtMjY7QUdPV0xBNy0nHRodISguLjM4P0VMV0xBNSskGxccHyMnLDE2PkRNVUo+MykiGx0bIiMrLDE3PUROVUtAMywjHB4dICQsLzM6P0dQVks/NCwiHR4gIyctMTY9QkpTWE1ANi8lJCIkJyswNTpARk1XW05EOjAqJigpLDA0OD5ES1NdXVFGPjQuLi0uMDM3O0BHUFliX1RKQTgyMzEyNDY5PkNKU15pY1hOQz04NjU1Njg7PUVMV2JuZltSSUE+OTg3ODk8P0dQWmVxaV5US0Q/PDo5OTs+QUlRXWZybGJXTkhCPjs6OTs+Q0tVYGl0bmJZUEhDPjw6Ojs+RE1WX2t2bGJbUUhDPjs6OTs+RU1VYGt4aV5WT0ZAPTo5OTk+RU5WYm16ZVpRSkI9Ojg3Nzo8RE5WYm16YVVNRj45NjQ0NDg7Q0xVYWx5XFNJQjo1MzExMTI4PUlTX2t3Wk9FPjcxLy4tLjE0PUVSXWl2WE1DPDQvLSwrLC4zPEZQXGh0WE1DOzQvLCsrLC4zO0dQXGd0WE5EPDQwLSwsLi80PUdQW2h0W1BFPzg0MTAxMzI4QUpTXmp1X1VLRD06ODg5Ojs/R09YYm14ZVpSTEdDQ0FCREVITlVeaHJ8bWNaVFFOTU1OUE9TVl1kb3d/dWxlX1xZWVlbXFxfYmdud39/f399dG5oYl5bWlxdYWVrcnt/f392bWVfWVRRUVJUV1xiaXN8f3lvZV1YUUxJSEpLTlRbYm12fnRqYFdRSkVCQUNESE9UXGdwenBlW1JMRD8+Oz0+QklPV2JsdGthV05IQDs6Nzk6PkZMVF9pcGZcU0xGPjk3NTQ3PERKUl1obWNYTkY/Ozk3NDQ3PENJUl1naV9USkI6NjM1NTY4PURKU11kZlxQRz44MS8xNTk7QEdNUlheY1pPRDs1LSwvMjU6P0RJTlRbYVZLQjoyKysuLjY6PEFGTFJZYVdLQDkuKikqLTE2OkFETFFZX1VJPzctKisqLzE1Oj9FS1FZYFVIQDguKywsLjI2PEFHTVRbYFRJQTYwLi8uNDQ8P0RJT1ZeYVVLRDozMTAyNTk+Q0hOU1piY1hPRTw4NzY3Oj5CRktRV15mZltTSUA8Ozs8P0JFSU5VW2RsaV5VTEVCQUBAQkVHS1FWX2hybGNZUEpHRENERUdJTVJZYmx2cGZdVE5LSEdGR0hLTlNbZW96dGlfWFJNS0lISElNUFVdZ3F8d2xjW1ZQTEpJSEpNUVdganN+d25lXlZRTUpJSUpNUlhia3R/d2xmXVZRTUpJSEpNUllianV/c2piW1ROS0lHSEpNUVpjbHd/b2ZdV1BKSEZGRkhLUVljbHd/a2FZUUxHRUNCQ0ZITldganZ/Z11VTUhEQUA/QENFS1ReaXR/ZFpSS0NBPTw8PT9DSVFcZ3J+YlhQR0I9Ozs6OzxBR1FcZnF9YlhPSUI9Ozo6Oz1ASFBcZXF8Y1lRSkI9PDs7PD9CSVJcZXB9ZVpTTEZBPz8/QEJFS1VeaHN+aV9XUUtGRURFRUhMUlpibHZ/bmVdV1JPTU5NT09SWWBocXt/dWxlX1tYWFZYWlpcYmhvd39/fXVuaWZjYmJjZWVnbHB3f39/"},"LeftUpLeg":{"min":[-0.144,-0.1331,-0.1498],"dims":[20,41,22],"data":"f39/f399dnRyb25wcXN4fX9/f39/f39/f397dG5qaGVlZmdqb3V4fH9/f39/f394dG1mYmBdXF5gY2ZpbHF3fX9/f396cm1lX1pZVVVXV1lbXmJnbXN7f39/dWxmYFhUUk9NTk5QUlVYXmRrdH1/e3FoYVtTT0xHRUZFRklNUVdcY212fnVtZF5XT0pHQD0/Pj9DR0tRVl1ncXhvZ19ZUkxGQjs4OTg6PUJGTFJZYm1zamJbVE5IQz44NTI1NTg+Q0lPV19ob2ZeV1FLRkE8ODAvMjI1O0FGTVNcZWxjW1VPSURAOzgyKywxMzhBRUxSW2VqYVlTTUdCQDk1LyopLzE2PURLUltjZ19XUkxIQT45NDItLC0zOD1FS1JaY2heWFJLSEE8PDYzLCcpMDY8REtVXGRmXlZSTEhDPzs0MC4qKTE2PERMVFxlZl5YU0xJQj49NTUzLi4yO0BHT1VdZmlgWFVOSUVBQDc2MSorMDk9Rk1YYGlqYlpXUU1GQUA5NTMvLTM4P0ZPV2BpbWRfWVJNSERCPjo2MzQ5P0RMU1tia25mZFtUUU1IRT48NjMzOUBETVZeZ3ByamdfV1RNSUdBPzo2OT1BSE9YYGhxdW1lYVtVUExIREE8Oj5ESU5VW2RsdXhwaWVfWlRPS0dEPj9BR0tRWmJqcnp9dG1oZl5XVE5LRkNGSE1QV19mbnd/f3hwa2tjXVVRTkpISU5VWFxla3N7f397dG5wZl5YU09MTFBUWV1kbXN6f39/fndwcmlhWlVST1BUWWBkanJ5f39/f35+dGxlX1lWVFNXWl9ka3J4f39/f396eG9nX1lVUVFUWFtjaHB3f39/f39+dnNqYVtVUU1NUFJYXmdveH9/f39/enJwZl5YUk1JSk1QVV1kbHR8f39/f3hwbWRcVU9KR0ZKTVNbYmpxen9/f392bm1jW1ROSkZGSU5TWmFob3d/f39/dm5tY1tVT0tIR0lPVFthaG92fn9/f3dwb2VcVlBMSklLUVZcYWhvdn5/f396cnFnX1lTT01NTlNYXmNob3d+f39/fnZ1a2JdWFRSUVNXXWNmanF4f39/f397c2xpY15ZWFhbX2JpaW90e39/f39/f3lzb2llYmFiY2ZrcW90en5/f39/f39/eXVxbmxrbG1wcXN3en9/f39/f39/f399end2dnd4enp8f39/f39/f39/f39+eHNsaGZjY2VlaG5yeH9/f39/f39/dnJqYl5dWlhbW19kaG91en9/f39/d25qYlpWU1BQUlJWXGBjaW51fX9/e3BnY1tTTUxJR0pKTlFUWF5janN9f3ZrYVtUS0dEQUBDQURHSU5TWWFrdntxZlxUTkdBPzo3OTk7PkBFS1FZY251bGNYUEpBPTk0MTIxMjY6PkRKU11pbmRcVE1EPzg0LSorKiwvNDg/Rk5ZY2lfVk9HQDs1MCwmIyUnKzA2O0JKVV9lWlFKRD04My4sIiEkIyctMzk/R1FcYldNR0E8NjMtKCQcHyQlKzE3PkZQW2BUTEQ/OjQvLiYjGxohIygwNj5HT1ddUkpEPjkzLismJiAfICUrLzc+RU5XXVNJRD04My4vKSUgGBokKC83QUhPWVxRSUQ+ODYuLyYiIhgaJSgwNz9HUFlcUkpFPjk0Ly4qJycgICYuNDtCSFJaXlNMRkA7OTMyKSUkGxwkKTA5Q0tUXl9VTUhEPzozMSsnJyEeJysyO0NLVF5iWFNMRD88NTQxLSghJSwyOT9HTVZgY1pZUEZBPzg4MCwpJCQtMTdASVNbZGdeXFJKRD87OTMvLiosMjQ7Q0xUXWdqYFlTTUhFQDw2NCssMDc8Q0lRWWFpbWNcWFNORkE9OTcyMDQ7PkVOVl9ncHJoYFlbUktGQDs4NTg8QURKUlpianR1bGRdYFhRSUI+PDo7QUdNU1hgZ3B4dm9nYGZbUkpFQTw+QkhLUVlhaW93f3pzamNoXlVNR0NBQkZNUlhfZm52fn98cnVrYVlSTEhFRUlOU1heZ211fH9/eG5uZVtTTEhDQ0ZLUFdcZGx0fH9/f3NqaV9WT0hDPz5CRUtTW2NsdX5/f39vZmVbUUtFPzw8P0JIUVhhaHJ6f39/bGNjWE5IQTw4NzxARU5VXWVtdn9/f2phYldNR0A8Nzc7QEVNVVtia3R9f39qYWNYTUdBOzk4O0FHTVNaYmpye39/bGNkWlBJQj08OzxDSE5UWmJpcXp/f29mZ1xTS0VBQD5BRkxRVVxianF7f39yamthV1BLRkNERktQV1hdZGtzfH9/eG9nYF5WUU1MTE5SV19cYWhtdn9/f351bmdlXllWVVdZXGBnY2dtc3p/f39/fXVuaGViYWFiY2VlZ2pudHl/f39/f39+d3JubGxsbW5wcHByd3t/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U0xHRkRERUZKUFlibnl/f39/fnVsZF5YU1BPTU1OUVhgaXR/f39/d29pY19dWllbXF9laW94f39/f39/d21mYFpVUU9PUVJWW19mb3h/f39/eXBlXVZRS0lFRUhITFJXXWdweX9/e3JoXlVQSUM/PTw/P0NKT1ZfaXN9f3dtY1dPR0I8NzU1ODg8Q0hPWmRtd39yaF5SSkM9NTEuLjIxNT5CSlRfaHN+b2VbTkY9ODEsKSksLDE6PUZQW2Vve2xiWEtDOjUtKSYlKSkuNjtDTVljbXlsYVdMQTo1KycnIycnLDU5QkpXYWt4a2BXSkE4NCsnJyMnJys1OEFMWGFsd21iWE1COjYtKSglJSktNjpDTFhibHluZFtPRTw5MCwsKSksMTg9RlBbZW95cmheU0lBPTUxMS0wMTU9Q0pSXmZudXNpY1lOR0M7Nzc0NDc7QkdPV1tianFvZF5WUExGQj8+PDw/P0FJUVhYX2dubGFYUEpGQj87OTY2Ojo+RUtSVl1lbWpeVExFQj88ODUyMjU3PEFITlRcYmppXlNKREE+OjYzLi4yODtARk9UXGJqaV1SSkRAPTo1NC8tMTg7QUdOU1thampfVExGQj48NjUwLjA5PEJIUFRbYmprYFZNRkRAPDg2MDE1OT5ESlJXXGJtbWJZUUtHQj47OjY0OT1BRktVV11kbXBlX1hSS0VCPz46Oj9AREpQWFdeZnByZ11WWFFNR0VDQEBBRElQTlNZYGlydGphWWBaVE5KSEVGSEpOVVBVWmJrdXduZF5ZVlRST05LSkpMTU9TV15mb3l6cGhhXVpYVlNRT05OT1BTVlphaXJ8f3VuZ2JfXFlWU1FRUVJTVVhdZG13f394cGlkX1pWU1FQUlNUVVdbYWhwe39/dm5nYlxjW1VRUFFUV11lW2FocXt/fnVsZV5ZXVVOSEdKSk9WXFleZW53f310a2NcVlZPSURCQ0ZJTlRVW2Fqc35+dGtiWlVSSURAPT9BREhOUlhfZ3B7f3VsY1xUUEdCPjs5PUBFS09WXGNueH94bmReVk9HQDs3Ojs+Q0pNU1pibHh/e3FoYVlRR0M8ODg6PkJJTFNaYmx3f392bmZeVU1GQT48PEBDSkxSWWJteX9/fXRsYlpSS0ZDQEFDRk1OU1pkbnp/f398c2phWlJNSUdISk1TUVZdZ3J9f39/f3xza2NcWFNRUFBVWlZbY2x2f39/f39/fHRtZ2BdXFlbXmNeY2pyfH9/f39/eXRtaWdlZGZmaW90eX9/f39/f39/d3BrZGBeXFpcXWBlanB4f39/f39/eHBoY1tXVVJRU1RXXWNocHl/f39/fHFpYFtVT05LSUxLT1VbYWlzfX9/f3dtYlpVTUhGQkJERUlPVVtjbXd/f3xyZl5VUEdDQT48Pz9DSVBWXmlzfX95b2RaUUxDPjw4Nzo6PkZMUlplcHl/d21iV09JQDs3NDQ3NzxCSU9YY254f3ZsYVZNSEE5NzUyNTU6QUhOV2Fsdn92bGBWTUdAOjU1MjU3OkFITVZhbXd/d21iV05JQjs3NjQ0NztASU9YYm13f3lvZFpRS0U+PDo3OTw+RUxRWmVwen98c2hdVU9JQj4+PD5AQkdQVV5oc3p/fXNsYlpUTkhEREJCRkhNVVpiaG93fnluaGJdWVRPS0tISUxMUFVdY2Vsc3t2bGNcV1RQTklJRURHSUxRWF5janJ5dGhgWFRRTktHRkBBQ0hKUFVbYWhwd3NpXlhTUExIRUM9PUBFSU5UWmFob3ZyZ19XUk9MR0RCPjxARUlPVFthaW92dGlgWVNRTEhEQz49P0ZKT1ZdYmhvdnVrYlpVUk5KRkQ/P0NJTFFXXmNqcHh3bWVeWVVQTklHREJGS09UWWFka3B5em9qY15XU1FOS0hITE5SWFtkZWtye3xxamJjXVlVU1FOT1BSVl1dYmZtdX1/dm1namVgWlhVU1NWVlthX2NobnZ/f3lxa2ZkYmBdWllaWFpcXmFla3F5f398dG9qaGZkYV9eXV1eXmFkaG11fX9/f3p0cG1qZ2RiYWBgYWJkZmtxeH9/f399d3JtaGRhX15gYWNkZmludHx/f39/e3Rvam5mYV1cXmBjaG9pbnV9f39/f3lya2doYVtXVVdYW2JnZmxyeX9/f394cGlkYltWUFBRU1ZbYGNpbnZ+f39/d29pY15XUk9MTU9SVlpgZWxze39/f3dvaWJcVVBKSUpMT1NXXWNpcHl/f395cWpjWlRPSUhISk1RVlthZ294f39/fXVtZV1VUEtHSUlMUFZaYGdud39/f395cWlhWlNOTEtKTlFXWl9mbnd/f39/f3dtZl9XU1FPT1FUWlxhZ295f39/f398dGtkXlpWVFVXWl9fZGpzfH9/f39/f3t0bGVjXVxdXWFmY2hvdn9/f39/f39/fXZwbGhmZWVpbmpudHx/fw=="},"RightUpLeg":{"min":[-0.1306,-0.1331,-0.1498],"dims":[20,41,22],"data":"f39/enJsZmJgXV1eX2JobXJ6f39/f39/eXBpY15YVlNSVVVYXmJpcnt/f39/fHJoYFpTT0xJSUtMT1ZaYWpzfH9/f3VrYVlTTUdEQUBDQ0ZOUlpibXZ/f3pwZltTTEZAOzk5OzxAR0tTXGdweX91a2FWTUdBOTc1MjY1OUFGTlZibHZ/cmhdUklCPDUwLi0wMTU9Q0lSXmhyfm9lW09GPjkyLSoqLS0yOj5HT1xmcHxvZFpPRD44MCsrKCwrMDg9RU5aZG56bWRaTkU8ODArKygrKzA4PkVPWmVvenBlW09GPjkxLS0qKi0yOT5HT1tmb3txZ11RSUI9NDAwLS0wNTxCSVJeaHJ9dWthVU1FQDk1NTI1NzlAR01WYWpyeHZsZltSSkY/Ozs4ODs/RkxSW19mbnVyZ2FZVE9KRkJCP0BDQ0VNVVtcY2tyb2VbU05LRkM/PTo6Pj9CSU9WWmFpcG1iWE9KR0RCPTw2Njo8QEdMUlhfZm5sYVZOSUVCPjs6MzM2PD9ES1NYXmZubGBWTkhFQj06OTQyNjw/RUtRV19lbW1iWFBKRkJAOjo0MzQ9QEZMVFhgZm5uY1hRSkhEQDw6NDU5PkNITlZbYGdwcGRdVU9LRkQ/Pjo4PUFFSlBYW2FocXNoYltWT0pHREI+PkJFSU5UW1xianN1a2FaW1VQTElHRERGSE1UU1hdZGx1d21kXWNdWFFOTElJTE5SWVVZXmZueXtwaGFdWlhWU1JPUE5QUlRXW2Jpcnx+dGxlYV5cWlhVVFNTU1RXWl5lbHZ/f3hxa2ZjYF1aWFZWVldYWlxhaHB6f398dG1oY19aV1VUVldZWlxfZWx0fn9/enJrZWBmXlhVU1VXW2BoX2VsdX5/f3hwaWJeYFhSTUtOT1NZX11iaXF6f393b2dgW1pTTUhGR0pNUlhZX2Vtdn9/eG5mXllVTUhEQkRFSExSVl1janN+f3lwZ2BYU0tGQj8+QUVJT1NaYGhxe397cWhhWlNLRD88Pj9DR05RV15mcHt/fnVsZV1UTEdAPT0/Q0ZNUFddZnB6f396cmlhWFFKRUJBQERHTlFWXGZwe39/f3dvZl1XT0lHREVHSlFSV15ncX1/f39/dm1kXVZQTUtMTlFXVVlha3V/f39/f351bWVfW1ZTVFRYXlpfZm95f39/f39/f3ZvamRgX11eYWZhZm11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Xl9gYmJjZmtwdn1/f39/f3t0b2tpaGlrbG1sbW90eH5/f39/f39/f396dG9ua2ptbnB1en9/f39/f39/f314cWtmZWFhY2NnbHF1en9/f39/f311cWliXlxZWFpbXmNmaW50en9/f393b2piW1ZVUVBTU1ZYW15kanB5f398cmpjXFRQTkpKSkpMTlFVW2BocXt/eG1lXFdPSklDQUJCREVJTVNZYGp0e3JpYFpTS0ZCPDk7Ojs/Q0dNU1pkbnVrZFxVTkhCPjY0NDQ1OT1CSE5WX2pwZl5XUEpEPzozMC4vMTU5P0VLU1xla2JZVE1HQj04NCwrLi0xNzxCSVBYY2lfV1FLRUA7NzIuJigtLjY9QUhPV2JnXVVPSUM+OzUwLCUkKy0yOUBHUFdgZVtTTkhEPTo1MC4pKCkvNDlAR09WX2RaUk5HRD04ODIvKCMlLDE4QElRWGFjWlJOR0I/OjcwLComJS4yOEBIUFhhZFtST0hEPjk4MTAvKiovNz1DS1FbY2VcVVBKREE9OzMxLSYnLDI5Q0pUXGZnXlZSTUlBPTw1MS8qKS80O0NLVFxlamBbVU5IRD8+OjYyLi81O0BIT1dfZ2tiYFhQS0lEQTo2Mi4uNTlASlJbZG1vZmRbU05JRUM9OTcyNTo9RExUXGVtcmlhXVZRTEdFQD04NjlARUpSWGFpcXVsZWFcVlBLR0NAPDo9Q0dNV19nbnd5cGlkYlpTUElHQj9CREpNU1tia3N8fXRtaGdgWlFMSkZEREpRVVphaHB3f394cGttY1pTT0tISExQVVpgaXB3fX9/enNsb2VdVlFNS0xQVVxgZm51fn9/f3p7cWhhW1VSUE9SVltgZ291fH9/f392dWxjWlVRTUxQVFdfZGx0fH9/f397cnBmX1dRTUlITE5UWmNsdH1/f39/dm5sY1pUTklERklMUVlgaXB6f39/f3RsamBYUUtGQ0FGSU9WXmVudn5/f39yamlfVlBKRkFCRUlPVl1ka3R8f39/cmpqYFdRSkdDQ0VLUFZdZGtye39/f3Rsa2JYUkxHRkRGTFJXXWRrcnp/f393bm5kW1VPS0lIS09UWl9ka3N6f39/enJyaGBZVFBOTU9TWV9hZm10e39/f393b2llX1pWVFVXW15mZWtwd35/f39/fXZvbGZiXl1eYGJnbmtwdnt/f39/f399dnFtamhoaWptbW9zd3x/f39/f39/f356dnRzc3R1d3Z4e39/f39/f39/f39/f39/e3p2dnh5e39/f39/f39/f39/f398dnJxbm1vcHN3e35/f39/f39/f398dG5raWZlZ2lqbXBzeH1/f39/f398dW5oY2JeXl9fYWNmaW50en9/f399dW9oYV5cV1ZXVlhaXWFmbHJ7f39/eXBqY11YVVBOT05PUlZaYGVsdH1/fXVuZmBZU09KR0hHSExPVFlfZm54f3dvaGJbVU9MRUJDQkRIT1BVW2JqdHtya2ReV1JMSUE9PD8/QklNUlhfZ3B3bmdhWlVQS0lBOzk8PD9GSlBWXGRtc2tkXllSTUpIQTs1Njo+QkpOVlxjbXJpY1xXUVRLQ0A5NDM4O0BIUVRbZGxwaGFbVlFTSkM+Ozc1NjtBSVFUW2NrcGdhWlVQS0hFQD02MTM5P0ZOVF5kbG9nYVtVUk1JQz48NzQ0Oj9GTlVcZW5vZ2FdVlNMSEY/Pzw4ODxDSVBXX2ZvcWljXVhUTUtJQ0A6NDY6QUdOWGBpcXJrZWFbV09LSUM/PDg3PENIT1hgaHF2bmhiW1hSTUxFREA9PkJITVRbYmtze3RsZF5aVlJOSEZAPT1DSk5WX2dvd395cGhhXVdTT0tJREBCRkxRWGBocnx/e3JpZGBaVlJOSkZESE1SVl1kbHV9f351bmhjXVpVUU1ISUtQVltja3J6f399e3RuZmFdWFVRT05QVVlfZm52f39/f397c2xmX1pXVFJTV11hZWtze39/f39/f3hvZ2FeWVdWWV1iZ210e39/f39/f396cWpkYFxZWl1iaWxyen9/f39/f398dG1oY2BfXmBjZ250eX9/f39/f39/d29oY15bW15iZWpzfH9/f39/f39/e3JrZWBbWFdaXmJncHl/f39/f39/f3duaGBcV1NUV1tfZW11fX9/f39/f391bGVfWVRRUFRZXWRrc3p/f39/f39+dWxkXVhUUFFUV11kanJ4f39/f39/f3VsZF5YVVFRVFheZGpzeH9/f39/f392bmZfWldUU1VbYGVrdHh/f39/f39/eXBoYl1ZV1dYXmJnbnZ5f39/f39/f3x0a2ZhXVxcXmFmbHJ6en9/f39/f39/eHBrZ2NiYWRna3J4f31/f39/f39/f393cm5qaWprb3J4f39/f39/f39/f39/f3p2c3J0dXh7f39/f39/f39/f39/f39/f319fn9/f39/f39/f39/fw=="},"Hips":{"min":[-0.2091,-0.1948,-0.2005],"dims":[29,30,27],"data":"f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/e3h2dXV0dXV1dXV1dnh7f39/f39/f39/f313cm1qaGlnZ2hoZ2hoam1wdnx/f39/f39/fHVuaGNfXVxaWltaWltbXmJmbHJ6f39/f39/d29nYFpTUVBNTU1NTU5QVFhdYmpze39/f397cmphWVFLSEZDRENDQ0RFSU5UWmNsdX9/f352b2VcVEtEQT06Ozo5OTs8QERMVF1oc31/f3xzamJZT0U/OzU0NTIyLzM0N0BHUVtlcHx/f3pyaF9WTUI8ODIvLi0rKy8tMzxFTVpkb3p/f3hwZl5UTEA5Mi8tKyooKisrMTtDTVdjbnp/f3lvZl1TSUA3My4rKikoKCsrMTtDTlhlb3t/f3dwZ11TSkA3MC0rKikoKSwuMz5FT1pmcXx/f3lwZ15VSkI3MS8rLSopKi4wNkBIUlxocn5/f3tyamBWTUU5My0tKywrLDAyOENNVWBrdX9/f310a2FYUEg/ODEwLi8uMDQ2PUZRWWRven9/f393bmVcU0tDOzY0MjI0Mzo9QUxWYGl0f39/f398cmpiWFFJQj05ODg4Oj1ESVFbZm95f39/f39/d29mXldQSENAPz8/QkdNUVhiam94f39/f39/fnVtZl5YUExLSUpKTVFUV1thaG53f39/f39/f352bmdeWFRPTU1NTU9RVVlfZ293f39/f39/f393bmZdV1FPS0pLTE1PVFhfaG94f39/f39/f394b2deVlFOSklKSkxPVFhfaHB5f39/f39/f395cGZfVlBNSklJSktOVFhfaHF6f39/f39/f397cWdgWFNPTEtLTE1QVlthanJ7f39/f39/f399c2liXFdUUE9PUFJUWl9lbnR9f39/f39/f39/dm5mYV5aV1ZWV1hbYGVscXh/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/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TEhEQEBAQEJER01UXWRtdn9/f39/f3hsY1tTS0VCPj0+P0BDSExTXWVtd39/f39/f3huZVtTSkVBPTw9PT9CSExUXmVueH9/f39/f3pwZlxUS0RAPTw8PT5BRk1VXmdweX9/f39/f3txaF1UTUdDPz4+P0BESk9XYGhxen9/f39/f310aF9WUUxIRENDREZJT1RbZGl0fn9/f39/f394bWRcVlJQTEtLTE1RVltgZm53f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fXl3dnZ0dXZ2dXZ2d3l8f39/f39/f39/f354c25raWpnaGloaGlpa25xd31/f39/f39/f3dwamRgXl1bW1tbW1xcX2NobXR7f39/f39/eHFpYVtWU1FOTlBQT09RVVleZGt0fH9/f399dGtjW1NNSkdERUVEREVGSk9VXWRtd39/f395cGdeVUxGQj88PDs7Ojw+QUdOVl9pdH9/f351bGNaUUdBPTc2NjI0MTU1OUFJU1xmcn1/f3x0aWBXT0Q9OjMxMC4sLTAvNT1HT1tlcHt/f3lzaF5VTUE6NjEvLSwqLC0tMz1ET1llb3t/f3lxaF5UTEI5NC8tLCspKi0tMz1FT1lmcXx/f3pyaV5VTUI5Mi8tKysqKi4vNT9IUVtncn1/f3pyaV9XTkM5MzEtLysrLC8xN0FNVV5qdH9/f31zamFXUUY7NTEvLS0tLjIzOkRPW2Fsd39/f351bGNaVElANzMxMDAwMjY4PkdSXmVve39/f394b2ZdVUxFPTc1NDQ2NTw+Q01XYWp1f39/f399dGtjWVNLRD86OTk6PD9FSlJcZ3B6f39/f39/eHBoX1hSSkVBQEBBQ0hOUlpjbHV/f39/f39/f3dvZ19ZUk1MSktMTlJYWVxianN9f39/f39/f393cGhgWlZRT09PT1BTV1tgaXJ9f39/f39/f398cWdeWFNRTUxNTU9RVlpgaXJ9f39/f39/f396cWhfWFJQTEtMTE5QVlpgaXN9f39/f39/f397cWhgWFJPTEtLTE1QVVphanR+f39/f39/f399cmliWlRRTUxNTk9SWFxja3V/f39/f39/f39+dGtkXllVUlFRUlNWW2Fnb3l/f39/f39/f39/eG9oY19cWFdYWVpdYWdtdX5/f39/"},"Spine1":{"min":[-0.213,-0.0964,-0.1216],"dims":[30,25,25],"data":"f39/enJqY15bW1lZWVtdYGZud3x/f39/f39/enRrZF1YVVVTVFRWWl1ja3R/f39/f39/f3ZvZl9aU1FRUFBRU1lcYmp0fn9/f39/f310bGNcV1NPTk9PUFJXW2Fpc31/f39/f398c2xjW1ZTT01NTk9RVlphaXJ9f39/f39/f3VtZFxWUk5NTU5PUVZaYGlyfH1/f39/f393bmZdV1NQTU5NTlFVWWBocnJzdXl/f39/eXBnYFhTUU5NTlBRVlthaWloaWxwdn5/f3xzbGNcVlRSUlFSUldcYWBeX2FkaG93f39/eHBoYVxYVVRbWVhYWl5jaVdZXGJpcX9/enNtZmBbV1VST05MTVBUWWBPUVddY21/fHRtZV9aWVNOSkdFREVIS1FTWF5TWWFqf3hvaGBYUk9JRkNAPj0+QURJS1BXUFdgaX1za2NaVk1HQ0A9OTg2Nzw/QkNKT1VdXmh5cGdeVVFIQj46NzQyMDI3Oz4/Q0hPWF5pc2tiWlFMQz45NTIvLS0vNDg7PD9ESlReaW1oXlZNRj86NjIvKykpKzE1Njk8QUpUX2tpZF1UTEM+OTQwLCkmJysvMzU4O0FJVGBsZ2JeVUxFPzozLysoJCUpLC8yMzpAS1ZhbmhiXlhQSUQ/OjUyLisqLC4vMDM5Q01XY29qZWFeVk9LRkI9OjYzMjMvKysxOkNNV2RxbmlmZV5YVFBMR0RBPj04MCwtMDpET1pmc3VwbWtoYl9bV1NQTUpGPDUxMjc9RVFeand8eHV0c25qZ2RgXVpXTUQ9Ojs+REtXYm98f39+fX56d3RxbWpnX1VOSEVFR01UXWhzf39+dW1nX1dST05MTEtNT1NaYGdxe39/f39/eG9nYFlRS0dHREZFR0pPV15mbnl/f39/f3RqYltTTUZCQkFCQ0VKTlRdZm94f39/f31yaF9XT0dFQD9AQEFESU1UXmhveH9/f399cmdeVk1IREA+Pj9AQ0hNU11ob3h/f39/fnJpYFhQSEI/Pj4/P0JITFNdZ29zdXh8f391a2JaUUlDQT49Pj9CR0xTXWdnaGtvc3t/eG9kW1RKRUE/Pj9CREhNU11dXF5gZWx0f3xyaF9YT0pGRENBQ0RITlZVVFNUV11jbX53cm1kXVVNSkhGRkdITExMS0lKTFBWXWd6cmxmYVpVUEtIRURBQ0NDQ0NCQ0ZKUFlj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ZV9bWlJLRkI9OTYyLy4uKiUmLDY+SFRncmlkYF9bVFBMSERBPjo6NCsmJCo2QEpXY3Bwa2hmZV9bWFRQTkpHQzgwLC0yOUJOW2d0eHNwb3BrZ2RhXVtYVUpAOTY2OUBIVF9seX99enl6d3RxbmtoZV1TSkVCQUNJUVtlcn5/f39/eXFqZmNjYWFhY2VpbnV+f39/f39/f39/enNsZWBeXVxdXV9iZmtze39/f39/f39/fXZuZ2JcWlpZWVpcYWVqcnp/f39/f39/f3tza2NgXFhXWFhZW2BjaXF6f39/f39/f397c2pkXltYVlZXV1pfYmlveX9/f39/f39/fHRsZF5bV1ZXV1haX2Nob3l/f39/f39/f352bWVfW1lWV1ZYWVxjaG95eXp8f39/f39/d3BoYVxaV1ZXWVpfY2lwcG5xc3d9f39/f3pza2NeXVpaWltcYGVoZ2ZmaGtwdn1/f39/d29pZGFdXmFfXl5hZGlvXmFkaXB4f39/enRtZ2NfXFlXVVRVV1tfZldaX2VsdH9/e3VsZmFfWlVST01NTFBRWFpeZVthaXJ/f3ZvZmBZVlFOS0hGRUZJTFBTV15YX2dwf3pyamFcVE9LSEVCQD5AREhLTFFWXGNlb393bmVcWFBKRkM/PDo5O0BER0hKUFZeZW56cmliWFNLRkI+Ojc2NTc8QUNFSExTW2VvdW9lXVVOSEI/Ozc0NDI0Oj4/QUVJUVpkcHFsZFxTS0ZBPTk1Mi8wNDc7PkBDSFFaZXFwamVdVE1HQz04NDEtLjE1ODs+QklSXGdzcGtnYFdQS0dCPTo2MzI0Njg4O0FKVF5pdHJtamVdV1JNSURBPTo5Ojg0MzlBSlNeanZ2cW5sZF9aVlJNSkdEQz84NTU4QktVX2t3fHd0c25oZGBdWFVST0xDPTk6PkVNV2Nven9/fHt4c29saGRhXltSSkRBQkVKUltncn9/f39/f397eHRxbmtjWlNOS0tOUlpjbXh/"},"Spine":{"min":[-0.1148,0.0125,-0.1184],"dims":[17,10,23],"data":"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"},"Spine2":{"min":[-0.1761,-0.0184,-0.1297],"dims":[25,19,22],"data":"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"},"LeftShoulder":{"min":[-0.1709,0.0105,-0.1308],"dims":[21,14,17],"data":"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"},"RightShoulder":{"min":[-0.1279,0.0106,-0.1308],"dims":[21,14,17],"data":"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"},"Head":{"min":[-0.12,-0.0947,-0.1535],"dims":[18,24,23],"data":"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Ly0tLS4uLjI4P0hTWmJqdF1SSD43My4sKysrLCwsMDQ9RVBYYGhxWk9DOjMvLCsqKSorKywtMjpCS1dgZG1XTEA3Ly0rKikpKSoqKiswNz9HUFphalZKPjUtLCsqKSkpKiopKy0yO0RMVV1lVko/NTArKiopKSoqKikpKjA3QEhQWWFXSz42LSspKioqKioqKScpLjU9RU9WXlpNQjgvKykqKioqKiooJyovNTxET1ReXVFFOzMsKikpKikpKSkpLTI4P0dRVl9hVko/NzIsKignJygoKiwwNz1CS1VYYmZbUUY+NjIvKykpKSotMTc8QkhRWl5mbGJZTUU+ODQwLi4uMDI4PUJITldhY2tzaWBXT0ZBPDk3NTY5Oz9ESU9XW2JpcnxxaGFYUkxHQ0FBQEFESU1QV19iaXB4f3pyaWJbVlJOS0pKTU1TWFxdY2lwd39/f3t0bWZgXVhXVlZYWl5jZ2ZrcXh/f39/f313cGtnY2BfX2FgY2dqbnR5f39/f39/f397dnNwbm1tbW1tb3JydXl/f39/f399d3FsaGVjYmJiY2Vna2xuc3l/f39/e3NtaGFfW1pZWFhZWl5iZWpudXx/f3tya2RfWlZRUFBOUVFTVllhaWxyen99c2piW1ZRTEpISEhIS0xPVFxkanB4f3ZtY1tVTkpGRENDQ0NFR0tRWWJocHd/cWheVE1IQ0I/Pj4/QEFDSU5WX2dvd39rYVhPSERAPjw7Oz09P0FETFRdZm53f2hdUktDQD07Ojo6Ozs8PkJKUVpkbHR8Y1dPRkI9Ojo5ODk5Ojo7QEdOV2BqcHlhVkxDPzw6OTg4ODk5OTs+QktTXGVtdV9USkI+Ozk5ODg4OTk4OTtAR1BYYGlxX1RKQT46OTk4ODk5OTg4OT1ETFRdZW1gVUtCPjo4OTk5OTk5ODY4PEJKUVthamJXTEQ+Ojg5OTk5OTg3ODk9QklRWmBqZVpPRz87ODk4OTg4ODg4Oz9FTFNbYmtpXlNLQz06ODc2NjY3OTo+RElPVl9kbm5jWlBIRD07OTg4ODk7PkJJT1VbZGhydWtiWFBJREI/PTs9PkBDSU5VW2JqbnZ8cmhfV1JMSEVDQkNERktQVVthZ211fH96cWlhW1VRTUtLTE5PU1dcYmludXt/f397c2tlYFxYV1VVV1lcYWZpb3V7f39/f398dm9qZWNhX19iY2dscHF3fH9/f39/f39/enRwbWxqamtsb3J1eX9/f39/"},"LeftArm":{"min":[-0.1143,-0.0929,-0.1023],"dims":[16,29,16],"data":"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RFBcaFhKPjUrKCUmJCowPUhTX2xVSTwyKyQiJSUpLzlCT1toUEM2LCMgHSEhJSo6QktYZU1ANCgeHBoeHSEqMTxJVmJKPS4lGxkXGxkeJy86R1RhSTstIx0XFRkbHSMuOkVTYEg7LCIXFxUYGh4kLzpGU2BIOi0kGhkXGh0hJzQ9SFZiSj4wJiMeHB8iJi43QE1ZZk9COC4rJiQnKi82P0hTXWtVSUA8NjIyMDY7QklSW2VxXlRMRkE8PT1BRUxUXGVueXNqY11XVFJRUlVZX2VsdHxqYVlSTUhGRkdLUFVaYmpzZFpSS0VAPj4/QkdJUFlibF9VS0M/ODY1Nzg9QUlSW2ZaUEc/ODMxMDAvNjxETlhjV01DOzQwLSwpKjE3QElVYFNJQjozLionJiYrND5IU15NQzszLiknJSQiJzM8RlFdSD41MSsnJSMiISUxO0VRXEQ7My4pKiQhIB8kMDpFUV1EOjEtKSokISEfJDE6RlJdRDoxLikuKSIiICUxPEdTX0Y6NDArMyokIiMoMz1IVWFIPzYyLispJyImLTdAS1hkTkM8NjEuLCsqKjE6RE9bZ1NIQDg0MTAvLi81P0hTXmtZTUU+ODQzMzM0OkRNWmRwX1JJQDs2NDU2OD5HUV5oc1xQRT43MjAzNDc9RE1aZXBXS0E3My4sLy8zOT9JVmFsVEg8NTAqKSwrLzY+RlFcalFDOTArJyYpKywxPERPXGhPQjgwKyUoJykqMTpDT1pnT0E3LSomJCcpKzE7RU9baE9BOC8sKCYpLC40PUZSXWlRRjs0MSwtKy4zOkJMVmFtVkpAOzYyMzM2Oz9IUFtmcVxSSUM/Ozw7QENKUFlibHdjWVNOSkdHR0pPVVtja3R/fHRtZ2JfXVxdYGRpbnR8f3RsZF5ZVVNSU1ZaX2Nqc3xuZVxWUUxLSktNUVVbYmx1aWBYUUtIRUVDRUlOU1xmcGVbU0xGQT8+PD1CSVBYYmxjWU9IQj07OjY4PEVMVWBqXFRNRUA8OTY0NDlBSVNdaFVNR0A7OTY0MjE1PkhRXGdSSUM/OTY0MTAvMzxGUFpmT0dAPTg3MzAvLTI7RU9aZk9GPzw3NTMwLy0yO0ZQW2dORkA9ODo2MTAuNDxGUVxnUUhCPjo/NTMxMTY+SFJdalRLREE8OTg2NDQ6QktVYGtXTklEPzw7OTg4PEVOWGNwXFRMR0I/Pj09PUJKU1xncmNZUUtFQ0JBQkFHTldjbXhoXVROSEVEREVGS1FbaXJ9Y1lQSkNBQEJCRUtRWWVveWBVS0VAPDs+P0FFTVRganVcUUdBPjk6Ozw8QUpTW2ZxWk5FPjo2NTg6Oj9HUVlkcFdNQj05NDY2ODo+RE9YZHBXTEI8OTUzNjg7PkdQWmRxWE1EPjo2Nzg6PkJIUlxnclpQRkE+OTo7PkJHTVZganVfVU1HQz5AQEJHTVNbZW95ZFtUT0lHR0hKT1VZYmp1f2xjXFhTUFFSVVleZGpzfH8="},"LeftForeArm":{"min":[-0.0986,-0.0819,-0.094],"dims":[15,28,14],"data":"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QEpVYV5SSkM9ODc2Njk/SVRfX1VLRT05NjY4O0FJU2BiV09HQT06ODo+RExWYmdcVU5GQ0A/QERKUVpmbmRcVU9KR0ZHSlFZYWx1bWVdWFRRT1FUWmBpcn12b2hkYWBgY2Zrcnp/dm5nYl1aWVlbX2RrcnpwaGBaVVJRUVNXXGNrdWtjW1VQTUtMTlJYXmVta19ZUkxKSElKTFBWXmdkXFZQS0dEQkFESVFYYV9XUEtEQj49PkBFTVVfW1JLRkA8Ojk5O0JLVV9ZT0lCPTs3NjU5QUpUX1hOSEA7NzUzMzhBS1VhWFBJQDo2NDMzOUJMVmVbUkpBOzg1NDY6RE5ZZ11VTEQ9Ojg3OD9IUl1oYFhOR0E9PDs8Q0xWYGtmXFJLRkI/P0BIUFpkb2xgVk9KRkNDRkxVX2hzbmRaU05KRkdKUFhibXdyaF5XUk5LS05SW2RteG5lX1lTUE1LTFFXYGl0a2JbVlFOS0hJTVNbZW9pYFhTT0xJR0dKT1hgbGdfV1JMSUdFRUhOVl9qaF9XUEtIRkRFR01VXmlqYFhQS0dFRUZJTlVeaWxjW1ROS0hGSExRWGFrcGhgWFNQTEtNUVZcZG93bmdfW1VUU1RYXWNrdH52bmhjX1xbXF9la3J7"},"LeftHand":{"min":[-0.086,-0.0669,-0.0721],"dims":[13,17,12],"data":"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"},"RightArm":{"min":[-0.1048,-0.0929,-0.1024],"dims":[16,29,16],"data":"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TFZib2RXTUM5MzAzNTo/Rk9aZnReUkg+NjEwMjU5PkRNV2RyWE5DOTIuLjAzNzxCTFdicVNIPTMtLCwuMTU6QEpUYW9PRDkwKikqLS80OkBKVWFuTUI2LCcnKSwvMzo/SVVhbUxBNCwnJicrLjM3QElVYW1PQjctKiUlKSw0OUBKVmJtUkU8My4pKSwwNDpCTVhkcFdMQzw1MjIzNjs/R1FcaHNeVEtFPjs7PD9DSE9XYm14Z15WUEpGRUZKTlJYYGl0f3hwaGJdWlhXWFtfZGtwdn5waGBZVFBOTk9RVltdZGt0a2JaU01KR0ZIS05OUllhamVbU0xGQT8+QEFDQ0hPWGJgVk5HQDw6ODY2ODtARk9bXlRLQz00LisqLDAzN0BKVl1TSkI3LiglJSkrLzQ9R1NdUEU+MykiICEkKCoxOkVRWk1DOC8lHh8gIyYqMDlFUVdMQTcsIh4fISMmKTE6RlFWSz81KiIfICIkKCsyPUlUV0pANCgiJCMlJyswN0FMV1hMQTUrJyYnKSstMjpGUlxbUEQ5MCksLC4wNDg/S1ZjYFNHPDUxMTE0Njc+RlJdaGNYTkQ9ODU4Oj1ARU1YY29pXVVLQj49PkBER01VX2l1bWFXTUdCP0FESE1TW2RvfGZcU0pEQT9AQ0dMUllibHthVkxFPz49PkJFSlBXYGx6XFFIQTs7OzxAQ0lOVV9peVhNRDw5ODk8P0JITlVfanhXS0I6NTY3Oj1BSE1UXmp3VklBODY0Njk8QUdMVV5qdldMQTw4NDY4PUFHTVVfa3daUEdBOzg3Oz5CSE9YYW15X1VMR0E+P0BDRk1TW2VwfGZdVU9JR0dIS05TWGBqdX9uZl9YU1FQUVRXXGFocXt/f3pzbWhlY2NkZmpvcnd9f3tzbGZhXVtZXF5hZGdrcnt0a2RfWFZUU1RWWFlcYmlyb2dfYVpUT01LTE1QU1lhamxjW1hQSkVDQUFER0tQWWNpZ1tQR0A8OTk7PkFFS1RfaGFXS0E6NTM0Njk9QEdRXGZaUUc9NDAvMDM2Oj5FT1piV01EOTIvLS8yNTk9RU5aYVZMQTgxLy4wMjU5P0ZPW2BWSj83MjAvMTM2OT9IUl5gVUlANzMyMjM1OT1BS1VgYVVKQTk0NTU3OTs+RlBaZWRZTkU8Ojo6PD1BQ0tTXmpnW1FIQj8/P0FGSUxSW2RvbGFXT0lGRkdJTVNQWGBrdnFoXldSUFBRUlZbWV9mcXx1a2JaVFFOUFJWW2Bmbnh/cGZdVlJPTk9SVVpfZm53f2phWVJOTEtNUFNYXWRsdn9mXFROSkpJS05SVlxianR/YlhQSkdHSEpNUFVbYmp0f2BXTkhFRUZITFBUW2Jqc39gVk1IRUNFSEtPVFphanR/YVZOSUZFRUhLT1VaYWp0f2RbU05JRkZJTFBWXGRsdn9pYFlTTkpMTVFUWl5mcHp/b2dgWlVTU1RXWl9kbHR+f3dvaWJeXFxcX2JnbHN7f38="},"RightForeArm":{"min":[-0.1004,-0.082,-0.0941],"dims":[15,28,14],"data":"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QkpVYFtPRT03NTMzNTlBSVNgXlJHPzo2NDQ0OkBLVWBgVUxEPTo2NTk9RE5YYmVaUEpEPjw7PUFJUFxna2FZUkpHRUJGSk9YYWxyamJaVVBNTU5TWGBpc3tzbWdiYF5fYWRpb3h/cm1lX1tYVlZZXWJocHloYFpVVFFQUFJVXGNrdF9WTktIS0lKTFBWXWVuV05HQUBBQ0ZITVNaYmxRRj47ODk7PkJJT1hha05DOzY0NTc4PkNJU15qTEA6MzQzMzY7PkdQXGhLQjk2NTQzNTk9RlBbZ05EPDc2NTU3OT5GUFxnUUZAOzk4ODk5QEdSXWlTSkM/PTw7OzxDS1VgbFhOR0NBQD8/QUZPWGRvXFNLR0VERENES1FcZ3JhVlBKSUhHR0lPVmBqdWZdVVBMS0xMTVNbZG54a2JaVE9PT1BSV11mcHpwZl5XUk1OTlFVW2Nsd2piWlRNSkpLTVFWX2lzZ15WT0lHR0dKTVRbZW9mXFRNR0RERUdLUVhibGVcU0pFQ0NDRUhPV19qZlxRSkVDQkJDSE5WX2lnXFRLSERDQ0VITldgampgV1BLSEVGSEpQWWNtbmRcVlBMSklLT1RcZnB0a2NcV1JRT1FWWmJrdXtzbGRfW1lYWl5jaXJ7"},"RightHand":{"min":[-0.0924,-0.067,-0.0723],"dims":[13,17,12],"data":"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"},"Neck":{"min":[-0.0933,-0.0495,-0.0784],"dims":[14,14,14],"data":"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"}}`),radii:{LeftArm:[[.083,.0569],[.25,.0672],[.417,.0578],[.583,.0446],[.75,.0526],[.917,.0555]],RightArm:[[.083,.0569],[.25,.0671],[.417,.0578],[.583,.0447],[.75,.0527],[.917,.0556]],LeftForeArm:[[.083,.0485],[.25,.0572],[.417,.0458],[.583,.0367],[.75,.0388],[.917,.0407]],RightForeArm:[[.083,.0485],[.25,.0572],[.417,.0459],[.583,.0367],[.75,.0388],[.917,.0407]],LeftHand:[[.083,.022],[.25,.022],[.417,.022],[.583,.022],[.75,.022],[.917,.022]],RightHand:[[.083,.022],[.25,.022],[.417,.022],[.583,.022],[.75,.022],[.917,.022]],LeftUpLeg:[[.083,.0884],[.25,.0966],[.417,.103],[.583,.0806],[.75,.0737],[.917,.0757]],RightUpLeg:[[.083,.0884],[.25,.0966],[.417,.103],[.583,.0806],[.75,.0737],[.917,.0757]],LeftLeg:[[.083,.0672],[.25,.0822],[.417,.0775],[.583,.0621],[.75,.063],[.917,.063]],RightLeg:[[.083,.0672],[.25,.0822],[.417,.0775],[.583,.0621],[.75,.063],[.917,.063]]}},"x-bot-tpose":{model:`x-bot-tpose`,step:.015,unit:`mm`,grids:JSON.parse(`{"Hips":{"min":[-0.2099,-0.2232,-0.2037],"dims":[29,28,25],"data":"f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fnt6enp8fn9/f39/f39/f39/f39/f398eHRycG9vcHJzdHV3eXp9f39/f39/f398dW9saWVkZWRlZ2dpam1vc3V6f39/f399dm5oY19cWllaWltbXV9hZWhscXd/f39/eHBpYVtVVVFQUE9QUFJSVVpeZGlvd39/fXRrYltUT01JR0ZFRURISUxSVVthaHF6f3twZVxWUExFQUE8PDo7P0BBSU5UXWRrdX94bmJaUU1GQTs4NTYyMjc3O0JJT1dgaHJ9dWtiWVJLQTs5NTAxLC0xMzY8RUtTXWdxe3RpYFlTSkA6ODAtLigoLi0yN0NIUlxncHt0amFaU0pCPTkwLC4oKC0wMTlCSFJbZ3J8eG5lXlRKQz47Mi4xLCovMTM5QkxTXWh0fnlvZ2BXTkVCPjYyNC0uMTY2O0ZPVV9pdX98cmpjW1FLR0Q9Ojs2Mzg7O0FJU1tjbXl/f3dvaV9XUE1IQj9AOjo9QUNGT1hhaXJ8f39+dW9lXldTT0lFR0NARElLTlReZ293f39/f3t1a2RdWlZQTU5KSUpQU1ddZW53fn9/f39/e3NrZmJeWVZWVFJVWWBkZm12f39/f39/f397c25qZmFeX15dXmJobXF3f39/f39/f39/f3x2c3BraWlpZ2lscnh8f39/f39/f39/f39/f356dXR0dHN0d3x/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fXx7e3x/f39/f39/f39/f39/f39/f396dXNwb3Bxc3Z6fX9/f39/f39/f39/f395cm1pZmVlZWdpbG1vb3Byc3Z6f39/f396cWljYF1aWlpbXV9fYWJkZmhscHV8f397cmthW1dUUE9QT1FSUlRVWFpeYWZuc3t/dWtkXVZOSUdFREVFRkZISk1PVFhdZG11fnFnYFdQSEJAPDs6OTs6Pj1BRkpRVl1ncHhwZlxQSEM8NzQ0MTAvLzQ0Nz5CSU9YYGx2bmNZTkU/OzIuLSgpJSYsKi41O0NMU11ndGtgVk1FPjYuKykiIB4fJSQoMjY+SVJcZ3JqXlRMRUA1LSkhHiAZGSEfJC00PEdSW2Zxa19VTUc+MywsJR4gGRkgIiMtNj1GUl1ncm5jWVFKPzYvLiQgIhsbISAlKzhAR1NfaHRuY1pSTUQ7NTMoJCcfHyUoKTE7QUtVYW13cmdeV1BFPjg4LystJiYqLS40PkhQWWRwe3dtZF1VTERAPTUyMy8sMTU3O0VOVV1odH99c2piW1FLRkQ8OTo2NDU9PUNKVV1lb3l/f3lwaWJYUk5LREFCPz1ARklMUlxmbnZ/f39/eXJpYVpWU0xJSklGSU5VWV5lb3d/f39/f396cWhjX1xWVFRUUlRYX2NpcHh/f39/f39/f3pybGlmYl5fX11fY2lvc3p/f39/f39/f39/fXh0cm1ra2xrbG90eX9/f39/f39/f39/f39/f356d3d4eHl8fn9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fXx8fX9/f39/f39/f39/f39/f39/f395dXJxcXFzdnt7e31/f39/f39/f39/f393cGpoZ2ZmZ2tvcHFzdXh3d3h8f39/f352b2ZhXltaW1xeYmZnamxta2ttcHV7f394b2hgWFRRT1BQUlVaXmFjZGFhY2Zrcnp/cmhgWFBKSUVDRUZJSktOTk9RU1dcYmlxe2thWVFIQkA7Ojs6PD4+QEFDRkhNVFpia3RnXVNMRTs2MzAvMDAyMTQ1OTs/REtUXGRvZVpRSD43LyomJiUlJiUqKSwxNj1ETVhga2VaT0Q5MS0oIR0cGxoaHB8lKTA5P0lSX2lkXEtBNzAsIBocFBIQERkXGyUqMjxGUl1pZl1JPzczKx8ZGg8MCwoXERYfJzA9RlFcaWZaSkA5NSkfHhoPEwoKFxAVJCgxPUhSXWllWU5EPTYpIiAWEg8NDRYSGCQsMz1KVF9rZllPRD85LSYmIBYcGBIcFhwmMDZATFhibmldU0tEPDIrKiIeIBgYHyAiKzY8RFBdZ3FuZFpRSkI4MTArJSYiHyQoKjA7Q0tVZW54dGlfV1BIPzk3MC0tKigsNDM5QkxUXGZzf3pwZl9ZUEdCPzo1NTUyNDxARExVXmZven9/eG9nYFdPSUhBPz8/PT9FS09VX2lweX9/f393cGhfWVRSTUlKS0hLUFdaYWhvd39/f39/f3lyamRgXllWVlhXWFxhZm1yeH5/f39/f39/fHVwbGplY2JjZGVoam50en9/f39/f39/f39/f3t2c3Jvbm5xcXN3fX9/f39/f39/f39/f39/f3x7eXd3ent9f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fn1+f39/f39/f39/f39/f39/f39/f396dXJxcnR2en58fH5/f39/f39/f39/f353cGpnZ2dpa29ycHBzdHZ6eXp9f39/f311bmVgXVxcXF9iaGZmaGpsbm5vcnV6f390bGVcV1FRUVFSV1tcW19hY2JiZGdrcXd/bmRdVU1KRkVFR0pPUlJWV1lWVlhcYWhvd2hfVk5FPz06PDs+QkdISUhISEpOUlhfaXFkWU9GPTc0MC4wMTQ4OTo5Ozw/Q0lPV2FsX1NJPjkyKiYlJiUnKiorKy4yNDlCSFFaZV1QRDw0LCMeGxocGBscHCAkJysxOURMVmFaUEU7LSUcFxMREAoMDRUUGR4kKzQ+SlRfWU9CNy0iHhgMCgcGBQUHChAXHicxPElTXltRQDQqJCMRCxAB//39/wMSExspMDxHVF9dUUI1KicgEgsWAf37++8CBxIcJjQ9SFRhXVBENy8qIhUOFAT//v7uBQoZHig1P0tXY15RRTowLSQaExcLBwQEEwoQHyQqOERNWWViVklAODMpHx0aERQLChYQFyMnMTtIVF5qaFxPRT44LCYgIBgVEhMaGR8mMzhCTFxlcG1gVkxFPzQtKyggHSEdHyosMjxETFZhbXhzaF5VTUY8NjIvKicrKCozNjxFT1dganV/e3BlXVZORT89OjQ1NzM2PURIT1heZnF7f394bmdgWFFMSUZCQURDRUpNVFpfZWx2f39/f3hxa2NdWFVSTk1OTlFSVltiZm10fX9/f39/fXdvaWRiXVxbWVlcXF5kam50e39/f39/f39/e3dybGdmZGJiZWZobnN3fX9/f39/f39/f39/e3VxcG5sbG9vcnd9f39/f39/f39/f39/f39/fHt5d3h6e31/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f399eHVzdHZ4eXh3eHl8fX9/f39/f39/f354cWxoaGlqbXJxcXJzdXd4eXp9f39/f3xzbWdhXVxdX2JmaWdnampscG9wcnZ6f391bGRdVlJRUVNWW15bW15eYmZkZWhrcHh/bWNbVExHR0dHS09TUFFUVFdaWVpcYWdvd2VbUktDPjw7PD5DSkhIS0xNTU1PUlddZm5fVEpDPDQzMDAzNz49PUFBRUFBREhPVV1oXFBGPTQsJiUnJCowNDQ6ODw3Njk+RU9YYVhLPjQtJB4bGRcdIycoKCclJysvNj5IUl9TSDowJiMXERASEBUYGRoZFx4gJi43Qk1cT0U8MCcZEAsQBQMHCQoLCg4SGB8pMz5KW05EOi4jFg0RAPz7+fv8/P8FCxIcJjQ9SVxRRjopHxUVE/738/Hv8PL3/gcXGyYxQEleU0g7LiAaGQX+9/Lv7Ozv9P0HECAoMz9NYlRJPC0iFxsSAez28/Dw8vfvCRMiLDRAT1tYSz4wJiAdDQft/vr39+39EA0XIjE5RVJfXE9DOCwlIhMNFQT//f7vBgwcHik1QktXZGFWSD0yLCYaFBkMCBEIExEYJCszPUlVX2toX09DPDQtIhwfFRIYExUgIyo3PEZRXWdwcGZXS0I9NSwmKB4eJB8jLi82QEROV2NrdHVpXlVLRz84NDMsLDAuMTc5QUZLU11ocXp9cWheWFNKREA/Ojo6OT4+QUlOU1pjbnZ/f3xyamReWVVPSUdGQkRHRkpQVVtia3V9f39/fndwaWNeWFJRT0xMUFBVWl9janN9f39/f39/enNsZ2BdWVlXV1paXmNobnN8f39/f39/f398dXFsZ2ZkYmNlZWhtcnd+f39/f39/f39/f399eHNxb21ucHF1en5/f39/f39/f39/fHl2d3h1c3JxcnR2eXt+f39/f39/f395dHBsamptbWxqa2ttbnFzdXh8f39/f352b2llYF5fYWRlZGNkZWhqa21vcnZ8f391bGRfWFRTVFVYXV9dXV9gY2RkZWhscnl/bGNZVExJR0hKTlJUUlJVVldaWltdYmhud2ZbUktEPjw8PkJISUZGSUpNUE9QUldeZW5eUklCODMyMTM1PT87Oz8/Q0RDRUhNVF1nWEtBNy8qJCYnKjI3MzM3NTk4ODs+Q0xUX1NHOzArIB8aFx8mLSgoLSwwLCwvNDtDTVlPRTkqIBgTEBMSGSMfHyckIR0iJSszP0hVTEA0JhwRCwUEBgwZGBgdFRMQFhwjLThHUkc6MCcXFQT++/kBERIWEQcFBw0ZHyk1QVFGOS0mHRL/+fLw8fUNDfn5+v8HESAoNEBRST0yJxQK/+vw7Q4XCgoW8fL7BhEcKzVBVEg9MyodCvDr8e8MGAcHF/Py+wcTHi04RFdLQDUoGA4D7fXvDBcHBxUN9f8SFSEtO0ZTUEU5KxwRExD68w0TCQnr8/AFDyAmMj5NWVRIPjEjGQ8IAfv49fXz+P8GDxkmMTtGU19YTkM2KiAdFQkDAP78ABAKER8kLTlETVhiYFZKPjIoJBgSFQsKFA4SGx0pLjQ8SVJcZmheUUQ7MjAmHh8ZGBwcICElMDI6RE9YYWpwZFlOREA6MCwsJyclJSopLTc4QEhUXWZxeW1jWlJMRT46NTEyLS0yMjY+QUhSW2Rrdn93bmZeVk9KRj46Ozc3OztBR0lRWGNsdH1/f3pxaGBZU05IRUVCQkVGSVBVWWJrc3x/f39/e3JoYl1YU1FQTE5QUFNaXWNsdHx/f39/f397c2xoZF9bWlhYW1tgZWhudX5/f39/f39/f395c25pZ2ZkZGZnanB0e39/f39/f399eHNwcG1raWdmZmZoaW1vcnZ6f39/f395cmtnZGNiY2FeXV1dYGFkZmlscHV7f395b2dfW1hVVldZV1ZWV1hbXF5hY2dscXl/b2VdVlBMSUhMT1FPUFBSVFZXWFpeY2hveGZbUktGPz4/QURISkdISktOT09RU1hdZm9eUklAOzQxMzU6Pz88PEA/RUZFRklOVF1nWU1CNjIpJicrLjQ0MDA0NTg8Ojs+REtUX1FGOC4pHxocGyQqKiYmKisxMS4wNDpCTlhKPzIoHRYREREZICIcHCIhJSUkJSkyO0VURjkwIRcWBwUGDRcaExMZGBwYFBshKTRATUY5LiISB//7+gEQFQsLFRAOCwwSGScvPElCMiYZDf358u/1CRIEBBEKAf0CChUgMTxIQTIlGBPr9e0WCATv//8ABff0/AcTHzI8SEM2KR8a//UTFAUA7vv78AEQ8fwIEyAtOUpBNCceGe/1ERX+/uv5+e7/EvL+CBshLjxNRDcqIhgE+REU/v7t+Pj6//H1Ag4aKjNAU0k9MCUcCf/17wT/7vr6/AD5ABIWIS88R1tNQDMrHxAG8Pb5/u79/fn/BQ0VHyo2P0tjU0Y8MyYYDhL/+vn5/gAQCBQTGyM0O0RPZlpPRDkrIRgZDAgNCAgICg4YHSArNj9GUl1hVU1BNC4oIhoWFBcQEBcVHyMnLztETldiamBWS0I6NSwpIB0fGBgaHiUnLjhCSlJdaHRrYFZNRjw1MiwmKCIiJyYuMDc+SVJaY25+dGhgWE9FPjs0MDEsLC4xNzxAR1FZYmx1f3txaGFYT0hFPjo8Nzo7O0FESlJbYmlzfX9/eXJqYV1WUEtGRkNDREdNUlhgZGxzfH9/f397dGxmX1tVUlFPT1BTV1thaG51fX9/f39/f393b2pmYV5eW1xdX2Nma3J6f39/f39/eHBraGViX1xbWlpaXF5iZWdqb3V8f399dGtlX1tYWFdVUlFQUVJVV1teYmZrc3p/c2lgWVRQTk1NTEpJSklLTVBSVVhcYmlwempgVE1GREBBQkRDQkJCRUdJSkxPU1hfZ3FgVkxCOzg0Mzc7PT07PD5AQUJDRUlOVV5oV01BODItKScsLjUzMjM0Nz06Ojw/RkxVYE9FOC8mHxweIiYqJycnKCsyMi4yNTpDTFhLQDUmHRUREhQdHxwbGx0gKCgjJyoxOkRQQzYtHxQLBgcKExUSERESFiEdGBsgKDU+Sj8yJRkOBP38ABQMCAcHCQ0YEgwRGCEsOkc/MSUbFf308PQUA//+/gAEFgUABxAcKDVCPDEiEQT57/EH7/z49/f5/RP3+P8TGCUzQTsvHRAD9+YLAu/28vHx8/ftBPP+CxcnMkA+MiQYEeoXB/7s8u3s7O7z6wD3/wsYKTVAPy4gEwb5FwX86vDr6urs8er+9QEOGyk4RUEwIxYS7+8F/Ovv6+np7PDx/v4JFSEtPExGNygbDxD2Bv7t8ezr6/Xy/QAIEh4oNEFUSTsuIRoV/vX/7/Tz7/sABQkDCx0kKjZCV09CNSkdEQcB+/z6//T5CvrsBw8fJi45R1pWST0yKyAVDwsKAPUF+/0BEg0VJCwyPklXXVFGPjUpIxoTFAgEBAMFCRYUHCkxOENQXGZcUkc/Ny0jGxsRFQ0NDxIcHSQwOT9KVWJwZVpPRT41KyUfGxgXFxkcJSYtOD9HUVxoeW1hV01IPjUvLCYnIiYjJy4xN0JIUFllcH90amBYUEZAOzcyLy4uLzI5O0FKUlpibHh/fnRpYFpUS0VAPT06Ojs+Q0ZOV1tjbXZ/f399dGtlXlZRTklJSEhHSk9SWGBmbXZ/f39/f354cGhiXltWVlNTVVhcXmRrcnp/f39/enJraGJbWFVSTk5OTlBQVFhbYWdvdH1/eHBnX1hTUE5LR0dERURISUtNUVZbYmpye21kW1NMR0RDQEA+PDs8PkBDRklOUVhgaHJjWFBGPzs5ODg4NjU0NTc5Oz1ARElOV2BqW1BGOzQwKywtLy8uLS4vNDQ1Nzk/RU1XYlFFPjMpIiAeIyMoKiorLC0tKy8xNDtET1lKPjInHhYUEhccIR8dHh8iJiYiJisyO0dRRTcrIhUMBwkMFRYTEhITFhseGhwgKTE+SkAzJx4MA/z9Aw8LCAYGCAwRFA8RFyArOEQ5Lx8SBfvy8vQFAP38/P7/Bg4EBw4ZJTVAOSwaDv/16gsD/Pf08vL0+P77+f4IFCExQDQmHRfw8BcE/fXv6+np7PD2/u/3BBIfLTs0JhcU/O8T//fu6eTj4+Xq8Pn/9gMRHis8NysfFv0REfvz6uTg3dvh5ez07/cEESAuPDgqHw3/8hPv8Ofh3dLV3uPq8vT+ChooMz87MCQYA/cS+fDn4dzR1tzl7Pz/CRIeMDpHQDInFgn87/ry6+Xf3N/n6gUMDQcTHzlBS0U6LBwRBfv39ff57OcYFRQR9+8UFSEtPUxNQTElGRAHBfoD+/nsFuru9PwSDholMUFQVEc5LiQdFAkB+fTw7+/x9fsDExQfKjZFUltPRDkuIyAQCQH9+fj3+v4DChofJjE9S1hkWk0/NSslGRELBwMCAgQHDRMfIy03QlBdbGFVRz0zLyIcFREODQ0PEhcdKS82QExXZHRoXFBGPTctKSQdGhkZGx0iLDE4P0hSX2t7cGVbUEdBOjIsKSYlJScpLjM8QElSXWdzf3luY1pRTEM+OzUzMjIzODo/R05UXGZxfH9/d21kXldPSkdCQD8/QERIS1JYYGdven9/f396cGhjXWBZVFFQUFJWWmFeY2pzfX9/fnRtZWBZVFBMSEVEQ0NERkpNVFheZm11f3NpYVpTTUdEQD05ODk3PT8/Q0dNU1pjbHZpYFZORkA8OTYyMzAvMDEzNTs9Q0lQWGJrX1RLRDkzMCwrKyknJycqLC8xNjc/RU9YY1ZKQDgtJyIkIyMiISAhIyYnKSsvNTxGT1tPQzYsIhsWFxkaGhsbHB0fHiEjJiszPkdTRzktIhcPCwwOERYXFRUXGxoYFhwiKjM/TD8xJRkNBP//AwsNCggJCw4TEg8SGCEsOUc7LiISBvvz9PsGD/78/f8QCAoGCA8ZJjNANScZE/7y7AsC/Pbz8fH09/0E+/0HEyEuPDEkFgj67gwQ+vLs6Obm6e30+/z0AQ8cKjkxIRIE9u8G+/Lq4+ny8eDk7PT9+P4MHis5LyESBPYMAPXr493q/+3h3eXt9wP8CxkrOTQjFAb4CP3x597X4ufk29jg6fP/AQ0cKjg0JhcJ+/r66OTb09bZ19DV4Oz5AAkVIi8+NyscDv/6+u7k3NXOyc3S3BrwBgMJGio0QD0vIRQG+Pzv8urg2dTUJiEbEPL+ChwsNkJCNCgbDQT+/f4A6x7dJiPd4+v2AQ0fLTdDSTwvJxgPAwgKDA0d4Nzd4enx+wYRITA7R1BEOzAgFQrw9u/o5eLi5erx7v8MFyc0P0pZTUE2JhsRB//48u/t7fDz+f8JEx4sOURQXVNIPS4kGhcJAv36+Pj6/gQKEhwmNEBKVWVaT0Q2LCMaEw0IBQQEBgkOFRwlLztHUlxtYVdMQjYtKR8ZFBEQFhIVGiQnMDhET1lkdGpgVklBOjErJSEfHh0fJSYsMjpDTllibH10aV9VS0Q+NjIuLCsrLC8zOj5GTVdibHV/fXNqYVdQS0Q/Ozk4Ojo8QEdKUlljbHV/f39/dWtjXFdZUUtIRkhJTVJZWV5lbnh/f3pxaGBYUk1HQz88Ojk5PD1CRUtPVV9lb3lvZlxUTEZAOzkzMC8uLi8yNTlARUxTWmZwZ1tRSEA5My8sKCQjIiIkJysuNDtASVNdZ11SRj02LSckIR4dGxobHR8gJCkvNj5IVGFSRjwyKCAbGBYXFRMTFBYYGh0gJSs1P0pYSj4yJx0UDwwODg4MDA0PEBMUFxwiKzZCUEM2KR4TCQMCBAQICQkODA0MCg4SGSMvO0c7LiEZCf/29vn/BQP//wMGDAUECBAbJzRDNSgbDQH16/IF//n29PT2+gD5+v4IFCQyPzMiFAf67Q0D+/Pt6ufo6u/1/fv1AQ4cKjouHxED9RcE+/Hp4+Pt5d/k6vP9+fwKGCc1LyIXAPIV/vPo4N/t+vnj2uLq9QD5CBYkMiwdD//xEfjs4dTf7vn749XV5O/7+QgXJTQxIxcC9O/06NzN2eXt593Q1eD09wANGyg4MSMTBfft8eXZztDY3NnSztrn8AMMFiEqOTgnGQv+8PHr49nSys3LOC8lGg4MExYcKzk6Lx4RBPn19+7k29E3ODQuJiDq9hMXHSs5QDQlGQ0FCgQGFSAoMDQyMNPi7fkVGiAuPEY6LSIaFAXwE+wgJy7N0dfe6PP+FhwkMT9OQDUpHxUC9+3l3trX2Nvg5/D6BBkhLDZEU0Y5LCUbCgD27+nl4+Pm6vH4AgwfJi88SllMPzYrIRIKAfr18e/v8vb7AwwVJC44Q09gVUc8NCodFAwGAP78/P4CBw4WHy01PktWZ1xQRz0yJx8YEg4LCQkLDxMaISk2QEdTXnBkWlBGPjMrJx8bGBYWGBwgJi03QEhSW2d4bmNYUkg/NzEsLSYlJSkuLTI5QEtVW2Vwf3htZVxTSkQ+OTg0MzM0OTpARUxWX2Zwen9/enBnYGleVEtEQkFBQkVLUVljYmlzfX95bmVdVU1GQTw4NTYxNDI1OD1DSE9ZYGp1bmRZUUdAOjUvKyolJCQoKy0wNTxFTFZfbGNZTUY7NC4oIx8bGhgZGh0hKCkwOEJLVmJZTkI5LyghGxcTEQ4NDQ8TFhsgKS45Qk5cUEQ5LiQcFQ8MCQgGBQYJCw4QFRwlLjlFU0c7LyQZEAgDAQIA//8AAgQGCAsSGyUxPUpBMycaDwX8+Pn5+vv7Cf3+/QACCBIeKTdGOC4eEgb67+31BQD8+/v8/wb3+f8KFiMxPjMlFwr+8REH//jz7+3t7/T6//f2AxAdKzkuHxIE9u0H/fTs5uHf4OLn7vb/Cf0KHCY0Kx0O//EK/vPq4dre4+DY2+Ps9v/4BhQiMywaDP3wBPfr4dfb5u3p3tHZ4+36+QQTJTMqGwz9DP7x5NnP2+fx6t/R0dzl7/kHFCMyLh0PAQj67N/UyNbj5eLZzdHe6/38CxooNi8hEgT6+OXc1s3N19jWzzouIRQKBQkYJjczJRcJ+vjs6uLXy8fMOD06LiQc7fsJGCY0OCodDwL6+v4XIi44QUZCOzPW4e/9CxknNz4xIxcKBAcLFSEqNT1Dv8XP2eXyAA0bKTdFNyocDgH0GBskKzTEw8bN1uDr9wQSHy08SzwuIRQI7/Dm3dbRzs7R19/o8v4LFyQyP1FCNSgbDwP58Ojh3Nrb3ePq8vAGEh4rOEZVSDsvIxgNA/vz7uro6Orv9f0FFhsmMj5LXlJDOCwhFw4HAPv39fX4/P8IFxokLztGVGVYTEE2LCYaEw0IBQMEBQkOFB8kLjhDT1psYlVLQDcuJiAaFhMREhMWGyEoMDlDTVljd2pgVUtCPDMtJychICAiJCkuNzxEUFhibn90amFXTklAOjU0Ly4uMDI2O0NKUVlibHd/fnZsY1xlW1FIQj0+PD5BRExUXl1lb3l/dmxiWVFJQz03MzAwLSwtLzI3PkNMVV5ncmtjV01FPTYvKSQiIB4eHyElKjA3QEdRXWlhVkxCODAoIhwYFBIQEBEUGB0kKzM9SVReV0xBOi0mHBUQCwcFAwQFCAsQGB8pMj5KWk5CNywiGBAJA//8+fn6/P4CBwsVHio2Qk9GOi0iGw0D/Pj19PHx8vX3+fwDChUhLjtIPjElGQ0B+PDu8gkGBQUGCvL0+QINGic0QTgtHRAE+O0PBwD7+Pb2+PwCCO/5BhMgLjsxIxUJ++8OA/vz7uro6Orv9f0F8P8NGyg4Lx4QAvQPA/nv5+Dc2dnc4ujx+wb6BxUjMikbDP3vBvrv5NvU0NHMz9Xd5/H99QMSIC4rHQr77f/z5tvQ1dvf3NXK0t3p9v4CESAvKRoL/Pn67N/Sz9rg4d3VysrY5fb9BxUhMCscDv8E9ujayM/Z4ODa0MbM2hf9BQcbKTYuIBED//Pl3NTK09nZ1DVANSgcEQkFGyk3MiQVB//z8One0zYyMTY9Qzgt2+j2BRknNjcrGw4C/P4DHCk2PsJBSEY9ztzq+AYaKTg8LyEXBggLER0qNj+2rrO8xtPg7vsSHSs5QzgqHAr98B0iLjjAubq+xs7a5vMADR8uPUs9MCEQA/fr4NfPycbHytHZ4+76BxMmM0BQQjQnFwsA9eri29bT1Nfd5O33Ag4aKjhHVkk8LiAUCf/27ujk4uLl6vD4AgwXIjI/TF1RQzYrHhQLAvv18vDx8/f9BA0WICs5RlNkV0tAMygfFg8IBAD+/wEFChAZISs1Q05bbGFVSD00KyMcFhIODg4PExceJS04QExYY3ZqXlRIQDcwOS4lHhwcHSElMTE5Qk1WYW1/c2lfVExEPUI4MSwrKy0vMzw/RU5YYWt2f350aWBZYVZMRD07Ojo7PUFIUFpaYm13f3ZrYllPSUA6NTAvLissLC4xNTxBSVNbZHBsYlZOQzozLSciHiAaGRogIyguND5GTltnYFVMQDkuJh8ZFBANCwsMDhIcISoyOUZSXVZLQDkrIhkSDAYB//39/v8FCxIfJDI+SVhOQTYrIBYNBf748/Hv7vD0+P8GEB4pMkFPRTksIRYLAfnx6xUSEBAT6u7z/AUSHi86Rj0wJBgM//bsEgsHBAICBAgM7fL+CRckNEI3KRwPA/fsDAT++fXz8/b6/wYO9gMQIy45MSIVCPruCgD48Orm5OXn7PL6A+/wEhwqNiwdDwH0DO717OPd1s3N197l7vgS7hIYITIpGgv87hLu6+HX09vY08rR2ePu+vL/FyMxKhgJ+uzw6eLX0t3l5d7Txs7Z5evxARAfLigZCvsQ7uPbztfk7u/l2MrH1uX5/QgVIzMqGw3+8evf1sjW4+3t5Nc3OSocCAkRGCUxLR8QAvPo4NvR0dwdGSQuOzsuIxbrERklMzEjFAb47/Pm2jMwKiovOEJANdTg7A8XIzE1KhoMAv0BFCIvPDjIPENMvMnX4vQQGCUzOy4hFw8MDhQkMT5KrKastsLP3OnuExsnNEM0JBsT7+zeLDZCt7OzuMDK1uLp7hMZKjhHOi0fFO/s6N3TysTBwMXM1d/q7BAXIy88TD4xJhsI7vHn39fSz8rT2eHq9PETHSg0QlJFOSwhGQb88+vl4N/f4ebt9f4SGiMwPEhaTT41KhsZCP/58+/t7vD0+gEKGSItNUNQYVVJPjEqIBQNBgH+/Pz+AgcOFiMrNkFMV2leUkc+NCshGhQPDQsLDRAVGyYrN0BKVmBzZ1xSST84LjUpHhsZGhwfIy4vOUFMVF9qfHFnXVJMRDs+NC0qKCgrLTE5PUZNVmBpdH98cmdgWF5TSUE7ODk3OTxARE5YWmJrdX50amBXT0dAOTQvLCooKCgrLjI6P0dRWWRua2JVS0I6MywmIR0bGRkaHB8kKjI8RE5ZZmBVSkA2LSUeGBMPDAoKCw0RFh4lLzlEUVxWS0A5KyEZEQoFAP37+/z+/QkRGSQuO0dXTUE2KyAWDAT99vLv7Ozt8PX8BA8ZJjI/TEU5LCEVCgD37+kUERAQEhXn7/kEER4qOEY9MCQXDAD16xELBgP//wMHDBPw/AkWJDI/NikcDwP26wwE/fj08vL1+f4GDvUCEB4rOTAiFQf67goA9/Dp5ePj5uvx+QIN/AoYJjMrHQ8B8wwA9evi29HMyNLd5O33AvcEEiEvKBoL/PAD9+vg1tfb29bI0Nji7fr6AA4dLCcYCfr3/O/i1tTh6e3i1sjN2OXy/wEQHy4oGQr7BPbo2s3Z6Pj86dvMx9Xk+v4IFiMxKhsN/v/y49XK2ecGChgmNTorHQkKBBMiMS0eDwH+7+HZz9PfFRkdLDk+MSUY8wIRIC8wIhQF/u/05Ck2LSgnKzVBRjrV5PMCESAvNScZDAD8AhcmNDs2ysa/tbrI1+b0AxIhMDstIBEDDBAbKTZEUqGiqrTAytvp+AYUIzJBMiQVB/ns3zDHvLSvr7a/ydXi7/wLGSc1RTYpGw0A8+fc0cnDvbnDy9Te6vYDER4sOko9LyEVCPzx593W0cjD0djg6fP/CxclMkBRQzYpHREG/PLq5ODd3eDl7PX+CRQgLDlGWUs+MiYbEAf/9/Lu7Ozv8/kBChMeKTVBT2BTRzsxJhwTDAUA/fv7/gEHDhYeKDM+SlZoXVFGOzEoIBkTDgsKCgwQFRsiKzM+SFRfcmZbUEc9NS0zJx0aGRkbHiMsLzdASlNeaXtwZVxSSUI6PTMsKSgoKiwxNjxDTFVfaHN/enFnXlZdUkhAOzc3Nzk7P0RNV1hhaXR9dmtiWU9JQDo1MC8uKCwsLjE1PEFJU1tlcGxiV05DOzMtJyIeIBoZGiAjKC40PkZQW2dgVUxAOS4mHxkUEA0MCwwOEhwhKjI7RlJeVktAOSsiGhIMBgH//f3+/wULEh8nMj5JWU5BNisgFg0F/vjz8e/v8PT4/wYQHik1QU9FOSwhFgsB+fHrFRIQEBPq7vP8BhIeLztHPTAkGAz/9uwSCwcEAgIECAzt8v4KFyQ0QjcpHA8D9+wMBP759fPz9vr/Bg72AxAjLjsxIhUI+u4SAPjx6ubk5efs8voD7/ASHCo2LB0PAfQT7vbs493Xzc3Y3uXu+BLtEhgkMikaC/zuEu7r4dfS2NjTytHZ4+7w8v8XIzEqGAn67PDp4tfS3eXl3tPGz9nl6/EBEB8wKBkK+xDu49vO1uTu7uXYysfW5fn9CBUjMyobDf7x69/WyNbj7e3k1zc5KhwICREZJTMtHxAC8+jg29HR2x0dJC47Oy4jFusRGSUzMSMUBvnv8+baMzAqKi84QkA11ODsDxcjMTUqGgwC/QEUIi89Ocg8Q0y8ydfi7RAYJTM7LiEXDwwOFCQxPUqspqy2ws/c5e4TGyc0QzQnGxPv594rNkG3s7O4wMvW4unuEx0qOEc6LR8U7+zo3dPKxMHAxczV3+rsEBcjLzxMPzEmGxHu8eff19LPy9PZ4er08BMeKDVCUkU5LCEZBvzz6+Xg39/i5u31/hIaIzA8SFpNQDUqHxkIAPnz7+3u8PT6AQoZIi03Q1BhVUk+MyocFA0GAf78/P4CBw4WIys2QUxYaV5SRz40KyEaFA8NCwsNEBUbJi03QEpWYHNnXFJJPzguNSkeGxkaHB8jLi85QUxUX2p8cWddVExEOz40LSooKCstMTk9Rk1WYGl0f3xyaWBYXlNJQTs4OTc5PEBETlhaYmt1fnZsYllRSUM9NzMwMC0sLS8yNz9DTFVeaHJsY1dNRT02LyklIiAeHh8iJSowN0BIUV1pYVZMQjgwKCIdGBQSEBARFBgdJCszPUlUX1dMQTctJhwVEAsHBQMEBQgLEBgfKTI+SlpOQjcvIhgQCQP//Pn5+vz+AgcLFR4qNkJPRjouIhsNA/z49fTx8fL19/n9AwoWIS07SD4xJRkNAfjw7vIJBgUFBwry9PkCDRonNEE4LR0QBPjtDwcA+/j29vj8Agjv+QYTIC48MSMVCfzvDgP78+7q6Ojq7/X9BfD/DRsoOC8eEAL0DwP57+fg3NnZ3OLp8fsG+gcVIzIpGwz97wb67+Tb1NXY1s/V3efx/fUDEiAuKx0S+/T/8+bb0NTb393VytLd6fb+AhEgLykaC/z5+uzf0sfZ4ODd1crK2OX2/QcVITArHA7/BPbo2szA2eDg2tHGzNsX/QUHGyk2LiARA/7z5dzUytPZ2Sw1QDQoHBEJBRspNzIkFQf/8/Dp3tM2MjI2PUM4LSXo9wUZJzY3KRsOAvz+AxwpNj4+QUhGPcvc6vgGGik4PC8hFwYICxAdKjU/SVCzvMfT4O77Eh0rOUM4KhwK/fAdIi43wLm6vsbP2ubzAA0fLjxLPTAhEAP36+DXz8nGx8rR2ePu+gcTJjNAUEI0JxcLAPXq4tvW09TX3eTt9wMOGio4RlZIPC4gFAr/9u7o5OLj5erw+AIMFyIyP0xdUUM2Kx4UCwL79fLw8fP3/QQNFiErOUZTZFdLQDMoHxYPCQQA/v8BBAoQGSErNUNOW2xhVUg9NCsjHBYSDg4ODxMXHiUtNkBMWGN2al5USUA3MCkkJR4cHB0hJSsxOUJNVmFtf3NpX1RMRD05MjEsKystLzM4P0VOVmFrdn9+dGlgWWFWTEQ9Ozo6Oz1BSFBaWmJtd395bmVdVU1GQTw4NTYxNDI1OD1DSE9ZYGp1bmRZUUdAOjUvKyolJCQlKy4wNTxFTFZfbGNZTUY7NC4oIx8bGhkZGh0hKCkwOEJLVmJZTkI5LyghGxcUEQ4NDQ8TFhsgJi45Qk5cUEQ5LiQcFQ8MCggGBgYJCw4QFRwlLjlFU0c7MCQZEAgEAQIB////AgUGCAsSGyUxPUo/MycaDwX8+Pn5+vv7Cf3+/QACCRIeKTdGOC4eEgb68O31BQD8+/v9/wb3+QAKFiMxPjMlFwr+8REH//jz7+3t7/T6//f2AxAdKzkuHxIE9u0H/fTs5uLg4OLn7vb/Cf0KHCY0Kx0O//EK/vPq4dre4+DY2+Ps9v/4BhQiMykaDP3vBPfr4dfb5u3p3tHZ4+76+QQTJTMqGwz+DP7x5NnP2+fy6t/R0dzl7/kHFCMyLh0PAQj67ODUyNbj5eLZzdHf6/38DBooNi8hEgT2+OXc1s3N19jWzzouIBQKBQkYJjc0JhgK+vjs6uLXy8fMOD06LiQc7fsJGCY0OSsdDwL6+v4XIi44QUZCOzPW4e/9CxknNz4xIxcKAwcLFSEqNT1Dv8XP2uXyAA0bKTdFOCocDwH0GBskKzPEw8fN1uDr9wQSHy09SzwuIRQI7/Dm3dbRzs7R19/p8v4LFyQyP1FCNSgbDwP58Ojh3dvb3ePq8vAGEh4rOEZVSDsvIxgUA/vz7uro6Orv9f0FFhsmMj5LXlJEOCwiFw4HAPv39fX4/P8IFxokLztGVGVYTEE2LCYaEw0IBQMEBQkOFBwkLjlDT1psYlVLQDkuJiAaFhMSEhMWGyEoMDlDTVljd2pgVUtDPDMtJychICAiJCkuNzxFUFhibn90amFXTklAOjU0Ly4uMDM2PENKUVlibHd/f3ZsY1xmW1FIQj0+PD5BRExUXl1lb3l/enFpYFhSTUhDPzw6OTo8PUNFS1BVXmVveW9mXFRMRkA7OTMwLy4uMzg1OUBFTFNbZnBnW1FIQDkzLywoJSMiIigsKy80O0BJU11nXVJGPTYtJyQhHh0bGhsdICIkKS82PkhUX1JGPDIoIBsYFhcVExMUFhgbHSAlKzU/SlZKPjInHRQPDA4ODgwMDg8QExUXHCIrN0JQQzYsHhMJAwIEBAgJCg4MDQwLDhIZIy87RzsuIRQJ//b3+f8FA///AwYMBQQIEBsnNEM1KBsNAfXr8gX/+fb09Pb7APn7/ggUJDI/MyIUB/ruDQP78+3q6Ojq7/X9+vUBDhwqOi4fEQP1FwX78enj4+3l3+Tr8/35/QoYJzUvIhcA8hX+8+jg3+36+OPa4ur1APkIFiQzLB4P//ER+O3h2N/u+vvj1drk7/v4CBclNDEjFwL07/To3NPZ5e3n3dDV4PT3AA0bKDgxIxMF9+3x5drQ0Njc2dLO2ufwAwwWISo5OCcZC/7w8erj2dLIwMI4LyUZDQwTFhwrOTosHhEE+fX37uTb0Tc4NC4mIOr2ExcdKzpANCUZDQUKBAYVICjQNDIw2OLt+RUbIC48RzotIhoUBfASFCAn0s3R197o8/4WHCQxP05ANSkfFQL37eXf2tjY2+Dn8PoEGSIsNkRTRjksJhsKAPfv6eXj4+br8fkCDB8nLzxKWUw/NiwhEgoB+vXx7+/y9vsDDBUkLjhDT2BVRzw0Kh0UDAYB/vz8/gIHDhYfLTY+TFZnXFBHPTMnHxgSDgsJCQsPExohKTZAR1NecGRbUEY+MysnHxsYFhcZHCAmLTdASFNbZ3huY1pSSD83MSwoJiUlJiktMjlAS1NbZXB/eG1lXFNKRD45NjQzMzQ2OkBFTFZfZnB6f396cGhgV1FUS0RCQUFCRUtRU1piaXN9f350bWVgWVVQTEhFRENDREdKTlRYX2ZtdX9zaWFaU01HREE9Ojg5OT0/P0NITVNaY2x2aWBWT0ZAPDk2MzMwLzAxNDU7PURJUFhia19US0Q5NDAsKyspJycoKiwvMTY4P0VPWWNWS0A4LSciJCMjIiEgISQmKCksLzU8Rk9bT0M2LCIbFhcZGhobGxweHx4hIyYsMz5IU0c5LSUXEAsMDhEWFxUWFxsaGRYdIiozP0w/MSUZDgT/AAMLDQoJCQsOExIPEhghLDlHOy4iEgb78/T7Bw/+/f3/EAgKBggPGSYzQDUnGRP/8uwLAvz28/Hx9Pf+BPv9BxMhLjwyJBYI+u4MEPrz7Ojm5+nt9Pv89QEPHCo5MSETBPbvBvvy6uPp8vDg5Oz0/fj+DB4rOS8hEwT2DP/16+Pd6v/t4N3l7fgD/QsZKzk0IxUG+An98efe1+Ln5NrY4Onz/wENHCo4NCYYCfv6+ujk3NTW2dfQ1eDs+QAJFSIvPjcrHA7/+vru5NzVzsnN0twa8AYDCRorNEA9LyIUB/j87/Hq4NrU1CYgGxDy/gocLDZCQjQoGw0E/v3+AOse3SYj3uPr9gENHy03Q0k8LyYYDwMICgwNHeDc3eHp8fsGEiEwO0dQRDswIBUK8Pbv6eXi4ubq8e7+DBcnND9KWU1CNiYbEQf/+PLv7e3w8/r/ChMeLDlEUF1TSD0uJBoXCQL9+vj4+v4EChIcJjRASlVlWk9ENiwjGhMNCQYEBAYJDhUdJS87R1JcbWFXTEI2LikfGRQREBYSFRskJzA4RE9ZZHRqYFZKQTozKyUhHx4dHyUnLDI6Q05ZYmx+dGlfV0tEPjYyLiwrKy0vMzo+Rk1YYmx1f31zamFXUEtEPzw5ODo6PEBHSlJZY2x1f39/f3VrY1xXWVFMSUZISU1SWVleZW54f39/enNrZF9cWFVSUE9OTlFUWFtcYWdtdH1/eHBnX1hTUE5LR0dERURISk1QUVZbY2pye21kW1NMR0RDQUE+PDs8PkBDRklOUVlgaXJjWVBHPzs5ODg4NjU0NTc6PD5ARElPV2BqW1FHOzQwLCwtLy8uLS4vNDQ1ODk/RU1YYlFFPjMpIiAeIyMpKykqKy4yMC8yNT5ET1lKPjInHhsUEhcdIh8eHh8iJiYjJys1O0dRRTcrIhUMBwkMFRUTEhIUFhseGhwgKTI+SkAzJx4MA/3+Aw8LCAYGCAwRFA8RFyAsOEQ5Kx8SBfvy8vQFAP38/P7/Bw4EBw8ZJjVAOSwaDv/16gsD/Pf08vL1+P77+f4IFCIxQDQmHRfw8BgE/fXv6+nq7PD3/+/3BBIfLTs0JhcU/O8T//fv6eXj4+bq8Pn/9gMRHiw8NysfFv0REvvz6uTg3t7h5ez17/cEESAuPDgqIA0A8hPv8Oji3dvb3uPq8vT+ChooMz87MCQYA/cS+fDn4d3b297l7Pv/CRIeKjpHQDInFgn97/ry6+Xf3N/n6gUMDQcTHy48S0U6LB0RBfv39fb57OgYFQ0R9+8UFiItPUxNQTElGRAHBfoD+/nt6+ru9PwSDholMUFQVEc5LiQdFAkB7/Tw7+/x9fsDExQfKjZFUltPRDkuIyAQCQL9+fj4+v4DCxogJjE7S1hkWk1ANSslGRELBwMCAgQIDRMfIy03QlBdbGFVRz0zLyIcFREODQ0PEhcdKS82QExXZHRoXFBGPTctJiQdGhkZGx4iKDE4P0hSX2t7cGVbUEdBOjIsKSYlJScqLjM8QUlSXWdzf3luY1pRTEM+OzUzMjIzODo/R05UXGZxfH9/eG1kXldPSkdCQD8/QURIS1JYYGdven9/f396cGhjXVdST01MTE5QU1leY2pze39/f394cWtoZWJfXFxaWlpdXmJlZ2pwdXx/f310a2VfW1hYV1VSUVBRU1VXW15iZmtzen9zaWBZVFBOTU5NS0lKSUtNUFJVWFxiaXF6amBUTUZEQEFCRENCQkNFR0lKTE9TWF9ncWBWTEI7OTUzNzs9PTs9PkBCQkRGSU5WXmhXTUE4Mi0pJywvNjQzMzQ3PTo6PD9GTFVhT0U4LyYgHB4iJioqJycoKzMyLjI1OkNMWEtANSYdFRETFB0gHBsbHSAoKCQnKjE6RFBDNi0fFQsGBwoTFRIRERMWIR0YGyAoNT5KPzIlGQ4E/fwAFAwIBwcJDRkSDREYIS06SD8xJRsV/fTw9BQD//7+AAQWBQEIEBwoNUM8MSIRBPnv8Qjv/Pj39/n9E/f4/wwYJTNBOy8dEAT35gsC7/by8fHz9+0E8/4LFycyQD4yJBgR6hcH/+zy7uzs7vPr//f/CxgpNUA/LiATBu8XBfzq8Ovq6uzx6v71AQ4bKTZFQTAjFhLv7wX87PDr6urs8fD+/gkVIS08TEY4KBsPEPYG/u3x7evr9PL8AAgSHig0QlRJOy4hGhX+9f/v9fPv+wAFCQMLHSQqNkJXT0I1KR0RCAH9/Pr/9PkK++wHEB8nLjlHWlZJPTIrIBUPDAoA9QX7/QESDhUkLDM+SlddUkY+NSkjGhMUCAUEBAYJFhQcKTE5Q1BcZlxSRz83LSMbGxEVDQ0PEh0dJDE5P0pVYnBlWk9FPjUrJR8cGBcXGRwlJi04QEdRXGh5bWFXTUg+NS8sJigiJiQnLjE3QkhQWmVwf3RqYFhQRkA8NzIvLi4wMjk7QUpSWmJseH9+dGlhWlRLRUA+PTo6PD5DRk5XXGNtdX9/f310a2ZeV1FOSUpISEdKT1JYYWZtdn9/f39/f3hwaGJeW1ZWU1NVWFxeZGtyen9/f39/fXhzcG5tbGloZmZmaGltcHJ2e39/f39/eXJraGVjYmNhXl1dXmBhZGdpbXF2fH9/eXBnYFxYVVZXWVhWVldYW11eYWRnbHJ5f29lXVZRTEpITE9SVlRUVldaWllbXmJqcnhmW1JLRj8+P0FESEpISEpLUFBPUVRYYGdvX1JJQDs0MTM1Oj8/PDxAP0VHRUZJTlRdZllNQjcyKSYoKy40NDAxNDU4PDo7PkVLVF9RRjguKR8aHBskLSwmJi0uMjIuMDQ6Qk5YSj8yKB0WERERGSAiHBwiISUlJSUpMjxFUUY5MSEXFgcFBg0XGhMTGhgcGBQbJTA0QE1GOS4iEgcA+/oBEBULCxURDgsMEhkoLzxJQjImGQ39+fLv9QkTBAQRCgH9AgoVIDA8SEEyJRgT6/XtFwgE7////wX39PwHEyAsO0hDNikfGv/1ExQFAO77+/ABEPH8CBMgLTpKQTQnHhnv9REV/v7r+fnu/xLy/ggbIS88TUQ3KiIYBPkRFAL+7fn5+v/x9QIOGiozQE1KPTAlHAn/9e8E/+76+vwA+QASFiEvPEdTTUAzKx8QBvD2+f7t/f35/wUNFR8qNj9LV1NGPDMmGA8S//r5+f4AEAgUExskMjtET1laT0Q5KyEYGQwIDQgICAoOGB0gKzY/RlJeYVVNQTQuKCIaFhQXEBAXFR8jJy87RE5XYmpgVktCOjUtKCEdHxkYGh4lJy44QkpSXWh0a2BWTkY8NTIsJigiIicmLjA3PklSWmRuf3RoYFhPRT47NDAxLSwuMTc8QEdRWWJsdX97cWhhWE9JRT47PDc6OztBREpSW2Jpc31/f3lyamFZU1BLRkZDQ0RHTVBVW2RsdHx/f39/e3RsZV9bVVJRT09QU1dcYGVudX1/f39/f39/eG9qZmFeXltcXV9jZmtyen9/f39/f39/fHl2d3h1c3JxcnR2eXt+f39/f39/f395dHBsamttbWxqa2ttbnFzdnh8f39/f352cGllYF5fYWRlZGNkZWhqbG1vcnZ8f391bGRfWVRTVFVYXl9dXV9gY2VkZmhscnl/bGNaVExJR0hKTlJVUlJVVldbWltdYmhud2ZbUktEPjw9PkJISUZGSUpNUE9QUldeZW5eUkpCODMyMjM1PT87Oz8/Q0VERUhNVF5nWExBNy8qJSYoKjI3MzM3NTk4ODs+Q0xUYFNHOzArIB8bFx8mLSgoLS0xLCwvNDtETVlQRTkqIBkTEBMSGSMfICckIR0iJSwzP0hVTEA1JhwRCwUEBgwZGBgdFhMQFhwjLjhHUkc6MCcXFQT++/kBEBIWCAcFCA0ZHyo1QlFGOi0mHRP/+ezw8fUNDfn5+v8HESAoNEFRST0yJxQK/+vw7Q4YCgoW8fL7BhEcKzVBVEg+MyodC+/r8e8MGAgIF/Py+wcTHy04RFdLQDYoGA4D7fXvDBcICBUN9f8SFSEtPEZTUEU5KxwRExD69A0TCQnr8/AFDyAmMj5NWVRIPjEjGQ8IAvv49fTz+P8GDxkmMTtGU2BYTkM2KiAdFgkDAP78ABAKESAkLTlETlliYFZKPjIoJBgTFQsKFA4SGR0pLjQ8SVJcZmheUUQ7MjAmHh8ZGR0cICImMDI6RE9YYWtwZFlORUA6MCwtJyclJSopLTc5QEhUXWdxeW1jWlJMRT46NTEyLS0yMjY+QUhSW2Rrdn93bmZfVk9KRj46Ozc3OztBR0pRWGNsdH1/f3pyaWBZU05IRUVCQkVGSVBVWWJrc3x/f39/e3JpYl1YU1FQTE5QUFNaXWRsdHx/f39/f397c2xoZF9bW1hYW1tgZWhudX5/f39/f39/f395c25qZ2ZkZGZnanB0e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f314dXN0dnh8f35+f39/f39/f39/f39/fnhybGhoaWptcnRycnR2d3p5e31/f39/fXNtZ2FdXF1fYmZpZ2dqa2xwb3Bzdnt/f3VsZF5WUlJSU1ZbXltbXl5iZWRlaGtweH9tY1xUTEdHR0dLT1RQUVRXWlpaXFxhaG93ZVtSS0M+PDw8PkNKSEhLTE1NTU9SV11mbl9USkQ8NDMwMDM3Pj09QkFBQEFESFBYYmhcUEY9NCwmJSckKjA0NDc2MzM2OT5FT1phWEs/NC0kHhsZFx0jJygoJyUnKzE2PkhSXlNIOjAmIxcSEBIQFRgZGhkXHiEmLjdCTVpPRTwwKBkQCxEFAwcJCgsKDhMYICkzPkpWTkQ7LyMWDhEA/Pv5+/z8AAULEhwmNT1JVVFGOikfFRUT/vjz8fDw8/f+BxcbJzJASVZTSDwuIBoZBf738+/s7O/0/gcRICgzP01YVEk8LSIYGxIB7Pfz8PDy+O8KFCIsNEJPW1hLPjEmIB0NB+3++vf37v0QDRgiMTpGUl9dUEM4LCYjEw0VBP/9/u8GDBwfKTZCS1dkYVVJPTMsJhsUGQwIEQgTERgkKzM9SVVfa2dbT0M8NC0iHB8VExgTFSEjKjc8RlFdZ3BuYldLQj01LCYoHh4kHyUuLzZARU5XYmt0dWleVUtHPzg0MywsMC4xNzlBRktTXWhxen1xaF5YU0pEQT86Ojo6Pj5BSU9UWmNud39/fHJrZF5WUE5JR0ZCREdGSlFWW2JsdX5/f39+d3BpY15ZU1FPTUxQUFVaX2Nqc31/f39/f396c2xoYF1ZWVdXWlpeY2huc3x/f39/f39/f3x1cWxnZmRjY2VlaG5yd35/f39/f39/f39/f3x3c3FvbW5wcXR5fX9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f359fn9/f39/f39/f39/f39/f39/f39/enVycXJ0dnp+fHx+f39/f39/f39/f39+d3FrZ2dnaWtvc3Bwc3R2enl6fX9/f399dW5lYF1cXFxfYmhmZmhqbG9ub3J1en9/dGxlXFdSUlFRU1dcXV1fYWNiYmRoa3F3f25lXVVNSkZFRkdKT1JSVldZV1ZYXGFob3dpX1ZORT89Ojw7PkJHSElISEhKTlJYX2lxZFlPRz03NDAvMDI0ODk6OTs9P0NKUFdhbF9TST45MiomJSYlJyorKysuMjU6QkhRWmVdUUQ8NCwjHhsaHBkbHBwgJCcrMjlETFZhWlBFOy0lHBcTERAKDA0VFBkeJCs0PkpVX1lPQjctIh4YDAoHBgUFBwoRFx4nMT1JVF5bUUA0KiQjEQsQAf/9/gADEhMbKTE8R1VgXVFCNSsnIBILFgH9+/vvAggTHCY0PUhUYl1QRDcwKiIVDhQF//7/7gUKGh4oNT9LV2NeUkU6MC0kGhMXCwcEBBMKEB8kLThETVllYlZJQDkzKR8dGxEUCwsWERcjJzE7SFReamhcUEU+OCwmICAZFRITGhkgJjM4Qk1cZnFtYFZMRT80LSsoIB0hHR8qLDM8RExWYW14dGheVU5HPDYzLyooKygqMzY8RVBXYGp1f3twZV1WTkU/PTo0NTc0Nj5ESE9YXmZxe39/eG9nYFhRTElGQkFEQ0VKTVRbX2Vtdn9/f394cWtjXVhVUk5NT09RUlZbYmdtdX1/f39/f313b2lkYl1cW1lZXFxeZGpudHt/f39/f39/f3t3cmxnZmRiYmVmaG5zeH1/f39/f39/f39/f3t1cnBubGxvb3J3fX9/f39/f39/f39/f39/f3x7eXh4ent9f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fXx8fn9/f39/f39/f39/f39/f39/f395dXJxcXFzdnt7e31/f39/f39/f39/f393cGtoZ2ZmZ2tvcnF0dnh3d3h8f39/f352b2ZhXltaW1xeYmZnaWpqaWttcHV8f394b2hgWFRRUFFQUlVYWVxcXF1fY2Zrcnp/cmlgWFBKSUVERUZJS0tOTk9RVFddZWlxe2xhWVJIQkA7Ojs6PD4+QUFDRkhNVFxia3RnXVNMRjs2NDAvMzIyMTQ1OTs/REtUXGRvZltRSD43LyonJiUkJyYqKSwxNz1ETlhga2VbUEQ5MS0oIR0cGxoaHB8mKTA5P0lSX2pjV0tBNzEsIBodFRIRERkXGyUqMzxGUl1pYlVJPzczKx8ZGhAMCwoXERYjKDA+RlFcaWNXSkA5NSkfHhoPEwoKFxAVJCgxPUlSXWllWU5EPTYpIiAWEw8NDRcSGCQsMz1KVF9rZlpPRD85LSYmIBccGBEcFxwmMDZATFhjbmldU0tEPDIrKiIeIBgZHyEiKzY8RFBcZ3FvZFpRTEI4MjArJSYiHyQpKjA7Q0tVYG14dWlfV1BIPzk3MC0uKygsMjM5Qk1UXGZzf3pwZl9ZUEhCPzo1NTUyNDxARExVXmZwen9/eG9nYFdPSUhBPz8/PT9FS09WX2lweX9/f393cGhfWVRSTUlKS0hLUFdaYWhwd39/f39/f3pyamRgXllWVlhXWFxhZ21yeH5/f39/f39/fHVwbGplY2JkZGZoam50fH9/f39/f39/f39/fHh2cm9vbm5xcnN4fX9/f39/f39/f39/f39/f3x7eXd3ent9f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f399fHt7fH9/f39/f39/f39/f39/f39/f3p1c3BvcHFzdnp9f39/f39/f39/f39/f3lybWlmZWVlZ2lsbW9vcXJzd3p/f39/f3pxaWRgXVpaWltdX2BhYmRmaGxwdXx/f3tya2FcWFRRT1BPUVJSVVVYWl5hZm50e392a2RdVk5JR0VERUVGRkhKTU9UWF1kbXV+cWdgWFBIQ0A8Ozo5Ozs+PkFGSlFWXWdweHBmXFFIQzw4NDQxMC8wNDQ3PkJJT1hgbHZvZFlORT87Mi4tKCklJiwqLjc8RExUXWd0a2BWTUU+Ni4rKSIgHx8lJCgyNj9JUlxncmpfVExFQDUtKSIeIBkZIh8kLjQ8R1JbZnFrX1VNRz4zLC0lHiAZGSAiIy02PUZSXWhybmNZUUo/Ni8uJCEjGxsiICYrOEBHU19pdG5kW1NNRDs2MyglJx8gJSgpMTtBS1VhbXdyZ15XUUU+ODgvKy0mJiotLzQ/SFBZZHB7d21kXVVMREA9NTI0Ly0xNjc7RU5VXmh0f31zamJbUUtGRDw5OjY0NT09REpVXWVveX9/eXFpYlhSTktEQUI/PUBGSUxTXGZudn9/f395cmlhWlZTTEpKSUhJT1VZXmZvd39/f39/f3pxaWNfXFZUVFRSVFhfZGlweX9/f39/f39/enJsaWZiXl9gXWBjaW9zen9/f39/f39/f399eHVybmtrbGtsb3V5f39/f39/f39/f39/f39/fnp3d3l4eXx+f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f357ent6fH5/f39/f39/f39/f39/f39/fXh0c29vb3Byc3R1d3l6fX9/f39/f39/fHVvbGlmZGVlZmdnaWptb3N1en9/f39/fXZuaWNfXF5eXFxbW11fYWVobHF4f39/f3hxaWFbVlVTUlBQUFBSUlVaXmRpb3d/f310a2JbVFNNSUlGRURFSElMUlVbYWlxen97cGVdVlFMRUFBPTw6Oz9AQklOVV1ka3V/eG5iWlFNR0E7ODY2MjM3NztCSU9XYGhyfXVrYlpSS0I8OTYwMSwtMjM2PUVLU15ncXt0aWFZU0pAOjgwLS4oKC4tMzhDSlJcZ3B7dGpiWlRKQj05MCwuKCgtMDE6QkpSW2dyfHhuZV5USkM+OzIvMS0qLzIzOUJMU15odH55b2dgWE5GQz42MjQuLjI2NjxGUFZgaXV/fHJqY1tSS0dEPjs7NjQ4OztBSVNbY215f393b2lfV1BNSEI/QDo6PUJDR09YYWlyfX9/fnZvZl5XU09JRkdDQERJS05UXmdvd39/f39/dWxkXVpWUU1OSklKUFRXXWVud35/f39/f3tza2ZiXllXVlRSVVleYWZudn9/f39/f39/e3NuamZhX19eXV5iaGxxd39/f39/f39/f398dnRwa2lpaWdpbHJ4fH9/f39/f39/f39/f39+enV0dHRzdHh8f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f38="},"Spine1":{"min":[-0.1861,-0.0666,-0.153],"dims":[26,18,24],"data":"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6O0YGxgcIy87R1NhTEQ9Mywq2djX2NrX294lJSEiKDRATFhmf39/f39/f39/f39/f39/f39+fX1+f39/f39/fXt3d3d4e35/f39/e3d0c3N1eH1/f395dHFubGtsb3F1eXt0b2tqaWlrb3R8f3hxbGhkYmFhYmNjZGRjY2FfXmBhZmx0eXFrZF9aV1ZVVlVVVVZWVlZVVVVZX2VsdW1lYFhRTktJSUhJSkpKSkpLTU5SWWFocmlgWVBLRUJAPj08PT0+P0BDREdLUltjb2heVEtDPjk1MzExMDEyNTY6PkFHTlVebmVZUEc/NzItKignJygqLDA0Oj9ETFNcbGFXTUQ7MywmIiAfHyEkJzAxNzxCSVNcZ15USkA2LiYhGxkYHhwgJC0vNTxBSFJbYFhPRTwxKSEbFhQUFRodIyouNDhASVJbWVFJQDYtJB0WEA8PEhYbISYsMjk/SFFcVEtAODAnIRcSDAsMDxQZHyQqMThASVNdUUg9MykhGRMNCgoKDRIXHSMpMDhBSVRfUUc8MiohHBULEggUFA8VISEoLzlCTVdjU0o+NS4oIx8dHBgdHRkeJiYnMDpFTlpoV09EPDYyLiwr19oqKSYpLy0uNDxIU19sf39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fn5/f39/f39/f3x5d3Z2eHp9f399eXZ0dHV2en9/f399d3JvbGtqamlqa2tra2tqamtucnh/f352cGpmYmBfXl5eXl5fX19gYWJma3F4f3hwamNeWldVU1JRUlJTVFVXWVpeZGtzfXRrY1xWUU1KSEZGR0ZISkxOUVVZX2VvenJnXldQSkVBPj08PD0/QUNHS09WWmJqeG5kW1NLRD88NjQzMzQ3Oz1BR0xSWV9odmxiWE9HQTk2MC0tLS8yNjw/REpPVl5ocmheVEpCOjMuKScmKCsvMjg9Q0lPVV5na2JZT0Y9NS4oJCIiIygsMTY8QUdNVF5nZFpSSUE4MCgkHx0eICQpLjQ6QEZOVV1mX1VKQjoyKiceGxofHiInLDI4PkVNVV5nXVJIPzQtJh8cHRkZGyAlKjA3PUVMVl9pXFFHPjYuJyMeHRceIB0jLC81PERNV2JsXlNJQTozLiomJCEkKCUoMDQ3PEVPWWRwYldOR0E7NzQxLywvMS8xODo8QEhRW2hzf39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f396d3V0dHNyc3N0dHV1dnd5fn9/f39/fXZxbmxqaGdmZ2doaWpsbW5yd31/f399dW9pZmFgXVxbW1tdX2NjZGhscXZ/f393cGhjXVlWU1FRUVJTVVpaXmJna3J6f3xza2RfV1NPSkpJSklLTVNaY15iaW92f3lwZ19ZUUtGQ0NAQUJFR01UXVpfZm1zf3dtY1tVTUVCPD06PT1AREhQWVheY2t0fHJpX1ZORkA8NzU1Njk9QUZNVlZcYmlzdGxjWlBJQzo2NDIwMjY6P0RLU1VaYWlzbmRcUktDPDYxLSwsLzQ3PEJHUFNaYmpyamBXTUY9NzIsLSgtLDE1OkBIT1JZYmpzZ11US0I5My4qKCgrKi8zOD5ESlFZYmp0ZlxTS0I8NTAsKiYrLS8wOD9CSVFZYmx2aF5VTkZAOjUyLy0wNDM1O0JFSlJaZG55a2JZU0xGQj47ODY4PDo8QUdJTlRcZnF8"},"Spine2":{"min":[-0.1898,-0.0032,-0.1578],"dims":[27,17,22],"data":"enJpYFdORkA6Ojg5OTw/RElNT1ZeZnFpYVlSSUE6NjMvMjEzOD1CSFBUWmNqYlxTSkM7ODEvLC4uMDY7QEZOUllgY1tVT0U9NzAtLSktLC40OT9ETFVeYV9XUU1EPjYxKysoKCktMTc9Q0lQWmBdVU5PRjwzLy0rKScoKy81O0JIUFliXlZPU0g+NjEuLSolJiotMzpASFJbY15XUldMQjs3NDEvKSgsLzE4QEpSXGZgWVRdU0pEPzw3NjAvMjM1OUFLVV9qZV5aWFhUTklFQD86OTw5Oj5ETVhjbmpkYF5fX1lUT0tKRkVEQkFESlNcaHRvamZkZWdkYFtXVlJSTktLTVNaY215d3Fta2ttcWxnZGNgXllWVlhdZGx2f354dHJydHiDgYF4cGllYmJkaG52f39/f317e3x/gYGBf3t1cW9vcHR5f39/f39/f39/f3+Bf39/f317e3x/f39/f39/f39/f39/f39/f39/f39/f39/f39waF9VTEI7My4sLS4tMTQ5PT9CSlNYZ2BYT0Y9NS8oJyAlIikqMjU6QEZOVV9XUEg/NzErIyIdIB8iKC0zOEBFTFVYUElDOTIqJB8fGiAdICYrMTk9RE1TVEtDPzgwJiAcGRkYGx8kKS81PERLVVJIQTw6MSQhHhsaGBkcIicuNDtDTVZRSUE9OzMpIyEfGxYXGh8mLDQ7RU5ZUUlDQUA5MCsmIx8cGh8gIys2PUdRW1RMR0RFQjs1MSwqJSQoJSctNUFJVWBZUk1KS7NGQDw3NTEwMS0tMTdDT1pmXldSUFGsUkxIQ0I/Pjo2NjlASVVgbGReWVdYWl5ZVFFPrEtFQUFESlJcZ3RrZWBeXmCbZ2JeXaJWUU1NUFVcZXB7cmxoZmZolI6GhY5pYl1aWlxgZ294f3t1cW9vcXWGgYF6dG5pZ2ZobHJ5f39/f3x6ent/gYGBf316dnNzdXh9f39/f39/f39/f39/f39/f39/f39/f39/f2ZdVUtBOS8mIRsjJiUoKi8xMjc/RkxfVk5FPDMpIhobGBoUHRwmJy0yOkJIV01GPjUtJB0WEQ4OERUaHyUrMTc+R1BGPjYuJh0XEA0LFA4TGB0jKTA3P0dLPjcxLCAZEw4KCgoMEBYbIigvN0BJSD00LSsnHBIPDQsJCg4UGiAnLzhBS0Y9NS4tLB8RExENBwgMEhgfJzI5RE9GPTUyMjIoIhgWERMGEw8WHykwPEdTSUA5NjfFNC0oIyAfHR0YFh8rNkFNWE5FQD0+vkE6NjAuLdUnISEkMDxHUmBTS0VDRLhNR0M+PMXGMiwsMDhBT1tnWlNNSkqzrlVQTEuyuz45OTxDTFVib2BZVFFRVKdgXltaqFBJRUVITVVfaXVoYV1aWlyfmJCSmGJbVVJSVFlgaHJ9cWtnZWRna4+JjJNpZ2JfX2Fla3N8f3x2cnBwcnWIg4Z1cW9vbW1vcnh/f39/f358fHx9f39/fXp4eHl6fH9/f39/XFNKQDctIxsUDhkiISIjJiQlLDY5QFZMRDsyKB8WDgkUFRIUFhoeHyUvNDtORTw0LCIaEQgEAAACBwwRFx0jKjM6ST0zLCQcEwoC//z9AAUKEBscIisyOkI2LCIcFA0G//z7+/4DCA4UGyIqMz4+MygfHBwVBAD+/fr8AAYMExokLDVDPTEoIR4jGxAFAwD7+f4ECxIdIy46Rj0xKCMk1tseFhMD7vf8AgoRHSg0QExANi0p1tDPKiQfHOHj6f8LFyIuOUdVRDoyLzDLwjczLSvT1d8ZGB0pOEJOW0lAOTY3xb5FQTw6xcrUJSQpMT1JVWFQR0A8PMC6saajq7fBNjEwNDtFUV1pV05IRUVIsqqgoqmuSUI+PkFHT1hkcV9YUk9PUqmhm2JbqlNQTExOU1tkbnlpYl5bW11hm5VoYVxaWlpaXGBmbnh/dG5qaGhnaGxubWllY2NlZWhscnp/f397d3NxcHJ1dXRyb21tb3F0eH1/f39TSUA2LCMgFxMB6t3c3yMgGhsjKi41TUM6MSgeFAoD/O7n6e3qEwsRHSMnMEc8MioiGQ8G/vbx8fT5/gQJEBYdIy5BNSsiGhEJAPjy7u7x9/wCCA4VGyYxPC8jGRIKAvrz7ezs7/X6AAcOFSEpNTcrHhIIEfD18e/u6+7z+f8FChUiLjw1JxkVEeji6/f18uzr8Pf+BA8bJzM/NScZFeng2eDn6Ozm6O71/woVISw7RzgsIhzi2s4rJt7g3Nzn+AQRHSk2QE87LyYh3dbLODQw0s/V4+4MGSUxPUhUQTcuKSnSyr5CPsTCz9oeHSAsOUVRXEc9NTAwzMS6rq+4vsYxLCsvN0FNWWVORT46OsK7squttrzAPjk4O0JLVWFtWFBKR0ZJs66nV0+3RkZFRUhOVl9qdmNbVlRTUlSooVpWUU5OUFBTWWBpdH5uaGNfXFtdYWFfXlpXV1pdX2Rrc31/e3RuaWZlZ2toZ2VlY2NlaWxwd35/f0tANSwiHRka6Ork2dXZ2uPqFyEgJC5GOi8mHRQKAPfv6tze5Obr/QMWFRwnQDQpIBcOBfvy6uTj5uvw9vwCCQ4aJTsuIhkQCP/27OTf4OTp7vT6AQYRHSg2KR0RCAD47uXf3d7h5+3z+f8JFSAwMyUXCgD48Ojj4uDd3+Xr8fkCDhsrNjEjFAb47uLg4+fk393j6fH8CBkgLTwxIhQG9+nX193d4Nzb4e35BRAcKDRBMiQWB+/j1c7T1dfU1Oj0AA0ZJDA8SDUnHRbp4dXHx8rMydbk/AgVIS04RFM5LiMcG97Sxrm9w8rR3RoYHSk1Qk9ePzUrJiXVzMG4usTM0dUmJiozPEhWYkk+NzIyysW/uLnCNjIyLzA1PUdQXWlTSkNAPz5AukpIRD05OTs8QEdQW2VxXlZRS0dGSE1OTEpGQkJGSUxSWmRve2liW1VRUFJWVFJRUE5OUFZZXmVueH91bGVgXVxeX1xbWVpaWlxhZ2txeX9/RTcsIRgOFuXf3NjQzM/U3+Xk4+YgKj8zJxwTCQD25d/d0tPX3Orw7PcCFiM6LSEWDQT78efe19TY3ePo7vT5BRAiNSgbDwb+9ezi2dLR1tvh5u30/QgbIzIkFgr/9+7l3NTOz9TZ3+Xs9g8PGysuIBIF+O7m3tXU0s7S193k8PwJFSIvLR4QAvTm3tfV1dTRz9bg7PgEEB0pNi0eEAHz5NbM0dHSz83d6fQADBgkMT4vIBIE9ufaxcnKy8nR5PH9ChYgLTtFMiQWCPvt2su+wcfQ2OP4BBEeKjZDUDcpHA7u5djKwcHN193l7RMZJTI/S1o8LyYfH9vVzcbFz9nf4hsbIy06RlNgRToxLCvW08vHyMwqJSQnJy03Qk5bZ05FPjgyMTQ7Ozk4Mi0tMjU6QUtXY29ZUUhBPDs+QkA+PT05OT1CR01WYGt5ZVtSTEhHSUpIRkRFRkZJT1VaYmt1f25lXlhVVFZVUU9OT1JTVltiaG52f39AMyYYFBPq4NbOy8XAw83V2tnh494sOy4gEwj/9evc0s3GxsrR3OLi7e8XIjYoGw4D+fDn3dPLxsrN1dvg5/D+DBkyIxYJ/PPr4djOxsPIzdPZ4Or3BBEfLR8SBPft5NvSycDBxsvR2OXx/gsYJCscDgDy5d3UzMbEwMTJ1uHu+QYSHywpGgz97+HVzcTGxcTF0t7q9wMPGio2KRsM/u/h0sTDw8PCzdrm8/8LFyQyPiwdDwHz5dfJvb3Eztfh7vsHFCAsOEUvIRMG+OrdzcTCztjj6vQCDxsoNUFNNCcZDP7o3tXOy9Xh6fj/ChQjMD1JVzotIBkZ6OLY1NPX5O4SDRQfKjlFUV5BNy0nHhzfKtbX2CEZGR4kKTQ/T1tmS0E4LigmKi4tKikqJCQoLjc+SVlkcFVMQjk0MjY1NDEwMDIyND5FS1RkbnlgVkxFQUBCQD06OTo+QERJUVlgaXR/amFZU09OT0tIRkVFSE1RVV5mbXV+fz8xIhQU6eLazsO9uLS5wsnN0tnd4CQ6LB4QAfTr4dLHv7m5vsbO0dro6xkiNSYYCvzv5tzTyb+4vMHHzdPg7fsRHjAhEwX36eDXzsS6tLrAxc/c6O0CDxwrHQ8A8uTa0ci/tbO4v8vY4/D9ChYjKBoL/e7g08rCubayu8fU4O35BREeKycZCvvs3c7Du7e2tcPP3Oj1AQ4eJjMoGQr77d7QwbW1u8PM2OTx/QoWIzI7KhwN//Hj1cjBvcfP2N/s+QUSHis3RC0gEgT26NvWzcrR3OTt9AEOGiczQEwzJRcK/fDp3dnW2Ojx+QIJGyUvO0hUOiseEgT87eLi4OHp/QUOGR8tOUVQXEAzKSAQERcd5ebnGhISGiMsNEFNWWZIPjQpIR8iISAcGxwfHicvOEBJWGJuU0k+NS8tLyspJSQlKS4zO0RMVWNtd15TSUI9PDw3NDEwMTU6QUhQWWFqc39oXlZPTEtIREE+Pj5CR0tVXGVudn9/QDIjFRTn3dDGu6+rpq62vMXT4entGTstHxED9ObTyb2yrKqxucHL2ebsAhA2KBoM/vDi1Mi/sqqssLrG0N/t+hEcMSMVB/ns3s/DurCnpbbCztvn9AEOHCweEAL059nLvrSrpbC+ytPj8P0TGiIpGgz+8OLUxrivpq25xtPf7PgFESEuKBkK/O3f0cKzqK64ws3b5/QAFRkmMygaC/zt39DDuLS6w83X4uf8CRUlLjsqHA3/8eLVzMbDxs7Y4uz4ERYdKjZFLiASBPbp39rV0c/b4+34AQ0cKTM/SzMlFwr+8+zo5ODb5u74Ag0WIi09SFM5LB8TBwD69fLu7vP6BA0YJCs3QlFcQDMnHBMNCRD//fz/Bw8ZIi05QUxXZUk8MygfGhsTDwwLDhQbJC44Qk1WYW1TSDw0LisqISIbGRwhKDA5Q01XYmt2XVJIQT06NzAsKigrMDU8RU5YZG13f2hdVU9LSUQ+Ozk5OTxCSVFaY214f39CMykgG+LZzcCypp2aoqq3xdPh7/0VPi8hEwTt4dPEtKienaWwvszZ5vQCETkrHQ8A8uPVxrSonaCtucbT4O36ERY0JhgK/O7f0cOvppyns8HO2+P0AQ8cMCETBffp282+qqGlsLzG0+Pw/BIWIyweEALz5dbIuqSksbvF0d3k+AQRIiorHQ7/8eLTxLakr7vG0drm8uwUGSYyKx0OAPHj1Ma6tbnE0Nvm7/sHGSYwOiweEAL05tnNyMPDztrg8O8EEBwvOkQwIhMG+u3i29bSz9ji7vkFFR4lMT1ONCcaDQH37+nk4Nzk7vcDDhwmMjpGVjstIRUMA/338u7s8fkDDhkjLzdFT1tDNSogFhAKBf/9+v0FDhgkLjhDTVplSj80KyQeGBMPDAkMEhkjLTlDTVhibVNKPzcxLCYiHBoYGiIlMDhCTlhjbXdfVEtEPjk0MCspKikwMTlETVdkbXh/aGBXUkxHQz86ODk4PUFGTllibnh/f0E1KB4Z49rOwLKkko6eq7jG1OLw/hc+MCESA/Th08S2p5OYo66/zNrn9QMROiwdDwHy49XGt6eToK25xtPh7vsSFjYnGQv87uDRw7Slnai1wc7b6PUCDyEyIxUG+Onbzb+woqayvcnW4+/vCRckLyASA/Tm18i6m6WyvcfS3ur3BBEjKy4fEALz5NTGt6WwvMfS3Ofz/wwZJjUvIBEC9OXXybu0usbR3Ofx/AgUIC06MCIUBvfq3M/HwsPP2+bx/AYRHSk1QjQmGAn98OTc1dDM2OXw+wYRGycyPko5Kh4RBPnv6ePf2ePu+gUQGyYwPEZTPjElHA4E/fbx7evu+AMOGiUxO0ZRXEU7LSMaEQsEAPz5+wINGCMvOkZRW2ZOQjgvKR8YEw4LCAoPFyItOERPW2ZxVk1EOjMsKCEcGhcZHCMrN0JNWWVwemFYT0lAOjQ0KykmKC0wOEJMWGNven9sZFxUTklCQTo3NTc7P0VNWGJteH9/QjQoHRjk2s7Bs6SIj56rt8bU4vDvGD0vIBED9OXTxbanjJmkrsDN1+j2BBE5Kx0OAPHj1MW2p5SgrbrE1OHv7xMXNScYCvzt39DCtKWdqLXCz9jj9gMQIjIjFQb36dvMvrChprK+ytbj8O0TFyQwIRID9ObXyLqdprO8yNPf6/gFEiUuLyARAvPk1ce4p7K9yNPd6PMADBkmNjAhEwT15tjKvLS8x9Ld6PL9CBQhLjs0JBYH+evd0MjCxNHc6PL9BxIdKTZENygaDP/y5dzV0MvZ5vH9CBMcJzU+SjstIBMG+vDp4t7Y4+77BxIdKDI9SFNBNCgeDwX99vHu7Ov4Aw8cJzI9R1JdSTw0JBoXCwT//fv7AA0YJDE7R1JcZ1NGOTApHxgSDgwICg0VJC05RVFcZ3FcT0U9MywpICAZHBkeISk4Q05aZnF8ZFpQSkA5NTYuKCkoLS42QUxYY3B7f29lXlVOSUFCPDc4Njs+Q0tWY214f39DNSkfGuPZzcCypIWPnqu5xtTi8PEYPS8gEQL04NLEtaaMmaSvwM3a6PYEEjkrHA7/8eLUxbanlKCtusXU4e/8CRc1JxgK++3f0MKzpZ2otcLP3Oj2AxAhMiMUBvfp28y+sKGnsr7K1uPw7woXJDAhEgP05dfIuZ2ms77I09/r+AUSJCsvIBEC8+TVxrinsr3I093o9AAMGSYzMCITBPXm2Mq8s7zH0t3o8v0JFSEuOzUkFgj5693QyMHE0dzo8v0HEh0qNkQ3KRoM//Ll3NXQytnm8f0IExwnNT9LOy0gEwb68Oni3tbj7vsHEh0oMj1IVEI1KB4PBf328e7s6/gDDxwnMj1HUl1JPDQlGxILBP/9+/sADRgkMTxHUlxnU0Y6MCkfGBIODAgKDRUjLTlGUV1ncV5PRT0zLCkgHBsXGR0hKTdDTltncn1kWlBKQDkzNy8qJigtLjZATFhjb3t/b2VeVU5JQUM8ODc2Oj1DS1VjbXh/f0E0KB0Y5NvOwbOkj46eq7jG1OLw/hY+LyESA/Tm08W2p5CYo66/zdrn9QMROisdDwDy49TFt6iToK25xtTh7vsIFjYnGQr87t/RwrSlnai0wc7Y6PUCEB0yIxUG+Onbzb+woqeyvcnW4/DuCRckMCESA/Tm18m6nKWyu8fS3ur3BBEjKy8gEQLz5NXGt6axu8fS3Ojz/wwZJjUvIRID9ObXybu0u8bS3efx/QgUIC06MSMVB/jq3M/IwsPQ2+by/QYSHSk1QjUnGQv+8eTc1dDM2OXw+wcSHCcyPko7Kx4SBfnw6ePf2eLu+QUQHCcxPEdTPzMmHQ8F/fbx7ert+AMOGiYxPEZRXEY6MSQaEQsEAPz5+wINGCMvO0ZRW2ZQQzkvKB8YEw4LCAoPFiItOEVQW2ZwV05EPDMsKCEcGhcZGyMrN0JNWmVwe2JZT0lAOjQ0KygmKC4wOENMWGNven9tZV5UTklCQTo3NzY7P0RMWGNteH9/QjUpHxrj2s3Ar6SYlp+lt8XT4e/9Fj4wIRIE9eHTxLClmpmlr77M2eb0AxE5Kx0PAfLj1caxpZqgrbnE0+Dt+hIWNScYCvzu39HDrKKcp7XBztvh9AEPHDEiFAb36dvNvqedprG8x9bj7+8TFiMuHxEC9OXWyLqhprG8xtHa6/cEESMtLB0PAPHj1MW2pLC7xtHb5vLuDBkmNSweDwHy49XHubW6xdDb5vD7BxolLTotHxED9ufazsbDw8/a5fD7BRAcLThCMSMVB/vu49zW0s/Y5O/6BRAeJTE9TDUoGw4C+O/p5N/d4+75BA8bKDI6RlU8LiIWDQP99/Pu6/D5AxUZJzE7RlBbRDYrIRgRCwX//Pr8AxQYIy47RU9aZktANiwlHhkUDwsJCxAYJi04Q09ZY29USkE4MiwpIiEaGBogJCw6Qk5YZG54X1VMRkA6NTAuKScpLjE5Q05YY255f2lhWFNNSEI/Ojc4NzxARk1YY214f39BMiQbFubcz8O4raaiq7O4xdPh7/AXPC4gEgP14dLGuq+npq23vsvZ4vQCEDYpGw3/8eLUxbqvpqitusbS4O36FBYyJBYI++ze0MK2raOntMLO2+j0AQ4cLR8RA/Xo2su9saiksL7K1uPw/BMWIykcDf/x49XHuKyjrrfG0t/m+AQRHi0oGgv97+DRw7SlrrjCzdrn9AAUGSYyKRoM/e7g0sS5tLnDztfj7/sIFSYuOiscDgDx49bMx8PEztjj7PgREBwqOUUuIBIE9+ng2tXR0dnj7vgBDR0lMT1MMyUYC//07ujk397l7vgDDRciLTxGVTksHxMJAfv28u7t8voDDhgiLDdDUVtANCgdFA4JBf/9/P4GDxgjLTlBTFhlSD00KSAbFxMPDAoNExskLjhCTVZhbVJJPTUvLCkiHRsZHCAoLzlDTVdia3ZeUklAPDg0MCwqKCowNDxETlhkbXd/aF5VUExIQz46OTk5PEFJUFljbXd/fz8xIhQU6N/XzMG5tLC2v8XJ0Njh5CA6LB4QAfPo3s/EurW0usLKzdnn6BkeNCcZC/3v49nPxrq0tr3DydLg7fsIHjAhEwX36t3UysG3sbW7w8/b6PQBDxwsHQ8A8uXXzsW8sq60v8vX4/D9CRYjKBkL/O7f0se/trGuusfQ4OzuBBEeKycYCfrr3c7AuLOxt8PP3Oj1AQ0eJjInGQr77N7PwbexusPK1+Tw/QkWIjI6KhsN/vDi1MnDv8fP2N3s+AURHis3Ri0fEQP26N3X0MzR3OTt7AEMGiYzP0wzJRcK/fHq4NzY2Ojw+QIUFiEwO0lUOCseEgX99+bm5OTp/QUOFyQrN0RRXkAzJh8RCRQZ6urrFhMRGiMuN0JMWWVIPjMmHR4gHhwYGBgbHiYvOEFLV2FtU0g9NC4sLSgmIiEiJyozO0RNVmBrdl1SSUE9Ozo1Mi8uLDM3PkdPWWJrdX9nXlVPS0pHQz88PDtARUtSXGRudn9/PzIkFxMU6N7UysfBvMDK0tbX3+HcLDssHxIF/PLj2c7JwsLGztje3+vtFyI1JxoMAPbt49rQx8HGy9HX3OPw/QsdMSMVB/rw597Vy8K/w8nP1d3p9gMQHi0eEAL16eHZz8a9vMHHzdnk8P0KFycpGw3/8ePa0cnCv7zAydXh7fgQEh4uKBoL/O7g0srBwsC/xdHd6vYCDx8nMykaC/3v4NLDv7+/wszY5fL+CxcjMD0rHQ4A8uTWyb27xc3X4O36BhMfLDhELyETBffq3NDHxM/a4+z0AQ4bJzRBTTQmGQv+6eHY0s/W4/L4/woUJzA8SVc6LB8ZF+zl29nX2Ob+Bg0UHyk5RFFdQjYrJBsYHifb3NwfFhMZIik0P09bZkpANywlIycqKSYlJSMfJy43PklUYXBUS0A3MjAzMjAtLCwwMTQ8Q0tUXml5X1RLRD8+QD06NzY3Oz9DSU9ZYGl0f2lgV1FOTU1JRUNCQ0ZLUFVdZG11fn9ENikeFAsV5NvY1c3Iy9Lc4uHj5iAqPjEkGRAG/PPh29nOz9PZ5uzo9P8VIzkrHxMKAffu5NvT0NTZ3uTq8PcCDiE0JxkNA/vy6d/Wzs3R1t3i6e/6BRQhMCIVCPz06+LZ0MrLz9Xb4ej0/w4aJy0fEQP27OPb0tDNys3T2ePv+wgUIS4rHQ8A8uTb09DQz83L1N/r9wMPHCg1LB0PAPLj1cjNzc3Lydzo9AALFyMwPC4fEQP15tnBxcbHxtXj7/wJFSEvO0YxIxUH+uzbzL6+ytPb6vcEEB0qNkJONigbDfDm2M7Fw9Da4ej/ChglMT5LWTwuJR4d3dnQysnS3eTmGBQfLTlGUl9COTAqJ9vWzszNzychISQmKTRBTlpnTUQ8NS8tMTg3NTMvKiovNDg/SVZib1hQRj45ODs+PDo5OTY2OkFGTFRfa3ljWVBKRkVHR0RCQUFEREdNVFlhaXR/bWRcVlNSVFJOTEtLT1JUWWFnbnZ+f0g9MigfGhcb5ubh1tLW2OLqGB8dIixENy0jGhAH/fPr5tnb4OPq+f/rERQlPjImHBQLAvju5uDe4ufs8vj++wsXIjksIBYNBfzy6uHb29/k6vD2/QMOGik1JxsOBv307OTb2dnd4ujv9f0HEiEvMSQWCf317eXe3tzY2+Hn7fQADBgoMjAhEwX37OHb39/g29nf5e77BxMfLDsvIRME9ujZ1Nra29jX3+v3Aw8bJzNAMSMVBvjk1szQ0tTR0efzAAsXIy87RzQmFxPt5NfJxMfJyNbl+wcUICw3Q1I5Kx0Y6ODVx7m7xs7U3hkXGyc0QU5dPjMpIyPXzsS8vcfQ1dgiIykxO0hVYUc9NTAwzMnDvb7FMy4uLC0yO0VQXGlRSUI+Ozo8QkVDQTk1NTg5PUVOWWRxXFRPSENCRUpJR0ZDPz9DR0pQWGJtemhgWFJOTU9SUE5NTUtLTlNXXWRtd39zamNdWllbXFlXVlZYWFpfZWpweH9/UEY8MykgHxcU8enc2t3cHhcZIiYqM0pANi4kGxEH//jz5Obr6BMHDRoeIy1FOTAnHxUMA/ry7e3v9foABgsSHSAsPzMoHxcPBv307unq7PL4/gQKERgjLjotIRcPB//27+no6Ovw9vwDChEbJzI2KRwQBv/48e3s6efp7vT7AQgTHyw6NCYYCf7q4ujy8e7p5+zz+gINGSUxPzMlFwnt4tfe5eXp4+Xq8fwHEyItOkU1KR4Y5t3R09jb3tra5vcEDxwoMz9NOC0jHuHZzzk1z9HO1uTwCxcjLzxHUz80KiUk1s3BRD/Dw9DbHRsfKzhDT1tFOjItLM/HvLCyvMPGMCopLTM/TFhjTEM8ODjFvrausbrAxDs3NzpBSlRgbFZOSERER7eyqlJLu0JCQUJFTFVeaXRhWlRST05Qq6RVU01KSk1OUVZeZ3J9bWZhXFhYWV5dW1pXVFRXW11iaXF7f3lya2ZjYmRnZGNiYmBgYmZqb3V8f39ZUEc9NC0kGBAKF90hISMkICIpMjY8U0lBOC8lHBMKBe3r7RIVFxUbICswOExCOTEpIBYNBgD7+/4DCA0TGR8mLzVGOzEpIRgPBgD7+Pn7AAULERgfJyw4QDMpHxkRCQL89/f3+f4EChAXHiYwOzwvIhgYGBP/+/n49vj8AggOFiAmMkA5LiQdGuHl8AH/+/f1+gAHDhUgLDhEOi4kH+DZ2x4VE//x8/j+Bg8bJjI9Sj4zKiXa088qJCAd4OLp/QkVICs6RVRBNi4rLM7FNzMuLNLU4BgWGyg2QE1ZRj02MjLKwkVBPDrEzNciISYwPEhUYE1EPTk4xL20qaevuMM0Ly4yOkNPXGhUS0VCQbu1raOlrbNIQT08P0VOWGNwXVVQTUxPq6WfX1euT05LSk1SWWJseGdgW1lZW12fmWReWVZWV1daXmVtdn9ybGhmZGNlaWppZmFfX2FiZWlweH9/fnl1cG1tbnJxcG5saWlrb3F1e39/f2NaUUg+NSskHRcfJCMmJywtLjM8QkhcUktCODAmHhcSFRgWGhgiIyguNz5EVEtDOzIqIBkSDQoKDBEWGyEnLTM9Q01DOTMrIhsTDAgGEQoOExkfJSwzO0RIPDItKRwVDwkGBgUIDBEXHSQrMz1ERTowKScjGg4LCAcFBgoQFhwjKzQ9SEM5MSooKh0NDw0JAgQIDhQbIy40QUtDOTEtLs8nIBkRDREBEAsTGyIuOUVRRj02MjPIMywmIR4e5BoUEBwoMz9KVktCOzg5wkA4NC8t1NUlHh0iLjpGUl5QR0I/QLy2RkI9O8XHMCoqLjdBTlplV09JRka3sVRPS0qzvTs3NjpASlRgbF1WUE1NUKujXVpZqk1HQ0JFS1NdaHRlXllXV1mim5OVnF9ZU1BQUldeZ3F7b2hkYmFkaJONkJZlY2BeXV9kanJ7f3l0cG1tb3GMh4lxbWtrbGttcXZ9f39/f3x6eXh6fX9/enZ0dHZ3eX1/f39/bWVcUkk/Ny8qKCorKi8wNjk7P0dQVGVdVUxDOTIsJCMcIh4lJi4wNjxDSlFdVExFOzQsJR8eGRgbISQoLzQ8QUhQVkxFPzUuJiAaFxYcGBshJy0zOUBJUFFHPzo1LCIcGBQUFBYaHyUrMThAR1FPRT03Ni8jHBkXFRQUGB0jKjA4P0lTTkU9ODcwJhsdGxcREhYbIigwOUFLVU5FPzw7Ny4oIh8aGRYbGR8nMjpETVhRSEJAQMA4Mi4pJiMhJCEiKTI+R1JeVk5JRke1RD46NDMwLi0pKS41QU1YY1pTTkxNsFBKRkFAPTw4MzI2PkZSXmphWlZTU1ZbWFNPTq5JQj4+QUdQWmZyaGFcWlpcn2ZgXVykVE9LS05TWmNueG9pZGJiZJeRiYmQZ2BaWFdZXmRtdn94cm5sbG5yiYGEdnJrZ2RkZmpvd39/f3x5d3d4fIGBgX15d3RxcXN2fH9/f39/f39/f39/f39/f39/f39/f39/f393b2ZcVEtDPDY2NDY1ODxARklLU1tibmZeVk5FPjYxLysuLDE0OT5ETVBXX2VfWE9HQDc0LSsnKSksMjY8QkpOVV1gWFJLQTszLCgoJSknKi80OkBJUVpdXFNMSkE5Mi0mJyMkJSktMzk/RUxXXFpRSktCOS4rKCYkIyMmKzE3PkRMVl5aUktPRToyLSooJiAhJikvNT1ETldgWlJNVUk/ODMwLSslIygrLTQ8Rk9ZYlxVUFtQR0E8ODQyLCsvLzA1PkdSXGZhWlZTVFFMRkI9PDc2ODU2OkFKVGBrZmBcWlpdV1FNSUdDQkE+PkFHUFpmcWxmYmBhZGJeWVVUUFBLSEhKUFhha3dzbmlnZ2lta2ViYV5cVlNTVVphanR/enRwbm5wdIaBgYptZ2JgX2FmbHR9f399eXd3eXyBgYF/eXNvbGxucXd+f39/f39/f39/f4F/f39/e3l4en1/f39/f39/f39/f39/f39/f39/f39/f39/f394cGdeVlBKRkJAQUFESExTV1pfZ294cGlgWFFLRD86OTs7PUJHTlJZXWNrcWpjWlNKREA8OTY4ODpARExQVVxiaWtkX1dPRkA6Nzc0NjY4PUJITlRdZWpoYFpWTUZAOjU1MjMzNztARkxTWWJpZl5YV05EPTk3NTQyMjY5PkVLUVlhamZfWVpPRj87ODc0MTA0NzxDSVFZY2tnYFxdU0pEQD47ODMyNTk8QElRWmRtaWNeY1lRS0hEQD05Nzo9P0NKUlxmcG1nY2FhWlVQTEhFQUBDQ0NHTVVfanRzbWloaGVfWlZST0xLTEpKTVJaY215eHNvbW5wamZhXVtYV1ZTU1VaYWpzfn96dnV1d3ZxbGlnZGRgXV1fY2pye39/f317e31/gYGBfHVva2hoam50e39/f39/f39/f4GBgX9/enZ0dHZ5f39/f39/f39/f3+BgX9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/"},"LeftShoulder":{"min":[-0.1355,-0.0272,-0.1175],"dims":[20,16,15],"data":"cGRZTkhCPTw8QEaxqJ6TbGJWTUQ7NjIyNjy8sqebaF5VSkE3MCoqKzHGuq6hZlxTST82LCUgIinMwLKlZlxRSD82KyEXHSXPwrSmZlxSSUA2LCIeICcywUxYZ1xTSkE3LyQiJSs0PklVaV5US0I5MSomKC00PUhVaV9XTUQ+NjIvLTI4QEtXa2JXUEhDPjw5Nzo/R1FcbWNbU05JR0VEQ0NJT1hicGdgWVRRT09OT09UWmFodG1lYFxYWFhaXV1gY2hveXJsZ2RiYWNlZ2lrbXJ4f3lzb2xrbG5wc3R2eHx/f398d3V1dnl7f39/f39/aFxPRDs1MjEzOMG3rKGVY1hMQTYwKScnLMvBtqqdX1NIQDUsIh4dI9XLv7GkXVFFPjQqIRcVF9/SxbaoW1FHPDMqIxUMEOTWx7iqW1BHPTQqIRcNFOHUx7yvXlNHPjUsIhgRFx8pNEFOYFRJPzYtJR4WFyAoM0BOXlRMQjgxKigkIiYtN0NQYFdLQzw0My8vLi41PklTYlhPR0E9Ojo6OjpASE9XZlxVTUhEQ0NFRklMT1ZeaWFaVE9MTE5QUVRVWV5mbmdgW1hWVllcXl9hZGlvdm5oY2BfYWNnamxsb3R6fXZxbWpqbG9yd3h5fH9/X1NIOzApJScszcW6r6KWXFBFNywhHxwg2c/Dt6ueWEo/My0gFw0T5NfMwLKkVkg8MSkfFQwC7OHUxrepU0c6MyceFQsA9+bXyLmtUkY5MigfFQwC9+PZzsGzUkY9MikgFwwFAhXg08W2U0c9NCslGRIPDQ0fLTtJVUk/NSskHhoZGRklMT1IVUtCNy8oJSUlJSgvNj9KV01DOzIwLi4wMjY3PEROWlBIPzs3Nzk7PUBBRUxVX1VNSENBQUNHSUpLUFZeZVxVT0tKTE9SVldYXGFobGRdWFVUV1thaGRlaG10c2tmYmBgYmVqcXJzdnp/V0s/MykfGh3a0MW6r6KVVEk8MiMYDRXl2s/DtqmdUkU4KiIUCwLu5NjKvbCjUEMzKBwTCgD37dzQw7WnTT4yJR8SCgD26+LTx7uuSz0xJRwTCgD37eXc0MK0ST0xKB0UCwH5+Pjk1ca6Sj4yKB8WDQYEBAQbKjVBSkA0Kh8XEBAPEBgfKDNATEA2KyMbGRkbGyEjKzVCTUM4LyciIiQmKCgsMjtHUEY8NS8sLC8yNTY2PEROVktBPDY1ODo/QkNESE9YW1JKREA/QkZKTlBRVVtjYllSTUtLTVFXYF9gY2htamJbVlVVWFxiamxucXR5TUE3Kx8bFejd0MS3rKCTTD8zJxsOA/jj2MvAs6aZSz4xJBsTAPbt3tLGuKyfSjwvHhMH/vXr4tjJvbClSDopHREF/fXr4dbOxbmtRjgoHBAH/vXr4+PZzcG3QzQoHBAI//bv7+/g1su+QzUpHRMKAPr6+uzp3tLEQjUpHxULBAQGBwcSHiw7RDgrIRcODQ8RExQVIi89RTktIxsXFhoeICEiKzZCSDwyKCEgIiYrLS8wNz9ITUI5MSspLTI4Oz4/RElQUkc/NzY2OD1FSUpNUFRbWFBIQkBAQ0lQWFlaXWBmYlpSTUxMTVJbZGdnam1yRzksJRYT6eTazsGzp5uPRDcrHhMH++7j0sa5rqGURTcqHRAD9uvg18q/sqWZRDcqGw3+8ung1szDtayiQzUnGQj88ujf1s7Hv7euQDIkGQf78ung2tfSzMO4PTAiEwf98+rl5uXg2M3AOy4gFAj+9e/x8vPz4tTGPC0gFAkA+Pr9/wAB5dbKOy4hFgsDAgYKDA0OHyo1PTAkGQ8LDhMXGhsgJy45QTYqHhYUGSAlKCkqMDdARDktJh4eJCoyNjg4PEFJSz82LiopLjdARUZHSU1UU0lAOTU1OkFKVFVWV1pgXVNMRkRER0tUXWNjZGhtQTUoHRbt6d/SyLyvoZWFPS8jFgr/8+fazL+yppqMPS8jFgj87+PWy8G1qp6VPjAjFQj67N/Uy8G3r6mhPjAiFAb46tzTysPBvbasOi0fEQP26N3UztHPysG4OCkcDgHy6N7c3t7f1c3DNCcaDP/z6enp6+zo4NfLNCYYDP/08PT3+fr66t7RNScaDf/3/AIGBwgIFSEvNykcEAUACBAUFRcXHSYzOy4gFAoLExwjJyUlJjA6QDImGhYWGicxNTQ0NTxFRjowJSEiJy86Q0RDRElQTUQ7NDEuMztET1NSUlddV01EQD4/QkhQWWJgYWVqOy4jGxPq4djNwLSom46BNykbDgH16t7SwreqnpKDNykcDgL059vNwresoJmTOSsdDwH05tjGv7asq6ehOCsdDwHz5dfHwL68ubWuNScZDP7x5NXSzczKyMK6MyQWCPvu4OPi3trZ1s/FLyETBvjr7vHw7eno5NrNLiASBPfv+f79+/j29+HTMiIUBvj0AQkKCQcFBh4rMyUWCfz6BxIYGBYUFSQvNScbDQEDDhwlJyUjIy43Oi0hFQ0PGCIuNTMxNDlBQTUpIB0cJSw3REJAQ0dNSTwzLSoqMDlBTFJQUlRZUkhAOjg4PERNVmFfYGJnOSwgF+rj28/FuaqglIeBNScVCPrs4NTHu62ilomEMiYWCPru39LGuq2impiUNCYXCvzu4NLFt6+nqaahNCUXCfvu4NLHxMC7t7SvMCITBvrs3tfW0s7JxsO8LR8RA/Xo4ubl4NzY19DIKhwOAPLo8vXz7+rm5tzSKhwN//Hz/gMB/fj19ebYLiEP//P6BxIPCwYCBBcmLiASA/b+CxkeGhQREx0qMSQWCf0CDx0rKCMgIigyNykdEAgLFiIwNTIxMDU9PzAkGxQZICs2Q0FAP0NJRTsxKCYnLTVBTFBPTlBXUEY+ODU1OUJLVl9eXV9kNikeGOXe08i8sJ+Wi4GBMCESA/Tm2My/sqGYkY+LMSITBPXm1Mq+sqGen52ZMiMVBvfo1Mu+tK6qraumMiIUBffo1crGxMC7uriyLSISA/Xm09bV087JycW/KhwN//Hi4+Xn4dzX19PLKx4T/O7o8PTz7+rl6d/UKBkK++zz/QMC/fj09+jaKBoL/e/9CBAQDAYCBBclKxwPAPIBDx0fGRQREx0qMSATBfkFEiAtJyMgIigyNCYaDgYLFyUzNjIxMTU9Oi8jGRQZISw5REFAQEJJRDgtJyUnLDZBTlBPTlBXTUQ7NTQ0OkNLVl9eXV9kNyshG+Pc0cS3qp2ZlI6HMyUYBPXn2Mm+rqOfmpSRMiQTBfbo2cu+sKGkpKKeMiMUBvfo2cy8sq+ysrCqMCITBPXn0sfEw7/Awb64LB8QAfPkz9TU0c3NzsvEKhsM/u/h3+Li4Nvb3NfOKx4K/O3m7fHw7ejo7uLWKBkK++3z+f//+/b1+hYkKRoL/e/+BgwNCQQECBUkLB0OAPUDERkbFhMTFhopLyASBfsIFiQoJCIiJCgyNCYaDwkPHCk1MzExMjY+PDAjGhcbJDA8QUBAQkVLRTowJycoLjpEUU9PUVNYTkU7NTU2O0ROWV5eYGFlOi4jHOPc08i7sKqloJmRMyUWCO/n3M7AtbCsp6CXNCUXCPvt39HEt6qqqaeiNCYXCPvt38/Dt7S3t7WvMSMVB/nr3dDCv8LFxsK8MSESBPbo2M3Qzs7T09DILB4PAfPl2t7e3Nnh4tzSKxwN//Hj6Ovs6eXt9ecmKhwO//Lw9vn59/P5ARUkLR0PAvX7AwgHBAIFDRIlLiASBPgBDBQUEhEUGiAsMSQWCv8IEx0hIB8jJy42NyodEg0SGiUtLy8xNDlBPTInHhoeJy84PD1AQ0dNRjszLCgqMztETExPUlVaUEc/Ojc7P0dQWVpdYGRoPjMpIh/e1crDurawq6OaOi0hFRDq3tPJwb25s6uhOCkcDgHz5dnMx8K/ubCmOCocDgDz5djLx8fCvbiyNScZDP7x49XJxMnKysa/MyQWCfvt4NXQzdPY2NPKMCIUBffq4NrY1t7m5t/ULyASBPfs5efm4+ny+hclLyETBvrx8PTz8fT9BRQjMCIVCP31+v8A/gEJERknMiUYCwD5AwoMDA8VHSUtNikdEAcFDRUaHB0jKjE5Oi4jGRIRGiEoKiwwNz5EQzYsIiAiJi41OTs/REtRSj83MC4wMjtCSUpNUlheU0tEPjw+QkdPVllcYWZsRTkuJiPb19PLxcG6tKyiQDImHBjp49zTzsnEvbSpQDQiFAf67eHZ1tDMxLqsPS8iFAb57eDY1tbQyL+2OiwfEgT36t7TztXU0crBNykbDQDz6OLe29zh3NXMNCcZCf3z7efj4eTr6eErNCYYC/758uzp6e33/xcmNScaDgX+9/Lw8vgBChMmNikdEgkA+ff6/gQMFR4qOSwgFAsDAAQJDBAYISoyPDAjGRALDhIXGh4kLDU9QTUsIRkZGyAlKSwxOUFJRzwyKSYmKS0zNzo/RU1VT0U8ODM0NjxBSElNUlliWFBJQ0FBRUpQVVhbYGdtSz82Lick3trQzsrCu7KoRjkvIxoX7OXc2tTNxruvRDYoGw8C9uzn5dzXzsKvQzUoGw3/9evm5OXd0sa6PzElFwr98+zn5OXd2M/EPC4fEwf89e/r6ent49nOOyoeEQcA+fTx7/D17h4sOywfEwsF//r29vj9BBkoOy8jGREKBP/9/QAHDxcpPzImHRUOBwQEBgsRGSMsQDUqHxcRDAsOERYdJS43RTgtIxwXFBUZHiIpMDlCSDwyKiQfICMoKi80PERNT0U7MzAtLjE1Oj5CSFBZVkxFPzo6PD9DSExPVlxkX1dRS0dHSk1RVlldY2lxUkc8MyoiINvV1c/HwLarTkE0KiAVEufj4tvUy8CzSj0wIxsLAfv29Obf1MexSTsuIRUJAPn18/Tn2cu8RDorHhII//n18/Tn2tHFQzcnGxIJAv359/fu5iYzPzMmHBINBgL+/f0BEyAtQDQoHxgRDAcEAwQIDh0rRDgtJR0XEQwKCgwQFx4tRjsyKSIbFBIREhUZICkzSj42KyQeGhgZGh4kKzY7TEE3LycjISEjJSkvNj5IUEY+NTArKC0uMjU6QUlSV0xEPDg3Njk6PkJHTFVcX1VNSEVDQ0RITlBUWWBoZ19YU1BPUFJWWl1iZm10WU5EOC4nJikpKjDIwbesVEg9MSUcGhobHCTWzMG0UUU5LiEWFAkFA+ni1sivTkI2KR4VDAcEAgPq28xGTD8zJx0UDQgEAgIWKTI9STwzJx4VDwoHBQUVHik2Rz0xJx4ZFA8MCgsNGSUzST80KSQeGRUSEBEUGSYxTEI4LyokHhoYFxgcISc0T0Y/NS8oIyAeHiAkKjA6U0o/ODErJyUlJyktMjpCVU1DOzUyLCwuLzM3PUVNWlBJQTs4NjY4Oz5CSE9ZYFdQSUNAQD9DRklOU1pjZl5WUk5MS01QVVZaX2Ztb2dhXFlYWFlcYGJmbHJ5YVZKPzYwLy4tLjM7QUtWXFFFOS8oJiIgISguNkFOWU1DNiwhHBcUFx0jLjpVVko+NCohGhUSERIcKTZLVEg9MighGhYTEREcMThCUUg8MiojHRgVExQdKDE8UkY8My4nIR0ZGBgfJC46VEg+NzErJiIfHh4hJS86VkxDPTYwKyglJCUoLTI9W1FJQjs2MS0sLC0wNDtDX1VNRD44NTMzMzU4PURKYldPSEI+Ojo5Oz1BRk1UZF1TTkdEQUFDREdLUFdgamJaVE9MS0tNUFJWW2JpcWliXFlWVVdZXl1hZ21zeHBrZmNhYGJkaGpucnl/aV1SSEE8OTc1NjpBR1BaZVlNQTs2MC0rKzE1PUdSYldLQToyKiUiJCgsNUBcXlNJPzYuKCQhHyEnMT1SXlJHPzUuKCQhICAnMT1LXVFHPzYwKiYjISIpMjxFW1FIQTo0LysoJiYrMjlDXVNLRD44My8tLCwtMTpEYFdQSUM9OTUzMjM1OT9IZFtVTkhDPjs5OTo8QEVNa2NaUUxGREFAQEFDSE5UcWZdVU9LR0dHR0pMUVddcGdiW1ZSUE5OUFJWWmFndW5pYl5aV1ZZWVxgZWpxe3RtaGRgYGBiZGdqbnV7f3t1cW5ramttb3J1en9/cWZcU01JREJAQERJT1dgbmJXT0hCPTo3ODxARk9Za2BWTEY9ODYxMzU4P0lkaF5VSkI9NjIwLzA0PEZcZ1xUSkI9NjIwLi80PEZVZlxTS0Q+OTUyMDE1PUdQZl1UTUhBPDk2NDU4P0ZOaF5YUUtFQT06Ojo7QUdPbGNcVlBKRkNAP0BCRUtTcGhhW1VQS0hHRkZJTFFYdm5mYFpVUU9NTU5QVFlee3FpY1xZV1RUVFZYXGFne3RtZ2JeXVtcXF5hZWtwf3l0bmpmZGNkZWdrbnR6f395dHBsbGtubnF0eH5/f39/fHh2dXV3eXx/f39/"},"RightShoulder":{"min":[-0.1377,-0.0272,-0.1175],"dims":[20,16,15],"data":"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VEk9MSgdGBvb0MW6rqKVUkc6LiEWC+3l2s/DtqicUUQ3KCASB//149fJvK+iT0ExJhoOB/706trPwrSmSzwwJBwQBv7z6d/SxruqSjsvIxoQB/706+Xcz8KzRzsvIxsRCP/39vbj1ce7SDwwJhwTCgMCAgIcKDPASDwxJx4VDQ0NDhgcJTE+Sj4zKSAYFxcZGh4gKDRAS0A3LSQfHyIkJicoMDpFT0Q6MC0pKS0xMzQ1O0NNVEk/OTQyNzw8QEFCR05XWVBIQj48P0RJTU9QVFphYFdQSUhJSk9VXlxfYmZsaGBZVFNTVVpgaGtsb3N3XVFHOC0mIiUrzsW7r6KWW09ENSofHBoe2tDEt6ueV0g9MSseFAru5djMv7KkVUY6LyccEwn/6+DTxbeoUUU4MCUbEwn+9ObXyLqtUEQ4LyUcEwkA9eTazsGzUEQ6MCYdFAoDAO3h1MW3UUU7MSgjFg8MCwseLDpHUkY9MykhHhgXFxckMDpGU0g+NCwlIiIjIyctMzxIVkpBODAtKywuLjM0OkJMWE5EPDk1NTY5Oz0+Q0pTXVNLRUE/PkFFSEhJTlRdY1pSTUlHSk1QVFZWWmBnaWFbVlNRVVhfZmNkZ2xycWljX15eYGNocHFxdHl/ZltNQjcyLy8yN8K4raGWYlZKPzQuJyQmK8zBt6ueXVFGPjUpHxsaIdbLv7KkW09DOzEoHhUUFuDTxbeoWk1FOjAoHhMJAOXWyLmqWU5EOzEoHhUKE+LVyb2wWVBHOzIpHxYPFR0nMj9NW1FGPTYqIxsUFR0mMj9NXVJIQDUuJyUhICArNkJPXVNKQDkxMS0sLCw0PUdRX1VMRD46Nzc4ODo/RUxVY1pRSkVAQEFDREhJTVNcZ11XUU1KSkxOUFJTV1xkbGRdWFRUVVZZXF5fYmdudGxmYV5cX2NpcGprbnJ5e3Rua2hoaW1xeHd4en9/bmJXTEU/Ozk6PkSzqZ+UamBUSkI5MzAvMzu9s6ibZltSSj41KycnKS/Hu6+hZFpQRj00KiMeHyfOwbSlZFpPRT0zKB4VGiPRw7WnY1lQRj0zKh8bHSXPPkpWZVtQRz40LSIfIikyO0dTZ1tSSUA2LicjJSoxO0ZTZ11VS0I7NDAsKjA1PklVaV9VTUVAPDg3NTg9RU9aa2FYUEtHRUJBQUFHTldgbWVeVlFOTExNTU1SWF5mcWpjXVlVVVZYWlteYWZtd29pZWFfX2FjZWdoa3B2fndxbGlpamxucXJ0dnp/f396dXNzdHd5fX9/f39/dmthWVJLR0VER01UpJqPdGpfVk1FPzs7PkJJraOXb2deU0pAOTUzMzhBtamdb2VbUkk/Ny8rLDI7uq6gb2VbUUg9NConKC44vK+ibmVbUkg/NCspKjA6RVJecGZcU0pAODEuMDY9R1BccGdeVU1EOjMxMzc+RlBbcmlgV05HQDs4OTxCSVNec2phWVJMSERBP0RIT1hidmxkXlhUUE1MSk1QVl9oeXBoY15bWFdXVlZbYGdwfXVvaWVjYWFkZmJma3F3f3x2cW1qamttcHBydXp/f399eXV0dHZ4enx9f39/f39/f35+f39/f39/f39/"},"Head":{"min":[-0.128,-0.1076,-0.1397],"dims":[19,25,23],"data":"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Pz49P0JHT1ZZYGdvd3RqYVhRTEZBPTo4NzY6PEJHT1hhY2pybmRaUkpCPTk2MzIxMTM3PUJIUVtdZG5oXlVLRDw3MjAvLi0tLjI3PkRLU1dgamRaUEU9OTQvLSssLCorLjQ5P0RLVV5nYFdMQTk1LissKioqKikrMjY8QUhSXGVeUkc+NTAsKikpKSkoJykvMTdARk9YZF1SRzw1LiooKCgnKCgoKCsvNTxGTVdhW09FOzIuKSgnJycnJycnKjI1PEROVmFbUUY7Ni4qKCgnJycnJycqLzU+RE1XYVxRRj00LyspKCgoJycoKC0wNj5FUFhjX1RKPzcxLSopKSgoKCgqLTI4QEdRW2ZjWE5DOzYwLCsqKiopKy8wNTxDS1ReaWZcUklAOTMwLSwsLCwxMDQ6QElPWWJta2FZT0Y/OzUyMTAwMDM2Oj9GTVVeaHFzaF5VTkhBPDk5NjY3OT9CSExUW2Rud3luZV1WUElGQj8+PkFBRklNVFpkanV9f3duZl5YU1BKSkdHSEtPUVZcYmpyfH9/f3dwaWJdWlZTUlJUVFhdYWdtdHx/f39/f3lzbGhkYF9dXF9gY2dqcXZ9f39/f39/f39/f39/fXl3dXR1dnh8f39/f39/f39/f39/e3Zzb21sa2ttcnZ8f39/f39/f39/enRwbGhlY2JjY2VrcHZ8f39/f39/fHRvamZiX1xaWFpdYGVqcHd+f39/f3pzbGZhXFpXU1JQUlZaYWhrcXh/f397cmtlXVlVUU5MS0pLT1RZYWZsc3t/fXRrY1xXUExKR0dGREZKUFRaYmtudn53bmVcVE9KRkNBQT8/QUVJUFVbZWlweHJoX1dOSUZCPz49PTw9QEVKUVdeZGx0bmRZUUpGPz07PDs6Ojo8QUdMUVhhanNrYldNR0I9Ojk5OTk5Nzo/RElNVV5ncWdfU0pFPjo5ODg4ODc4ODtBRUxUW2RuZ1xRSUM9OTc3NzY3Nzc3Oj1DSVJbYmxmWlBHQTw5NzY2NjY2Njg5PkRJUFljbGZbUElDPDg3NzY2NjY2ODk9Q0tRWWJsaF5SSUQ9OTg3Nzc2Njc3OT5ESlJcZG1oX1RNRj87OTg4ODc3Nzk7QEdMVF1mb21jV09HRD46Ojk5OTo5Oz5DSVBXYWlycGZdU05HQT49PTo6Oz4+QklOU1xkbXd1bGNZUktIQ0A/Pj4/QkNHTVJYYWhxfHxxaV9YVE1KRkRFRURHS05UWF5nbnd/f3hwaGFaVVJOTUtLTU1SVFpfZW50fn9/f3dvaWNdWVZVU1NVVlpdYWdtdHx/f39/f3hybGdkYF9cXF5fYmdqcXZ9f39/f39/f3t2cm1qaWdnaWlscXV6f39/f38="},"LeftUpLeg":{"min":[-0.1641,-0.126,-0.1398],"dims":[21,42,21],"data":"f39/f39/f356ent8fn9/f39/f39/f39/f397d3VycXJzdXl+f39/f39/f39/f3pzcG5raWpsbXB0eX5/f39/f39/enNtaGZkYmBfYmRobXN6f39/f398dW1mYl1YVlRTVlhcY2hweH9/f312bWNdV1NNSklJS01TWF9ncHl/fXRsZlxTTkpFQj8/QUVKUFdgaHJ9dWxiXVZNR0M+PDo5PD9ESVJaY255b2VcVU9HQT02NDIzNTlARE1WXmh0amBXUEk/OjgyLy8vMjU6QUpRW2VxZVtRSUU9NjQzMTAxMzY7QUlRWWNuYldNRUE8NzMtKysrLjE2PUZMVl9rYFVMRT82MjErKSktLDI3O0VMVF9qXVJJQT01MDEvLisuLjI3PERMVF1oXVJHQT03My8qKygoKy4zOkBJUVtmXFFHPz01MDAqLCgsKjE2OUNKUVxnXFFIQDw4MzMvLissLjE3PENMU1xnXVRKREA5MzItKyorLDA3O0FLUVtlYFVKQz84NTQvMC8wMTE6PENNU1xmYVdNRkE/Ojg0MDIvNDc5Q0hQWGFrZFtSS0VBOjc0MzQzNTg9REpRW2NsaV9VTUZEPjo7OTo5PD9DSU1VXmVvbGNZUUxJRD4+Ojo9PUBITFVcY2tzcGlgWFBLRkJBPj5BQkVLUVlfZ3J6dm1lW1VQTUlHRkRGSU1SVl5lbXZ+enJqYlxWUkxJSUdITlBVXmRsdHx/f3hwaGBaV1FPT0xOU1ZbY2lweX9/f311bmZgXllUVVRUWV5jam93f39/f398dW1nY11aWllaXWNobnZ9f39/f39/e3NtaWRgYGBgZGpudHx/f39/f39/f3p0b2lmZGZmam91fH9/f39/f39/f3t1cW1qaGlscHV7f39/f39/f39/f3dxbGpoZmhqbXJ5f39/f39/f39/fXVvamhmZWVna3B3f39/f39/f39/e3NsaWdlZGZoanB3f39/f39/f39/enNsZ2ZlZGRpbHF4f39/f39/f39/e3RuamhmZWZrbnN6f39/f39/f39/fndxbWtqamtucXZ9f39/f39/f39/f3x3c3Fubm9zd3x/f39/f39/f39/f399enZ0dHV5fn9/f39/f39/f39/f39/f358e3x/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f354dXJwbm9wcnZ7f39/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OTU4Njg7QkpRWmVvb2VaUUpDPjo2NDMyMzY5P0hPWGNubWNYUEdBOzc0MjAwMTQ4PkVNV2FtbGJXTkY/OTUxMC8vMDM4PUVOVmBta2FWTUc+OjQzLy4uMDM4PkVOV2Fsa2FWTUY+ODQwLy8vMjU6P0ZQWGJtbGJXTkc/OTUxMDAxNDc8QUhQWWNtbWRYT0lAOzYzMjQzNjk+Q0pTW2VwcGZbUklCPTk2NDQ2ODxARk1WXWdycmlfVExFPzs4NzY4Oz5DSE9YYGl1dmxgV09IQj47OTk7PUFGS1JbYmx4eXBkW1JLRUA9PDs9P0NITVReZW95fXNoXlVNR0I/PT0+QURJT1ZgZ3J9f3ZqYVdPSENAPj4/QUVKUFhgaXR/f3hsYVhPSEM/Pj0+QUVLUVhganR/f3hsYlhOR0I9PDs8P0NJT1ZgaXN+f3hrYFdNRUA7ODg5Oz9FTFRdZnB7f3hqX1ZMRD45NTM0NztASE9YYmx3f3dqXlRLQjw6NTAvMjg8RExVXml0f3hqX1RLQzs1Ly0sLTI5P0hTXGdzf3lrX1VMRDw0LispKy82P0ZQWWVwf3xtY1lPRz44MCsoKC4zP0VQWGRxf39yaF1TSkM8My0pKi43QEZOWWZyf394bmRZUEhCODMvMDQ8RUlRXGdzf39/dGtiWVBIQDs4Njk+RUxWYGt2f39/fXNqYVlSSkVBQEFHSlJbZXF7f39/f310bGNbVE5MSUxQVFpibHd/f396cWtkYFxaWVpbXmNmbXV9f39/f3pwaGJcV1RSUFFRU1pdZGx1fX9/fHNoYFhTTUhGRUdHSlBUW2Rtdn5/dWxhWFJMREA9PD4+QUhMVFxnb3h/cGZbUkpFPTk3NTY3OkFFTVZgaXN+a2JXTURANzIyLjEwNDs/R1FcZW56aF5TSUA7Mi4tKSkrLzc7Q0xYYWt3ZlxRRj04LyorJiYoLDQ4QEtWX2p1ZVtQRDw3LSkpJCQmKzI2P0hUXmh0ZVtQRTw3LikpJCQpKzI5P0hUXml0ZlxSRj44MCsqJiYrLTQ7QUpVYGp1Z19USUE8My8uKiovMDU+RE1YYm13bGNYTkZAOjQzLzA0NTpDSFFcZnB7cGdeU0tGQDo3NjY7PEBITlZga3V/dm1kWlJNSEI/Pj5CQ0hQVllgaXN+fXFpYVlUUEtISEdLTFBYX1VeZm96enBmXVZRWVVTUFFUV1thaVNcZG14eG1kXFVPSkZCQD8/QEJGS1JbYmx2d2xjWlNNSERAPz4+P0FGS1JZY2x3dmtiW1JMSENAPj09P0JGTVJaY2x2dmtiWVJMRkM/Pj4+QENITVNbZW13d2xjWlNNSUNAPz5AQkVKT1VdZm54eW5kXVVOSkVEQEJCREhMUVdfaHB6e29mXlZQSkdEQ0JER0pOU1phanJ8fXNpYFpTTUpHRkVHSU1RVlxja3V+f3VsY11VUExJSEhJTE9UWl9mb3d/f3pwZ2BYU09MSkpLTlFWW2Foc3x/f31zamNbVVFOTExNT1JXXWNsdn9/f392bGRdVlJOTU1OUFRYXmRsdn9/f393bWNdVlFOTUxNUFRYXmVtdn9/f392bWNbVFBMSkpLTVFWXGNsdH9/f391bGJaY1xWUU1MTVFYYGBocXt/f390a2FZXFRNSEVEREpRWltkbXZ/f390amBXV05HQj49QEVLU1xmanN+f390amBXVEpCPzs6PEBFTldiZ3F8f391amFYU0pCPTk4OTxDSlRfZW96f394bWNbVkxDPTk3NztBSlRfZW96f398cWhfWlBGQTw4OT1CS1VgY257f39/d25lX1VNRkE9PkFHT1lkZnF7f39/fnNqZVxTTEZFQ0dNVV9panR/f39/f3xzbWNbVFBOTlBVXWZwb3l/f39/f397c2tkXllWVVZbX2RsdX9/f39/e3ZvamhlZGVlaW1xd31/f39/f396cm1lYV9cWlxcX2RobnV+f39/f3tyamVdWFZSUVNTVltgZm12f39/f3VrY11XUE5LSUtKTlNZXmZwen9/e3BlXVdPSkVDQkNDR01TWGBqdH5/dmthWFJLREE/PD4+QkZOU1tlcHl/c2hdVE5HQDs7ODk8PUNKT1hhbHZ/cWZbUktEPTk4NTU4Oj9ITFVfanR/cGVbUEpEPDc3MzM3OT5GS1RdaXN+cGVaUUpEPDc3MzM4OT1HS1ReaXR+cWdcUktGPjk5NTU6Oz9ITVZeanV/c2leVU5JQDw8ODk9PkNLUFhhbXd/d21jWVFNRUFBPT1CQkdPVVxlcHp/e3FmXlhTS0dGQ0RHSE1UWmFqdX9/f3duZV1ZUk5NTEtOT1NbYWZudX1/f31zbGRhW1ZVU1NWV1xiaWNqcnt/f3tya2ReYl9eXVxfYWRqcWBncHl/f3lwamJcWFRRT05OT1FVWl9mcHd/f3hvaGFbVlJPTk1NTlBUWV9mb3h/f3duaGBaVVFOTUxMTlBVWWBncHh/f3duaGBaVVFOTUxNT1JWW2Bob3l/f3hvaGFbVVJQTk9PUVRYXWJqcXp/f3lwamJcWFNST1BRU1ZaX2ZrdH1/f3tya2ReWlZTUlFTVVlcYWdudX5/f351bmdgXVhVVFRWWFtfZGlweX9/f394cGljX1tYV1ZYWl5iZmxze39/f397dGxmYl1aWVlaXWBkaW91fn9/f39+d29pZGBcW1pcXmFlanF3f39/f39/eXFqZWBdXFtdX2JmbHJ5f39/f39/eXFqZWBcW1tcX2JmbHJ5f39/f39/eHBoYl5bWVlZXF9kaXB3f39/f39/dm5nbWZhXFpYWV1jamx0fH9/f39/dW1lZ19aVVJSUlZdZWhveH9/f39/dWxlYlpUTk1MTlFXX2dwdX9/f39/dWxkX1ZQTEpJSk5SWWJscnx/f39/dm1lX1ZQS0hHSEtQV19pcXp/f39/eW9mYVlRS0dFRktPVl9pcHp/f39/fHNqZVtUTkpHSExQV2BqcHp/f39/f3hwaWBZU09LS05UW2Ntcnt/f39/f352bmZeV1RSUVRZYGhydX5/f39/f398dm1lX1xZWVxgZ294eX9/f39/f39/fHRuaGVhYGFla3B2f39/"},"LeftFoot":{"min":[-0.1029,-0.0759,-0.1274],"dims":[14,19,16],"data":"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f3lsX1NJPjYsKCYpLjY/Sn9/c2dcUEY/OTQzNDg+R1B/f3pvZFhPR0E+PD5CSE9acWpkYFtUTkpISEpOVFtkcGdfWFRRSkU/Pj1AREtTXGhaU01KR0E6NTIwMjhASVRhUUlDPz06MysoJiktNUFMWkpAOzY0My4pIyAgJi86RVNEOjMuLCwrJiAcHSMrNkJNQTgtKScnJyUhHRwiKTM/S0E3LyglJSYnJCIgIyoyPkpEOTIqKCYnKSklJScsNEBLST83Mi0sLC4sKigqLzhBSlBHPzk2NDQ0LiooKi83QUtYUElDQD4+MywnJSgtNT1IY1pTTktDOTApJCMmKjI7R2xlXlpPQzkwKCMkJyszPUl4cWpdUEY8MiwpKCswN0JLf3puYVVKQTkzLi0vMztFTX9/cmZbUEg/ODUzNTpASVJ/f3htY1hPSEI9PT1BR09Zf39/dmtfV1BKSEZHS1BYYXdxbWxkXllUU1JUV11kbHZsZmJjWlVOSkdFSExSWmNtY11XVFJMRkA9PD1ASFBaZVtUTkpJRT86NjQ0OEBIVF9UTEVCQEA8NjAuLTM5RE5bT0Y/Ozo6OTQtKiwwOD9KVk1CPTg2NTYzLiwrLzU/SFNMQzs3NDQ1NjIuLjE3PklTT0U+OTY1Njg3NDM1OUFKVVJKQz06OTo7Ojg2OT1DTVZaUkpEQUBAQTw4Nzk9REtWYVhTTkpJR0A5NDQ2O0FJUmpiXFdVTkU9NjMyNDk/SFBzbWhjWE5EPDY0MjU5QEhSfnhxZltRSEA5Nzc4PUNLVn9/dWpfVEtFQDw7PUBHUFl/f3luY1pSS0VCQUJGTFNdf39/dWtiWVJMSUlJTVJaY39/f3xyamJbVlNTU1VbYmk="},"LeftToeBase":{"min":[-0.098,-0.0385,-0.0402],"dims":[13,13,11],"data":"V09JREFCRkxTXGdQRj85ODc6QktVYEpANzEvLzI7RU5bRTsyLCgoLTZBTFhEOTErJygtN0BMV0U6MSopKjA5Qk1YRTwzLSwuNDtGUFtIPzczMjM4QEpUX01DPTk2OT5GT1llU0pDQT5CRkxWYGpbUk1ISEpOVF1ocWNcV1RTVVdeZm14bWZiXl5gY2hud39QRkA6Ojo+Q0xWYUc9NS8sLjI6Q05ZQDQsJCEiJjE8SFQ8MCYdGhojLDdEUTsvJBwYGh8rNkJPOzAlHRocIi44RFE9MScgHh8nMTxHVD41KiUiJi02QExYQzkxKyktMj1FUV1KQTkzMzU7Q0xYYlJIQz89QERKVF9qWlNOSUlLTlVdZnBlXllVVVZaX2dveEpCOTQzNDc/RlFdQTUsKSYmKTM9SFQ4LSMbFxgfKTRBTjUmGxILDhIiLzxKMyYaDwoMFiEuO0k0JhoQCw8ZIzA8SjUoHBMNEx0nNEBMOCsfGBUZIi04RVE8MCcgHiIpND1KV0E4LyooKzE6RU9cS0E6NDQ1O0NMWWRUTEVAQEJGTFVfal9WUk1LTlFXX2hyRz43MjExNjxDTlg7MSokIiMnLzlETzQnHBYTFBsiLzxILyAUCQUHDhwpN0UuIBIF+/8MGSc1Qy8gEwX9BA8cKDdFMCIUBwIJFCAtO0gzJBgLCQ8YJTJATTcqHRYTFyArOERSPTInIB8iKDI+S1dGOTIsKi0zOkVSXk5FPTk3OD5GT1hkWVBLRkRHSlFYYWxGPDYyMTI0OUBJUzouKSQiIyYsMz9LMiYbFRMUGSApNkMsHREHBAYMFyQxPiobDf71+AYUIi89Kx0O//H8CRckM0EtHg8B9QEOGyk2RS8hEwX+BxMgLjxKMyYYDgoOGSUzQU45KyEZFhohLDlFU0E0LCUjJSo0P0tZSUA3Mi8xNz9IU15US0VAPT5DSlNcZkQ6NDAvLjE0O0JOOC0nIiAgIigvOkYxJBoTERIVGyYxPyocEAYDAwgSHy07KBkL/PT1AQ8eLDopGgv97vgGFCEvPiscDf7w/QsZJzVCLR4QAvUBDx0sOkcwIxUIAggTIS89SzYoHBMOEhsnNUFPPDAnHxwfJC85SFNGOzIsKSswOENOW09GQDo3OT5FTFdiQDQvKyorLDI3P0o1KyIdHBweJCo2Qi4hFA8NDhAXIi46KRoNA///Aw0bKDYnGQr78fH+DBooNygZCvvs9gQRHSs5KRsM/e78ChYjMDwrHQ7/8f4MHCk2QS4gEgX7Ag8dKzlHNCYYDgkMFiEvPUo5LCMaFxogKjVCUEM3LiglJyw0P0tXTEM8NjM1OUFJVGA+NConKCsrLjY9STMpHBgZGRwhKTRALB8RCgoKDhQcKDcpGgv++/wACBclMygZCvvt7fkHFSMyKBkK++zx/gwYJzUpGgv87fcFDx0rOSobDf7w+QgWIzA+LR4QA/b+CxkoNkQyJBYKBQgSHyw6RzcpHxcTFh0nMj9NQDMrJSIkKDI8SVVKQDgzMTM3PUdRXT40KygpKywvNj5JNCcdGRocHiIqNEAsHxIKCw0QFR0rNiobC/79/wEJFiUzKRoL/O/y9wUTIjMpGgv87e75CBYlNCobDP3u8v8NGyo5KhsN/vH2BBIhLT0tHg8B9fwJFyY0QjAiFAgEBw8dKzhHNSccFhIUHCcxP0w+MyojISIoMDxHU0g9NzQyMzg8R1FcQTcvLCwuLzM5QUs2LCIfHyAhJS03QjAjFhERExYaIi87LBwQBwUGCA8aJzQrGw4A/P0CCxgmNSscDgH8/QMNGig2LB0QAv3/BhAeLDksHhAE/wEKFCIwPi4gEgYCBQ4ZJzVDMSMWDQkMEx8tO0g1KyEYFhgeJzRATkA1LCYkJiszPklVSkA5NTM0OD9HUl5FPDUyMjQ2Oj9GUDoyKCUlJiksNDtHNSkfGxobHSIpNEAvIxgSDxATGSQuOy8iFQ4KCw8WHyw5MCIVDgoLEBghLTsxIxcPDA0SGyUyPzEkGBANDxQeKzZBMyUaExASGCItO0g2KB8ZFhgeJzI/TTowJiAeHyQvOENRQzoyLi0uMjlCTFhNRT87OTg+RExWYUxEPzw6Oz5CRk1WQjs0MC8wMjU7RE48MyomJCUoLDI9RzcuJR8dHiEjLjhCNikiHBkaHSMrNkI2LSIcGRoeIy02QzcrJB4aHCAlLzlHOi8kHxwdIiwzPUo7LiciHyElLDdBTj80KyUjJSkyOkVSQzcyLSosMDZAS1ZKQTs3NTc6QElSXVNLRkJBQkZLUlxlVExIRURFR0pOVV5MRD46OTo8QEVMVkc8NjIwMTU5PUZQQzgyLSssLzM5QU1BNy8rKCkrMjdATEE3LysoKSwxOEJMQjgxLCkrLjM6RE9EOTEtKywvOD1HUUU7NDAuLzM4QUtWSUA5NjQ1OD5GT1pNQz06Nzk8QktTX1NKREE/QEVJUVtkW1RPTEpMT1NaY2w="},"LeftLeg":{"min":[-0.1111,-0.1018,-0.1274],"dims":[16,41,17],"data":"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KyonKCkuNjxFUFtXTEI6MismKigrLTI5P0hSXVNJPjkxKSgoJSotLzlBR1BcUkg/ODAoIyIjJyguNj9GUFtSRz04MCgnISInJy02P0dPXFJHPzkwKCchIicoLjdASFJdUkg/OTEuLCIjJykwOEJKVGBTSUA6MysqKSUqLjI7RUxWYlZLQzw1LikqJygwNDtGTlhkV01DPjkxLS4rLDM3PklRW2dbUEZBOzQwMS4vNzpBTFReaV5TSkQ/NzQ0MTM5PUNMVmBrYlZORkI6Nzg0Njw/RU5YYmxlWlFJRT06OTc4PkFHUFlkbWldVUxIQDw8OTo/QkhRWmNubWJYT0lCPj46PEBDS1FbZW9wZVpTTEM/Pjs8P0RLUltlcHFmXFhOR0FAPD9ARkxTXWdxc2ddV05FQT89PUBFS1NcZnJ0Z15ZT0hBQUBBQUhNVF5oc3NoXldORkE/PkBBRUxUXWdzc2leV05GQ0E+QUFITFVfaXNzaWBWTEVCPjw9QEZLVF5pc3JoXlRLREA7PDw/RUlSWmdycmZaUUhDOzg4NjlBSE9YY21wZFlPR0A4NTY1OD9ETFZha25iVk1EPzc0Njc6QENMVmBrbmNXTURAOzg5ODxDSE9ZYm1vZVpPSERAPDs/QkhMU11mcXFnXlRNSEZEREdKTlNaY2x2dWtjW1RPTk1MTlNXXWJrc3x6cWljXFhWV1ZYXmJmbHR7f395cWtmYl9hYmRnbXF3fn9/f393cWpkX11bXF1fZGpxeX9/eHBoYltWU1JTVFZcYWhxen1zaGBaU05LSUtLTlRZYGpzeG1jWlRMR0NCQ0RHTlNbZG50aV5VT0ZBPzw8PkJJTVVfaW1kW1JLQz48ODc6PkRKUlxnaF5VT0dAOzk1NTc7QkdQWWVkWVFKRkA7NjU1ODtBSFBYZGFXT0hCPDk4NjY6PEFJUVllYVdORz05Nzg3OD0/RExTXGdeU0xGPDc3NTM3Oz1ETVVdZ11UTEU7NjUxMjU4O0FLU1tlXFJMRTs2NTIxNTg7QUxUXGZcVExFOzY1MzE1OTxCTFRdZ11UTUY8OzkxMjU6PURNVl9pXlRORz45ODYzOD0/R1BZYWtfV1BKQDw6ODY3PkFIUVljbWJYUUxDPz48OTtCREtUXmZwZFtUT0hCPj88PkRHTlZgaXNoXldSTEVCQkBBRkpRWWFrdWtiWVRPSUVGQ0RKTVNcY213bmZeWFJMSEhGR0tPVV1lbnhzaWFaVk5LS0hJTVBWXmZveHdsZF1XUE1MSUpPUVhfZnB6eW9mX1lSTk1KS09SV15ncHp7cGdjW1RPT0tOUFJaYGhyfH1yaGNaVE9OTExPU1lgaHJ8fXNpZFxUUVBOT1FVW2Bpc35+c2tjWlRRTk1PUFRaYWlzfn5za2NbVFFPTU9QVVthaXR+fnVqYVpUUExLTU9SWmBoc319c2lfWFNMSUpKTVJYXmdxfHtvZl1WUEpHR0VITlVbY214eW5kW1RNRkNFQ0ZMUlhha3Z3bGJZUkxGQ0RGSE1SWGFrdXhtYllTTklGR0dKTlVbZG13em9lXFZSTUpJTU5UWmBocXt8cmdgWVZTUFFUVlpgZWx2f392bWVgXFpYWVteYmhtdH1/f3x0bWhjYmJhY2hrcXZ9f39/f3x2cG1qbGttcnZ7f39/fw=="},"LeftArm":{"min":[-0.0943,-0.0886,-0.0899],"dims":[15,29,14],"data":"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O0FKVVJJQDUvLSgoKzA4P0hTUkg/NDUsJiUtNDc9R1FQRz80NSwlJCosNjxHUVFIPzQtKyUkJy01PEdSUkpBNi8tJiUoLTc/SFRVTEM4Mi8pJyowOUBKVVdNRjw2Mi0rLjM8Q01ZWlJKQDo0MjIyN0BHUVtfVE5FPjg2Njc8REtWYGJYUUhAPDg3O0BIUFpkYVhPRkA8OTo/Q0pVXmlcVEtCPDc6Oj5FTVZha1hQRz43Njg4PEVMVV5nVUxEOzUxNTc7Q0tTW2VTS0I6NDQ2NjpCSlFaZFFKQjo0NDc4PENKU1tlVExCOjc3OTpARUxWXWZYT0Y+Ojs9PkJJUFlgaV1US0VCQkNFSlFXX2dwZFpTTEpKTE1RWF9mb3d7c21nZWJhYmVobXN7f3NrZV9bWVhZW19ka3N8bGVeWFRRUVFUWF5lcHhnYFhTT0xMTU9TWWFpcmRcVE5KR0ZHSk5VXGRsY1pRTUhEQ0RHS1JXXmZhWVFLRkRCQUVHTVRaY2JaUEhCQT09QUNIUFdgYFdNRD49OTk/QEdPVWBeVUtDPDs3Nzs+Q0xUXV1USkFBOTU0OkBCS1JcXFRKQUA5NDM4OkJKUlxdVEhBOjg0Mzc6QEpSXF9WTEI+OjU0ODtDTFNdYFhMRj88ODY6PUNNVV9jW1JJQz48PDxBSFBZYmVeVU1IREBAQEVMU1tmaWFYUUtHRERESVBYYGltZVxVT0pHSEhNVFxkbm1kWlJNS0hJTVFXYGlzZ2BXTkpHSEhMU1pibHZkW1JLRURGRktRWWFqc2FZUEdDQkNFSVBYYGdxX1dORkNCREZJUFdfZm9eV05GQ0NFRkpRV19ncGBXT0lFRkhITFRZYWhxZFpSTEhJS0xQV11kbHVnXldST09RUlZcY2pyem1kXllWVlhZXWNqcXl/"},"LeftForeArm":{"min":[-0.0952,-0.0802,-0.094],"dims":[14,28,14],"data":"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"},"LeftHand":{"min":[-0.0854,-0.0698,-0.0733],"dims":[13,16,11],"data":"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"},"RightArm":{"min":[-0.1044,-0.0886,-0.0899],"dims":[15,29,14],"data":"c2xlYFxaWVpcYGZsdHxrY1xWUlBPT1JWXGNrdGRcVU9KSEdISk9VXGhwYFdQSkVCQUJFSlBXYWpbU0tEPzw7PD9ES1NbZFpQR0E8OTg5PEFITVVfWE9HQDw4Nzc5PUNJUVtaUEg+ODcyMjQ5QEZPWVhPRDo0Mi4vNDY+Q0xYVExDOTIwKywuNDlBS1VUS0I3OC8qKTA3OUFKVFNKQTc3LykoLTA5P0lUVEtBNzAuKSgqMDg/SlRWTUQ5MjAqKCsxOkJLVVdPRTw1Mi0rLTM8Qk1YWlFJQDk1MS8xNj9FUFtdVU1DPTg1NjY6Q0lUXmFXUUhBPDk6Oj9HTlhiZVtUS0M/PDs+Q0tUXWdkW1JKQ0A9PkJHTVdha15WTkQ/Oz0+QkhQWWRtXFNJQTs6OztASE9YYWpXT0c+ODU4Oj9GTlZeaFZORT04Nzk5PkVNVF1mVU1FPTg3Ojs/Rk5WXmdXT0Y+Ojs8PUNIT1lfaVtSSUE9P0BCRUxUXGNsYFZOSEVFR0hNVFpianJmXVVPTU1PUFRaYWlxeWlhWlRQTk1NUFVaYWtzYllSTEhFREVITFJaY2xaUklDPjs6Oz5DSlJaZVVLQjw3MzIzNzxDS1VfUUc+NzEuLS4xN0FIUFlORDs0LispKy40PEFLU05DOzMtKigqLC81PUVQTkQ7MywpJCMmKzE6Q05NQjowJyEgICMoLzhCTUs/OC4lHh0dICYsNkBNST02LSMgGxoeJC01P0xJPjYqIxwaGR0jKjQ/TEo/NyojHBoZHCIqND9MS0A4LCUeGxodIy41QE5NQjovKCUeHCAlLjhDUFBFPTMsJSMgJCkxO0ZTU0k/NzAqJycoLTc/SVZXTUQ7NC0rKywyOUROWlpQRj43MS0sMDZASFRfWk9HPDYwLi8yOkNMWWNVSkM5Mi0sLzU8RE9ZYlFGPjUsLC0tMjtDTFZeTUI7MiomKiwwOUFJU1xKQTowKSYrKzA4QEhRXEo/OTApJiwtMTlBSVJdTEM6MCwsLC82PENLVF9QRz01MTEwNDpAR1BYY1ZMQzo2ODo8QUhPWF9pXlRLRUFCQ0RJUVdfZ3BhWVFLR0RDREZLUVlia1hPR0E8OTg5PEFHUFhjUUc/NzIuLS4yN0BHUV1LQTgwKiclJyswOEFMVkY8MiokIB4gIyo1PEZPRDkvJyAcGxwgJy03QElDOC4mHxsZGx8iKTE7REQ5LychGhcWGRwlMDlERTkuJhoUEREVGiMsOEJCNiokFxAODhIYISs4QUA0KCIWDwwLEBYfKjhBQDQpIhUPCwoPFR8pN0FANSojFg8LCg8VHyo4QkM2KyQYEQ0LEBYhKzpERTgtJxsVEA4SGSMuPEdHOzApHxgUERYcJzE/Sks+NCokHRkWGyErNUNNT0I4LicgHBofKDA6R1JSRjwxKiIeHSMpND9LVlBGPDMpIh8gJi04Q09aS0A3LyQfHiAnLzlDTVdHPDErIxwbHycuN0BJVEM4LSccGB0eJi01P0hRQDUrJRoXHR0kKzM8R1BANSokGxcaHyUsMzxIUkM4LyUeGh4hKC82QElTRjwzKSIkJSgwNj5GT1lMRDowLC0sLzc9RU1WYFZMQzs3ODc7QEZNVl5oWlFIQj06OTo9RElRW2RRRz84Mi8uLzI4P0hRXEk/NS0nJCIkKC44P0pVQzgtJR4aGRoeJS04Q08+MigeFxIREhcfKDM8RzsvJBsTDgwOExsjLTRBOi4jGRIMCwwSFR0kMDw8MCUbEw4KCQsRGSQtOT8xJRgOBwMDCA4XIC06PS0hFRL9//8FDBYgLTk8Kx8UCAL9/QIKFCMsOTsrHxMIAfz7AQoUIC06OysgFAkC/Pv/ChUhLjs8LyEWCwT+/AIMFiMwPT4xIxkVCAIABQ4ZJjNAPzUmHBgMBwQJEh0pNkNCOCogGhALCQ0XIS06R0U7LiQaEw4MERwmMT5LST4xJx0VEA8WIC02Qk9KPzInHBUQERkjMDlGUkY6LSIbEg8SGiQwOURQQTIoHRgODBEaIys0P0s9LyMZDQoLDxggKTM8SDsuIRYMCAoPFx4nMDtHOisgFA0JDBAXHigxO0c7LSEbEAwQFBsjKzQ/Sz8zJyAYFBcbIiwyPUdRRTwzKiMkIyctNDxET1hQRz42MjEyMjo/Rk9XYFVLQjw2MzIzNjxDS1VfTEA3LyklJCYpLzdAS1ZDOC4lHhoZGh4lLThDTzwwJRsUDw0PFBwlMDxINyoeFAwGBAYMFB8rNUA0JxsPBgD+AAYQGyItOzMmGQ4F/vz+BQoQHCg3NCcbEAcB/wH+BQ0ZJTU3KyATB/4FB/oCDBglNDUrHQ3/9g/x9/8LGCU1NCgbCv/07u/2/wsYJTUxJhoK/vTt7vX/CxgmNTEmGwv/9O7t9QANGic3MiccDAH38O/3AQ8cKTkzKR8OBPv08voEEh8sOzUqIREI//n3/ggVIi8/OCsjFQsD/PsDDRonM0I8LyYZDwYA/wcSHis4RkAzKRwSCAECCxYiLztKQjUqHRIIAQQOGSQxPUs9MyQZDgUABQ4aJC88SDksHhMKAP4FDRcgKzZENikeDwX7/AQMFB0nM0E0JhcM//r8AgoSGiYyQDUnFgv/+/4ECxMcJzNBNyYaDwMAAwkQGCArN0M7LSEXEAwPEhsjKzM/SkM4LCYeGx8jJi01PkdSTEE6LywsLC82O0JKUltQRj42MS0sLTE2PkZQW0c8MiokIB4gJCoyPEdSPjIoHhcSERIXHigyPko3Kh4UCwUDBQsUHio3RDEkFwsC+/j7AgwYJDI8LiATBvvz7/P7BhMcKTYtHxEE+fDt9PkFCRMlMS8hEwf89AgB/AcEECEvMiUYDQP9+vwDCQQQISwyJBYJ/PgGCA73AxAiLy4gEgT2FBMU6vYDFiIsLR8QAvXpIODq9wQRHy4sHhAC9urg4Oz5BhghMCweEAL37OPi7vsIGiYyLSASBPrv5+Xx/gsYJjUwIhQH/fPs6vX+DxwqODMlGAoB9+/v+gYTIC48NikcDwT68vP+CxckMkA7LSASB/309gEOGic1RD0vIRMI/fT5BBAcKDdFOSseEAX68fkEDxolM0A0JxkMAPbw+AMMFiUwOzIkFgj78O73AAgTIS06MCITBffs7vX9BREdKTcvIBIE9u/w9/8IEx8uOzMlGgv//f8EChEaJjI+Oi0gFg0MDRIZHCUuOkRCNSsiGx0cHyUrMzlCTkpANzEqKystMzk/Rk5YTkQ7My0qKSouMztETllEOC4mHxsaGx8mLzlDUDovIxoSDQsNEhokLztHMycaDwb//f8GDxonNEEuIBMG+/Lv8vsGEyAtOSscDv/y6OPo8wAOGCUxKhsM/vDkGhIL/gMQHi0rHQ4B9OkRCP8B/g0cKi8hFAf8CQX+/Qj9DBsqMiQVBwACAAIIEf0MGyouHQ8A8xAOEBXv/g0bKiwaDP7vHh0e4/D/Dh0sLBkL/e/h09fl8wEQHy4rGQv97+LX2uf2BBMhMC0eDP/x5dre6vkHFiQzLyEPAfTo3uLv/QsZJzYyIxIF+Ozi5vP/Dx0rOTUnFgn88OXq9wQSIS89OSsaDP/x5+36BhUjMkA8LRwOAPLo7/sHFiQyQDgqGQv+8Obv+gUTIS48MSIUB/rs5O73AQ8cKjgtHxAD9efi6/P+ChgmNCwdDgDy5+fo8fwIFyY0Lh0QAvj09ff7AQ0aKTcxIxcMBQIDBQkOFiAtOzcsIRcSDxEUGBwiKjZBQTYuJR8eHyImKi42QEpLQjgyLiwuLzM4PEFKVE1DOjIsKScpLDI6Q01YQzgtJR4aGBoeJS44Q086LiIYEQsKCxEZIy46RzIlGQ0E/fv9BA4ZJTNALR8RBPjv7O/4BBEfLTkpGwz97+Pd4/D+DBskMygZCvvs3h0VDPwLDyIvKhsN/vEZEgoA/wMMHi0uIBIG+gwH/voG+woZKzEjFwsD/v0ABg/7Ch4sLB4Q/vYODA4T7fwLHiwqGwz97x0bHeHv/QwfLSgZCvvs3c7X5PIADiIwJxgJ++zd0drm9QMXJTIoGQv87d7U3er4BhQmNSobDP7v4dff7fsJFyk4LR4QAfPl2uLw/g0bLDsxIhQG9+nc5PMBEB4tPjUnGAr77d7m9AMSIC9AOSobDP3v4Ob1AxIhMkE1JxkL/O7g5fMBDxwuPTEjFAb46t7j7/0LGCo4LR8Q//Pl29/r+AYVJzYrHA3+8evp6ev2BRQiNCweEAX9+vj4+f4KFik3MiQaEAoIBwcICQ0bKjg7LiQcFxUWFhcWHScyP0M4LyklIyQlJScqMTxHTUU8NjMxMTQ0NTc+RlFORDszLiopKi40O0ROWUQ5LyYgHBocICcvOURQOy8kGhMODA4TGyQvO0g0JxoPBv/9AAYPGyc0QS4gEwb78/Dz+wYTIC49KxwOAPPo5OnzAA4cJzcqGwz+8OQXEQr+CRMhMSsdDwH0FA0E/QECEB0uLyEUCP0JAfn9CAAOHCozJRgMA/wAAggOAA4cLS0gEgP37w4QFfIBDx0rKhwN/vDjHR7q9AIQHiwpGgv87uHb4uz3BBIgLygZCvzu4d7l7/oHFSMxKRoM/e/j4enx/QoYJjQrHA7/8ubl6/QADRspOC4fEQL16ujt9gIQHi07MiMVBvru6+/4BBMhMD42KBkL/vLs7/kFFCMyQDorHA4B9e7v+QYUIzJBNikbDgH17e34BBMhLz00JBcK/fPr6/YBDxwqODAfEgX47+jn8v4LGSc1LyAPAvfw6+jt+ggXJTQxIBMKA/359/b7CRclNjMqHhUPCwgGAwYOHCs5PDIoIh0ZFhMSFhwnMD5HPDQuKyglIiEjKDA8R1FHQTs5NjQxMDE1PEVQUEY+NzEuLC4xNz5HUVtGPDIqIx8eHyMqMjxGUj4zKB8YExETFx8oMz5LNyofFAwGBAYMFR8rN0UyJRgMAvv5/AMMGCUyPy8gEwf89PH0/AcTIS06Lh8SBfnx7vH6BRIZJjQvIRQI/fUI//3/ERUjMDMlGQ4E/fz9BAMIEyEwNCgbDgH5BggO/QgTIS8yIhUH+u4U6/P9CBQiMDAfEQT27Ojs9f8KFSMxLh0QAvXs6u73AQwXJTMuHA8C9u3s8foDDx8nNi8hEAP38PD1/QYSISo4MSQSBvny8/gACRUjLTszJhUJ/fb3+wILFyMwPjcpGg0C+vr9Aw0ZJTJBOy0eEgb+/P4EDhomNkM/MiIVCgH9/QQOGic1RDsuIhUKAfz8Ag0ZJTNBNSkcEAf/+fj/ChYlLjwyJBcMA/z29PsGEiErOjEiFQsB+fPw9f4OGyk3MyYZEQkB+vXyAA0aLDo4LiQaFA4IBAEFEB0tPEE3LSchGxcTDxEaJjNBS0E6My4pJR8eIiYvO0hWTkdAPDczLi0xMjtDUFVLQzw3NDM0NzxDTFVfS0E4MCsnJicrMThBTFdDOC0lHhoZGh8lLjhDTzwxJhwVEA4QFRwmMD1JNysfFAwGBAYMFR8rN0U0JxsQBwH+AQcQGyc1QDMmGg8F//z/BQ8aJzA5NScbEQcB/wIDChQiLTg4LCAWDgb6/AAHEh0rNTksHhIH/vr6/wcSHSw3NScaDgP7+PoACBMeLDcyJRcLAfr3+gEJFB8uOTEkFgoB+vn8AwwWITA7MSMWCgL8+/8GDxgkMj0xJBcLA/7+AgkRGyYyQDMmGg0G//8FDBUeKTVENiodEQoFBQkOFyAsN0Y6LiEVDgkICxAYIi46SD4yJhoSDQsMEBkjLztKQjYqHhYPDAwQGCMvPEpCNSkfFQ8KCg4XIi46SD0vJRsTDAgHCxQeKjZENy0hFxAJBAMHDxolMkE4LB8VDgUA/gEKFiMwPjkuIxoRCf/9/wcTIC4+PTUrIxoTDAQFCRYkMT5IPTcvJh4ZExAUICs2Q1FGQTkxKyYiICUoMT5KXFJMRj85NDAvMzc9RVJbUklDPjs6Oz5DSlJaZVFJQDcyLy4vMjhBSFFcSkA4LiglIyUoLjY/SlVDODAlHxsaGx8mLzlEUD8zKSAYFBIUGCApMz9LPDAlGxQODQ4TGyUvPEk7LyQaEg0LDRIaIiw5RDwwJhwUDw4QDxYeKDZCQDQpIBgQCwsNFBwnMkBAMiYaEgsICQ0THCcyQTsuIxcPCAYIDRQdKDNBOC4hFg0IBggNFh4pNEI4LSAWDQkHCg8YICs2RDgrHxYOCgkMEhomLThEOSwlGBANDA8VHSYwO0c7LicaExAQEhkhKTI+ST4xKh4WExMWHCMrNUBMQTUuIhsXFhkeKC02Qk5GOjImHxsZGx8pLTdEUEo+Ny0iHRsaHiktN0RQSj04LSIcGRgbIys2Qk5FODMnIBkWFRsfJzI+SkI1LiMdFhIRExslMDlGQTMtIBsTDg0NFh8qN0RCNy4lGxQMDAsTHyw3REg9MyoiGxMQDhUhLjdETUU9NS0nHBkZHSczPUhXTkc/NzIsKiQoMDpET2NaUUpDPTg2NDY8RE1XY1pTTUhFRUZJTVNaY2xZUEhCPTo4OT1BSFBZZFJIPzkzMC8wMzlASFJdTEE4MSsnJicrMThDTFhHPTMrJSEgISUsMz1IU0U6MCghHRwdIScvOkVRRDkvJiAcGhwgJzA2QExFOzEoIh4cHh4jLDM9Skg9NCoiHRkZGyIsMjxHRTouJh4ZFhgaISk0PEdDNywiHBcVFxohKTI9SEM2KyEbFhUXGyIqNT5JQjUrIRsXFhgdJCw4QEtBNysjHBkYGh8mLzpCTUM5LSQeGxsdIykyO0RQRDsvJyEeHiEmLDU+R1NFPTIqIyIhJCowOEFJVUtBNS4nJiQoLDE5QUtXTUU6MispKCotNDpETFlSSUA2LywpKSw0OUJOWVJIQTYwKicnKS83QExWTUM9NC0oJCMlKzM8SFJKQDgwLCQgHyAoLThETkpAOC8nIiAcHSIqM0FMTEI5MCkhGxsfICg0QUxQRz41LSYfGyEhKjVCTVdPRjw0LygkJycwOkZRX1ZPRkA4MTEtMjhBTFdrYlhQS0Q/PTs9QUpUXmthW1VRT05OUVVbYmpzZFpSTEdFREVHTFJZYmxcU0tFQD06O0BFSlNdZlZMRD04NTQ1OD1ETFZgUUc/ODIvLi8yOD9IUlxPRTw1LywrLC81PEVPWk5EOzQuKikrLjQ7Q0tVUEU9NTAsKywsMTlASFNSST82LyooKC0vNj9HUk9EOjIrKCUmKC41QEhRTEE5MComJCUpLjY/R1JLQDYvKSUkJSkvNz9KU0pANzEqKCUpKzA4QUxVTEA3MisnJystMjtDTlpNQjk0LSkqKzA2PkZRWU9DOzMvLSwvMzpBSlRdU0g+NzIwMTM3PURMVmBWTEI7ODQ1Njo/Rk9YYlpPRj86ODc4O0BJU1ljXlRKQz46ODc7QEZPWGNgVkxEPTk2NTg+Q0xWYVtRR0E7NjIxNDo/R1FcWE5FPTcyMC0vNTlCTFhXTUM8NTAuKiwyNj9KVlhNRj40LyoqLTA0PUlVWlJJPzg1Ly0vMTY+SlZhV09HPzkzMzQ2O0NOWWlgV05JQDw7Oz1CSlRfcWlgWVJLR0ZFRkpSW2V0bGVgXFpZWlxgZWxzfG1lXFhUUE9QUlddY2x1ZV1VT0tIR0hMUVVeZ3BgV1BJRUJBQkVKUFhhal1UTEZBPjw9QEZLU11mWlFJQj47Ojs+QklRWmNaUEhBPDk4OTxBSVBWYFpRSUI+Ozo6PD9ETVVeXVNKQj45ODc5PENKVFxZUEY/OzY2NTc+QktVXVZORD03NTM0Nz5DSlVcVktFPTc0MzM4PENMVV9VTEU8ODY0Nzk+Rk1XYVVMRT45ODY5O0BHT1hjVk5HQTs4ODo+Q0tSW2ZZUEhDPjs7PUJHTVVeaF1SS0ZAP0BBREpQWGFrYFZOSkRDQ0VHTVRbY21kWlNNSUZGR0pOVV5jbmheV1FMSUdISUxUW2NuamBXUUtHRERGS1FXYGplXFVOSERCQEJHTFNbZWNZUkxFQD48PUNHTlZhYllQSkM+PDk8QUVLVF9jWlNKQkA5OTs+Q0lTXmVdVU1HQj08Pj9DS1Nfa2JZUUxFQUBCQ0hOV2JyaWBZU0tIR0hKTlVdZ3pxaWJbVFFRUFFVXGRt"},"RightForeArm":{"min":[-0.0939,-0.0802,-0.094],"dims":[14,28,14],"data":"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"},"RightHand":{"min":[-0.0934,-0.0698,-0.0733],"dims":[13,16,11],"data":"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"},"RightFoot":{"min":[-0.0891,-0.0759,-0.1274],"dims":[14,19,16],"data":"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f3NnWk1COC8oJyktNT5IVH96bWJVSkE5NDQ2OUFJUl1/f3VqXlVNRkJBQkdNVV5menRua2RjXVhVVFVZYGhwdXBqZWFdWlNOS0lMUFdfaG9nZV9bWFJKRUFCRElQWGJpYF1VUU5JRD48PD5DSlNcZVpVTkhEQj07ODg7P0ZOWWNWUUhCPz45NjU3OT5FTVhhVE1FPzs5NzQzNTo/RU9ZYlNLQTw5Nzg0MzQ3PUNLVWJUTEM7ODc3MjAuMTc8RlBfV05GPzo5NC4qKiwxOUFMV1pSSkQ+ODEpJyYnLDI8RlFiWFBKQjcuJyQhISQsNkBNaWBYTkM4LSUfHR0gKTI+S3JqYlFGOS8lIBscICgyPEl7bWFVSD4yKiIeICUpNEBMf3JmWU1DOC8pJygqMTpFUX94bF9UST84MzEyNTtDTFl/f3JmXFFJQT49PUBGTldif396b2RbUk5KSEpNUVlian99eXVvbGdiYF9gZGpxeX56dG9sZ2ReWVdWWFxiaXJ5c29pZWJdVlJQUFFVW2Nsc2xnYVxaVVFNS0tMUVZeZ29mYVpVUlBMSUhHSU1TWmRsY1xVUE1MSERERkhMUlljbGBZUk1KSEZDQURITVNbZG1fV09KSEZFQkJCRUhOV19pYFhQSkdGRUA9PT9DSVBaZmFaU0xIR0A8OTk5PkRMVV9mXVdSTUU9OTU0NTk+RVBaa2NbV0xEOzQyMC8yOUBKVHFpY1hNRDkzLywrLjM9RlN6c2xaTkQ8My4qKi4zPUdTf3VoXVFIPjUwLS4yNz9JVH95bWJXS0M8NjQ0OD1DTFl/fnJmXFJKQz07PUBFS1Rgf395bWRbUUxHRkhITlZdaH9/f3ZrY1xVU1JTVVlfaHA="},"RightToeBase":{"min":[-0.0815,-0.0385,-0.0402],"dims":[13,13,11],"data":"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"},"RightLeg":{"min":[-0.1052,-0.1018,-0.1274],"dims":[16,41,17],"data":"f3xyamReWVZVVVdbXmRrc3t+dGpiXFRPTEtMTU9UW2JrdHduY1pUTEdDQkNER0xTW2RscmhdVE1FQD06PDxARkxUXmhuZFlORz86ODQzNjpBRk5ZY2leVEtCOzYzLy8xNj1DS1ZgY1hPSEA6My4tLC4zO0BJVF5dU0lDPjgzLiwsLjI6QElTXltQRkA6MjEwLS4vNDtBSlRfW1BHPzcxLDAuMTU3PERNVmFYTUU+Ni8uLSowMzU9R01VYFdMRD4zLi0oKS0uMzlFS1VeVkxEPjMuLScoLS8zO0VLVGBWTEQ+My4tKigtMDQ8RkxWYFZMRT80MzEoKS0vNTxHTlhiWE1GQDYxMC4rMDQ3QEpQWmZZT0hCODQvLy0vNjpAS1NdZ1tSSkQ+NjU0MTI5PUROVmBrX1RLRkA6Njc0NT0/RlBYYmxhWE5KRD05Ojc5P0JJUlpkb2ZbUkxHQD0+OzxCRUtVXWZxaV9WUEtDQEA9PkNHTVZeZ3JtYlpSTUZDQj9ARUhOVl9ocnFlXVRPSEREQUJGSVBWX2pzdGlfWFFJRkRCQkVKUFdganR1aWFcU0xHRkNFR0xSWGJsdndrYlxTS0dFQ0NGS1JZYWx2eGxiXVRNR0dGR0dNU1ljbXd4bWRcUkxHRURGR0tRWWJtd3htZFxUTElHREdHTVNaYm14eG5kWVJLSERCQ0ZKUllibXh3bWNZUUlEQUJCRUtOV2BrdnVqX1ZPSUE+Pzw/Rk1UXWdyc2hdVE1FPjs8Oz5ESVFaZW9yZltSSUU+Ojw9QEZKUVllb3JnXFJLRkE+Pz5CSE1UXWdxc2lfVE1KRUJBRUdNUlhha3V1bGJZUk5LSElMT1RYX2ZwenlwZ19ZVVNRUVNXXGJnbnd/fnVuZ2FdWltbXWJla3F3f39/fXVvamZkZWZobHB1e39/f310aWJaVE9MSkpMT1RaY2tzdWxiWFBKRUFAQEFFSlBaYWtuZVpQSEE8NzY2OD1BSFJaZGldVElAOzQvLS8wNTlBS1NeZFlPRDs1LSgmJigsMztGTVlhVUtANy4oIyEhIycuN0FLVVtPRTw0KyUgHh4gJSs0PUlTVko/NjArJCAdHR8kKzQ9SVNTRjwxLSQjIh8fISYsNT5KVFJGOTIrIx4iICMlKjI4QU1WT0M4MSshICAcIiMoMjlASldOQTcwKSAbGRogICYwNj9JVkxBNzApIBoYGSAfJTA2P0tXTUE2MSkgGxkZICAmMTdBS1hNQTcxKiclGRogISgyOUNNW05CODIsIyIhHCIjKjQ8RVFdUEQ6NC4mISIfIyYsNj5IUl9SRz03MiklJiIkKTA3QUtVYVVJQDc0LCgqJSovMjxDTVdjWExDPTgvKywpKi41PEZPWWRcUEc+OjIuMCwtMTdASFFaZmBVS0I8NTExLjA2OUFJUl1nZFhORUA6NDMwMTU6QkpTXWhoXFFIPzw2NTI1NjtDSlVfaWpfU0pFPTczMzM2O0JLVF9qbGBVUkg/ODg0Nzc+Q0xXYGxuYlZRRz05NzQ0ODxETFdhbG9jV1NIQDk5Nzk5QERNWGFtb2JYUUc+OTY1NTk/RU1YYm5vY1hRRz45OTU4OUBFTVhibm5jWU9FPjo1MzQ4PkRNWGJubWFYTkM8OTMyMzY8QktWYW1sYFVKQTwzMDAuMTpBSVNdaGpfU0lAOS8sLiwvNzxFUFplaF1RRj03LywtLzA3PERQWmVoXVJGPTg0LzEwNDtBSVNcZ2leVEpBOjg0Mzg7QUZNV2Fra2BXTUZBPj08QENITVRdZXBvZVxVTUhFRkZITFJXXmZtd3VrY1xWUU9QUFNYXGFnb3Z/fHNrZWBbWlpbX2JobHJ5f392bGJZUktGQ0FBQkZLU1pibW5jWU9IQDs3NTU3O0FHUFljZ1xRSD43MSwrKywxN0BHUVthVUpBNi4oIyEhIygvOEBLVVxQRDswJyAbGRgcICgvOkVQWU1BNysiGhUTEhYaIis1QUxTSD0zKB8XEg8PEhcfKDM/S09DNisiGxYRDg4RFh8oMj5KTD4xJxwWFRMQEBMYICk1P0tLPi8kHhQQFxMVGB0kLTlCTkg6LSMfEw4MDhcVGyYsNUJMRzosIh0SDQoLFBIYISo0QUtGNiwhHhIMCQoUEhghKzZCTUY5LCEfEg0KChUSHSIsNkRORjksIh8TDgsLFBQaJC44RU5GOi0jIRUQFA0WFh0nMTtIUkg7LyUiGBMWEBgZHykzPUpUSj4yKCUbFxkUFRwjLDZAS1dPQTUrJh4aHhcdHyUvOERPWVBEOC8pIR0eGhwhKDE6RE9bVEg7MiopICEdHiQqMzxFUVxXTEE2LSojIB8hJSw0PUhSXVtQRDkxLSYiISInLTU+SFNeXlNHPDMuKCcjJygvNUBIVWFgVko+NTApJSQkKC02P0pVYWNXTEA3MywqJSkpMTdCS1djZVlNQTcyKiYlJSowN0BMWGRmWk5CODMrKykqKjA4Q0xaZmdaTUI6MCsnJicqMDhDTVpmZ1pNQjozKyomKi0wOUNNW2ZmWU1EOjEpJiUmKS84Q01bZ2VYTEI5LyglIyUoLTZBS1llYldMQDUsKCEeHycsND9JVF9gVUo+MyolHR8eISgwO0VQXV9TSDwxKCAdHx8iJzA7RVBdXVNIPTEoJyEgIiYsMz5IU19gVEk/NS0rJiUrLzQ7REtXY2JVTEM5NDAvMTU4PURLU11pZltRSUM9Ojs7P0RITlVcZW9tYllQTEZFRUdKT1RbX2dveHVrYlpWU1BRVFZcYGZqcXl/cWVbUkpDPjo5OTs+REtTXWdpXFJIPzkyLiwsLjM6QElTXmJVSj82LiciICAjJy82P0lXXE9COS0kHRgWFhgeJC43QlBXSD0xJR0UDwwMDxUcJjE8S1JEOCwgFw4IBQUIDxYhLThHSz81KR0TCgQAAAQLEx4qNkRGOzAhGBEKA///AwoTHSk1REM3KxwSCQcFAQIGDBUfKzdFQjcqGg8FAgsGCAsQGSIuOEQ/NCcYDhIA/v8DCBUXIS01Qj80JhcMBP/7/P8EExUfLTRBPjIhFwwD/vr7/gQMFiAuN0I9MyUWDAT/+/v+BRQXITA3Qz0yIRcNBQD8/AAGDxkjMDpGPTMmGA4SAv7/AgkSHCYzPUhANCQaEQoFEAERCxoeKDM/S0E3Kh0TFAgFBQgPFyErNkJORDosIBcYDBIIChEaIy05RFBHPDEjGhgPCwsNFBslLzpGUks/NCceHBIPDhAWHicwPEdUTkM4KiIZFRERGBgfKDE9SFVSRjswJRwXFBMUGSApMj1KVlZKPjInHxkVFBkZICkzPkxYWExBNSkmGhYVFRohKjQ/TFlaTUI3KykgHBYWGyIqNkFPW1xRRTYsJxwXFhcbIys3Qk9cXVFFOS0jIR0dHSAjLjdDUV5gU0U4LSYdFxcYHCMsOENRXl9SRTgtJh0cFx4gJC84RFJeYFJFODAjHBcWFxsjLDhEUl5eUEM3KyIbFhQWGSEqNkNRXVtOQzgqIB0TEBQXICg1QExZWUw/NSceFQ8MDxgbIy88SVVXSj40JRwTDgsRGBsjLTpHVldJPDMoHBkTEhQbISg0P0tYWEo9NCghGhocHyQqMDlDUF1aTkE4MCglJycqMDU6QUtVYl5TSD82NDAwMjY8QUZMVV9qZltRSEE+Ozw/Q0hNUlhfaHFuZFpSTUlHSUtPVVleZGtzfGxhVk1EPTc4NzY4OD1ETldhZFdMQjkxKyckJCcrMjlCTFhcT0U5LyYfGhcYGh8mLzpET11IPTAmHBQOCwsPFBwmMjxJVUM3KR4TCgT/AAQKFB4rNUNMPjMkGA0D/Pj4/AMNGCQxP0Y3KyEVCf/28vL2/wkVIS49QDInHBUH/vXw8PX+CBQgLjw7LiAYB/4A/vP0+AAKFiIvPTkuIhgF+gb/+/v/Bg8bJTA8NigfFgP5DggFBf0EDBohLTo3KiAVAvcPExAP9wAKGiAsOTQpIAwB9/Ds7PD2/wsaIS06MygfFAH38Ovs8fgCDBwiLzsyKB4MAvjy7e7z+QQOGSUxPjMpIBUD7/Tw8PX8BxEcKDRCNyshDwX89/Pz+P8KGR8rN0U3LCMZCP/69vb7AgwWIS05SDovJRULAv36+v4EDhgkLz5KPjMpHg8GAf39AAcQGiUxPktCNSohEgoEAAACCRIbJzI/TEY5LyQWDQcD/gQKExwnNUFNSj0wJxkQCQUEBgsUHSg1QE5OQTQmGxMTBwUGCxQeKThEUFJENy0dFAsIBgcMFR8qNkRSVEc5LCMWFAkHCA0WIS46R1RWSTswIRcNCQcJDhYhLjlHVlhKPDAlGBUTEwoOFyIwPEhXWEw/MSMYDwkICg8XIzA8SVdYSj4xIxgPCQgTDxcjLz1IV1pNPzAkHQ8IBwkOFyMvPUpXWUs9LyIWDgcFCAwVIjA8SVVXRzowJRoMBQEFCxQgLjpHVVRFOCseEgkC/wAGDxsnNERSUkM1KB8QBwD9AggPGSY1Q1BQQzUoGhAJBQcLERYgKjhFUlNFNiodFRAPEhccIScxPklVVUc6LiUdGxseIygtMzxFT1xaTkI2LicmKCsvNTo/Rk1YY2FWS0A5NTM1ODxBRkxUXWJsal9VTUdCQEJESU5TWGBnbXZoXVNIQDgzLiwsLjI5QElTXV9USD40LCUhHh4hJiw1PklUWEs/NCkgGRMQERMZICo0QEtXRDcrHxUNBgMDBg0VICs3RFA+MSQXDAL69/b7AgwXJDE+SjosHhEF+vHr7PH6BREfLDpDNSkbDQD06uTk6vUADRwqODstIBQH/gELEuLp8/8NGyk3OSkbDgEC9v0LFu32Ag4dKzk2KRcK/Af99fz++/oIEh0rOTEjFQf5Dwf//Pz/+gEMGSU2MiETBfcTEgwJCQz1/gsYJDUuIBIE9+weGRYWFfUADBklNi4gEgTt7OLd3ePt9wIOGio4LR8RA/ft5N/f5e/5BBAdLDkuIBIE7u7m4uHo8vwHEyAvPC8hEwb68enl5ev1/woWIjI+MiQWE/3z7Ojo7vcBDRknM0A1JxoMAPfv7Ovw+QMPGik2QTkrHRAD+vLv7vP7BRAcKDZEPS8iFBH+9fLx9f0GERwqOEZBMyYZDAH59fP3/gcSIiw6SEU3Kh0WBPz39fj/CBMfLTtJSzsuIBMG/vj2+P8JEyEvPUtOPjEkFgj/+ff5AAoVIzE/TVFBMyYYCv/6+PoBCxclM0JQVEU1JxkLAvv4+gEMGCY1Q1FURDYoGgwD7+35AQ0ZJzZEUlRGNykeDgP7+fsCDhkoNkVTVEY3KRoOA/v5+gIOGSg2RVNWSDotIBUR+/j6Ag4ZJzZEU1RFNigaDgH69/gADRkmNENSVEU3Kh8M8fb09/8MGSgzQVBRQjQkFwr+9fD0/QYTJDE/TU9AMiEUCPvy8/j9BhEeLTxLTkAvIRQG/fr+BAkPGCUxPkxQQTIiFgkGBwsQFRohLDdDUVJENikcFRIUGB0iJy00P0pXV0o+MiYhHyEkKS40OUBIU19dUUQ6NC4sLjI2O0BHTVVeaGVZT0dBPDs8P0NITVNXXmhyZ1xQRj07MSspKSwzPD1HUVxeUkU7MSkiHRsbHSIpMTxHUlZKPDAmHRUPDAwPFR0mMz5KU0I0JxwRCAH9/QEIERwnNkNMPS8gEwf89O/v9P0HEyAwPUc5KxoN//Pp4uLp8wANGis5RDYoFwn77eLh2uDt+wkXKDY9MCMSCPkQCxgcGev6CBYoNjkrHQkD/O/9CA4N8/wKGCY0NSgdEAkC9/b7AAD/Aw8UIjAxIxACDAsB+vX1+QH5BRceLDIjFgDyFg0HBAQHDfYDFiIuLh8N//HjGhUSEhXr+AQWHi0tHwz+8OLXIyEh4u36BhgkMS0eDP7w4tgvL9vl8PwIGSMxLh8N//Hj2dTU3efz/wkYJjUvHA7/8+Xc19fg6vb+FBspODAfEQP26N/a2uLs+AQQHi07NCUVB/ns4t3d5O76BRMhMD43KR0L/vDm4eDn8PsHFSQyQDwtHQ/+9erk4ujx/AkXJTNEQDMlEwb57ebk6fL8ChknNUZFNigXCvzw6Obq8/4MGig5SEk7LBoNAPLq5+r0AA4gLjxKTD4wIxD+9evo6/UCEB4vPUxPQDIjEgT37Ons9gQSJDNBT1FDNSYUBvjt6e33BRMiM0JRUkM1JhUH+e3k7PgGFSM0Q1JTRTYlFgj47urt+AcVJDVDUlNEMyUWCPnu6u35BxUkMkNSVEY4Kh0U7ejp7fkGFSMyQ1JSQzQlFgj57ejs+AUUIjFAUFFDMyQVB/jr5er3BBMiMD9OTj8wIRID9uni6PX+ER8rOkpNPy4fEAL05uvw9v4NHCs6SEs8LR4PAPLz+P0CCRMfLTxKTj8uIBEC/gAECQ8VGyY0QU5PQTIkGA4LDREWHCEpMTtIVVNGOi0iGxgbHyMoLTM5Q09bW05BNy0qJyksMDU6P0ZPWGNjVkxCPTg3Nzo9Q0hLUlljbWVaT0U8OzIqKCgrMTs8RlBaXVFFOjAnIRsZGRwhKDE6RVFVSDwvJRsTDQoKDhMcJTA8SFFBMycaEAb/+/v/BhAbJzNBSjssHxIG+vLs7fL7BhIfLTtFNicZC/7x5d7e5vH+CxooNkI0JRYH+OofIB0b6vkIFiU0Oy0hFQb39hEWEQ8O+AcWJTQ3JxoMAfr7AwkQBAH6CRcjMTIlFAb5AfX16/r4+P8EER8tLB0PAPIKAPfz8/f/Cv4MGyouIAz97hUMBQICBQzu/QwaKSsdCvvsIBkTERETGfD+DRwrKhwI+uvdKiIgHyHl8gAPHSwrHRL56tzOMS8u3Of1AxIgLyseE+/m3c/Gx9Le6vgHFSM0LiAU/O7g0snK1+Ht/AoYJzUvIhbv8uTVzNHY5PD/DRspOjQmGAT26NnP2N/o8v8PIzA+NykdEvvt39LY4+z2AxEkMkE7LRsN//Hj2uDn8PkGEyY1RD8xJBIE9ufb5Ovz/AkXKDdFQzIkFgj67OHn7vb/DBonOUhHOSkaDP3v4+rx+AIPHS07Skk7LB4P//Ln7PP6BBIfLT5MTT4vIRID9Ojt9P0GFSIyQE9PQDIjFAX26e31/QgWJDJAUVBBMiQVBvfq7PT6CRclM0RTU0Q2KBsR7uvm8vwJFyUzRFJRQjMkFQf46unx+QgWJDRDUlNENicVBvjp5+34BhQiM0JRUkQ1JhUH+Oni6/YEEyEvQE9RQzUjFAb36ODl9AIQHzFATk0+MCESA/Ti3OTy/w8dLz1LTT4uHxAB8+Xl6vD+CxosO0lLPC0eDwDy7fL3/AMMGyw7Sk0+Lh8RAvj7/wQJDhcjMT9NT0AxIxULBggMERYaISw3Q1JSRjktIBkVFhoeIyctNkBMWFpOQTcuJyQkKCwxNjlAS1RgYldMQzo1MzM2OT5CRk1VX2pnXFBGPTsxKykpLDM8PUdRXF5SRTsxKSIdGxsdIikxPEdSVko8MCYcFA8MDA8VHSYzPkpTQTMnHBEIAf39AQgRHCc2QUw9LyATB/z07+/0/QcTIDA9RzkrGg3/8+ji5unzAAwaKzlFNigXCfvtFhURDvD7CRclNj0vJRYI+Q4NCwgGBPoIFiU1NykcDgX8/QIC/Pv5/AoWIzExIhYI+gL39PXr7fcC/xQgLi4fEALzCwH59fX5AQv6Ch4sLiAN//AWDQcEBAcN7PoSHiwpGgv87SIaFRISFRrt/AseLCgZCvvs3ywjISEj5/H+FCIvJxkK++zf1DIs2+Lr9Q8XIzEoGQv87eDW09jf5u/5BhgnNiocDf7w49rX3OPr9P4SHSo4LR4Q//To3tvh6O/4Ag8cLjwxIxUG+Ozi4OXs8/0GEyQxPzUnGQv98efk6fD3/wkWIzNCOiweEAL27Oju9PsEDBonN0U/MCIUBvrv7PH3/wgQHSo3R0M1JxkK/vTv9PsCCxIgLTtKRzkrHQ4C9/L3/QUNFyIwPktLPS4gGAb79fkABw8XJTNATk9AMSMUCP32+AEJER8qNUNRUUIzKRwS/u77AQkSHSk3RVNSQzUmFwv/+PoACRMgKjhGVVNGOCoeFO/47v8HERwqOEZUU0Q1JxgL//j4/QYVGik3RVNTRDgqHQr+9/X7Ag0ZJzVDU1NENicYCvDo6/f/CBclM0FQUkM1JhcG+/Lv8vwIFCMxQU5QQDIkFQf58Ovs+AQTIS89TE8/MSIUBfnu5+fz/w4dLDpJTj4wIRMF9+zt8fb/Dh0sO0lPQTAiFAb49vv/AwgUIDE+TVBCNCUXDAQFCA0RFRsoNERSVUc6LCEXExMXHB8iKDM+SVdbTUI2LSYiIiUqLS81PEdTX2JXS0I4NDExNDg7P0JJUl1oaF1SSEA+NS4sLC43QEBJU11fVEg+NCwlIR4eISUsND5IVFhLPzQpIBkTEBATGSAqND9LV0Q3Kx8VDAYDAwYNFSArN0RQPjEkFwwC+vb2+gIMFyQxPks+Mh4RBPnw6+/x+gQRHyw6STwwGw0A9A0JBQUIAA0bKjhBNiwaDP8IAwD8+fv/DBkmMj0wJRYMBfz59vPx9gIFEiAuNysfDgMH/fTw8PT9CAAOHCozJhwR+xEG//v7/wYQ/w0bKTImGQP26RIMCAgMEfUADRssLSEX7/ToHhkWFhnu+AIPHSstIBYA8+jfKSQc6/L7BRIfMCkfFAD06eHb4efv9u8IFSMwKh8V//Xr4+Hl7PP7Aw0aJjcvIhYE+O7n5erw9/8SER4rOS8hGAf78erp7vT7AwwWIi8/NikcDAD27u3y+AAIERomM0A4KSAQBfvz8fb8BAwVHSo3RD8xJRYK//f2+wEIDxklLTpHQTUqHw4E/Pr9BQsTHCcwPktHOi0hEwgA8AEIDxYfKzZBTks/MyYXDAT/BAsSGSIrOENRT0I2JRoPBxAGDRQbJDA7RlRURjkoHRIJBAcOFh0mMz5IVlZIOy0fGRMTEg4WHSc0P0pYVkk7KyAUDAYHDhYeKDVATVlYSz0wIBsMEhIUFBwnNEBMWVdJOywgFAwHBgoSGiUyPUpYWEo8Lx8TCgUEBw8XIjA8SlZWRzstHREUFe4ECxQjLTdFVFZHOSobDwYA/QAEEBwsOERSU0Q2JxsPBP359wAMFyQzQVBRQzQmGQ0D+/Xy+wcUITE/TVFCNCYYDP/48u32AxEfLT5LUUM2KBgM//n6/P8HFCExQE5TRTcrHBEIBgkLDRIbKDVCUldJPS8kGxYVFxocICgwPUpWXVFDOi4oJCMlKSsuMz1HUV5lWE1FPDYyMjQ3OjxBSVJcZ2thVk1ERD04NjU4OD1ETlZhZFdMQjkxKyYkJCcrMTlCTFhbT0U5LiYfGhcXGh8mLzpET11IPTAlGxQOCwsOExwlMjxJV0I3KR4TCgQAAAQKEx4rNUNSPjMkGAwD+/f3+wMNGCQxP088MCEVCP76//v9AgkVIS48RzswIBQI/fv08PX9AhIfKzZBMyYcEQYA+PPz+AADCBYkMj0vIBQI/gX/+/v/BgQHGCEvNycaDQP4DggFBQgO/QcSIC42JxcK//XsExAQDwgACRMhLzUmFgn99Ozn6Of07gIMFSMxMyIVCP307Onr8Pf/BxAYJjMzJhUI/vXu7O/z8BEKExwpNjQjFgoA9/Hw8/j/Bw8YIC08NikYDAL69PP3/AMLExwkMT43JxsQBf349/sBCA8YISw2QjwwIBQKAvz7/wUMExwlMDpHPzIkGQ4GAP8EChAXICk0PUpFOCkdEwsFBAgOGhwkLThBTkg6LiIYFgoICxIYICgxO0ZRTkExJxwYDhMPFSAjKzRASlRSRTkrIBsSDxIYHiYtN0BMWFZIOi8kHxUYFRohKTA5RVBcWkw9MiYcFxMWHCIqMTtFUl5bTj80KSMZHBwcIisyPUdUYFxPQDUpHxoVFhwiKjU9SFVhXlBDNS0lGhwbHyApMTxHVWFdT0E1KSAZFhQYHicuOkVSXl1QQjQrIhgUEhUaIyw3QlFdW00/MiYhGxkQERcfKDRATlpaSzwwJBoTDwsLFxkkMDxLWFhLPjAkHhEMEQULFB4rOEVUV0o6LiIYEAgBAAQPGyc0Q1FVSDktIRYNBv37/wsXJTNBT1dJOy0gFg0H//4DCxYkMkBQWEo7LyMYEg4MDA8VHiw5RlRcT0I1KyIcGhoaHR8pMkBMWWJVSD4zLCkmKCgqMDU9SVRgaV1RSEA6NzU2ODs+Q0pTXmlxZVtSSk1GQkFAQj5DS1JdZ2lcUkg/ODIuLCwuMjhASFNeYVRJPzUuJiIgICInLTY/SVZlT0I3LCQdGBUVFx0kLTdCUF9IPDElHBQPDAwPFRwmMTxKW0Y4LCAXDggFBggOFiEsOEdTRDUpHRMKBAD6BAQOGyYyQks/NikcEgkD//8DAAgUHjM9RTksIhcM/wUBAgULBxIgLjlANCYcEQb9CgcHCwEHEhwsNzsuIRYMA/oLEBASAhISHCs2OiseFAr/+fX1BwIFCxUeLTg3Kh0YCQD59vf77BEXFyEuNzYpHBIJ//r4+f4ECxIbJDE8OCkdEwoC/Pv9ARMPGx8oMz03Kx4UDAT+/vEGDBMaIzA5QzwvIRwOBwICBQoPFx4nMDtFPDAkHRIKBQUJDhQbIyw4QEpBMysiFg4JCQ0SGCAnMDlETUQ4LSIaEg4OERcdJCs0PklTST0xJx8XExIWGyEoLzhCTFdOQjYrJCAXFhofJSw0PEVQW1NIOzAqIBweHSUpMDdASVReWEpANS8kICEgJywzOkJMV2FcTkM4MScjJSMqLjU9RE5aZWBTRzs0KiYiJSowNz9GUFxnYVRJPTcsJykpLTA3P0hSXmljVko+Ny0oJCUpLzg/R1JfamRWSkE5MCspKCkuNT1GUV5pY1ZKPjYtJyUjJisyPENOW2djV0lANywmIyQnKS83QExaZWBTRzszKScgHh4kLDU8SFdiX1FFOTEnIB0aGiEkLTlET1xfUUU5MSYjGRQTFx8oNT9MWF5PQzcsJBwWDw0RGSMxPElWXE5CNisiGhMMCQ0WHy44RlRcTUE1KiIZEwwKDxUgMDtIVF1QRDctJR4ZFRMWHiQxPktYYVRIPjQsJSIhIiMoLjdEUV1mWU9EPDUxLy4uMDM4QktXZGxiV09HQT47Ozw9QUdMVl9sdmxiWVJLRkJBQUJGS1NaYmxuY1hPR0A7NzU1NztAR1BZY2dcUUg+NjEsKiosMTdAR1FbYVVJQTYuKCMhISMnLjg/SlVcUEQ7MCcgGxkZGyAnMTlFUGJMQDYrIhoUEgwTFh0qNT9LWUo+MigfEwwIBwkQFyQtOUZRRzwwJRkPBgUFBw4UHikzQktBNSofFQwFAwQTDRocJzRCRzwwJRoSCgQPBQcOFR0nMT9CNSshFw8IBAMSFxYdIScyQEE1KR8VDQcEEQcLEhkgKjNCPzQrHhoNCAUGCRUUGyMsNkI+MSceFQ4JERQMFhgfJi88Rj41LB8bDwsJCw8UHCMqMzxIQDMrIRgSDQwWEx0fJzE5Q0xDODAjGhUREBMXHCQrMztGT0Q4MCYeGBQTFxshKC85QEtUSDw1KiIcGBgbHyUsMztET1hMQTguJiAbHB8nKjA4QUlUXVFFPTMrJCAhIyguNDxETVZgVkk/Ny8pJSUoLjI4QElRWmVaUEU9Ni4qLCwvNjxES1RdaF5USUE7Mi4wLzI5QEdPV2BrY1hNRT01MTIyNTxCSlJZY25mXFFJQDg0NDM2PURLVFtlcGleUktCOjU3NTo+RExUXWdxa19TS0I7NjM0OD1DTFVcZ3JrYFZNRDs5NzY3O0JKUltmcWtfU0tBOzczMjU4P0dQWGNua19VTEI5NzEzNTY7Q0xXYWxnXFBHPjcyLi0sNDc/SFJfamZaTkY7NC8rKCopLzhBTVhjZllNRTs3LCkiICQrNDtIUl9kWExDOTMpIx4cIScuOERRXWNXSkA3LiciGxccICw0QU9bY1dMQjYuJyMbHhslKzVAUFxkWExBOTErJSIgIicwOURTX2dcUUg/ODAvKSspMDhASlhkbWJXTkU/OTc2Njc7QklRXWhzaF9XT0lFQ0JDREdNU1tkcH1zaWFaU09LSkpMT1RaYmlzdWtiWFBKRUFAP0FESlBZYWtuZFpQSEA7NzY1OD1BSFFaZGldVElAOjMuLS8vNTlAS1NeZFlPQzs0LSgmJCYtLzdDTVhqVUs/Ni0oIiEbHCQpMj1HUWFTST0yKB4ZGhUWHCQrOEJNWk1DOS0jGhUUFBYbISwzPkhWST4zKB8ZFBgTGx8hLDE8SU9GOS8mHhcTGBMWHCIsMjxGS0A2LCMbFhMSGx4iIy8yPUhKQDQqIhoWGBsVGR8mMDU/Skk/MykhGhYUFRcbJSgyN0FKSD4zKiIbFxodGh8oLDY9RlBKQDYtIx0ZGBodIigvNj5HUklANS0lHxwbHSUpMDU+REtWTEM5MSsiHx4hJCowNz9HUFtORToyKyYjISUsLjc7RUtUXlBIPjUxKSYmKS0yOEBHUFljV01COjIuKiotMzc/REtUXWdZUUY+OTIwLzE2O0FIUFhha19VS0M9NzMzNjo/RUxUXWVvZFpQSEI7Nzo6PUNJUFhfaXJoXVVORkA+Pz1ARk1UW2NsdWxiWlJJQz9BQENKT1ZeZ254cGVdVU1HRENCRUtRWGBocHpzZ19XTUhGRUNIS1FZYWpyfHRqYFdPSUZCQ0ZLUVlgaXJ8dWthWVBJR0VFRklPVl5ncHt0amBXT0hFQkFDRkxUW2RueHRpYFdPSUVCP0JDSFBXYWt0cGZcU0tEQDw7O0BFSlFaaHJvZVtRSUI9OTg3NztDTFVibG5kWk9HQTo0MDEyNj9GUF1obmJYTUU/NzEsLS4zO0JMWmVsYVdMQzs1LCkqKi44QUtZZGxhV01DOzUvKissMTlAS1lkbWJYTkU+ODQvMC80PERMXWdwZVtRSkM9ODY3NjpCSlNibHVqYVhRS0ZCP0BBREpSWmRve3FoX1lUUE1KS0xOVFtjbHZ/fHJqZF5ZVlVUVlpeZGtze350amFbVE9NSkxNT1RaYWt0d21iWlNMR0NCQ0NGTFNbZGxyZ1xUS0Q/PTo5Oj9FSlNcZ21jWE5HPjk2NDEyODxCS1ZhaWBUS0I6MSwtKSoxNTxGUVpoXFJGPDMrJigjJy0wN0JMVmJXTEE3LSkkIiMlKS81QEhTXVJIPjYtJiImJSctLzhASFFZT0Y/Ni4oIiUiJSwwNkBHUVVLQTgwKSQiIScpMDE6QUhSVUk/Ny8rJyYoJCgwMzpES1NUSD84LyglIyQmKjI1PEZMVlNIPzYvKSYlKSwvNjtCSlFZVUtCOjMtKCYoKzA3PENMU1xVSkE5My0qKSsyMztCR1BWYFdMQz41My4vLzU3PURLVFtlWk9GPjkzMTAzODtBSE9YX2hcUkpDPDk1NDc7QEVMVF1kbmFXTkdAOzk5Oz9ESlBYYWhxZVpSTEY/Pz1AQ0hOVl5mbHVqX1dPSERDQkJHTFJaYGhweW5jXFVPSUhJSEtRWWBkbHR9cmlhWlFOS0xMT1VaYWhveH92bmZfWFRSU1RWW11ja3J6f3pxaWFaVVNSUVNZXmVtdH1/fXRsY1tWVFNSVVtfZW12fn9/dWxkXVdVUVJVWl9lbXV+f392bWVdWVZUU1RXXGNqc3x/f3VsYlxfW1hWVllfZmdveH9+dGtjXFhTUU5PUlhdY2t0f3txaGRbVE5KSUlMUFZcZW55enBmYllRS0dERERIT1dganR5b2RfVk1HQD4/P0NLUltlcHdtY1pTSkQ/Ojs8PkZPV2FtdmxhWFBJQzs4OTg9RE1WYGt2bGJYUUlEOzk6Oj5FTVVga3dtYlpRS0dBPj4/QEhQWGFsenBlXVdQSkVDREJHTFVdZnF+dWtjXVZSTEpLTE1UW2Rtd397cmplX1tXVFVWWF1kbHR+f397dW5oZWFfYWFkaW50fH9/fHRrZWBbWFdYWFthZWx1fn91bWVfWFNRTk9PU1leZG12fHBnXlhRTEhIRkZKUFVcZW94bWNaVEtEQkA8PkNITlZfanVqX1VORT45Ojc4PUFIT1pkcGVbUEdBODY2MzU7P0RNV2BrYFdNRD03MzEyNDo9Q0xVXWZdUkpBOjcxNDMzOz5ETVRdYlpPSkE6NTEzMTQ5PURNVVxgVk5EPjgzMTA1NzxARU5VXV9VTUM8NzU0NTU2PUJHUFhgXlRNRD43MzIzNjg+Q0lQWWFdVExEPTg0MzQ7PUNJTlZdY19WTkZAOzY1Nzw+QklQV2BnX1ZNRkA7OTg6P0FFT1NaY2thWFFJQ0E+Pj1DRUpSWGBocGVbUktGQ0A/QURJTlZcY2tzaF5WUEpHQ0VHSk9TW2BocHhsY1tUTUlHR0lNUVddZGtzfG9mXlhST01LT1FXW2JqcXl/dGpkXVZSUVBQVVpfZWx0fX94b2dhW1dWVVdZX2VrcHh/f310bmZfW1paWl1iZ210fH9/f3lya2VgX2BhY2dqcHd/f39/fXVtZ2NhYGBiZ2xzeX9/f39/d3BpZGNiYWNobXN7f39/f395cGpmZGBhY2hscnp/f39/f3lya2dlYmJjZmtwd39/f39/eHBqa2dkYmNma3F0e39/f393cGplYV5cXGBkaW51fn9/fXRwZ2BcWldYWVthaHB5f398cm5mX1lTUVJSVlxja3R9f3pwamJaVU9NTU9SV19lb3l/eG9nX1hSTUpKSkxTW2Nsd392bWRdVlBKR0hHS1FZYmt1f3dsZV1WUEpHSUlMUlpianV/eG5mYFlUTkxMTVBVXWRtdn95cWliXVhTUFFSVFhgaHF6f392b2hiXllXWFhaX2Zudn9/f3x1cGpmYV9gYWNnbXV9fw=="},"RightUpLeg":{"min":[-0.1271,-0.1283,-0.1398],"dims":[21,43,21],"data":"f398dG9oZGFeXV5fYWdrcHd/f39/f3xza2dgW1hTU1RUV11gZ294f39/f3VrY15WUU5KSUtLTlRZXmZweH9/eG5kW1VPSERBQEJCRUxQV15pcnt/c2leVU1IQT06OTs7PkVKUFhjbHZ/bmRYUElDOzY2MjQ0OD9DS1NeaHJ8a2FVTEM+NjIxLi0vMztBRk9aZG55aF5SSUA8My4uKiosMDU9Q0xYYmx2Z11SRz87MSwtKCgtLjM8QktWYWt1Z11QSD86MS0tKCgtLjU9QkpWYWt2aF9TSUA8My4uKiouMDU+Q0xXYmx2amFWS0M+ODExLS0yMzhBRk9ZZW55bmVaT0dCOjY1MTI3NzxFSlNdaHF7cmleVE1IQDw7ODg8PkJKT1hhbHZ/d25lW1NOSUNCP0BERUlRV15mbnd/fnVrYltWUUxJSEhLTVFYYFtkbHR+f3RrZFxXWlVUUVJVV1thaVlhaXJ8fXNqYlpVUExJR0ZFR0hMUVhfaHF7e3FoYVlTTkpHRURERUlMUldfaHB6e3BnYFhSTUlGRENERUhMUldfaHB7e3BnYFhSTElFRERERklNUllgaXJ7fHFoYFhSTklIRURGSEtPVFpia3J9fXJpYlpUUEtJRkdISk1RVlxkbXV+f3RrYltVUU1KSUhKTFBUWV9mb3Z/f3ZtZl9YVE9MS0tNT1JWW2FocXl/f3lwaGBbVVJPTk1PUVVZXmRrdHx/f310bGVeWFVSUFBRU1dbYGdtd39/f393bmhgWldUUlJTVVhdYmlxen9/f396cmliW1hUU1NUVlpeY2tyen9/f397cmliXVhUU1JTVlpeZGpyen9/f396cmhhWlZSUVBRVFdcYmlwen9/f396cWdfaWFcV1RSU1ddZWZtdn9/f395b2ZeYVlTTkxKS1BWX2Fpcnx/f395bmVcXFNNSEVERktRWWFrb3h/f395b2RdWVBIRUJBQkZLU1xmbHZ/f396b2ZdWE5IQz8/P0NJT1ljanN+f398cWhfWlFIQz88PUFHT1hjaXN9f39/dWtjXlRLRkE+P0JHUFlkaXN+f39/eXFoYlhRS0ZCQkZMU1xnanR/f39/f3duaF9XT0pJSEtRWWJsbnd/f39/f351b2ZdV1NRUVNYYGhycnx/f39/f39+dW1nYVxZWFleYmhueH9/f39/f39/f3dwamZjYmRna3B3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aWdnaWpudHZ5fH9/f39/f39/f3t2cnFxcnR4fX9/f39/f39/f39/f39/fHp6fH9/f39/f39/f39/f39/f39+enh1c3V2eHt/f39/f39/f39/f3t1cW9sa2xtb3N5fn9/f39/f39/e3RuamdkYmRlZ2pxdnx/f39/f396dG1mYmBiYF5eYGJmbHF4f39/f311bmhgW1pVVFJSVFZbYWZudn9/f3lwaWFaU1BLR0VFSUpQVl1lbXZ/enFqY1lRSkdAPTw8PUFHTFNdZnB6cmlgWlNKQj46NzU1NTk+RU5WX2t2bWFYUkxEPTgxLi0tMjY7QUpSW2VxaF1TS0Y9NTMtKikqLDA1PEZNV2FuYldNRUE5MSwtKiorLDAyOURMVWBrX1NJQTw4MS4nKCUlKCsxOEFIUVtoW1JIQDoxLCwmIyMkJyowNkBGT1tmWk5EPDcvKiopKScpKi4zOEBHUFplWE5COzczLiokJiIiJSgtND1DTVZiWE1DOjcvKiokJSImJCstND5ETFdiWExCOjYyKywqKSYnKSwzNz5HT1hjWE9FPjk0LC0mJSQkJioxNTxFTFZiWlBGPTkyLi0oJiUpKys0Nj1HTlhjW1JHQDs5MzIuLC0pLjE2PUNLU1xmXlZNRT88NDAuLC4sLjI3PURLVV1oY1tQR0A+NzQ0MDQzNjg8Q0hPWGBqZl5US0RDPjg4MzM3NzxBSE9WXWVua2NbU0pEPzw7ODc7Oz9FS1JaY2x1cWhfV09JRkFBPz5AQ0dMUFlfZ3B5dWtlXVZQTEVDQkBCR0pPWF9mbnZ+e3NrY1pUUUtISEZHTVBVXGRsc31/f3hvaGBaV1JOTk1NUlhdZGpyen9/f352b2hhW1ZUU1JUVlxiaHB5f39/f399dW1nY15aWVpaXmRobnZ+f39/f39/fHRuZ2NfXV9gZGlvdn5/f39/f39/f3dxbGdjYmNmaW91e39/f39/f39/e3NsZmViYWJlaG10fX9/f39/f39/eHBpZGJgX19iZWtyen1/f39/f39/dm5oY2FfXWBiZGtyen1/f39/f39+dW1nYmBeXV5jZmtze3x/f39/f39/dm5oY2FgX2BkaG10fH1/f39/f39/eXFrZ2VkY2RoanB3f39/f39/f39/fnZwbGpoZ2ltcXZ8f39/f39/f39/f313dHBubG9yeH1/f39/f39/f39/f39/fHh1dXZ6f39/f39/f39/f39/f39/fnx8fn9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fnt4d3h6fH9/f39/f39/f39/f396dnRxb3Fyc3d6f39/f39/f39/f3lzb21qaWdmaGtudHl/f39/f39/e3RtaWNfXlpbXWBkam92f39/f399c2pjX1pVU1FRU1VZYGVud39/f3pzbGNbVlJNS0lJS01SWF5ncHh/e3JrZV1VT0tHRUNDRUdNUVlianR/dmxkXlZOSUU/PTw8QEFITFVeZW95cGdfWFBIQ0E7ODg5Oz5ESVBaYWx3a2FZUk1EPj07OTk5Oz5DSFBYYGp0aF1VTkpEPzs2NjQ0Njo+RUxVXWZxZlxUTUc/Ojk0NDI1NTk/RExUW2RwY1hQSUY9OTk3NzQ2NzpARUxUW2RuY1lPSUVAPDgzMzExMzc9QkhSWGJrYlhOSUU9OTUzNDE0Mzc+QUlSWGFsYldPR0U9OTs3NzQ1Nzo/REtTW2NtY1lRS0dBPTo1MzIzNDg+QklSWmFrZltRSkdBPTw3NzQ1OTpAREpTW2NtZ11UTUlFQUA9Ozs6PEBDSlBXXmZwamFYUk5IQkA8Ozw7PUBFS1BYYWpzb2VcVE9LRUJBPkE+QkVIT1RcZGx1cmhfWFNQS0hHQ0FFRUpQVVthaXF5dm5lXlhTTUpJRkZJSU1TWF5mbnd/fHNrYlxXUk5OTExOUFNZXWNrc3t/f3hwZ2FeWVNSUE5QVVdcZGtyeH9/f353bmdhXVlWVVRVWl1iaW92f39/f397dG1nZF9dXFtdYGRob3V8f39/f39/enRtaWRhYWBhZGpudH1/f39/f39/f3l0b2pnZ2dnanB0e39/f39/f39/f396dXBta21ucXV8f39/f39/f39/f39+enVxcHF0d3p/f39/f39/f39/f395dXNxb3Fzdnt/f39/f39/f39/f313c3Fvbm5wdHh/f39/f39/f39/f3t1cnBubW5xc3h/f39/f39/f39/f3p1cW9tbG1xdHl/f39/f39/f39/f3t2cnBvbm5zdnt/f39/f39/f39/f355dXNycXN2eX5/f39/f39/f39/f399enh2dXd6fn9/f39/f39/f39/f39/f317e3x/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/"},"Spine":{"min":[-0.1487,-0.025,-0.1354],"dims":[21,22,21],"data":"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HyMsMzdAS1dhX1ZKPzYyKyMjIRwdIyQpMzhBS1dhYVhMQTgzLSUhIx4iJiYrNjlCTVljY1pPRDw3MiklJyIjKSovOT1GT1tlZ15USkA5Ni4qLScoLy80PUNKUl9qbGJZTkZAPTQxMi4vNTU6QkhPWGNucGhfVk1GQzs4OTU3OzxBSE9VX2l0d29mXFRNS0VBPj4/Q0ZJUFddZW96fnVuZV5WU05KSkpITE9SWGBmbHZ/f353bmZgXFlUUlNTVFlcYGhtdX9/f39/d29pZmNfXV5dYGNlanJ3fn9/f39/f3t1cG5qaWloam5wdXx/f39/f39/f3p0b21qaGloam5ydXt/f39/f39/eHFqZmRfXl9fYGRoa3F5f39/f351b2lhXFtXVFVVV1lgZGhveH9/f3ZuZ2FZVFJNTExNTlJYW2FocXt/enBnYVtTTktHQ0VGRklQWFpganR9dWpiWVRLRkNAPTw/P0JJUVNbZG94cWddVU9HQD07NjU6OTxDTE1VX2pzbmJZUEtDPDc3MjE2NDc/R0lSWmZwbGFWTkpBODU1Li0yMDQ7RE9bWGNual9US0k+NjEyKyswMTI3QUxYVmFtal9TSko/NTEwKysuMDE2QUtXVmBsa19US0o/NjExLysuMTI3QEtWVmBsbGFXTU1CODQyMS0uNDQ5QklPV2Jub2RYUFBFPTY1NTExNzc8REtRWmNvcmhdVE1IQjw4OjU2PD5ASVBWX2hzd21iWVJNSEE+Pzs8QUFGTFVaY2x3e3JoX1lTTkhFRkRDSEtNVFxhaHF8f3lvZl9aVlFOTk5OUVRVWmJob3d/f392bmdjX1hWVVVUV1tdYmlwdn9/f39/d3BqZ2JfX19eX2Rma3J5f39/f39/f3lzcW1pZ2hoaW5wdHt/f39/f39/f39/e3d0cnNydHh7fn9/f39/"},"Neck":{"min":[-0.0913,-0.0528,-0.0731],"dims":[14,14,14],"data":"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"}}`),radii:{LeftArm:[[.083,.0491],[.25,.062],[.417,.0573],[.583,.0472],[.75,.0424],[.917,.0506]],RightArm:[[.083,.0491],[.25,.062],[.417,.0573],[.583,.0472],[.75,.0424],[.917,.0506]],LeftForeArm:[[.083,.0468],[.25,.0538],[.417,.0477],[.583,.0394],[.75,.0402],[.917,.0405]],RightForeArm:[[.083,.0468],[.25,.0538],[.417,.0477],[.583,.0394],[.75,.0402],[.917,.0405]],LeftHand:[[.083,.022],[.25,.022],[.417,.022],[.583,.022],[.75,.022],[.917,.022]],RightHand:[[.083,.022],[.25,.022],[.417,.022],[.583,.022],[.75,.022],[.917,.022]],LeftUpLeg:[[.083,.0903],[.25,.1055],[.417,.1064],[.583,.0834],[.75,.0626],[.917,.0681]],RightUpLeg:[[.083,.0944],[.25,.0995],[.417,.1064],[.583,.0834],[.75,.0626],[.917,.0681]],LeftLeg:[[.083,.0611],[.25,.0799],[.417,.0635],[.583,.0464],[.75,.0428],[.917,.0475]],RightLeg:[[.083,.0611],[.25,.0799],[.417,.0635],[.583,.0464],[.75,.0428],[.917,.0475]]}}},nc=.1,rc=new Map;function ic(e){let t=typeof Buffer<`u`?Buffer.from(e,`base64`):Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new Int8Array(t.buffer,t.byteOffset,t.byteLength)}function ac(e,t){let n=new Set([t,e.parent[t],...e.children[t]]);return/^(Left|Right)Arm$/.test(e.names[t])&&n.add(e.parent[e.parent[t]]),/^(Left|Right)UpLeg$/.test(e.names[t])&&n.add(e.index.Spine),n}function oc(e){let t=tc[e.model];if(!t)return null;if(rc.has(e.model))return rc.get(e.model);let n=Object.entries(t.grids).map(([n,r])=>{let i=r.dims.map(e=>(e-1)*t.step/2),a=r.min.map((e,t)=>e+i[t]);return{b:e.index[n],min:r.min,dims:r.dims,data:ic(r.data),centre:a,reach:B(i)}}),r=Object.fromEntries(Object.entries(t.radii).map(([t,n])=>[e.index[t],n])),i={step:t.step,grids:n,radii:r,skip:new Map(Object.keys(r).map(t=>[+t,ac(e,+t)]))};return rc.set(e.model,i),i}function sc(e,t,n){let[r,i,a]=t.dims,o=e.step,s=(n[0]-t.min[0])/o,c=(n[1]-t.min[1])/o,l=(n[2]-t.min[2])/o;if(s<0||c<0||l<0||s>r-1||c>i-1||l>a-1)return nc;let u=Math.min(r-2,Math.floor(s)),d=Math.min(i-2,Math.floor(c)),f=Math.min(a-2,Math.floor(l)),p=s-u,m=c-d,h=l-f,g=(e,n,r)=>t.data[((u+e)*i+d+n)*a+f+r],_=g(0,0,0)*(1-p)+g(1,0,0)*p,v=g(0,0,1)*(1-p)+g(1,0,1)*p,y=g(0,1,0)*(1-p)+g(1,1,0)*p,b=g(0,1,1)*(1-p)+g(1,1,1)*p;return((_*(1-m)+y*m)*(1-h)+(v*(1-m)+b*m)*h)/1e3}var cc=new WeakMap;function lc(e,t){let n=cc.get(t);return n||(n=e.grids.map(e=>I(t.P[e.b],W(t.R[e.b],e.centre))),cc.set(t,n)),n}function uc(e,t,n,r=null){let i=nc,a=-1,o=lc(e,t);return e.grids.forEach((s,c)=>{if(r?.has(s.b)||B(L(n,o[c]))-s.reach>i)return;let l=sc(e,s,W(G(t.R[s.b]),L(n,t.P[s.b])));l<i&&(i=l,a=s.b)}),{d:i,bone:a}}function dc(e,t,n,r=null,i=.01){let a=[0,1,2].map(a=>{let o=[0,0,0];return o[a]=i,uc(e,t,I(n,o),r).d-uc(e,t,L(n,o),r).d}),o=B(a);return o>1e-9?R(a,1/o):null}var fc=e=>/^(Left|Right)Arm$/.test(e)?.5:/^(Left|Right)UpLeg$/.test(e)?.3:0,pc=(e,t)=>/Hand$/.test(e.names[t])?e.index[e.names[t].replace(/Hand$/,`HandMiddle1`)]:e.children[t][0];function mc(e,t,n,r){let i=e.radii[r],a=pc(t,r);if(!i||a===void 0)return[];let o=n.P[r],s=L(n.P[a],o),c=fc(t.names[r]);return i.filter(([e])=>e>=c).map(([e,t])=>({p:I(o,R(s,e)),r:t,t:e}))}var hc=/^(Spine\d?|Neck|Head)$/,gc=(e,t)=>e.children[t].find(t=>hc.test(e.names[t]))??pc(e,t),_c=.25;function vc(e,t,n,r,i,a=null){let o=uc(e,n,r,a);if(o.d>=i||o.bone<0)return r;let s=n.P[o.bone],c=gc(t,o.bone),l=L(c===void 0?s:n.P[c],s),u=L(r,I(s,R(l,z(l,l)>1e-9?H(z(L(r,s),l)/z(l,l),0,1):0))),d=B(u)>1e-4?R(u,1/B(u)):dc(e,n,r,a);if(!d)return r;let f=new Set(e.grids.map(e=>e.b).filter(e=>e!==o.bone)),p=t=>uc(e,n,I(r,R(d,t)),f).d>=i,m=0,h=.02;for(;!p(h)&&h<_c;)m=h,h=Math.min(_c,h*2);for(let e=0;e<10;e++){let e=(m+h)/2;p(e)?h=e:m=e}return I(r,R(d,h))}var yc=.03;function bc(e){let t=oc(e);return t&&{body:t,skip:new Set(e.names.map((e,t)=>/(Arm|ForeArm|Hand|Neck|Head.*)$/.test(e)?t:-1).filter(e=>e>=0))}}function xc(e,t,n,r,i,a){let o=0,s=fc(t.names[r]);for(let[t,c]of e.radii[r]??[]){if(t<s)continue;let{d:l,bone:u}=uc(e,n,I(i,R(L(a,i),t)),e.skip.get(r));u>=0&&(o=Math.max(o,c-l))}return o}function Sc(e,t,n,r){let i={depth:0,p:null,into:-1};for(let a of mc(e,t,n,r)){let{d:t,bone:o}=uc(e,n,a.p,e.skip.get(r)),s=a.r-t;o>=0&&s>i.depth&&(i={depth:s,p:a.p,into:o,r:a.r})}return i}var Cc={twist:[-85,85],flex:[-70,70],dev:[-35,20]},wc={twist:[-50,50],flex:[-40,40],dev:[-25,15]},Tc=.5,Ec=[0,0,-1],Dc=72,Oc=.02,kc=400,Ac=.5,jc=100/(180/Math.PI),Mc=180/Math.PI,Nc=70,Pc=30,Fc=2;function Ic(e,t=8,n=400){let r=0;for(let i of[`twist`,`flex`,`dev`]){let a=e[i],o=a>=0?wc[i][1]:-wc[i][0],s=a>=0?Cc[i][1]:-Cc[i][0],c=Math.abs(a);r+=c<=o?(c/o)**2:1+t*((Math.min(c,s)-o)/Math.max(1e-6,s-o))**2+(c>s?n*((c-s)/s)**2:0)}return r}function Lc(e,t){let n=V(L(t,e)),r=Math.acos(H(-n[1],-1,1))*Mc;return Fc*(Math.max(0,r-Nc)/Pc)**2}function Rc(e,t,n,r){let i=_s(U(t,G(e)));i[3]<0&&(i=i.map(e=>-e));let a=2*Math.atan2(z([i[0],i[1],i[2]],n),i[3]),o=Xs(R(n,a)),s=Ys(Gs(i,Ks(o))),c=W(vs(o),r),l=V(L(c,R(n,z(c,n)))),u=as(n,l);return{twist:a*Mc,flex:z(s,l)*Mc,dev:z(s,u)*Mc,axF:l,axD:u}}function zc(e,t=0){let n=0;for(let[r,[i,a]]of Object.entries(Cc)){let o=(e[r]-(i+a)/2)/((a-i)/2),s=Math.max(0,Math.abs(o)-1+t);n+=o*o+kc*s*s}return n}function Bc(e,t,n,r,i,a,o,s=0,c=!1){let l=e.index,u=l[`${n}Arm`],d=l[`${n}ForeArm`],f=l[`${n}Hand`],p=t.P[u],m=B(L(t.P[d],p)),h=B(L(t.P[f],t.P[d])),g=L(js(p,i,m,h,Ms(e,t)),p),_=B(g),v=R(g,1/Math.max(_,1e-9)),y=H(_,Math.abs(m-h)+1e-4,(m+h)*.9995),b=(m*m-h*h+y*y)/(2*y),x=Math.sqrt(Math.max(m*m-b*b,0)),S=e=>L(e,R(v,z(e,v))),C=V(B(S(a))>1e-6?S(a):as(v,Math.abs(v[1])<.9?[0,1,0]:[1,0,0])),w=as(v,C),T=I(p,R(v,y)),E=e.restWorldRot,D=W(G(E[d]),L(e.restWorldPos[f],e.restWorldPos[d])),ee=W(G(E[d]),o),te=U(G(E[d]),E[f]),ne=W(G(t.R[f]),Bs(e,t,n).l),O=e=>{let t=I(R(C,Math.cos(e)),R(w,Math.sin(e))),n=L(T,I(p,I(R(v,b),R(t,x)))),i=U(gs(D,ee,n,t),te),a=Rc(i,r,V(n),W(i,ne)),o=Math.abs(Math.atan2(Math.sin(e),Math.cos(e)))/jc,l=I(p,I(R(v,b),R(t,x)));return{pv:t,need:a,elbow:l,cost:(c?Ic(a)+Lc(p,l):zc(a,s))+Ac*(1-Math.cos(e))+kc*Math.max(0,o-1)**2}},re=e=>B(S(e))>1e-6?Math.atan2(z(e,w),z(e,C)):0;return{at:O,angleOf:re,softmin:()=>{let e=Array.from({length:Dc},(e,t)=>O(2*Math.PI*t/Dc)),t=Math.min(...e.map(e=>e.cost)),n=e.reduce((e,n)=>I(e,R(n.pv,Math.exp(-(n.cost-t)/Oc))),[0,0,0]);return B(n)>.001?re(n):2*Math.PI*e.findIndex(e=>e.cost===t)/Dc},miss:Math.max(0,_-y)}}function Vc(e,t,n,r,i,a,o,{toward:s,w:c=1,margin:l=0,comfort:u=!1}={}){let d=Bc(e,t,n,r,i,a,o,l,u),f=s?d.angleOf(s):d.softmin(),p=d.at(c*Math.atan2(Math.sin(f),Math.cos(f)));return{pole:p.pv,need:p.need,cost:p.cost,miss:d.miss,elbow:p.elbow}}var Hc=3,Uc=1,Wc=.005,Gc=.15,Kc=4,qc=(e,[t,n])=>Math.min(n,Math.max(t,e));function Jc(e,t,n,r,i,a){let o=R(L(t.P[r],t.P[i]),1/B(L(t.P[r],t.P[i]))),s=U(t.R[i],U(G(e.restWorldRot[i]),e.restWorldRot[r])),{axF:c,axD:l,...u}=Rc(s,a,o,W(U(s,G(t.R[r])),Bs(e,t,n).l)),d=Object.fromEntries(Object.entries(u).map(([e,t])=>[e,qc(t,Cc[e])])),f=U(U(ms(I(R(c,d.flex),R(l,d.dev)),Math.hypot(d.flex,d.dev)),ms(o,d.twist)),s);return Cs(e,t,i,t.P[i].slice(),ms(o,Tc*d.twist)),Cs(e,t,r,t.P[r].slice(),U(f,G(t.R[r]))),u}function Yc(e,t,n){let r=e.index,i=r[`${n}Arm`],a=L(t.P[r[`${n}ForeArm`]],R(I(t.P[i],t.P[r[`${n}Hand`]]),.5));return B(a)>Wc?a:Ds(e,t,i,Ec)}function Xc(e,t,n,r,i,a,o){let s=e.index[`${n}Hand`],c=U(G(t.R[s]),i.R),l=W(G(t.R[s]),L(i.pos,t.P[s])),u=vs(ec(_s(t.R[s]),_s(U(r.R,G(c))),a)),d=t.P[s].slice(),f=e=>L(r.pos,W(e,l));return{goal:u,plane:Yc(e,t,n),wristAt:o===`wrist`?()=>d:o===`palm`?f:e=>I(d,R(L(f(e),d),a))}}function Zc(e,t,n,r,i,a,o){let s=e.index,c=s[`${n}Arm`],l=s[`${n}ForeArm`],u=s[`${n}Hand`],{w:d}=r,{goal:f,plane:p,wristAt:m}=Xc(e,t,n,r.palm,r.measure(t),d,r.pin),h=Vc(e,t,n,f,m(f),p,i,{toward:r.pole,w:d,comfort:r.comfort}),g=0,_=0,v={twist:0,flex:0,dev:0};for(let r=0;r<Hc;r++){let a=m(r?t.R[u]:f);_=Fs(e,t,n,a),g=Rs(e,t,c,l,u,a,h.pole,i,`elbow`),v=Jc(e,t,n,u,l,f)}a[`hold_${o}`]={w:d,miss:Math.max(0,g),...v,swivel:tl(t,c,l,u,p),..._>145?{fold:_}:{},...r.second?{second:r.second}:{}},a[`arm_miss_${o}`]*=1-d}function Qc(e,t,n,r){let{goal:i,plane:a,wristAt:o}=Xc(e,t,n,r.palm,r.measure(t),r.w);return Bc(e,t,n,i,o(i),a,Ec,0,r.comfort)}function $c(e,t,n,r,i,{shoulder:a=!1}={}){let{goal:o,plane:s,wristAt:c}=Xc(e,t,n,r,i,1),l=c(o),u=Vc(e,t,n,o,l,s,Ec,{margin:Gc}),d=e.index,f=t.P[d[`${n}Arm`]],p=B(L(t.P[d[`${n}ForeArm`]],f)),m=B(L(t.P[d[`${n}Hand`]],t.P[d[`${n}ForeArm`]])),h=Math.max(0,ks(p,m,145)-B(L(l,f))),g=a?Vc(e,t,n,o,l,s,Ec,{comfort:!0}):u;return(a?Ic(g.need)+Lc(f,g.elbow)+el(e,t,n,f,g.elbow,l):u.cost)+Uc*((u.miss*100)**2+(h*100)**2)}function el(e,t,n,r,i,a){let o=oc(e),s=e.index;return o?Kc*(Math.max(xc(o,e,t,s[`${n}Arm`],r,i),xc(o,e,t,s[`${n}ForeArm`],i,a))*100)**2:0}function tl(e,t,n,r,i){let a=V(L(e.P[r],e.P[t])),o=e=>L(e,R(a,z(e,a)));return ys(o(L(e.P[n],e.P[t])),o(i))}var nl=(e,[t,n])=>Math.min(n,Math.max(t,e));function rl(e,t,n){let r=e.index,i=r[`${n}Hand`],a=r[`${n}ForeArm`],o=e.restWorldRot,s=V(L(t.P[i],t.P[a])),c=U(t.R[a],U(G(o[a]),o[i])),{axF:l,axD:u,...d}=Rc(c,t.R[i],s,W(U(c,G(t.R[i])),Bs(e,t,n).l)),f=Object.fromEntries(Object.entries(d).map(([e,t])=>[e,nl(t,Cc[e])]));if(Object.keys(d).every(e=>Math.abs(d[e]-f[e])<1e-6))return null;let p=U(U(ms(I(R(l,f.flex),R(u,f.dev)),Math.hypot(f.flex,f.dev)),ms(s,f.twist)),c);return Cs(e,t,i,t.P[i].slice(),U(p,G(t.R[i]))),{need:d,got:f}}var il={l:`Left`,r:`Right`},al=e=>{let t=Math.min(1,Math.max(0,e));return t*t*(3-2*t)},ol=[0,0,1],sl=[`UpLeg`,`Leg`,`Foot`],cl=(e,t=[0,0,0])=>Array.isArray(e)||ArrayBuffer.isView(e)?[e[0],e[1],e[2]]:t,ll=(e,t=0)=>typeof e==`number`&&Number.isFinite(e)?e:t;function ul(e,t,n,r,i,a){let o=n.length;for(let s of n){let n=e.index[s];Cs(e,t,n,t.P[n].slice(),U(fs(r/o),U(ds(i/o),ps(a/o))))}}var dl=.99,fl=.9995;function pl(e,t,n,r,i,a,o,s){let c=B(L(t.P[r],t.P[n]))+B(L(t.P[i],t.P[r])),l=L(a,t.P[n]),u=B(l),d=dl*c,f=.009500000000000064*c;if(u<=d||u-fl*c>.05)return a;let p=d+f*(1-Math.exp(-(u-d)/f));return o[`reach_over_${s}`]=Math.max(0,u-fl*c),I(t.P[n],R(l,p/u))}var ml=.095,hl=2,gl=new Map;function _l(e,t){let n=`${e.model}|${t}`;if(gl.has(n))return gl.get(n);let r=(90-t)*Math.min(1,Math.max(0,(t-45)/27)),i=bc(e),a=n=>{let r=Ss(e);return[[`Left`,-1],[`Right`,1]].every(([a,o])=>{let s=e.index[`${a}Arm`],c=e.index[`${a}ForeArm`],l=e.index[`${a}Hand`],u=e.index[`${a}HandMiddle1`];return Cs(e,r,s,r.P[s].slice(),ps(o*t)),Cs(e,r,c,r.P[c].slice(),ps(o*n)),[.5,.75,1].map(e=>I(r.P[c],R(L(r.P[l],r.P[c]),e))).concat([r.P[u]]).every(e=>uc(i.body,r,e,i.skip).d>=ml)})},o=r;if(i&&r>0){for(let e=0;e<=r;e+=.5)if(!a(e)){o=Math.max(0,e-hl);break}}return gl.set(n,o),o}function vl(e,t,n={}){let r=Ss(e),i={},a=ll(t.arm_rest,72),o=ll(t.arm_hang)&&ll(t.arm_hang)*_l(e,a);for(let[n,i,s]of[[`Left`,-1,`l`],[`Right`,1,`r`]]){let c=e.index[`${n}Arm`],l=e.index[`${n}ForeArm`],u=o*(1-Math.min(1,Math.max(0,ll(t[`armw_${s}`])+ll(t[`hangoff_${s}`]))));Cs(e,r,c,r.P[c].slice(),ps(i*a)),u&&Cs(e,r,l,r.P[l].slice(),ps(i*u))}for(let[n,i]of Object.entries(il)){let a=ll(t[`abend_${n}`]),o=ll(t[`aswing_${n}`]),s=e.index[`${i}ForeArm`],c=e.index[`${i}Arm`];a&&(Cs(e,r,s,r.P[s].slice(),ds(-a)),Is(e,r,i)),o&&Cs(e,r,c,r.P[c].slice(),ds(-o))}ul(e,r,[`Neck`,`Head`],ll(t.head_yaw),ll(t.head_pitch),ll(t.head_roll)),ul(e,r,[`Spine`,`Spine1`,`Spine2`],ll(t.spine_yaw),ll(t.spine_pitch),ll(t.spine_roll));let s=e.index.Hips,c=ll(t.yaw);Cs(e,r,s,r.P[s].slice(),U(fs(c),U(ds(ll(t.pitch)),ps(ll(t.roll)))));let l=L(cl(t.root,r.P[s]),r.P[s]);for(let e=0;e<r.P.length;e++)r.P[e]=I(r.P[e],l);let u=fs(c);for(let[n,a]of Object.entries(il)){if(!t[`foot_${n}`])continue;let o=cl(t[`foot_${n}`]);i[`leg_miss_${n}`]=Rs(e,r,e.index[`${a}UpLeg`],e.index[`${a}Leg`],e.index[`${a}Foot`],o,W(u,cl(t[`knee_${n}`],ol)),ol,`knee`);let s=Fs(e,r,a,o,sl);s>150&&(i[`leg_fold_${n}`]=s),zs(e,r,a,ll(t[`fyaw_${n}`],c),ll(t[`fpitch_${n}`]))}for(let a of n.armOrder??[`r`,`l`]){let o=il[a],s=ll(t[`armw_${a}`]),c=e.index[`${o}Arm`],l=e.index[`${o}ForeArm`],d=e.index[`${o}Hand`],f=V(W(u,cl(t[`elbow_${a}`],[0,-1,-.3])));if(i[`arm_miss_${a}`]=0,s>1e-4&&n.handTarget){let t=r.P[d].slice(),u=I(t,R(L(n.handTarget(a,r,i)??t,t),s));n.keepOut&&(u=n.keepOut(a,r,u));let p=n.push?.(a);p&&(u=I(u,p));let m=n.skinPush?.(a);m&&(u=I(u,R(m,al(s)))),n.softReach&&(u=pl(e,r,c,l,d,u,i,a));let h=I(R(V(L(r.P[l],R(I(r.P[c],t),.5))),1-s),R(f,s));i[`arm_miss_${a}`]=Rs(e,r,c,l,d,u,h,Ec,n.foldFree?null:`elbow`);let g=Fs(e,r,o,u);g>145&&!n.foldFree&&(i[`arm_fold_${a}`]=g)}Hs(e,r,o,ll(t[`wtwist_${a}`]),ll(t[`wflex_${a}`])),Ws(e,r,o,t[`fingers_${a}`]);let p=n.hold?.(a,r);(!p||p.w<1)&&n.grip?.(a,r,i),p&&Zc(e,r,o,p,Ec,i,a);let m=n.swivel?.(a);m&&(Vs(e,r,o,m*al(s)),p||rl(e,r,o)),n.afterArm?.(a,r,i)}return{s:r,diag:i}}var yl=e=>typeof e?.prop==`string`,bl=e=>!yl(e)&&e?.follow!==void 0,xl=e=>!!e&&typeof e==`object`&&!Array.isArray(e)&&[`prop`,`follow`,`pivot`,`axis`,`channel`,`keys`,`fall`].every(t=>e[t]===void 0),Sl=e=>!!e&&typeof e==`object`&&!xl(e);function Cl(e,t,n,r){let i=t.props[r.prop];return R(i.origin.map(t=>n.P[e.index[t]]).reduce((e,t)=>I(e,t),[0,0,0]),1/i.origin.length)}function wl(e,t,n,r){let i=Bs(e,n,il[t.props[r.prop].hand]),a=Cl(e,t,n,r),o=e=>I(R(i.d,e[0]),I(R(i.l,e[1]),R(i.n,e[2]))),s=V(o(r.along??[0,0,1])),c=L(i.d,R(s,z(i.d,s)));Math.hypot(...c)<1e-6&&(c=L(i.l,R(s,z(i.l,s)))),c=V(c);let l=as(c,s);return{pos:I(a,o(r.at??[0,0,0])),R:[[c[0],s[0],l[0]],[c[1],s[1],l[1]],[c[2],s[2],l[2]]]}}var Tl=(e,t)=>({pos:I(e.pos,W(e.R,t.pos)),R:U(e.R,t.R)}),El=(e,t)=>({pos:W(G(e.R),L(t.pos,e.pos)),R:U(G(e.R),t.R)});function Dl(e,t,n,r){let i=n[e.channel]?.[r]??0,a=ms(e.axis??[0,1,0],i);return{pos:I(e.pivot,W(a,L(t.pos,e.pivot))),R:U(a,t.R??ls()),angle:i}}var Ol=new Set([`empty`,`plane`,`cutout`]);function kl(e,t){let n=[];for(let r=t.get(e.parent);r&&!n.includes(r)&&!r.attach;r=t.get(r.parent))n.push(r);return n}var Al=e=>({pos:[e.x??0,e.y??0,e.z??0],R:U(ds(e.rotX??0),U(fs(e.rot??0),ps(e.rotZ??0)))}),jl=new WeakMap;function Ml(e){let t=e?.objects??{};if(jl.has(t))return jl.get(t);let n={};for(let[e,r]of Object.entries(t))(r.ancestors??[]).forEach((t,i)=>{let a=r.ancestorPoses?.[i];n[t]??={pos:a?.pos??[0,0,0],R:a?.R??[[1,0,0],[0,1,0],[0,0,1]],ancestors:r.ancestors.slice(i+1),children:[]};let o=i?r.ancestors[i-1]:e;n[t].children.includes(o)||n[t].children.push(o)});return jl.set(t,n),n}function Nl(e=[]){let t={},n={},r=new Map(e.filter(Boolean).map(e=>[e.id,e]));for(let i of e){if(!i||i.hidden)continue;let e=da(i),a=kl(i,r);if(Ol.has(i.renderer)||!(e.width>0&&e.height>0&&e.depth>0)){n[i.id]={renderer:i.renderer,ancestors:a.map(e=>e.id)};continue}t[i.id]={name:i.name,renderer:i.renderer,...Al(i),half:[e.width/2,e.height/2,e.depth/2],ancestors:a.map(e=>e.id),...a.length?{ancestorPoses:a.map(Al)}:{},...i.glow?{glow:!0}:{}}}return{objects:t,groups:Ml({objects:t}),others:n}}var Pl=24,Fl=360/Pl,Il=.2,Ll=12,Rl=8,zl=e=>Math.round(e*1e5)/1e5,Bl=(e,t)=>2*Math.acos(Math.min(1,Math.abs(qs(e,t)))),K=(e,t,n)=>e.lean>0&&e.aim&&n>0?I(e.pos,R(L(V(e.aim),Zs(t,[0,1,0])),n)):e.pos;function q(e,t){let n=V(as(e,Math.abs(e[1])<.9?[0,1,0]:[1,0,0])),r=as(e,n),i=[e];for(let a of[t/2,t])for(let t=0;t<Rl;t++){let o=2*Math.PI*t/Rl,s=Math.min(a,45)*Math.PI/180,c=I(R(n,Math.cos(o)),R(r,Math.sin(o)));i.push(V(I(R(e,Math.cos(s)),R(c,Math.sin(s)))))}return i}function Vl(e){let t=e[0].map(e=>({total:e.cost,from:-1})),n=[t];for(let r=1;r<e.length;r++)t=e[r].map(t=>{let i={total:1/0,from:-1};return e[r-1].forEach((e,a)=>{let o=n[r-1][a].total+Il*Bl(e.q,t.q)**2;o<i.total&&(i={total:o,from:a})}),{total:i.total+t.cost,from:i.from}}),n.push(t);let r=[];for(let i=e.length-1,a=t.reduce((e,n,r)=>n.total<t[e].total?r:e,0);i>=0;a=n[i][a].from,i--)r[i]=a;return r}function Hl(e,t,n){let r=(Math.sqrt(5)-1)/2,i=t,a=n,o=a-r*(a-i),s=i+r*(a-i),c=e(o),l=e(s);for(let t=0;t<Ll;t++)c<l?(a=s,s=o,l=c,o=a-r*(a-i),c=e(o)):(i=o,o=s,c=l,s=i+r*(a-i),l=e(s));return(i+a)/2}function Ul(e,t,n){let r=e.map((e,r)=>{if(e.aim===void 0)return{fixed:Js(e.rot)};let i=Js(t(r)),a=e=>{let t=Gs(Qs(V(Zs(i,[0,1,0])),e),i);return n=>Gs($s(e,n),t)};if(e.lean>0&&n)return{leans:q(V(e.aim),e.lean).map(a),roll:e.roll};let o=a(V(e.aim));return e.roll!==void 0||!n?{fixed:e.roll?o(e.roll):o(0)}:{rolled:o}}),i=e=>e.roll===void 0?Array.from({length:Pl},(e,t)=>t*Fl-180):[e.roll],a=r.map((e,t)=>e.fixed?[{q:e.fixed,cost:0,r:0}]:e.leans?e.leans.flatMap(r=>i(e).map(i=>{let a=r(i);return{q:a,cost:n(t,a),r:i,rolled:r,fixedRoll:e.roll!==void 0}})):Array.from({length:Pl},(r,i)=>{let a=i*Fl-180,o=e.rolled(a);return{q:o,cost:n(t,o),r:a}})),o=Vl(a),s=a.map((e,t)=>e[o[t]]);for(let[e,t]of r.entries())t.leans&&(r[e]=s[e].fixedRoll?{fixed:s[e].q}:{rolled:s[e].rolled});let c=[],l=null;for(let[t,i]of r.entries()){if(e[t].aim===void 0){c.push(e[t].rot),l=i.fixed;continue}let r=(i.fixed??i.rolled(Hl(e=>{let r=i.rolled(e),a=[s[t-1],s[t+1]].filter(Boolean);return n(t,r)+a.reduce((e,t)=>e+Il*Bl(t.q,r)**2,0)},s[t].r-Fl/2,s[t].r+Fl/2))).map(zl);l&&qs(r,l)<0&&(r=r.map(e=>-e)),c.push(r),l=Js(r)}return c}var Wl=1e3,Gl=4,Kl=.03,ql=.6,Jl=.05,Yl=45,Xl=2,Zl=.05,Ql=10,$l=400,eu=16,tu=4,nu=Array.from({length:72},(e,t)=>2*Math.PI*t/72-Math.PI);function ru(e,t){let n=t.length,r=Array.from(t);for(let t=0;t<n;t++)for(let i=t+1;i<=Math.min(t+2,n-1);i++){let a=e[i][t-i+2]/e[t][2];for(let r=t;r<=Math.min(t+2,n-1);r++)e[i][r-i+2]-=a*e[t][r-t+2];r[i]-=a*r[t]}for(let t=n-1;t>=0;t--){for(let i=t+1;i<=Math.min(t+2,n-1);i++)r[t]-=e[t][i-t+2]*r[i];r[t]/=e[t][2]}return r}function iu(e,t,n,r=null){let i=n.length,a=n.slice();for(let e=1;e<i;e++)a[e]=a[e-1]+Math.atan2(Math.sin(a[e]-a[e-1]),Math.cos(a[e]-a[e-1]));for(let n=0;n<Gl&&i>2;n++){let n=a.map(()=>new Float64Array(5)),o=new Float64Array(i);a.forEach((t,r)=>{let i=e(r,t),a=e(r,t+Kl),s=e(r,t-Kl);n[r][2]=Math.max(Jl,(a+s-2*i)/(Kl*Kl)),o[r]=-(a-s)/(2*Kl)});let s=a.map((e,n)=>t(n,e)),c=a.map((e,n)=>R(L(t(n,e+Kl),t(n,e-Kl)),1/(2*Kl)));for(let e=0;e+2<i;e++){let t=[1,-2,1],i=I(L(s[e],R(s[e+1],2)),s[e+2]),a=r?2*Wl*r[e]:2*Wl;for(let r=0;r<3;r++){o[e+r]-=a*t[r]*z(i,c[e+r]);for(let i=0;i<3;i++)n[e+r][i-r+2]+=a*t[r]*t[i]*z(c[e+r],c[e+i])}}let l=ru(n,o);a.forEach((e,t)=>{a[t]=e+Math.max(-.6,Math.min(ql,l[t]))})}return a}function au(e,t,n){let r=e.map((e,t)=>n(t,e)),i=e=>e>=0&&e+1<r.length?B(L(r[e+1],r[e])):0;return e.slice(1).map((e,t)=>t).filter(n=>i(n)>Zl&&i(n)>Xl*Math.max(i(n-1),i(n+1))&&ys(t(n,e[n]),t(n+1,e[n+1]))>Yl)}function ou(e,t,n,r){let i=r.length,a=Yl*Math.PI/180,o=[],s=[];for(let i=0;i<n;i++)o.push(r.map(t=>e(i,t))),s.push(r.map(e=>t(i,e)));let c=o[0].slice(),l=[];for(let e=1;e<n;e++){let t=Array(i),n=new Int32Array(i);for(let r=0;r<i;r++){let l=1/0;for(let t=0;t<i;t++){let i=Math.acos(Math.max(-1,Math.min(1,z(s[e-1][t],s[e][r])))),o=c[t]+Ql*i*i+(i>a?$l*(i-a)**2:0);o<l&&(l=o,n[r]=t)}t[r]=l+o[e][r]}l.push(n),c=t}let u=Array(n);u[n-1]=c.indexOf(Math.min(...c));for(let e=n-1;e>0;e--)u[e-1]=l[e-1][u[e]];return u.map(e=>r[e])}function su(e,t,n,r,i=nu){let a=iu(e,t,n);if(!au(a,r,t).length)return a;let o=ou(e,r,a.length,i),s=iu(e,t,o),c=au(s,r,t);if(!c.length)return s;let l=iu(e,t,o,new Float64Array(Math.max(0,s.length-2)).map((e,t)=>c.some(e=>e>=t-tu&&e<=t+1+tu)?eu:1));return au(l,r,t).length?a:l}function cu(e){return e.map((t,n)=>{let r=0,i=0;for(let t=Math.max(0,n-6);t<=Math.min(e.length-1,n+6);t++){let a=Math.exp(-((t-n)**2)/8);r+=a*e[t],i+=a}return r/i})}function lu(e,t,n,r){let i=n.map(n=>{let{s:i,held:a}=r(n);return Qc(e,i,t,a)}),a=su((e,t)=>i[e].at(t).cost,(e,t)=>i[e].at(t).elbow,i.map(e=>e.softmin()),(e,t)=>i[e].at(t).pv);return new Map(n.map((e,t)=>[e,i[t].at(a[t]).pv]))}var uu=[[`torso_lo`,`Spine`,`Spine2`,.12],[`torso_hi`,`Spine2`,`Neck`,.105],[`hips`,`LeftUpLeg`,`RightUpLeg`,.095],[`neck`,`Neck`,`Head`,.055],...[`Left`,`Right`].flatMap(e=>{let t=e===`Left`?`l`:`r`;return[[`thigh_${t}`,`${e}UpLeg`,`${e}Leg`,.07],[`shin_${t}`,`${e}Leg`,`${e}Foot`,.05],[`uarm_${t}`,`${e}Arm`,`${e}ForeArm`,.042],[`farm_${t}`,`${e}ForeArm`,`${e}Hand`,.033],[`hand_${t}`,`${e}Hand`,`${e}HandMiddle3`,.022]]})],du=(e,t,n=9)=>Array.from({length:n},(r,i)=>I(e,R(L(t,e),i/(n-1))));function fu(e,t){let n=W(G(t.R),L(e,t.pos)),r=[0,t.half[1],0],i=[Math.abs(n[0]-r[0])-t.half[0],Math.abs(n[1]-r[1])-t.half[1],Math.abs(n[2]-r[2])-t.half[2]];return B([Math.max(i[0],0),Math.max(i[1],0),Math.max(i[2],0)])+Math.min(Math.max(i[0],i[1],i[2]),0)}function pu(e,t,n,r){let i=1/0,a=L(r,n),o=z(a,a);for(let r of du(e,t)){let e=o<1e-12?0:H(z(L(r,n),a)/o,0,1);i=Math.min(i,B(L(r,I(n,R(a,e)))))}return i}function mu(e,t,n){let r=Es(t,e.index.Head,e.landmarks.headCentre),i=t.R[e.index.Head],a=W(G(i),L(n,r)),o=e.landmarks.headRadii;return(1-B([a[0]/o[0],a[1]/o[1],a[2]/o[2]]))*Math.min(...o)}var hu=e=>Math.round(e.restWorldPos[e.index.LeftFoot][1]*1e3)/1e3,gu=(e,t,n,r)=>r?Es(t,n,W(G(e.restWorldRot[n]),[0,-r,0])):t.P[n];function _u(e,t,n){let r=e.index,i=e.restWorldPos,a=e.landmarks.sole??{},o=r[`${n}Foot`],s=r[`${n}ToeBase`],c=r[`${n}Toe_End`]??s,l=[i[o][0],.005,i[o][2]-.045];return{heel:Es(t,o,W(G(e.restWorldRot[o]),L(l,i[o]))),ball:gu(e,t,s,a.ball),tip:gu(e,t,c,a.tip)}}function vu(e,t){let n=W(G(t.R),L(e,t.pos));n[1]-=t.half[1];let r=n.map((e,n)=>Math.abs(e)-t.half[n]),i;if(Math.max(...r)<0){let e=r.indexOf(Math.max(...r));i=[0,0,0],i[e]=Math.sign(n[e])||1}else i=n.map((e,t)=>r[t]>0?Math.sign(e)*r[t]:0);let a=B(i);return W(t.R,a>1e-12?R(i,1/a):[0,1,0])}var yu=uu.filter(e=>e[0].startsWith(`torso`)),bu=uu.find(e=>e[0]===`hand_l`)[3],xu=.004;function Su(e,t,n){let r=L(n,t);return B(L(e,I(t,R(r,H(z(L(e,t),r)/Math.max(z(r,r),1e-12),0,1)))))}function Cu(e){let t=[];for(let n of[-1,1])for(let r of[0,2])for(let i of[-1,1])t.push(I(e.pos,W(e.R,[n*e.half[0],r*e.half[1],i*e.half[2]])));return t}function wu(e,t,n,r,i=()=>null){let a=e.index,o=Object.entries(t.ctx.spec.objects??{}).filter(([,e])=>Sl(e)).map(([e])=>e);for(let e=0;e<t.frames.length;e++){let{s,diag:c}=t.frames[e],l=s.P,u=[];for(let[e,t]of Object.entries(c.props??{}))for(let[n,r]of Object.entries(t))Array.isArray(r)&&n!==`origin`&&u.push([`prop_${e}`,r,xu]);for(let[t,i,o,s]of yu){let c=new Map;for(let[e,t,n]of u)c.set(e,Math.max(c.get(e)??-1/0,s+n-Su(t,l[a[i]],l[a[o]])));for(let[i,a]of c)a>n.body&&r(`BODY`,`${i} into ${t}`,e,a,n.body)}let d=2*bu-pu(l[a.LeftHand],l[a.LeftHandMiddle3],l[a.RightHand],l[a.RightHandMiddle3]),f=Math.max(i(`hand_l`,`hand_r`)??0,n.hands);if(d>f&&r(`SELF`,`hands overlap`,e,d,f),!o.length)continue;let p=t.objectsAt(e);for(let t of o){if(!p[t]?.half)continue;let i=Cu(p[t]);for(let[a,s]of Object.entries(p)){if(o.includes(a)||!s.half||s.ignore)continue;let c=-Math.min(...i.map(e=>fu(e,s)));c>n.object&&r(`OBJECT`,`${t} into ${a}`,e,c,n.object)}}}}var Tu=[[/^Hips$/,`hips`],[/^(Spine|Spine1)$/,`torso_lo`],[/^Spine2$/,`torso_hi`],[/^Neck$/,`neck`],[/^Head/,`head`],[/Shoulder$/,`shoulder`],[/UpLeg$/,`thigh`],[/Leg$/,`shin`],[/(Foot|Toe)/,`foot`],[/ForeArm$/,`farm`],[/Arm$/,`uarm`],[/Hand$/,`hand`]];function Eu(e,t){let n=e.names[t]??``,r=/^Left/.test(n)?`_l`:/^Right/.test(n)?`_r`:``,i=Tu.find(([e])=>e.test(n));return i?`${i[1]}${r}`:n}var Du=[`Arm`,`ForeArm`,`Hand`].flatMap(e=>[`Left${e}`,`Right${e}`]);function Ou(e,t,n,r,i){let a=oc(e);if(!a)return;let o=Du.map(t=>e.index[t]);t.frames.forEach(({s:t},s)=>{for(let c of o){let o=Sc(a,e,t,c);if(o.into<0)continue;let l=Eu(e,c),u=Eu(e,o.into),d=Math.max(i(l,u)??0,n.skin);o.depth>d&&r(`BODY`,`${l} into ${u}`,s,o.depth,d)}})}var ku=.05,Au=new WeakMap;function ju(e){let t=Au.get(e);return t||(t=Object.values(e).filter(e=>e.half&&!e.ignore).map(e=>({RT:G(e.R),c:[e.pos[0]+e.R[0][1]*e.half[1],e.pos[1]+e.R[1][1]*e.half[1],e.pos[2]+e.R[2][1]*e.half[1]],half:e.half,up:[e.R[1][0],e.R[1][1],e.R[1][2]],r:B(e.half)})),Au.set(e,t)),t}function Mu(e,t){if(Math.hypot(t[0]-e.c[0],t[2]-e.c[2])>e.r)return null;let n=W(e.RT,L(t,e.c)),r=-1/0,i=1/0;for(let t=0;t<3;t++){let a=e.up[t],o=e.half[t];if(Math.abs(a)<1e-9){if(Math.abs(n[t])>o)return null;continue}let s=(-o-n[t])/a,c=(o-n[t])/a;r=Math.max(r,Math.min(s,c)),i=Math.min(i,Math.max(s,c))}return r<=i?t[1]+i:null}function Nu(e,t,n){let r=0;for(let i of ju(e.objectsAt(t))){let e=Mu(i,n);e!==null&&e<=n[1]+ku&&e>r&&(r=e)}return r}function Pu(e,t,n){let r=_u(e.ctx.sk,e.frames[t].s,n);for(let n of[`heel`,`ball`,`tip`])r[n]=[r[n][0],r[n][1]-Nu(e,t,r[n]),r[n][2]];return r}var Fu=[`Hips`,`Head`,`LeftHand`,`RightHand`,`LeftFoot`,`RightFoot`,`LeftLeg`,`RightLeg`,`LeftForeArm`,`RightForeArm`],Iu=new Set([`Hips`,`Head`]),Lu=[[`knee_l`,`LeftUpLeg`,`LeftLeg`,`LeftFoot`],[`knee_r`,`RightUpLeg`,`RightLeg`,`RightFoot`],[`elbow_l`,`LeftArm`,`LeftForeArm`,`LeftHand`],[`elbow_r`,`RightArm`,`RightForeArm`,`RightHand`]],Ru=2,zu=.75,Bu=.05,Vu=e=>Math.round(e*100)/100;function Hu(e,t){let n=t.frames,r=n.length;return Fu.map(t=>{let i=n.map(n=>n.s.P[e.index[t]]),a=new Float64Array(r),o=new Float64Array(r),s=i.map(()=>[0,0,0]);for(let e=1;e<r;e++)a[e]=B(L(i[e],i[e-1]));for(let e=2;e<r;e++)s[e]=L(L(i[e],i[e-1]),L(i[e-1],i[e-2])),o[e]=B(s[e]);return{j:t,core:Iu.has(t),v:a,a:o,A:s}})}function Uu({a:e,A:t},n){let r=0;for(let t of[n-3,n-2,n+2,n+3])t>=2&&t<e.length&&(r=Math.max(r,e[t]));let i=e[n]>0?[n-1,n+1].filter(t=>t>=2&&t<e.length).map(r=>z(t[r],t[n])/e[n]):[];return i.length?Math.max(r,Math.max(...i)+Math.min(0,...i)):r}var Wu=(e,t,n)=>e.a[t]>n&&e.a[t]>Ru*Uu(e,t);function Gu(e,t,n,r){for(let i of Hu(e,t)){let e=i.core?n.accCore:n.accLimb;for(let t=2;t<i.a.length;t++)Wu(i,t,e)&&r(`POP`,`${i.j} accel ${(i.a[t]*100).toFixed(2)} cm/f^2 in one frame`,t,i.a[t],e)}}function Ku(e,t,n){let{P:r}=e.frames[t].s,i=e.ctx.sk.index;return n.some(n=>{let a=e.objectsAt(t)[n.object],o=uu.find(e=>e[0]===(n.part??`hips`));return a&&o&&Math.min(...du(r[i[o[1]]],r[i[o[2]]]).map(e=>fu(e,a)))-o[3]<(n.tol??.04)})}function qu(e,t=[]){let n=e.ctx.sk.index,r=e.frames;return r.map(({s:i},a)=>{if(Ku(e,a,t))return null;let{P:o}=i,s=a>0&&a<r.length-1&&Math.hypot(r[a+1].s.P[n.Hips][0]-r[a-1].s.P[n.Hips][0],r[a+1].s.P[n.Hips][2]-r[a-1].s.P[n.Hips][2])/2>.006,c=[];for(let t of[`Left`,`Right`]){let n=Pu(e,a,t);(s||Math.min(n.heel[1],n.ball[1])<.02)&&c.push(n.heel,n.ball,n.tip)}if(!c.length)return`air`;let l=R([`Hips`,`Spine1`,`Spine2`,`Head`].reduce((e,t)=>I(e,o[n[t]]),[0,0,0]),.25),u=c.map(e=>e[0]),d=c.map(e=>e[2]);return Math.min(l[0]-Math.min(...u),Math.max(...u)-l[0],l[2]-Math.min(...d),Math.max(...d)-l[2])})}function Ju(e,t=[]){let n=e.frames.length,r=[],i=e.frames.map((n,r)=>!Ku(e,r,t)&&[`Left`,`Right`].every(t=>{let n=Pu(e,r,t);return Math.min(n.heel[1],n.ball[1])>=.02}));for(let e=0;e<n;e++){if(!i[e])continue;let t=e;for(;t+1<n&&i[t+1];)t++;r.push([e,t]),e=t}return r}function Yu(e,t={}){let n=e.frames,r=n.length,i=e.ctx.sk.index,a=9.81/(e.fps??24)**2,o=e.f0??0,s=[],c=e=>n[Math.max(0,Math.min(r-1,e))].s.P[i.Hips][1];for(let[n,i]of Ju(e,t.supports)){let e=i-n+1;if(e<4)continue;let t=1-((n>0?c(n)-c(n-1):c(n+1)-c(n))-(i<r-1?c(i+1)-c(i):c(i)-c(i-1)))/e/a;if(!(t<=zu))for(let e=n;e<=i;e++)s.push({kind:`FLOAT`,msg:`no foot on the ground f${n+o}-f${i+o}, hips fall at ${Math.round(Math.max(0,1-t)*100)}% of g`,frame:e,value:+t.toFixed(4),limit:zu})}return s}var Xu=(e,t,[,n,r,i])=>ys(L(t.P[e.index[r]],t.P[e.index[n]]),L(t.P[e.index[i]],t.P[e.index[r]]));function Zu(e,t,n,r){let i=n?.limits??{},a=e=>Object.hasOwn(i,e),o=[],s=(e,t,n,r,i)=>o.push({kind:e,msg:t,frame:n,value:+r.toFixed(4),limit:i});for(let n of Hu(e,t)){let{j:e,core:t,v:i,a:o}=n,c=t?`speedCore`:`speedLimb`,l=t?`accCore`:`accLimb`;for(let t=1;t<i.length;t++)a(c)&&i[t]>r[c]&&s(`SPEED`,`${e} ${(i[t]*100).toFixed(1)} cm/frame`,t,i[t],r[c]),a(l)&&t>1&&o[t]>r[l]&&!Wu(n,t,r[l])&&s(`ACC`,`${e} accel ${(o[t]*100).toFixed(2)} cm/f^2`,t,o[t],r[l])}return a(`knee`)&&t.frames.forEach(({s:t},n)=>{for(let i of Lu.slice(0,2)){let a=Xu(e,t,i);a>r.knee&&s(`KNEE`,`${i[0]===`knee_l`?`Left`:`Right`} knee bent ${a.toFixed(0)}deg`,n,a,r.knee)}}),a(`balance`)&&qu(t,n.supports).forEach((n,i)=>{if(n===`air`)s(`BALANCE`,`no foot on the ground`,i,0,0);else if(n!==null&&-n>r.balance){let a=R([`Hips`,`Spine1`,`Spine2`,`Head`].reduce((n,r)=>I(n,t.frames[i].s.P[e.index[r]]),[0,0,0]),.25);s(`BALANCE`,`centre of mass ${a[0].toFixed(2)},${a[2].toFixed(2)} outside the feet`,i,-n,r.balance)}}),o}function Qu(e,t,n={}){let r=t.f0??0,i=t.fps??24,a=(e,t)=>{let n=0;for(let t=1;t<e.length;t++)e[t]>e[n]&&(n=t);return[Math.round(e[n]*t*100)/100,n+r]},o=Object.fromEntries(Hu(e,t).map(({j:e,v:t,a:n})=>[e,{speed:a(t,i),accel:a(n,i*i)}]).filter(([,e])=>e.speed[0]>=Bu)),s=qu(t,n.supports),c=e=>{let t=s.map((t,n)=>e(t)?n+r:-1).filter(e=>e>=0);return t.length?[t[0],t[t.length-1]]:null},l=Ju(t,n.supports).slice(0,4).map(([e,t])=>[e+r,t+r]),u=null;s.forEach((e,t)=>{typeof e==`number`&&(!u||e<u[0])&&(u=[Vu(e),t+r])});let d=c(e=>typeof e==`number`&&e<0),f=Object.fromEntries(Lu.map(n=>{let i=[0,r];return t.frames.forEach(({s:t},a)=>{let o=Xu(e,t,n);o>i[0]&&(i=[o,a+r])}),[n[0],[Math.round(i[0]),i[1]]]}));return{units:`[value, frame]; speed m/s, accel m/s^2, balance m inside the feet (< 0 outside), bend deg (0 straight)`,peaks:o,balance:{min:u,...d?{outside:d}:{},...l.length?{air:l}:{}},bend:f}}function $u(e,t,n,r){let i=e=>Object.hasOwn(n??{},e),a=new Float64Array(t.frames.length);for(let n of Hu(e,t)){let{core:e,v:t,a:o}=n,s=e?`speedCore`:`speedLimb`,c=e?`accCore`:`accLimb`;for(let e=1;e<t.length;e++)i(s)&&(a[e]=Math.max(a[e],t[e]/r[s])),!(e<2)&&(Wu(n,e,r[c])&&(a[e]=Math.max(a[e],Math.sqrt(o[e]/Math.max(r[c],Ru*Uu(n,e))))),i(c)&&(a[e]=Math.max(a[e],Math.sqrt(o[e]/r[c]))))}return a}var ed=[0,1,0],td=.7,nd=.025,rd=new Map;function id(e,t){let n=`${e.model}:${t}`;if(rd.has(n))return rd.get(n);let r=oc(e),i=r?[]:null;for(let n of r?.grids??[]){if(n.b!==e.index[`${t}Foot`]&&n.b!==e.index[`${t}ToeBase`])continue;let[a,o,s]=n.dims,c=new Set;for(let e=0;e<a;e++)for(let t=0;t<o;t++)for(let a=0;a<s;a++){if(Math.abs(n.data[(e*o+t)*s+a]/1e3)>r.step/2)continue;let l=[n.min[0]+e*r.step,n.min[1]+t*r.step,n.min[2]+a*r.step],u=l.map(e=>Math.floor(e/nd)).join();c.has(u)||(c.add(u),i.push([n.b,l]))}}return rd.set(n,i),i}function ad(e,t,n){let r=id(e,n);if(!r?.length){let r=_u(e,t,n),i=(e,t)=>R(I(e,t),.5);return[r.heel,i(r.heel,r.ball),r.ball,i(r.ball,r.tip),r.tip]}return r.map(([e,n])=>I(t.P[e],W(t.R[e],n)))}function od(e,t){let n={top:-1/0,side:-1/0,topAt:null,sideAt:null};for(let r of e){let e=-fu(r,t);if(e<=0)continue;let i=z(vu(r,t),ed)>td?`top`:`side`;e>n[i]&&(n[i]=e,n[`${i}At`]=r)}return n}function sd(e,t,n,r,i,a,o){for(let[s,c]of[[`Left`,`l`],[`Right`,`r`]]){let l=ad(e,t,s),u=`foot_${c}`;for(let[e,t,s,c]of r){if(l.every(e=>os(e,s)>c))continue;let r=od(l,t),d=a(u,e),f=d??i.allow,p=d??i.groundAllow;r.side>f?o(`COLLIDE`,`${u} x ${e}`,n,r.side,f):r.top>p&&o(`COLLIDE`,`${u} x ${e}`,n,r.top,p)}}}var cd={allow:.005,groundAllow:.01,reach:.01,slide:.0015,plantH:.012,speedCore:.04,speedLimb:.16,accCore:.015,accLimb:.05,flip:60,knee:150,headAllow:.003,self:0,body:.005,skin:.015,hands:.01,object:.005,grab:.03,balance:.08},ld=20,ud=.01,dd=(e,t,n)=>{for(let r of e??[])if(t.startsWith(r.part)&&(r.object===n||r.object.endsWith(`*`)&&n.startsWith(r.object.slice(0,-1))))return r.depth;return null};function fd(e,t,n={}){let r={...cd,...n.limits},i=[],a=e.index,o=t.frames,s=o.length,c=(e,t,n,r,a)=>i.push({kind:e,msg:t,frame:n,value:+r.toFixed(4),limit:a});for(let i=0;i<s;i++){let{s,diag:l}=o[i],u=t.objectsAt(i),d=Object.entries(u).filter(([,e])=>e.half&&!e.ignore).map(([e,t])=>[e,t,I(t.pos,W(t.R,[0,t.half[1],0])),B(t.half)]);for(let[e,t,o,l]of uu){let u=s.P[a[t]],f=s.P[a[o]],p=R(I(u,f),.5),m=l+os(u,f)/2,h=null;for(let[t,a,o,s]of d){let d=dd(n.allow,e,t)??r.allow;if(m-(os(p,o)-s)<=d)continue;h??=du(u,f);let g=l-Math.min(...h.map(e=>fu(e,a)));g>d&&c(`COLLIDE`,`${e} x ${t}`,i,g,d)}}sd(e,s,i,d,r,(e,t)=>dd(n.allow,e,t),c);for(let t of[`Left`,`Right`]){let n=_u(e,s,t),a=Math.min(n.heel[1],n.ball[1],n.tip[1]);a<-r.groundAllow&&c(`GROUND`,`${t} sole below floor`,i,-a,r.groundAllow)}for(let[e,t]of Object.entries(l))/miss_[lr]$/.test(e)&&t>r.reach&&c(`REACH`,e,i,t,r.reach);let f=[];for(let e of[`Left`,`Right`])f.push(...du(s.P[a[`${e}Hand`]],s.P[a[`${e}HandMiddle3`]],5).map(t=>[`hand_${e[0].toLowerCase()}`,t,.022]));for(let[e,t]of Object.entries(l.props??{}))for(let[r,i]of Object.entries(t))Array.isArray(i)&&r!==`origin`&&!(n.mouthPoints??[]).includes(`${e}.${r}`)&&f.push([`prop_${e}`,i,.004]);for(let[t,n,a]of f){let o=mu(e,s,n)+a;o>r.headAllow&&c(`FACE`,`${t} into head`,i,o,r.headAllow)}pu(s.P[a.LeftLeg],s.P[a.LeftFoot],s.P[a.RightLeg],s.P[a.RightFoot])<.1+r.self&&c(`SELF`,`shins touch`,i,.1,.1),pu(s.P[a.LeftUpLeg],s.P[a.LeftLeg],s.P[a.RightUpLeg],s.P[a.RightLeg])<.135+r.self&&c(`SELF`,`thighs overlap`,i,.135,.135);for(let e of[`Left`,`Right`]){let t=s.P[a[`${e}UpLeg`]],n=s.P[a[`${e}Leg`]],r=s.P[a[`${e}Foot`]],o=ys(L(n,t),L(r,n)),l=L(s.P[a[`${e}ToeBase`]],r);l[1]=0;let u=L(n,[(t[0]+r[0])/2,(t[1]+r[1])/2,(t[2]+r[2])/2]);o>3&&z(u,l)<-.002&&c(`KNEE`,`${e} knee bends backward`,i,o,0),o>160+ud&&c(`KNEE`,`${e} knee folds ${o.toFixed(0)}deg`,i,o,160);let d=ys(L(s.P[a[`${e}ForeArm`]],s.P[a[`${e}Arm`]]),L(s.P[a[`${e}Hand`]],s.P[a[`${e}ForeArm`]]));d>150+ud&&c(`ELBOW`,`${e} elbow folds ${d.toFixed(0)}deg`,i,d,150)}}let l=(e,t)=>dd(n.allow,e,t);wu(e,t,r,c,l),Ou(e,t,r,c,l);for(let e of[`Left`,`Right`]){let n=o.map((n,r)=>Pu(t,r,e));for(let t=1;t<s;t++){let i=n[t-1],a=n[t];for(let n of[`heel`,`ball`]){let o=a[n][1]<r.plantH&&i[n][1]<r.plantH&&Math.abs(a[n][1]-i[n][1])<5e-4,s=Math.hypot(a[n][0]-i[n][0],a[n][2]-i[n][2]);o&&s>r.slide&&c(`SLIDE`,`${e} ${n} slides`,t,s,r.slide)}}}for(let t=0;t<e.names.length;t++){let n=e.parent[t];if(n<0)continue;let r=os(e.restWorldPos[t],e.restWorldPos[n]),i=Math.max(...o.map(e=>Math.abs(os(e.s.P[t],e.s.P[n])-r)));i>.001&&c(`LENGTH`,`${e.names[n]}-${e.names[t]}`,0,i,.001)}return Gu(e,t,r,c),pd(e,o,r,c),i}function pd(e,t,n,r){let i=e.index,a=Math.sin(ld*Math.PI/180);for(let e of[`Left`,`Right`])for(let[o,s,c]of[[`${e}UpLeg`,`${e}Leg`,`${e}Foot`],[`${e}Arm`,`${e}ForeArm`,`${e}Hand`]]){let e=null,l=0;for(let u=0;u<t.length;u++){let d=t[u].s.P,f=L(d[i[s]],d[i[o]]),p=L(d[i[c]],d[i[s]]),m=as(f,p);if(B(m)<a*B(f)*B(p))continue;let h=V(m),g=e?ys(h,e):0,_=u-l;g/_>n.flip&&r(`FLIP`,`${s} bend plane jumps ${g.toFixed(0)}deg${_>1?` over ${_} frames`:``}`,u,g/_,n.flip),e=h,l=u}}}var md=36,hd=.05,gd=.3,_d=3,vd=10,yd=36,bd=1,xd=100,Sd=uu.filter(e=>e[0].startsWith(`torso`)),Cd=Object.fromEntries(uu.map(e=>[e[0],e[3]])),J=(e,t,n)=>[[e[0],t[0],n[0]],[e[1],t[1],n[1]],[e[2],t[2],n[2]]],wd=(e,t)=>[e[0][t],e[1][t],e[2][t]];function Td(e,t,n,r){let i=L(t,e),a=L(r,n),o=L(e,n),s=z(i,i),c=z(a,a),l=z(a,o);if(s<1e-12||c<1e-12)return B(o);let u=z(i,o),d=z(i,a),f=s*c-d*d,p=f>1e-12?H((d*l-u*c)/f,0,1):0,m=(d*p+l)/c;return m<0?(m=0,p=H(-u/s,0,1)):m>1&&(m=1,p=H((d-u)/s,0,1)),B(L(I(e,R(i,p)),I(n,R(a,m))))}function Ed(e,t,n){let r=e.index,i=Bs(e,t,n);return{pos:R(I(t.P[r[`${n}HandIndex2`]],t.P[r[`${n}HandMiddle2`]]),.5),R:J(i.d,i.l,i.n)}}function Dd(e,t,n,r,i,a){let o=t.objects[n];if(t.props[o.prop].hand!==`r`)return null;let s=Object.entries(t.anchors??{}).reduce((e,[t,n])=>e+(n.kind===`prop`&&n.prop===o.prop?Math.max(0,i[`w_${t}_l`]??0):0),0);if(!(s>1e-4))return null;let c=Ed(e,r,il.r).R,l=wd(c,0),u=V(as(a,L(l,R(a,z(l,a))))),d=e=>L(e,R(u,2*z(e,u))),f=J(d(l),d(wd(c,1)),R(d(wd(c,2)),-1)),p=Ed(e,r,il.l),m=e.index,h=m.LeftHand,g=r.P[h],_=U(G(r.R[h]),p.R),v=W(G(r.R[h]),L(p.pos,g)),y=(t.fits??[]).some(e=>e.side===`l`&&t.anchors?.[e.anchor]?.kind===`prop`&&t.anchors[e.anchor].prop===o.prop&&i[`w_${e.anchor}_l`]>1e-4)?`palm`:`wrist`,b=e=>U(ms(a,e*180/Math.PI),f),x=e=>U(b(e),G(_)),S=e=>y===`wrist`?I(g,W(x(e),v)):L(p.pos,W(x(e),v)),C=e=>y===`wrist`?g:S(e),w=W(G(r.R[h]),L(r.P[m.LeftHandMiddle3],g)),T=r.P[m.LeftArm],E=Yc(e,r,il.l),D=t.fix===!1||t.fix?.self===!1?null:oc(e),ee={uarm_l:m.LeftArm,farm_l:m.LeftForeArm,hand_l:m.LeftHand},te=(t,n,i)=>D?xc(D,e,r,ee[i],t,n):Math.max(0,...Sd.map(([,e,a,o])=>Cd[i]+o-Td(t,n,r.P[m[e]],r.P[m[a]]))),ne=new Map,O=t=>{if(ne.has(t))return ne.get(t);let n=C(t),i=Bc(e,r,il.l,x(t),n,E,Ec),a=e=>{let t=i.at(e);return{pv:t.pv,elbow:t.elbow,cost:t.cost+bd*((100*te(T,t.elbow,`uarm_l`))**2+(100*te(t.elbow,n,`farm_l`))**2)}},o={th:0,cost:1/0};for(let e=0;e<yd;e++){let t=2*Math.PI*e/yd-Math.PI,n=a(t).cost;n<o.cost&&(o={th:t,cost:n})}let s=I(n,W(x(t),w)),c=te(n,s,`hand_l`),l=Math.max(0,c-cd.body),u=2*Cd.hand_l-Td(n,s,r.P[m.RightHand],r.P[m.RightHandMiddle3]),d=Math.max(0,u-cd.hands),f=bd*((100*c)**2+(100*i.miss)**2)+(l>0?xd*(100*l)**2:0)+(d>0?xd*(100*d)**2:0),p={at:a,best:{th:o.th,pole:a(o.th).pv,cost:o.cost+f}};return ne.set(t,p),p},re=e=>O(e).best.cost+gd*(1-Math.cos(e));return{id:n,weight:s,pin:y,at:p.pos,rolled:b,arm:O,cost:re,point:S,softmin:()=>{let e=Array.from({length:md},(e,t)=>{let n=2*Math.PI*t/md-Math.PI;return[n,re(n)]}),t=Math.min(...e.map(e=>e[1])),n=e.reduce((e,[n,r])=>{let i=Math.exp(-(r-t)/hd);return[e[0]+i*Math.cos(n),e[1]+i*Math.sin(n)]},[0,0]);return Math.atan2(n[1],n[0])},measure:t=>Ed(e,t,il.l)}}var Od=(e,t)=>Math.exp(-Math.max(0,e.cost(t)-_d)/vd),kd=(e,t,n,r,i)=>({w:t*Math.min(1,e.weight)*r,second:e.id,pin:e.pin,pole:i,palm:{pos:e.at,R:e.rolled(n)},measure:e.measure}),Ad=.045,jd=4,Md=8,Nd=[30,10],Pd=2,Fd=4,Id=2,Ld=.1,Rd=1.5,zd=20,Bd=4,Vd=8,Hd=400,Ud=[`the fingers' line`,`the palm normal`,`the knuckle line`],Wd=(e,t)=>[e[0][t],e[1][t],e[2][t]],Gd=e=>{let t=G(e.R);return{pos:R(W(t,e.pos),-1),R:t}},Kd=e=>Math.round(e*100)/100;function qd(e,t,n){let r=_s(e),i=_s(t);return qs(r,i)<0&&(i=i.map(e=>-e)),vs(ec(r,i,n))}function Jd(e,[t,n],[r,i]){let a=e>=0?n:-t,o=e>=0?i:-r,s=Math.abs(e);if(s<=a)return(s/a)**2;let c=(Math.min(s,o)-a)/Math.max(1e-6,o-a);return 1+Vd*c*c+(s>o?Hd*((s-o)/o)**2:0)}function Yd(e,t,n,r,i){let{goal:a,plane:o,wristAt:s}=Xc(e,t,n,r,i,1),c=s(a),l=Bc(e,t,n,a,c,o,Ec),u=l.at(l.softmin()),d=e.index,f=t.P[d[`${n}Arm`]],p=B(L(t.P[d[`${n}ForeArm`]],f)),m=B(L(t.P[d[`${n}Hand`]],t.P[d[`${n}ForeArm`]])),h=Math.max(0,ks(p,m,145)-B(L(c,f))),g=oc(e),_=g?Math.max(xc(g,e,t,d[`${n}Arm`],f,u.elbow),xc(g,e,t,d[`${n}ForeArm`],u.elbow,c),xc(g,e,t,d[`${n}Hand`],c,r.pos)):0;return[`twist`,`flex`,`dev`].reduce((e,t)=>e+Jd(u.need[t],wc[t],Cc[t]),0)+zd*((l.miss*100)**2+(h*100)**2)+Bd*(_*100)**2}function Xd(e,t,n,r,i,a,o){if(r.aim===void 0)return o({pos:r.pos,R:vs(r.rot)});let s=_s(Tl(i,a).R),c=V(r.aim),l=Gs(Qs(V(Zs(s,[0,1,0])),c),s),u=e=>({pos:r.pos,R:vs(Gs($s(c,e),l))});if(r.roll!==void 0)return o(u(r.roll));let d=null;for(let r=0;r<jd;r++){let o=u(360/jd*r-180),s=$c(e,t,n,Tl(o,Gd(a)),i);(!d||s<d.strain)&&(d={p:o,strain:s})}return o(d.p)}function Zd(e,t){let n=Object.entries(e?.objects??{}).filter(([e,n])=>(e===t||n.ancestors?.includes(t))&&n.half);if(!n.length)return!1;let r=n.map(([,e])=>e.half).reduce((e,t)=>t[0]*t[1]*t[2]>e[0]*e[1]*e[2]?t:e),i=[0,1,2].reduce((e,t)=>r[t]>r[e]?t:e,0);return[0,1,2].filter(e=>e!==i).every(e=>r[e]<Ad)}var Qd=(e,t)=>e.length<=t?e:Array.from({length:t},(n,r)=>e[Math.round(r*(e.length-1)/(t-1))]);function $d(e,t){let n=Ys(_s(U(G(e),t)));return`today's grip turned ${Math.round(2*B(n)*180/Math.PI)} deg, mostly about ${Ud[[0,1,2].reduce((e,t)=>Math.abs(n[t])>Math.abs(n[e])?t:e,0)]}`}function ef({sk:e,o:t,side:n,grab:r,rest:i,plain:a,palmOf:o,map:s=e=>e}){let c=new Map,l=e=>{let t=Math.round(e);if(!c.has(t)){let e=a(t);c.set(t,{s:e,now:o(e)})}return c.get(t)},{s:u,now:d}=l(r),f=[...t.keys].sort((e,t)=>e.f-t.f),p=Qd(f,Md),m=e=>El({pos:d.pos,R:e},i),h=(t,r,i)=>{let{s:a,now:o}=l(r);return Yd(e,a,n,Tl(i,Gd(t)),o)},g=t=>Yd(e,u,n,Tl(i,Gd(t)),d),_=t=>{let r=m(t);return g(r)+p.reduce((t,i)=>{let{s:a,now:o}=l(s(i.f));return t+Xd(e,a,n,i,o,r,e=>h(r,s(i.f),e))},0)},v=r=>{let a=m(r),o=Math.round(s(f[0].f)),c=Math.round(s(f[f.length-1].f)),u=of(t,s,e=>_s(Tl(l(e).now,a).R),(t,r,i,o)=>{let{s,now:c}=l(t);return $c(e,s,n,Tl({pos:r,R:vs(i)},Gd(a)),c,o)},2*(i?.half?.[1]??0)),d=g(a),p=d;for(let e=o;e<=c;e+=Fd){let t=h(a,e,lf(u,e));d+=t,p=Math.max(p,t)}return{A:a,cost:d,worst:p}},y={name:`today`,R:d.R,...v(d.R)};if(y.worst<=Rd)return{offset:y.A,name:`today`,cost:Kd(y.cost),today:Kd(y.cost)};let b={R:d.R,rough:_(d.R)};for(let e of Nd)for(let t=0,n=!0;n&&t<Pd;t++){n=!1;for(let t of[0,1,2])for(let r of[1,-1]){let i=U(ms(Wd(b.R,t),r*e),b.R),a=_(i);a<b.rough-1e-6&&(b={R:i,rough:a},n=!0)}}let x=b.R===d.R?y:{name:$d(d.R,b.R),...v(b.R)},S=x.cost<y.cost-Math.max(Id,Ld*y.cost)?x:y;return{offset:S.A,name:S.name,cost:Kd(S.cost),today:Kd(y.cost)}}var tf=12,nf=e=>e*e*(3-2*e),rf=(e,t)=>{let n=t=>e.timeMap?Math.round(e.timeMap(t)):t;return[n(t.grab??0),t.release===void 0?e.frameCount-1:n(t.release)]},af=e=>{let t=G(e.R);return{pos:R(W(t,e.pos),-1),R:t}};function of(e,t,n,r,i=0){let a=[...e.keys].sort((e,t)=>e.f-t.f),o=a.map(e=>t(e.f)),s=[],c=Ul(a,e=>n(o[e]),r&&((e,t)=>r(o[e],K(a[e],t,i),t,a[e].lean?{shoulder:!0}:void 0))),l=a.map((e,t)=>K(e,Js(c[t]),i).slice());for(let e of c){let t=Js(e);s.push(s.length&&qs(s[s.length-1],t)<0?t.map(e=>-e):t)}let u=a.length-1,d=e=>R(Ys(Gs(Ks(s[e]),s[e+1])),1/(o[e+1]-o[e])),f=(e,t)=>e===0||e===u?[0,0,0]:R(I(R(t(e),o[e]-o[e-1]),R(t(e-1),o[e+1]-o[e])),1/(o[e+1]-o[e-1]));return{t:o,p:l,q:s,m:l.map((e,t)=>f(t,e=>R(L(l[e+1],l[e]),1/(o[e+1]-o[e])))),w:s.map((e,t)=>f(t,d)),rots:c}}var sf=new WeakMap;function cf(e,t){sf.has(e)||sf.set(e,new Map);let n=sf.get(e),r=e.timeMap,i=e.baked,a=n.get(t);if(!a||a.map!==r||a.baked!==i){let a=e.ctx.hold,o=new Map,s=e=>{let t=Math.round(e);return o.has(t)||o.set(t,a.plainFrame(t).s),o.get(t)};n.set(t,{map:r,baked:i,curve:of(e.ctx.spec.objects[t],e=>r?r(e):e,e=>_s(a.carryOn(t,s(e)).R),(e,n,r,i)=>a.strainOn(t,s(e),{pos:n,R:vs(r)},i),2*(e.ctx.scene?.objects?.[t]?.half?.[1]??0))})}return n.get(t).curve}function lf({t:e,p:t,q:n,m:r,w:i},a){let o=e.length;if(o===1||a<=e[0])return{pos:t[0].slice(),R:vs(n[0])};if(a>=e[o-1])return{pos:t[o-1].slice(),R:vs(n[o-1])};let s=0;for(;a>e[s+1];)s++;let c=e[s+1]-e[s],l=(a-e[s])/c,u=l*l,d=u*l,f=2*d-3*u+1,p=d-2*u+l,m=-2*d+3*u,h=d-u,g=I(I(R(t[s],f),R(r[s],c*p)),I(R(t[s+1],m),R(r[s+1],c*h))),_=Gs(Ks(n[s]),n[s+1]),v=I(I(R(Ys(_),m),R(i[s],c*p)),R(Zs(_,i[s+1]),c*h));return{pos:g,R:vs(Gs(n[s],Xs(v)))}}function uf(e,[t,n],r){let i=e.t[0],a=e.t[e.t.length-1];if(r<t||r>n)return 0;if(r>=i&&r<=a)return 1;let o=r<i?Math.min(8,i-t):8,s=r<i?i-r:r-a;return o>0&&s<o?nf(1-s/o):0}var df=e=>Object.entries(e.objects??{}).filter(([,e])=>yl(e)&&e.keys?.length);function ff(e,t,n,r){let{sk:i,spec:a,scene:o}=e,s=df(a);if(!s.length)return null;let c=(e,t)=>wl(i,a,t,{prop:e.prop}),l=new WeakMap,u=new Set,d=(t,n)=>e.restingAt?.(t,n)??o?.objects?.[t]??Ml(o)[t],f=new WeakMap,p=e=>t.timeMap?Math.round(t.timeMap(e)):e,m=e=>{f.has(t)||f.set(t,new Map);let r=f.get(t),s=a.objects[e],l=a.props?.[s.prop]?.hand,m=rf(t,s)[0],h=t.baked??{};if(r.has(e))return r.get(e);if(r.set(e,null),!(l&&s.at===void 0&&s.along===void 0&&(s.grab!==void 0||!o?.objects?.[e])&&Zd(o,e)&&!(a.fits??[]).some(e=>e.side===l&&e.orient===!1)&&![`wtwist`,`wflex`].some(e=>Math.abs(h[`${e}_${l}`]?.[m]??0)>.001)&&p(Math.min(...s.keys.map(e=>e.f)))<=m))return null;u.add(e);try{r.set(e,ef({sk:i,o:s,side:il[l],grab:m,rest:d(e,m),plain:e=>n(e).s,palmOf:e=>c(s,e),map:p}))}finally{u.delete(e)}return r.get(e)},h=r=>{l.has(t.baked)||l.set(t.baked,new Map);let s=l.get(t.baked),d=a.objects[r];if(s.has(r))return s.get(r);let f=m(r);if(f&&f.name!==`today`)return s.set(r,f.offset),f.offset;let p=o?.objects?.[r]??Ml(o)[r],h=!o?.objects?.[r]&&!!p,g=d.at===void 0&&d.along===void 0&&(h||d.grab!==void 0);u.add(r);let _;try{_=g?n(rf(t,d)[0]).s:Ss(i)}finally{u.delete(r)}let v=El(c(d,_),g?e.restingAt?.(r,rf(t,d)[0])??{pos:p.pos,R:p.R}:wl(i,a,_,d));return s.set(r,v),v},g=(e,t)=>Tl(c(a.objects[e],t),h(e)),_=(e,t,n,r)=>{let o=a.objects[e];return $c(i,t,il[a.props[o.prop].hand],Tl(n,af(h(e))),c(o,t),r)},v=(e,n,r)=>{let i=cf(t,e),a=uf(i,rf(t,n),r);return a>0?{w:a,palm:Tl(lf(i,r),af(h(e))),measure:e=>c(n,e),comfort:n.keys.some(e=>e.lean>0)}:null},y=new WeakMap,b=(e,r)=>{y.has(t.baked)||y.set(t.baked,new Map);let o=y.get(t.baked),s=o.get(e);if(s&&s.map===t.timeMap)return s.plan;let[c,l]=rf(t,r),u=[];for(let n=Math.max(0,c);n<=Math.min(t.frameCount-1,l);n++)uf(cf(t,e),[c,l],n)>0&&u.push(n);let d=lu(i,il[a.props[r.prop].hand],u,t=>({s:n(t).s,held:v(e,r,t)}));return o.set(e,{map:t.timeMap,plan:d}),d},x=!1,S=(e,t,n)=>{let r=g(e,t).R;return Dd(i,a,e,t,n,[r[0][1],r[1][1],r[2][1]])},C=new WeakMap,w=(e,n)=>{C.has(t.baked)||C.set(t.baked,new Map);let i=C.get(t.baked),a=i.get(e);if(a&&a.map===t.timeMap)return a.plan;let[o,s]=rf(t,n),c=new Map;x=!0;let l=[],u=()=>{let e=iu((e,t)=>l[e].grip.cost(t),(e,t)=>l[e].grip.point(t),l.map(e=>e.grip.softmin())),t=cu(l.map((t,n)=>Od(t.grip,e[n]))),n=t=>l[t].grip.arm(e[t]),r=iu((e,t)=>n(e).at(t).cost,(e,t)=>n(e).at(t).elbow,l.map((e,t)=>n(t).best.th));l.forEach((i,a)=>c.set(i.f,{roll:e[a],gate:t[a],pole:n(a).at(r[a]).pv})),l=[]};for(let n=Math.max(0,o);n<=Math.min(t.frameCount-1,s);n++){let i=uf(cf(t,e),[o,s],n)>0?r(n):null,a=i&&S(e,i.s,i.c);a?l.push({f:n,grip:a}):l.length&&u()}return l.length&&u(),x=!1,i.set(e,{map:t.timeMap,plan:c}),c},T=(e,n,r)=>{let i=m(e);if(!i||i.name===`today`)return null;let a=cf(t,e),o=a.t[0],s=a.t[a.t.length-1],[l,u]=rf(t,n);if(r>=o&&r<=s)return null;let d=Tl(lf(a,r<o?o:s),af(i.offset)),f=e=>c(n,e),p=b(e,n).get(Math.round(r<o?o:s));if(r<l||r>u){let e=nf(Math.max(0,1-(r<l?l-r:r-u)/tf));return e>.001?{w:e,palm:d,measure:f,pole:p}:null}let h=v(e,n,r);return{w:1,palm:h?{pos:I(R(d.pos,1-h.w),R(h.palm.pos,h.w)),R:qd(d.R,h.palm.R,h.w)}:d,measure:f,pole:p}},E=(e,n,r)=>{let i=cf(t,e),a=i.t[i.t.length-1],o=rf(t,n)[1];return r>o&&r-a<8?{curve:i,release:o,w:nf(1-(r-a)/8)}:null},D=(e,t,n)=>{let r=E(e,t,n);return r&&{w:r.w,palm:Tl(lf(r.curve,r.release),af(h(e))),measure:e=>c(t,e),pole:b(e,t).get(r.release)}};return{lead:(e,n,r,i)=>{for(let[o,c]of s){let s=a.props?.[c.prop]?.hand===e?T(o,c,n)??D(o,c,n):null;if(s)return s;let l=a.props?.[c.prop]?.hand===e?v(o,c,n):null;if(l)return{...l,pole:b(o,c).get(n)};let u=e===`l`&&r&&!x?E(o,c,n):null,d=e===`l`&&r&&!x?uf(cf(t,o),rf(t,c),n)||(u?.w??0):0,f=d>0?S(o,r,i):null,p=f&&w(o,c).get(u?u.release:n),m=p?.roll??f?.softmin();if(f)return kd(f,d,m,p?.gate??Od(f,m),p?.pole??f.arm(m).best.pole)}return null},attach:h,attaching:e=>u.has(e),plainFrame:n,carryOn:g,strainOn:_,span:e=>rf(t,a.objects[e]),firstKey:e=>{let n=Math.min(...a.objects[e].keys.map(e=>e.f));return t.timeMap?Math.round(t.timeMap(n)):n},grips:()=>s.map(([e,t])=>{let n=m(e);return n&&{id:e,hand:a.props[t.prop].hand,name:n.name,cost:n.cost,today:n.today}}).filter(Boolean)}}var pf=9.8,mf=.03,hf=.25,gf=.005,_f=[`prop`,`follow`,`pivot`,`axis`,`channel`],vf=e=>!!e&&typeof e==`object`&&!Array.isArray(e)&&_f.every(t=>e[t]===void 0)&&(e.keys!==void 0||e.fall!==void 0),yf=e=>e?.fall===void 0?[]:Array.isArray(e.fall)?e.fall:[e.fall],bf=(e,t)=>e?.objects?.[t]??Ml(e)[t]??null,xf=(e,t)=>Object.keys(e?.objects??{}).filter(n=>n===t||e.objects[n].ancestors?.includes(t));function Sf(e){let t=[];for(let n of[-1,1])for(let r of[0,2])for(let i of[-1,1])t.push(I(e.pos,W(e.R,[n*e.half[0],r*e.half[1],i*e.half[2]])));return t}var Cf=e=>Math.max(...Sf(e).map(e=>e[1])),wf=(e,t)=>{let n=W(G(e.R),L([t[0],e.pos[1]+e.half[1],t[2]],e.pos));return Math.abs(n[0])<=e.half[0]&&Math.abs(n[2])<=e.half[2]};function Tf(e,t){let n=new Set;for(let[r,i]of Object.entries(t?.objects??{}))[r,...i.ancestors??[]].some(t=>Sl(e.objects?.[t]))&&n.add(r);return n}function Ef(e,t,n){let r=bf(e,t);return xf(e,t).map(t=>({id:t,...Tl(n,El(r,e.objects[t])),half:e.objects[t].half}))}function Df(e,t,n,r,i=null){let a=Ef(t,n,r),o=new Set(a.map(e=>e.id)),s=Tf(e,t);if(!a.length)return{support:null,top:0,h:0};let c=Math.min(...a.flatMap(e=>Sf(e).map(e=>e[1]))),l=a.flatMap(Sf).reduce((e,t)=>I(e,t),[0,0,0]).map(e=>e/(a.length*8)),u=(i?xf(t,i):Object.keys(t.objects)).filter(e=>!o.has(e)&&!s.has(e)),d=null;for(let e of u){let n=t.objects[e],r=Cf(n);wf(n,l)&&r<=c+gf&&(!d||r>d.top)&&(d={support:e,top:r})}if(!d&&i)for(let e of u){let n=Cf(t.objects[e]);n<=c+gf&&(!d||n>d.top)&&(d={support:e,top:n})}return d??={support:null,top:0},{...d,h:Math.max(0,c-d.top)}}function Of(e,t,n,r,i,a,o){let s=Df(e,t,n,r,a.onto??null),c=s.h,l=Math.sqrt(2*c/pf),u=Math.min(.6,Math.max(0,a.bounce??hf)),d=Math.min(u*pf*l,Math.sqrt(2*pf*mf)),f=2*d/pf,p={pos:[r.pos[0],r.pos[1]-c,r.pos[2]],R:r.R};return{t0:i,land:i+l*o,end:i+(l+f)*o,h:c,support:s.support,top:s.top,at:e=>{let t=(e-i)/o;if(t<=0)return r;let n=t<=l?-.5*pf*t*t:t<=l+f?-c+d*(t-l)-.5*pf*(t-l)**2:-c;return{pos:[r.pos[0],r.pos[1]+Math.min(0,n),r.pos[2]],R:r.R}},rest:p}}function kf(e,t,n=-1/0,r=1/0){let i=yl(e)?[]:[...e.keys??[]].sort((e,t)=>e.f-t.f),a=yf(e).map(e=>({...e,t:t(e.at)})).filter(e=>e.t>=n&&e.t<r).sort((e,t)=>e.t-t.t),o=[],s=[],c=0;for(let e of i){for(;c<a.length&&a[c].t<t(e.f);)s.length&&o.push({run:s}),s=[],o.push({fall:a[c++]});s.push(e)}for(s.length&&o.push({run:s});c<a.length;)o.push({fall:a[c++]});return o}function Af(e,t,n,r,i=!0){let a=n;for(let n of e)if(n.run){let{t:e}=n.curve;if(t<e[0])return a;if(t<=e[e.length-1])return lf(n.curve,t);a=lf(n.curve,e[e.length-1])}else{if(t<n.fall.t)return a;let e=i?n.plan??=r(a,n.fall):r(a,n.fall);if(t<e.end)return e.at(t);a=e.rest}return a}var jf=new WeakMap;function Mf(e,t,n,r,i){jf.has(e.scene)||jf.set(e.scene,new Map);let a=jf.get(e.scene),o=`${t}|${i}|${e.grab}|${e.release}`,s=a.get(o);if(s&&s.map===r&&s.o===n&&s.spec===e.spec)return s.events;let c=bf(e.scene,t),l=r??(e=>e),[u,d]=i===`before`?[-1/0,e.grab]:i===`after`?[e.release,1/0]:[-1/0,1/0],f=kf(n,l,u,d);for(let e of f)e.run&&(e.curve=of({keys:e.run},l,()=>_s(c.R),null));return a.set(o,{map:r,o:n,spec:e.spec,events:f}),f}var Nf=(e,t)=>(n,r)=>Of(e.spec,e.scene,t,n,r.t,r,e.spec.fps??30);function Pf(e,t,n){let r=bf(e.scene,t),i=e.spec.objects?.[t];return!r||!i?null:Af(Mf(e,t,i,e.timeMap,`all`),n,{pos:r.pos,R:r.R},Nf(e,t))}function Ff(e,t,n,r,i){let a=bf(e.scene,t);return!a||!yf(n).length?a&&{pos:a.pos,R:a.R}:Af(Mf({...e,grab:i},t,n,e.timeMap,`before`),r,{pos:a.pos,R:a.R},Nf(e,t))}function If(e,t,n,r,i,a){let o=yf(n).length?Mf({...e,release:i},t,n,e.timeMap,`after`):[];return o.length?Af(o,r,a,Nf(e,t),!1):null}function Lf(e,t){let n=il[t],r=e.restWorldPos,i=e.index;return B(L(r[i[`${n}ForeArm`]],r[i[`${n}Arm`]]))+B(L(r[i[`${n}Hand`]],r[i[`${n}ForeArm`]]))}var Rf=new Set([`body`]);function zf(e,t,n,r,i,a){let o=e.spec.anchors?.[t];if(!o)throw Error(`MOTION_SPEC_INVALID: unknown anchor "${t}"`);let s=Gf(e,o,t,n,r,i,a),c=Rf.has(o.kind)&&e.keepOut;return c?vc(c.body,e.sk,n,vc(c.body,e.sk,n,s,yc,c.skip),yc,c.skip):s}var Bf=[`r`,`l`],Vf={l:`left`,r:`right`};function Hf(e,t,n,{s:r,diag:i,c:a},o){let s=i.frame,c=()=>e.restingAt?.(t.object,s)??e.objectsAt(s)[t.object]??Ml(e.scene)[t.object],l=e.objectPose&&s!==void 0?e.objectHand(t.object,s):null;if(o&&l&&Bf.indexOf(l)>Bf.indexOf(o))throw Error(`MOTION_SPEC_INVALID: anchor "${n}" is on "${t.object}", which the ${Vf[l]} hand holds at f${s}; the right arm is solved before the left, so the right hand cannot follow it. Carry "${t.object}" in the right hand (a right-hand prop) and put the left hand on it, or give the right hand another anchor`);let u=!e.objectPose||s===void 0||l===o?c():Wf(e,n,t.object,s,()=>e.objectPose(t.object,s,{s:r,diag:i,c:a}));if(!u)throw Error(`MOTION_SPEC_INVALID: anchor "${n}" names unknown object "${t.object}"`);return u}var Uf=16;function Wf(e,t,n,r,i){if((e.nest??0)>=Uf)throw Error(`MOTION_SPEC_INVALID: anchor "${t}" on "${n}" at f${r} reads a pose that needs this frame solved again (an anchor and carry loop); anchor the hand on a point that does not ride on the hand it moves`);e.nest=(e.nest??0)+1;try{return i()}finally{e.nest--}}function Gf(e,t,n,r,i,a,o){let{sk:s}=e,c=s.index;switch(t.kind){case`world`:return t.p.slice();case`body`:return I(a.root??r.P[c.Hips],W(fs(a.yaw??0),t.p));case`bone`:return I(r.P[c[t.bone]],t.offset??[0,0,0]);case`segment`:{let e=r.P[c[t.from]],n=r.P[c[t.to]],i=t.offset??[0,0,0],a=t=>I(I(e,R(L(n,e),t)),i);if(!t.reach)return a(t.t??.5);let o=r.P[c[`${il[t.reach]}Arm`]],l=.95*Lf(s,t.reach);for(let e=t.t??.45;e>=(t.tMin??.15);e-=.01)if(B(L(a(e),o))<=l)return a(e);return a(t.tMin??.15)}case`object`:{let s=Hf(e,t,n,{s:r,diag:i,c:a},o);return I(s.pos,W(s.R,t.local??[0,0,0]))}case`landmark`:return Es(r,c.Head,s.landmarks[t.name]??(()=>{throw Error(`MOTION_SPEC_INVALID: unknown landmark "${t.name}"`)})());case`prop`:{let e=i.props?.[t.prop]?.[t.point];if(!e)throw Error(`MOTION_SPEC_INVALID: anchor "${n}" needs prop ${t.prop}.${t.point}, which is held by an arm solved later`);return I(e,t.offset??[0,0,0])}default:throw Error(`MOTION_SPEC_INVALID: anchor "${n}" has unknown kind "${t.kind}"`)}}function Kf(e,t,n,r){let{sk:i}=e;for(let[a,o]of Object.entries(e.spec.props??{})){if(o.hand!==t)continue;let e=Bs(i,n,il[t]),s=R(o.origin.map(e=>n.P[i.index[e]]).reduce((e,t)=>I(e,t),[0,0,0]),1/o.origin.length),c={};for(let[t,[n,r,i]]of Object.entries(o.points??{}))c[t]=I(s,I(R(e.d,n),I(R(e.l,r),R(e.n,i))));c.origin=s,c.axes=e,(r.props??={})[a]=c}}var qf=[`schema`,`fps`,`frames`,`label`,`keys`,`anchors`,`props`,`fits`,`objects`,`generators`,`checks`,`fix`,`use`,`channels`,`detourRadius`,`search`,`goals`,`flow`,`idle`],Jf=[`f`,`set`,`step`,`src`],Yf=[`skill`,`args`,`f0`],Xf={world:[`p`],body:[`p`],bone:[`bone`,`offset`],segment:[`from`,`to`,`t`,`tMin`,`offset`,`reach`],object:[`object`,`local`],landmark:[`name`],prop:[`prop`,`point`,`offset`]},Zf=[`hand`,`origin`,`points`],Qf=[`side`,`anchor`,`effector`,`offset`,`orient`],$f={hinge:[`pivot`,`axis`,`channel`],carry:[`prop`,`at`,`along`,`visible`,`level`,`grab`,`release`,`keys`,`fall`],switch:[`visible`,`level`],follow:[`follow`,`offset`,`aim`,`visible`,`level`],free:[`keys`,`fall`,`visible`,`level`]},ep=[`at`,`onto`,`bounce`],tp=[`f`,`pos`,`rot`,`aim`,`roll`,`lean`],np=[`type`,`f0`,`steps`,`step`,`period`,`swing`,`halfWidth`,`lift`,`heading`,`turnDistance`,`pelvisHigh`,`pelvisLow`,`firstStep`,`armSwing`,`vary`],rp=[`contacts`,`orient`,`below`,`clearance`,`appear`,`supports`,`allow`,`limits`,`mouthPoints`],ip={contacts:[`name`,`point`,`target`,`tol`,`when`],orient:[`name`,`from`,`to`,`along`,`minCos`,`when`],below:[`name`,`joint`,`ref`,`min`,`when`],clearance:[`name`,`part`,`object`,`min`,`frames`],appear:[`name`,`channel`,`joint`,`anchor`,`tol`],supports:[`object`,`part`,`tol`],allow:[`part`,`object`,`depth`]},ap=[`name`,`near`,`above`,`moved`,`still`,`speed`,`tol`,`by`,`at`,`mode`,`after`,`before`],op=[`name`,`distance`,`position`,`frames`,`every`],sp=[`joint`,`bone`,`prop`,`anchor`,`landmark`,`object`],cp=[`essentials`,`spec`,`skills`,`anchors`,`props`,`objects`,`checks`,`goals`,`probes`,`channels`,`refs`,`fix`,`examples`],lp=e=>e.flatMap(e=>[`${e}_l`,`${e}_r`]),up=new Set([`root`,...lp([`foot`,`knee`,`hand`,`elbow`])]),dp=new Set(lp([`knee`,`elbow`])),fp=new Set([`yaw`,`pitch`,`roll`,`spine_yaw`,`spine_pitch`,`spine_roll`,`head_yaw`,`head_pitch`,`head_roll`,`arm_rest`,`arm_hang`,...lp([`fyaw`,`fpitch`,`armw`,`wtwist`,`wflex`,`aswing`,`abend`])]),pp=new Set(lp([`fingers`])),mp=new Set([`arm_hang`]),hp=[`relaxed`,`fist`,`grip`,`cigarette`,`point`],gp=[[/^(armw)_[lr]$/,0,1,`0 = FK arm, 1 = IK to the hand target`],[/^arm_hang$/,0,1,`1 = a free FK forearm hangs plumb`],[/^w_.+_[lr]$/,0,1,`a hand-target weight; the weights of one hand add up to at most 1`],[/^wtwist_[lr]$/,-85,85,`wrist twist about the forearm in degrees`],[/^wflex_[lr]$/,-70,70,`wrist flex about the knuckle line in degrees`],[/^fpitch_[lr]$/,-60,90,`toe-down pitch in degrees: + lifts the heel (the toes stay flat), - lifts the toes`],[/^(pitch|spine_pitch|head_pitch)$/,-120,120,`degrees, + bends forward`],[/^(roll|spine_roll|head_roll)$/,-90,90,`degrees`]],_p=e=>gp.find(([t])=>t.test(e))??null,vp={yaw:`yaw 0 faces +Z and + turns toward +X`,fyaw:`foot heading in degrees, as yaw`,pole:`a body-frame direction (turned by the root yaw only): +z forward, +x the character's left, +y up`,foot:`the ANKLE target in world metres (standing: 0.087 X Bot, 0.105 Y Bot)`,hand:`the WRIST target in world metres`,root:`the hips joint in world metres (standing: 1.03 X Bot, 0.99 Y Bot)`},yp={root:vp.root,yaw:`degrees; ${vp.yaw}`,pitch:`whole-body pitch, degrees`,roll:`whole-body roll, degrees`,spine_yaw:`degrees`,spine_pitch:`degrees, + bends forward`,spine_roll:`degrees`,head_yaw:`degrees`,head_pitch:`degrees, + looks down`,head_roll:`degrees`,arm_rest:`FK arms down from the T-pose (default 72)`,arm_hang:`1 = a free FK forearm hangs plumb (standIdle and walks key it)`,foot:vp.foot,fyaw:vp.fyaw,fpitch:`toe-down pitch, degrees, + heel up`,knee:`knee pole, ${vp.pole}`,armw:`0 = FK arm, 1 = IK to hand_* / the anchors`,hand:vp.hand,elbow:`elbow pole, ${vp.pole}`,wtwist:`wrist twist, degrees`,wflex:`wrist flex, degrees`,aswing:`FK arm swing, degrees, + forward`,abend:`FK elbow bend, degrees`,fingers:`{ preset: weight 0..1 }`},bp=e=>e.replace(/_[lr]$/,``),xp=[[[`frames`,`when`,`range`,`f`,`from`,`within`,`during`,`at`],[`when`,`frames`,`at`,`f`]],[[`max`,`maxDist`,`distance`,`tolerance`,`limit`],[`tol`,`min`]]];function Sp(e,t){for(let[n,r]of xp){let i=n.includes(e)&&r.find(n=>t.includes(n)&&n!==e);if(i)return`; did you mean "${i}"?`}return Tp(e,t,Math.max(2,Math.floor(e.length/3)))}var Cp=e=>Array.isArray(e)&&e.length===3&&e.every(Number.isFinite),Y=e=>JSON.stringify(e)?.slice(0,60);function wp(e,t){let n=Array.from({length:e.length+1},(e,n)=>[n,...Array(t.length).fill(0)]);for(let e=1;e<=t.length;e++)n[0][e]=e;for(let r=1;r<=e.length;r++)for(let i=1;i<=t.length;i++)n[r][i]=Math.min(n[r-1][i]+1,n[r][i-1]+1,n[r-1][i-1]+(e[r-1]===t[i-1]?0:1));return n[e.length][t.length]}function Tp(e,t,n=Math.max(3,Math.floor(e.length/3))){let r=null,i=1/0;for(let n of t){let t=wp(e,n);t<i&&(r=n,i=t)}return r&&i<=n?`; did you mean "${r}"?`:``}var Ep={pelvis:`Hips`,hip:`Hips`,hips:`Hips`,root:`Hips`,chest:`Spine2`,upperchest:`Spine2`,torso:`Spine1`,belly:`Spine`,abdomen:`Spine`,neck:`Neck`,head:`Head`},Dp={hand:`Hand`,wrist:`Hand`,foot:`Foot`,ankle:`Foot`,toe:`ToeBase`,toes:`ToeBase`,ball:`ToeBase`,arm:`Arm`,upperarm:`Arm`,forearm:`ForeArm`,lowerarm:`ForeArm`,elbow:`ForeArm`,shoulder:`Shoulder`,clavicle:`Shoulder`,thigh:`UpLeg`,upleg:`UpLeg`,upperleg:`UpLeg`,leg:`Leg`,lowerleg:`Leg`,shin:`Leg`,calf:`Leg`,knee:`Leg`},Op={l:`Left`,left:`Left`,r:`Right`,right:`Right`},kp=e=>e.toLowerCase().replace(/[\s_.-]+/g,``);function Ap(e,t){let n=t.toLowerCase();return e.names.find(e=>e.toLowerCase()===n)??null}function jp(e,t){let n=kp(t);if(Ep[n])return Ap(e,Ep[n]);let r=t.toLowerCase().trim(),i=/^(l|r|left|right)[\s_.-]+(.+)$/.exec(r)??/^(left|right)(.+)$/.exec(r),a=/^(.+?)[\s_.-]+(l|r|left|right)$/.exec(r)??/^(.+?)(left|right)$/.exec(r),[o,s]=i?[i[1],i[2]]:a?[a[2],a[1]]:[];return o?Ap(e,`${Op[o]}${Dp[kp(s)]??kp(s)}`):null}function Mp(e,t){if(typeof t!=`string`||!t)return{bone:null,hint:``};if(e.index[t]!==void 0)return{bone:t,hint:``};let n=t.replace(/^mixamorig\d*:/i,``),r=Ap(e,t)??Ap(e,n)??jp(e,n);return r?{bone:r,hint:``}:{bone:null,hint:Tp(n,e.names)}}function Np(e,t,n,r){return!t||t.index[r]!==void 0||(e(`${n} names unknown bone "${r}"${Tp(String(r),t.names)}`),!1)}function Pp(e,t,n,r,{groups:i=!1}={}){let a=Object.keys(t?.objects??{});if(!a.length||a.includes(r))return!0;let o=am(t,r);return o.length&&i?!0:(o.length?e(`${n} names "${r}", a group (Empty) with no body of its own; its parts are ${o.join(`, `)}. Name one part`):e(`${n} names object "${r}", which is not in the scene${Tp(String(r),[...new Set([...a,...a.flatMap(e=>t.objects[e].ancestors??[]),...Object.keys(t.others??{})])])}`),!1)}function Fp(e,t,n,r,i){let[a,o]=String(i).split(/:(.*)/s);if(a===`joint`)return Np(t,n,r,o);if(a===`anchor`)return e.anchors?.[o]?!0:t(`${r} "${i}" names no anchor`);if(a===`prop`){let[n,a]=(o??``).split(`.`);return e.props?.[n]?.points?.[a]||a===`origin`?!0:t(`${r} "${i}" names no prop point`)}t(`${r} "${i}" must be joint:<Bone>, prop:<prop>.<point> or anchor:<name>`)}var Ip={joint:`joint:<Bone>`,bone:`bone:<Bone>`,prop:`prop:<prop>.<point>`,anchor:`anchor:<name>`,landmark:`landmark:mouth`,object:`object:<id>[.center|.top|.base]`};function Lp(e){let t=/^([a-z]+):(.+)$/s.exec(String(e));if(!t)return null;let[,n,r]=t;if(n===`prop`){let[e,t]=r.split(`.`);return{kind:n,name:e,point:t??``}}if(n===`object`){let e=/^(.+)\.(center|top|base)$/s.exec(r);return{kind:n,name:e?e[1]:r,point:e?e[2]:null}}return{kind:n,name:r,point:null}}function Rp(e,t){let n=[1/0,1/0,1/0],r=[-1/0,-1/0,-1/0];for(let t of e)for(let e of[-1,1])for(let i of[0,2])for(let a of[-1,1]){let o=I(t.pos,W(t.R,[e*t.half[0],i*t.half[1],a*t.half[2]]));for(let e=0;e<3;e++)n[e]=Math.min(n[e],o[e]),r[e]=Math.max(r[e],o[e])}let i=[(n[0]+r[0])/2,(n[1]+r[1])/2,(n[2]+r[2])/2];return t===`top`?[i[0],r[1],i[2]]:t===`base`?[i[0],n[1],i[2]]:i}function zp(e,t,n){let r=e.frames?.[t-(e.f0??0)],i=Lp(n);if(!r||!i)return null;let{s:a,diag:o,c:s}=r,c=e.ctx.sk;switch(i.kind){case`joint`:case`bone`:{let{bone:e}=Mp(c,i.name);return e?a.P[c.index[e]].slice():null}case`prop`:{let e=o.props?.[i.name]?.[i.point];return Array.isArray(e)?e.slice():null}case`anchor`:return e.ctx.spec.anchors?.[i.name]?zf(e.ctx,i.name,a,{...o,frame:t},s):null;case`landmark`:return c.landmarks?.[i.name]?Es(a,c.index.Head,c.landmarks[i.name]):null;case`object`:{let n=ym(e,i.name,t);return n?Rp(n,i.point):null}default:return null}}function Bp(e,t,n,r){let i=e=>{let t=Lp(e);return t?.kind===`object`&&t.point===null?t:null},a=i(r)?[n,i(r)]:i(n)?[r,i(n)]:null;if(a){let n=zp(e,t,a[0]),r=ym(e,a[1].name,t);return n&&r?Math.max(0,Math.min(...r.map(e=>fu(n,e)))):null}let o=zp(e,t,n),s=zp(e,t,r);return o&&s?B(L(o,s)):null}function Vp(e,{sk:t,scene:n},r,i){if(typeof r!=`string`||!r)return``;let a=r.replace(/\.(center|top|base)$/,``),[o,s]=r.split(`.`),c=t&&(i.includes(`joint`)||i.includes(`bone`))?Mp(t,r).bone:null,l=[i.includes(`object`)&&(n?.objects?.[a]||am(n,a).length)&&`object:${r}`,c&&`${i.includes(`joint`)?`joint`:`bone`}:${c}`,i.includes(`anchor`)&&e.anchors?.[r]&&`anchor:${r}`,i.includes(`prop`)&&e.props?.[o]&&(s===`origin`||e.props[o].points?.[s])&&`prop:${r}`,i.includes(`landmark`)&&r===`mouth`&&`landmark:mouth`].filter(Boolean);return l.length?`; did you mean ${l.map(e=>`"${e}"`).join(` or `)}?`:``}function Hp(e,t,{sk:n,scene:r},i,a,o=sp){let s=Lp(a),c=`${i} "${a}"`;if(!s||!o.includes(s.kind))return t(`${c} must be ${o.map(e=>Ip[e]).join(`, `)}${s?``:Vp(e,{sk:n,scene:r},a,o)}`),!1;if(s.kind===`joint`||s.kind===`bone`){let{bone:e,hint:r}=n?Mp(n,s.name):{bone:s.name};return e||t(`${c}: unknown bone${r}`),!!e}if(s.kind===`prop`){let n=!!(e.props?.[s.name]&&(s.point===`origin`||e.props[s.name].points?.[s.point]));return n||t(`${c}: spec.props has no point ${s.name}.${s.point}`),n}return s.kind===`anchor`?(e.anchors?.[s.name]||t(`${c}: no anchor "${s.name}" in spec.anchors${Tp(s.name,Object.keys(e.anchors??{}))}`),!!e.anchors?.[s.name]):s.kind===`landmark`?(s.name!==`mouth`&&t(`${c}: the only landmark is "mouth"`),s.name===`mouth`):Pp(t,r,c,s.name,{groups:!0})}var Up=[0,1,0];function Wp(e,t,n=`up`,r){if(Array.isArray(n))return V(n);if(n===`face`){let{sk:n}=e.ctx;return V(Ds(n,e.frames[t-(e.f0??0)].s,n.index.Head,[0,0,1]))}let i=n===`up`?null:zp(e,t,n),a=i?L(i,r):Up;return B(a)>1e-9?V(a):Up}function Gp(e,t,n){let r=e.f0??0,i=Math.max(r,Math.min(r+e.frames.length-1,n)),a=zp(e,i,t.follow);if(!a)return null;let o=vs(Qs(Up,Wp(e,i,t.aim,a)));return{pos:I(a,W(o,t.offset??[0,0,0])),R:o}}function Kp(e,t){let n=t.length,r=Array(n).fill(0);for(let i=1;i<n-1;i++){let n=e[i]-e[i-1],a=e[i+1]-e[i],o=(t[i]-t[i-1])/n,s=(t[i+1]-t[i])/a;if(o*s>0){let e=2*a+n,t=a+2*n;r[i]=(e+t)/(e/o+t/s)}}return r}function qp(e,t,n,r){if(e.length===1||r<=e[0])return t[0];if(r>=e[e.length-1])return t[t.length-1];let i=0;for(;r>e[i+1];)i++;let a=e[i+1]-e[i],o=(r-e[i])/a,s=o*o,c=s*o;return(2*c-3*s+1)*t[i]+(c-2*s+o)*a*n[i]+(-2*c+3*s)*t[i+1]+(c-s)*a*n[i+1]}var Jp=/^(spine|head)_(yaw|pitch|roll)$|^(aswing|abend)_[lr]$/,Yp={spine:0,head:2,arms:3},Xp=.15,Zp=6,Qp=e=>/^(spine|head)_/.test(e)?[`l`,`r`]:/^(aswing|abend)_([lr])$/.test(e)?[e.slice(-1)]:[],$p=e=>/^spine_/.test(e)?`spine`:/^head_/.test(e)?`head`:/^(aswing|abend)_[lr]$/.test(e)?`arms`:null;function em(e){if(e===!1)return{smooth:!1,lag:{spine:0,head:0,arms:0}};let t=e??{},n=t.lag===!1?0:t.lag,r=typeof n==`number`?{spine:n,head:n,arms:n}:{...Yp,...n??{}};return{smooth:t.smooth!==!1,lag:r}}function tm(e,t){let n=t.length,r=Array(n).fill(0);for(let i=1;i<n-1;i++)t[i]!==t[i-1]&&t[i]!==t[i+1]&&(r[i]=(t[i+1]-t[i-1])/(e[i+1]-e[i-1]));for(let i=0;i<n-1;i++){let n=e[i+1]-e[i],a=Math.min(t[i],t[i+1]),o=Math.max(t[i],t[i+1]),s=Math.min(Zp,Xp*(o-a));for(let c=0;c<12;c++){let c=0;for(let s=1;s<16;s++){let l=qp([e[i],e[i+1]],[t[i],t[i+1]],[r[i],r[i+1]],e[i]+n*s/16);c=Math.max(c,l-o,a-l)}if(c<=s+1e-9)break;r[i]*=.7,r[i+1]*=.7}}return r}var nm=e=>Array.isArray(e)?`vec`:e&&typeof e==`object`?`map`:`num`;function rm(e,t,n=em()){let r=new Map;for(let t of[...e].sort((e,t)=>e.f-t.f))for(let[e,n]of Object.entries(t.set??{}))r.has(e)||r.set(e,[]),r.get(e).push({f:t.f,value:n,step:t.step?.includes(e)});let i={},a={};for(let[e,o]of r){let r=[...new Map(o.map(e=>[e.f,e])).values()],s=nm(r[0].value),c=s===`vec`?r[0].value.length:0,l=s===`num`?[r.map(e=>e.value)]:s===`vec`?Array.from({length:c},(e,t)=>r.map(e=>e.value[t])):[...new Set(r.flatMap(e=>Object.keys(e.value)))].map(e=>({name:e,y:r.map(t=>t.value[e]??0)})),u=r.map(e=>e.f),d=n.smooth&&Jp.test(e),f=n.lag[$p(e)]??0,p=e=>f>0?e-f*Math.min(1,(t-1-e)/(2*f)):e,m=(e,t=!0)=>{let n=d&&t?tm(u,e):Kp(u,e);return i=>{let a=t?p(i):i;for(let t=1;t<r.length;t++)if(r[t].step&&a>=u[t-1]&&a<u[t])return e[t-1];return qp(u,e,n,a)}},h=Array(t);if(s===`num`){let e=m(l[0]);for(let n=0;n<t;n++)h[n]=e(n)}else if(s===`vec`){let e=l.map(m);for(let n=0;n<t;n++)h[n]=e.map(e=>e(n))}else{let e=l.map(({name:e,y:t})=>[e,m(t)]);for(let n=0;n<t;n++)h[n]=Object.fromEntries(e.map(([e,t])=>[e,t(n)]))}if(i[e]=h,s===`num`&&(d||f>0)&&Qp(e).length){let n=m(l[0],!1);a[e]=Array.from({length:t},(e,t)=>n(t))}}for(let[e,t]of Object.entries(a)){let n=Qp(e).map(e=>i[`armw_${e}`]).filter(Boolean);n.length&&(i[e]=i[e].map((e,r)=>{let i=Math.min(1,4*Math.max(0,...n.map(e=>e[r])));return e+(t[r]-e)*i*(2-i)}))}return i}var im=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,n[t]]));function am(e,t){let n=e?.objects??{};return Object.keys(n).filter(e=>e===t||n[e].ancestors?.includes(t))}function om(e,t){return yl(e)&&t>=(e.grab??0)&&(e.release===void 0||t<=e.release)}function sm(e,t){return e?.objects?.[t]??Ml(e)[t]??null}function cm(e,t,n){return[n,...t?.objects?.[n]?.ancestors??Ml(t)[n]?.ancestors??[]].find(t=>Sl(e.objects?.[t]))??null}function lm(e,t){let n=t=>e.timeMap?Math.round(e.timeMap(t)):t;return[n(t.grab??0),t.release===void 0?e.frameCount-1:n(t.release)]}var um=(e,t,n)=>n.at===void 0&&n.along===void 0&&(!e?.objects?.[t]&&!!Ml(e)[t]||n.grab!==void 0),dm=new WeakMap,fm=new WeakMap,pm=e=>({spec:e.ctx.spec,scene:e.ctx.scene,timeMap:e.timeMap});function mm(e,t,n){let{spec:r,scene:i}=e.ctx,a=cm(r,i,t),o=r.objects?.[a];if(!yl(o))return null;let s=Ff(pm(e),a,o,n,lm(e,o)[0]);return s&&(a===t?s:Tl(s,El(sm(i,a),sm(i,t))))}function hm(e,t){let n=e.frames[t-(e.f0??0)];if(n)return n;dm.has(e)||dm.set(e,new Map);let r=dm.get(e);return r.has(t)||r.set(t,Y_(e.ctx,im(e.baked,t),t)),r.get(t)}function gm(e,t,n,r,i){let{sk:a,spec:o,scene:s}=e.ctx;if(!um(s,t,n))return wl(a,o,i,n);if(n.keys?.length&&e.ctx.hold)return e.ctx.hold.attaching(t)?sm(s,t):Tl(wl(a,o,i,{prop:n.prop}),e.ctx.hold.attach(t));let c=e=>wl(a,o,e,{prop:n.prop}),l=lm(e,n)[0];return Tl(c(i),El(c(l===r?i:hm(e,l).s),mm(e,t,l)??sm(s,t)))}function _m(e,t,n,r){let i=hm(e,r);fm.has(i)||fm.set(i,new Map);let a=fm.get(i);return a.has(t)||a.set(t,gm(e,t,n,r,i.s)),a.get(t)}function vm(e,t,n,r=null){let{spec:i,scene:a}=e.ctx,o=Sl(i.objects?.[t])?i.objects[t]:void 0,s=sm(a,t);if(bl(o))return Gp(r?{...e,f0:n,frames:[r]}:e,o,n);if(yl(o)&&(s||!um(a,t,o))){let[i,a]=lm(e,o),c=Math.max(i,Math.min(n,a));return n<i&&s?mm(e,t,n):(n>a?If(pm(e),t,o,n,a,_m(e,t,o,a)):null)||(r&&c===n?gm(e,t,o,n,r.s):_m(e,t,o,c))}if(!s)return null;if(vf(o))return Pf(pm(e),t,n);if(o&&a.objects[t])return e.ctx.objectsAt(n)[t];if(o){let r=am(a,t)[0],i=e.ctx.objectsAt(n)[r];return Tl(i,El(a.objects[r],s))}return{pos:s.pos,R:s.R}}function ym(e,t,n){let r=e.frames?.[n-(e.f0??0)],i=e.ctx.scene,a=am(i,t);return!r||!a.length?null:a.map(t=>{let r=xm(e,t,n);return{id:t,pos:r.pos,R:r.R,half:i.objects[t].half}})}function bm(e,t,n){let{spec:r,scene:i,sk:a}=e.ctx,o=r.objects?.[cm(r,i,t)];if(yl(o)){let[t,i]=lm(e,o);return n>=t&&n<=i?r.props?.[o.prop]?.hand??null:null}if(!bl(o))return null;let[s,c=``]=String(o.follow).split(/:(.*)/s);if(s===`prop`)return r.props?.[c.split(`.`)[0]]?.hand??null;let l=(s===`joint`||s===`bone`)&&/^(Left|Right)(Arm|ForeArm|Hand)/.exec(Mp(a,c).bone??``);return l?l[1]===`Left`?`l`:`r`:null}function xm(e,t,n,r=null){let{spec:i,scene:a}=e.ctx,o=sm(a,t),s=cm(i,a,t),c=i.objects?.[s];if(!o)return null;if(yl(c)||bl(c)||vf(c)){let t=vm(e,s,n,r);return t&&Tl(t,El(sm(a,s),o))}return s?a.objects[t]?e.ctx.objectsAt(n)[t]??o:s===t?vm(e,t,n):Tl(vm(e,s,n),El(sm(a,s),o)):{pos:o.pos,R:o.R}}var Sm=.06,Cm=.045,wm=.3,Tm=30,Em=180/Math.PI,Dm=2,Om=[0,1,0],km=(e,t,n)=>[[e[0],t[0],n[0]],[e[1],t[1],n[1]],[e[2],t[2],n[2]]],Am=(e,t)=>L(e,R(t,z(e,t)));function jm(e,t,n){let r=null;for(let i of e.fits??[]){let e=t[`w_${i.anchor}_${i.side}`]??0;i.side===n&&i.orient!==!1&&e>1e-4&&(!r||e>r.w)&&(r={fit:i,w:e})}return r&&{...r,w:r.w*Math.min(1,Math.max(0,t[`armw_${n}`]??0))}}function Mm(e,t,n,r,i){if(i.prop){let a=t.props?.[i.prop];if(!a)return null;let o=Bs(e,n,r),s=R(a.origin.map(t=>n.P[e.index[t]]).reduce(I,[0,0,0]),1/a.origin.length),[c,l,u]=i.point===`origin`?[0,0,0]:a.points?.[i.point]??[0,0,0];return I(s,I(R(o.d,c),I(R(o.l,l),R(o.n,u))))}let a=i.joints??[`${r}HandIndex2`,`${r}HandMiddle2`];return R(a.map(t=>n.P[e.index[t]]).reduce(I,[0,0,0]),1/a.length)}function Nm(e,t){let{spec:n}=e,r=e.scene?.objects?.[t];for(let e of[t,...r?.ancestors??[]]){let t=n.objects?.[e];if(t?.prop)return{key:e,entry:t,side:n.props?.[t.prop]?.hand??null}}return null}function Pm(e,t,n,r){let i=e.spec.objects?.[t],a=e.scene?.objects?.[t]?.half;if(!e.hold?.span||!i?.prop||e.spec.props?.[i.prop]?.hand!==n||!i.keys?.length||i.grab===void 0||i.at!==void 0||i.along!==void 0||a&&Lm(a)>=0)return null;let[o]=e.hold.span(t);return o>=1&&r<=Math.max(o,e.hold.firstKey(t)-1)?Math.min(r,o-1):null}function Fm(e,t,n,r,i,a){let o=e.scene?.objects??{},s=i?.kind===`object`?am(e.scene,i.object):Object.keys(o),c=null;for(let i of s){let s=o[i]?.half;if(!s)continue;let l=Pm(e,Nm(e,i)?.key,n,t),u=e.objectPose?.(i,l??t,l===null?a:null)??o[i];if(!u?.R)continue;let d={pos:u.pos,R:u.R,half:s},f=fu(r,d);(!c||f<c.d)&&(c={box:d,d:f,id:i})}let l=c&&Nm(e,c.id);return!c||l?.side===n&&Pm(e,l.key,n,t)===null?null:i?.kind===`object`||c.d<=Sm?c.box:null}var Im=[0,1,2];function Lm(e){let t=Im.reduce((t,n)=>e[n]>e[t]?n:t,0);return Im.filter(e=>e!==t).every(t=>e[t]<Cm)?t:-1}function Rm(e,t,n,r,i){let a=e===`Right`,o=W(fs(r??0),[a?1:-1,0,0]),s=Math.abs(t[1]),c=Am(I(R(Om,1-s),R(o,s)),t),l=V(B(c)>.001?c:Am(o,t)),u=i?Am(i,t):null;if(!u||B(u)<=wm)return km(t,l,as(t,l));let d=e=>Math.acos(Math.max(-1,Math.min(1,z(e,n))))*Em-(z(e,l)>0?Tm:0),f=V(u),p=d(f)<=d(R(f,-1))?f:R(f,-1);return km(t,p,as(t,p))}function zm(e,t,n){let r=[e[0][0],e[1][0],e[2][0]],i=[e[0][1],e[1][1],e[2][1]],a=Math.atan2(z(as(t,i),r),z(t,i))*Em,[o,s]=wc.twist,c=Math.min(s,Math.max(o,n+a))-n;if(Math.abs(c-a)<1e-6)return e;let l=W(ms(r,c),t);return km(r,l,as(r,l))}function Bm(e,t,n,r,i,a,o,s){if(Math.abs(a[`wtwist_${i}`]??0)>.001||Math.abs(a[`wflex_${i}`]??0)>.001)return;let c=jm(e.spec,a,i);if(!c||c.w<.001||Object.keys(e.spec.objects??{}).some(t=>e.spec.objects[t]?.prop&&e.objectHand?.(t,o)===i&&Pm(e,t,i,o)===null))return;let l={s:n,diag:s,c:a},u=e.spec.anchors?.[c.fit.anchor];if(u?.kind===`prop`)return;let d=Fm(e,o,i,I(zf(e,c.fit.anchor,n,s,a,i),c.fit.offset??[0,0,0]),u,l),f=d&&Mm(t,e.spec,n,r,c.fit.effector??{});if(!f)return;let p=n=>({pos:Mm(t,e.spec,n,r,c.fit.effector??{}),R:(({d:e,l:t,n})=>km(e,t,n))(Bs(t,n,r))}),m=t.index,h=m[`${r}Arm`],g=m[`${r}ForeArm`],_=m[`${r}Hand`],v=Lm(d.half),y=v>=0?W(d.R,Im.map(e=>+(e===v))):null,b=Bs(t,n,r),x=V(Am(b.l,b.d)),S=V(L(n.P[_],n.P[g])),C=U(n.R[g],U(G(t.restWorldRot[g]),t.restWorldRot[_])),w=Rc(C,n.R[_],S,W(U(C,G(n.R[_])),b.l)).twist,{goal:T,plane:E,wristAt:D}=Xc(t,n,r,{pos:f,R:zm(Rm(r,b.d,x,a.yaw,y),x,w)},p(n),c.w,`palm`),ee={twist:0,flex:0,dev:0};for(let e=0;e<Dm;e++)Rs(t,n,h,g,_,D(e?n.R[_]:T),E,Ec,`elbow`),ee=Jc(t,n,r,_,g,T);s[`grip_${i}`]={w:c.w,...ee}}var Vm={period:3.8,deg:.8},Hm={yaw:.9,pitch:.6},Um={period:5.6,m:.012,list:1.4},Wm=.5,Gm=1e-4,Km=2*Math.PI,qm=e=>e*e*(3-2*e),Jm=(e,t)=>Array.isArray(e)?e.some((e,n)=>Math.abs(e-t[n])>Gm):e&&typeof e==`object`?Object.keys({...e,...t}).some(n=>Math.abs((e[n]??0)-(t?.[n]??0))>.001):Math.abs((e??0)-(t??0))>.01;function Ym(e,t){let n=2166136261;for(let t=0;t<e.length;t++)n=Math.imul(n^e.charCodeAt(t),16777619);let r=n>>>0;return Array.from({length:t},()=>{r=r+1831565813>>>0;let e=Math.imul(r^r>>>15,r|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296*Km})}function Xm(e,t,n,r){let i=Array(n).fill(!1),a=Object.keys(e);i[0]=!0;for(let t=1;t<n;t++)a.some(n=>Jm(e[n][t],e[n][t-1]))&&(i[t]=i[t-1]=!0);let o=a.filter(e=>/^(armw_[lr]|w_.+_[lr])$/.test(e));for(let t=0;t<n;t++)o.some(n=>e[n][t]>.001)&&(i[t]=!0);for(let e of Object.values(t.objects??{}))if(Number.isFinite(e?.grab))for(let t=Math.max(0,e.grab);t<Math.min(n,Number.isFinite(e.release)?e.release:n);t++)i[t]=!0;for(let e of t.goals??[]){let t=Array.isArray(e?.at)?e.at:null;if(!(e?.still===void 0||!t?.length))for(let e=Math.max(0,Math.round(t[0]));e<=Math.min(n-1,Math.round(t[t.length-1]));e++)i[e]=!0}let s=Math.max(1,Math.round(Wm*r)),c=Array(n).fill(1/0);for(let e=0,t=-1/0;e<n;e++)i[e]&&(t=e),c[e]=e-t;for(let e=n-1,t=1/0;e>=0;e--)i[e]&&(t=e),c[e]=Math.min(c[e],t-e);return c.map(e=>qm(Math.min(1,e/s)))}function Zm(e,t,n,r){let i={},a=Math.max(1,Math.round(Wm*r));for(let r of[`l`,`r`]){let o=Object.keys(e).filter(e=>e===`armw_${r}`||RegExp(`^w_.+_${r}$`).test(e)),s=Array.from({length:n},(t,n)=>o.some(t=>e[t][n]>.001));for(let e of Object.values(t.objects??{}))if(!(!Number.isFinite(e?.grab)||t.props?.[e.prop]?.hand!==r))for(let t=Math.max(0,e.grab);t<Math.min(n,Number.isFinite(e.release)?e.release:n);t++)s[t]=!0;if(!s.some(Boolean)){i[r]=null;continue}let c=Array(n).fill(1/0);for(let e=0,t=-1/0;e<n;e++)s[e]&&(t=e),c[e]=e-t;for(let e=n-1,t=1/0;e>=0;e--)s[e]&&(t=e),c[e]=Math.min(c[e],t-e);i[r]=c.map(e=>1-qm(Math.min(1,e/a)))}return i}function Qm(e,{spec:t,sk:n,frameCount:r}){if(t.idle===!1||!e.root||!e.foot_l||!e.foot_r)return null;let i=t.fps??30,a=Xm(e,t,r,i);if(!a.some(e=>e>0))return null;let o=n.restWorldPos,s=o[n.index.Hips][1],c=o[n.index.LeftFoot][1],[l,u,d,f,p]=Ym(JSON.stringify([e.root[0].map(e=>e.toFixed(3)),(e.yaw?.[0]??0).toFixed(1)]),5),m=Array(r).fill(null);for(let t=0;t<r;t++){if(!(a[t]>0))continue;let n=t/i,r=a[t],o=m[t]={spine_pitch:-r*Vm.deg*Math.sin(Km*n/Vm.period+l),head_yaw:r*Hm.yaw*(.6*Math.sin(Km*n/7.3+u)+.4*Math.sin(Km*n/11.9+p)),head_pitch:r*Hm.pitch*Math.sin(Km*n/9.1+d)};if(![`l`,`r`].every(n=>e[`foot_${n}`][t][1]<c+.03&&Math.abs(e[`fpitch_${n}`]?.[t]??0)<2)||e.root[t][1]<s-.15)continue;let h=r*Math.sin(Km*n/Um.period+f),g=(e.yaw?.[t]??0)*Math.PI/180;o.root=[Math.cos(g)*Um.m*h,0,-Math.sin(g)*Um.m*h],o.roll=Um.list*h,o.spine_roll=-Um.list*h}return m}function $m(e,t,n){let r=t?.[n];if(!r)return e;let i={...e};for(let[t,n]of Object.entries(r))i[t]=Array.isArray(n)?Array.isArray(e[t])?e[t].map((e,t)=>e+n[t]):e[t]:(Number(e[t])||0)+n;return i}var eh=(e,t,n)=>Math.min(n,Math.max(t,e));function th(e){let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);let n=t>>>0;return()=>{n=n+1831565813>>>0;let e=Math.imul(n^n>>>15,n|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296*2-1}}var nh={noise:.02,side:.03,first:.22,second:.08,last:.22,beforeLast:.08,turn:0},rh={noise:.025,side:.012,stride:.035,second:.05,beforeLast:.06,turn:.06},ih={noise:.1,first:.1,last:.25},ah=.1,oh=3,sh=60;function ch(e,{s0:t,turn:n,seed:r}){let i=e.steps,a=eh(e.vary??1,0,2),o=th(r),s=Array.from({length:i},()=>({time:o(),length:o(),lift:o(),arm:o()})),c=o()<0?1:-1,l=e=>e%2==0?c:-c,u=Array.from({length:Math.ceil(i/2)},()=>o()),d=e=>u[Math.floor((e-1)/2)],f=Array.from({length:i},(t,n)=>n===i-1?0:n===0?e.firstStep:e.step),p=t,m=f.map(e=>{let t=Math.abs(n(p,p+e));return p+=e,Math.min(1,t/sh)}),h=i>=4,g=s.map((e,t)=>{if(i<2)return 1;let n=(t===0||t===i-1?.5:1)*(nh.noise*e.time+nh.side*l(t))+nh.turn*m[t];return t===0&&(n+=nh.first*(1-m[0])),t===1&&h&&(n+=nh.second),t===i-1&&(n+=nh.last),t===i-2&&h&&(n+=nh.beforeLast),1+a*n}),_=g.reduce((e,t)=>e+t,0),v=i*e.period,y=[];for(let e=0,t=0;e<i;e++)y.push(Math.round(t)),t+=v*g[e]/_;let b=e.period-e.swing,x=y.map((t,n)=>{if(a===0)return e.swing;let r=(n<i-1?y[n+1]:v)-t;return Math.min(r-2,Math.max(e.swing,r-b),n===i-1?e.swing+oh:1/0)}),S=f.map((e,t)=>t>0&&t<i-1),C=s.map((e,t)=>{if(!S[t])return 1;let n=rh.noise*(.7*e.length+.3*e.time)+rh.side*l(t)+rh.stride*d(t)-rh.turn*m[t];return t===1&&h&&(n-=rh.second),t===i-2&&h&&(n-=rh.beforeLast),1+a*n}),w=S.filter(Boolean).length,T=C.reduce((e,t,n)=>e+(S[n]?t:0),0);return{lift:y,air:x,inc:f.map((e,t)=>S[t]&&a>0?e*C[t]*w/T:e),height:s.map((t,n)=>e.lift*(1+a*(ih.noise*t.lift-(n===0?ih.first:0)-(n===i-1&&i>1?ih.last:0)))),arm:s.map(e=>1+a*ah*e.arm)}}var lh=18,uh=22,dh=7,fh=45,ph=1,mh=.4,hh=50,gh=15,_h=13,vh={strike:4,load:4,mid:3,toeOff:5},yh={strike:2,load:14,mid:7,toeOff:48,pow:1.8},bh=[1,2.2],xh=e=>{let t=Math.min(1,Math.max(0,((e??bh[1])-bh[0])/(bh[1]-bh[0])));return t*t*(3-2*t)},Sh=.004,Ch=8,wh=.008,Th=.35,Eh=.001,Dh=.25,Oh=[.25,.5],kh=.008,Ah=e=>e*e*e*(e*(6*e-15)+10),jh=new WeakSet,Mh=(e,t,n,r)=>I(e,W(fs(t),W(ds(n),W(fs(-t),L(r,e)))));function Nh(e,t,n){let r=e.index,i=e.restWorldPos,a=B(L(i[r.LeftLeg],i[r.LeftUpLeg])),o=B(L(i[r.LeftFoot],i[r.LeftLeg])),s=Math.min(1,Math.max(0,(_h-t)/4)),c=xh(n),l=(e,t)=>e+(t-e)*c,u=l(yh.strike,lh)+s*vh.strike,d=l(yh.load,uh)+s*vh.load,f=l(yh.mid,dh)+s*vh.mid,p=l(yh.toeOff,fh)+s*vh.toeOff;return{reach:e=>Math.sqrt(a*a+o*o+2*a*o*Math.cos(e*Math.PI/180)),hipOff:{l:L(i[r.LeftUpLeg],i[r.Hips]),r:L(i[r.RightUpLeg],i[r.Hips])},strike:u,load:d,mid:f,trail:e=>f+(p-f)*Math.min(1,Math.max(0,e))**l(yh.pow,ph)}}var Ph=(e,t,n)=>I(e.root[t],W(fs(e.yaw?.[t]??0),W(ps(e.roll?.[t]??0),n)));function Fh(e,t,{f0:n,end:r,period:i,pace:a,ground:o,start:s}){let c=e.index,l=e.restWorldPos,{reach:u,hipOff:d,strike:f,load:p,mid:m,trail:h}=Nh(e,i,a),g=Math.max(2,Math.round(Th*i)),_=(e,t)=>{if(t<e.a)return f;if(e.heel!==void 0&&t>=e.heel)return h((t-e.heel)/Math.max(1,e.b-e.heel));let n=(t-e.a)/i/mh;return e.strike&&n<1?(n<.5?f:m)+(p-(n<.5?f:m))*Math.sin(Math.PI*n):m},v=rm(t,r+1),y=l[c.Hips][1]-wh,b=v.root.map(e=>[e[0],e[2]]);for(let e=0;e<2;e++)b=b.map((e,t)=>{if(t<=n||t>=r)return e;let i=0,a=0,o=0;for(let e=-6;e<=6;e++){let s=Math.min(r,Math.max(n,t+e)),c=Math.exp(-(e*e)/8);i+=c*b[s][0],a+=c*b[s][1],o+=c}let s=Math.min(1,(t-n)/Ch,(r-t)/Ch),c=s*s*(3-2*s);return[e[0]+(i/o-e[0])*c,e[1]+(a/o-e[1])*c]});let x=e=>{let t=[b[e][0],v.root[e][1],b[e][1]],i=v.yaw?.[e]??0,a=v.roll?.[e]??0,s=[];for(let n of[`l`,`r`]){let r=o[n].find(t=>e>=t.a-(t.strike?g:0)&&e<=t.b);if(!r||r.free!==void 0&&e>=r.free)continue;let c=v[`foot_${n}`][e],l=W(fs(i),W(ps(a),d[n])),f=u(_(r,e)),p=Math.hypot(t[0]+l[0]-c[0],t[2]+l[2]-c[2]);p<f&&s.push(c[1]+Math.sqrt(f*f-p*p)-l[1])}if(!s.length)return y;let c=Math.min(...s),l=Math.min(y,c-Sh*Math.log(s.reduce((e,t)=>e+Math.exp(-(t-c)/Sh),0)))-Eh,f=Math.min(1,(e-n)/Ch,(r-e)/Ch),p=f*f*(3-2*f);return t[1]+(l-t[1])*p};for(let e of[`l`,`r`])for(let t of o[e]){if(t.heel===void 0||!t.flat)continue;let e=W(fs(t.yw),[0,0,1]),r=Math.max(n+1,t.a);for(;r<t.heel&&(b[r][0]-t.flat[0])*e[0]+(b[r][1]-t.flat[2])*e[2]<0;)r++;t.free=r}let S=[];for(let e=n;e<=r;e++)S[e]=x(e);let C=Math.max(2,Math.round(Dh*i)),w=(e,t)=>{let n=e;for(let r=e;r<=t;r++)S[r]<S[n]&&(n=r);return n},T=[...new Set([`l`,`r`].flatMap(e=>o[e].filter(e=>e.strike&&e.a>n+2&&e.a<r-2).map(e=>e.a)))].sort((e,t)=>e-t),E=[{f:n,y:S[n]}];T.forEach((e,t)=>{let n=w(Math.max(E.at(-1).f+2,e-2),Math.min(r-2,e+C));if(t>0){let e=E.at(-1),t={f:n,y:S[n]},r=t.f-e.f,i=null;for(let n=Math.ceil(e.f+Oh[0]*r);n<=Math.floor(e.f+Oh[1]*r);n++){let r=S[n];for(let t=e.f+1;t<n;t++){let i=Ah((t-e.f)/(n-e.f));i>1e-6&&(r=Math.min(r,e.y+(S[t]-e.y)/i))}for(let e=n+1;e<t.f;e++){let i=Ah((e-n)/(t.f-n));i<1-1e-6&&(r=Math.min(r,(S[e]-t.y*i)/(1-i)))}(!i||r>i.y)&&(i={f:n,y:r})}i&&i.y>Math.max(e.y,t.y)&&E.push(i)}n>E.at(-1).f&&E.push({f:n,y:S[n]})}),E.push({f:r,y:S[r]});for(let e=1;e+1<E.length;e++){let t=E[e],n=Math.min(...[E[e-1],E[e+1]].map(e=>e.y+kh*(t.f-e.f)**2/2));t.y>Math.max(E[e-1].y,E[e+1].y)&&(t.y=Math.min(t.y,n))}let D=[];for(let e=0;e<30;e++){let e=0,t=Lh(E.map(e=>e.f),E.map(e=>e.y),0,0);for(let i=0;i+1<E.length;i++){let a=E[i],o=E[i+1],s=0;for(let e=a.f;e<=o.f;e++)D[e]=t(e),s=Math.max(s,D[e]-S[e]);if(s>3e-4){let t=a.y>o.y&&i>0||o.f===r?a:o;t.f!==n&&t.f!==r&&(t.y-=s,e=Math.max(e,s))}}if(!e)break}for(let e=n;e<=r;e++)D[e]=Math.min(D[e],S[e]);let ee=t.filter(e=>/ step \d+$/.test(e.src??``)).sort((e,t)=>e.f-t.f),te=0,ne=s;for(let e=n+1;e<r;e++){for(;te<ee.length&&ee[te].f<=e;)ne=ee[te++].src;t.push({f:e,set:{root:[b[e][0],D[e],b[e][1]]},src:ne})}}function Ih(e,t,{end:n,period:r,pace:i,ground:a}){let{reach:o,hipOff:s,trail:c}=Nh(e,r,i),l=rm(t,n+1),u=new Map(t.map(e=>[e.f,e.src]));for(let e of[`l`,`r`])for(let r of a[e]){if(r.free===void 0||!Number.isFinite(r.b)||r.b>n)continue;let i=[],a=[],d=0;for(let t=r.free;t<=r.b;t++){let n=Ph(l,t,s[e]),u=o(c((t-r.heel)/Math.max(1,r.b-r.heel))),f=e=>B(L(n,Mh(r.ball,r.yw,e,r.flat)))-u,p=d,m=hh;if(f(p)<=0)m=p;else if(f(m)<=0)for(let e=0;e<24;e++){let e=(p+m)/2;f(e)>0?p=e:m=e}d=m,i.push(m),a.push({f:t,hip:n,want:u})}let f=i.map((e,t)=>Math.max(...i.slice(t).map((e,t)=>e-t*gh)));for(let e=0;e<2;e++)f=f.map((e,t)=>Math.max(i[t],((f[t-1]??0)+e+(f[t+1]??e))/3));a.forEach(({f:n,hip:i,want:a},o)=>{let s=Mh(r.ball,r.yw,f[o],r.flat),c=B(L(i,s))-a;c>0&&(s=I(s,R(L(i,s),c/B(L(i,s))))),t.push({f:n,set:{[`foot_${e}`]:s,[`fpitch_${e}`]:f[o],[`fyaw_${e}`]:r.yw},src:u.get(n)})})}}function Lh(e,t,n,r){let i=e.length-1,a=e.slice(1).map((t,n)=>t-e[n]),o=[],s=[],c=[],l=[];for(let e=0;e<=i;e++)e===0?(o[e]=0,s[e]=2*a[0],c[e]=a[0],l[e]=6*((t[1]-t[0])/a[0]-n)):e===i?(o[e]=a[i-1],s[e]=2*a[i-1],c[e]=0,l[e]=6*(r-(t[i]-t[i-1])/a[i-1])):(o[e]=a[e-1],s[e]=2*(a[e-1]+a[e]),c[e]=a[e],l[e]=6*((t[e+1]-t[e])/a[e]-(t[e]-t[e-1])/a[e-1]));for(let e=1;e<=i;e++){let t=o[e]/s[e-1];s[e]-=t*c[e-1],l[e]-=t*l[e-1]}let u=[];u[i]=l[i]/s[i];for(let e=i-1;e>=0;e--)u[e]=(l[e]-c[e]*u[e+1])/s[e];return n=>{let r=0;for(;r<i-1&&n>e[r+1];)r++;let o=n-e[r],s=a[r],c=(e[r+1]-n)/s,l=o/s;return c*t[r]+l*t[r+1]+((c**3-c)*u[r]+(l**3-l)*u[r+1])*s*s/6}}var Rh=3,zh=.35,Bh=.2,Vh=.03,Hh=.04,Uh=.025,Wh=e=>e*180/Math.PI,Gh=e=>{let t=Math.min(1,Math.max(0,e));return t*t*(3-2*t)};function Kh(e,t,n,r,i){let a=L(t,e),o=Math.min(r+i-1e-6,Math.max(Math.abs(r-i)+1e-6,B(a))),s=R(a,1/B(a)),c=L(n,R(s,z(n,s)));c=R(c,1/(B(c)||1));let l=(r*r+o*o-i*i)/(2*r*o),u=L(t,I(e,I(R(s,r*l),R(c,r*Math.sqrt(Math.max(0,1-l*l))))));return Wh(Math.atan2(-z(u,n),-u[1]))}function qh(e,{end:t,ground:n,sk:r}){let i=rm(e,t+2),a=new Map(e.map(e=>[e.f,e.src])),o=r?.index,s=r?.restWorldPos,c=r&&B(L(s[o.LeftLeg],s[o.LeftUpLeg])),l=r&&B(L(s[o.LeftFoot],s[o.LeftLeg]));for(let u of[`l`,`r`]){let d=n[u],f=u===`l`?`Left`:`Right`,p=r&&L(s[o[`${f}UpLeg`]],s[o.Hips]),m=r&&L(s[o[`${f}ToeBase`]],s[o[`${f}Foot`]]),h=r&&s[o[`${f}ToeBase`]][1],g=r&&[0,.005-s[o[`${f}Foot`]][1],-.045];for(let n=0;n+1<d.length;n++){let o=d[n],s=d[n+1];if(!Number.isFinite(o.b)||!s.strike||s.a>t||s.a-o.b<3)continue;let f=[...new Set(e.filter(e=>!jh.has(e)&&e.f>o.b&&e.f<s.a&&e.set[`foot_${u}`]).map(e=>e.f))].sort((e,t)=>e-t),_=[o.b,...f,s.a],v=i[`foot_${u}`],y=e=>v[Math.max(0,Math.min(v.length-1,e))],b=L(y(o.b),y(o.b-1)),x=L(y(s.a+1),y(s.a)),S=[0,1,2].map(e=>Lh(_,_.map(t=>y(t)[e]),b[e],x[e])),C=e=>i[`fyaw_${u}`]?.[e]??0,w=e=>i[`fpitch_${u}`]?.[e]??0,T=(e,t)=>Kh(Ph(i,e,p),t,W(fs(C(e)),[0,0,1]),c,l)-Rh,E=s.a-o.b,D=r&&w(o.b)-T(o.b,y(o.b)),ee=r&&w(s.a)-T(s.a,y(s.a));for(let t=o.b+1;t<s.a;t++){let n=S.map(e=>e(t)),i={[`foot_${u}`]:n};if(r){let e=Math.min(hh,T(t,n)+D*(1-Gh((t-o.b)/(zh*E)))+ee*(1-Gh((s.a-t)/(Bh*E)))),r=h+Vh*Gh(Math.min(t-o.b,s.a-t)/3),a=e=>n[1]+W(ds(e),m)[1];if(a(e)<r){let t=-30,n=e;for(let e=0;e<20;e++){let e=(t+n)/2;a(e)<r?n=e:t=e}e=t}let c=w(t),l=e=>n[1]+W(ds(e),g)[1],d=Math.min(Hh,Math.max(l(c),Uh));if(e<c&&l(e)<d){let t=e,n=c;for(let e=0;e<20;e++){let e=(t+n)/2;l(e)<d?t=e:n=e}e=n}i[`fpitch_${u}`]=e}let c={f:t,set:i,src:a.get(t)};jh.add(c),e.push(c)}}}}var Jh=[6,4],Yh=50,Xh=1.1,Zh=[18,3],Qh=[6,3],$h=8,eg=4.5,tg=5.5,ng=.015,rg=[.52,.64],ig=.3,ag=4,og=6.4,sg=.8,cg=e=>H(.66-.18*e,.2,.48),lg=e=>H(.32-.11*e,0,.45),ug=e=>H(2.8-.45*e,1.2,3),dg=.92,fg=e=>H(4.7-1.1*e,1.8,4),pg=[.2,.6],mg=.9,hg=.18,gg=.35,_g=.18,vg=.55,yg=10,bg=.22,xg=.03,Sg=50,Cg=e=>W(fs(e),[0,0,1]),wg=e=>W(fs(e),[1,0,0]),Tg=e=>{let t=Math.min(1,Math.max(0,e));return t*t*(3-2*t)};function Eg(e,t){let n={};for(let r of[...e].sort((e,t)=>e.f-t.f))r.f<=t&&Object.assign(n,r.set);return n}function Dg(e,t,n,r=`walk`){let i=`${r} start`,a=[],o=(e,t)=>{let n={f:e,set:t,src:i};return a.push(n),n},s=Eg(t,e.f0);if(!s.foot_l||!s.foot_r||!s.root)throw Error(`MOTION_SPEC_INVALID: walk needs foot_l, foot_r and root keyed before f0`);if(e.vary!==void 0&&!(Number.isFinite(e.vary)&&e.vary>=0&&e.vary<=2))throw Error(`MOTION_SPEC_INVALID: ${r} vary must be a number from 0 (every step the same) to 2, got ${JSON.stringify(e.vary)}`);let c=n.index,l=n.restWorldPos,u=l[c.LeftFoot][1],d=l[c.Hips][1],f={l:L(l[c.LeftToeBase],l[c.LeftFoot]),r:L(l[c.RightToeBase],l[c.RightFoot])},p=[0,.005-u,-.045],m={l:-1/0,r:-1/0},h=B(L(l[c.LeftLeg],l[c.LeftUpLeg]))+B(L(l[c.LeftFoot],l[c.LeftLeg])),g=l[c.Hips][1]-l[c.LeftUpLeg][1],_=e.step??.5,v=e.halfWidth??.08,y=e=>Math.sqrt(Math.max(0,(.98*h)**2-e**2))+u+g-d,b={steps:8,step:_,period:20,swing:14,halfWidth:v,lift:.08,turnDistance:.4,firstStep:.4,pelvisHigh:Math.min(-.005,y(Math.hypot(.03,v-.035))),pelvisLow:y(Math.hypot(_/2,v)),vary:1,...e},x=b.step/b.period/(.5/20);b.armSwing=e.armSwing??H(og*x,4,22);let S=cg(x),C=lg(x),w=ug(x),T=fg(x),E=H(mg*x,0,3),D=Zh[0]+Zh[1]*Math.min(x,2.5),ee=Qh[0]+Qh[1]*Math.min(x,2.5),[te,ne]=b.heading??[s.yaw??0,s.yaw??0],O=e=>te+(ne-te)*Tg(e/b.turnDistance),re=R(I(s.foot_l,s.foot_r),.5);re[1]=0;let k=[re];for(let e=0;e<4e3;e++)k.push(I(k[e],R(Cg(O(e*.01)),.01)));let A=e=>k[Math.max(0,Math.min(k.length-1,Math.round(e/.01)))],ie=(e,t)=>{let n=I(A(e),R(wg(O(e)),(t===`l`?1:-1)*b.halfWidth));return n[1]=u,n},ae={l:-.07,r:.07},oe={foot_l:s.foot_l,foot_r:s.foot_r,fyaw_l:s.fyaw_l??te,fyaw_r:s.fyaw_r??te},se=[`root`,`yaw`,`roll`,`foot_l`,`foot_r`,`fyaw_l`,`fyaw_r`,`spine_yaw`,`spine_roll`,`spine_pitch`,`aswing_l`,`aswing_r`,`abend_l`,`abend_r`,`wflex_l`,`wflex_r`,`head_yaw`],ce=s.roll??0,j=s.spine_roll??0,le=s.spine_pitch??0,ue={l:[{a:e.f0,b:1/0,strike:!1}],r:[{a:e.f0,b:1/0,strike:!1}]};o(e.f0,Object.fromEntries(se.map(e=>[e,s[e]??oe[e]??(e===`yaw`?te:0)])));let de=ae.r,fe=null,pe=ch(b,{s0:de,turn:(e,t)=>O(t)-O(e),seed:[e.f0,b.steps,b.step,b.period,b.swing,b.firstStep,te,ne,re[0].toFixed(3),re[2].toFixed(3)].join(`|`)});for(let t=0;t<b.steps;t++){i=`${r} step ${t+1}`;let n=t%2==0?`l`:`r`,a=n===`l`?`r`:`l`,c=t===b.steps-1,l=c?de:de+pe.inc[t],u=e.f0+16+pe.lift[t],h=u+pe.air[t],g=u+Math.floor(pe.air[t]/2);if(t===0){let e=I(A(ae[a]),R(wg(te),(a===`l`?1:-1)*b.halfWidth*.75));e[1]=s.root[1],o(u-4,{root:e,yaw:te}),o(u,{arm_hang:1})}let ne=H(Math.abs(l-ae[n])/Xh,.3,1.15),re=Yh*(.55+.45*ne)*(c?.8:1),k=oe[`foot_${n}`],se=oe[`fyaw_${n}`],me=I(k,W(fs(se),f[n])),he=Math.max(u-Math.max(ag,Math.round((t===0?.35:ig)*b.period)),m[n]+1,e.f0+1);Object.assign(ue[n].at(-1),{b:u,heel:he,ball:me,yw:se,flat:k});for(let e=he;e<=u;e++){let t=re*((e-he)/Math.max(1,u-he))**1.8;o(e,{[`foot_${n}`]:Mh(me,se,t,k),[`fpitch_${n}`]:t,[`fyaw_${n}`]:se})}let ge=Math.max(1,Math.round(bg*pe.air[t])),_e=ie((ae[n]+l)/2,n);_e[1]+=pe.height[t];let ve=Mh(me,se,Math.min(re,Sg),k),ye=I(ve,R(L(_e,ve),gg));ye[1]=ve[1]+_g*ne*Math.min(1,(pe.air[t]/yg)**2)*(vg+.44999999999999996*xh(x))*(pe.height[t]/b.lift);let be=R(wg(O(ae[a])),n===`l`?1:-1),xe=oe[`foot_${a}`],Se=e=>(e[0]-xe[0])*be[0]+(e[2]-xe[2])*be[2],Ce=Se(_e)-Se(ye);Ce>0&&(ye[0]+=be[0]*Ce,ye[2]+=be[2]*Ce);let we=u+Math.max(2,Math.round(hg*pe.air[t]));!c&&we<g-1&&o(we,{[`foot_${n}`]:ye,[`fpitch_${n}`]:.7*Math.min(re,Sg)}),o(g,{[`foot_${n}`]:_e,[`fyaw_${n}`]:O((ae[n]+l)/2),[`fpitch_${n}`]:0});let Te=ae[a]+(rg[0]+(rg[1]-rg[0])*xh(x))*(l-ae[a]),Ee=fe?fe.s+(Te-fe.s)*((g-fe.f)/(h-fe.f)):null,De=Ee===null?ae[a]+.03:Ee-ng*Math.abs(l-ae[n])/2,Oe=t===0?.015:.032,ke=I(A(De),R(wg(O(De)),(a===`l`?1:-1)*Oe));ke[1]=d+b.pelvisHigh;let Ae=e.pelvisLow??(pe.inc[t]>_?Math.min(b.pelvisLow,y(Math.hypot(pe.inc[t]/2,v))):b.pelvisLow),je=A(Te).slice();je[1]=d+(c?b.pelvisHigh:Ae),fe={f:h,s:Te};let Me=ie(l,n),Ne=O(l),Pe=I(Me,W(fs(Ne),p)),Fe=-(Jh[0]+(Jh[1]-Jh[0])*xh(x))*(c?.5:1),Ie=Math.max(2,Math.round(.2*b.period)),Le=I(Mh(Pe,Ne,Fe,Me),R(Cg(Ne),-.12*Math.abs(l-ae[n])));Le[1]+=xg,!c&&ge>1&&h-ge>g+1&&o(h-ge,{[`foot_${n}`]:Le,[`fpitch_${n}`]:.6*Fe});for(let e=0;e<=Ie;e++){let t=Fe*(1-Tg(e/Ie));o(h+e,{[`foot_${n}`]:Mh(Pe,Ne,t,Me),[`fpitch_${n}`]:t,[`fyaw_${n}`]:Ne})}m[n]=h+Ie,ue[n].push({a:h,b:1/0,strike:!0}),oe[`foot_${n}`]=Me,oe[`fyaw_${n}`]=Ne,ae[n]=l;let Re=(c?0:t<3?[0,.3,.7][t]:1)*pe.arm[t],ze=n===`l`?1:-1,Be=H(ne,.4,1.1),M=c?0:t===0?.5:1,Ve=eg*Be*M*(a===`l`?1:-1),He=(h-g)/b.period,Ue=e=>{let t=[Math.cos(Math.PI*(e-He)),Math.cos(Math.PI*e)];return t.map(e=>e/Math.max(...t.map(Math.abs)))},We=Ue(-C).map(e=>-4.5*Be*ze*Re*e),Ge=Ue(S).map(e=>tg*Be*ze*Re*e),Ke=Ue(dg).map(e=>-Math.sign(Ve)*w*Be*M*e),qe=Ue(He).map((e,t)=>t?sg*e:e),Je=e=>({aswing_l:-.85*b.armSwing*ze*Re*e,aswing_r:b.armSwing*ze*Re*e,abend_l:Re*(D-ze*ee*e),abend_r:Re*(D+ze*ee*e)});o(g,{root:ke,yaw:O(De)+We[0],roll:ce+Ve,spine_roll:j-Ve*1.26+Ke[0],spine_yaw:Ge[0]-We[0],...Je(qe[0]),wflex_l:$h*Re,wflex_r:$h*Re}),o(h,{root:je,yaw:O(Te)+We[1],roll:ce,spine_roll:j+Ke[1],spine_yaw:Ge[1]-We[1],...Je(qe[1]),head_yaw:0});let Ye=le+E*M,Xe=T*Be*M;o(Math.max(e.f0+1,h-Math.round(pg[1]*b.period)),{spine_pitch:Ye-.6*Xe}),o(Math.max(e.f0+1,h-Math.round(pg[0]*b.period)),{spine_pitch:Ye+Xe}),de=l}let me=e.f0+16+b.steps*b.period+18,he=Math.max(...a.map(e=>e.f));return e.pelvisHigh===void 0&&e.pelvisLow===void 0&&(qh(a,{end:he,ground:ue}),Fh(n,a,{f0:e.f0,end:he,period:b.period,pace:x,ground:ue,start:`${r} start`}),Ih(n,a,{end:he,period:b.period,pace:x,ground:ue}),qh(a,{end:he,ground:ue,sk:n})),i=`${r} end`,o(me,Eg(a,me)),a}function Og(e,t){let n=(e.keys??[]).map((e,t)=>e.src?e:{...e,src:`keys[${t}]`});return(e.generators??[]).forEach((e,r)=>{if(e.type!==`walk`)throw Error(`MOTION_SPEC_INVALID: generators[${r}] has unknown type "${e.type}" (only "walk")`);n=n.concat(Dg(e,n,t,`generators[${r}] walk`))}),n}var kg={yaw:.5,pitch:.2,roll:.7},Ag={yaw:4,pitch:6,roll:10},jg=33,Mg=8,Ng=[`yaw`,`pitch`,`roll`];function Pg(e){let t=new Map;for(let n of e){let e=/ (start|step \d+)$/.exec(n.src??``),r=e&&n.src.slice(0,-e[0].length);if(!e||!/\bwalk(To)?$/.test(r))continue;let i=t.get(r)??[1/0,-1/0];t.set(r,[Math.min(i[0],n.f),Math.max(i[1],n.f)])}return[...t.values()].filter(([e,t])=>t>e)}var Fg=(e,t)=>{let n=Math.floor(t/2),r=t=>e[Math.max(0,Math.min(e.length-1,t))];return e.map((e,t)=>{let i=0;for(let e=t-n;e<=t+n;e++)i+=r(e);return i/(2*n+1)})};function Ig(e,t,n){let r=Pg(t);if(!r.length)return;let i=t=>e[t]??Array(n).fill(0);for(let a of Ng){let o=i(`spine_${a}`),s=i(a).map((e,t)=>e+o[t]),c=Fg(s,jg),l=null;for(let[e,o]of r)if(!t.some(t=>t.f>=e&&t.f<=o&&t.set?.[`head_${a}`]!==void 0&&!/\bwalk(To)? (start|step \d+|end)$/.test(t.src??``))){l??=i(`head_${a}`).slice();for(let t=Math.max(0,e);t<=Math.min(n-1,o);t++){let n=Math.min(1,(t-e)/Mg,(o-t)/Mg),r=Math.max(-Ag[a],Math.min(Ag[a],s[t]-c[t]));l[t]-=kg[a]*r*n*n*(3-2*n)}}l&&(e[`head_${a}`]=l)}}function Lg(e,t){let n=e.length,r=new Float64Array(n);for(let i=0;i<n;i++)if(e[i]>0)for(let a=Math.max(0,i-t-1);a<=Math.min(n-1,i+t+1);a++){let n=1-Math.abs(i-a)/(t+1),o=n*n*(3-2*n);r[a]=Math.max(r[a],e[i]*o)}return r}var Rg=e=>Math.round(e*1e4)/1e4,zg=6;function Bg(e,t){let{sk:n}=e.ctx,r=n.index,i=n.restWorldPos,a=e.baked.root;if(!a)return null;let o=e.frames.length,s=new Float64Array(o);for(let t=0;t<o;t++){let{s:n,diag:a,c:o}=e.frames[t];for(let[e,c]of Object.entries(il)){if(!(a[`leg_miss_${e}`]>5e-4)||!Array.isArray(o[`foot_${e}`]))continue;let l=.999*(B(L(i[r[`${c}Leg`]],i[r[`${c}UpLeg`]]))+B(L(i[r[`${c}Foot`]],i[r[`${c}Leg`]]))),u=L(o[`foot_${e}`],n.P[r[`${c}UpLeg`]]),d=u[1]*u[1]-z(u,u)+l*l,f=d>=0?-u[1]-Math.sqrt(d):-u[1];f>0&&f<=.05&&(s[t]=Math.max(s[t],f+5e-4))}}let c=s.filter(e=>e>0).length;if(!c)return null;let l=Lg(s,zg),u=[];for(let t=0;t<o;t++){if(!(l[t]>0))continue;let n=e.f0+t,r=a[n];a[n]=[r[0],r[1]-l[t],r[2]],u.push(n)}return t.solve(u),{frames:c,eased:u.length,max:Rg(Math.max(...s)),how:`hips lowered`}}function Vg(e){let t=0,n=0;for(let r of e.frames)for(let e of[`l`,`r`]){let i=r.diag[`reach_over_${e}`]??0;i>.001&&(t++,n=Math.max(n,i))}return t?{frames:t,max:Rg(n),how:`wrist target clamped to reach`}:null}var Hg=.01,Ug=4,Wg=.03,Gg=.02;function Kg(e,t){let n=e.frames.length,r=cd.plantH,i=0,a=0,o=0,s=new Set;for(let[t,c]of[[`l`,`Left`],[`r`,`Right`]]){let l=e.baked[`foot_${t}`];if(!l)continue;let u=e.frames.map((t,n)=>Pu(e,n,c)),d=(e,t)=>u[e][t][1]<r&&u[e-1][t][1]<r&&Math.abs(u[e][t][1]-u[e-1][t][1])<5e-4,f=Array.from({length:n},()=>null);for(let e=1;e<n;){if(!d(e,`ball`)&&!d(e,`heel`)){e++;continue}let t=null,s=null,c=e,l=0,p=[0,0,0],m=!1,h=[],g=e=>{let n=L(s,u[e][t]);n[1]=0,p=n,h.push([e,n]),l=Math.max(l,Math.hypot(n[0],n[2]))};for(;c<n&&(d(c,`ball`)||d(c,`heel`));c++){let e=d(c,`ball`)?`ball`:`heel`;m||=u[c][e===`ball`?`heel`:`ball`][1]>=r,e!==t&&(t=e,s=I(u[c-1][t],p)),g(c)}if(m&&l>=Hg)for(;c<n&&u[c][t][1]<Wg;c++)g(c);if(l>2e-4&&(l<Hg||m)){i++,o=Math.max(o,l),l>=Hg&&a++;for(let[e,t]of h)f[e]=t;let e=Math.max(Ug,Math.ceil(Math.hypot(p[0],p[2])/Gg));for(let t=1;t<=e&&c-1+t<n&&!f[c-1+t];t++){let n=t/(e+1),r=1-n*n*(3-2*n);f[c-1+t]=[p[0]*r,0,p[2]*r]}}e=c}for(let t=0;t<n;t++){if(!f[t])continue;let n=e.f0+t;l[n]=I(l[n],f[t]),s.add(n)}}return i?(t.solve([...s]),{plants:i,...a?{pivots:a}:{},frames:s.size,max:Rg(o),how:a?`planted heel/ball held in place; turning feet pivot on it`:`planted heel/ball held in place`}):null}var qg=6,Jg=4,Yg=1,Xg=e=>e*e*(3-2*e);function Zg(e,t){let n=e.frames.length,r=cd.plantH,i=new Set,a=0;for(let[t,o]of[[`l`,`Left`],[`r`,`Right`]]){let s=e.baked[`fyaw_${t}`]??e.baked.yaw;if(!e.baked[`foot_${t}`]||!s)continue;let c=e.frames.map((t,n)=>Pu(e,n,o)),l=(e,t)=>c[e][t][1]<r&&c[e-1][t][1]<r&&Math.abs(c[e][t][1]-c[e-1][t][1])<5e-4,u=e=>e>0&&e<n&&l(e,`heel`)&&l(e,`ball`),d=Array.from({length:n},(t,n)=>s[e.f0+n]),f=d.slice();for(let e=1;e<n;e++){if(!u(e))continue;let t=f[e-1],r=e,i=0;for(;u(r);r++)i=Math.max(i,Math.abs(f[r]-t));if(i<=Yg){e=r;continue}a=Math.max(a,i);for(let n=e;n<r;n++)f[n]=t;let o=r<n?d[r]-t:0,s=Math.max(Jg,Math.ceil(Math.abs(o)/qg));for(let e=0;o&&e<s&&r+e<n&&!u(r+e);e++)f[r+e]=d[r+e]-o*(1-Xg((e+1)/(s+1)));e=r}let p=f.map((e,t)=>e!==d[t]);if(!p.some(Boolean))continue;let m=e.baked[`fyaw_${t}`]=s.slice();p.forEach((t,n)=>{t&&(m[e.f0+n]=f[n],i.add(e.f0+n))})}return i.size?(t.solve([...i]),{frames:i.size,max:Rg(a)}):null}var Qg=.001,$g=.15,e_=2;function t_(e,t){let{sk:n}=e.ctx,r=e.frames.length,i=new Set,a=0;for(let[t,o]of Object.entries(il)){let s=e.baked[`foot_${t}`],c=n.index[`${o}Foot`];if(!s)continue;let l=e.frames.map(({s:t},r)=>{let i=_u(n,t,o),a=Math.min(i.heel[1],i.ball[1],i.tip[1])-t.P[c][1]+s[e.f0+r][1];return Math.min($g,-a-Qg)});if(!l.some(e=>e>0))continue;let u=Lg(l,e_);for(let t=0;t<r;t++){if(!(u[t]>0))continue;let n=e.f0+t;s[n]=[s[n][0],s[n][1]+u[t],s[n][2]],a=Math.max(a,l[t]),i.add(n)}}return i.size?(t.solve([...i]),{frames:i.size,max:Rg(a),how:`soles lifted onto the floor`}):null}var n_=4,r_=.002,i_=3,a_={l:uu.filter(e=>e[0]===`hand_l`||e[0]===`farm_l`),r:uu.filter(e=>e[0]===`hand_r`||e[0]===`farm_r`)};function o_(e,t,n,r,i){let{sk:a}=e.ctx,o=a.index,s=e.frames.length,c=Array.from({length:s},()=>null);for(let a=0;a<s;a++){let{s,c:l}=e.frames[a],u=e.objectsAt(a),d=null;for(let[e,a]of Object.entries(u)){if(!a.half||a.ignore)continue;let c=null;for(let[l,u,d,f]of a_[t]){let t=dd(r,l,e)??cd.allow,p=du(s.P[o[u]],s.P[o[d]]),m=p.map(e=>fu(e,a)),h=Math.min(...m),g=f-h-t;if(!(g<=0)){if(g>n){i.deep++;continue}(!c||g>c[0])&&(c=[g,p[m.indexOf(h)]])}}c&&(d=I(d??[0,0,0],R(vu(c[1],a),c[0]+r_)))}if(d){if(!(l[`armw_${t}`]>1e-4)){i.skipped++;continue}c[a]=d}}return c}function s_(e,t,n){let r=e.ctx.spec.checks?.allow,i=e.frames.length,a={deep:0,skipped:0},o=new Set,s=0;for(let c=0;c<i_;c++){a.deep=0,a.skipped=0;let c=new Set;for(let t of[`l`,`r`]){let l=o_(e,t,n,r,a),u=e.ctx.push[t],d=Array.from({length:i},()=>null);for(let e=0;e<i;e++)if(l[e]){o.add(`${t}${e}`);for(let t=Math.max(0,e-n_-1);t<=Math.min(i-1,e+n_+1);t++){let n=1-Math.abs(e-t)/5,r=R(l[e],n*n*(3-2*n));(!d[t]||B(r)>B(d[t]))&&(d[t]=r)}}for(let t=0;t<i;t++){if(!d[t])continue;let n=e.f0+t,r=I(u.get(n)??[0,0,0],d[t]);u.set(n,r),s=Math.max(s,B(r)),c.add(n)}}if(!c.size)break;t.solve([...c])}return!o.size&&!a.skipped?null:{frames:o.size,max:Rg(s),skipped:a.skipped,tooDeep:a.deep,how:`hand pushed out along the box normal`}}var c_=1.1,l_=.35,u_=3,d_=e=>{let t=e.ctx.spec?.checks?.limits;return $u(e.ctx.sk,e,t,{...cd,...t})};function f_(e,t,n){let r=[];for(let i=1;i<n;i++){if(e[i]<=1)continue;let a=i;for(;a+1<n&&e[a+1]>1;)a++;let o=Math.max(6,2*(a-i+1)),s=Math.max(0,...t.filter(e=>e<=i-1-o)),c=Math.min(n-1,...t.filter(e=>e>=a+o));r.length&&s<=r[r.length-1][1]?r[r.length-1][1]=Math.max(r[r.length-1][1],c):r.push([s,c]),i=a}return r}function p_(e,t){let n=t[t.length-1]-t[0],r=t.slice(1).map((n,r)=>{let i=0;for(let a=Math.floor(t[r])+1;a<=Math.ceil(n);a++)i=Math.max(i,e[a]??0);return{len:n-t[r],need:c_*i}}),i=e=>r.reduce((t,n)=>t+n.len*Math.max(n.need,e),0),a=l_,o=1;for(let e=0;e<40;e++){let e=(a+o)/2;i(e)>n?o=e:a=e}let s=r.map(e=>e.len*Math.max(e.need,a)),c=n/s.reduce((e,t)=>e+t,0),l=[t[0]];return s.forEach((e,t)=>l.push(l[t]+e*c)),l[l.length-1]=t[t.length-1],{T:l,stretch:Math.max(...s.map((e,t)=>e*c/r[t].len))}}function m_(e,t){let n=e.frames.length,r=[],i=0,a=1;for(let o=0;o<u_;o++){let o=d_(e),s=[...new Set(e.keys.map(e=>e.f))].sort((e,t)=>e-t),c=f_(o,s,n);if(!c.length)break;let l=c.map(([e,t])=>{let n=[...new Set([e,...s.filter(n=>n>e&&n<t),t])].sort((e,t)=>e-t),r=p_(o,n);return a=Math.max(a,r.stretch),{cuts:n,T:r.T}});i+=c.length;let u=e=>{for(let{cuts:t,T:n}of l){if(e<t[0]||e>t[t.length-1])continue;let r=0;for(;r<t.length-2&&e>t[r+1];)r++;return n[r]+(n[r+1]-n[r])*(e-t[r])/(t[r+1]-t[r])}return e};r.push(u),t.rebake(e.keys.map(e=>({...e,f:u(e.f)}))),t.solve(t.all())}if(!r.length)return null;e.timeMap=e=>r.reduce((e,t)=>t(e),e);let o=d_(e).filter(e=>e>1).length;return{windows:i,maxStretch:Math.round(a*100)/100,stillFast:o,how:`key intervals around speed spikes stretched`}}var h_=Array.from({length:19},(e,t)=>-90+t*10),g_=3,__=5,v_=.003,y_=.003,b_=.03,x_=.08,S_=.03,C_=40,w_=.05,T_=4,E_=2,D_=.09,O_=400;function k_(e,t,n){let r=null;for(let i of e.ctx.spec.checks?.below??[]){let a=String(i.joint).replace(/^joint:/,``),o=String(i.ref).replace(/^joint:/,``),s=e.f0+t;(Array.isArray(i.when)?s>=i.when[0]&&s<=i.when[1]:!i.when||(e.frames[t].c[i.when]??0)>.5)&&a===`${n}ForeArm`&&o===`${n}Arm`&&Number.isFinite(i.min)&&(r=Math.max(r??0,i.min))}return r}var A_=10,j_={l:`Left`,r:`Right`};function M_(e,t,n){let r=0;for(let i of e.fits??[]){let a=e.anchors?.[i.anchor],o=t[`w_${i.anchor}_${i.side}`]??0;(i.side===n||a?.kind===`prop`&&e.props?.[a.prop]?.hand===n)&&(r=Math.max(r,o))}return Math.min(1,r)}var N_=Object.fromEntries(uu.map(e=>[e[0],e[3]]));function P_(e,t,n,r){let i=0;for(let a of e)i=Math.max(i,r-Math.min(...du(t,n,5).map(e=>fu(e,a))));return i}function F_(e,t,n,r,i,a=[]){let o=t.index,s=o[`${r}Arm`],c=o[`${r}ForeArm`],l=n.P[s],u=n.P[o[`${r}Hand`]],d=i?I(l,W(ms(L(u,l),i),L(n.P[c],l))):n.P[c],f=Math.max(xc(e,t,n,s,l,d),xc(e,t,n,c,d,u)),p=r===`Left`?`l`:`r`;return{depth:f,scene:a.length?Math.max(P_(a,l,d,N_[`uarm_${p}`]),P_(a,d,u,N_[`farm_${p}`])):0,rise:Math.max(0,d[1]-(l[1]-D_)),under:l[1]-d[1]}}var I_=(e,t)=>{let n=e.index,r=e.restWorldPos;return B(L(r[n[`${t}ForeArm`]],r[n[`${t}Arm`]]))+B(L(r[n[`${t}Hand`]],r[n[`${t}ForeArm`]]))};function L_(e,t,n){let{sk:r}=e.ctx,i=j_[n],a=e.frames.length,o=e.ctx.swivel[n],s=e.frames.map(({s:a,c:s},c)=>{let l=al(s[`armw_${n}`]??0),u=(o.get(e.f0+c)??0)*l;if(!u&&F_(t,r,a,i,0).depth<=y_)return null;let d=a.P[r.index[`${i}Arm`]],f=I_(r,i)+.15,p=Object.values(e.objectsAt(c)).filter(e=>e.half&&!e.ignore&&B(L(I(e.pos,W(e.R,[0,e.half[1],0])),d))-B(e.half)<f),m=F_(t,r,a,i,-u,p).scene,h=k_(e,c,i);return h_.map(e=>{let{depth:n,scene:o,rise:s,under:c}=F_(t,r,a,i,e*l-u,p),d=Math.max(0,n-y_)*100,f=h===null?0:Math.max(0,h-c),g=Math.max(0,o-Math.max(m,y_))*100;return C_*(d*d+g*g)+w_*(e/10)**2+T_*(s*100)**2+O_*(f*100)**2})});if(s.every(e=>!e))return null;let c=h_.indexOf(0),l=h_.map((e,t)=>t===c?0:1/0),u=h_.map(()=>0),d=[];for(let e=0;e<a;e++){let t=s[e]??l,n=u,r=[];u=t.map((e,t)=>{let i=1/0,a=c;for(let e=0;e<h_.length;e++){if(Math.abs(h_[t]-h_[e])>A_)continue;let r=n[e]+E_*((h_[t]-h_[e])/10)**2;r<i&&(i=r,a=e)}return r.push(a),i+e}),d.push(r)}let f=Array(a),p=u.indexOf(Math.min(...u));for(let e=a-1;e>=0;e--)f[e]=h_[p],p=d[e][p];return f.map((e,t)=>(f[Math.max(0,t-1)]+2*f[t]+f[Math.min(a-1,t+1)])/4)}function R_(e,t,n,r){let{sk:i}=e.ctx,a=j_[n],o=i.index,s=e.frames.length,c=Array(s).fill(null),l=[o.Head,o.Neck,o.HeadTop_End].filter(e=>e!==void 0);for(let u=0;u<s;u++){let{s,c:d}=e.frames[u],f=e.f0+u,p=1-M_(e.ctx.spec,d,n);if(p<.05)continue;let m=null;for(let n of[o[`${a}Hand`],o[`${a}ForeArm`]]){let r=Sc(t,i,s,n);if(r.into<0||l.includes(r.into))continue;let a=Math.min(S_,dd(e.ctx.spec.checks?.allow,Eu(i,n),Eu(i,r.into))??0),o=r.depth-Math.max(a,y_);o>0&&(!m||o>m.past)&&(m={...r,b:n,past:o})}if(!m)continue;if(!(d[`armw_${n}`]>1e-4)){r.skipped++;continue}let h=B(e.ctx.skinPush[n].get(f)??[0,0,0]);if(h>=x_){r.deep++;continue}let g=dc(t,s,m.p,new Set([...t.skip.get(m.b),...l]));g&&(c[u]=R(g,p*Math.min(b_,x_-h,m.past+v_)))}let u=Array(s).fill(null);return c.forEach((e,t)=>{if(e)for(let n=Math.max(0,t-__-1);n<=Math.min(s-1,t+__+1);n++){let r=1-Math.abs(t-n)/6,i=R(e,r*r*(3-2*r));(!u[n]||B(i)>B(u[n]))&&(u[n]=i)}}),u}function z_(e,t){let n=oc(e.ctx.sk);if(!n)return null;let r=e.frames.length,i={skipped:0,deep:0},a=new Set,o=new Set,s=0,c=0;for(let r=0;r<g_;r++){let r=new Set;for(let t of[`r`,`l`]){let i=L_(e,n,t);i&&i.forEach((n,i)=>{let o=e.f0+i,c=e.ctx.swivel[t].get(o)??0,l=Math.abs(n)<.5?0:n;Math.abs(l-c)<.5||(l?e.ctx.swivel[t].set(o,l):e.ctx.swivel[t].delete(o),s=Math.max(s,Math.abs(l)),l&&a.add(`${t}${i}`),r.add(o))})}r.size&&t.solve([...r]),r=new Set,i.skipped=0,i.deep=0;for(let t of[`r`,`l`])R_(e,n,t,i).forEach((n,i)=>{if(!n)return;let a=e.f0+i,s=I(e.ctx.skinPush[t].get(a)??[0,0,0],n);e.ctx.skinPush[t].set(a,s),c=Math.max(c,B(s)),o.add(`${t}${i}`),r.add(a)});if(!r.size)break;t.solve([...r])}if(o.size){let n=new Set;for(let t of[`r`,`l`]){let i=n=>e.ctx.skinPush[t].get(e.f0+n)??[0,0,0];for(let a=0;a<2;a++){let a=Array.from({length:r},(e,t)=>i(t));a.forEach((i,o)=>{let s=[-2,-1,0,1,2].reduce((e,t,n)=>I(e,R(a[Math.min(r-1,Math.max(0,o+t))],[1,4,6,4,1][n]/16)),[0,0,0]);B(s)<1e-5&&!e.ctx.skinPush[t].has(e.f0+o)||(e.ctx.skinPush[t].set(e.f0+o,s),n.add(e.f0+o))})}}n.size&&t.solve([...n])}return!a.size&&!o.size&&!i.skipped?null:{elbowFrames:a.size,maxTurn:Math.round(s),handFrames:o.size,maxPush:Rg(c),skipped:i.skipped,tooDeep:i.deep,how:`elbow turned about the shoulder-wrist line; a hand a little inside pushed out along the skin`}}var B_=[`reach`,`slide`,`penetration`,`self`,`retime`];function V_(e){if(e===!1)return{reach:!1,slide:!1,penetration:0,self:!1,retime:!1};let t=e??{},n=t.penetration===!0?.02:Math.min(.05,Math.max(0,Number(t.penetration)||0));return{reach:t.reach!==!1,slide:t.slide!==!1,penetration:n,self:t.self!==!1,retime:t.retime===!0}}var H_=(e,t)=>e?{...t??{frames:0,how:`planted heel/ball held in place`},turns:e,how:`${t?.how??`planted heel/ball held in place`}; a flat planted foot keeps its heading until it lifts`}:t,U_=(e,t)=>e&&t?{frames:Math.max(e.frames,t.frames),eased:Math.max(e.eased,t.eased),max:Math.max(e.max,t.max),how:e.how}:e??t;function W_(e,t,n,{whole:r=!0}={}){let i={},a=(e,t)=>{t&&(i[e]=t)};return t.retime&&r&&a(`retime`,m_(e,n)),t.slide&&a(`ground`,t_(e,n)),t.reach&&a(`reachLegs`,Bg(e,n)),t.slide&&a(`slide`,H_(Zg(e,n),Kg(e,n))),t.reach&&i.slide?.pivots&&a(`reachLegs`,U_(i.reachLegs,Bg(e,n))),t.penetration>0&&a(`penetration`,s_(e,n,t.penetration)),t.self&&a(`self`,z_(e,n)),t.reach&&a(`reachArms`,Vg(e)),i}var G_=e=>e*e*(3-2*e);function K_(e,t,n,r=()=>void 0){let i=new Map,a=new Map,o=r(),s=s=>{if(r()!==o&&(o=r(),i.clear(),a.clear()),i.has(s))return i.get(s);let c={};for(let[r,i]of Object.entries(t?.objects??{})){let a=[r,...i.ancestors??[]].find(t=>Sl(e.objects?.[t])),l=e.objects?.[a];c[r]=l?yl(l)||bl(l)?{...i,carried:a}:vf(l)?{...i,...Tl(Pf({spec:e,scene:t,timeMap:o},a,s),El(t.objects[a]??Ml(t)[a],i))}:{...i,...Dl(l,i,n,s)}:i}return i.set(s,c),c};return{all:s,obstacles:e=>(r()!==o&&s(e),a.has(e)||a.set(e,Object.fromEntries(Object.entries(s(e)).filter(([,e])=>!e.carried))),a.get(e))}}function q_(e,t,n,r){if(r.prop)return n.props?.[r.prop]?.[r.point];let i=r.joints??[`RightHandIndex2`,`RightHandMiddle2`];return R(i.map(n=>t.P[e.index[n]]).reduce((e,t)=>I(e,t),[0,0,0]),1/i.length)}function J_(e,t,n,r=!1,i=!0,a=null){let{sk:o}=e;return{softReach:e.softReach,foldFree:r,hold:i&&e.hold?(r,i)=>r===a?null:e.hold.lead(r,n,i,t):void 0,push:r?void 0:t=>e.push?.[t]?.get(n),swivel:t=>e.swivel?.[t]?.get(n),skinPush:r?void 0:t=>e.skinPush?.[t]?.get(n),handTarget(r,i,a){a.frame=n;let s=i.P[o.index[r===`l`?`LeftHand`:`RightHand`]],c=[];for(let[n,o]of Object.entries(t)){let s=/^w_(.+)_([lr])$/.exec(n);!s||s[2]!==r||!(o>1e-6)||c.push([o,I(zf(e,s[1],i,a,t,r),t[`fit_${s[1]}_${r}`]??[0,0,0])])}let l=c.reduce((e,[t])=>e+t,0);if(l>1){for(let e of c)e[0]/=l;l=1}let u=R(t[`hand_${r}`]??s,1-l);for(let[e,t]of c)u=I(u,R(t,e));let d=Math.max(0,...c.map(([e])=>G_(Math.min(1,Math.min(e,1-e)*3))));if(d>0){let n=i.P[o.index.Spine],r=i.P[o.index.Neck],a=L(r,n),s=I(n,R(a,Math.min(1,Math.max(0,z(L(u,n),a)/z(a,a))))),c=e.spec.detourRadius??.25,l=L(u,s),f=B(l);if(f<c){let e=W(ms([0,1,0],t.yaw??0),[0,0,1]),n=V(I(f>1e-6?R(l,1/f):e,R(e,.6)));u=I(u,R(L(I(s,R(n,c)),u),d))}}return u},keepOut:e.keepOut&&!r?(n,r,i)=>{let a=(1-M_(e.spec,t,n))*Math.min(1,Math.max(0,t[`armw_${n}`]??0));for(let t=0;t<2&&a>.001;t++){let t=vc(e.keepOut.body,o,r,i,yc,e.keepOut.skip);if(t===i)break;i=I(i,R(L(t,i),a))}return i}:void 0,afterArm:(t,n,r)=>Kf(e,t,n,r),grip:r?void 0:(r,i,a)=>Bm(e,o,i,il[r],r,t,n,a)}}function Y_(e,t,n,r=!0){let i={...$m(t,e.idle,n)};for(let t of[`l`,`r`])e.busy?.[t]&&(i[`hangoff_${t}`]=e.busy[t][n]);for(let t of e.spec.fits??[]){let a=`w_${t.anchor}_${t.side}`;if(!(i[a]>1e-4))continue;let o={...i,[a]:1,[`armw_${t.side}`]:1};for(let e of Object.keys(o))e!==a&&RegExp(`^w_.+_${t.side}$`).test(e)&&(o[e]=0);let s=[0,0,0];for(let i=0;i<6;i++){o[`fit_${t.anchor}_${t.side}`]=s;let{s:i,diag:a}=vl(e.sk,o,J_(e,o,n,!0,r,t.side)),c=q_(e.sk,i,a,t.effector),l=I(zf(e,t.anchor,i,a,o,t.side),t.offset??[0,0,0]);if(!c)break;s=I(s,L(l,c))}i[`fit_${t.anchor}_${t.side}`]=s}let{s:a,diag:o}=vl(e.sk,i,J_(e,i,n,!1,r));return o.frame=n,{s:a,diag:o,c:i}}function X_(e,{sk:t,scene:n},r={}){if(e?.schema!==`cozyclay.motion-spec.v1`)throw Error(`MOTION_SPEC_INVALID: schema must be cozyclay.motion-spec.v1`);let i=Math.round(e.frames);if(!(i>=1&&i<=2e4))throw Error(`MOTION_SPEC_INVALID: frames must be 1..20000`);let a=V_(e.fix),[o,s]=r.window?[Math.max(0,r.window[0]),Math.min(i-1,r.window[1])]:[0,i-1],c={sk:t,spec:e,scene:n,softReach:a.reach,push:{l:new Map,r:new Map},swivel:{l:new Map,r:new Map},skinPush:{l:new Map,r:new Map},keepOut:a.self?bc(t):null},l={ctx:c,fps:e.fps??30,frameCount:i,f0:o,frames:[]};c.objectPose=(e,t,n)=>xm(l,e,t,n),c.objectHand=(e,t)=>bm(l,e,t),c.restingAt=(e,t)=>mm(l,e,t);let u={rebake(r){l.keys=r,l.baked=rm(r,i,em(e.flow)),Ig(l.baked,r,i),c.idle=Qm(l.baked,{spec:e,sk:t,frameCount:i}),c.busy=Zm(l.baked,e,i,l.fps);let a=K_(e,n,l.baked,()=>l.timeMap);c.objectsAt=a.all,l.objectsAt=o?e=>a.obstacles(e+o):a.obstacles},solve(e){for(let t of e)t>=o&&t<=s&&(l.frames[t-o]=Y_(c,im(l.baked,t),t))},all:()=>Array.from({length:s-o+1},(e,t)=>o+t)};return c.hold=ff(c,l,e=>Y_(c,im(l.baked,e),e,!1),e=>Y_(c,im(l.baked,e),e)),u.rebake(r.keys??Og(e,t)),u.solve(u.all()),l.fixed=r.fixes===!1?{}:W_(l,a,u,{whole:!r.window}),c.hold&&l.timeMap&&u.solve(u.all()),l}var Z_=`{ f, pos: [x, y, z], rot: [x, y, z, w] } or { f, pos, aim: [x, y, z], roll? }`,Q_=`{ at, onto?, bounce? }`,$_=e=>Array.isArray(e)&&e.length===4&&e.every(Number.isFinite)&&Math.abs(Math.hypot(...e)-1)<=.01,ev=e=>Cp(e)&&Math.hypot(...e)>1e-9;function tv(e,t,n){if(n.rot!==void 0&&n.aim!==void 0)return e(`${t} gives both rot and aim; give one: rot [x, y, z, w], or aim [x, y, z] (the world direction its +Y points) with roll`);if(n.aim===void 0){n.roll!==void 0&&e(`${t}.roll turns the object about aim; give aim [x, y, z] with it, or leave roll out (rot fixes the roll)`),n.lean!==void 0&&e(`${t}.lean lets the compiler lean aim; give aim [x, y, z] with it (rot is used exactly)`),$_(n.rot)||e(`${t}.rot must be a unit quaternion [x, y, z, w], got ${Y(n.rot)}${n.rot===void 0?`; or give aim [x, y, z], the world direction its +Y points`:``}`);return}ev(n.aim)||e(`${t}.aim must be a non-zero world direction [x, y, z] for the object's +Y (a bat: knob to barrel), got ${Y(n.aim)}`),n.roll!==void 0&&!Number.isFinite(n.roll)&&e(`${t}.roll must be degrees about aim (a number), got ${Y(n.roll)}`),n.lean!==void 0&&!(Number.isFinite(n.lean)&&n.lean>=0&&n.lean<=45)&&e(`${t}.lean must be the most degrees the compiler may lean aim (0..45), got ${Y(n.lean)}`)}function nv(e,t,n,r,i,a=!1){if(!Array.isArray(r.keys))return e(`${n}.keys must be an array of ${Z_}`);let o=Number.isInteger(i)?i-1:1/0,s=a?0:r.grab??0,c=a?o:r.release??o,l=new Map;r.keys.forEach((r,i)=>{let o=`${n}.keys[${i}]`;if(!r||typeof r!=`object`||Array.isArray(r))return e(`${o} must be ${Z_}, got ${Y(r)}`);for(let e of Object.keys(r))tp.includes(e)||t(`${o} has unknown field "${e}"${Tp(e,tp)}; a key is ${Z_}`);Number.isInteger(r.f)?r.f<s||r.f>c?e(a?`${o}.f = ${r.f} is outside the take (0..${c})`:`${o}.f = ${r.f} is outside grab..release (${s}..${c}); keys pose a carried object only while it is in hand (drop its prop to move it on its own, C17)`):l.has(r.f)?e(`${o}.f = ${r.f}: keys[${l.get(r.f)}] is at that frame already; one key per frame`):l.set(r.f,i):e(`${o}.f must be a whole frame, got ${Y(r.f)}`),Cp(r.pos)||e(`${o}.pos must be [x, y, z], the world position of the object's base (a group: its root), got ${Y(r.pos)}`),tv(e,o,r)})}function rv(e,t,n,r,i){let a=/^object:(.+?)(?:\.(?:center|top|base))?$/s.exec(i)?.[1];if(a===void 0)return;let o=am(n,a).flatMap(t=>[t,...n.objects[t].ancestors??[]].find(t=>Sl(e.objects?.[t]))??[]).find(t=>bl(e.objects[t]));o&&t(`${r} "${i}": "${a}" moves with the follow entry objects.${o}; a follow entry rides a joint, landmark, prop or anchor point, or an object no follow entry moves`)}function iv(e,t,n,r,i){Hp(e,t,n,`${r}.follow`,i.follow)&&rv(e,t,n.scene,`${r}.follow`,i.follow),i.offset!==void 0&&!Cp(i.offset)&&t(`${r}.offset must be [x, y, z], metres along the record's own axes after aim (+Y along aim), got ${Y(i.offset)}`);let a=i.aim;if(a!==void 0&&a!==`face`&&a!==`up`){if(Array.isArray(a)){ev(a)||t(`${r}.aim must be a non-zero world direction [x, y, z], got ${Y(a)}`);return}if(typeof a!=`string`||!/^[a-z]+:/.test(a))return t(`${r}.aim must be "face", "up", a world direction [x, y, z] or a point ref (toward it), where the record's +Y points; got ${Y(a)}`);Hp(e,t,n,`${r}.aim`,a)&&rv(e,t,n.scene,`${r}.aim`,a)}}function av(e,t,n,r){return n===void 0||Number.isInteger(n)&&n>=0&&(!Number.isInteger(r)||n<r)?!0:(e(`${t} must be a whole frame 0..${Number.isInteger(r)?r-1:`frames-1`}, got ${Y(n)}`),!1)}function ov(e,t,n,r,{frames:i,scene:a,carry:o}){let s=Array.isArray(r.fall)?r.fall:[r.fall],c=new Set;s.length||e(`${n}.fall is an empty list; give ${Q_} or a list of them`),s.forEach((s,l)=>{let u=Array.isArray(r.fall)?`${n}.fall[${l}]`:`${n}.fall`;if(!s||typeof s!=`object`||Array.isArray(s))return e(`${u} must be ${Q_} (at: the frame it starts to fall), got ${Y(s)}`);for(let e of Object.keys(s))ep.includes(e)||t(`${u} has unknown field "${e}"${Tp(e,ep)}; a fall is ${Q_}`);if(s.at===void 0)e(`${u}.at must be the whole frame it starts to fall`);else if(av(e,`${u}.at`,s.at,i)){c.has(s.at)&&e(`${u}.at = ${s.at}: another fall starts on that frame`),c.add(s.at);let t=r.grab??0,n=r.release;o&&s.at>=t&&(n===void 0||s.at<n)&&e(`${u}.at = ${s.at} is while it is in hand (grab ${t}..release ${n??`end`}); a carried object falls before its grab or from its release on`)}s.onto!==void 0&&Pp(e,a,`${u}.onto`,s.onto,{groups:!0}),s.bounce!==void 0&&!(Number.isFinite(s.bounce)&&s.bounce>=0&&s.bounce<=.6)&&e(`${u}.bounce must be 0..0.6 (the share of its landing speed it bounces back with; 0 lands dead), got ${Y(s.bounce)}`)})}function sv(e,t,n){n.visible!==void 0&&(typeof n.visible!=`string`||!n.visible)&&e(`${t}.visible must name a channel (shown above 0.5)`),n.level!==void 0&&(typeof n.level!=`string`||!n.level)&&e(`${t}.level must name a channel (the record's level 0..4: 0 dark, 1 as authored; it scales its light, glow and effect rate)`)}function cv(e,t,{sk:n,scene:r,frames:i=e.frames,unknown:a=t}){for(let[o,s]of Object.entries(e.objects??{})){let c=`objects.${o}`,l=s?.prop===void 0?bl(s)?`follow`:vf(s)?`free`:xl(s)?`switch`:`hinge`:`carry`,u=$f[l];(l!==`switch`&&l!==`follow`||!r?.others?.[o])&&Pp(t,r,c,o,{groups:!0});for(let e of Object.keys(s??{}))!u.includes(e)&&(l!==`hinge`||e!==`keys`&&e!==`fall`)&&a(`${c} (${l}) has unknown field "${e}"${Tp(e,u)}; fields: ${u.join(`, `)}`);if(l===`follow`){iv(e,t,{sk:n,scene:r},c,s),sv(t,c,s);continue}if(l===`switch`){s.visible===void 0&&s.level===void 0&&t(`${c} needs visible or level (a channel): a switch shows, hides or dims "${o}" without moving it; a carry needs prop, a hinge pivot and channel`),sv(t,c,s);continue}if(l===`free`){s.keys!==void 0&&nv(t,a,c,s,i,!0),s.fall!==void 0&&ov(t,a,c,s,{frames:i,scene:r,carry:!1}),sv(t,c,s);continue}if(l===`carry`){e.props?.[s.prop]||t(`${c}.prop "${s.prop}" is not in spec.props`);for(let e of[`at`,`along`])s[e]!==void 0&&!Cp(s[e])&&t(`${c}.${e} must be [d, l, n] along the palm axes, got ${Y(s[e])}`);sv(t,c,s),av(t,`${c}.grab`,s.grab,i)&&av(t,`${c}.release`,s.release,i)&&s.grab!==void 0&&s.release!==void 0&&!(s.grab<s.release)&&t(`${c}: grab (${s.grab}) must come before release (${s.release})`),s.keys!==void 0&&nv(t,a,c,s,i),s.fall!==void 0&&ov(t,a,c,s,{frames:i,scene:r,carry:!0});continue}(s?.keys!==void 0||s?.fall!==void 0)&&t(`${c}: a hinge turns by its channel "${s.channel}", keyed in spec.keys; keys and fall move an object with no pivot, axis or channel (C17), or a carried one (prop)`),Cp(s?.pivot)||t(`${c}.pivot must be [x, y, z] (world hinge point), got ${Y(s?.pivot)}`),s?.axis!==void 0&&(!Cp(s.axis)||Math.hypot(...s.axis)<1e-9)&&t(`${c}.axis must be a non-zero [x, y, z], got ${Y(s.axis)}`),(typeof s?.channel!=`string`||!s.channel)&&t(`${c}.channel must name the angle channel (degrees)`)}}var X=e=>{let t=Math.round(e*1e3)/1e3;return Object.is(t,-0)?0:t},lv=e=>`[${e.map(e=>{let t=X(e);return t>0?`+${t}`:`${t}`}).join(`, `)}]`,uv=[`near`,`above`,`moved`,`still`,`speed`],dv={near:.05,above:0,moved:.05,still:.01},fv=new Set([`near`,`still`]),pv=new Set([`moved`,`still`,`speed`]),mv=e=>uv.filter(t=>e?.[t]!==void 0),hv=(e,t)=>e.name??`goals[${t}]`,gv=(e,t)=>(fv.has(t)?e.tol:e.by)??dv[t],_v=(e,t)=>e.mode??(t===`speed`?`any`:`all`),vv=e=>!e.startsWith(`object:`)||/\.(center|top|base)$/.test(e)?e:`${e}.base`;function yv(e,t){let[,n,r]=/^object:(.+)\.(center|top|base)$/s.exec(vv(t))??[],i=am(e,n).map(t=>e.objects[t]);if(!i.length)return null;let a=[1/0,1/0,1/0],o=[-1/0,-1/0,-1/0];for(let e of i)for(let t of[-1,1])for(let n of[0,2])for(let r of[-1,1]){let i=I(e.pos,W(e.R,[t*e.half[0],n*e.half[1],r*e.half[2]]));for(let e=0;e<3;e++)a[e]=Math.min(a[e],i[e]),o[e]=Math.max(o[e],i[e])}let s=[(a[0]+o[0])/2,(a[1]+o[1])/2,(a[2]+o[2])/2];return r===`top`?[s[0],o[1],s[2]]:r===`base`?[s[0],a[1],s[2]]:s}var bv=e=>e.moved??e.still,xv=(e,t,n=Array.isArray(t.at)?t.at[0]:t.at)=>bv(t).startsWith(`object:`)?yv(e.ctx.scene,bv(t)):zp(e,n,bv(t));function Sv(e,t,n){let r=zp(e,n,t),i=e.fps??24;if(!r)return null;let a=zp(e,n-1,t),o=zp(e,n+1,t);if(a&&o)return B(L(o,a))*i/2;let s=a??o;return s?B(L(r,s))*i:null}function Cv(e,t,n,r,i){if(n===`near`)return Bp(e,r,t.near[0],t.near[1]);if(n===`above`){let n=zp(e,r,t.above[0]),i=zp(e,r,t.above[1]);return n&&i?n[1]-i[1]:null}if(n===`speed`)return Sv(e,t.speed,r);let a=i&&zp(e,r,vv(bv(t)));return a?B(L(a,i)):null}var wv=(e,t,n)=>fv.has(e)?t-n:n-t,Tv=e=>Math.max(1e-4,Math.round(e*1e4)/1e4);function Ev(e,t,n,r,i){let a=gv(t,n),o=(n===`moved`||n===`still`)&&!bv(t).startsWith(`object:`),s=n===`moved`||n===`still`?xv(e.out,t,r):null,c=[];for(let o=Math.max(r,e.f0);o<=Math.min(i,e.last);o++){let r=Cv(e.out,t,n,o,s);r!==null&&c.push({f:o,v:r,short:wv(n,r,a)})}return{rows:c,from:o?r:void 0}}function Dv(e,t){if(e.events.has(t))return e.events.get(t);if(e.visiting.has(t))return null;e.visiting.add(t);let n=e.goals[t],r=mv(n)[0],i=r&&Ov(e,t),a;if(i&&!i.wait){let{rows:t}=Ev(e,n,r,i.a,i.b);a=t.length?t.find(e=>e.short<=0)?.f??null:void 0}else a=i?.wait?null:void 0;return e.visiting.delete(t),e.events.set(t,a),a}function Ov(e,t){let n=e.goals[t],[r,i]=Array.isArray(n.at)?n.at:[n.at,n.at];for(let a of[`after`,`before`]){if(n[a]===void 0)continue;let o=e.names.get(n[a]);if(o===void 0||o===t)return{wait:`${a} "${n[a]}" names no other goal`};let s=Dv(e,o);if(s===void 0)return{skip:!0};if(s===null)return{wait:`waits for "${n[a]}" (${a}), which never holds`};if(a===`after`?r=Math.max(r,s+1):i=Math.min(i,s-1),r>i)return{wait:`no frames left ${a} "${n[a]}" (it holds first at f${s}; at is f${Array.isArray(n.at)?`${n.at[0]}-f${n.at[1]}`:n.at})`}}return{a:r,b:i}}function kv(e,t,n,r,i,a){let o=i?`f${n.f}, the best of f${i[0]}-f${i[1]}`:`f${n.f}`;return t===`near`?`${e}: ${X(n.v)} m at ${o} (needs <= ${r})`:t===`above`?`${e}: ${X(n.v)} m above at ${o} (needs >= ${r})`:t===`speed`?`${e}: ${X(n.v)} m/s at ${o} (needs >= ${r})`:t===`still`?`${e}: ${X(n.v)} m from ${a===void 0?`its scene pose`:`f${a}`} at ${o} (needs <= ${r})`:`${e}: moved ${X(n.v)} m${a===void 0?``:` from f${a}`} at ${o} (needs >= ${r})`}function Av(e,t,n){let r=e.f0??0;return Ov({out:e,goals:t,names:new Map(t.map((e,t)=>[hv(e,t),t])),f0:r,last:r+(e.frames?.length??0)-1,events:new Map,visiting:new Set},n)}function jv(e,t){let n=[],r=[],i=e.f0??0,a={out:e,goals:t,names:new Map(t.map((e,t)=>[hv(e,t),t])),f0:i,last:i+(e.frames?.length??0)-1,events:new Map,visiting:new Set};return t.forEach((e,t)=>{let o=mv(e)[0];if(!o)return;let s=hv(e,t),c=gv(e,o),l=Ov(a,t),u=Array.isArray(e.at)?e.at[0]:e.at;if(l.skip)return;if(l.wait){r.push({name:s,kind:o,ok:!1,value:null,at:null,need:c}),u>=i&&u<=a.last&&n.push({kind:`GOAL`,msg:`${s}: ${l.wait}`,frame:u-i,value:.01,limit:0});return}let{rows:d,from:f}=Ev(a,e,o,l.a,l.b);if(!d.length)return;o===`moved`&&f!==void 0&&(d=[d.reduce((e,t)=>t.v>e.v?t:e)]);let p=_v(e,o)===`any`,m=Array.isArray(e.at)?l.a!==l.b:!1,h=d.reduce((e,t)=>(p?t.short<e.short:t.short>e.short)?t:e),g=h.short<=0;if(r.push({name:s,kind:o,ok:g,value:X(h.v),at:h.f,need:c}),!g)for(let e of p?[h]:d.filter(e=>e.short>0))n.push({kind:`GOAL`,msg:kv(s,o,e,c,p&&m?[l.a,l.b]:null,f),frame:e.f-i,value:Tv(e.short),limit:0})}),{issues:n,results:r}}var Mv=`{ name?, near | above | moved | still | speed, tol?, by?, at, mode?, after?, before? }`,Nv=new Set([`near`,`still`]),Pv=new Set([`above`,`moved`,`speed`]);function Fv(e,t){let n=Number.isFinite(t)&&t!==0?Math.abs(t):.05;return e===`speed`?`speed takes by (the point reaches by m/s): use by: ${n} (m/s), not tol`:e===`above`?`above takes by (a.y - b.y >= by, default 0): use by: ${n} for a at least ${n} m above b, or by: -${n} to let a sit up to ${n} m below b, not tol`:`moved takes by (the object moves >= by, default 0.05): use by: ${n} (metres), not tol`}var Iv=e=>typeof e==`string`&&e!==``&&!/^[a-z]+:/.test(e),Lv=e=>[`moved`,`still`,`speed`].find(t=>Iv(e?.[t]));function Rv(e){return Array.isArray(e)&&e.some(Lv)?e.map(e=>{let t=Lv(e);return t?{...e,[t]:`object:${e[t]}`}:e}):e}function zv(e,t,n,r,i=``){let a=e=>Number.isInteger(e);if(n===void 0)return e(`${t} needs at: a frame or [f0, f1] (absolute frames within 0..${r-1})`);let o=Array.isArray(n)?n:[n,n];if(!(o.length===2&&o.every(a)&&o[0]<=o[1]))return e(`${t}.at must be an integer frame or [f0, f1] with f0 <= f1, got ${Y(n)}`);(o[0]<0||o[1]>r-1)&&e(`${t}.at = ${Y(n)} is outside 0..${r-1} (spec.frames ${r})${o[1]>r-1?i:``}`)}function Bv(e,t,n,r,i,a){let o=i[a];if(typeof o!=`string`)return t(`${r}.${a} must be an object id or a point ref (object:<id>[.center|.top|.base], prop:<prop>.<point>, joint:<Bone>, landmark:mouth, anchor:<name>), got ${Y(o)}`);Hp(e,t,n,`${r}.${a}`,o)&&a!==`speed`&&!o.startsWith(`object:`)&&(Number.isInteger(i.at)||Array.isArray(i.at)&&i.at[0]===i.at[1])&&t(`${r}.${a} "${o}" measures ${a===`moved`?`how far the point gets`:`how far the point strays`} from where it is at at[0], so at must be [f0, f1] with f0 < f1, got ${Y(i.at)}`)}function Vv(e,t,n,r,i,a){let o=`goals[${i}]`,s={sk:n.sk,scene:n.scene},c=n.unknown??t;if(!r||typeof r!=`object`||Array.isArray(r))return t(`${o} must be ${Mv}, got ${Y(r)}`);for(let e of Object.keys(r))ap.includes(e)||c(`${o} has unknown field "${e}"${Tp(e,ap)} (fields: ${ap.join(`, `)})`);r.name!==void 0&&(typeof r.name!=`string`||!r.name.trim()?t(`${o}.name must be a non-empty string, got ${Y(r.name)}`):a.has(r.name)?t(`${o}.name "${r.name}" is already used by goals[${a.get(r.name)}]; goal names must differ`):a.set(r.name,i));let l=mv(r),u=l[0];if(l.length||t(`${o} needs one predicate: ${uv.join(`, `)}`),l.length>1&&t(`${o} names ${l.join(` and `)}; a goal takes exactly one of ${uv.join(`, `)} (split it into ${l.length} goals)`),l.length===1&&pv.has(u))Bv(e,t,s,o,r,u);else if(l.length===1){let n=r[u];Array.isArray(n)&&n.length===2&&n.every(e=>typeof e==`string`)?n.forEach((n,r)=>Hp(e,t,s,`${o}.${u}[${r}]`,n)):t(`${o}.${u} must be [ref, ref] (two point refs), got ${Y(n)}`)}r.tol!==void 0&&(l.length===1&&!Nv.has(u)?t(`${o}.tol applies to near and still; ${Fv(u,r.tol)}`):Number.isFinite(r.tol)&&r.tol>=0||t(`${o}.tol must be a number >= 0 (metres), got ${Y(r.tol)}`)),r.by===void 0?u===`speed`&&l.length===1&&t(`${o}.speed needs by: the speed the point must reach, in m/s (e.g. by: 2)`):l.length===1&&!Pv.has(u)?t(`${o}.by applies to above, moved and speed; ${u} takes tol`):(!Number.isFinite(r.by)||u===`moved`&&r.by<0||u===`speed`&&r.by<=0)&&t(`${o}.by must be a ${u===`moved`?`number >= 0 (metres)`:u===`speed`?`number > 0 (m/s)`:`finite number (metres)`}, got ${Y(r.by)}`),r.mode!==void 0&&r.mode!==`all`&&r.mode!==`any`&&t(`${o}.mode must be "all" or "any", got ${Y(r.mode)}`),zv(t,o,r.at,n.frames,n.past)}function Hv(e,t){let n=new Map(e.map((e,t)=>[e&&typeof e==`object`?hv(e,t):`goals[${t}]`,t])),r=e.map((e,r)=>[`after`,`before`].flatMap(i=>{if(!e||typeof e!=`object`||e[i]===void 0)return[];let a=n.get(e[i]);return typeof e[i]!=`string`||a===void 0?(t(`goals[${r}].${i} must name another goal (its name, or goals[<i>] when it has none), got ${Y(e[i])}${typeof e[i]==`string`?Tp(e[i],[...n.keys()]):``}`),[]):a===r?(t(`goals[${r}].${i} names the goal itself; name the goal whose first met frame this one waits for`),[]):[a]})),i=e.map(()=>0),a=[],o=n=>{if(i[n]!==2){if(i[n]===1){let r=a.slice(a.indexOf(n)).map(t=>`"${hv(e[t],t)}"`);return t(`goals wait on each other through after/before: ${[...r,r[0]].join(` -> `)}; one of them must not wait`)}i[n]=1,a.push(n);for(let e of r[n])o(e);a.pop(),i[n]=2}};e.forEach((e,t)=>o(t))}function Uv(e,t,n){if(e.goals===void 0)return;if(!Array.isArray(e.goals))return t(`spec.goals must be an array of goals ${Mv}, got ${Y(e.goals)}`);let r=new Map;e.goals.forEach((i,a)=>Vv(e,t,n,i,a,r)),Hv(e.goals,t)}var Wv=new Set([`l`,`r`]),Gv=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Kv(e,t,n,r){if(Gv(n))for(let i of Object.keys(n))r.includes(i)||e(`${t} has unknown field "${i}"${Sp(i,r)} (fields: ${r.join(`, `)})`)}function qv(e,t,{sk:n,scene:r,unknown:i=t}){for(let[a,o]of Object.entries(e.anchors??{})){let s=`anchors.${a}`;if(/_[lr]$/.test(a)&&t(`${s}: an anchor name may not end in _l or _r (the weight channel w_${a}_l would read as anchor "${a.slice(0,-2)}"); the side goes on the weight channel, so name it "${a.slice(0,-2)}"`),!o||!Xf[o.kind]){t(`${s}.kind must be one of ${Object.keys(Xf).join(`, `)}, got ${Y(o?.kind)}`);continue}Kv(i,`${s} (${o.kind})`,o,[`kind`,...Xf[o.kind]]);for(let e of[`p`,`offset`,`local`])o[e]!==void 0&&!Cp(o[e])&&t(`${s}.${e} must be [x, y, z], got ${Y(o[e])}`);(o.kind===`world`||o.kind===`body`)&&o.p===void 0&&t(`${s} (${o.kind}) needs p: [x, y, z]${o.kind===`body`?`, ${vp.pole}`:``}`),o.kind===`bone`&&Np(t,n,s,o.bone),o.kind===`segment`&&(Np(t,n,`${s}.from`,o.from),Np(t,n,`${s}.to`,o.to),o.reach!==void 0&&!Wv.has(o.reach)&&t(`${s}.reach must be "l" or "r"`)),o.kind===`object`&&Pp(t,r,s,o.object,{groups:!0}),o.kind===`landmark`&&o.name!==`mouth`&&t(`${s}: the only landmark is "mouth", got ${Y(o.name)}`),o.kind===`prop`&&!e.props?.[o.prop]?.points?.[o.point]&&o.point!==`origin`&&t(`${s} needs prop point ${o.prop}.${o.point}, which spec.props does not define`)}}function Jv(e,t,{sk:n,unknown:r=t}){for(let[i,a]of Object.entries(e.props??{})){let e=`props.${i}`;Kv(r,e,a,Zf),Wv.has(a?.hand)||t(`${e}.hand must be "l" or "r", got ${Y(a?.hand)}`),!Array.isArray(a?.origin)||!a.origin.length?t(`${e}.origin must list one or more bones`):a.origin.forEach(r=>Np(t,n,`${e}.origin`,r));for(let[n,r]of Object.entries(a?.points??{}))Cp(r)||t(`${e}.points.${n} must be [d, l, n] along the palm axes, got ${Y(r)}`)}(e.fits??[]).forEach((i,a)=>{let o=`fits[${a}]`;Kv(r,o,i,Qf),Wv.has(i?.side)||t(`${o}.side must be "l" or "r", got ${Y(i?.side)}`),e.anchors?.[i?.anchor]||t(`${o}.anchor "${i?.anchor}" is not in spec.anchors${Tp(String(i?.anchor),Object.keys(e.anchors??{}))}`);let s=i?.effector;s?.prop===void 0?Array.isArray(s?.joints)?s.joints.forEach(e=>Np(t,n,`${o}.effector`,e)):t(`${o}.effector must be { prop, point } or { joints: [bone, ...] }`):e.props?.[s.prop]?.points?.[s.point]||t(`${o}.effector ${s.prop}.${s.point} is not a point of spec.props`),i?.offset!==void 0&&!Cp(i.offset)&&t(`${o}.offset must be [x, y, z]`),i?.orient!==void 0&&typeof i.orient!=`boolean`&&t(`${o}.orient must be true or false (false: the hand takes no grip turn), got ${Y(i.orient)}`)})}function Yv(e,t,{frames:n,unknown:r=t,past:i=``}){(e.generators??[]).forEach((e,a)=>{let o=`generators[${a}]`;if(e?.type!==`walk`)return t(`${o}.type must be "walk", got ${Y(e?.type)}`);Kv(r,o,e,np),(!Number.isInteger(e.f0)||e.f0<0||e.f0>n-1)&&t(`${o}.f0 must be an integer frame within 0..${n-1}, got ${Y(e.f0)}${e.f0>n-1?i:``}`),e.heading!==void 0&&!(Array.isArray(e.heading)&&e.heading.length===2&&e.heading.every(Number.isFinite))&&t(`${o}.heading must be [h0, h1] in degrees (${vp.yaw}), got ${Y(e.heading)}`);for(let n of np.slice(2))n!==`heading`&&e[n]!==void 0&&!Number.isFinite(e[n])&&t(`${o}.${n} must be a finite number, got ${Y(e[n])}`);e.steps!==void 0&&!(Number.isInteger(e.steps)&&e.steps>=1)&&t(`${o}.steps must be an integer >= 1, got ${Y(e.steps)}`),e.turnDistance!==void 0&&!(e.turnDistance>0)&&t(`${o}.turnDistance must be > 0 m, got ${Y(e.turnDistance)}`)})}function Xv(e,t,{sk:n,scene:r,frames:i,unknown:a=t,past:o=``}){let s=e.checks??{};for(let e of Object.keys(s))rp.includes(e)||a(`checks.${e} is not a check${Tp(e,rp)} (checks: ${rp.join(`, `)})`);let c=(e,n=()=>{})=>{let r=s[e],i=`{ ${ip[e].join(`, `)} }`;if(r!==void 0){if(!Array.isArray(r))return t(`checks.${e} must be an array of ${i}, got ${Y(r)}`);r.forEach((r,o)=>{if(!Gv(r))return t(`checks.${e}[${o}] must be ${i}, got ${Y(r)}`);Kv(a,`checks.${e}[${o}]`,r,ip[e]),n(r,o)})}},l=(e,n)=>{n!==void 0&&typeof n!=`string`&&(Array.isArray(n)&&n.length===2&&n.every(Number.isInteger)&&n[0]<=n[1]&&n[0]>=0&&n[1]<=i-1||t(`${e}.when must be a weight channel or [f0, f1] within 0..${i-1}, got ${Y(n)}${Array.isArray(n)&&n[1]>i-1?o:``}`))};c(`contacts`,(r,i)=>{Fp(e,t,n,`checks.contacts[${i}].point`,r.point),Fp(e,t,n,`checks.contacts[${i}].target`,r.target),l(`checks.contacts[${i}]`,r.when)}),c(`orient`,(r,i)=>{Fp(e,t,n,`checks.orient[${i}].from`,r.from),Fp(e,t,n,`checks.orient[${i}].to`,r.to),l(`checks.orient[${i}]`,r.when),r.along===`face`||r.along===`up`||Cp(r.along)||t(`checks.orient[${i}].along must be "face", "up" or [x, y, z]`)}),c(`below`,(e,r)=>{Np(t,n,`checks.below[${r}].joint`,e.joint),Np(t,n,`checks.below[${r}].ref`,e.ref),l(`checks.below[${r}]`,e.when)}),c(`clearance`,(e,n)=>{Pp(t,r,`checks.clearance[${n}]`,e.object),l(`checks.clearance[${n}]`,e.frames)}),c(`appear`,(r,i)=>{Np(t,n,`checks.appear[${i}].joint`,r.joint),e.anchors?.[r.anchor]||t(`checks.appear[${i}].anchor "${r.anchor}" is not in spec.anchors`)}),c(`supports`,(e,n)=>Pp(t,r,`checks.supports[${n}]`,e.object)),c(`allow`);for(let e of Object.keys(s.limits??{}))e in cd||a(`checks.limits.${e} is not a QA limit${Tp(e,Object.keys(cd))}`);let u=e.fix;if(u!==void 0&&u!==!1&&(typeof u!=`object`||!u))t(`spec.fix must be false or { reach, slide, penetration, self, retime }`);else for(let e of Object.keys(u||{}))B_.includes(e)||a(`spec.fix.${e} is not a fix${Tp(e,B_)} (fixes: ${B_.join(`, `)})`)}function Zv(e,t,n){qv(e,t,n),Jv(e,t,n),cv(e,t,n),Yv(e,t,n),Xv(e,t,n),Uv(e,t,n)}var Qv=12;function $v(e){let t=new Set(e.channels??[]);for(let n of Object.values(e.objects??{}))for(let e of[n?.channel,n?.visible,n?.level])typeof e==`string`&&e&&t.add(e);let n=e.checks??{},r=e=>Array.isArray(e)?e.filter(e=>e&&typeof e==`object`):[];for(let e of[n.contacts,n.orient,n.below,n.clearance].flatMap(r))typeof e.when==`string`&&t.add(e.when);for(let e of r(n.appear))typeof e.channel==`string`&&t.add(e.channel);return t}function ey(e,t,n,r){if(up.has(n)){if(!Cp(r))return e(`${t} ${n} must be [x, y, z] (3 finite numbers), got ${Y(r)}`);if(dp.has(n)){let i=Math.hypot(...r);if(i<1e-6)return e(`${t} ${n} = ${Y(r)} has no direction; a pole is ${vp.pole}`);n.startsWith(`knee`)&&r[2]<-.7*i&&e(`${t} ${n} = ${Y(r)} points backward; knees bend toward +z. A pole is ${vp.pole}`)}n.startsWith(`foot`)&&r[1]<.04&&e(`${t} ${n} y = ${r[1]} puts the ankle into the floor; foot_* is ${vp.foot}`);return}if(pp.has(n)){if(!r||typeof r!=`object`||Array.isArray(r))return e(`${t} ${n} must be { preset: weight }, presets ${hp.join(`, `)}; got ${Y(r)}`);for(let[i,a]of Object.entries(r))hp.includes(i)?Number.isFinite(a)&&a>=0&&a<=1||e(`${t} ${n}.${i} must be a weight within 0..1, got ${Y(a)}`):e(`${t} ${n} preset "${i}" is unknown${Tp(i,hp)} (presets: ${hp.join(`, `)})`);return}if(!Number.isFinite(r))return e(`${t} ${n} must be a finite number${n===`yaw`?` (degrees; ${vp.yaw})`:n.startsWith(`fyaw`)?` (${vp.fyaw})`:``}, got ${Y(r)}`);let i=_p(n);i&&(r<i[1]||r>i[2])&&e(`${t} ${n} = ${r} is outside ${i[1]}..${i[2]} (${i[3]})`)}var ty=e=>Array.isArray(e)?e:[],ny=e=>Array.isArray(e)?e[1]:e;function ry(e,t){let n=[...ty(e.keys).map(e=>e?.f),...ty(e.generators).map(e=>e?.f0)].filter(Number.isInteger),r=e.checks??{},i=[...[`contacts`,`orient`,`below`].flatMap(e=>ty(r[e]).map(e=>ny(e?.when))),...ty(r.clearance).map(e=>ny(e?.frames)),...ty(e.goals).map(e=>ny(e?.at))].filter(Number.isInteger),a=Math.max(t-1,...n,...i)+1;return`; set frames >= ${a}${Math.max(0,...n)+1>=a?` or frames: "auto"`:``}`}function iy(e,t,n,r,i=``){if(e.keys!==void 0&&!Array.isArray(e.keys))return t(`spec.keys must be an array of { f, set, step? }`);let a=Object.keys(e.anchors??{}),o=$v(e),s=[...up,...fp,...pp,...o,...a.flatMap(e=>[`w_${e}_l`,`w_${e}_r`])];(e.keys??[]).forEach((e,c)=>{let l=e?.src?e.src.startsWith(`keys[`)?e.src:`${e.src} key`:`keys[${c}]`;if(!e||typeof e!=`object`)return t(`${l} must be { f, set, step? }`);for(let t of Object.keys(e))Jf.includes(t)||r(`${l} has unknown field "${t}"${Sp(t,Jf)}; a key is { f, set, step? }`);if(!Number.isInteger(e.f))return t(`${l}.f must be an integer frame, got ${Y(e.f)}`);(e.f<0||e.f>n-1)&&t(`${l}.f = ${e.f} is outside 0..${n-1} (spec.frames ${n})${e.f>0?i:``}`);let u=`${l} (f${e.f})`;if(!e.set||typeof e.set!=`object`||Array.isArray(e.set))return t(`${u} needs set: { channel: value }`);for(let[n,r]of Object.entries(e.set)){let e=/^w_(.+)_([lr])$/.exec(n);e&&!a.includes(e[1])?t(`${u} sets ${n}, but there is no anchor "${e[1]}"${Tp(n,s)}`):e||up.has(n)||fp.has(n)||pp.has(n)?ey(t,u,n,r):o.has(n)||n.endsWith(`_vis`)?Number.isFinite(r)||t(`${u} ${n} must be a finite number, got ${Y(r)}`):t(`${u} sets unknown channel "${n}"${Tp(n,s)}`)}for(let n of e.step??[])n in e.set||t(`${u} step names "${n}", which this key does not set`);e.step!==void 0&&!Array.isArray(e.step)&&t(`${u} step must be an array of channel names`)})}function ay(e,t,n){if(e===void 0||e===!1)return;if(!e||typeof e!=`object`||Array.isArray(e))return t(`spec.flow must be false or { smooth?, lag? }, got ${Y(e)}`);for(let t of Object.keys(e))t!==`smooth`&&t!==`lag`&&n(`spec.flow has unknown field "${t}" (fields: smooth, lag)`);e.smooth!==void 0&&typeof e.smooth!=`boolean`&&t(`spec.flow.smooth must be true or false, got ${Y(e.smooth)}`);let r=e=>Number.isFinite(e)&&e>=0&&e<=6,i=e.lag;if(!(i===void 0||i===!1||r(i))){if(!i||typeof i!=`object`||Array.isArray(i))return t(`spec.flow.lag must be false, 0..6 frames or { spine?, head?, arms? }, got ${Y(i)}`);for(let[e,a]of Object.entries(i))[`spine`,`head`,`arms`].includes(e)?r(a)||t(`spec.flow.lag.${e} must be 0..6 frames, got ${Y(a)}`):n(`spec.flow.lag has unknown field "${e}" (fields: spine, head, arms)`)}}function oy(e,{sk:t,scene:n,lenient:r=!1}={}){let i=[],a=e=>{i.length<Qv&&i.push(e)},o=r?()=>{}:a;if(!e||typeof e!=`object`)throw Error(`MOTION_SPEC_INVALID: spec must be an object`);e.schema!==`cozyclay.motion-spec.v1`&&a(`spec.schema must be "cozyclay.motion-spec.v1", got ${Y(e.schema)}`);for(let t of Object.keys(e))qf.includes(t)||o(`spec.${t} is not a spec field${Tp(t,qf)} (fields: ${qf.join(`, `)})`);e.fps!==void 0&&e.fps!==24&&a(`spec.fps must be 24, the timeline rate, got ${Y(e.fps)}`),ay(e.flow,a,o);let s=e.frames;(!Number.isInteger(s)||s<1||s>2e4)&&a(`spec.frames must be an integer 1..20000 or "auto", got ${Y(s)}`);let c=Number.isInteger(s)?ry(e,s):``;if(iy(e,a,Number.isInteger(s)?s:2e4,o,c),Zv(e,a,{sk:t,scene:n,frames:Number.isInteger(s)?s:2e4,lenient:r,unknown:o,past:c}),i.length)throw Error(`MOTION_SPEC_INVALID: ${i.join(`
10
- `)}${i.length>=Qv?`
11
- (more problems not listed)`:``}`)}function sy(e,t,n){let{s:r,diag:i,c:a}=e.frames[t],[o,s]=n.split(/:(.*)/s);if(o===`joint`)return r.P[e.ctx.sk.index[s]];if(o===`prop`){let[e,t]=s.split(`.`);return i.props?.[e]?.[t]??null}if(o===`anchor`)return zf(e.ctx,s,r,i,a);throw Error(`MOTION_SPEC_INVALID: check point "${n}"`)}var cy=(e,t,n)=>Array.isArray(n)?t+(e.f0??0)>=n[0]&&t+(e.f0??0)<=n[1]:!n||(e.frames[t].c[n]??0)>.99;function ly(e,t,n){return n===`up`?[0,1,0]:n===`face`?Ds(e.ctx.sk,e.frames[t].s,e.ctx.sk.index.Head,[0,0,1]):V(n)}function uy(e,t={}){let n=[],r=e.frames.length,i=e.ctx.sk.index,a=(e,t,r,i,a)=>n.push({kind:e,msg:t,frame:r,value:+i.toFixed(4),limit:a});for(let n=0;n<r;n++){for(let r of t.contacts??[])if(cy(e,n,r.when)){let t=sy(e,n,r.point),i=sy(e,n,r.target);if(!t||!i)continue;let o=B(L(t,i));o>(r.tol??.01)&&a(`CONTACT`,`${r.name}: ${(o*100).toFixed(1)} cm apart`,n,o,r.tol??.01)}for(let r of t.orient??[])if(cy(e,n,r.when)){let t=sy(e,n,r.from),i=sy(e,n,r.to);if(!t||!i)continue;let o=z(V(L(i,t)),ly(e,n,r.along));o<(r.minCos??.64)&&a(`ORIENT`,`${r.name}: cos ${o.toFixed(2)}`,n,o,r.minCos??.64)}for(let r of t.below??[])if(cy(e,n,r.when)){let{P:t}=e.frames[n].s,o=t[i[r.ref]][1]-t[i[r.joint]][1];o<(r.min??.08)&&a(`BELOW`,`${r.name}: ${r.joint} only ${(o*100).toFixed(1)} cm below ${r.ref}`,n,o,r.min??.08)}for(let r of t.clearance??[])if(cy(e,n,r.frames)){let t=e.objectsAt(n)[r.object],o=uu.find(e=>e[0]===r.part);if(!t||!o)continue;let{P:s}=e.frames[n].s,c=Math.min(...du(s[i[o[1]]],s[i[o[2]]]).map(e=>fu(e,t)))-o[3];c<r.min&&a(`CLEARANCE`,`${r.name}: ${(c*100).toFixed(1)} cm`,n,c,r.min)}}for(let n of t.appear??[])for(let t=1;t<r;t++){if((e.frames[t-1].c[n.channel]??0)>.5==(e.frames[t].c[n.channel]??0)>.5)continue;let r=B(L(sy(e,t,`joint:${n.joint}`),sy(e,t,`anchor:${n.anchor}`)));r>(n.tol??.035)&&a(`APPEAR`,`${n.name}: switches with the hand ${(r*100).toFixed(1)} cm from ${n.anchor}`,t,r,n.tol??.035)}return n}var dy=/^(.+): [\d.]+ cm off its keys$/,fy={twist:`twist about the forearm`,flex:`flex`,dev:`deviation (+ toward the thumb)`};function py(e,t){let n=e.objects[t]??Ml(e)[t];return am(e,t).flatMap(t=>{let r=e.objects[t],i=El(n,r),[a,o,s]=r.half;return[-a,a].flatMap(e=>[0,2*o].flatMap(t=>[-s,s].map(n=>I(i.pos,W(i.R,[e,t,n])))))})}function my(e,t,n){let{scene:r}=e.ctx,i=e.f0??0;for(let[a]of df(e.ctx.spec)){let o=cf(e,a),s=py(r,a);if(s.length)for(let r=Math.max(i,Math.ceil(o.t[0]));r<=Math.min(i+e.frames.length-1,Math.floor(o.t[o.t.length-1]));r++){let c=lf(o,r),l=vm(e,a,r),u=Math.max(...s.map(e=>os(I(c.pos,W(c.R,e)),I(l.pos,W(l.R,e)))));u>t.reach&&n(`REACH`,`${a}: ${(u*100).toFixed(1)} cm off its keys`,r-i,u,t.reach)}}}function hy(e,t){let n=dy.exec(t.subject)?.[1],r=e.spec?.objects?.[n];if(!r?.keys?.length)return null;let i=t.worstFrame,a=e.spec.props?.[r.prop]?.hand,o=e.fr(i).diag[`hold_${a}`]??{},s=r.keys.reduce((e,t,n)=>Math.abs(t.f-i)<Math.abs(r.keys[e].f-i)?n:e,0),c=Object.entries(Cc).filter(([e,[t,n]])=>o[e]<t||o[e]>n).map(([e,[t,n]])=>`the wrist ${fy[e]} needs ${Math.round(o[e])}deg (limit ${t}..${n})`);c.length&&(c[c.length-1]+=` after the elbow swung ${Math.round(o.swivel??0)}deg and the forearm turned`);let l=o.miss>.005&&o.fold,u=l?`the grip is ${(o.miss*100).toFixed(1)} cm inside the forearm's reach (the elbow would fold ${Math.round(o.fold)}deg; it bends to 145deg and stops at 150deg)`:`the arm is ${(o.miss*100).toFixed(1)} cm short`,d=[...o.miss>.005?[u]:[],...c],f=r.keys[s].aim&&r.keys[s].roll===void 0?``:`; an aim key without roll takes the roll the arm holds most easily`;return{cause:`objects.${n}.keys[${s}] f${r.keys[s].f}`,hint:`${n} at f${i}: ${d.length?d.join(`, `):`the hand cannot hold it there`}; ${l?`key a pose farther from the shoulder, or turn or move the body away from it`:`key a pose nearer the hand, or bring the body to it`} (root, yaw, spine_yaw)${f}`}}var gy=e=>Math.round(e*10)/10,_y=e=>Math.round(e*100)/100,vy=`held: per key, deg = the drawn +Y off the asked one (aim, or rot's +Y), cm = the drawn base off pos, got = the drawn +Y (when 1 deg off or more), rot = what an aim key used`;function yy(e){let t=df(e.ctx.spec);return t.length?Object.fromEntries(t.map(([t,n])=>{let r=cf(e,t);return[t,[...n.keys].sort((e,t)=>e.f-t.f).map((n,i)=>{let a=vm(e,t,Math.round(r.t[i])),o=[a.R[0][1],a.R[1][1],a.R[2][1]],s=gy(ys(n.aim?V(n.aim):W(vs(r.q[i]),[0,1,0]),o));return{f:n.f,deg:s,cm:gy(os(n.pos,a.pos)*100),...s>=1?{got:o.map(_y)}:{},...n.aim?{rot:r.rots[i]}:{}}})]})):null}var by=3,xy=e=>I(e.pos,W(e.R,[0,e.half[1],0])),Sy=(e,t)=>[e[0][t],e[1][t],e[2][t]];function Cy(e,t,n=null){let r=L(xy(e),xy(t)),i=[0,1,2].map(t=>Sy(e.R,t)),a=[0,1,2].map(e=>Sy(t.R,e)),o=[...i,...a,...i.flatMap(e=>a.map(t=>as(e,t)))],s={depth:1/0,axis:[0,1,0]};for(let c of o){if(B(c)<1e-6)continue;let o=V(c),l=(e,t)=>t.reduce((t,n,r)=>t+Math.abs(z(n,o))*e.half[r],0),u=l(e,i)+l(t,a);if(u-Math.abs(z(r,o))<=0)return{depth:u-Math.abs(z(r,o)),axis:o};let d=z(n??r,o)<0?R(o,-1):o,f=u-z(r,d);f<s.depth&&(s={depth:f,axis:d})}return s}var wy=(e,t,n,r)=>{let i=n===`l`?`Left`:`Right`,a=R(I(t.P[e.index[`${i}HandIndex2`]],t.P[e.index[`${i}HandMiddle2`]]),.5);return r.some(e=>fu(a,e)<=0)},Ty=(e,t,n)=>!t.visible||(e.baked?.[t.visible]?.[n]??0)>.5,Ey=(e,t,n)=>am(e.ctx.scene,t).map(t=>({...e.ctx.scene.objects[t],...mm(e,t,n)}));function Dy(e,t,n){let{sk:r,spec:i}=e.ctx,a=e.frames[n-(e.f0??0)];if(!a)return null;let o=Cl(r,i,a.s,i.objects[t]);return Math.max(0,Math.min(...Ey(e,t,n).map(e=>fu(o,e))))}function Oy(e,t,n){let r=Ey(e,t,n);if(!r.length)return null;let i=Math.min(...r.map(e=>e.pos[1]-Math.abs(e.R[1][0])*e.half[0]-Math.abs(e.R[1][2])*e.half[2])),a=R(r.map(xy).reduce((e,t)=>I(e,t),[0,0,0]),1/r.length),o=[a[0],i-.01,a[2]],s=null;for(let[t,r]of Object.entries(e.ctx.objectsAt(n))){if(r.carried||!r.half)continue;let e=fu(o,r);e<=.02&&(!s||e<s[1])&&(s=[t,e])}return s?.[0]??null}function ky(e,t,n){let r=Object.entries(t.ctx.spec.objects??{}).filter(([,e])=>yl(e));if(!r.length)return[];let i=n.checks??{},a={...cd,...i.limits},o=i.allow,s=[],c=t.f0??0,l=e.index,u=(e,t,n,r,i)=>s.push({kind:e,msg:t,frame:n,value:+r.toFixed(4),limit:i}),d=(e,t)=>e.reduce((e,n)=>t.reduce((e,t)=>e??dd(o,n,t),e),null)??a.allow;for(let[i,o]of r){let[r,s]=lm(t,o),f=n.props?.[o.prop]?.hand,p=new Set([`hand_${f}`,`farm_${f}`]);if(o.grab!==void 0&&r>0&&t.frames[r-c]&&Ty(t,o,r-1)){let e=Dy(t,i,r);e>a.grab&&u(`GRAB`,`${i}: hand ${(e*100).toFixed(1)} cm from it at grab`,r-c,e,a.grab)}let m=o.grab===void 0?null:Oy(t,i,r),h=e=>Math.abs(e-r)<=by||o.release!==void 0&&Math.abs(e-s)<=by;for(let n=0;n<t.frames.length;n++){let a=n+c,s=ym(t,i,a);if(!s||!Ty(t,o,a))continue;let f=s.map(e=>e.id),g=s.map(e=>[e,xy(e),B(e.half)]),{s:_}=t.frames[n],v=Object.entries(t.frames[n].diag).filter(([t,n])=>/^hold_[lr]$/.test(t)&&n?.second===i&&(n.w>=.5||wy(e,_,t.slice(-1),s))).map(([e])=>`hand_${e.slice(-1)}`);for(let[e,t,r,a]of uu){if(p.has(e)||v.includes(e))continue;let o=_.P[l[t]],s=_.P[l[r]],c=R(I(o,s),.5),m=a+os(o,s)/2,h=d([e],[i,...f]),y=null,b=-1/0;for(let[e,t,n]of g)m-(os(c,t)-n)<=h||(y??=du(o,s),b=Math.max(b,a-Math.min(...y.map(t=>fu(t,e)))));b>h&&u(`COLLIDE`,`${e} x ${i}`,n,b,h)}if(!(a<r))for(let[e,r]of Object.entries(t.objectsAt(n))){if(!r.half||r.ignore||e===m&&h(a))continue;let t=d([i,...f],[e]),o=xy(r),s=B(r.half),c=-1/0;for(let[e,n,i]of g)os(n,o)<i+s+t&&(c=Math.max(c,Cy(e,r).depth));c>t&&u(`COLLIDE`,`${i} x ${e}`,n,c,t)}}}return my(t,a,u),s}var Ay=.5,jy=1,My=90,Ny={twist:1-Tc,flex:1,dev:1},Py=(e,t)=>t[e].map(t=>t*Ny[e]),Fy=`wrist: deg on the frames a hand holds (a fit, a carry or a grip on); flex + toward the palm, dev + radial / - ulnar, twist at the wrist joint; [min, f, max, f], frames past the comfortable range and at the limit; grip: the grip a keyed carry of a thin body keeps (grip-choice.js), cost [it, today's] (comfort-priced wrist, reach and body over the keys); elevation [max deg, f] of the upper arm (90 level), raised: frames the elbow is over the shoulder`;function Iy(e,t,n,r){let{diag:i}=e.frames[n],a=e.baked??{};if((i[`hold_${t}`]?.w??0)>Ay||(i[`grip_${t}`]?.w??0)>Ay)return!0;for(let n of e.ctx.spec.fits??[])if(n.side===t&&(a[`w_${n.anchor}_${t}`]?.[r]??0)>Ay)return!0;return Object.keys(e.ctx.spec.objects??{}).some(n=>e.ctx.spec.objects[n]?.prop&&bm(e,n,r)===t)}function Ly(e,t){let n=e.index,r=e.restWorldRot,i=t.f0??0,a={};for(let[o,s]of[[`Left`,`l`],[`Right`,`r`]]){let c=n[`${o}Hand`],l=n[`${o}ForeArm`],u=n[`${o}Arm`],d={frames:0,past:0,limit:0,raised:0};t.frames.forEach(({s:n},a)=>{let f=a+i;if(!Iy(t,s,a,f))return;let p=R(L(n.P[c],n.P[l]),1/Math.max(1e-9,B(L(n.P[c],n.P[l])))),m=U(n.R[l],U(G(r[l]),r[c])),h=Rc(m,n.R[c],p,W(U(m,G(n.R[c])),Bs(e,n,o).l));d.frames++;for(let e of[`flex`,`dev`,`twist`]){let t=Math.round(h[e]),n=d[e];d[e]=n?[Math.min(n[0],t),t<n[0]?f:n[1],Math.max(n[2],t),t>n[2]?f:n[3]]:[t,f,t,f]}let g=(e,t)=>[`flex`,`dev`,`twist`].some(n=>{let[r,i]=Py(n,e);return h[n]<r+t||h[n]>i-t});g(wc,-1)&&d.past++,g(Cc,jy)&&d.limit++;let _=L(n.P[l],n.P[u]),v=Math.round(Math.acos(Math.max(-1,Math.min(1,-_[1]/Math.max(1e-9,B(_)))))*180/Math.PI);(!d.elevation||v>d.elevation[0])&&(d.elevation=[v,f]),v>My&&d.raised++}),d.frames&&(a[`hand_${s}`]=d)}for(let e of t.ctx.hold?.grips?.()??[])a[`hand_${e.hand}`]&&(a[`hand_${e.hand}`].grip={object:e.id,chose:e.name,cost:[e.cost,e.today]});return Object.keys(a).length?a:null}var Ry=.5,zy=.5,By=[`flex`,`dev`,`twist`],Vy={l:`Left`,r:`Right`},Hy={flex:e=>e>=0?`flex`:`extension`,dev:e=>e>=0?`radial deviation`:`ulnar deviation`,twist:()=>`twist`};function Uy(e){let t=null;for(let n of By){let[r,i]=Cc[n],a=e[n],o=a>=0?i:r,s=a>=0?a-i:r-a;(!t||s>t.past)&&(t={axis:n,value:a,edge:o,past:s})}return t}function Wy(e,t,n,r){let{s:i,diag:a}=t.frames[r],o=a[`hold_${n}`];if((o?.w??0)>zy)return o;let s=Vy[n],c=e.index,l=c[`${s}Hand`],u=c[`${s}ForeArm`],d=e.restWorldRot,f=R(L(i.P[l],i.P[u]),1/Math.max(1e-9,B(L(i.P[l],i.P[u])))),p=U(i.R[u],U(G(d[u]),d[l]));return Rc(p,i.R[l],f,W(U(p,G(i.R[l])),Bs(e,i,s).l))}function Gy(e,t){let n=[],r=t.f0??0;for(let i of[`l`,`r`])t.frames.forEach((a,o)=>{if(!Iy(t,i,o,o+r))return;let s=Uy(Wy(e,t,i,o));if(s.past<=Ry)return;let c=Math.abs(s.edge);n.push({kind:`WRIST`,msg:`hand_${i} ${Hy[s.axis](s.value)} ${Math.round(Math.abs(s.value))}deg (limit ${Math.round(c)})`,frame:o,value:+Math.abs(s.value).toFixed(2),limit:c})});return n}function Ky(e,t){let n=/^hand_([lr]) /.exec(t.subject)?.[1];if(!n)return null;let r=t.worstFrame,i=`at f${r}${t.count>1?` (f${t.first}-f${t.last}, ${t.count} frames)`:``}`,a=Math.round(e.out.ctx?.swivel?.[n]?.get(r)??0);if(Math.abs(a)>=1)return{cause:`fix.self elbow turn ${a}deg at f${r}`,hint:`${t.subject} ${i}: fix.self turned the elbow ${a} deg to keep the arm out of the body and the hand kept its turn, so the wrist took it; key elbow_${n} (the elbow pole) or the hand's target so the arm clears the body without the turn`};let o=(e.out.frames[e.rel(r)]?.diag[`hold_${n}`]?.w??0)>zy&&Object.keys(e.spec.objects??{}).find(t=>e.spec.props?.[e.spec.objects[t]?.prop]?.hand===n),s=e.fr(r).c.spine_pitch??0;return{cause:o?`objects.${o}.keys near f${r}`:e.cause(`armw_${n}`,r),hint:`${t.subject} ${i}: the arm cannot turn the hand that far from where the body stands; lean the upper body over the hand (spine_pitch ${Math.round(s)} at f${r}: try ${Math.round(s+20)}) or bring the body to it (root), ${o?`or key ${o} so the hand need not bend that far (its aim or pos)`:`or move what the hand reaches`}; repair: { rounds } tries leans of 10-30 deg here and keeps one that helps`}}var qy={WRIST:Ky},Jy=(e,t)=>` (${e}the knee would fold ${Math.round(t)}deg; it bends to 150deg and stops at 160deg)`;function Yy(e,t,n,r,i){let a=t===`l`?`Left`:`Right`,o=e.fr(n).s.P,s=o[e.I[`${a}UpLeg`]],c=o[e.I[`${a}Leg`]],l=o[e.I[`${a}Foot`]],u=L(i,s),d=ks(os(s,c),os(c,l),150)+.002,f=R(V(u),Math.max(0,d-B(u))),p=u[1]+Math.sqrt(Math.max(0,u[1]*u[1]-z(u,u)+d*d));return u[1]<0?{cause:e.cause(`root`,n),hint:`root: raise ${X(p)} m at f${n}${r}, or key foot_${t} farther from the hip (wider or more forward)`,fix:{channel:`root`,f:n,delta:[0,p,0]}}:{cause:e.cause(`foot_${t}`,n),hint:`foot_${t}: move ${lv(f)} m out from the hip at f${n}${r}, or raise root ${X(p)} m`,fix:{channel:`foot_${t}`,f:n,delta:f}}}var Xy=.003,Zy=.25,Qy=e=>/(^|_)l$|^Left/.test(e)?`l`:/(^|_)r$|^Right/.test(e)?`r`:null;function $y(e,t,n,r,i){let a=e.spec.anchors?.[t],o=e=>`/anchors/${t}/${e}`;if(a?.kind===`world`)return{path:o(`p`),delta:r};if(a?.kind===`body`)return{path:o(`p`),delta:W(fs(-(e.fr(n).c.yaw??0)),r)};if([`bone`,`segment`,`prop`].includes(a?.kind))return{path:o(`offset`),delta:r};if(a?.kind!==`object`)return;let s=e.fr(n),c=Hf(e.out.ctx,a,t,{...s,diag:{...s.diag,frame:n}},i);return{path:o(`local`),delta:W(G(c.R),r)}}function eb(e,t,n,r,i=``){let a=/^prop_(.+)$/.exec(t),o=a?e.spec.props?.[a[1]]?.hand:Qy(t),s,c,l,u=r;if(/^(hand|farm|uarm)_/.test(t)||a){let t=e.hand(o,n);s=t.label,l=t.anchor?$y(e,t.anchor,n,r,o):t.ch===`hand_${o}`?{channel:t.ch,f:n,delta:r}:void 0;let i=t.anchor&&e.spec.anchors[t.anchor]?.kind===`object`?e.spec.anchors[t.anchor].object:null;i&&l&&(s=`anchors.${t.anchor}.local (a point on ${i}, in ${i}'s axes; ${i} stays)`,u=l.delta),c=t.anchor?`anchor ${t.anchor}${t.fit===null?``:` (fits[${t.fit}])`} via ${e.cause(t.ch,n)}`:e.cause(t.ch,n)}else/^(shin|foot|sole)_/.test(t)?(s=`foot_${o}`,c=e.cause(s,n),l={channel:s,f:n,delta:r}):(s=`root`,c=e.cause(`root`,n),l={channel:`root`,f:n,delta:r,.../^root held since /.test(c)?{hold:!0}:{}});return/ (walk|walkTo) /.test(` ${c}`)&&/step|start|end/.test(c)&&!/^anchor/.test(s)?{cause:c,hint:`walk path: ${s} needs ${lv(r)} m at f${n}${i}; change that walk's heading/turnDistance/step (or give one a { range: [lo, hi] })`}:{cause:c,hint:`${s}: move ${lv(u)} m at f${n}${i}`,fix:l}}var tb=e=>uu.find(t=>t[0]===e);function nb(e,t,n,r){let[,i,a]=tb(n),{s:o}=e.fr(t),s=du(o.P[e.I[i]],o.P[e.I[a]]),c=s.map(e=>fu(e,r)),l=Math.min(...c);return{p:s[c.indexOf(l)],n:vu(s[c.indexOf(l)],r),d:l}}function rb(e,t,n,r,i){let a=t.worstFrame,o=e.out.objectsAt(e.rel(a))[r];if(!o||!tb(n))return null;let{n:s}=nb(e,a,n,o);return eb(e,n,a,R(s,i),` (out of ${r})`)}function ib(e,t,n,r){let i=t.worstFrame,a=e.out.objectsAt(e.rel(i))[r];if(!a)return null;let o=ad(e.sk,e.fr(i).s,n.endsWith(`_l`)?`Left`:`Right`),s=od(o,a),c=t.worst-t.limit+Xy;if(!(s.side>0))return s.topAt?eb(e,n,i,R(vu(s.topAt,a),c),` (out of ${r}'s top)`):null;let l=Math.max(...o.filter(e=>fu(e,a)<0).map(e=>2*a.half[1]-W(G(a.R),L(e,a.pos))[1]))+Xy,u=R(vu(s.sideAt,a),c);if(l>Zy)return eb(e,n,i,u,` (out of ${r}'s side)`);let d=eb(e,n,i,W(a.R,[0,l,0]),` (over ${r}'s top; its ${t.worst.toFixed(3)} m is through a side)`);return d.hint+=/^walk path/.test(d.hint)?`; a higher lift raises the swing`:`; or move ${lv(u)} m out of that side`,d}function ab(e,t,n,r,i,a){return eb(e,n,t.worstFrame,R(V(r),i),` (away from the ${a})`)}function ob(e,t,n){let{s:r,diag:i}=e.fr(t),a=e.I;if(n.startsWith(`hand_`)){let e=n.endsWith(`l`)?`Left`:`Right`;return du(r.P[a[`${e}Hand`]],r.P[a[`${e}HandMiddle3`]],5)}return Object.entries(i.props?.[n.slice(5)]??{}).filter(([e,t])=>Array.isArray(t)&&e!==`origin`).map(([,e])=>e)}var sb={COLLIDE(e,t){let[,n,r]=/^(\S+) x (.+)$/.exec(t.subject)??[];if(/^foot_[lr]$/.test(n??``))return ib(e,t,n,r);let i=rb(e,t,n,r,t.worst-t.limit+Xy);return i&&/^(hand|farm)_/.test(n)&&!e.spec.fix?.penetration&&t.worst-t.limit<=.05&&(i.hint+=`; or fix.penetration: 0.02 pushes shallow hand hits out`,e.spec.fix!==!1&&(i.fix={path:`/fix/penetration`,value:.02})),i},CLEARANCE(e,t){let n=(e.spec.checks?.clearance??[]).find(e=>t.subject.startsWith(`${e.name}:`));return n&&rb(e,t,n.part,n.object,n.min-t.worst+Xy)},GROUND(e,t){let n=t.subject.startsWith(`Left`)?`l`:`r`,r=t.worstFrame,i=e.fr(r).c,a=e.fr(r).diag[`leg_fold_${n}`];if(a)return Yy(e,n,r,Jy(`the sole is in the floor because the knee is on its stop: `,a),i[`foot_${n}`]);let o=i[`fpitch_${n}`]?`, or less fpitch_${n} (now ${X(i[`fpitch_${n}`])} deg; + lifts the heel)`:``;return{cause:e.cause(`foot_${n}`,r),hint:`foot_${n}: raise ${X(t.worst+.001)} m at f${r} (foot_* is the ankle; it stands ${hu(e.sk)} m above the floor)${o}`,fix:{channel:`foot_${n}`,f:r,delta:[0,t.worst+.001,0]}}},FACE(e,t){let n=t.subject.replace(/ into head$/,``),r=t.worstFrame,{s:i}=e.fr(r),a=Es(i,e.I.Head,e.sk.landmarks.headCentre);return ab(e,t,n,L(ob(e,r,n).reduce((t,n)=>mu(e.sk,i,n)>mu(e.sk,i,t)?n:t),a),t.worst-t.limit+Xy,`head`)},BODY(e,t){let[,n,r]=/^(\S+) into (\S+)$/.exec(t.subject)??[],i=tb(r),a=t.worstFrame,{s:o}=e.fr(a),s=/^(hand|farm|uarm)_([lr])$/.exec(n??``),c=s&&oc(e.sk);if(c){let i=e.I[`${s[2]===`l`?`Left`:`Right`}${{hand:`Hand`,farm:`ForeArm`,uarm:`Arm`}[s[1]]}`],l=Sc(c,e.sk,o,i),u=l.p&&dc(c,o,l.p,c.skip.get(i));if(u){let i=eb(e,n,a,R(u,t.worst-t.limit+Xy),` (out of the ${r})`);return s[1]!==`hand`&&(i.hint+=`; or turn elbow_${s[2]} away from the ${r}`),i}}if(!i)return null;let l=o.P[e.I[i[1]]],u=o.P[e.I[i[2]]],d=L(u,l),f=e=>I(l,R(d,H(z(L(e,l),d)/z(d,d),0,1))),p=ob(e,a,n).reduce((e,t)=>B(L(t,f(t)))<B(L(e,f(e)))?t:e);return ab(e,t,n,L(p,f(p)),t.worst-t.limit+Xy,`torso`)},SELF(e,t){let n=t.worstFrame,{s:r}=e.fr(n),i=r.P,a=e.I;if(t.subject===`hands overlap`){let r=V(L(i[a.LeftHand],i[a.RightHand])),o=(t.worst-t.limit+Xy)/2,s=eb(e,`hand_l`,n,R(r,o));return{cause:s.cause,hint:`${s.hint}; and ${eb(e,`hand_r`,n,R(r,-o)).hint}`,fix:eb(e,`hand_l`,n,R(r,2*o)).fix}}let o=t.subject===`shins touch`,s=o?.1:.135,[c,l]=o?[`Leg`,`Foot`]:[`UpLeg`,`Leg`],u=pu(i[a[`Left${c}`]],i[a[`Left${l}`]],i[a[`Right${c}`]],i[a[`Right${l}`]]),d=L(i[a[`Left${l}`]],i[a[`Right${l}`]]);d[1]=0;let f=(s-u+Xy)/2,p=V(d);return{cause:e.cause(`foot_l`,n),hint:`foot_l: move ${lv(R(p,f))} m and foot_r ${lv(R(p,-f))} m at f${n} (${o?`shins`:`thighs`} ${X(u)} m apart, need ${s}); or spread knee_l/knee_r`,fix:{channel:`foot_l`,f:n,delta:R(p,2*f)}}},OBJECT(e,t){let[,n,r]=/^(\S+) into (.+)$/.exec(t.subject)??[],i=e.spec.objects?.[n]?.channel;if(!i)return null;let a=t=>e.out.baked[i]?.[t]??0,o=t.first>0?a(t.first-1):a(0);return{cause:e.cause(i,t.worstFrame),hint:`${i}: keep it within ${X(o)} deg (it reaches ${X(a(t.worstFrame))} at f${t.worstFrame}, ${X(t.worst)} m into ${r}), or move ${r}`,fix:{channel:i,f:t.worstFrame,value:o}}},BALANCE(e,t){let n=t.worstFrame,{s:r}=e.fr(n),i=r.P,a=e.I;if(t.subject===`no foot on the ground`)return{cause:e.cause(`root`,n),hint:`at f${n} lower foot_l or foot_r onto the ground, the floor or the top of an object under it (the ankle stands ${hu(e.sk)} m above it), or declare checks.supports for the seat the hips rest on`};let o=R([`Hips`,`Spine1`,`Spine2`,`Head`].reduce((e,t)=>I(e,i[a[t]]),[0,0,0]),.25),s=[`Left`,`Right`].flatMap(t=>Object.values(_u(e.sk,r,t))),c=s.map(e=>e[0]),l=s.map(e=>e[2]),u=.07,d=[H(o[0],Math.min(...c)-u,Math.max(...c)+u),o[1],H(o[2],Math.min(...l)-u,Math.max(...l)+u)];return{cause:e.cause(`root`,n),hint:`root: move ${lv(L(d,o))} m at f${n} (centre of mass over the feet), or step a foot under it`,fix:{channel:`root`,f:n,delta:L(d,o)}}}},cb=.003,lb=.02,ub=.2;function db(e,t,n,r,i=``){let a=t===`l`?`Left`:`Right`,{s:o}=e.fr(n),s=L(o.P[e.I[`${a}Hand`]],o.P[e.I[`${a}Arm`]]),c=Math.hypot(s[0],s[2])/Math.max(B(s),1e-9);if(c<.5)return null;let l=R(V([s[0],0,s[2]]),Math.min(ub,r/c));return{delta:l,hint:`body: move ${lv(l)} m toward the target at f${n}, ${e.cause(`root`,n)} (arm ${t} is at full reach)${i}`,fix:{channel:`root`,f:n,delta:l,hold:!0}}}var fb=(e,t,n)=>(e.fr(n).diag[`reach_over_${t}`]??0)>.001||(e.fr(n).diag[`arm_miss_${t}`]??0)>.002&&!e.fr(n).diag[`arm_fold_${t}`];function pb(e,t,n,r){let i=null;for(let[a,o]of Object.entries(e.fr(n).c))a===r||!RegExp(`^w_.+_${t}$`).test(a)||!(o>lb)||i&&o<=i.w||(i={ch:a,w:o});return i}function mb(e,t,n,r,i){let a=n.slice(-1),o=e.hand(a,r),s=o.anchor?pb(e,a,r,o.ch):null;if(!s)return null;let c=Array.isArray(t.at)?t.at[1]:t.at,l=e.bracket(s.ch,r).prev,u=l&&Math.abs(e.out.baked[s.ch]?.[Math.round(l.f)]??1)<=lb&&c>=r&&!(e.bracket(s.ch,r).next?.f<=c)?c:r,d=s.w/Math.max(1,(e.fr(r).c[o.ch]??1)+s.w),f=s.ch.replace(/^w_/,``).replace(/_[lr]$/,``);return{cause:e.cause(s.ch,r),hint:`${s.ch} is ${X(s.w)} at f${r}, so anchor ${f} takes ${Math.round(d*100)}% of the hand target from ${o.label}: key ${s.ch} 0 at f${u}${i}`,fix:{channel:s.ch,f:u,value:0}}}function hb(e,t){let n=null;return(e.spec?.goals??[]).forEach((e,r)=>{let i=hv(e,r);t.subject.startsWith(`${i}:`)&&(!n||i.length>n.name.length)&&(n={goal:e,name:i,i:r})}),n}function gb(e,t,n){let r=[t,...e.out.ctx.scene?.objects?.[t]?.ancestors??[]].find(t=>om(e.spec.objects?.[t],n));return r?e.spec.objects[r]:null}function _b(e,t,n){let[,r,i]=/^([a-z]+):(.+)$/s.exec(t)??[];if(r===`prop`)return e.spec.props?.[i.split(`.`)[0]]?.hand?`hand_${e.spec.props[i.split(`.`)[0]].hand}`:null;if(r===`object`){let t=gb(e,i.replace(/\.(center|top|base)$/,``),n),r=t&&e.spec.props?.[t.prop]?.hand;return r?`hand_${r}`:null}if(r===`landmark`)return`root`;if(r!==`joint`&&r!==`bone`)return null;let a=Mp(e.sk,i).bone??``,o=/^Left/.test(a)?`l`:/^Right/.test(a)?`r`:null;return o&&/^(Left|Right)(Hand|ForeArm)/.test(a)?`hand_${o}`:o&&/^(Left|Right)(Foot|Toe|Leg)/.test(a)?`foot_${o}`:`root`}function vb(e,t,n,r){let i=t.slice(-1);if(!t.startsWith(`hand_`))return{channel:t,f:n,delta:r};let a=e.hand(i,n);return a.ch===`hand_${i}`?{channel:a.ch,f:n,delta:r}:a.anchor&&e.spec.anchors?.[a.anchor]?.kind===`world`?{path:`/anchors/${a.anchor}/p`,delta:r}:null}function yb(e,t,n,r,i,a){if(n===`moved`||n===`still`){let o=t[n],s=_b(e,o,r),c=xv(e.out,t,a),l=zp(e.out,r,vv(o)),u=l&&c&&B(L(l,c))>.001?V(L(l,c)):[0,1,0];return s?[s,R(u,n===`still`?-i:i)]:null}let[o,s]=t[n],c=_b(e,o,r),l=_b(e,s,r),u=e=>e?.startsWith(`hand_`)?2:+!!e,d=u(c)>=u(l),f=d?c:l,p=d?1:-1;if(!f)return null;if(n===`above`)return[f,[0,p*i,0]];let m=zp(e.out,r,o),h=zp(e.out,r,s);return m&&h?[f,R(V(L(h,m)),p*i)]:null}var bb={GOAL(e,t){let n=e.spec&&hb(e,t),r=t.worstFrame;if(!n)return{cause:`goal ${t.subject.split(`:`)[0]}`,hint:`change the keys around f${r} until the goal holds`};let{goal:i,name:a,i:o}=n,s=mv(i)[0],c=t.worst+cb,l=Av(e.out,e.spec.goals,o);if(l.wait){let e=i.after??i.before;return{cause:`goal ${a}`,hint:`${a} ${l.wait}: make goal "${e}" hold${i.after!==void 0&&i.before!==void 0?` and "${i.before}"`:``} where this one needs it, or move at`}}let u=s===`speed`?`m/s`:`m`,d=s===`near`||s===`still`?`<=`:`>=`,f=` (goal "${a}" is ${X(t.worst)} ${u} ${s===`still`?`off`:`short`}; needs ${d} ${gv(i,s)})`;if(s===`speed`){let t=_b(e,i.speed,r);return{cause:t?e.cause(t,r):`goal ${a}`,hint:`${i.speed} is too slow at f${r}: put its keys around f${r} closer in time, or farther apart in space${f}`}}let p=yb(e,i,s,r,c,l.a);if(!p){if(s===`still`&&i.still.startsWith(`object:`)){let e=i.still.slice(7).replace(/\.(center|top|base)$/,``);return{cause:`objects.${e}`,hint:`${e} moves at f${r}, where it should stay: hold its hinge channel or keys until then, or start them later${f}`}}if(s===`still`)return{cause:`goal ${a}`,hint:`${i.still} moves at f${r} and nothing that follows the body moves it; name a joint, prop point or held object${f}`};if(s===`moved`&&!i.moved.startsWith(`object:`))return{cause:`goal ${a}`,hint:`${i.moved} does not move with the body at f${r}; name a joint, prop point or held object`};if(s===`moved`){let e=i.moved.slice(7).replace(/\.(center|top|base)$/,``);return{cause:`objects.${e}`,hint:`${e} is not in a hand at f${r}, so nothing moves it: carry it (objects.${e} = { prop, grab }) or hinge it`}}return{cause:`goal ${a}`,hint:`neither ${i[s][0]} nor ${i[s][1]} moves with the body at f${r}; name a joint, prop point or held object`}}let[m,h]=p;if(m.startsWith(`hand_`)){let t=mb(e,i,m,r,f);if(t)return t;let n=fb(e,m.slice(-1),r)&&db(e,m.slice(-1),r,c,f);if(n)return{cause:e.cause(`root`,r),hint:n.hint,fix:n.fix}}let g=eb(e,m,r,h,f),_=vb(e,m,r,h);return{cause:g.cause,hint:g.hint,..._?{fix:_}:{}}}},xb={Leg:[`UpLeg`,`Leg`,`Foot`,`knee`],ForeArm:[`Arm`,`ForeArm`,`Hand`,`elbow`]},Sb=e=>e.startsWith(`Left`)?`l`:`r`,Cb=e=>/^(w_|armw)/.test(e)?.5:/^(root|foot|hand)/.test(e)?1:/^(knee|elbow)/.test(e)?.2:.01;function wb(e,t,n){let r=Sb(t),i=e.out.baked,a=[`root`,`yaw`,`pitch`];t===`Head`?a=[`head_yaw`,`head_pitch`,`spine_pitch`,`spine_yaw`,`root`,`yaw`]:/Hand|ForeArm/.test(t)?a=[`hand_${r}`,`armw_${r}`,`elbow_${r}`,`aswing_${r}`,`abend_${r}`,...Object.keys(i).filter(e=>RegExp(`^w_.+_${r}$`).test(e)),`spine_yaw`,`spine_pitch`,`root`,`yaw`]:/Foot|Leg/.test(t)&&(a=[`foot_${r}`,`knee_${r}`,`fpitch_${r}`,`root`]);let o=e=>{let t=i[e]?.[n-1],r=i[e]?.[n];return t===void 0||r===void 0||typeof t==`object`&&!Array.isArray(t)?0:(Array.isArray(t)?os(t,r):Math.abs(r-t))*Cb(e)};return a.filter(e=>i[e]).sort((e,t)=>o(t)-o(e))}function Tb(e,t,n){let r=t.subject.split(` `)[0],i=t.worstFrame,a=wb(e,r,i)[0]??`root`,{prev:o,next:s}=e.bracket(a,i),c=e.keys(a).find(e=>e.step&&Math.abs(e.f-i)<=1);if(c)return{cause:e.cause(a,i),hint:`${a}: a step key jumps at f${Math.round(c.f)}; ease it over 4+ frames (key the old value 4 frames earlier, drop the step)`};let l=Math.ceil((t.worst/t.limit)**+n*1.1*10)/10,u=Math.round(o?.f??i-4),d=Math.round(s?.f??i+4),f=Math.ceil((d-u)*(l-1)),p=/^w_(.+)_[lr]$/.exec(a);return{cause:e.cause(a,i),hint:`retime: stretch f${u}-f${d} by ${l}x (+${f} frames, move the keys from f${d} on later)${p?` - the hand switches to anchor ${p[1]} too fast`:``}; or fix.retime: true`,fix:e.spec.fix===!1?void 0:{path:`/fix/retime`,value:!0}}}function Eb(e,t,n){let[r,i]=n.split(/:(.*)/s);if(r===`joint`)return t.s.P[e.I[i]];if(r===`prop`){let[e,n]=i.split(`.`);return t.diag.props?.[e]?.[n]}return zf(e.out.ctx,i,t.s,t.diag,t.c)}function Db(e,t,n,r){let i=im(e.out.baked,t),a=r(e.fr(t)),o=null;for(let[s,c,l]of n){let n=r(Y_(e.out.ctx,{...i,[s]:c},t))-a;n>1e-6&&(!o||n/l>o.gain/o.unit)&&(o={ch:s,value:c,gain:n,unit:l})}return{best:o,base:a,c0:i}}var Ob=(e,t,n,r)=>e.fr(n).s.P[e.I[`${t===`l`?`Left`:`Right`}${xb[r][0]}`]],kb={REACH(e,t){let[,n,r]=/^(leg|arm)_miss_([lr])$/.exec(t.subject)??[],i=t.worstFrame,a=t.worst+.002;if(n===`leg`){let n=e.fr(i).diag[`leg_fold_${r}`];if(n)return Yy(e,r,i,Jy(`the ankle target is ${X(t.worst)} m inside the shin's reach: `,n),e.fr(i).c[`foot_${r}`]);let o=e.fr(i).c[`foot_${r}`]??[0,0,0],s=Ob(e,r,i,`Leg`),c=L(o,s),l=os(s,o)-t.worst,u=c[1]*c[1]-z(c,c)+l*l,d=[c[0],0,c[2]],f=u>=0?`or root down ${X(-c[1]-Math.sqrt(u)+.002)} m${t.worst<=.05?` (fix.reach does this when on)`:``}`:`or root ${lv(R(V(d),B(d)-l*.95))} m toward the foot (the foot is ${X(B(d))} m sideways of the hip: the root and foot keys disagree)`;return{cause:e.cause(`foot_${r}`,i),hint:`foot_${r}: move ${lv(R(V(L(s,o)),a))} m toward the hip at f${i}, ${f}`,fix:{channel:`foot_${r}`,f:i,delta:R(V(L(s,o)),a)}}}let o=r===`l`?`Left`:`Right`,{s,diag:c}=e.fr(i),l=V(L(s.P[e.I[`${o}Hand`]],s.P[e.I[`${o}Arm`]])),u=c[`arm_fold_${r}`];if(u){let n=eb(e,`hand_${r}`,i,R(l,a),` (the hand target is ${X(t.worst)} m inside the forearm's reach: the elbow would fold ${Math.round(u)}deg; it bends to 145deg and stops at 150deg)`);return{cause:n.cause,hint:`${n.hint}, or bring root ${lv(R([-l[0],0,-l[2]],a))} m back from it`,fix:n.fix}}let d=eb(e,`hand_${r}`,i,R(l,-a),``),f=e.hand(r,i).anchor,p=JSON.stringify([e.spec.goals??[],e.spec.checks?.contacts??[]]),m=f&&(e.spec.anchors?.[f]?.kind===`object`||p.includes(`"anchor:${f}"`)),h=e.spec.fits?.[e.hand(r,i).fit??-1],g=h?.effector?.prop&&e.fr(i).diag.props?.[h.effector.prop]?.[h.effector.point],_=g?os(g,I(Eb(e,e.fr(i),`anchor:${f}`),h.offset??[0,0,0]))+.01:a,v=m&&db(e,r,i,Math.min(a,_));return v?{cause:d.cause,hint:`${v.hint} (out of reach by ${X(t.worst)} m), or ${d.hint}`,fix:v.fix}:{cause:d.cause,hint:`${d.hint} (out of reach by ${X(t.worst)} m), or bring root ${lv(R([l[0],0,l[2]],a))} m closer`,fix:d.fix}},KNEE(e,t){let n=Sb(t.subject),r=n===`l`?`Left`:`Right`,i=t.worstFrame,{s:a,c:o}=e.fr(i),s=a.P,c=e.I;if(/backward/.test(t.subject)){let t=L(s[c[`${r}ToeBase`]],s[c[`${r}Foot`]]);t[1]=0;let a=I(V(W(fs(-(o.yaw??0)),t)),[0,.3,0]);return{cause:e.cause(`knee_${n}`,i),hint:`knee_${n}: key ${lv(V(a))} (body frame, along the foot) at f${i}; a knee pole is +z forward, +x the character's left`,fix:{channel:`knee_${n}`,f:i,value:V(a)}}}if(/ folds /.test(t.subject))return Yy(e,n,i,` (the knee folds ${X(t.worst)}deg, past its ${t.limit}deg stop; it bends freely to 150deg)`,s[c[`${r}Foot`]]);let l=s[c[`${r}UpLeg`]],u=s[c[`${r}Leg`]],d=s[c[`${r}Foot`]],f=os(l,u),p=os(u,d),m=(180-(t.limit-5))*Math.PI/180,h=Math.sqrt(f*f+p*p-2*f*p*Math.cos(m));return{cause:e.cause(`foot_${n}`,i),hint:`foot_${n}: move ${lv(R(V(L(d,l)),h-os(l,d)))} m away from the hip at f${i} (the knee folds ${X(t.worst)} deg, limit ${t.limit})`,fix:{channel:`foot_${n}`,f:i,delta:R(V(L(d,l)),h-os(l,d))}}},ELBOW(e,t){let n=Sb(t.subject),r=n===`l`?`Left`:`Right`,i=t.worstFrame,a=e.fr(i).s.P,o=e.I,s=a[o[`${r}Arm`]],c=a[o[`${r}ForeArm`]],l=a[o[`${r}Hand`]],u=R(V(L(l,s)),ks(os(s,c),os(c,l),145)-os(s,l));return eb(e,`hand_${n}`,i,u,` (the elbow folds ${X(t.worst)}deg, past its ${t.limit}deg stop; it bends freely to 145deg)`)},FLIP(e,t){let[,n,r]=/^(Left|Right)(Leg|ForeArm) /.exec(t.subject)??[],i=t.worstFrame;if(!r)return null;let a=Sb(n),[o,s,c,l]=xb[r],u=e.I,d=+(/ over (\d+) frames$/.exec(t.subject)?.[1]??1),f=e.fr(i).diag,p=r===`ForeArm`&&(f[`arm_fold_${a}`]??f[`hold_${a}`]?.fold);if(p){let t=f[`hold_${a}`]?.fold&&Object.entries(e.spec.objects??{}).find(([,t])=>t.keys?.length&&e.spec.props?.[t.prop]?.hand===a)?.[0];return{cause:t?`objects.${t}.keys`:e.cause(e.hand(a,i).ch,i),hint:`the ${t?`keys of ${t} ask`:`hand target asks`} the elbow to fold ${Math.round(p)}deg at f${i}, past its 150deg stop, so the hand swings round the shoulder on the stop: move ${t?`the keyed pose`:`the target`} out from the shoulder (REACH says how far)`}}let m=t=>{let r=e.fr(t).s.P;return ys(L(r[u[`${n}${s}`]],r[u[`${n}${o}`]]),L(r[u[`${n}${c}`]],r[u[`${n}${s}`]]))},h=Array.from({length:Math.max(1,d-1)},(e,t)=>d>1?i-1-t:i).reduce((e,t)=>m(t)<m(e)?t:e),g=m(h),_=`${l}_${a}`,v=e.out.baked[_]?.[Math.max(0,i-1)];if(v&&B(v)<.5)return{cause:e.cause(_,i),hint:`${_}: the pole passes near zero (length ${X(B(v))}) at f${i} while it turns between opposite keys; add an in-between pole key (e.g. the average direction, normalised) so it turns, not shrinks`};let y=g<12?`the limb is almost straight at f${h} (bend ${X(g)} deg), so the pole cannot hold it: bring the ${r===`Leg`?`foot`:`hand`} target ~0.02 m toward the ${r===`Leg`?`hip`:`shoulder`}, or `:``;return{cause:e.cause(_,i),hint:`${_}: ${y}keep the pole on one side through f${i}${v?` (key ${lv(v)} there)`:``}`,fix:v&&{channel:_,f:i,value:v}}},SLIDE(e,t){let n=Sb(t.subject),r=n===`l`?`Left`:`Right`,i=t.subject.includes(`heel`)?`heel`:`ball`,a=Math.max(0,t.first-1),o=t=>_u(e.sk,e.fr(t).s,r)[i],s=Math.hypot(o(t.last)[0]-o(a)[0],o(t.last)[2]-o(a)[2]),c=e.out.baked[`foot_${n}`]?.[a],l=e.out.baked[`fyaw_${n}`],u=e.out.baked[`foot_${n}`]?.[t.last];return l&&c&&u&&Math.hypot(u[0]-c[0],u[2]-c[2])<s/2&&Math.abs(l[t.last]-l[a])>1?{cause:e.cause(`fyaw_${n}`,t.worstFrame),hint:`fyaw_${n}: the flat foot turns ${X(l[a])} -> ${X(l[t.last])} deg over f${a}-f${t.last} and the ${i} slides ${X(s)} m; key fyaw_${n} ${X(l[a])} at f${t.last} so it turns once the foot is up, or lift the heel first (fpitch_${n} +) so it pivots on the ball`,fix:{channel:`fyaw_${n}`,f:t.last,value:l[a]}}:{cause:e.cause(`foot_${n}`,t.worstFrame),hint:`foot_${n}: hold it still over f${a}-f${t.last}${c?` (key ${lv(c)} at both ends)`:``}; the ${i} slides ${X(s)} m${s<.01?`; fix.slide locks this when on`:``}`,fix:c&&{channel:`foot_${n}`,f:t.last,value:c}}},SPEED:(e,t)=>Tb(e,t,1),POP:(e,t)=>Tb(e,t,.5),ACC:(e,t)=>Tb(e,t,.5),FLOAT:(e,t)=>({cause:e.cause(`root`,t.worstFrame),hint:`over f${t.first}-f${t.last} lower the root or key foot_l/foot_r back onto the ground, the floor or the top of an object under the foot (the ankle stands ${hu(e.sk)} m above it); a jump needs the hips to rise and fall; a seat or ledge the hips rest on goes in checks.supports (a foot on an object's top needs none)`}),LENGTH:()=>({cause:`compiler`,hint:`a bone changed length: report the spec, this is a compiler fault`}),CONTACT(e,t){let n=(e.spec.checks?.contacts??[]).find(e=>t.subject.startsWith(`${e.name}:`)),r=t.worstFrame,i=e.rel(r);if(!n)return null;let a=sy(e.out,i,n.point),o=sy(e.out,i,n.target),s=L(o,a),c=/^prop:([^.]+)/.exec(n.point),l=c?e.spec.props?.[c[1]]?.hand:Sb(n.point.slice(6)),{diag:u}=e.fr(r),d=Math.max(u[`reach_over_${l}`]??0,u[`arm_miss_${l}`]??0),f=/^anchor:(.+)$/.exec(n.target)?.[1],p=(e.spec.fits??[]).findIndex(e=>e.side===l&&e.anchor===f),m=p>=0?`fits[${p}] (${l} -> anchor ${f})`:eb(e,`hand_${l}`,r,s).cause,h=R(V([s[0],0,s[2]]),d+.01),g=u[`arm_fold_${l}`];if(d>.002&&g){let t=e.fr(r).s.P[e.I[`${l===`l`?`Left`:`Right`}Arm`]],n=R(V([t[0]-o[0],0,t[2]-o[2]]),d+.01);return{cause:m,hint:`inside the forearm's reach by ${X(d)} m at f${r} (the elbow would fold ${Math.round(g)}deg; it stops at 150deg): bring root ${lv(n)} m back from ${f??`the target`}, or move the target out from the shoulder`,fix:{channel:`root`,f:r,delta:n}}}if(d>.002)return{cause:m,hint:`out of reach by ${X(d)} m at f${r}: bring root ${lv(h)} m toward ${f??`the target`}, or move the target`,fix:{channel:`root`,f:r,delta:h}};let _=eb(e,`hand_${l}`,r,s);return{cause:m,hint:`${_.hint}${p<0&&f?`; or add fits: [{ side: "${l}", anchor: "${f}", effector: ${c?`{ prop: "${c[1]}", point: "${n.point.split(`.`)[1]}" }`:`{ joints: [...] }`} }]`:``}`,fix:_.fix}},ORIENT(e,t){let n=(e.spec.checks?.orient??[]).find(e=>t.subject.startsWith(`${e.name}:`)),r=t.worstFrame;if(!n)return null;let i=/^prop:([^.]+)/.exec(n.from),a=i?e.spec.props?.[i[1]]?.hand:Sb(n.from.slice(6)),o=n.minCos??.64,s=t=>n.along===`up`?[0,1,0]:n.along===`face`?Ds(e.sk,t.s,e.I.Head,[0,0,1]):V(n.along),c=t=>z(V(L(Eb(e,t,n.to),Eb(e,t,n.from))),s(t)),l=im(e.out.baked,r),u=l[`wtwist_${a}`]??0,d=l[`wflex_${a}`]??0,{best:f,base:p}=Db(e,r,[[`wtwist_${a}`,H(u+15,-85,85),15],[`wtwist_${a}`,H(u-15,-85,85),15],[`wflex_${a}`,H(d+15,-70,70),15],[`wflex_${a}`,H(d-15,-70,70),15]],c);if(!f)return{cause:e.cause(`wtwist_${a}`,r),hint:`turn the prop another way: wrist twist/flex do not help at f${r} (cos ${X(p)}, needs ${o}); change elbow_${a} or the prop points`};let m=f.ch.startsWith(`wtwist`)?u:d,h=f.ch.startsWith(`wtwist`)?85:70,g=H(m+(f.value-m)*Math.min(4,(o-p+.03)/f.gain),-h,h);return{cause:e.cause(f.ch,r),hint:`${f.ch}: key ${X(g)} deg at f${r} (now ${X(m)}; cos ${X(p)}, needs ${o})`,fix:{channel:f.ch,f:r,value:g}}},BELOW(e,t){let n=(e.spec.checks?.below??[]).find(e=>t.subject.startsWith(`${e.name}:`)),r=t.worstFrame;if(!n)return null;let i=Sb(n.joint),a=`${/Leg/.test(n.joint)?`knee`:`elbow`}_${i}`,o=im(e.out.baked,r)[a]??[0,-1,-.3],s=t=>t.s.P[e.I[n.ref]][1]-t.s.P[e.I[n.joint]][1],c=(n.min??.08)+.01,l=im(e.out.baked,r),u=s(e.fr(r)),d=[[0,-1,0],[.5,-1,0],[-.5,-1,0],[0,-1,-.4],[0,-1,.4],[.5,-1,.5],[-.5,-1,.5],[.5,-1,-.4],[-.5,-1,-.4]].map(t=>({p:t,d:s(Y_(e.out.ctx,{...l,[a]:t},r)),turn:ys(t,o)})),f=d.filter(e=>e.d>=c).sort((e,t)=>e.turn-t.turn)[0]??d.sort((e,t)=>t.d-e.d)[0];return f.d>u?{cause:e.cause(a,r),hint:`${a}: key ${lv(f.p)} (body frame: +y up, +z forward) at f${r} (${n.joint} ${X(u)} m below ${n.ref} -> ${X(f.d)}, needs ${n.min??.08})`,fix:{channel:a,f:r,value:f.p}}:{cause:e.cause(a,r),hint:`${a}: no pole change lowers ${n.joint} at f${r}; lower the hand target instead`}},APPEAR(e,t){let n=(e.spec.checks?.appear??[]).find(e=>t.subject.startsWith(`${e.name}:`)),r=t.worstFrame;if(!n)return null;let i=null;for(let t=Math.max(e.out.f0??0,r-24);t<=Math.min((e.out.f0??0)+e.out.frames.length-1,r+24);t++){let r=B(L(sy(e.out,e.rel(t),`joint:${n.joint}`),sy(e.out,e.rel(t),`anchor:${n.anchor}`)));(!i||r<i.d)&&(i={q:t,d:r})}let a=n.tol??.035;return{cause:e.cause(n.channel,r),hint:i.d<=a?`${n.channel}: move the step from f${r} to f${i.q} (${n.joint} ${X(i.d)} m from ${n.anchor} there)`:`${n.joint} never gets within ${a} m of ${n.anchor} near f${r} (closest ${X(i.d)} m at f${i.q}): hold its weight w_${n.anchor}_${Sb(n.joint)} at 1 around the switch`}}},Ab=.003,jb=24;function Mb(e,t,n,r){let i=e.hand(t,n);if(i.ch===`hand_${t}`)return{channel:i.ch,f:n,delta:r};if(i.fit!==null&&i.fit!==void 0)return e.spec.fits[i.fit].offset?{path:`/fits/${i.fit}/offset`,delta:r}:{path:`/fits/${i.fit}/offset`,value:r};if(i.anchor&&e.spec.anchors?.[i.anchor]?.kind===`world`)return{path:`/anchors/${i.anchor}/p`,delta:r}}function Nb(e,t,n,r,i){let a=eb(e,`hand_${t}`,n,r,i),o=Mb(e,t,n,r);return o?{...a,fix:o}:a}function Pb(e,t,n,r){let i=e.spec.anchors?.[e.hand(t,n).anchor],a=e.out.ctx.scene;return i?.kind===`object`&&[a.objects?.[i.object]?.ancestors,Ml(a)[i.object]?.ancestors,[i.object]].some(e=>e?.includes(r))}function Fb(e,t){let n=W(G(e.R),L(t,e.pos)),r=[0,e.half[1],0];return I(e.pos,W(e.R,n.map((t,n)=>H(t,r[n]-e.half[n],r[n]+e.half[n]))))}var Ib={REACH:(e,t)=>hy(e,t)??kb.REACH(e,t),GRAB(e,t){let n=t.subject.split(`:`)[0],r=t.worstFrame,i=e.spec?.objects?.[n],a={cause:`objects.${n}.grab`,hint:`${n}: move the hand to it by f${r}, or set objects.${n}.grab to the frame the hand arrives`};if(!e.out||!yl(i))return a;let o=null;for(let i=r-jb;i<=r+jb;i++){let a=Dy(e.out,n,i);a!==null&&a<=t.limit&&(!o||Math.abs(i-r)<Math.abs(o[0]-r))&&(o=[i,a])}if(o)return{cause:a.cause,hint:`${n}: set objects.${n}.grab to ${o[0]} (the hand is ${(o[1]*100).toFixed(1)} cm from it there, ${(t.worst*100).toFixed(1)} cm at f${r})`,fix:{path:`/objects/${n}/grab`,value:o[0]}};let{sk:s,spec:c,scene:l}=e.out.ctx,u=Cl(s,c,e.fr(r).s,i),d=am(l,n).map(e=>Fb(l.objects[e],u)).reduce((e,t)=>B(L(t,u))<B(L(e,u))?t:e),f=B(L(d,u)),p=R(L(d,u),f>1e-9?(f-t.limit/2)/f:0),m=Nb(e,c.props[i.prop].hand,r,p,` (to ${n} at grab)`);return{...m,hint:`${m.hint}; or set objects.${n}.grab to the frame the hand arrives`}},COLLIDE(e,t){let[,n,r]=/^(\S+) x (.+)$/.exec(t.subject)??[],i=e.spec?.objects??{},a=yl(i[r])?r:yl(i[n])?n:null;if(!a||!e.out)return sb.COLLIDE(e,t);let o=i[a],s=e.spec.props[o.prop].hand,[c,l]=lm(e.out,o),u=t.worst-t.limit+Ab,d=t.worstFrame,f=d>=c&&d<=l,p=Math.min(d,l),m=ym(e.out,a,d)??[];if(a===r){let t=uu.find(e=>e[0]===n),{s:r}=e.fr(d);if(!t||!m.length)return null;let i=du(r.P[e.I[t[1]]],r.P[e.I[t[2]]]),[o,c]=m.flatMap(e=>i.map(t=>[e,t])).reduce((e,t)=>fu(t[1],t[0])<fu(e[1],e[0])?t:e),l=vu(c,o),p=/^(hand|farm|uarm)_([lr])$/.exec(n)?.[2];return f&&p&&p!==s&&Pb(e,p,d,a)?eb(e,`hand_${p}`,d,R(l,u),` (out of ${a})`):f?Nb(e,s,d,R(l,-u),` (${a} off ${n})`):eb(e,n,d,R(l,u),` (out of ${a})`)}let h=e.out.objectsAt(e.rel(d))[r];if(!h||!m.length)return null;let g=ym(e.out,a,Math.max(c,t.first-1))??m,_=m.map((e,t)=>Cy(e,h,L(g[t].pos,h.pos))).reduce((e,t)=>t.depth>e.depth?t:e);return Nb(e,s,p,R(_.axis,_.depth-t.limit+Ab),f?` (${a} out of ${r})`:` (${a} is put down in ${r}; it stays where the hand lets go at f${l})`)}},Lb=[`add`,`remove`,`replace`,`test`],Rb=e=>{throw Error(`MOTION_SPEC_INVALID: ${e}`)},zb=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Bb=e=>e.split(`/`).slice(1).map(e=>e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`)),Vb=e=>e.map(e=>`/${String(e).replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}`).join(``);function Hb(e,t){if(Array.isArray(e))return`${t} has ${e.length} entries`;let n=Object.keys(e);return n.length?`${t} has ${n.slice(0,8).join(`, `)}${n.length>8?`, ...`:``}`:`${t} is empty`}function Ub(e,t,n){let r=e;for(let e=0;e<t.length-1;e++){let i=t[e],a=e?t[e-1]:`the spec`;(typeof r!=`object`||!r||!Object.hasOwn(r,Array.isArray(r)?Number(i):i)||Array.isArray(r)&&!/^\d+$/.test(i))&&Rb(`${n}: ${Vb(t.slice(0,e+1))} does not exist${r&&typeof r==`object`?` (${Hb(r,a)})`:``}`),r=r[Array.isArray(r)?Number(i):i]}return(typeof r!=`object`||!r)&&Rb(`${n}: ${Vb(t.slice(0,-1))} is not an object or array`),r}function Wb(e,t,n,r){(!t||typeof t!=`object`||!Lb.includes(t.op))&&Rb(`patch[${n}]: op must be ${Lb.join(`, `)}, got ${JSON.stringify(t?.op)}`);let i=`patch[${n}] (${t.op} ${t.path})`;if((typeof t.path!=`string`||t.path!==``&&!t.path.startsWith(`/`))&&Rb(`${i}: path must be a JSON Pointer such as "/keys/0/f"`),t.op!==`remove`&&!Object.hasOwn(t,`value`)&&Rb(`${i}: needs a value`),t.path===``){if(t.op===`replace`)return structuredClone(t.value);if(t.op===`test`)return zb(e,t.value)||Rb(`${i}: the spec differs from the test value`),e;Rb(`${i}: ${t.op} needs a path below the spec`)}let a=Bb(t.path),o=a[a.length-1],s=Ub(e,a,i),c=a.length>1?a[a.length-2]:`the spec`;if(Array.isArray(s)){if(o===`-`)return t.op!==`add`&&Rb(`${i}: "-" (append) works with add only`),s.push(structuredClone(t.value)),e;let n=/^\d+$/.test(o)?Number(o):NaN,r=t.op===`add`?s.length:s.length-1;return n>=0&&n<=r||Rb(`${i}: ${t.path} does not exist (${Hb(s,c)})`),t.op===`add`?s.splice(n,0,structuredClone(t.value)):t.op===`remove`?s.splice(n,1):t.op===`replace`?s[n]=structuredClone(t.value):zb(s[n],t.value)||Rb(`${i}: value is ${JSON.stringify(s[n])?.slice(0,60)}, not ${JSON.stringify(t.value)?.slice(0,60)}`),e}return t.op===`replace`&&r&&!Object.hasOwn(s,o)?r.push(`${i}: ${t.path} did not exist (${Hb(s,c)}); added`):t.op!==`add`&&!Object.hasOwn(s,o)&&Rb(`${i}: ${t.path} does not exist (${Hb(s,c)})`),t.op===`remove`?delete s[o]:t.op===`test`?zb(s[o],t.value)||Rb(`${i}: value is ${JSON.stringify(s[o])?.slice(0,60)}, not ${JSON.stringify(t.value)?.slice(0,60)}`):s[o]=structuredClone(t.value),e}function Gb(e,t,n){return Array.isArray(t)||Rb(`patch must be an array of { op, path, value }`),t.reduce((e,t,r)=>Wb(e,t,r,n),structuredClone(e))}var Kb=2,qb=e=>Array.isArray(e)?e.map(qb):typeof e==`number`?Math.round(e*1e4)/1e4:e,Jb=e=>e.split(`/`).slice(1).map(e=>e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`)),Yb=e=>e.map(e=>`/${String(e).replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}`).join(``),Xb=e=>typeof e==`number`&&Number.isFinite(e);function Zb(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n||!Object.hasOwn(n,e))return;n=n[e]}return n}function Qb(e,t){if(Xb(e)&&Xb(t))return e+t;if(Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every(Xb)&&t.every(Xb))return e.map((e,n)=>e+t[n])}function $b(e,t,n){let r=-1;return(e.keys??[]).forEach((i,a)=>{!i?.set||!Object.hasOwn(i.set,t)||!Xb(i.f)||Math.abs(i.f-n)>Kb||(r<0||Math.abs(i.f-n)<Math.abs(e.keys[r].f-n))&&(r=a)}),r}function ex(e,t,n,r){let i=/^use\[(\d+)\] standIdle$/.exec(r?.src??``),a=n.delta;if(!i||n.channel!==`root`||!Array.isArray(a)||Math.hypot(a[0],a[2])<Math.abs(a[1]))return null;let o=Number(i[1]),s=t.use?.[o],c=e.fr(r.f).c.root;if(s?.skill!==`standIdle`)return null;let l=Array.isArray(s.args?.at)?s.args.at:c&&[c[0],c[2]];if(!l)return null;let u=qb(l.map((e,t)=>e+(t===0?a[0]:t===l.length-1?a[2]:0)));return s.args?[{op:Object.hasOwn(s.args,`at`)?`replace`:`add`,path:`/use/${o}/args/at`,value:u}]:[{op:`add`,path:`/use/${o}/args`,value:{at:u}}]}function tx(e,t,n,r){let i=t.use?.[n],a=i?.args??{},o=r.delta,s=(e.fr(r.f).c.yaw??0)*Math.PI/180,c=o[0]*Math.sin(s)+o[2]*Math.cos(s);if(i?.skill!==`walkTo`||Math.abs(o[0]*Math.cos(s)-o[2]*Math.sin(s))>Math.abs(c))return null;let l=(e,t)=>[i.args?{op:Object.hasOwn(a,e)?`replace`:`add`,path:`/use/${n}/args/${e}`,value:qb(t)}:{op:`add`,path:`/use/${n}/args`,value:{[e]:qb(t)}}];if(a.steps===void 0&&Array.isArray(a.to))return l(`to`,a.to.map((e,t)=>e+(t===0?o[0]:t===a.to.length-1?o[2]:0)));let u=a.steps??8,d=u<=2?`firstStep`:`step`,f=(a[d]??(d===`step`?.5:.4))+c/Math.max(1,u-2);return u>=2&&f>.05?l(d,f):null}function nx(e,t,n){let r=e.keys(`root`),i=e=>/^keys\[\d+\]$/.test(e.src),a=r.findLastIndex(e=>e.f<=n.f);if(a<0||!i(r[a]))return null;let o=a,s=a;for(;o>0&&i(r[o-1]);)--o;for(;s<r.length-1&&i(r[s+1]);)s+=1;return r.slice(o,s+1).map(e=>{let r=Number(/\d+/.exec(e.src)[0]),i=t.keys?.[r]?.set?.root;return Array.isArray(i)&&i.length===3?{op:`replace`,path:`/keys/${r}/set/root`,value:qb([i[0]+n.delta[0],i[1],i[2]+n.delta[2]])}:null}).filter(Boolean)}function rx(e,t,n){if(!Array.isArray(n.delta)||!e?.fr)return null;let r=e.bracket(`root`,n.f).prev,i=/^use\[(\d+)\] (standIdle|walkTo)\b/.exec(r?.src??``);if(i?.[2]===`standIdle`)return ex(e,t,n,r);if(i?.[2]===`walkTo`)return tx(e,t,Number(i[1]),n);let a=r&&nx(e,t,n);return a?.length?a:null}function ix(e,t,n){let{channel:r,f:i}=n;if(typeof r!=`string`||!Xb(i))return null;if(n.hold)return rx(e,t,n);let a=e=>n.value===void 0?Qb(e,n.delta):n.value,o=$b(t,r,i);if(o>=0){let e=a(t.keys[o].set[r]);return e===void 0?null:[{op:`replace`,path:Yb([`keys`,o,`set`,r]),value:qb(e)}]}if(!e?.fr)return null;let{prev:s,next:c}=e.bracket(r,i),l=s&&i-s.f<=Kb?s:c&&c.f-i<=Kb?c:null,u=n.delta!==void 0&&ex(e,t,n,l);if(u)return u;let d=a(e.fr(i).c[r]);return d===void 0?null:[{op:`add`,path:`/keys/-`,value:{f:Math.round(i),set:{[r]:qb(d)}}}]}function ax(e,t){if(typeof t.path!=`string`||!t.path.startsWith(`/`))return null;let n=Jb(t.path),r=Zb(e,n),i=t.delta===void 0?t.value:r===void 0&&t.path.endsWith(`/offset`)?t.delta:Qb(r,t.delta);return i===void 0?null:r===void 0?Zb(e,n.slice(0,-1))===void 0?n.length===2&&n[0]===`fix`?[{op:`add`,path:Yb([n[0]]),value:{[n[1]]:qb(i)}}]:null:[{op:`add`,path:t.path,value:qb(i)}]:[{op:`replace`,path:t.path,value:qb(i)}]}function ox(e,t,n){let r=e.channel===void 0?e.path===void 0?null:ax(n,e):ix(t,n,e);if(!r)return null;try{return JSON.stringify(Gb(n,r))===JSON.stringify(n)?null:r}catch{return null}}function sx(e,{X:t,userSpec:n}={}){if(!n||typeof n!=`object`)return e;for(let r of e)if(r.fix)try{let e=ox(r.fix,t,n);e&&(r.patch=e)}catch{}return e}var cx={...sb,...kb,...Ib,...bb,...qy};function lx(e){let t=new Map;for(let n of e.keys??[])for(let e of Object.keys(n.set??{}))t.has(e)||t.set(e,[]),t.get(e).push({f:n.f,src:n.src??`keys`,step:n.step?.includes(e)});for(let e of t.values())e.sort((e,t)=>e.f-t.f);return t}function ux(e,t,n){let r=lx(t),i={sk:e,out:t,spec:n,I:e.index,fr:e=>t.frames[Math.max(0,Math.min(t.frames.length-1,e-(t.f0??0)))],rel:e=>Math.max(0,Math.min(t.frames.length-1,e-(t.f0??0))),keys:e=>r.get(e)??[],bracket(e,t){let n=i.keys(e),r=null,a=null;for(let e of n)if(e.f<=t)r=e;else{a=e;break}return{prev:r,next:a}},cause(e,t){let{prev:n,next:r}=i.bracket(e,t);if(!n&&!r)return`${e} (not keyed)`;let a=n&&t-n.f<=2?n:r&&r.f-t<=2?r:null;return a?`${a.src} f${Math.round(a.f)} ${e}`:r?n?`${e} between ${n.src} f${Math.round(n.f)} and ${r.src===n.src?``:`${r.src} `}f${Math.round(r.f)}`:`${e} before ${r.src} f${Math.round(r.f)}`:`${e} held since ${n.src} f${Math.round(n.f)}`},hand(e,t){let r=i.fr(t).c;if(!(r[`armw_${e}`]>.5))return{label:`arm ${e} (FK: aswing_${e}/abend_${e}, or armw_${e} 1 and hand_${e})`,ch:`aswing_${e}`};let a=null;for(let[t,n]of Object.entries(r)){let r=/^w_(.+)_([lr])$/.exec(t);r&&r[2]===e&&n>.5&&(!a||n>a.w)&&(a={w:n,anchor:r[1],ch:t})}if(!a)return{label:`hand_${e}`,ch:`hand_${e}`};let o=(n.fits??[]).findIndex(t=>t.anchor===a.anchor&&t.side===e);return{label:`anchor ${a.anchor}`,ch:a.ch,anchor:a.anchor,fit:o>=0?o:null}}};return i}function dx(e,t,n,r,{limit:i=16,userSpec:a}={}){if(!r.length)return r;let o=ux(e,t,n);for(let e of r.slice(0,i))try{let t=cx[e.kind]?.(o,e);t&&(e.cause=t.cause,e.hint=t.hint),t?.fix&&Object.defineProperty(e,"fix",{value:t.fix,enumerable:!1,configurable:!0})}catch(t){e.cause=`unknown`,e.hint=`no hint (${t.message})`}return sx(r,{X:o,userSpec:a})}var fx=new Set([`ORIENT`,`BELOW`,`CLEARANCE`]),px=e=>Math.max(0,fx.has(e.kind)?e.limit-e.worst:e.worst-e.limit),mx=e=>e.count*(1+Math.min(3,px(e)/Math.max(Math.abs(e.limit),.01))),hx=e=>Math.round(mx(e)*100)/100,gx=/(?<![\w\-.[])[-+]?\d+(\.\d+)?|\bf\d+\b/g,_x=e=>{let t=e.subject.indexOf(`: `),n=t>=0?e.subject.slice(0,t+2):``;return`${e.kind} ${n}${e.subject.slice(n.length).replace(gx,e=>e[0]===`f`?`f#`:`#`)}`};function vx(e){for(let t of e)t.excess=Math.round(px(t)*1e4)/1e4,t.severity=hx(t);return e.sort((e,t)=>(t.kind===`GOAL`)-(e.kind===`GOAL`)||t.severity-e.severity||t.count-e.count)}function yx(e){let t=new Map;for(let n of e){let e=_x({kind:n.kind,subject:n.msg}),r=t.get(e)??{kind:n.kind,subject:n.msg,count:0,worst:n.value,worstFrame:n.frame,first:n.frame,last:n.frame,limit:n.limit};r.count++,r.first=Math.min(r.first,n.frame),r.last=Math.max(r.last,n.frame),(fx.has(n.kind)?n.value<r.worst:n.value>r.worst)&&(r.worst=n.value,r.worstFrame=n.frame,r.subject=n.msg),t.set(e,r)}return vx([...t.values()])}function bx(e,t,n,r={}){let i=n.checks??{},a=jv(t,n.goals??[]),o=[...fd(e,t,{allow:i.allow,limits:i.limits,mouthPoints:i.mouthPoints}),...uy(t,i),...ky(e,t,n),...Yu(t,i),...Zu(e,t,i,{...cd,...i.limits}),...Gy(e,t),...a.issues];if(t.f0)for(let e of o)e.frame+=t.f0;let s=yx(o);return r.explain!==!1&&dx(e,t,n,s,{userSpec:r.userSpec}),{ok:o.length===0,total:o.length,...n.goals?{goals:a.results}:{},groups:s}}var xx=[`contacts`,`orient`,`below`,`clearance`,`appear`];function Sx(e){let t=e?.checks;if(!t||typeof t!=`object`||!xx.some(e=>Array.isArray(t[e])&&t[e].some(e=>e&&typeof e==`object`&&e.name===void 0)))return e;let n={...t};for(let e of xx)Array.isArray(t[e])&&(n[e]=t[e].map((t,n)=>t&&typeof t==`object`&&t.name===void 0?{...t,name:`${e}[${n}]`}:t));return{...e,checks:n}}var Cx=(e,t)=>({...t,...e?{description:e}:{}}),wx=(e,t)=>Cx(e,{type:`number`,...t}),Tx=(e,t)=>Cx(e,{type:`integer`,...t}),Z=(e,t)=>Cx(e,{type:`string`,...t}),Ex=(e,t)=>Cx(e,{type:`boolean`,...t}),Dx=(e,t)=>Cx(t,{$ref:`#/$defs/${e}`}),Ox=e=>Cx(e,{enum:[`l`,`r`]}),kx=(e,t)=>Cx(t,{type:`array`,prefixItems:[e,e],minItems:2,maxItems:2}),Ax={vec3:{type:`array`,items:{type:`number`},minItems:3,maxItems:3},frameSpan:{type:`array`,items:{type:`integer`,minimum:0},minItems:2,maxItems:2,description:`[f0, f1] inclusive`},ref:{type:`string`,pattern:`^(${sp.join(`|`)}):.+$`,description:`a point ref (topic refs)`},checkRef:{type:`string`,pattern:`^(joint|prop|anchor):.+$`,description:`joint:<Bone> | prop:<prop>.<point> | anchor:<name>`},part:{type:`string`,description:`a body capsule: ${uu.map(e=>e[0]).join(`, `)}; allow matches a prefix (hand = hand_l and hand_r)`},when:{oneOf:[{type:`string`,description:`a weight channel: active where it is > 0.99`},{$ref:`#/$defs/frameSpan`}]}},jx={f:Tx(`frame`,{minimum:0}),set:{type:`object`,description:`{ channel: value } (topic channels)`},step:{type:`array`,items:{type:`string`},description:`channels that jump at f instead of easing in`},src:Z(`written by the skills expander; leave it out`)},Mx={skill:Z(`a skill name (topic skills)`),args:{type:`object`,description:`the skill's args (topic skills with name)`},f0:Tx(`first frame`,{minimum:0})},Nx={type:{const:`walk`},f0:Tx(`first frame; needs a standing pose keyed before it`,{minimum:0}),steps:Tx(`footsteps`,{minimum:1,default:8}),step:wx(`stride, m`,{default:.5}),period:Tx(`frames per step`,{default:20}),swing:Tx(`frames a foot is in the air`,{default:14}),halfWidth:wx(`feet half-width, m`,{default:.08}),lift:wx(`foot lift, m`,{default:.08}),heading:kx({type:`number`},`[h0, h1] degrees; ${vp.yaw}`),turnDistance:wx(`m walked while the heading turns h0 -> h1`,{default:.4}),pelvisHigh:wx(`hips offset over the stance foot, m`),pelvisLow:wx(`hips offset at double support, m`),firstStep:wx(`first stride, m`,{default:.4}),armSwing:wx(`degrees`,{default:14}),vary:wx(`0..2, uneven steps as people walk (build-up, slow stop, left/right, turns) around the averages above; 0 = every step period frames, step m`,{default:1,minimum:0,maximum:2})},Px={schema:{const:`cozyclay.motion-spec.v1`},fps:{const:24},frames:{oneOf:[Tx(null,{minimum:1,maximum:2e4}),{const:`auto`,description:`the last skill end, generator end or key f, plus 1 (open values at their upper bound); the stored spec keeps the number`}]},label:Z(`a short name for the take`),keys:{type:`array`,items:{$ref:`#/$defs/key`}},anchors:{type:`object`,description:`name -> anchor (topic anchors)`},props:{type:`object`,description:`name -> held prop (topic props)`},fits:{type:`array`,description:`topic props`},objects:{type:`object`,description:`scene object id -> hinge, carry, switch, follow or free (topic objects)`},generators:{type:`array`,items:{$ref:`#/$defs/walk`}},checks:{type:`object`,description:`topic checks`},fix:{oneOf:[{const:!1},{type:`object`}],description:`topic fix`},use:{type:`array`,items:{$ref:`#/$defs/use`}},channels:{type:`array`,items:{type:`string`},description:`extra numeric channels your keys set`},detourRadius:wx(`m; a hand moving between targets arcs around the torso this far out`,{default:.25}),search:{type:`object`,properties:{budget:Tx(`compiles at most`,{minimum:1,maximum:64,default:32})},additionalProperties:!1},goals:{type:`array`,description:`topic goals`},flow:{oneOf:[{const:!1},{type:`object`}]},idle:{const:!1,description:`held poses do not breathe`}},Fx={p:Dx(`vec3`,`world: a world point (m); body: root-relative, ${vp.pole}`),bone:Z(`bone name`),offset:Dx(`vec3`,`world offset, m`),from:Z(`bone`),to:Z(`bone`),t:wx(`0 = from .. 1 = to`,{default:.5}),tMin:wx(`with reach: the lowest t to slide back to`,{default:.15}),reach:Ox("slide toward `from` until this arm reaches"),object:Z(`scene object id`),local:Dx(`vec3`,`point in the object's frame, m`),name:{const:`mouth`},prop:Z(`a prop held by the other hand`),point:Z(`a point of that prop, or origin`)},Ix=e=>Dx(`vec3`,`${e} [d, l, n] on the palm axes (d to the middle finger, l to the thumb side, n = d x l), m`),Lx={world:[`p`],body:[`p`],bone:[`bone`],segment:[`from`,`to`],object:[`object`],landmark:[`name`],prop:[`prop`,`point`]},Rx={hand:Ox(),origin:{type:`array`,items:{type:`string`},minItems:1,description:`bones whose mean is the prop origin`},points:{type:`object`,additionalProperties:Ix(`point:`),description:`name -> point`}},zx={side:Ox(),anchor:Z(`an anchor name`),effector:{oneOf:[{type:`object`,properties:{prop:Z(),point:Z()},required:[`prop`,`point`]},{type:`object`,properties:{joints:{type:`array`,items:{type:`string`}}},required:[`joints`]}],description:`the hand point fitted onto the anchor`},offset:Dx(`vec3`,`world offset, m`),orient:{type:`boolean`,description:`false: no grip turn`}},Bx={f:Tx(),pos:Dx(`vec3`),rot:{type:`array`,items:{type:`number`},minItems:4,maxItems:4,description:`quat x, y, z, w`},aim:Dx(`vec3`,`or rot: +Y dir`),roll:wx(`deg about aim`),lean:wx(`aim tilt`,{minimum:0,maximum:45})},Vx={type:`object`,properties:{at:Tx(),onto:Z(),bounce:wx(null,{default:.25,minimum:0,maximum:.6})},required:[`at`],additionalProperties:!1},Hx={description:`as carry; keys at any frame`},Ux={keys:Hx,fall:Hx},Wx={pivot:Dx(`vec3`,`world hinge point, m`),axis:Dx(`vec3`,`default [0, 1, 0]`),channel:Z(`angle channel, deg`),prop:Z(`spec.props name: it rides that hand`),at:Dx(`vec3`,`palm offset [d, l, n], m`),along:Dx(`vec3`,`its +Y on the palm, fixed`),visible:Z(`channel: shown > 0.5`),level:Z(`channel: strength 0..4`),grab:Tx(`the hand takes it`,{default:0}),release:Tx(`let go (else the end)`),keys:{type:`array`,items:{type:`object`,properties:Object.fromEntries(tp.map(e=>[e,Bx[e]])),required:[`f`,`pos`],additionalProperties:!1},description:`world pose at f, in hand; the hand follows`},fall:{...Vx,description:`or a list; topic objects`},follow:Dx(`ref`),offset:Dx(`vec3`),aim:{oneOf:[{enum:[`face`,`up`]},{$ref:`#/$defs/vec3`},{$ref:`#/$defs/ref`}],default:`up`}},Gx={name:Z(`the QA group's name`),point:Dx(`checkRef`),target:Dx(`checkRef`),tol:wx(`m; default contacts 0.01, appear 0.035, supports 0.04`),when:Dx(`when`),from:Dx(`checkRef`),to:Dx(`checkRef`),along:{oneOf:[{enum:[`face`,`up`]},{$ref:`#/$defs/vec3`}]},minCos:wx(`default 0.64`),joint:Z(`bone`),ref:Z(`bone`),min:wx(`m; below default 0.08`),part:Dx(`part`),object:Z(`scene object id`),frames:Dx(`frameSpan`),channel:Z(`a visibility channel`),anchor:Z(`an anchor name`),depth:wx(`allowed depth, m`)},Kx={contacts:[`point`,`target`],orient:[`from`,`to`,`along`],below:[`joint`,`ref`],clearance:[`part`,`object`,`min`],appear:[`channel`,`joint`,`anchor`],supports:[`object`],allow:[`part`,`object`,`depth`]},qx={limits:{type:`object`,properties:Object.fromEntries(Object.entries(cd).map(([e,t])=>[e,wx(null,{default:t})])),additionalProperties:!1},mouthPoints:{type:`array`,items:Z(`prop.point`),description:`prop points allowed at the mouth`}},Jx={name:Z(),near:kx({$ref:`#/$defs/ref`},`distance <= tol`),above:kx({$ref:`#/$defs/ref`},`a.y - b.y >= by`),moved:Z("a ref or an object id: an object's base moves at least `by` from the scene pose; any other point (prop:, joint:, landmark:, anchor:) at least `by` from where it is at at[0] (at: [f0, f1])"),still:Z("a ref or an object id: stays within `tol` of where moved measures from (an object: its scene pose; a point: where it is at at[0], at: [f0, f1])"),speed:Z("a point ref: its speed reaches `by` m/s (mode any by default)"),tol:wx(`m; near default 0.05, still 0.01`),by:wx(`above m, default 0; moved m, default 0.05; speed m/s, needed`),at:{oneOf:[Tx(null,{minimum:0}),{$ref:`#/$defs/frameSpan`}],description:`absolute frame or span`},mode:{enum:[`all`,`any`],description:"every frame of `at`, or one; default all, speed any"},after:Z(`a goal's name: at starts after the first frame that goal holds`),before:Z(`a goal's name: at ends before the first frame that goal holds`)},Yx={name:Z(`the key of the answer`),distance:kx({$ref:`#/$defs/ref`},`min/max/mean/first/last m`),position:Dx(`ref`,`world points`),frames:Dx(`frameSpan`,`absolute, default the whole take`),every:Tx(`position: every n frames (<= 16 rows)`,{minimum:1})},Xx={reach:Ex(`wrist targets past reach go onto it softly; hips lower for near-miss ankles`,{default:!0}),slide:Ex(`lifts sunk soles; a planted heel or ball drifting under 1 cm stays put; a heel-up foot pivots on its ball`,{default:!0}),penetration:{oneOf:[{type:`boolean`},{type:`number`,minimum:0,maximum:.05}],default:0,description:`push hands out of boxes up to this depth, m (true = 0.02)`},self:Ex(`arms kept out of the body's skin (wrists, elbows)`,{default:!0}),retime:Ex(`speed spikes borrow frames from the neighbouring keys`,{default:!1})},Zx={joint:`joint:<Bone>, the bone's joint`,bone:`bone:<Bone>, as joint:`,prop:`prop:<prop>.<point> (origin always exists)`,anchor:`anchor:<name>, a spec anchor`,landmark:`landmark:mouth`,object:`object:<id>[.center|.top|.base], a body or group (Empty); bare = its surface in a distance`},Qx=e=>e.f0+16+(e.steps??8)*(e.period??20)+18,$x=e=>({type:`array`,items:{type:`number`},minItems:2,maxItems:2,description:e}),eS=e=>Object.fromEntries(e.map(e=>[e,Z(e===`car`?`car prefix: fills <car>_Seat_Driver, _Seat_Driver_Back, _Door_L/R, _Door_Handle, _Steering_Wheel`:`scene object id (overrides the car default)`)])),tS=Object.fromEntries(np.filter(e=>e!==`type`&&e!==`f0`).map(e=>[e,Nx[e]])),nS={standIdle:{args:{at:$x(`[x, z] world m; default the root keyed before f0`),heading:wx(`degrees (yaw); default the keyed yaw`),until:Tx(`hold the pose to this frame`)},needs:`args.at, or a root keyed before f0`,frames:`1 (to args.until when given)`,adds:[`keys: a standing pose, FK arms down`],example:{f0:0,args:{at:[0,0],heading:0}},place:{at:.03}},walkTo:{args:{to:$x(`[x, z] world m: the heading turns toward it and the steps cover the distance`),...tS,heading:{oneOf:[wx(),Nx.heading],description:`degrees: h1, or [h0, h1]`},arrive:Tx(`with to and no steps/period/step/swing: the frame to end by (feet together); the engine picks the cadence (observations.planned)`)},needs:`a standing pose keyed before f0`,frames:`16 + steps * period + 18`,adds:[`keys: a walk ending feet together`],example:{f0:10,args:{to:[.5,1.5]}},tune:{lift:.01,halfWidth:.01,firstStep:.01,step:.01},place:{firstStep:.03,step:.03}},reachGrip:{args:{anchor:Z(`not ending in _l/_r`),side:Ox(`the hand`),reach:Tx(`frames to reach`,{default:20}),hold:Tx(`frames held`,{default:22}),release:Tx(`frames to let go`,{default:12}),elbow:Dx(`vec3`,`elbow pole`),fingers:{enum:hp,default:`grip`},define:{type:`object`,description:`an anchor (topic anchors) named args.anchor`},orient:{type:`boolean`,description:`false: no grip turn`}},required:[`anchor`,`side`],needs:`args.anchor in spec.anchors or args.define`,frames:`reach + hold + release (54 by default)`,adds:[`props.<anchor>Grip (fingers point)`,`fits: fingers onto the anchor`,`checks.contacts "fingers on <anchor>"`,`checks.allow hand on the anchor's object`,`keys: w_<anchor>_<side>, fingers_<side>, armw_<side>`],example:{f0:10,args:{anchor:`bar`,side:`r`,define:{kind:`world`,p:[-.2,1.2,.33]}}},tune:{reach:2,release:2}},sitInSeat:{args:{...eS([`car`,`seat`,`seatBack`,`wheel`]),offset:{...Dx(`vec3`,`hips from the seat top, seat frame`),default:[0,.17,.02]},floor:wx(`floor y under the feet, m`)},needs:`args.car or args.seat (a scene box)`,frames:`1`,adds:[`keys: seated, hands at the wheel`,`checks.supports seat`,`checks.allow seat, back, wheel`],example:{f0:0,args:{car:`Car`}}},exitCar:{args:{...eS([`car`,`seat`,`door`,`handle`]),side:Ox(`driver door side, default l`),channel:Z(`the door hinge channel`,{default:`door`})},needs:`seated in the car before f0 (sitInSeat); a car on the ground (seat base y 0.4)`,frames:`246`,adds:[`objects: door and handle hinges`,`anchors handle, lthigh, rthigh`,`props.grip`,`fits, checks.contacts, checks.allow`],example:{f0:0,args:{car:`Car`}}},smokeCigarette:{args:{until:Tx(`hold to this frame; default the last frame; under f0+264 the beats are paced to fit`),kit:{type:`object`,properties:{cig:Z(`the cigarette kit's rootId (object.createKit)`),lighter:Z(`the lighter kit's rootId`),exhale:Z(`the exhale kit's rootId (or an effect): it follows the mouth`)},required:[`cig`,`lighter`],additionalProperties:!1,description:`kits the skill carries and lights: it adds their spec.objects entries itself`}},needs:`a stand or squat keyed before f0`,frames:`265 nominal; fits 199..264 by pacing`,adds:[`anchors lpocket, rpocket, hold, mouth, flame`,`props cig, lighter`,`channels cig_vis, lit_vis, flame_vis, ember_vis, exhale, ember`,`checks contacts, orient, below, appear, mouthPoints`],example:{f0:0,args:{}}}},rS={_l:`_r`,_r:`_l`},iS=/^(yaw|roll|spine_yaw|spine_roll|head_yaw|head_roll|fyaw_[lr]|wtwist_[lr]|wflex_[lr])$/,aS=/^(root|foot_[lr]|hand_[lr])$/,oS=/^(knee|elbow)_[lr]$/,sS=/^(yaw|fyaw_[lr])$/,cS=e=>e&&typeof e==`object`?structuredClone(e):e,lS=e=>e.replace(/_(l|r)$/,e=>rS[e]).replace(/^(Left|Right)/,e=>e===`Left`?`Right`:`Left`),uS=()=>({origin:[0,0,0],yaw:0,mirror:!1,negate:new Set,names:{}}),dS=(e,t)=>I(e.origin,W(fs(e.yaw),e.mirror?[-t[0],t[1],t[2]]:t)),fS=(e,t)=>e.mirror?[-t[0],t[1],t[2]]:t.slice();function pS(e,t){if(!e.mirror)return t;let n=/^w_(.+)_([lr])$/.exec(t);return n?`w_${e.names[n[1]]??n[1]}_${n[2]===`l`?`r`:`l`}`:/_[lr]$/.test(t)?lS(t):t}function mS(e,t){let n={};for(let[r,i]of Object.entries(t)){let t=cS(i);aS.test(r)?t=dS(e,t):oS.test(r)?t=fS(e,t):typeof t==`number`&&(e.mirror&&(iS.test(r)||e.negate.has(r))&&(t=-t),sS.test(r)&&(t+=e.yaw)),n[pS(e,r)]=t}return n}function hS(e,t=0,n=uS()){let r=[],i=e=>pS(n,e);return{state:e,keys:r,frame:n,at(i,a){let o=mS(n,a);Object.assign(e,cS(o)),r.push({f:t+i,set:o})},hold(n,...a){r.push({f:t+n,set:Object.fromEntries(a.filter(t=>e[i(t)]!==void 0).map(t=>[i(t),cS(e[i(t)])]))})},step(n,a,o){let s=i(a);r.push({f:t+n-1,set:{[s]:e[s]}}),e[s]=o,r.push({f:t+n,set:{[s]:o},step:[s]})}}}var gS=(e,t)=>{throw Error(`MOTION_SPEC_INVALID: ${e}: ${t}`)};function _S(e,t,n){let r=e.scene?.objects?.[n];return r||gS(e.tag,`args.${t} "${n}" is not a scene object`),r}var vS=e=>Math.atan2(e[0][2],e[2][2])*180/Math.PI;function yS(e){let{sk:t,args:n,state:r}=e,i=t.index,a=t.restWorldPos,o=a[i.LeftFoot][1],s=n.heading??r.yaw??0,c=n.at??(r.root?[r.root[0],r.root[2]]:null);c||gS(e.tag,`needs args.at: [x, z] (no root is keyed before f0)`);let l=[c[0],0,c[c.length-1]],u=fs(s),d=e=>{let t=I(l,W(u,e));return t[1]=o,t},f={root:[l[0],a[i.Hips][1]-.01,l[2]],yaw:s,pitch:0,roll:0,spine_yaw:0,spine_pitch:0,spine_roll:0,head_yaw:0,head_pitch:0,foot_l:d([.09,0,-.03]),foot_r:d([-.09,0,.03]),fyaw_l:s,fyaw_r:s,fpitch_l:0,fpitch_r:0,knee_l:[.05,0,1],knee_r:[-.05,0,1],armw_l:0,armw_r:0,aswing_l:0,aswing_r:0,abend_l:0,abend_r:0,arm_hang:1},p=[{f:e.f0,set:f}];return n.until!==void 0&&p.push({f:n.until,set:structuredClone(f)}),{keys:p,end:n.until??e.f0}}function bS(e){let{args:t,state:n}=e;(!n.foot_l||!n.foot_r||!n.root)&&gS(e.tag,`needs a standing pose keyed before f0 (use standIdle or another skill first)`);let r={type:`walk`,f0:e.f0,...t};delete r.to,delete r.arrive;let i=n.yaw??0,a=t.step??.5,o=t.firstStep??.4;if(t.to){let e=[(n.foot_l[0]+n.foot_r[0])/2,(n.foot_l[2]+n.foot_r[2])/2],s=t.to[0]-e[0],c=t.to[t.to.length-1]-e[1],l=Math.hypot(s,c),u=Math.atan2(s,c)*180/Math.PI;for(;u-i>180;)u-=360;for(;u-i<-180;)u+=360;r.heading=t.heading??[i,u],r.steps=t.steps??Math.max(2,2+Math.round((l-o)/a))}typeof r.heading==`number`&&(r.heading=[i,r.heading]);let s=Dg(r,e.keys,e.sk,e.tag),c=Qx(r),l=e.frames-1;return c>l&&Math.max(...s.filter(e=>e.f<c).map(e=>e.f))<=l?{keys:s.filter(e=>e.f<=l),end:l,cut:`settle cut at f${l} (hold to the end)`}:{keys:s,end:c}}function xS(e){let{args:t,state:n}=e,r=t.side,i=t.anchor;r!==`l`&&r!==`r`&&gS(e.tag,`args.side must be "l" or "r", got ${JSON.stringify(r)}`),(typeof i!=`string`||/_[lr]$/.test(i))&&gS(e.tag,`args.anchor must name an anchor (not ending in _l/_r)`);let a=t.reach??20,o=t.hold??22,s=t.release??12,c=t.fingers??`grip`,l=`w_${i}_${r}`,u=`fingers_${r}`,d=`armw_${r}`,f=`elbow_${r}`,p=!(n[d]>.5),m=e.frames-1,h=e.f0+a+o<=m&&e.f0+a+o+s>m;for(let[e,t]of[[l,0],[u,{[c]:0}],[d,0]])n[e]===void 0&&(n[e]=t);let g=hS(n,e.f0);g.hold(0,l,u,d,f),g.at(a,{[l]:1,[u]:{...n[u],[c]:1},[d]:1,...t.elbow?{[f]:t.elbow}:{}}),g.hold(a+o,l,u,d,f),h||g.at(a+o+s,{[l]:0,[u]:{...n[u],[c]:0},...p?{[d]:0}:{}});let _=r===`l`?`Left`:`Right`,v=`${i}Grip`,y=t.define?{[i]:t.define}:{},b=t.define?.kind===`object`?t.define.object:e.anchors?.[i]?.kind===`object`?e.anchors[i].object:null;return{keys:g.keys,end:h?m:e.f0+a+o+s,...h?{cut:`release cut at f${m} (hold to the end)`}:{},anchors:y,props:{[v]:{hand:r,origin:[`${_}HandIndex2`,`${_}HandMiddle2`],points:{fingers:[0,0,0]}}},fits:[{side:r,anchor:i,effector:{prop:v,point:`fingers`},...t.orient===!1?{orient:!1}:{}}],checks:{contacts:[{name:`fingers on ${i}`,point:`prop:${v}.fingers`,target:`anchor:${i}`,tol:.04,when:l}],allow:b?[{part:`hand`,object:b,depth:.04}]:[]}}}var SS=[.54,.4,-.075],CS=.4,wS=1.0427487182617188,TS=new Set([`l`,`r`]);function ES(e,t=`l`){let n=e.car;return{seat:e.seat??(n&&`${n}_Seat_Driver`),seatBack:e.seatBack??(n&&`${n}_Seat_Driver_Back`),door:e.door??(n&&`${n}_Door_${t.toUpperCase()}`),handle:e.handle??(n&&`${n}_Door_Handle`),wheel:e.wheel??(n&&`${n}_Steering_Wheel`)}}function DS(e,t,n){let r=_S(e,`seat`,t);Math.abs(r.pos[1]-CS)>.05&&gS(e.tag,`seat "${t}" stands at y ${r.pos[1]}; the car skills are tuned for a seat base at y ${CS} (a car on the ground)`);let i=uS();i.yaw=vS(r.R),i.mirror=n===`r`;let a=L(r.pos,W(fs(i.yaw),i.mirror?[-SS[0],SS[1],SS[2]]:SS));return i.origin=[a[0],0,a[2]],i.names={lthigh:`rthigh`,rthigh:`lthigh`},i}var OS=[[`hand`,`thigh*`,.07],[`farm`,`thigh*`,.07],[`hand`,`hips`,.07],[`farm`,`hips`,.07],[`hand_l`,`hand_r`,.035]].map(([e,t,n])=>({part:e,object:t,depth:n})),kS=e=>({A:e.restWorldPos[e.index.LeftFoot][1],H:t=>t+(e.restWorldPos[e.index.Hips][1]-wS)});function AS(e){let{args:t,sk:n}=e,r=ES(t),i=_S(e,`seat`,r.seat),{A:a}=kS(n),o=vS(i.R),s=e=>W(fs(o),e),c=t.offset??[0,.17,.02],l=t.floor??i.pos[1],u=I(I(i.pos,W(i.R,[0,2*i.half[1],0])),s(c)),d=e=>{let t=I(u,s([e,0,.452]));return t[1]=l+a,t},f=e=>I(u,s([e,.348,.324])),p={root:u,yaw:o,pitch:0,spine_pitch:-12,spine_yaw:0,spine_roll:0,head_yaw:0,head_pitch:10,foot_l:d(.17),foot_r:d(-.17),fyaw_l:o,fyaw_r:o,fpitch_l:0,fpitch_r:0,knee_l:[.15,.2,1],knee_r:[-.15,.2,1],armw_l:1,armw_r:1,hand_l:f(.22),hand_r:f(-.22),elbow_l:[.6,-1,-.3],elbow_r:[-.6,-1,-.3],aswing_l:0,aswing_r:0,abend_l:0,abend_r:0,wtwist_l:0,wtwist_r:0,wflex_l:0,wflex_r:0},m=[{part:`torso_lo`,object:r.seat,depth:.04},{part:`hips`,object:r.seat,depth:.04},{part:`thigh`,object:r.seat,depth:.045}];return r.seatBack&&e.scene.objects[r.seatBack]&&m.push({part:`torso`,object:r.seatBack,depth:.03}),r.wheel&&e.scene.objects[r.wheel]&&m.push({part:`hand`,object:r.wheel,depth:.05}),{keys:[{f:e.f0,set:p}],checks:{supports:[{object:r.seat,part:`hips`,tol:.04}],allow:m},end:e.f0}}function jS(e){let t=e.args.side??`l`;TS.has(t)||gS(e.tag,`args.side must be "l" or "r", got ${JSON.stringify(t)}`);let n=ES(e.args,t),r=DS(e,n.seat,t),i=e.args.channel??`door`;for(let[t,r]of[[`door`,n.door],[`handle`,n.handle]])_S(e,t,r);r.negate.add(i);let a={[i]:0,w_handle_l:0,w_lthigh_l:0,w_rthigh_r:0,fingers_l:{grip:0,fist:0}},o=hS(e.state,e.f0,r),s={};for(let[t,n]of Object.entries(a))e.state[pS(r,t)]===void 0&&(s[t]=n);Object.keys(s).length&&o.at(0,s),MS(o,i,kS(e.sk));let c=e.scene.objects[n.door],l=(r.mirror?-1:1)*c.half[0],u={pivot:I(c.pos,W(c.R,[l,0,c.half[2]])),axis:[0,1,0],channel:i},d=e=>r.mirror?lS(e):e,f=e=>r.mirror?{lthigh:`rthigh`,rthigh:`lthigh`}[e]??e:e,p=(e,t)=>({kind:`segment`,from:d(`${e}UpLeg`),to:d(`${e}Leg`),t:.45,tMin:.15,offset:[0,.07,0],reach:r.mirror?t===`l`?`r`:`l`:t}),m=r.mirror?`r`:`l`;return{keys:o.keys,objects:{[n.door]:u,[n.handle]:u},anchors:{handle:{kind:`object`,object:n.handle,local:fS(r,[-.005,.015,0])},[f(`lthigh`)]:p(`Left`,`l`),[f(`rthigh`)]:p(`Right`,`r`)},props:{grip:{hand:m,origin:[d(`LeftHandIndex2`),d(`LeftHandMiddle2`)],points:{fingers:[0,0,0]}}},fits:[{side:m,anchor:`handle`,effector:{prop:`grip`,point:`fingers`}}],checks:{contacts:[{name:`fingers on the door handle`,point:`prop:grip.fingers`,target:`anchor:handle`,tol:.04,when:`w_handle_${m}`}],allow:[{part:`hand`,object:n.door,depth:.03},{part:`hand`,object:n.handle,depth:.04},...OS]},end:e.f0+246}}function MS(e,t,{A:n,H:r}){e.hold(12,`w_handle_l`,`fingers_l`,`head_yaw`,`spine_yaw`,`spine_roll`,`elbow_l`,`hand_l`),e.at(32,{w_handle_l:1,fingers_l:{grip:1,fist:0},head_yaw:35,spine_yaw:10,spine_roll:-8,elbow_l:[.3,-1,-.6],hand_l:[1,.96,.06]}),e.hold(32,t),e.at(38,{[t]:-3}),e.at(50,{[t]:-10,spine_roll:-16,spine_yaw:14}),e.hold(54,`w_handle_l`,`fingers_l`,`w_lthigh_l`,`elbow_l`,t),e.at(66,{w_handle_l:0,fingers_l:{grip:0,fist:0},[t]:-10}),e.at(70,{w_lthigh_l:1,elbow_l:[.5,-.3,-1],spine_roll:-3,spine_yaw:6}),e.at(84,{[t]:-68,head_yaw:40}),e.hold(64,`w_rthigh_r`,`elbow_r`,`spine_pitch`),e.at(80,{w_rthigh_r:1,elbow_r:[-.5,-.3,-1],spine_roll:0,spine_yaw:0,spine_pitch:0}),e.hold(84,`yaw`,`root`,`foot_l`,`foot_r`,`fyaw_l`,`fyaw_r`,`knee_l`,`knee_r`),e.at(92,{foot_r:[.4,CS+n+.03,.36],fyaw_r:15}),e.at(97,{foot_l:[.96,.62,.32],fyaw_l:40,knee_l:[.5,.4,1],yaw:30,root:[.64,.915,-.06]}),e.at(101,{foot_r:[.56,CS+n,.34],fyaw_r:35}),e.at(105,{foot_l:[1.18,.5,.1],fyaw_l:60}),e.at(116,{foot_l:[1.28,n,-.12],fyaw_l:75,knee_l:[.4,.5,1],yaw:62,root:[.82,.9,-.06],head_yaw:20,knee_r:[.1,.6,1],spine_pitch:10}),e.hold(120,`foot_r`,`fyaw_r`),e.at(129,{foot_r:[.94,.64,.36],fyaw_r:65,knee_r:[0,.5,1],yaw:80,root:[.86,.9,-.03]}),e.at(135,{foot_r:[1.18,.5,.26],fyaw_r:85}),e.hold(142,`foot_l`,`fyaw_l`),e.at(144,{foot_r:[1.29,n,.22],fyaw_r:90,knee_r:[-.1,.4,1],yaw:90,root:[.88,.9,.02],head_yaw:0,knee_l:[.1,.4,1],spine_pitch:16}),e.hold(144,`head_pitch`,`pitch`,`elbow_l`,`elbow_r`),e.at(152,{spine_pitch:28,head_pitch:-8,root:[.91,.9,.02],elbow_l:[.6,-.2,-1],elbow_r:[-.6,-.2,-1]}),e.at(162,{spine_pitch:50,pitch:22,head_pitch:-36,root:[.99,.91,.02]}),e.at(174,{root:[1.09,.96,.02],spine_pitch:36,pitch:12,head_pitch:-24}),e.hold(166,`armw_l`,`armw_r`),e.at(186,{root:[1.19,r(1),.02],spine_pitch:12,pitch:3,head_pitch:-8,armw_l:0,armw_r:0}),e.hold(187,`w_lthigh_l`,`w_rthigh_r`),e.at(190,{w_lthigh_l:0,w_rthigh_r:0}),e.at(196,{root:[1.21,r(1.005),.02],spine_pitch:0,pitch:0,head_pitch:0}),e.at(205,{root:[1.26,r(.985),.165]}),e.hold(208,`foot_l`,`fyaw_l`),e.at(212,{root:[1.3,r(.985),.16]}),e.at(214,{foot_l:[1.4,n+.06,-.12]}),e.at(220,{foot_l:[1.535,n,-.132],fyaw_l:110,root:[1.38,r(.98),.05]}),e.at(230,{root:[1.5,r(.975),-.08]}),e.hold(232,`foot_r`,`fyaw_r`),e.at(236,{root:[1.52,r(.975),-.085]}),e.at(239,{foot_r:[1.53,n+.07,.09]}),e.at(246,{foot_r:[1.765,n,-.048],fyaw_r:125,yaw:110,root:[1.62,r(.98),-.08]})}var NS=[`cig`,`lighter`,`exhale`],PS={follow:`landmark:mouth`,aim:`face`,visible:`exhale`},FS={cig:`cigarette`,lighter:`lighter`},IS=.7,LS=[-.05,.07,.1],RS=.88,zS=.2,BS=[.245,.08,.02],VS={l:[.13,-.035,.08],r:[-.13,-.035,.08]};function HS(e,t){return Object.entries(e?.objects??{}).map(([e,t])=>[e,t,!0]).concat(Object.entries(e?.others??{}).map(([e,t])=>[e,t,!1])).filter(([,e])=>e.ancestors?.includes(t))}function US(e,t,n){let r=t[n];return(typeof r!=`string`||!Ml(e.scene)[r])&&gS(e.tag,`args.kit.${n} ${JSON.stringify(r)} is not a group in the scene; object.createKit { kit: "${FS[n]}" } answers its rootId`),r}var WS={cig:.03,lighter:.045},GS=.07,KS=.04;function qS(e,t){let n=e.args.kit;if(n===void 0)return null;(!n||typeof n!=`object`||Array.isArray(n))&&gS(e.tag,`args.kit must be { cig, lighter, exhale? } (kit root ids), got ${JSON.stringify(n)}`);for(let t of Object.keys(n))NS.includes(t)||gS(e.tag,`args.kit has unknown field "${t}"; fields: ${NS.join(`, `)}`);let r=US(e,n,`cig`),i=US(e,n,`lighter`),a={[r]:{prop:`cig`,grab:t.cig,at:[0,0,0],along:[0,0,1],visible:`cig_vis`},[i]:{prop:`lighter`,grab:t.lit,release:t.unlit,at:[0,0,0],along:[0,1,0],visible:`lit_vis`}};for(let[t,n,i]of HS(e.scene,r))i&&n.glow||!i&&n.renderer===`light`?a[t]={visible:`ember_vis`,level:`ember`}:!i&&n.renderer===`effect`&&(a[t]={visible:`ember_vis`});for(let[t,n,r]of HS(e.scene,i))(r&&n.glow||!r&&n.renderer===`light`)&&(a[t]={visible:`flame_vis`});n.exhale!==void 0&&((typeof n.exhale!=`string`||!(e.scene?.others?.[n.exhale]||e.scene?.objects?.[n.exhale]||Ml(e.scene)[n.exhale]))&&gS(e.tag,`args.kit.exhale ${JSON.stringify(n.exhale)} is not a scene object; object.createKit { kit: "exhale" } answers its rootId (it follows the mouth)`),a[n.exhale]={...PS});let o=e=>t.squat?GS:e;return{objects:a,allow:[[`thigh_r`,r,o(WS.cig)],[`thigh_l`,i,o(WS.lighter)],[`hips`,r,o(WS.cig)],[`hips`,i,o(WS.lighter)],...t.squat?[[`shin`,r,GS],[`shin`,i,GS],[`hand_l`,`thigh_l`,KS],[`hand_r`,`thigh_r`,KS],[`hand`,`hips`,KS]]:[]].map(([e,t,n])=>({part:e,object:t,depth:n}))}}function JS(e){let{sk:t,state:n}=e,r=t.index,i=t.restWorldPos;if(!(n.root[1]<IS*i[r.Hips][1]))return null;let{s:a}=vl(t,n),o=n.yaw??0,s=a.P[r.RightArm],c=e=>W(fs(-o),L(e,n.root)),l=B(L(i[r.RightForeArm],i[r.RightArm]))+B(L(i[r.RightHand],i[r.RightForeArm])),u=I(a.P[r.RightLeg],W(fs(o),LS)),d=B(L(u,s)),f=c(d>RS*l?I(s,R(L(u,s),RS*l/d)):u),p=I(c(Es(a,r.Head,t.landmarks.mouth)),[0,0,zS]),m=bc(t),h=(e,r)=>{let i=I(n.root,W(fs(o),[r*BS[0],BS[1],BS[2]]));return c(m?vc(m.body,t,a,i,yc,m.skip):i)},g=e=>e.map(e=>Math.round(e*1e3)/1e3);return{hold:g(f),mouthOut:g(p),lpocket:g(h(`Left`,1)),rpocket:g(h(`Right`,-1))}}var YS={TW_M:40,FX_M:0,TW_H:0,FX_H:10,TW_L:-80,FX_L:-50},XS=15,ZS=20,QS=[[`hand_l`,`hand_r`,.045],[`hand_r`,`hand_l`,.045],[`farm_r`,`hand_l`,.02],[`hand_l`,`farm_r`,.02]].map(([e,t,n])=>({part:e,object:t,depth:n})),$S=[.4,-1,.6],eC=[-.4,-1,-.3],tC=[.9,-.6,.3],nC=[`armw_r`,`armw_l`,`w_rpocket_r`,`w_lpocket_l`,`w_hold_r`,`w_mouth_r`,`w_flame_l`,`elbow_r`,`elbow_l`,`wtwist_r`,`wflex_r`,`wtwist_l`,`wflex_l`,`head_pitch`,`head_yaw`,`spine_pitch`,`root`,`fingers_l`,`fingers_r`,`cig_vis`,`lit_vis`,`flame_vis`,`ember_vis`,`exhale`,`ember`],rC=264,iC=.75,aC=Math.ceil(rC*iC),oC=e=>(e/24).toFixed(1),sC={armw_r:0,armw_l:0,w_rpocket_r:0,w_lpocket_l:0,w_hold_r:0,w_mouth_r:0,w_flame_l:0,elbow_r:[-.5,-.4,-1],elbow_l:[.5,-.4,-1],wtwist_r:0,wflex_r:0,wtwist_l:0,wflex_l:0,head_pitch:0,head_yaw:0,spine_pitch:0,fingers_l:{grip:0,fist:0},fingers_r:{cigarette:0},cig_vis:0,lit_vis:0,flame_vis:0,ember_vis:0,exhale:0,ember:0};function cC(e){let t=e.args.until??(e.auto?e.f0+rC:e.frames-1),n=t-e.f0;n<aC&&gS(e.tag,`needs frames f${e.f0}..f${e.f0+aC} at least: 199 frames, ${oC(199)} s at 24 fps, paced ${iC} (265 frames, ${oC(265)} s, at its own pace); it has f${e.f0}..f${t}, `+(e.args.until===void 0?`so set frames >= ${e.f0+aC+1} or frames: "auto"`:`so set args.until >= ${e.f0+aC}`)),Array.isArray(e.state.root)||gS(e.tag,`needs a pose keyed before f0 (root): standing or squatting`);let r=Object.fromEntries(Object.entries(sC).filter(([t])=>e.state[t]===void 0));Object.keys(r).length&&Object.assign(e.state,structuredClone(r)),e.state.head_yaw=0;let i=e.state.head_pitch,a=(e.state.pitch??0)+e.state.spine_pitch,o=e=>e+i,s=a?W(ds(a),$S):$S,c=a?W(ds(a),eC):eC,l=JS(e),u=e.self?l?ZS:XS:YS.FX_M;l&&(e.state.w_mouthOut_r=0);let d=n<rC?n/rC:1,f=e=>Math.round(e*d),p=hS(e.state,e.f0),m=d===1?p:{...p,at:(e,t)=>p.at(f(e),t),hold:(e,...t)=>p.hold(f(e),...t),step:(e,t,n)=>p.step(f(e),t,n)},h=e.state.root.slice(),g=e.state.yaw??0,_=(e,t)=>{m.hold(e,`w_mouth_r`,`w_hold_r`,`wtwist_r`,`wflex_r`,`elbow_r`,`head_pitch`,`root`,...l?[`w_mouthOut_r`]:[]),l&&m.at(Math.round((e+t)/2),{w_hold_r:0,w_mouthOut_r:1,w_mouth_r:0}),m.at(t,{w_mouth_r:1,w_hold_r:0,...l?{w_mouthOut_r:0}:{},wtwist_r:YS.TW_M,wflex_r:u,elbow_r:s,head_pitch:o(6),root:h})},v=(e,t)=>{m.hold(e,`w_mouth_r`,`w_hold_r`,`wtwist_r`,`wflex_r`,`elbow_r`,`head_pitch`,...l?[`w_mouthOut_r`]:[]),l&&m.at(Math.round((e+t)/2),{w_mouth_r:0,w_mouthOut_r:1,w_hold_r:0}),m.at(t,{w_mouth_r:0,w_hold_r:1,...l?{w_mouthOut_r:0}:{},wtwist_r:YS.TW_H,wflex_r:YS.FX_H,elbow_r:c,head_pitch:o(0)})};m.hold(0,...nC),m.at(2,{w_rpocket_r:1,elbow_r:[-.5,-.4,-1]}),m.hold(6,`armw_r`,`w_rpocket_r`,`elbow_r`,`fingers_r`),m.at(20,{armw_r:1}),m.at(28,{fingers_r:{cigarette:1}}),m.step(28,`cig_vis`,1),m.hold(36,`w_rpocket_r`,`w_mouth_r`,`wtwist_r`,`wflex_r`,`elbow_r`,`head_pitch`),m.at(58,{w_rpocket_r:0,w_mouth_r:1,wtwist_r:YS.TW_M,wflex_r:u,elbow_r:s,head_pitch:o(6)}),m.at(2,{w_lpocket_l:1,elbow_l:[.5,-.4,-1]}),m.hold(12,`armw_l`,`w_lpocket_l`,`elbow_l`,`fingers_l`),m.at(26,{armw_l:1}),m.at(34,{fingers_l:{grip:0,fist:1}}),m.step(35,`lit_vis`,1),m.hold(44,`w_lpocket_l`,`w_flame_l`,`wtwist_l`,`wflex_l`,`elbow_l`),m.at(60,{w_lpocket_l:0,w_flame_l:1,wtwist_l:YS.TW_L,wflex_l:YS.FX_L,elbow_l:tC}),m.step(63,`flame_vis`,1),m.step(73,`ember_vis`,1),m.step(79,`flame_vis`,0),m.step(73,`ember`,1),m.at(80,{ember:2}),m.hold(90,`ember`),m.at(104,{ember:.6}),m.hold(194,`ember`),m.at(200,{ember:2}),m.hold(212,`ember`),m.at(224,{ember:.6}),m.step(116,`exhale`,1),m.step(138,`exhale`,0),m.step(238,`exhale`,1),m.step(260,`exhale`,0),m.hold(80,`w_flame_l`,`w_lpocket_l`,`wtwist_l`,`wflex_l`,`elbow_l`);let y=l&&e.self?8:0;m.at(y?96+y:l?100:96,{w_flame_l:0,w_lpocket_l:1,wtwist_l:0,wflex_l:0,elbow_l:[.5,-.4,-1]}),m.hold(101+y,`fingers_l`),m.step(102+y,`lit_vis`,0),m.hold(104+y,`armw_l`,`w_lpocket_l`),m.at(112,{fingers_l:{grip:0,fist:0}}),m.at(120,{armw_l:0,w_lpocket_l:1}),m.at(123,{w_lpocket_l:0}),v(92,114),m.at(124,{head_pitch:o(-14)}),m.at(140,{head_pitch:o(0)});let b=[Math.cos(g*Math.PI/180),0,-Math.sin(g*Math.PI/180)];m.hold(120,`root`,`head_yaw`),m.at(146,{root:h.map((e,t)=>e+.03*b[t]-(t===1?.005:0)),head_yaw:-22}),m.at(168,{head_yaw:0}),_(170,194),v(212,236),m.at(246,{head_pitch:o(-14)}),m.at(264,{head_pitch:o(0)}),p.hold(n,...nC,...l?[`w_mouthOut_r`]:[]);let x=!!l&&e.self,S=qS(e,{cig:e.f0+f(28),lit:e.f0+f(35),unlit:e.f0+f(x?110:102),squat:x});return{keys:p.keys,end:t,...d<1?{paced:Math.floor(d*100)/100}:{},channels:[`exhale`,`ember`],...S?{objects:S.objects}:{},anchors:{lpocket:{kind:`body`,p:e.self&&l?.lpocket||VS.l},rpocket:{kind:`body`,p:e.self&&l?.rpocket||VS.r},hold:{kind:`body`,p:l?.hold??[-.24,.03,.06]},...l?{mouthOut:{kind:`body`,p:l.mouthOut}}:{},mouth:{kind:`landmark`,name:`mouth`},flame:{kind:`prop`,prop:`cig`,point:`tip`,offset:[0,-.02,0]}},props:{cig:{hand:`r`,origin:[`RightHandIndex2`,`RightHandMiddle2`],points:{filter:[0,0,-.026],tip:[0,0,.058]}},lighter:{hand:`l`,origin:[`LeftHand`,`LeftHandMiddle1`],points:{body:[.01,0,0],flame:[.01,.036,0]}}},fits:[{side:`r`,anchor:`mouth`,effector:{prop:`cig`,point:`filter`}},{side:`l`,anchor:`flame`,effector:{prop:`lighter`,point:`flame`}}],checks:{contacts:[{name:`filter on the lips`,point:`prop:cig.filter`,target:`anchor:mouth`,tol:.01,when:`w_mouth_r`},{name:`flame under the cigarette tip`,point:`prop:lighter.flame`,target:`anchor:flame`,tol:.01,when:`flame_vis`}],orient:[{name:`lit end points away from the face`,from:`prop:cig.filter`,to:`prop:cig.tip`,along:`face`,minCos:.64,when:`w_mouth_r`},{name:`lighter upright`,from:`prop:lighter.body`,to:`prop:lighter.flame`,along:`up`,minCos:.85,when:`flame_vis`}],below:[{name:`no chicken-wing elbow`,joint:`RightForeArm`,ref:`RightArm`,min:.08,when:`w_mouth_r`}],appear:[{name:`cigarette from the right pocket`,channel:`cig_vis`,joint:`RightHand`,anchor:`rpocket`,tol:.035},{name:`lighter from the left pocket`,channel:`lit_vis`,joint:`LeftHand`,anchor:`lpocket`,tol:.035}],mouthPoints:[`cig.filter`],allow:[...S?.allow??[],...QS]}}}var lC={standIdle:yS,sitInSeat:AS,exitCar:jS,walkTo:bS,reachGrip:xS,smokeCigarette:cC},uC=Object.keys(lC),dC=e=>{throw Error(`MOTION_SPEC_INVALID: ${e}`)},fC=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function pC(e,t,n,r){for(let[i,a]of Object.entries(t??{}))e[i]&&!fC(e[i],a)&&dC(`${r} defines ${n}.${i} differently from an earlier skill; rename one or define it yourself in spec.${n}`),e[i]=a}function mC(e,t){for(let[n,r]of Object.entries(t??{})){if(n===`limits`&&r&&typeof r==`object`&&!Array.isArray(r)){e.limits={...e.limits,...r};continue}if(!Array.isArray(r)||e[n]!==void 0&&!Array.isArray(e[n])){e[n]=r;continue}let t=e[n]??(e[n]=[]);for(let e of r)t.some(t=>fC(t,e))||t.push(e)}}function hC(e,t,n){e.args!==void 0&&(!e.args||typeof e.args!=`object`||Array.isArray(e.args))&&dC(`use[${t}].args must be an object, got ${JSON.stringify(e.args)}`);let r=Object.keys(nS[e.skill].args);if(!n)for(let n of Object.keys(e.args??{}))r.includes(n)||dC(`use[${t}].args.${n} is not an arg of ${e.skill}${Sp(n,r)} (args: ${r.join(`, `)})`)}function gC(e,{sk:t,scene:n,lenient:r=!1,auto:i=!1}){if(!e.use?.length)return{spec:e,used:[]};Array.isArray(e.use)||dC(`spec.use must be an array of { skill, args, f0 }`);let a=(e.keys??[]).map((e,t)=>({...e,src:`keys[${t}]`})),o={anchors:{},props:{},objects:{},fits:[],checks:{},channels:[]},s=[],c=[];e.use.forEach((l,u)=>{let d=`use[${u}] ${l?.skill}`;lC[l?.skill]||dC(`use[${u}].skill "${l?.skill}" is not a skill${Tp(String(l?.skill),uC)} (skills: ${uC.join(`, `)})`);for(let e of Object.keys(l))!Yf.includes(e)&&!r&&dC(`use[${u}] has unknown field "${e}"${Sp(e,Yf)}; an entry is { skill, args, f0 }`);hC(l,u,r),(!Number.isInteger(l.f0)||l.f0<0||l.f0>e.frames-1)&&dC(`use[${u}].f0 must be an integer frame within 0..${e.frames-1}, got ${JSON.stringify(l.f0)}`);let f=[...s,...a],p={sk:t,scene:n,frames:e.frames,auto:i,self:e.fix!==!1&&e.fix?.self!==!1,f0:l.f0,args:structuredClone(l.args??{}),tag:d,keys:f,state:structuredClone(Eg(f,l.f0)),anchors:{...o.anchors,...e.anchors}},m=lC[l.skill](p),h=Math.max(m.end??l.f0,...m.keys.map(e=>e.f));h>e.frames-1&&dC(`${d} needs ${h-l.f0} frames from f${l.f0} (to f${h}), past the last frame f${e.frames-1}; set frames >= ${h+1} or frames: "auto"`),s.push(...m.keys.map(e=>({...e,src:e.src??d}))),pC(o.anchors,m.anchors,`anchors`,d),pC(o.props,m.props,`props`,d),pC(o.objects,m.objects,`objects`,d);for(let e of m.fits??[])o.fits.some(t=>fC(t,e))||o.fits.push(e);for(let e of m.channels??[])o.channels.includes(e)||o.channels.push(e);mC(o.checks,m.checks),c.push({skill:l.skill,f0:l.f0,end:m.end,...m.paced?{paced:m.paced}:{},...m.cut?{cut:m.cut}:{}})});let l={...e,keys:[...s,...a],anchors:{...o.anchors,...e.anchors},props:{...o.props,...e.props},objects:{...o.objects,...e.objects}},u=[...new Set([...o.channels,...Array.isArray(e.channels)?e.channels:[]])];u.length&&(l.channels=u);let d=e.fits??[];return l.fits=[...o.fits.filter(e=>!d.some(t=>t.side===e.side&&t.anchor===e.anchor)),...d],mC(o.checks,e.checks),l.checks=o.checks,delete l.use,{spec:l,used:c}}var _C=new Set([`f`,`f0`,`steps`,`period`,`swing`,`until`,`reach`,`hold`,`release`]),vC=e=>e&&typeof e==`object`&&!Array.isArray(e)&&(e.range??e.search)!==void 0&&Object.keys(e).every(e=>[`range`,`search`,`int`].includes(e)),yC=e=>e.reduce((e,t)=>typeof t==`number`?`${e}[${t}]`:e?`${e}.${t}`:t,``);function bC(e){let t=[],n=(e,r)=>{if(vC(e)){let n=e.range??e.search;if(!(Array.isArray(n)&&n.length===2&&n.every(Number.isFinite)&&n[0]<n[1]))throw Error(`MOTION_SPEC_INVALID: ${yC(r)} range must be [lo, hi] with lo < hi, got ${JSON.stringify(n)}`);t.push({path:r,lo:n[0],hi:n[1],int:e.int??_C.has(r[r.length-1])});return}if(Array.isArray(e))e.forEach((e,t)=>n(e,[...r,t]));else if(e&&typeof e==`object`)for(let[t,i]of Object.entries(e))n(i,[...r,t])};for(let[t,r]of Object.entries(e??{}))[`schema`,`fps`,`frames`,`search`].includes(t)||n(r,[t]);return t}var xC=(e,t)=>{let n=Math.min(e.hi,Math.max(e.lo,t));return e.int?Math.round(n):Math.round(n*1e4)/1e4};function SC(e,t,n){let r=structuredClone(e);return t.forEach((e,t)=>{let i=r;for(let t of e.path.slice(0,-1))i=i[t];i[e.path[e.path.length-1]]=n[t]}),r}var CC=e=>e.groups.reduce((e,t)=>e+mx(t),0);function wC(e,t,n,r,i){let a=n=>r(SC(e,t,n)),o=a(n),s=e=>JSON.stringify({...e,keys:void 0,generators:void 0}),c=e=>rm(Og(e,i),e.frames,em(e.flow)),l=c(o),u=1/0,d=-1/0;for(let r=0;r<t.length;r++)for(let i of[t[r].lo,t[r].hi]){let f=a(n.map((e,n)=>n===r?xC(t[r],i):e));if(s(f)!==s(o))return null;let p=c(f);for(let t of new Set([...Object.keys(l),...Object.keys(p)])){let n=l[t],r=p[t];for(let t=0;t<e.frames;t++)JSON.stringify(n?.[t])!==JSON.stringify(r?.[t])&&(u=Math.min(u,t),d=Math.max(d,t))}}return u>d?null:[Math.max(0,u-8),Math.min(e.frames-1,d+8)]}var TC=[2,3,5,7,11,13,17,19,23,29],EC=(e,t)=>Array.from({length:t},(t,n)=>{let r=1,i=0,a=e,o=TC[n%TC.length];for(;a>0;)r/=o,i+=a%o*r,a=Math.floor(a/o);return i});function DC(e,t,{sk:n,scene:r},i){let a=performance.now(),o=Math.max(1,Math.min(64,Math.round(e.search?.budget??32))),s=t.map(e=>xC(e,(e.lo+e.hi)/2)),c=wC(e,t,s,i,n),l=new Map,u=0,d=null,f=a=>{let s=a.join(`,`);if(l.has(s))return l.get(s);if(u>=o)return 1/0;u++;let f;try{let o=i(SC(e,t,a));f=CC(bx(n,X_({fps:24,...o},{sk:n,scene:r},{window:c}),o,{explain:!1}))}catch(e){if(!/MOTION_SPEC_INVALID/.test(e.message))throw e;f=1e9}return l.set(s,f),(!d||f<d.cost)&&(d={values:a,cost:f}),f},p=()=>d?.cost===0||u>=o,m=e=>t.map((t,n)=>xC(t,t.lo+(t.hi-t.lo)*e[n]));f(s);let h=t.length===1?[4,3,5,2,6,1,7,0,8].map(e=>[e/8]):Array.from({length:Math.min(o>>1,8*t.length)},(e,n)=>EC(n+1,t.length));for(let e of h){if(p())break;f(m(e))}let g=t.map(e=>(e.hi-e.lo)/8);for(;!p()&&g.some((e,n)=>e>(t[n].int?.5:(t[n].hi-t[n].lo)*.001));){let e=!1;for(let n=0;n<t.length&&!p();n++)for(let r of[-1,1]){let i=d.values.slice();i[n]=xC(t[n],i[n]+r*g[n]);let a=d.cost;f(i),d.cost<a&&(e=!0)}e||(g=g.map(e=>e/2))}return{spec:SC(e,t,d.values),search:{values:Object.fromEntries(t.map((e,t)=>[yC(e.path),d.values[t]])),evals:u,cost:Math.round(d.cost*100)/100,window:c,ms:Math.round(performance.now()-a)}}}var OC=2e4;function kC(e){let t=structuredClone(e);for(let n of bC(e)){let e=t;for(let t of n.path.slice(0,-1))e=e[t];e[n.path[n.path.length-1]]=n.hi}return t}function AC(e,{sk:t,scene:n,lenient:r=!1}={}){if(e?.frames!==`auto`)return e;let{spec:i,used:a}=gC({...kC(e),frames:OC},{sk:t,scene:n,lenient:r,auto:!0}),o=[...Array.isArray(i.keys)?i.keys.map(e=>e?.f):[],...a.map(e=>e.end),...Array.isArray(i.generators)?i.generators.map(e=>e&&Number.isFinite(e.f0)?Qx(e):null):[]];return{...e,frames:Math.max(0,...o.filter(Number.isFinite))+1}}var jC=new WeakSet;function MC(e){return jC.add(e),e}var NC=e=>Array.isArray(e)?`[${e.map(NC).join(`,`)}]`:e&&typeof e==`object`?`{${Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${JSON.stringify(t)}:${NC(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`null`;function PC(e){let t=14695981039346656037n;for(let n of new TextEncoder().encode(NC(e)))t=BigInt.asUintN(64,(t^BigInt(n))*1099511628211n);return`spec-${t.toString(16).padStart(16,`0`).slice(0,12)}`}function FC(e=64){let t=new Map,n=Math.max(1,e),r=(e,r)=>{for(t.delete(e),t.set(e,r);t.size>n;)t.delete(t.keys().next().value);return r},i=e=>t.has(e)?r(e,t.get(e)):null;return{put(e){let n=PC(e),i=t.get(n);return r(n,{...i,spec:structuredClone(e),framesAuto:jC.has(e)||i?.framesAuto===!0}),n},get(e){let t=i(e);return t?.spec?{...structuredClone(t.spec),...t.framesAuto?{frames:`auto`}:{}}:null},keepParts(e,n){r(e,{...t.get(e),parts:n})},parts(e){return i(e)?.parts??null}}}var IC=12,LC=4,RC=3,zC=5e-4,BC=e=>Math.round(e*1e3)/1e3,VC=e=>Math.round(e*10)/10,HC=e=>e.map(BC);function UC(e,t,n){let r=e.frameCount-1,i=e.timeMap??(e=>e),a=t.map((e,t)=>({beat:e.skill,src:`use[${t}]`,f:[e.f0,e.end??e.f0]}));(n.generators??[]).forEach((e,t)=>a.push({beat:e.type,src:`generators[${t}]`,f:[e.f0,e.f0+16+(e.steps??8)*(e.period??20)+18]}));let o=e=>a.some(t=>e>=t.f[0]&&e<=t.f[1]),s=[...new Set((n.keys??[]).map(e=>e.f))].filter(e=>Number.isFinite(e)&&!o(e)).sort((e,t)=>e-t),c=null;for(let e of s)c&&!a.some(t=>t.src!==`keys`&&t.f[1]>c.f[1]&&t.f[0]<e)?c.f[1]=e:a.push(c={beat:`keys`,src:`keys`,f:[e,e]});let l=e=>Math.max(0,Math.min(r,Math.round(i(e))));for(let e of a)e.f=[l(e.f[0]),l(e.f[1])];return a.sort((e,t)=>e.f[0]-t.f[0]).slice(0,IC)}function WC(e){let t=e.frameCount,n=e.f0??0,r={l:new Uint8Array(t),r:new Uint8Array(t)};for(let[t,i]of[[`l`,`Left`],[`r`,`Right`]]){let a=e.frames.map((t,n)=>t?Pu(e,n,i):null);a.forEach((e,i)=>{let o=a[i>0?i-1:i+1];if(!e||!o)return;let s=[`heel`,`ball`].some(t=>e[t][1]<cd.plantH&&Math.abs(e[t][1]-o[t][1])<zC&&Math.hypot(e[t][0]-o[t][0],e[t][2]-o[t][2])<=cd.slide);r[t][n+i]=+!!s})}return r}function GC(e,[t,n]){let r=[],i=null;for(let a=t;a<=n+1;a++){let t=a<=n&&e[a]===1;t&&i===null&&(i=a),!t&&i!==null&&(a-i>=RC&&r.push([i,a-1]),i=null)}if(r.length<=LC)return r;let a=r.slice(1,-1).sort((e,t)=>t[1]-t[0]-(e[1]-e[0])||e[0]-t[0]).slice(0,2);return[r[0],...a,r[r.length-1]].sort((e,t)=>e[0]-t[0])}function KC(e,t){let n=e.frameCount,r=[],i=Object.entries(t.objects??{});for(let[e,t]of i)for(let i=1;i<n;i++){let n=om(t,i-1),a=om(t,i);a&&!n&&r.push({f:i,object:e,event:`grab`}),n&&!a&&r.push({f:i-1,object:e,event:`release`})}let a={};for(let[e,t]of i)typeof t?.visible==`string`&&(a[t.visible]??=[]).push(e);for(let t of new Set([...Object.keys(a),...Object.keys(e.baked??{}).filter(e=>e.endsWith(`_vis`))])){let i=e.baked?.[t];if(i)for(let e=1;e<n;e++){let n=i[e-1]>.5,o=i[e]>.5;if(n!==o)for(let n of a[t]??[t])r.push({f:e,object:n,event:o?`show`:`hide`})}}return r.sort((e,t)=>e.f-t.f)}function qC(e,t,n,r){for(let[t,i]of Object.entries(e.objects??{}))if(e.props?.[i?.prop]?.hand===n&&om(i,r))return`object:${t}`;let i=null,a=.5;for(let[e,r]of Object.entries(t)){let t=/^w_(.+)_([lr])$/.exec(e);t&&t[2]===n&&r>a&&(i=t[1],a=r)}return i&&`anchor:${i}`}function JC(e,t,n){let r=e.frames[n-(e.f0??0)];if(!r)return null;let{s:i,c:a}=r,o=e.ctx.sk.index;return{root:HC(i.P[o.Hips]),yaw:VC(a.yaw??0),hand_l:HC(i.P[o.LeftHand]),hand_r:HC(i.P[o.RightHand]),on_l:qC(t,a,`l`,n),on_r:qC(t,a,`r`,n)}}function YC(e,{used:t,spec:n}){let r=UC(e,t??[],n);if(!r.length)return[];let i=WC(e),a=KC(e,n);return r.map(t=>({...t,end:JC(e,n,t.f[1]),planted:{l:GC(i.l,t.f),r:GC(i.r,t.f)},events:a.filter(e=>e.f>=t.f[0]&&e.f<=t.f[1])}))}var XC=e=>`[${e[0]},${e[1]}]`,ZC=(e,t)=>{e&&!e.includes(t)&&e.push(t)};function QC(e,t){if(!(Array.isArray(e)&&e.length===2&&e.every(Number.isInteger)&&e[0]<=e[1]))return null;let n=Math.max(0,e[0]),r=Math.min(t,e[1]);return n<=r?[n,r]:null}function $C(e,t){if(!Array.isArray(e.goals)||!Number.isInteger(e.frames))return;let n=e.frames-1;e.goals.forEach((e,r)=>{if(!e||typeof e!=`object`||!Array.isArray(e.at))return;let i=QC(e.at,n);!i||i[0]===e.at[0]&&i[1]===e.at[1]||(ZC(t,`goals[${r}]${e.name?` "${e.name}"`:``} at ${XC(e.at)} -> ${XC(i)}: the clip is 0..${n}`),e.at=i)})}var ew=e=>e.rot===void 0?{aim:e.aim,...e.roll===void 0?{}:{roll:e.roll},...e.lean===void 0?{}:{lean:e.lean}}:{rot:e.rot},tw=e=>e&&(e.rot!==void 0||e.aim!==void 0),nw=e=>e&&typeof e==`object`&&!Array.isArray(e)&&!tw(e)&&e.roll===void 0&&e.lean===void 0;function rw(e,t,n,r){let i=t.keys.map((e,t)=>({k:e,i:t})).filter(({k:e})=>e&&Number.isInteger(e.f)).sort((e,t)=>e.k.f-t.k.f),a=i.filter(({k:e})=>nw(e));if(!a.length)return;let o=n?.objects?.[e]??Ml(n??{})[e],s=o?yl(t)?{aim:[o.R[0][1],o.R[1][1],o.R[2][1]].map(e=>Math.round(e*1e4)/1e4)}:{rot:_s(o.R)}:null,c=i.filter(e=>tw(e.k)),l=[],u=[];for(let{k:e,i:t}of a){let n=c.filter(t=>t.k.f<e.f).at(-1)??c.find(t=>t.k.f>e.f);n?(Object.assign(e,ew(n.k)),l.push(t)):s&&(Object.assign(e,s),u.push(t))}l.length&&ZC(r,`objects.${e}.keys[${l.join(`,`)}] had no rot or aim: each holds the turn of the nearest key before it (else after)`),u.length&&ZC(r,`objects.${e}.keys[${u.join(`,`)}] had no rot or aim: ${s.aim?`+Y as in the scene, aim [${s.aim}]`:`turned as in the scene`}`)}function iw(e,t,n){t.keys.forEach((t,r)=>{if(!Array.isArray(t?.rot)||t.rot.length!==4||!t.rot.every(Number.isFinite))return;let i=Math.hypot(...t.rot);Math.abs(i-1)<=.01||i<=.5||i>=2||(t.rot=t.rot.map(e=>e/i),ZC(n,`objects.${e}.keys[${r}].rot had length ${i.toFixed(3)}: normalized`))})}function aw(e,t,n){if(!e||typeof e!=`object`)return e;$C(e,n);for(let[r,i]of Object.entries(e.objects??{}))!i||typeof i!=`object`||!Array.isArray(i.keys)||!(yl(i)||vf(i))||(rw(r,i,t,n),iw(r,i,n));return e}function ow(e,t,n,r){let i=Number.isInteger(e)?[e,e]:e,a=QC(i,t);return a&&(a[0]!==i[0]||a[1]!==i[1])&&ZC(r,`${n}.frames ${XC(i)} -> ${XC(a)}: the take is 0..${t}`),a}function sw(e,t,n,r,i){if(Math.ceil(t/e)<=n)return e;let a=Math.ceil(t/n);return ZC(i,`${r}.every ${e} -> ${a}: a position probe answers at most ${n} rows`),a}function cw(e,[t,n]){let r=e.filter(e=>e<t||e>n),i=[...new Set(e.map(e=>Math.min(n,Math.max(t,e))))].sort((e,t)=>e-t);return r.length?{frames:i,adjusted:`frames ${r.join(`, `)} lie outside ${t}..${n}: drawn at ${i.filter(e=>e===t||e===n).join(`, `)}`}:{frames:i}}var lw={always:!0,yes:!0,true:!0,on:!0,never:`never`,no:`never`,false:`never`,off:`never`,none:`never`,ifclean:`ifClean`,whenclean:`ifClean`,onlyifclean:`ifClean`,clean:`ifClean`};function uw(e){if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e;if(typeof e.install==`string`&&e.install!==`ifClean`&&e.install!==`never`){let n=lw[e.install.toLowerCase().replace(/[^a-z]/g,``)];n!==void 0&&(t={...t,install:n})}return e.repair===!0?t={...t,repair:{}}:(e.repair===!1||e.repair&&typeof e.repair==`object`&&e.repair.rounds===0&&Object.keys(e.repair).length===1)&&(t=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`repair`))),t}var dw=16,fw=16,pw=12,mw=`{ name, distance: [refA, refB] | position: ref, frames: [f0, f1], every }`,hw=e=>Math.round(e*1e6)/1e6,gw=e=>Math.round(e*1e4)/1e4;function _w(e,t){let n=/^(joint|bone):(.+)$/s.exec(t);return n?`${n[1]}:${Mp(e,n[2]).bone??n[2]}`:t}function vw(e,t,n,r,i){let a=e.frames===void 0?[0,n]:ow(e.frames,n,t,i);return a||r(`${t}.frames must be [f0, f1], integer frames within 0..${n} with f0 <= f1, got ${Y(e.frames)}`),a}function yw(e,t,{spec:n,sk:r,scene:i,notes:a}){let o=[],s=e=>{o.length<pw&&o.push(e)},c=e.frameCount-1,l=[],u=new Map;if(Array.isArray(t)?t.length>dw?s(`probes has ${t.length} entries; at most ${dw} per compile`):t.forEach((e,t)=>{let o=`probes[${t}]`;if(!e||typeof e!=`object`||Array.isArray(e))return s(`${o} must be ${mw}`);for(let t of Object.keys(e))op.includes(t)||s(`${o} has unknown field "${t}"${Tp(t,op)}; a probe is ${mw}`);let d=e.name??o;if(typeof d!=`string`||!d?s(`${o}.name must be a non-empty string, got ${Y(e.name)}`):u.has(d)?s(`${o}.name "${d}" is already used by ${u.get(d)}; probe names must differ`):u.set(d,o),e.distance===void 0==(e.position===void 0))return s(`${o} needs exactly one of distance: [refA, refB] or position: ref`);let f=e.distance===void 0?`position`:`distance`,p=f===`distance`?e.distance:[e.position];if(f===`distance`&&!(Array.isArray(p)&&p.length===2&&p.every(e=>typeof e==`string`)))return s(`${o}.distance must be [refA, refB], two point refs, got ${Y(e.distance)}`);if(f===`position`&&typeof e.position!=`string`)return s(`${o}.position must be a point ref, got ${Y(e.position)}`);let m=p.map((e,t)=>Hp(n,s,{sk:r,scene:i},f===`distance`?`${o}.distance[${t}]`:`${o}.position`,e)).every(Boolean),h=vw(e,o,c,s,a);if(e.every!==void 0&&!(Number.isInteger(e.every)&&e.every>=1))return s(`${o}.every must be a positive integer, got ${Y(e.every)}`);if(!m||!h)return;let g=h[1]-h[0]+1,_=e.every??(f===`position`?Math.ceil(g/fw):1),v=f===`position`?sw(_,g,fw,o,a):_;l.push({name:d,kind:f,refs:p.map(e=>_w(r,e)),range:h,every:v})}):s(`probes must be an array of ${mw}`),o.length)throw Error(`MOTION_SPEC_INVALID: ${o.join(`
12
- `)}${o.length>=pw?`
13
- (more problems not listed)`:``}`);return l}function bw([e,t],n){let r=[];for(let i=e;i<=t;i+=n)r.push(i);return r}function xw(e,t){let n=bw(t.range,t.every).map(n=>[n,Bp(e,n,t.refs[0],t.refs[1])]).filter(([,e])=>Number.isFinite(e));if(!n.length)return{min:null,minAt:null,max:null,maxAt:null,mean:null,first:null,last:null};let r=n[0],i=n[0],a=0;for(let e of n)e[1]<r[1]&&(r=e),e[1]>i[1]&&(i=e),a+=e[1];return{min:hw(r[1]),minAt:r[0],max:hw(i[1]),maxAt:i[0],mean:hw(a/n.length),first:hw(n[0][1]),last:hw(n[n.length-1][1])}}function Sw(e,t){return{at:bw(t.range,t.every).map(n=>{let r=zp(e,n,t.refs[0]);return{f:n,p:r?r.map(gw):null}})}}function Cw(e,t,n){return Object.fromEntries(yw(e,t,n).map(t=>[t.name,t.kind===`distance`?xw(e,t):Sw(e,t)]))}var ww=.3,Tw=2,Ew=[`Thumb4`,`Index4`,`Middle4`,`Ring4`,`Pinky4`],Dw=e=>Math.round(e*1e3)/1e3,Ow=`near: hand (palm, fingertips), foot (sole) to the nearest object within 0.3 m (top group; part: the body at the closest frame), 2 closest runs; gap [min, f, max, f] m, < 0 inside`;function kw(e,t){let n=e.index,r={};for(let[i,a]of[[`Left`,`l`],[`Right`,`r`]]){let o=R(I(t.P[n[`${i}Hand`]],t.P[n[`${i}HandMiddle1`]]),.5);r[`hand_${a}`]=[o,...Ew.map(e=>t.P[n[`${i}Hand${e}`]]).filter(Boolean)],r[`foot_${a}`]=Object.values(_u(e,t,i))}return r}var Aw=(e,t,n)=>[t,...e.ctx.scene.objects[t].ancestors??[]].some(t=>{let r=e.ctx.spec.objects?.[t];return r?.visible&&!((e.baked?.[r.visible]?.[n]??0)>.5)});function jw(e,t){let{scene:n,spec:r}=e.ctx,i=[];for(let[a,o]of Object.entries(n?.objects??{})){let n=o.ancestors??[];if([a,...n].some(e=>bl(r.objects?.[e]))||Aw(e,a,t))continue;let s=xm(e,a,t);if(!s)continue;let c={pos:s.pos,R:s.R,half:o.half};i.push({id:a,root:n[n.length-1]??a,hand:bm(e,a,t),box:c,c:I(c.pos,W(c.R,[0,o.half[1],0])),r:B(o.half)})}return i}function Mw(e,t,n){let r=R(e.reduce((e,t)=>I(e,t),[0,0,0]),1/e.length),i=Math.max(...e.map(e=>os(e,r))),a=null;for(let o of t){if(n&&o.hand===n||os(r,o.c)-o.r-i>(a?a[2]:ww))continue;let t=Math.min(...e.map(e=>fu(e,o.box)));t<=ww&&(!a||t<a[2])&&(a=[o.root,o.id,t])}return a}function Nw(e,t){let n=[];return e.forEach((e,r)=>{let i=n[n.length-1];if(!e)return;let[a,o,s]=e,c=r+t;i&&i.object===a&&i.frames[1]===c-1?(i.frames[1]=c,s<i.gap[0]&&(i.gap[0]=s,i.gap[1]=c,i.part=o),s>i.gap[2]&&(i.gap[2]=s,i.gap[3]=c)):n.push({object:a,part:o,frames:[c,c],gap:[s,c,s,c]})}),n.sort((e,t)=>e.gap[0]-t.gap[0]).slice(0,Tw).sort((e,t)=>e.frames[0]-t.frames[0]).map(({object:e,part:t,frames:n,gap:r})=>({object:e,...t===e?{}:{part:t},frames:n,gap:[Dw(r[0]),r[1],Dw(r[2]),r[3]]}))}function Pw(e,t){if(!Object.keys(t.ctx.scene?.objects??{}).length)return null;let n=t.f0??0,r={hand_l:[],hand_r:[],foot_l:[],foot_r:[]};t.frames.forEach(({s:i},a)=>{let o=jw(t,a+n),s=kw(e,i);for(let e of Object.keys(r))r[e].push(Mw(s[e],o,e.startsWith(`hand_`)?e.slice(-1):null))});let i=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,Nw(t,n)]).filter(([,e])=>e.length));return Object.keys(i).length?i:null}var Fw=9.7,Iw=.25,Lw=.75,Rw=.88,zw=.5,Bw=22,Vw=24,Hw=Array.from({length:16},(e,t)=>9+t),Uw=[`steps`,`period`,`step`,`swing`],Ww=new Set([`POP`,`REACH`,`SLIDE`,`FLOAT`,`FLIP`,`KNEE`]),Gw=new Map,Kw=e=>Math.round(e*100)/100,qw=e=>(Array.isArray(e?.use)?e.use:[]).map((e,t)=>({i:t,u:e})).filter(({u:e})=>e?.skill===`walkTo`&&Number.isInteger(e.args?.arrive)&&Array.isArray(e.args?.to)&&!Uw.some(t=>e.args[t]!==void 0)&&Object.values(e.args).every(e=>!(e&&typeof e==`object`&&!Array.isArray(e))));function Jw(e,t){if(t===2)return e>=Iw&&e<=Lw?{first:e,step:e}:null;let n=Math.min(.62,Math.max(.3,.8*e/(t-2+.8))),r=(e-n)/(t-2);return r>=Iw&&r<=Lw?{first:n,step:r}:null}function Yw(e,t,n){let r=[];for(let i of Hw)for(let a=2;a<=40;a++){let o=Jw(e,a);if(!o)continue;let s=t+16+a*i+18,c=o.step*Vw/i,l=Math.abs(Math.log(o.step*i/Fw)),u=Math.max(0,n-s)/Math.max(1,n-t);r.push({args:{steps:a,period:i,swing:Math.round(Rw*i),step:Kw(o.step),firstStep:Kw(o.first)},end:s,v:c,late:s>n,score:l+1.5*u+Math.max(0,zw-c)*4})}return{onTime:r.filter(e=>!e.late).sort((e,t)=>e.score-t.score),late:r.filter(e=>e.late).sort((e,t)=>e.end-t.end||e.score-t.score)}}function Xw(e,t){let{steps:n,period:r}=e.args,i=Math.round(.8*r),a=n>2&&e.args.firstStep<.62?{firstStep:.62,step:Kw((t-.62)/(n-2))}:null;return[{},a,{lift:.06},a&&{...a,lift:.06}].filter(Boolean).map(t=>({...e,args:{...e.args,swing:i,...t}})).filter(e=>e.args.step>=Iw&&e.args.step<=Lw)}var Zw=(e,t,n)=>e.groups.filter(e=>Ww.has(e.kind)&&e.last>=t&&e.first<=n).reduce((e,t)=>e+t.count,0);function Qw(e,{sk:t,scene:n,trial:r}){let i=[];for(let{i:a,u:o}of qw(e)){let s=JSON.stringify([e.keys,e.use.slice(0,a+1),e.anchors,e.props,e.fits,e.fix,n?.objects??null]);if(Gw.has(s)){i.push(Gw.get(s));continue}let c=e.use.slice(0,a).filter(e=>e.f0<o.f0),l,u=[];try{let{spec:r,used:i}=gC({...e,frames:2e4,use:c},{sk:t,scene:n,lenient:!0});l=Eg(r.keys??[],o.f0),u=i.map(e=>e.end??0)}catch{l=null}if(!l?.foot_l||!l?.foot_r)continue;let d=[(l.foot_l[0]+l.foot_r[0])/2,(l.foot_l[2]+l.foot_r[2])/2],f=o.args.to,p=Math.hypot(f[0]-d[0],f[f.length-1]-d[1]),{onTime:m,late:h}=Yw(p,o.f0,o.args.arrive),g=t=>{let n=Math.max(t.end,...u)+1;return{schema:e.schema,fps:e.fps??Vw,frames:n,keys:(e.keys??[]).filter(e=>e.f<n),use:[...c,{...o,args:{...o.args,...t.args}}],...e.anchors?{anchors:e.anchors}:{},...e.props?{props:e.props}:{},...e.fits?{fits:e.fits}:{},...e.fix===void 0?{}:{fix:e.fix}}},_=null,v=0,y=null,b=0,x=[...m.slice(0,6),...m.slice(0,3).flatMap(e=>Xw(e,p))].slice(0,18);for(let e of[...x,...h.slice(0,Bw-x.length)]){let t;try{t=Zw(r(g(e)),o.f0,e.end)}catch{t=1/0}if(v++,b+=+!e.late,(!y||t<y.issues)&&(y={c:e,issues:t}),t===0){_=e;break}}if(_??=y?.issues<1/0?y.c:m[0]??h[0],!_)continue;let S=_.args,C=o.args.arrive,w=`use[${a}] walkTo arrive f${C}: steps ${S.steps}, period ${S.period}, swing ${S.swing}, step ${S.step} m, firstStep ${S.firstStep} m${S.lift?`, lift ${S.lift} m`:``} (${Kw(_.v)} m/s), ends f${_.end}`,T=m.length?`the ${b} walks tried that end by f${C} pop or miss a foot`:`even the quickest walk over ${Kw(p)} m (a step every ${Hw[0]} frames, strides up to ${Lw} m, 34 frames to start and stop) ends f${h[0]?.end}`,E=_.late?`; f${C} is too soon: ${T}; give arrive >= f${_.end} or a shorter distance`:``,D=y&&y.c===_&&y.issues>0?`; no candidate walked clean (${y.issues} issues in its frames)`:``,ee={i:a,args:S,end:_.end,note:`${w}${E}${D} (${v} checked)`};Gw.size>=64&&Gw.delete(Gw.keys().next().value),Gw.set(s,ee),i.push(ee)}return i}function $w(e,t){if(!t.length)return e;let n=e.use.map((e,n)=>{let r=t.find(e=>e.i===n);return r&&e?.skill===`walkTo`?{...e,args:{...e.args,...r.args}}:e});return{...e,use:n}}var eT=e=>Math.round(performance.now()-e);function tT(e,t){let n=structuredClone(e.checks??{}),r=e=>Array.isArray(e)?[Math.round(t(e[0])),Math.round(t(e[1]))]:e;for(let e of[`contacts`,`orient`,`below`])for(let t of n[e]??[])t.when=r(t.when);for(let e of n.clearance??[])e.frames=r(e.frames);return{...e,checks:n}}function nT(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return{spec:e,probes:t};let n=Rv(e.goals);if(e.probes===void 0&&n===e.goals)return{spec:e,probes:t};let{probes:r,...i}=e,a=r===void 0?t:t?[...t,...Array.isArray(r)?r:[r]]:r;return{spec:n===e.goals?i:{...i,goals:n},probes:a}}function rT(e,{sk:t,scene:n},r={}){let{spec:i,probes:a}=nT(e,r.probes),o=performance.now(),s={sk:t,scene:n,lenient:r.lenient===!0},c=[],l=r.checks&&Sx({checks:r.checks}).checks,u=[],d=e=>{let{spec:t,used:r}=gC(Sx($w(e,u)),s),i=aw(JSON.parse(JSON.stringify(l?{...t,checks:l}:t)),n,c);return oy(i,s),{full:i,used:r}};u=Qw(i,{sk:t,scene:n,trial:e=>{let n=d(e).full;return bx(t,X_({fps:24,...n},s),n,{explain:!1})}});let f=i?.frames===`auto`&&u.length?{...i,frames:AC($w(i,u),s).frames}:AC(i,s),p=bC(f),m=f,h=null;p.length&&({spec:m,search:h}=DC(f,p,s,e=>d(e).full)),i?.frames===`auto`&&MC(m);let g=performance.now(),{full:_,used:v}=d(m),y=X_({fps:24,..._},s),b=eT(g),x=performance.now(),S=y.timeMap?tT(_,y.timeMap):_,C=bx(t,y,S,{userSpec:m}),w=Qu(t,y,S.checks),T=yy(y);T&&Object.assign(w,{units:`${w.units}; ${vy}`,held:T});let E=Pw(t,y),D=Ly(t,y);E&&Object.assign(w,{units:`${w.units}; ${Ow}`,near:E}),D&&Object.assign(w,{units:`${w.units}; ${Fy}`,wrist:D});let ee=v.filter(e=>e.paced).map(e=>`${e.skill} paced ${e.paced.toFixed(2)} to fit f${e.f0}..f${e.end}`);ee.length&&(w.paced=ee);let te=v.filter(e=>e.cut).map(e=>`${e.skill}: ${e.cut}`);te.length&&(w.cut=te),u.length&&(w.planned=u.map(e=>e.note));let ne=YC(y,{used:v,spec:_}),O=a&&Cw(y,a,{spec:_,sk:t,scene:n,notes:c});return{out:y,qa:C,observations:w,spec:m,expanded:_,used:v,fixed:y.fixed,search:h,timeline:ne,...O?{probes:O}:{},...c.length?{notes:c}:{},ms:{compile:b,qa:eT(x),total:eT(o)}}}var iT=`cozyclay.take.v3`;function aT(e,t,n={position:[0,0,0],yaw:0},r={}){let i=t.frames.length,a=e.names.length,o=new Float32Array(i*a*4),s=new Float32Array(i*3),c=fs(-(n.yaw??0));for(let r=0;r<i;r++){let i=t.frames[r].s,{quats:l,hips:u}=ws(e,{P:i.P.map(e=>W(c,L(e,n.position))),R:i.R.map(e=>U(c,e))});l.forEach((e,t)=>o.set(e,(r*a+t)*4)),s.set(u,r*3)}let l={},u=t.f0??0;for(let[e,n]of Object.entries(t.ctx.spec.objects??{})){let r=yl(n),a=bl(n),o=r||a,s=!xl(n),c=s?new Float32Array(i*3):null,d=s?new Float32Array(i*4):null,f=o||!s||vf(n),p=f&&n.visible?new Uint8Array(i):null,m=o?new Uint8Array(i):null,h=f&&n.level?new Float32Array(i):null,[g,_]=r?lm(t,n):[0,0];for(let r=0;r<i;r++){if(p&&(p[r]=+((t.baked?.[n.visible]?.[r+u]??0)>.5)),h&&(h[r]=Math.max(0,Math.min(4,t.baked?.[n.level]?.[r+u]??1))),!s)continue;let i=vm(t,e,r+u);i&&(c.set(i.pos,r*3),d.set(_s(i.R),r*4),m&&(m[r]=a||r+u>=g&&r+u<=_?1:0))}l[e]={...s?{pos:c,quat:d}:{},...p?{vis:p}:{},...m?{hold:m}:{},...h?{lvl:h}:{}}}return{schema:iT,fps:t.fps,frameCount:i,rig:e.model,bones:e.names.slice(),rot:o,hips:s,objects:l,placement:n,...r}}function oT(e,t){let n=Math.max(0,Math.min(e.frameCount-1,Math.round(t)))*3;return[e.hips[n],e.hips[n+1],e.hips[n+2]]}var sT={"x-bot-tpose":{model:`x-bot-tpose`,units:`cm`,mesh:`Beta_Surface`,bones:[{name:`Hips`,parent:-1,localPos:[-7727290721959434e-21,104.27487182617188,1.5543158054351807],localQuat:[.006458545995471647,0,0,.9999791433743129],worldPos:[-7727290721959434e-21,104.27487182617188,1.5543158054351807],worldQuat:[.006458545995471649,0,0,.9999791433743129]},{name:`Spine`,parent:0,localPos:[-42558306661763523e-26,10.182436647133528,-383026943495679e-29],localQuat:[-.0801557216468605,0,-2.4806808368112424e-7,.9967823535191669],worldPos:[-7727716305026052e-21,114.45645899708516,1.6858405330789255],worldQuat:[-.07371628519129939,1.6021591284630476e-9,-2.4806290981795794e-7,.9972792534177845]},{name:`Spine1`,parent:1,localPos:[0,10.00267477114727,3552713678800501e-30],localQuat:[6162975822039155e-48,-49630836753181624e-40,5211237859084076e-38,1],worldPos:[-2780995758607294e-21,124.35042288428505,.21513282040928483],worldQuat:[-.07371628519129939,1.6021591284630476e-9,-2.480629098179579e-7,.9972792534177845]},{name:`Spine2`,parent:2,localPos:[113754220886636e-28,9.322090642186126,2.823681128916178e-7],localQuat:[.01288561985057818,-4771173867766652e-25,-3.7024045453006494e-8,.9999169769541195],worldPos:[18291488873430703e-22,133.57119939581565,-1.1555073459065734],worldQuat:[-.06085960369636199,-4.799512607436978e-9,-2.849511007796114e-7,.9981463362843349]},{name:`Neck`,parent:3,localPos:[41474883340816403e-26,16.865321474300316,55067062021407764e-30],localQuat:[-693889390390723e-32,-8271806125530272e-39,5190558343770245e-38,1],worldPos:[11433183430736414e-21,150.31158623305856,-3.204535645093104],worldQuat:[-.060859603696361994,-4.799512607436981e-9,-2.8495110077961134e-7,.9981463362843349]},{name:`Head`,parent:4,localPos:[-1.0756747747233872e-7,9.341923497302815,2.841040809958507],localQuat:[-693889390390723e-32,-36734198463196485e-56,-10339757656912817e-40,1],worldPos:[1671650538423477e-20,159.92947501239226,-1.5195243864816557],worldQuat:[-.060859603696362,-4.7995126074369775e-9,-2.849511007796113e-7,.9981463362843349]},{name:`HeadTop_End`,parent:5,localPos:[9.856974393531148e-7,20.962781993760927,10.122935199433357],localQuat:[9020562075079394e-32,-4963083675318166e-39,-3143286327701505e-38,1],worldPos:[298931534294587e-19,181.96684091859,5.981578858112073],worldQuat:[-.060859603696361904,-4.799512607437009e-9,-2.8495110077961134e-7,.9981463362843349]},{name:`RightShoulder`,parent:3,localPos:[-4.569970073784302,11.195844421252815,-.8066318609761822],localQuat:[-.48443063216376725,.5709636753028516,-.52616363833282,-.4030871739493107],worldPos:[-4.569961889633833,144.58610943784936,-3.316387285708532],worldQuat:[.45900076979447035,-.5378833301202727,.5599368183567869,.4318223893631366]},{name:`RightArm`,parent:7,localPos:[39968028886505635e-31,10.838175719528936,-2842170943040401e-29],localQuat:[-.024616241704842487,.002562291621043601,-.10349841681885355,.9943216547083585],worldPos:[-15.162807207946486,144.06130443716168,-5.548485110836629],worldQuat:[.4999999123070338,-.5000002750229358,.49999979787788545,.5000000147920203]},{name:`RightForeArm`,parent:8,localPos:[-9.964063352185804e-9,27.841518023440628,0],localQuat:[-17109853453384572e-39,-8816207631167156e-54,2938735877055719e-54,1],worldPos:[-43.004325231382126,144.06132057494256,-5.548489180140211],worldQuat:[.4999999123070338,-.5000002750229358,.49999979787788545,.5000000147920203]},{name:`RightHand`,parent:9,localPos:[2285859917883215e-20,28.328838348366197,4472538876143517e-21],localQuat:[6229948061854065e-38,2350988701644575e-53,-19852334701272682e-39,1],worldPos:[-71.33316357974921,144.0613325226415,-5.548470451934339],worldQuat:[.4999999123070338,-.5000002750229358,.49999979787788545,.5000000147920203]},{name:`RightHandMiddle1`,parent:10,localPos:[-2368732377888705e-20,9.532501220730282,3985569264841615e-20],localQuat:[-9.781740202927786e-7,4908535656919963e-25,-.0005018059094885016,.9999998740949284],worldPos:[-80.86566480049744,144.061298192282,-5.5484955291275435],worldQuat:[.5002502631148101,-.4997497980010115,.4997483431213557,.5002513440251519]},{name:`RightHandMiddle2`,parent:11,localPos:[-8881784197001252e-30,3.700000000000017,0],localQuat:[3986107263256567e-37,1323489458050882e-38,.0008498714387871692,.9999996388592037],worldPos:[-84.56566293763908,144.0613075740096,-5.544782705328028],worldQuat:[-.4998253593741713,.5001747659318385,-.5001733119713432,-.4998264415205831]},{name:`RightHandMiddle3`,parent:12,localPos:[-25224267119483557e-29,2.9500000000000455,-1.5411302456413978e-8],localQuat:[-5680000760156732e-38,-3970467145889554e-38,-.00032184201183913403,.9999999482088584],worldPos:[-87.51566222254714,144.06131507131767,-5.54683672237727],worldQuat:[-.4999863107405839,.5000138752279871,-.5000124209192871,-.49998739241899415]},{name:`RightHandMiddle4`,parent:13,localPos:[1127986593019159e-28,2.9466287337241255,7.20586967872805e-9],localQuat:[1.5498268359238913e-7,.0009288141658670982,.00016639448508219264,.9999995548084492],worldPos:[-90.46229095218658,144.06132253675315,-5.546991694384452],worldQuat:[.49943854746932836,-.4996323747246579,.5005598653243383,.5003683130007397]},{name:`RightHandRing1`,parent:10,localPos:[-1.8651332219504173,9.103592315445724,.043069650068900955],localQuat:[6.963165823826897e-8,10850652509911485e-27,.0001558292973731088,.9999999878586124],worldPos:[-80.43675564821785,144.01826884807926,-7.413605017339948],worldQuat:[-.4999220263552031,.5000781487660197,-.5000777412794597,-.4999220592937387]},{name:`RightHandRing2`,parent:15,localPos:[-4440892098500626e-30,3.379273006312431,-2842170943040401e-29],localQuat:[75254050543037e-37,13234890125559426e-39,-.00022151509096650696,.9999999754655319],worldPos:[-83.81602849026015,144.01827033659325,-7.414658689507339],worldQuat:[.5000327889464959,-.4999673962237241,.4999669887298773,.5000328217947667]},{name:`RightHandRing3`,parent:16,localPos:[26290081223123707e-29,2.889684678650127,8202221124520293e-25],localQuat:[16000775075877487e-39,13234889885055366e-39,-.00011280510431914317,.9999999936375041],worldPos:[-86.70571314402952,144.01827160815185,-7.4142794883596075],worldQuat:[.5000891846393266,-.4999109867917636,.499910579294214,.5000892174416297]},{name:`RightHandRing4`,parent:17,localPos:[4716227408607665e-28,2.638815675202565,5682068149326369e-25],localQuat:[-1.339645129809642e-7,.00014607500499735936,-.0007992862081225936,.9999996699017618],worldPos:[-89.34452865122908,144.01827276927736,-7.41333786395688],worldQuat:[.5004155000832223,-.4994381238192544,.4995836834200939,.5005617154884825]},{name:`RightHandIndex1`,parent:10,localPos:[2.25983507131116,9.1082835183702,.5178621137028756],localQuat:[-6.059340578197898e-7,9953529057906979e-26,-.00016426752705445157,.9999999865079061],worldPos:[-80.4414477277744,143.54347484170384,-3.288636902648485],worldQuat:[.5000817363528871,-.4999184374449017,.49991735444845625,.5000824447930416]},{name:`RightHandIndex2`,parent:19,localPos:[-843769498715119e-29,3.7000000000000313,0],localQuat:[-47359322790488744e-39,-3970467069997446e-38,.00025564424489899254,.9999999673230096],worldPos:[-84.14144752826542,143.54348146979163,-3.2874218624291216],worldQuat:[-.4999539187402696,.5000462641269495,-.5000451813116483,-.49995462745726243]},{name:`RightHandIndex3`,parent:20,localPos:[-3423927807943983e-28,2.8500000000000227,-8893152880773414e-25],localQuat:[-13914829894769055e-38,-39704669556009313e-39,-8792197348428728e-20,.9999999961348633],worldPos:[-86.99144748059157,143.54348657664548,-3.287943125263367],worldQuat:[-.49999788186225497,.5000023052590155,-.5000012223814067,-.4999985904840416]},{name:`RightHandIndex4`,parent:21,localPos:[7900347043232614e-28,2.7721906128530236,5114202394906897e-25],localQuat:[8.659859370723384e-8,.0010026920012318767,8705832638285169e-20,.9999994935146673],worldPos:[-89.76363809337116,143.54349154251554,-3.2879626838817946],worldQuat:[.49945279532966436,-.4995441931072631,.5005458853548749,.5004561129854466]},{name:`RightHandThumb1`,parent:10,localPos:[2.6818519535315546,2.464805039121785,1.5739839631865493],localQuat:[.2532844925861686,.06161827244019283,-.22821025705768283,.9380672859078498],worldPos:[-73.79796992221794,142.48734898334772,-2.866619447484665],worldQuat:[.6789718782579114,-.19747746019729454,.5123797682139857,.48730566831705546]},{name:`RightHandThumb2`,parent:23,localPos:[-1887379141862766e-29,4.188985472990834,-2842170943040401e-29],localQuat:[-.002315749257559554,-.0011704489169351957,.009300110231568928,.9999533865657887],worldPos:[-77.01316043621617,140.61457222434876,-.9423386824772395],worldQuat:[.6765749035040036,-.20553967786615746,.5156358706838127,.4838589563451013]},{name:`RightHandThumb3`,parent:24,localPos:[-14210854715202004e-30,3.416271152352966,0],localQuat:[-.0016647383095556567,-.0008077810781858194,.006919747685379302,.9999743462849742],worldPos:[-79.66799955910238,139.08658379209294,.5702713693484767],worldQuat:[.6747462864925903,-.21146538352949726,.5180821304204447,.4812387625412099]},{name:`RightHandThumb4`,parent:25,localPos:[-13822276656583199e-30,2.5749773944199115,0],localQuat:[.005774853769703311,-.11750920454458612,-.048743708782553366,.9918579982867299],worldPos:[-81.68681626684736,137.9345819337196,1.6783234442112593],worldQuat:[.7432186106607572,-.23041213116196285,.41233882500284114,.47382807005935446]},{name:`RightHandPinky1`,parent:10,localPos:[-3.8062774279108913,8.076676225678526,.4867036950552688],localQuat:[4670719286902752e-21,2.4304698046602542e-9,.0005203629947084559,.9999998646002598],worldPos:[-79.40983953257197,143.5746349351307,-9.354749239786173],worldQuat:[.499741997111188,-.5002580522008165,.500262248259257,.49973743155597233]},{name:`RightHandPinky2`,parent:27,localPos:[-8881784197001252e-30,3.6000000000000654,0],localQuat:[4870027600139235e-37,529395781586262e-37,.0008462316753971022,.9999996419459117],worldPos:[-83.0098375822885,143.57460339401808,-9.358496377738998],worldQuat:[.49931848396687806,-.5006807705888573,.500684962782278,.49931391486245963]},{name:`RightHandPinky3`,parent:28,localPos:[-53290705182007514e-30,2.1000000000000085,-2.116385644512775e-8],localQuat:[1859605644060166e-37,-39704674301868344e-39,-.000496777829639297,.9999998766058863],worldPos:[-85.1098297375345,143.5745850175554,-9.364236374919699],worldQuat:[.49956714946047176,-.5004326584550336,.5004368529177667,.4995625824392057]},{name:`RightHandPinky4`,parent:29,localPos:[12789769243681803e-29,2.1157810760144855,1.4407362414203817e-8],localQuat:[-6.420659236909123e-8,.0015694812069815289,-4128528174330759e-20,.9999987675113715],worldPos:[-87.22560761141007,143.5745664664587,-9.367917366015948],worldQuat:[.4988017359417918,-.4996273949534528,.5011996406746996,.5003680791387806]},{name:`LeftShoulder`,parent:3,localPos:[4.570446071555214,11.195644630655181,-.80662723793772],localQuat:[.48442267749711376,.5709704717068556,-.5261616291252289,.40308972946685606],worldPos:[4.570454255590543,144.58590649477904,-3.316358019038552],worldQuat:[-.4589930047913493,-.5378899562605334,.5599354515710177,-.4318241616452356]},{name:`LeftArm`,parent:31,localPos:[-17763568394002505e-31,10.837705310376135,0],localQuat:[-.02460635908641656,-.002561394687342173,.10350452783474903,.9943212655210948],worldPos:[15.162823921302898,144.06131195632307,-5.548478497344785],worldQuat:[.5000007152647227,.4999994684527458,-.5000001196887698,.4999996965928613]},{name:`LeftForeArm`,parent:32,localPos:[8881784197001252e-30,27.841521654197066,-2842170943040401e-29],localQuat:[9612242362214153e-38,13234889800848425e-39,-2646977960169688e-38,1],worldPos:[43.00434557545168,144.06126546354233,-5.548455563844584],worldQuat:[.5000007152647227,.4999994684527458,-.5000001196887698,.4999996965928612]},{name:`LeftHand`,parent:33,localPos:[5438735050766752e-21,28.328834533709,-5.564248510836478e-7],localQuat:[-626962918533632e-37,-3970466940254537e-38,-26469779601696903e-39,1],worldPos:[71.333180109117,144.06121871342071,-5.548437667671921],worldQuat:[.5000007152647227,.4999994684527458,-.5000001196887698,.4999996965928613]},{name:`LeftHandThumb1`,parent:34,localPos:[-2.681731448380733,2.466144851985561,1.5761928025685847],localQuat:[.25309644676633125,-.06132323271522458,.2273527590163699,.9383455508133752],worldPos:[73.79932012001562,142.48502080725694,-2.866704767040701],worldQuat:[.6787362281261902,.19828588307841977,-.512706326258779,.48696207677299685]},{name:`LeftHandThumb2`,parent:35,localPos:[-6439293542825908e-30,4.18709445950184,2842170943040401e-29],localQuat:[-.002067032129087745,.0010427308040619535,-.008213407893731095,.9999635893478415],worldPos:[77.01712188965233,140.61296547844856,-.9502182343475976],worldQuat:[.6766109604816792,.2054209516609806,-.5155696739884216,.48392949077136155]},{name:`LeftHandThumb3`,parent:36,localPos:[5440092820663267e-30,3.4183883081631072,5684341886080802e-29],localQuat:[-.0015313589649970979,.0007452552330187441,-.006073119605284013,.9999801081784668],worldPos:[79.67313738956891,139.08416322654404,.5642862932655532],worldQuat:[.6749931166817439,.2106761779810745,-.5176795589715161,.48167179145825934]},{name:`LeftHandThumb4`,parent:37,localPos:[1482147737874584e-29,2.580581439610723,0],localQuat:[.005153407131366997,.12268277993699259,.04165153492193895,.9915581311958046],worldPos:[81.69402483309037,137.93008677758235,1.6794194947408763],worldQuat:[.7440625177876421,.2372081988172148,-.41152267473439397,.46984287609461295]},{name:`LeftHandIndex1`,parent:34,localPos:[-2.2598629283141953,9.109308911975873,.5180343214524328],localQuat:[6.665759936749852e-7,-29380348585960335e-27,-44076517660685066e-21,.9999999990284081],worldPos:[80.44248629452144,143.5431683499078,-3.28856742622205],worldQuat:[-.4999790098166289,-.5000211729545403,.5000224907507637,-.4999773245691765]},{name:`LeftHandIndex2`,parent:39,localPos:[-6217248937900877e-30,3.6999999999999886,-5684341886080802e-29],localQuat:[3.407213613716439e-7,3580919473408932e-26,.0001050981787351313,.9999999944771283],worldPos:[84.14248628039589,143.54315723870565,-3.2888905447059225],worldQuat:[.5000317287407754,.49996845295921,-.49997011163297345,.5000297028895362]},{name:`LeftHandIndex3`,parent:40,localPos:[-7172040739078511e-28,2.849999999999966,5684341886080802e-29],localQuat:[3.347505650683504e-7,-22176925334093855e-27,-6624910485486997e-20,.9999999978054721],worldPos:[86.99248625886426,143.54314673774508,-3.2885403736491297],worldQuat:[-.49999877255511554,-.5000014111400769,.5000034044318037,-.499996411845041]},{name:`LeftHandIndex4`,parent:41,localPos:[858424442640171e-27,2.7748656282368103,0],localQuat:[1.0594603907920247e-8,-.0003775632648206345,-13069537623522493e-21,.9999999286375816],worldPos:[89.76735188694607,143.54313465598005,-3.288567098859584],worldQuat:[.4998034244662043,.4998191246365437,-.5001986899385569,.5001786182186978]},{name:`LeftHandMiddle1`,parent:34,localPos:[-3660436011010404e-20,9.53340148931592,-3254047146583616e-20],localQuat:[4.084735851900896e-7,-12926721325528698e-27,-3164640698382836e-20,.9999999994991691],worldPos:[80.86658159844058,144.06123533397496,-5.548393210486787],worldQuat:[-.49998509605784175,-.5000150871851532,.5000161468752833,-.499983668904545]},{name:`LeftHandMiddle2`,parent:43,localPos:[-26645352591003757e-31,3.6999999999999744,-2842170943040401e-29],localQuat:[-1.6358384175735772e-7,-34673461654660564e-28,2119614093572879e-20,.9999999997753484],worldPos:[84.5665815912097,144.0612261326968,-5.548624346151146],worldQuat:[-.49999561254479435,-.500004571111091,.5000054672459868,-.49999434899615885]},{name:`LeftHandMiddle3`,parent:44,localPos:[-28697044740511046e-28,2.9500000006246694,-2842170943040401e-29],localQuat:[-4.275899279477681e-7,-884662274908745e-26,20689502181930057e-21,.9999999997858808],worldPos:[87.51658159123295,144.06121976164127,-5.548683572757025],worldQuat:[.5000057434864292,.4999944401365919,-.4999949087122563,.5000049075508173]},{name:`LeftHandMiddle4`,parent:45,localPos:[-8713030297258229e-27,2.952863459443819,-14210854715202004e-29],localQuat:[-2.6759425390821073e-8,-.0010241407152540845,279847572642705e-19,.9999994751761864],worldPos:[90.46944505000428,144.06121590958617,-5.548620670295296],worldQuat:[.499507394771273,.49946812318416767,-.5004927166472543,.5005307154158994]},{name:`LeftHandRing1`,parent:34,localPos:[1.865081040398466,9.104528720799948,.04302823471783768],localQuat:[6.248995762954407e-7,39451643110942306e-28,6313277301958232e-21,.9999999999798759],worldPos:[80.43771029434576,144.0181759602736,-7.413511224335965],worldQuat:[.5000041843415268,.49999599935162675,-.4999972754894557,.5000025407699983]},{name:`LeftHandRing2`,parent:47,localPos:[-4440892098500626e-30,3.1500000002318416,0],localQuat:[-19345585602378175e-38,0,4235164736267838e-37,1],worldPos:[83.58771029427925,144.01816676318134,-7.413468855985753],worldQuat:[.5000041843415268,.4999959993516267,-.4999972754894557,.5000025407699983]},{name:`LeftHandRing3`,parent:48,localPos:[2643289183090758e-21,2.9500000001810776,5.209859352817148e-7],localQuat:[-8757673760813274e-38,1323488980045867e-38,12839125457873287e-48,1],worldPos:[86.53771029421749,144.01815762904647,-7.413431820978903],worldQuat:[.5000041843415268,.4999959993516267,-.4999972754894557,.5000025407699983]},{name:`LeftHandRing4`,parent:49,localPos:[-23274330810174604e-21,2.644316435477009,-14607575451464072e-22],localQuat:[-2.7316933950438635e-7,.0004934373218353761,16047023509748673e-21,.9999998781310067],worldPos:[89.18202672913526,144.0181513691535,-7.413372979877784],worldQuat:[.5002587275852554,.5002347713372702,-.49974233369355947,.49976392320219065]},{name:`LeftHandPinky1`,parent:34,localPos:[3.806263215177876,8.077778818742132,.4868770149745387],localQuat:[-4975537953269548e-21,1.0178097892277194e-8,.0020448023965822897,.9999979093770162],worldPos:[79.41096125008677,143.57432960785403,-9.354694407950916],worldQuat:[.5010195873847003,.4989785133401168,-.498974180943756,.5010235354085267]},{name:`LeftHandPinky2`,parent:51,localPos:[-3552713678800501e-30,3.6000000000000796,2842170943040401e-29],localQuat:[6.285466836481913e-7,-13240964884135178e-26,-.00021066000242779323,.9999999778109838],worldPos:[83.01093113307373,143.5743594144743,-9.339968896109413],worldQuat:[.5009147763033496,.49908373336086237,-.499080029188825,.5009180955410079]},{name:`LeftHandPinky3`,parent:52,localPos:[23803181647963356e-29,2.1000000536000414,5684341886080802e-29],localQuat:[1.0560541723515637e-7,-70842344057535595e-28,-6708211165014274e-20,.9999999977499896],worldPos:[85.11091705114045,143.57437416212716,-9.332263779357556],worldQuat:[.500881348481691,.4991172819497667,-.4991136834189969,.5008845621759181]},{name:`LeftHandPinky4`,parent:53,localPos:[11048939541069558e-28,2.12553132909224,0],localQuat:[2.2034709579345264e-7,-.0007833987784531817,-.0002953855857226705,.9999996495167691],worldPos:[87.23643510003559,143.57438864025644,-9.324750154134009],worldQuat:[.5003428461990634,.49887255781562256,-.4996539623833923,.5011278531377935]},{name:`RightUpLeg`,parent:0,localPos:[-8.207789844904983,-6.771764137627812,-1.5122187689572422],localQuat:[2.7047671429134563e-9,.010356475588677583,.9999463702685825,2.6115275064568443e-7],worldPos:[-8.207797572195703,97.52320568879888,-.04524648166077205],worldQuat:[4.391377782486676e-9,.0038980599621582274,.9999924025353709,2.611298350175175e-7]},{name:`RightLeg`,parent:55,localPos:[6.19727558159866e-9,44.37146193723237,-16631140908884845e-29],localQuat:[-.03809137752293408,-816315213450579e-24,2.1414893185802513e-8,.9992742601300231],worldPos:[-8.207820750122902,53.15309218889458,.3006761286643062],worldQuat:[-4.658818794361865e-9,-.03419585714041286,.9994151506528081,2.396960478727042e-7]},{name:`RightFoot`,parent:56,localPos:[-5.538291603102152e-9,44.52781411684904,18207657603852567e-30],localQuat:[.45974006194132166,3725814189701004e-38,-1.2432846936543718e-7,.8880535318583977],worldPos:[-8.207842064194724,8.729415862750969,-2.742876350631811],worldQuat:[1.1031211398837241e-7,.4291034315577479,.903255359809859,3.3926052346823936e-7]},{name:`RightToeBase`,parent:57,localPos:[0,13.816866143314009,6217248937900877e-30],localQuat:[.335241516804437,7023902526244116e-39,-1.1130089220595614e-7,.9421322228915896],worldPos:[-8.207849224193675,.0007420744116171107,7.96768124078066],worldQuat:[1.6990321486208088e-7,.7070808667083169,.7071326947149592,3.8318019813577996e-7]},{name:`RightToe_End`,parent:58,localPos:[-17763568394002505e-31,9.278120542404253,4288670113483661e-30],localQuat:[-3388360082792521e-36,.01160806788231821,11912203416067455e-38,.9999326241102645],worldPos:[-8.207852022918948,6202649694084369e-20,17.245801758262132],worldQuat:[-.008208274430290369,.7070332309537893,.7070850529927397,-.0082074595446575]},{name:`LeftUpLeg`,parent:0,localPos:[8.207788043566438,-6.771802818529409,-1.5122137762205135],localQuat:[2.8191483378909245e-9,.01036795967915088,.9999462512615453,2.718950400523856e-7],worldPos:[8.207780316275715,97.52316694663398,-.04524198897490894],worldQuat:[4.575136162088223e-9,.00390954458172457,.9999923577013424,2.7187116164010067e-7]},{name:`LeftLeg`,parent:60,localPos:[6.468269475590205e-9,44.37138978410286,37414515929867775e-30],localQuat:[-.0381124510208252,-8172602612650612e-25,2.142781333519525e-8,.9992734566059407],worldPos:[8.207756184976574,53.15313355499844,.30169921260475335],worldQuat:[-4.888837197809569e-9,-.034205455626157316,.9994148221861352,2.504235506344471e-7]},{name:`LeftFoot`,parent:61,localPos:[-5.547779124981389e-9,44.52784595754781,-2220446049250313e-29],localQuat:[.4597486071334844,-3725832749974238e-39,-1.1668517803347452e-7,.8880491080108168],worldPos:[8.207733916824536,8.729483932050528,-2.742708742345943],worldQuat:[1.147816207643381e-7,.4291034480907216,.9032553519556492,3.412529433141002e-7]},{name:`LeftToeBase`,parent:62,localPos:[17763568394002505e-31,13.81686480841043,-17763568394002505e-31],localQuat:[.33524149798857344,10535853714492708e-39,-1.1452079069214378e-7,.94213222958689],worldPos:[8.207726760093172,.0008113791108694812,7.967848133811215],worldQuat:[1.7340034603185666e-7,.707080865528955,.7071326958942321,3.864673509538802e-7]},{name:`LeftToe_End`,parent:63,localPos:[0,9.278136754869934,-13125351500109517e-31],localQuat:[0,-.011869165745076847,18530151004086692e-38,.9999295589712888],worldPos:[8.207723964114914,.00013129905961646127,17.245984863756057],worldQuat:[.008393248559463194,.7070310534383599,.7070828826815805,.008392846428263363]}],landmarks:{mouth:[0,158.500185546875,11.717991638183594],headEllipsoid:{centre:[-95367431640625e-19,167.56204986572266,-.15480518341064453],radii:[8.804292678833008,13.326271057128906,12.424483299255371]},headJoint:[1671650538423477e-20,159.92947501239226,-1.5195243864816557],headTop:[298931534294587e-19,181.96684091859,5.981578858112073],sole:{ball:0,tip:-.7}}},"y-bot-tpose":{model:`y-bot-tpose`,units:`cm`,mesh:`Alpha_Surface`,bones:[{name:`Hips`,parent:-1,localPos:[-6757011760782916e-21,99.79193878173828,4844740033149719e-20],localQuat:[7615435492247396e-26,-17453292503320135e-22,4363323128594654e-20,.9999999990465473],worldPos:[-6757011760782916e-21,99.79193878173828,4844740033149719e-20],worldQuat:[7615435492247396e-26,-17453292503320135e-22,4363323128594654e-20,.9999999990465473]},{name:`Spine`,parent:0,localPos:[.0008597856133863019,9.923461876522225,-1.2273349078167588],localQuat:[-.06073022898235704,5303745488019905e-37,6119354919596912e-21,.9981542161661715],worldPos:[-8672608244745512e-21,109.71540069587908,-1.227286457407732],worldQuat:[-.060730228859120175,-4391963877518737e-21,4956605444176136e-20,.9981542149520963]},{name:`Spine1`,parent:1,localPos:[0,11.731977989043784,-3552713678800501e-30],localQuat:[.0001960924550491026,4662287733052689e-29,-9316072744031837e-21,.9999999807304797],worldPos:[-.0011632832276606084,121.36083978703566,-2.649627688070991],worldQuat:[-.06053449713743436,-494801144686156e-20,4026803743853935e-20,.9981661049195772]},{name:`Spine2`,parent:2,localPos:[1931491945550423e-26,13.458836780167971,6235012506294879e-28],localQuat:[.057711730916465316,21958232674411106e-22,3285013706200134e-21,.9983332890868721],worldPos:[-.0022371547694859653,134.72103871836885,-4.27608729015328],worldQuat:[-.002827710078055566,-2.2517339024978275e-7,4363254684471116e-20,.9999960010679366]},{name:`Neck`,parent:3,localPos:[2548122992670175e-20,15.027761372130044,.8779068542021755],localQuat:[.0028277058943183713,-8816242878226746e-54,-7234126583784003e-36,.9999960020316957],worldPos:[-.003523660156014883,149.7535246254643,-3.4831824403326026],worldQuat:[-4.186445695616128e-9,-1.017924801167934e-7,4363300912729469e-20,.999999999048075]},{name:`Head`,parent:4,localPos:[2562548663041439e-21,10.32183835340436,3.1424288991299827],localQuat:[12407709188295404e-40,13234889800848435e-39,-33812794736012347e-37,1],worldPos:[-.0044224830930743595,160.07536296607333,-.3407536277174854],worldQuat:[-4.1864456956161264e-9,-1.0179248011679337e-7,43633009127294685e-21,.999999999048075]},{name:`HeadTop_End`,parent:5,localPos:[.00015451594228192873,18.474670356296826,6.63639947863672],localQuat:[693889473108785e-32,-661744490042423e-38,-10158249377722142e-36,1],worldPos:[-.005881529143937624,178.55003332101543,6.295645696100038],worldQuat:[-4.186445688677232e-9,-1.0179248011679308e-7,4363300912729468e-20,.999999999048075]},{name:`LeftShoulder`,parent:3,localPos:[6.105824524896,9.10629188078309,.757062475638635],localQuat:[-.45383506682997793,-.5448493479758866,.5511388470821386,-.4397941465761588],worldPos:[6.10279217248512,143.83199925791556,-3.5705353792059826],worldQuat:[-.4525659925709384,-.5433084112379314,.5526580275773418,-.44109987213863294]},{name:`LeftArm`,parent:7,localPos:[4884981308350689e-30,12.92228632488431,2842170943040401e-29],localQuat:[-.010451820107802023,-.0010627185813176982,.10115046260752789,.9948156683526521],worldPos:[18.75785325853472,143.5671732022338,-6.171454434247386],worldQuat:[.49997802104022876,.5000219779933275,-.4999777974641308,.5000222015503447]},{name:`LeftForeArm`,parent:8,localPos:[3.059411390893274e-9,27.404682159441652,-2842170943040401e-29],localQuat:[-10173904404505293e-36,6815758221109549e-42,13234889800848457e-39,1],worldPos:[46.162535310990236,143.5695947084291,-6.171442183765884],worldQuat:[.49997802104022876,.5000219779933275,-.4999777974641308,.5000222015503447]},{name:`LeftHand`,parent:9,localPos:[-12820418092474029e-21,27.614463806173113,2.3361064904747764e-7],localQuat:[-3397640826470449e-36,-18680226235633534e-43,52939559203393736e-39,1],worldPos:[73.77699900937316,143.57203451753804,-6.171417016006557],worldQuat:[.49997802104022876,.5000219779933275,-.4999777974641308,.5000222015503447]},{name:`LeftHandRing1`,parent:10,localPos:[2.216630558205681,12.147010274148471,-.009996226470974534],localQuat:[5.56794949511021e-7,-3.067028835367668e-9,4777353976607745e-21,.9999999999884335],worldPos:[85.92400934395243,143.5831040665074,-8.388042142881478],worldQuat:[.49998068669282075,.5000193094968617,-.4999756886184537,.500024313263825]},{name:`LeftHandRing2`,parent:11,localPos:[0,3.601188659840844,0],localQuat:[-2306826384812874e-21,1861861504887997e-26,-8071095064110734e-21,.999999999964768],worldPos:[89.52519798990681,143.58341826103262,-8.388006124364832],worldQuat:[.4999754975118546,.5000244982373176,-.49997857087756026,.5000214312542258]},{name:`LeftHandRing3`,parent:12,localPos:[-7140954494389007e-28,3.3073120118204997,22737367544323206e-29],localQuat:[-32584970000852863e-37,-2067951531382572e-40,-6352747104407258e-37,1],worldPos:[92.83250998771065,143.5837220743585,-8.388026432414401],worldQuat:[.49997549751185466,.5000244982373176,-.49997857087756026,.5000214312542258]},{name:`LeftHandRing4`,parent:13,localPos:[-241726316367874e-19,3.660118102908669,16886514032421474e-21],localQuat:[8486035821629225e-21,.007396474405473809,.0007707649842267434,.9999723486255485],worldPos:[96.49262807680708,143.5840414103271,-8.388024734185503],worldQuat:[.5040493957792119,.5033194611486261,-.4958855340273986,.4966903097363882]},{name:`LeftHandMiddle1`,parent:10,localPos:[-18344155402694184e-21,12.77552795411546,-10320898695681535e-22],localQuat:[5.567949752588633e-7,-2.6633364343577455e-9,2.0800236288001427e-7,.9999999999998233],worldPos:[86.55252691351437,143.5731644085546,-6.171392959489538],worldQuat:[.49997840212413347,.5000215942797767,-.49997797319957754,.5000220284932966]},{name:`LeftHandMiddle2`,parent:15,localPos:[-3552713678800501e-30,3.61396789550858,-2842170943040401e-29],localQuat:[23697741078528623e-36,6203854594147698e-40,-26469779601696844e-39,1],worldPos:[90.16649479526663,143.5734797180353,-6.171389840137076],worldQuat:[.49997840212413347,.5000215942797767,-.49997797319957754,.5000220284932966]},{name:`LeftHandMiddle3`,parent:16,localPos:[28508498060020315e-21,3.4597625732240687,-8526512829121202e-29],localQuat:[1692147750009982e-35,20679515313825724e-41,264697796016969e-37,1],worldPos:[93.62625735534596,143.57378157349484,-6.171415362383127],worldQuat:[.49997840212413347,.5000215942797767,-.49997797319957754,.5000220284932966]},{name:`LeftHandMiddle4`,parent:17,localPos:[-30473889779614183e-21,3.680191040059995,-2842170943040401e-29],localQuat:[-133272714831852e-20,.004579424073341433,-.000654144096597114,.9999893004272004],worldPos:[97.30644838137125,143.57410266077613,-6.171381711981186],worldQuat:[.5019349111684311,.5026337814312043,-.4980094305837711,.4974004762403589]},{name:`LeftHandThumb1`,parent:10,localPos:[-3.002975029424964,3.7888090485209744,2.1671489778191813],localQuat:[.25189492500135036,-.05946403657250492,.2219235197808198,.940086659027326],worldPos:[77.56599819190912,141.40522033116738,-3.168440292478436],worldQuat:[.6772116616355364,.20343190021506413,-.5147394802435296,.484812432594653]},{name:`LeftHandThumb2`,parent:19,localPos:[-19984014443252818e-31,4.744970523440218,2842170943040401e-29],localQuat:[69460704858849485e-22,55796786860811154e-28,8.032883032279416e-7,.9999999999755533],worldPos:[81.24162844278966,139.28353174695044,-1.0464306132517085],worldQuat:[.6772151925776482,.20342778079987783,-.5147405038353289,.48480814210593404]},{name:`LeftHandThumb3`,parent:20,localPos:[-5984102102729594e-28,4.3821287009303775,5172751116333529e-27],localQuat:[7030691099565929e-33,7121429504040547e-33,-15407439555097887e-48,1],worldPos:[84.63615479208448,137.32403482337068,.9133179986734019],worldQuat:[.6772151925776482,.20342778079987775,-.5147405038353289,.48480814210593404]},{name:`LeftHandThumb4`,parent:21,localPos:[-51284654249972306e-22,3.459077859769903,4.03463474185628e-7],localQuat:[.009146816027813427,.1256374250101491,.07207247635857116,.9894125182879566],worldPos:[87.31565650284612,135.77728679427992,2.4602700847142343],worldQuat:[.7538118553684166,.20866722684171796,-.3911265183168664,.4850213622280347]},{name:`LeftHandIndex1`,parent:10,localPos:[-2.822044006965872,12.266617250897596,.23182516767607808],localQuat:[5.567949601161418e-7,-3.075281477739248e-9,487076476385117e-20,.9999999999879827],worldPos:[86.04363543486608,143.34129324170544,-3.34936752423002],worldQuat:[.49998073339592125,.5000192627891642,-.4999756419148924,.5000243599710406]},{name:`LeftHandIndex2`,parent:23,localPos:[-13322676295501878e-31,3.891967773631521,0],localQuat:[-30225470980600983e-37,0,-6214320207710297e-21,.999999999980691],worldPos:[89.93560319348254,143.34163280596658,-3.349327870283342],worldQuat:[.49997762610645813,.5000223698198841,-.4999787492167228,.5000212529526508]},{name:`LeftHandIndex3`,parent:24,localPos:[4071321058063404e-26,3.415161132822689,-11368683772161603e-29],localQuat:[46684518186119064e-39,-9183549615799121e-56,21175823681357537e-38,1],worldPos:[93.35076431329836,143.34193077006435,-3.3493355202090695],worldQuat:[.49997762610645813,.5000223698198841,-.4999787492167229,.5000212529526508]},{name:`LeftHandIndex4`,parent:25,localPos:[5.854722480158614e-7,3.0779876709090814,5684341886080802e-29],localQuat:[10393592226093013e-22,.004001602788212073,22779581052790166e-21,.9999919932955144],worldPos:[96.4287519724834,143.34219931663745,-3.3493430003052733],worldQuat:[.5019862492920715,.5020073437901309,-.4979631636001596,.4980272281710877]},{name:`LeftHandPinky1`,parent:10,localPos:[4.72583130478205,10.908194092064392,.22613216873591568],localQuat:[28521120612919424e-22,-3.0577730863769185e-9,.000141051374267014,.9999999900481878],worldPos:[84.68521515320175,143.3468662092345,-10.897243443373178],worldQuat:[.5000499694422342,.49995002290857044,-.49990869131728644,.5000912946652625]},{name:`LeftHandPinky2`,parent:27,localPos:[-5329070518200751e-30,4.136657059551979,2842170943040401e-29],localQuat:[-59544873416476465e-22,2.190560405006969e-9,-.0003678839387923365,.9999999323129735],worldPos:[88.82187203349876,143.3472081321215,-10.896074631422186],worldQuat:[.4998630353195086,.5001369272162459,-.5000896549937187,.49991032888321396]},{name:`LeftHandPinky3`,parent:28,localPos:[43876013933186186e-29,2.594834461051775,0],localQuat:[36591694282576963e-22,8409112616016821e-25,.00022980932036022433,.999999973587143],worldPos:[91.41670621645012,143.34745351466333,-10.897250657097295],worldQuat:[.49997978792115133,.5000202113293842,-.49997658739741363,.5000234114387793]},{name:`LeftHandPinky4`,parent:29,localPos:[-2948752353404416e-28,2.9238662720287607,-2842170943040401e-29],localQuat:[-10497831164166655e-22,.004099894588367042,-.0005750644579927158,.9999914300453439],worldPos:[94.34057247729058,143.3477086145383,-10.89723194250163],worldQuat:[.5017372856540723,.5023540149301887,-.4982094589732469,.49768210220741194]},{name:`RightShoulder`,parent:3,localPos:[-6.1056956701096174,9.10638358733786,.7570756312724551],localQuat:[.4538375688887134,-.5448472538987562,.5511399888422243,.43979272809263187],worldPos:[-6.1087279840345,143.8310253866605,-3.5705252284969617],worldQuat:[.45261579666489365,-.5432669079313696,.5526977464106563,.44105012013225253]},{name:`RightArm`,parent:31,localPos:[39968028886505635e-31,12.922286714484947,0],localQuat:[-.01045541384979725,.0010630628959740092,-.10114940861202837,.9948157373885607],worldPos:[-18.763745414580892,143.56389953844294,-6.171423447408117],worldQuat:[.5000215299672571,-.4999784691060287,.5000215360351153,.4999784630368383]},{name:`RightForeArm`,parent:32,localPos:[8.327427636345419e-9,27.404682159441318,-2842170943040401e-29],localQuat:[-3388329060809388e-36,-15146129380243438e-44,8271806125530284e-40,1],worldPos:[-46.16842747236397,143.56153906740224,-6.171423771692651],worldQuat:[.5000215299672571,-.49997846910602883,.5000215360351153,.4999784630368383]},{name:`RightHand`,parent:33,localPos:[12842842382454478e-21,27.614463806155165,15492399938921153e-21],localQuat:[-19727179218464944e-41,-7573064690121704e-44,0,1],worldPos:[-73.78289117474843,143.55914503465877,-6.17141126400836],worldQuat:[.5000215299672571,-.4999784691060287,.5000215360351153,.4999784630368383]},{name:`RightHandThumb1`,parent:34,localPos:[3.002974470681663,3.7888088905192205,2.1671490371761024],localQuat:[.25189499102226326,.05946427874712486,-.2219234615465524,.9400866397658112],worldPos:[-77.57151342274972,141.3916696607838,-3.168436839313407],worldQuat:[.6772291629398663,-.20337279117491877,.5147821060302558,.4847675236487542]},{name:`RightHandThumb2`,parent:35,localPos:[-68833827526759706e-31,4.744970470128291,2842170943040401e-29],localQuat:[8453832451066965e-21,-33376070678072775e-28,-3.9480215616198235e-7,.9999999999641884],worldPos:[-81.24677425676067,139.26933968812125,-1.0464288158806956],worldQuat:[.6772333413527709,-.20336817191604672,.5147836339017984,.48476200168592604]},{name:`RightHandThumb3`,parent:36,localPos:[-17763568394002505e-29,4.382135391768333,-4092726157978177e-27],localQuat:[-14347996972659013e-33,-5998687332454958e-33,-1387778780781447e-32,1],worldPos:[-84.64095942776746,137.30923516924733,.9133180789494266],worldQuat:[.6772333413527709,-.20336817191604672,.5147836339017984,.48476200168592604]},{name:`RightHandThumb4`,parent:37,localPos:[11177533225659175e-21,3.4590709023307085,-23241859054223823e-21],localQuat:[.00923206336161341,-.1271302153500302,-.0723276818427547,.989202397788438],worldPos:[-87.32019182850055,135.76203483248253,2.460268746809576],worldQuat:[.7545499013151971,-.2090649481886763,.389944180490974,.4846543407061524]},{name:`RightHandIndex1`,parent:34,localPos:[2.822042502024897,12.266617102415225,.23182522345669554],localQuat:[5.567922673046469e-7,-7.224337929733461e-9,-4743924457641052e-21,.9999999999885925],worldPos:[-86.04948829791044,143.32626324098368,-3.3493689108641775],worldQuat:[.5000241838181078,-.4999758222398485,.5000194389411731,.4999805530753941]},{name:`RightHandIndex2`,parent:39,localPos:[0,3.891967773619811,0],localQuat:[1695401251774016e-35,-4135903062840235e-40,602627167052741e-20,.9999999999818419],worldPos:[-89.94145605654246,143.32592367674323,-3.3493320316989923],worldQuat:[.5000211708188947,-.4999788355123435,.5000224519507367,.4999775398133359]},{name:`RightHandIndex3`,parent:40,localPos:[-51669779566054785e-28,3.4151611328221207,11368683772161603e-29],localQuat:[-13593959205239575e-36,0,0,1],worldPos:[-93.35661717635494,143.32562571266394,-3.349340831998884],worldQuat:[.5000211708188947,-.4999788355123435,.5000224519507367,.4999775398133359]},{name:`RightHandIndex4`,parent:41,localPos:[-12771572572845002e-22,3.0779876709101757,-2842170943040401e-29],localQuat:[-7290381402922513e-20,-.006709307422924062,.0013745331778991744,.9999765449936721],worldPos:[-96.4346048355366,143.3253571661075,-3.3493500406116747],worldQuat:[-.5026405594004304,.5040453607575476,-.49730671352060296,-.49596045712511533]},{name:`RightHandMiddle1`,parent:34,localPos:[16632154487439266e-21,12.775527954114011,-10320893863990932e-22],localQuat:[5.567949633221699e-7,-7.289108692409176e-9,-3.662527039828292e-7,.9999999999997777],worldPos:[-86.55841908156046,143.55804566121927,-6.171394786911078],worldQuat:[.5000219951158138,-.4999780112066047,.5000216276573223,.4999783641170999]},{name:`RightHandMiddle2`,parent:43,localPos:[8881784197001252e-31,3.6139678955093757,0],localQuat:[-33759614098155274e-37,-4135903062765133e-40,0,1],worldPos:[-90.17238696331393,143.55773035173834,-6.171392183522983],worldQuat:[.5000219951158138,-.4999780112066047,.5000216276573223,.4999783641170999]},{name:`RightHandMiddle3`,parent:44,localPos:[-29421479796454264e-21,3.4597625732165085,14210854715202004e-29],localQuat:[34003021678244415e-37,-8271806125530284e-40,-7940933880509075e-38,1],worldPos:[-93.63214952338268,143.55742849627876,-6.1714191126993185],worldQuat:[.5000219951158138,-.4999780112066047,.5000216276573223,.4999783641170999]},{name:`RightHandMiddle4`,parent:45,localPos:[28549065814509333e-21,3.680191040067001,-5684341886080802e-29],localQuat:[-5158123071926063e-20,-.006695195594000001,-.0017083442773867367,.9999761263426065],worldPos:[-97.31234054942114,143.557107408997,-6.171387912540353],worldQuat:[.504186145435319,-.5024851098604104,.49578202059538456,.49749897806327625]},{name:`RightHandRing1`,parent:34,localPos:[-2.216632303077052,12.147002761381543,-.009996270293299858],localQuat:[5.567954667309114e-7,-7.224304767843245e-9,-4803651127566965e-21,.9999999999883074],worldPos:[-85.92989472518438,143.5680950366908,-8.38804371451417],worldQuat:[.5000242136815972,-.49997579237346873,.5000194090805982,.49998058293828956]},{name:`RightHandRing2`,parent:47,localPos:[0,3.6011962892353893,-8526512829121202e-29],localQuat:[-5732183384702703e-36,0,8071083662125689e-21,.9999999999674287],worldPos:[-89.53109100054763,143.5677808414962,-8.388009160440863],worldQuat:[.5000201783188615,-.4999798280944457,.5000234444494263,.4999765472235214]},{name:`RightHandRing3`,parent:48,localPos:[-6055600465515454e-27,3.307312011785328,-11368683772161603e-29],localQuat:[32821615918857455e-37,-36734198463196485e-56,21175823681357546e-38,1],worldPos:[-92.83840299967426,143.56749228695628,-8.38803081342569],worldQuat:[.5000201783188615,-.4999798280944457,.5000234444494263,.4999765472235214]},{name:`RightHandRing4`,parent:49,localPos:[2417262415121968e-20,3.6601181029476635,-2842170943040401e-29],localQuat:[-6164489635359998e-20,-.007613221748708619,-.000300224892743606,.9999709720384515],worldPos:[-96.49852108877111,143.56717295098406,-8.388030603602541],worldQuat:[.5039317385023292,-.503652452411389,.49602123868179077,.49633651979941534]},{name:`RightHandPinky1`,parent:34,localPos:[-4.725833119502555,10.90819434071372,.2261320753251539],localQuat:[5.567949828639406e-7,-7.530380981813863e-9,-3132050030138696e-21,.99999999999494],worldPos:[-84.69106594001192,143.3320733953033,-10.897244515904388],worldQuat:[.5000233780731588,-.4999766283665967,.5000202446951756,.49997974695226793]},{name:`RightHandPinky2`,parent:51,localPos:[0,4.13665008553545,-2842170943040401e-29],localQuat:[1470867824118891e-37,8271806125977124e-40,10394374390791114e-21,.9999999999459783],worldPos:[-88.8277160097222,143.33171248313417,-10.897218653721097],worldQuat:[.5000181811018849,-.4999818257697831,.5000254416448413,.49997454952763204]},{name:`RightHandPinky3`,parent:52,localPos:[-3950617610826157e-27,2.5948410036845218,-8526512829121202e-29],localQuat:[6674018442413745e-36,1836709923259698e-55,-10428465638715964e-21,.9999999999456235],worldPos:[-91.42255700325643,143.33148608987582,-10.897256374372848],worldQuat:[.5000233951179858,-.49997661132017523,.5000202276502416,.4999797639985816]},{name:`RightHandPinky4`,parent:53,localPos:[4362732397567015e-27,2.923866272034857,5684341886080802e-29],localQuat:[-8226663950025322e-20,-.00849884034311731,.0022061069470672434,.9999614472754239],worldPos:[-94.34642326410449,143.33123099000105,-10.897237895108226],worldQuat:[-.5031095764062739,.5053508241180749,-.4968132089402998,-.4946493041680384]},{name:`LeftUpLeg`,parent:0,localPos:[9.123873709849553,-6.657188518716367,-.05540310527662988],localQuat:[20251728747483253e-21,-.006350177975401161,.9999754277247583,-.002969642442257367],worldPos:[9.12444806072654,93.13554649657034,-.05532280954860631],worldQuat:[18783520922709306e-21,-.006350171978846871,.999975297231096,-.00301328568169704]},{name:`LeftLeg`,parent:55,localPos:[-4618527782440651e-29,40.59943638074365,1170175067954915e-28],localQuat:[-.018114309191591866,.00018249364298742092,-.005920146666904975,.9998183786878614],worldPos:[9.369107731941927,52.540121711606496,-.5709414745281038],worldQuat:[-715314874584385e-19,-.02446331907456045,.9996964939479204,.00290876113461602]},{name:`LeftFoot`,parent:56,localPos:[-10658141036401503e-30,42.09902591219656,20872192862952943e-30],localQuat:[.5405498192560871,.01436647216366454,.024951033886733327,.8408192096329419],worldPos:[9.12441738143423,10.49219684921195,-2.6300976499043784],worldQuat:[-.01346031169880001,.5198601039256607,.853859207560786,-.022107600933591907]},{name:`LeftToeBase`,parent:57,localPos:[17763568394002505e-31,15.721559146548017,-1509903313490213e-29],localQuat:[.2276920621809942,-.032521469150786096,-.015365592016704316,.9730686396375217],worldPos:[9.497939603229476,3.2836504838127345,11.336461068911172],worldQuat:[.0016492651748272183,.7007886739142866,.7132730439227728,.01157925951782756]},{name:`LeftToe_End`,parent:58,localPos:[17763568394002505e-31,9.999999999999991,4.890746918562172e-9],localQuat:[3842630640765734e-25,-2181956872127079e-33,8673617379884037e-34,1],worldPos:[9.355871856763304,3.108427383452366,21.333916426176543],worldQuat:[.0016492651792767014,.700788674188371,.7132730436534856,.011579259517193808]},{name:`RightUpLeg`,parent:0,localPos:[-9.125032356625555,-6.655601347887028,-.05535274484958799],localQuat:[-17972283601838397e-21,-.006333801286546503,.9999752669985558,.0030574547301418053],worldPos:[-9.12445807483328,93.1355411499169,-.055336149820714026],worldQuat:[-19441205218510228e-21,-.006333807477113975,.9999753994199062,.00301381152055421]},{name:`RightLeg`,parent:60,localPos:[7105427357601002e-30,40.59943859177964,26645352591003757e-30],localQuat:[-.018147073530042527,-.00018249394989624574,.005920149654138874,.9998177845219228],worldPos:[-9.369160167563622,52.54009755727,-.5696263108436963],worldQuat:[7086285029500266e-20,-.024479715368387448,.9996960941175567,-.0029082503401009767]},{name:`RightFoot`,parent:61,localPos:[-24868995751603507e-30,42.09902387472938,-6217248937900877e-29],localQuat:[.5405636018310247,-.014366037304083883,-.024951225824318232,.8408103506008421],worldPos:[-9.12451164224619,10.492242047309674,-2.6301615125796047],worldQuat:[.013459958226241265,.5198600714589466,.8538592128932476,.02210837363015364]},{name:`RightToeBase`,parent:62,localPos:[3552713678800501e-30,15.721558809599616,26645352591003757e-31],localQuat:[.22770869920802236,.03211960072148292,.015257901862228916,.9730797891155923],worldPos:[-9.498060396707743,3.2836958492734345,11.33639620371245],worldQuat:[-.0013617607248561205,.700801240791512,.7132661380535977,-.011277536030161229]},{name:`RightToe_End`,parent:63,localPos:[3.1880595940947387e-9,9.999999999999998,5.687534443410414e-9],localQuat:[-3109963189751316e-25,-16439215440311446e-32,-17347234759768052e-34,1],worldPos:[-9.356269180688868,3.1086870931784847,21.33385924122101],worldQuat:[-.0013617607213487338,.7008012405696887,.7132661382715444,-.011277536030584614]}],landmarks:{mouth:[0,158.399150390625,12.493875312805176],headEllipsoid:{centre:[-16689300537109375e-21,167.32984161376953,.6807799339294434],radii:[8.005595684051514,13.133369445800781,12.374487400054932]},headJoint:[-.0044224830930743595,160.07536296607333,-.3407536277174854],headTop:[-.005881529143937624,178.55003332101543,6.295645696100038],sole:{ball:3.3,tip:2.6}}}},cT=new Map;function lT(e){return sT[e]?(cT.has(e)||cT.set(e,xs(sT[e])),cT.get(e)):null}var uT=[{id:`hips`,bone:`mixamorigHips`,label:`Hips`},{id:`spine`,bone:`mixamorigSpine`,label:`Spine`},{id:`chest`,bone:`mixamorigSpine1`,label:`Chest`},{id:`upperChest`,bone:`mixamorigSpine2`,label:`Upper Chest`},{id:`neck`,bone:`mixamorigNeck`,label:`Neck`},{id:`head`,bone:`mixamorigHead`,label:`Head`},{id:`lShoulder`,bone:`mixamorigLeftShoulder`,label:`L Shoulder`},{id:`rShoulder`,bone:`mixamorigRightShoulder`,label:`R Shoulder`},{id:`lArm`,bone:`mixamorigLeftArm`,label:`L Upper Arm`},{id:`rArm`,bone:`mixamorigRightArm`,label:`R Upper Arm`},{id:`lForeArm`,bone:`mixamorigLeftForeArm`,label:`L Forearm`},{id:`rForeArm`,bone:`mixamorigRightForeArm`,label:`R Forearm`},{id:`lHand`,bone:`mixamorigLeftHand`,label:`L Hand`},{id:`rHand`,bone:`mixamorigRightHand`,label:`R Hand`},{id:`lUpLeg`,bone:`mixamorigLeftUpLeg`,label:`L Thigh`},{id:`rUpLeg`,bone:`mixamorigRightUpLeg`,label:`R Thigh`},{id:`lLeg`,bone:`mixamorigLeftLeg`,label:`L Shin`},{id:`rLeg`,bone:`mixamorigRightLeg`,label:`R Shin`},{id:`lFoot`,bone:`mixamorigLeftFoot`,label:`L Foot`},{id:`rFoot`,bone:`mixamorigRightFoot`,label:`R Foot`}];function dT(e){return String(e??``).replace(/[^a-zA-Z0-9]/g,``).toLowerCase()}function fT(e,t){let n=dT(e),r=dT(t.bone);return n===r||n.endsWith(r)||r.endsWith(n)}var pT={id:`default`,label:`Default`,prompt:`standing relaxed with arms hanging naturally at their sides`,bones:{lArm:[1.5632,.1164,-.2889],rArm:[1.5632,-.1164,.2889],lForeArm:[-.0076,3e-4,-.0874],rForeArm:[-.0076,-3e-4,.0874]}},mT=`cozyclay_poses`,hT=new WeakMap;function gT(e,t,n){let r=Math.cos(e/2),i=Math.cos(t/2),a=Math.cos(n/2),o=Math.sin(e/2),s=Math.sin(t/2),c=Math.sin(n/2);return{x:o*i*a+r*s*c,y:r*s*a-o*i*c,z:r*i*c+o*s*a,w:r*i*a-o*s*c}}function _T(e,t){return{x:e.w*t.x+e.x*t.w+e.y*t.z-e.z*t.y,y:e.w*t.y-e.x*t.z+e.y*t.w+e.z*t.x,z:e.w*t.z+e.x*t.y-e.y*t.x+e.z*t.w,w:e.w*t.w-e.x*t.x-e.y*t.y-e.z*t.z}}function vT(e){return{x:-e.x,y:-e.y,z:-e.z,w:e.w}}function yT(e){let t=1-2*(e.y*e.y+e.z*e.z),n=2*(e.x*e.y-e.w*e.z),r=2*(e.x*e.z+e.w*e.y),i=1-2*(e.x*e.x+e.z*e.z),a=2*(e.y*e.z-e.w*e.x),o=2*(e.y*e.z+e.w*e.x),s=1-2*(e.x*e.x+e.y*e.y),c=Math.asin(Math.max(-1,Math.min(1,r)));return Math.abs(r)<.9999999?[Math.atan2(-a,s),c,Math.atan2(-n,t)]:[Math.atan2(o,i),c,0]}function bT(e){if(!e||e.userData?.poseBind)return;let t=new Map;e.traverse(e=>{if(e.isBone){let n=e.quaternion,r=e.position;t.set(e,{x:n.x,y:n.y,z:n.z,w:n.w,position:{x:r.x,y:r.y,z:r.z}})}}),e.userData.poseBind=t}function xT(e){let t=e.userData&&e.userData.poseBind;if(t)return t;let n=hT.get(e);return n||(n=new Map,e.traverse(e=>{if(e.isBone){let t=e.quaternion,r=e.position;n.set(e,{x:t.x,y:t.y,z:t.z,w:t.w,position:{x:r.x,y:r.y,z:r.z}})}}),hT.set(e,n)),n}function ST(e,t){for(let n=e.parent;n;n=n.parent)if(t.includes(n))return!0;return!1}function CT(e,t){let n=uT.length,r=0;if(e&&t){let n=xT(e),i=new Map;e.traverse(e=>{if(e.isBone){for(let t of uT)if(fT(e.name,t)){let n=i.get(t.id);n||i.set(t.id,n=[]),n.push(e)}}});for(let e of uT){let a=t[e.id],o=i.get(e.id);if(!o||!Array.isArray(a)||a.length<3)continue;let s=gT(a[0],a[1],a[2]),c=[];for(let e of o){if(c.length&&ST(e,c))continue;c.push(e);let t=_T(s,n.get(e)??n.get(o[0])??{x:0,y:0,z:0,w:1});e.quaternion.set(t.x,t.y,t.z,t.w)}r++}e.updateMatrixWorld(!0)}return{applied:r,total:n}}function wT(e){let t={};if(e){let n=xT(e),r=new Map;e.traverse(e=>{if(e.isBone){for(let t of uT)if(!r.has(t.id)&&fT(e.name,t)){r.set(t.id,e);break}}});for(let e of uT){let i=r.get(e.id);if(i){let r=i.quaternion,a=n.get(i),o=a?_T({x:r.x,y:r.y,z:r.z,w:r.w},vT(a)):{x:r.x,y:r.y,z:r.z,w:r.w};t[e.id]=yT(o)}}}return t}function TT(e){let t=uT.find(e=>e.id===`hips`),n=null;return e.traverse(e=>{!n&&e.isBone&&fT(e.name,t)&&(n=e)}),n}function ET(e){if(!e)return 0;let t=TT(e);if(!t)return 0;let n=xT(e).get(t);return n?.position?t.position.y-n.position.y:0}function DT(e){if(!e)return;let t=xT(e);e.traverse(e=>{if(!e.isBone)return;let n=t.get(e)?.position;n&&e.position.set(n.x,n.y,n.z)}),e.updateMatrixWorld(!0)}function OT(e,t=0){if(!e)return;let n=TT(e);if(!n)return;let r=xT(e).get(n);r?.position&&(n.position.y=r.position.y+(Number.isFinite(t)?t:0),n.updateMatrixWorld(!0))}function kT(){try{let e=localStorage.getItem(mT);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>e&&typeof e==`object`&&typeof e.id==`string`&&e.bones&&typeof e.bones==`object`):[]}catch{return[]}}function AT(e){try{return localStorage.setItem(mT,JSON.stringify(e)),!0}catch{return!1}}var jT=100,MT=new WeakMap;function NT(e,t){let n=MT.get(e);if(n&&n.key===t.join())return n;let r=new Map;e.traverse(e=>{if(!e.isBone)return;let t=dT(e.name);r.has(t)||r.set(t,e)});let i=t.map(e=>{let t=dT(e);for(let[e,n]of r)if(e===t||e.endsWith(t))return n;return null}),a=e.userData?.poseBind,o=i.map(e=>{let t=e&&a?.get(e)?.position;return e?t?[t.x,t.y,t.z]:e.position.toArray():null});return n={key:t.join(),bones:i,bindPos:o,hips:t.indexOf(`Hips`)},MT.set(e,n),n}var PT=e=>e?.schema===`cozyclay.take.v3`;function FT(e,t,n){if(!e||!t)return;let{bones:r,bindPos:i,hips:a}=NT(e,t.bones),o=Math.max(0,Math.min(t.frameCount-1,Math.round(n)||0)),s=t.bones.length;for(let e=0;e<s;e++){let n=r[e];if(!n)continue;let c=(o*s+e)*4;n.quaternion.set(t.rot[c],t.rot[c+1],t.rot[c+2],t.rot[c+3]),e===a?n.position.set(t.hips[o*3]*jT,t.hips[o*3+1]*jT,t.hips[o*3+2]*jT):n.position.set(i[e][0],i[e][1],i[e][2])}e.updateMatrixWorld(!0)}var IT=.1,LT=4,RT=.1,zT=e=>Number((Math.round(Number(e)/RT)*RT).toFixed(1)),BT=e=>e.sourceEnd-e.sourceStart+1,VT=e=>Math.max(1,Math.round(BT(e)/e.speed));function HT(e){if(!Number.isInteger(e)||e<1)throw Error(`createTakeEdit: frames must be a positive integer`);return[{id:`motion-0`,sourceStart:0,sourceEnd:e-1,speed:1}]}var UT=e=>Array.isArray(e)?e.reduce((e,t)=>e+VT(t),0):0;function WT(e){let t=0;return e.map(e=>{let n=VT(e),r={...e,timelineStart:t,timelineEnd:t+n-1,timelineFrames:n};return t+=n,r})}function GT(e,t){let n=WT(e),r=Math.max(0,Math.min(Number.isFinite(t)?t:0,n.at(-1).timelineEnd)),i=n.find(e=>r<=e.timelineEnd)??n.at(-1);return i.timelineFrames<=1?i.sourceStart:i.sourceStart+(r-i.timelineStart)/(i.timelineFrames-1)*(i.sourceEnd-i.sourceStart)}function KT(e,t){let n=WT(e).find(e=>t>=e.sourceStart&&t<=e.sourceEnd);return n?n.sourceEnd===n.sourceStart?n.timelineStart:Math.round(n.timelineStart+(t-n.sourceStart)/(n.sourceEnd-n.sourceStart)*(n.timelineFrames-1)):null}var qT=(e,t,n)=>KT(t,GT(e,n));function JT(e,t,n){let r=new Map;for(let i of[...e].sort((e,t)=>e.frame-t.frame)){let e=qT(t,n,i.frame);e!==null&&!r.has(e)&&r.set(e,{...i,frame:e})}return[...r.values()]}function YT(e,t){let n=WT(e),r=Math.round(t);if(r<=0||r>=UT(e))return e;let i=n.findIndex(e=>r>e.timelineStart&&r<=e.timelineEnd);if(i<0)return e;let a=n[i],o=Math.max(a.sourceStart+1,Math.min(a.sourceEnd,Math.round(GT(e,r))));if(o>a.sourceEnd)return e;let s=[...e];return s.splice(i,1,{id:`${a.id}-a`,sourceStart:a.sourceStart,sourceEnd:o-1,speed:a.speed},{id:`${a.id}-b`,sourceStart:o,sourceEnd:a.sourceEnd,speed:a.speed}),s}function XT(e,t,n){let r=zT(n);if(!Number.isFinite(r)||r<IT||r>LT)throw Error(`speed must be between ${IT} and ${LT} in ${RT} steps`);return e.map(e=>e.id===t?{...e,speed:r}:e)}function ZT(e,t){if(e.length<2)return e;let n=e.filter(e=>e.id!==t);return n.length===e.length?e:n}function QT(e,t){let n=BT(e)/Math.max(1,Math.round(Number(t)||1));return zT(Math.min(LT,Math.max(IT,n)))}function $T(e,t,n){let r=UT(e);if(!Number.isInteger(t)||!Number.isInteger(n)||t<0||n>=r||t>n)throw Error(`trim range ${t}..${n} is outside 0..${r-1}`);return WT(e).flatMap(r=>{let i=Math.max(t,r.timelineStart),a=Math.min(n,r.timelineEnd);if(i>a)return[];let o=Math.max(r.sourceStart,Math.ceil(GT(e,i)-1e-9)),s=Math.min(r.sourceEnd,Math.floor(GT(e,a)+1e-9));return o<=s?[{id:`${r.id}-t${o}`,sourceStart:o,sourceEnd:s,speed:r.speed}]:[]})}var eE=(e,t)=>!e||e.length===1&&e[0].sourceStart===0&&e[0].sourceEnd===t-1&&e[0].speed===1;function tE(e,t){return!Array.isArray(e)||!e.length?null:e.every(e=>e&&typeof e.id==`string`&&Number.isInteger(e.sourceStart)&&Number.isInteger(e.sourceEnd)&&e.sourceStart>=0&&e.sourceStart<=e.sourceEnd&&(!Number.isFinite(t)||e.sourceEnd<t)&&Number.isFinite(e.speed)&&e.speed>=IT&&e.speed<=LT)?e.map(({id:e,sourceStart:t,sourceEnd:n,speed:r})=>({id:e,sourceStart:t,sourceEnd:n,speed:r})):null}function nE(e,t,n,r,i,a,o){let s=n[r]*i[a]+n[r+1]*i[a+1]+n[r+2]*i[a+2]+n[r+3]*i[a+3]<0?-1:1,c=0;for(let l=0;l<4;l++)e[t+l]=n[r+l]*(1-o)+i[a+l]*s*o,c+=e[t+l]**2;c=Math.sqrt(c)||1;for(let n=0;n<4;n++)e[t+n]/=c}function rE(e,t,n,r,i,a,o,s){for(let c=0;c<s;c++)e[t+c]=n[r+c]+(i[a+c]-n[r+c])*o}function iE(e){let t=e&&!e.editRendered?tE(e.edit,e.frameCount):null;if(!t||eE(t,e.frameCount))return e;let n=UT(t),r=e.bones.length,i=e.frameCount,a=Array.from({length:n},(e,n)=>{let r=GT(t,n),a=Math.min(i-1,Math.floor(r));return{i0:a,i1:Math.min(i-1,a+1),t:r-a,near:Math.min(i-1,Math.round(r))}}),o=new Float32Array(n*r*4),s=new Float32Array(n*3);a.forEach(({i0:t,i1:n,t:i},a)=>{for(let s=0;s<r;s++)nE(o,(a*r+s)*4,e.rot,(t*r+s)*4,e.rot,(n*r+s)*4,i);rE(s,a*3,e.hips,t*3,e.hips,n*3,i,3)});let c=Object.fromEntries(Object.entries(e.objects??{}).map(([e,t])=>{let r={};t.pos&&(r.pos=new Float32Array(n*3),a.forEach(({i0:e,i1:n,t:i},a)=>rE(r.pos,a*3,t.pos,e*3,t.pos,n*3,i,3))),t.quat&&(r.quat=new Float32Array(n*4),a.forEach(({i0:e,i1:n,t:i},a)=>nE(r.quat,a*4,t.quat,e*4,t.quat,n*4,i))),t.lvl&&(r.lvl=new Float32Array(n),a.forEach(({i0:e,i1:n,t:i},a)=>rE(r.lvl,a,t.lvl,e,t.lvl,n,i,1)));for(let e of[`vis`,`hold`])t[e]&&(r[e]=new Uint8Array(n),a.forEach(({near:n},i)=>{r[e][i]=t[e][n]}));return[e,r]}));return{...e,frameCount:n,frames:n,rot:o,hips:s,objects:c,edit:t,editRendered:!0}}var aE=`cozyclay.take.v3`,oE=`cozyclay.motion-spec.v1`,sE=24,cE=e=>!!e&&typeof e==`object`&&!Array.isArray(e),lE=e=>Array.isArray(e)&&e.length===3&&e.every(Number.isFinite);function uE(e,t=[]){return!PT(e)||!cE(e.spec)?null:structuredClone({schema:aE,rig:e.rig,spec:e.spec,placement:{position:e.placement?.position??[0,0,0],yaw:e.placement?.yaw??0},scene:Nl(t)})}function dE(e){if(!cE(e)||e.schema!==aE||typeof e.rig!=`string`||!cE(e.spec)||e.spec.schema!==oE||!Number.isFinite(e.spec.frames)||!cE(e.placement)||!lE(e.placement.position)||!Number.isFinite(e.placement.yaw))return null;let t=cE(e.scene?.objects)?e.scene.objects:{},n=cE(e.scene?.others)?{others:e.scene.others}:{};return structuredClone({schema:aE,rig:e.rig,spec:e.spec,placement:{position:e.placement.position,yaw:e.placement.yaw},scene:{objects:t,...n},...typeof e.takeId==`string`&&e.takeId?{takeId:e.takeId}:{},...tE(e.edit,e.spec.frames)?{edit:tE(e.edit,e.spec.frames)}:{}})}var fE=e=>e?.source?{...e.source,takeId:e.studioTakeId,...e.edit?{edit:e.edit}:{}}:null;function pE(e){let t=lT(e?.rig);if(!t||!cE(e.spec))return null;let{out:n}=rT({fps:sE,...e.spec},{sk:t,scene:e.scene??{objects:{}}},{lenient:!0}),r=aT(t,n,e.placement,{spec:e.spec,prompt:e.spec.label??``});return{...r,frames:r.frameCount}}var mE=`cozyclay.grid-view.v1`,hE=`#232428`,gE=`#e7e8eb`,_E=e=>e===`light`?gE:hE,vE=hE,yE=Object.freeze({color:vE,near:30,far:54}),bE=Object.freeze({minor:`#3d4046`,major:`#4c5058`,axisX:`#b3454f`,axisZ:`#3f6bb0`});function xE(e){try{return e?.getItem(mE)===`1`}catch{return!1}}function SE(e,t){try{e?.setItem(mE,t?`1`:`0`)}catch{}}var CE=.8,wE=.085,TE=8,EE=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,DE=e=>[1,3,5].map(t=>EE(parseInt(e.slice(t,t+2),16)/255)),OE=([e,t,n])=>.2126*e+.7152*t+.0722*n,kE=(e,t,n)=>e.map((e,r)=>e+(t[r]-e)*n),AE=(e,t)=>e.map(e=>e*t),jE=e=>e.map(e=>Number(e.toFixed(5))),ME=e=>e<=0?0:1-(1-Math.min(1,e/60))**2;function NE(e,t,n){if(!(e.envLight>0))return null;let r=DE(n),i=DE(e.skyTop??n),a=DE(e.hemiSky),o=0,s=0;for(let e=0;e<90;e++){let t=e+.5,n=Math.cos(t*Math.PI/180);o+=OE(kE(r,i,ME(t)))*n,s+=n}let c=o/s,l=OE(a),[u,d]=c>1e-6?[AE(r,l/c),AE(i,l/c)]:[a,a],f=Math.hypot(t.x,t.y,t.z)||1,p=DE(t.color??`#ffffff`),m=OE(p)||1,h=CE*(1-.6*e.shadowSoftness);return{horizon:jE(u),zenith:jE(d),ground:jE(DE(e.hemiGround)),sun:{direction:jE([t.x/f,t.y/f,t.z/f]),color:jE(AE(p,h*l/(2*wE)/m))}}}function PE(e,[t,n,r]){let i=Math.asin(Math.max(-1,Math.min(1,n)))*180/Math.PI,a=kE(e.horizon,e.zenith,ME(i)),o=i>=0?a:kE(e.horizon,e.ground,Math.min(1,-i/TE)),[s,c,l]=e.sun.direction,u=t*s+n*c+r*l,d=Math.exp((u-1)/wE);return o.map((t,n)=>t+e.sun.color[n]*d)}function FE(e,t=128,n=64){let r=new Float32Array(t*n*4);for(let i=0;i<n;i++){let a=((i+.5)/n-.5)*Math.PI,o=Math.cos(a),s=Math.sin(a);for(let n=0;n<t;n++){let a=((n+.5)/t-.5)*2*Math.PI,c=PE(e,[Math.cos(a)*o,s,Math.sin(a)*o]);r.set([...c,1],(i*t+n)*4)}}return r}var IE=Object.freeze([`studio`,`day`,`overcast`,`golden`,`dusk`,`night`,`interior`,`stage`]),LE=/^#[0-9a-fA-F]{6}$/,RE=e=>!!e&&typeof e==`object`&&!Array.isArray(e),zE=(e,t)=>typeof e==`string`&&LE.test(e)?e:t,BE=e=>g(e),VE=(e,t,{min:n,max:r})=>typeof e==`number`&&Number.isFinite(e)?Math.max(n,Math.min(r,e)):t,HE=Object.freeze({x:6,y:9,z:4,intensity:1.12,warmth:.5,color:null}),UE=Object.freeze({preset:`studio`,sky:null,skyTop:null,ambient:1,hemiSky:`#ffffff`,hemiGround:`#5a5d64`,fill:1,fog:0,exposure:1,shadowSoftness:0,envLight:0,ao:0,...et()}),WE=[`fill`,`fog`,`exposure`,`shadowSoftness`,`envLight`,`ao`];function GE(e){let t=RE(e)?e:{};return{...Object.fromEntries([`x`,`y`,`z`,`intensity`,`warmth`].map(e=>[e,VE(t[e],HE[e],BE(`stage.keyLight.${e}`))])),color:zE(t.color,null)}}function KE(e){let t=RE(e)?e:{},n=e=>VE(t[e],UE[e],BE(`stage.lighting.${e}`));return{preset:IE.includes(t.preset)?t.preset:UE.preset,sky:zE(t.sky,null),skyTop:zE(t.skyTop,null),ambient:n(`ambient`),hemiSky:zE(t.hemiSky,UE.hemiSky),hemiGround:zE(t.hemiGround,UE.hemiGround),...Object.fromEntries(WE.map(e=>[e,n(e)])),...et(t)}}var qE=(e,t)=>Object.freeze({lighting:Object.freeze({...UE,...e}),keyLight:Object.freeze(t)}),JE=Object.freeze({studio:qE({},{...HE}),day:qE({sky:`#bcd2e8`,skyTop:`#4f86c6`,ambient:1.15,hemiSky:`#c4dcff`,hemiGround:`#6b6253`,fill:.7,fog:.12,shadowSoftness:.15,envLight:1,ao:.8},{x:5,y:14,z:7,intensity:2.1,color:`#fff3df`}),overcast:qE({sky:`#c2c7ce`,skyTop:`#8f97a3`,ambient:1.9,hemiSky:`#e3e8ef`,hemiGround:`#5c5f64`,fill:1.2,fog:.3,exposure:1.05,shadowSoftness:1,envLight:1,ao:1},{x:2,y:14,z:3,intensity:.55,color:`#e8ecf2`}),golden:qE({sky:`#f0a868`,skyTop:`#6a8cc0`,ambient:.75,hemiSky:`#9fb3d6`,hemiGround:`#6e5136`,fill:.45,fog:.3,shadowSoftness:.35,envLight:1,ao:.8},{x:9,y:3.2,z:4,intensity:1.9,color:`#ffad5c`}),dusk:qE({sky:`#8a6f8c`,skyTop:`#18223f`,ambient:.8,hemiSky:`#5b6c9c`,hemiGround:`#29242e`,fill:.35,fog:.4,shadowSoftness:.6,envLight:1,ao:.8},{x:-9,y:1.8,z:-4,intensity:.7,color:`#ff9466`}),night:qE({sky:`#0b1426`,skyTop:`#020408`,ambient:.6,hemiSky:`#34507f`,hemiGround:`#0a0c12`,fill:.25,fog:.45,shadowSoftness:.75,envLight:1,ao:.8},{x:-6,y:6.5,z:.5,intensity:.6,color:`#9db6e6`}),interior:qE({sky:`#2b2621`,ambient:.7,hemiSky:`#ffe2bf`,hemiGround:`#3d3128`,fill:.55,fog:.35,shadowSoftness:.55,envLight:1,ao:.9},{x:2,y:4.5,z:2.5,intensity:1.35,color:`#ffd29c`}),stage:qE({sky:`#000000`,ambient:0,hemiSky:`#000000`,hemiGround:`#000000`,fill:0,fog:.7,shadowSoftness:.2,ao:.6},{x:1.5,y:9,z:3,intensity:2.6,color:`#fff0d8`})}),YE=Object.freeze([`keyLight.position`,`keyLight.intensity`,`keyLight.color`,...[`sky`,`skyTop`,`ambient`,`hemiSky`,`hemiGround`,`fill`,`fog`,`exposure`,`shadowSoftness`,`envLight`,`ao`,`hdr`].map(e=>`lighting.${e}`)]);function XE(e,t,n=[]){let r=JE[t];if(!r)throw Error(`Unknown lighting preset: ${t}`);let i={lighting:KE(e?.lighting),keyLight:GE(e?.keyLight)},a={...r.lighting,preset:t};for(let e of n)e.startsWith(`lighting.`)&&(a[e.slice(9)]=i.lighting[e.slice(9)]);if(n.includes(`lighting.hdr`))for(let e of tt)a[e]=i.lighting[e];let o={...i.keyLight,...r.keyLight};return n.includes(`keyLight.position`)&&Object.assign(o,{x:i.keyLight.x,y:i.keyLight.y,z:i.keyLight.z}),n.includes(`keyLight.intensity`)&&(o.intensity=i.keyLight.intensity),n.includes(`keyLight.color`)&&Object.assign(o,{color:i.keyLight.color,warmth:i.keyLight.warmth}),{lighting:KE(a),keyLight:GE(o)}}function ZE(e){let t=(1-e)**2;return{near:2+53*t,far:14+81*t}}function QE({lighting:e,keyLight:t,theme:n=`dark`,grid:r=!1}){let i=KE(e),a=GE(t),o=i.sky===null&&i.hdr&&i.hdrBackground?{...i,sky:_E(`dark`)}:i,s=o.sky===null,c=r&&s,l=s&&n===`light`,u=s?r?vE:_E(n):o.sky,d=ZE(o.fog),f=c?yE:{near:18,far:54},p=a.intensity/1.12,m=Math.min(1,.35+.65*p),h=.9*m*o.ambient,g=Math.max(0,1-o.envLight);return{sky:u,skyTop:o.skyTop,fog:{color:u,near:Math.min(f.near,d.near),far:Math.min(f.far,d.far)},captureFog:o.fog>0?d:null,hemi:{sky:c?`#ffffff`:o.hemiSky,ground:c?`#3a3d42`:l?`#d6d8de`:o.hemiGround,intensity:h*g},env:NE(o,a,u),envIntensity:h*o.envLight/Math.PI,hdr:o.hdr?{id:o.hdr,rotation:o.hdrRotation,intensity:o.hdrIntensity,background:o.hdrBackground,envIntensity:o.envLight*o.hdrIntensity}:null,ao:o.ao,ambient:(c?.34:l?.32:.18)*m*o.ambient,fill:.36*p*o.fill,rim:.22*p*o.fill,exposure:o.exposure,shadowRadius:1+o.shadowSoftness*7,shadowNormalBias:.02+o.shadowSoftness*.08,lightDeck:l}}var $E=e=>Math.round(e*24/20),eD=g(`character.position`),tD=g(`character.scale`),nD=`cozyclay.scenes.v5`,rD=`cozyclay.scenes.v5.quarantine`,iD=`cozyclay.scenes.v4`,aD=`cozyclay.scenes.v3`,oD=`cozyclay.scenes.v2`,sD=`cozyclay.scenes.v1`,cD=`cozyclay.scene.v1`,lD=Object.freeze([iD,aD,oD,sD]),uD=Object.freeze([`y-bot-tpose`,`x-bot-tpose`]),dD=`y-bot-tpose`,fD=`proxy-figure`,pD=Object.freeze([...uD,fD]),mD=Object.freeze([`stand`,`sit`,`lie`]);function hD(e){return e?.model===fD}var gD=`a young woman in a tan coat`,_D=`a man in a dark coat`,vD=Object.freeze({characters:Object.freeze([Object.freeze({id:`char-a`,model:dD,x:0,z:0,rot:0,hidden:!1,pose:null,subject:gD})]),hasCharSheet:!1,environmentImage:null,environment:`a sunlit modern living room`,style:`moody cinematic lighting, 35mm film look`,hasEnvSheet:!1,shotAspect:`16:9`,cameraPresetId:null,sensorId:Sr}),yD=1,bD=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function xD(e,t=new WeakMap){if(e===null||typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e!=`object`)return null;if(t.has(e))return t.get(e);if(Array.isArray(e)){let n=[];t.set(e,n);for(let r of e)n.push(xD(r,t));return n}let n={};t.set(e,n);for(let[r,i]of Object.entries(e))Object.defineProperty(n,r,{value:xD(i,t),enumerable:!0,writable:!0,configurable:!0});return n}var SD=(e,t)=>Number.isFinite(e)?e:t;function CD(e){return typeof e==`string`&&e.startsWith(`data:image/`)?e:null}tD.min,tD.max;var wD=e=>Number.isFinite(e)&&e>0?Math.max(tD.min,Math.min(tD.max,e)):1;function TD(e=null,t=0){let n=bD(e)?e:{};return{id:typeof n.id==`string`&&n.id?n.id:`char-${t+1}`,model:pD.includes(n.model)?n.model:dD,posture:mD.includes(n.posture)?n.posture:`stand`,x:Math.max(eD.min.x,Math.min(eD.max.x,SD(n.x,0))),y:Math.max(eD.min.y,Math.min(eD.max.y,SD(n.y,0))),z:Math.max(eD.min.z,Math.min(eD.max.z,SD(n.z,0))),rot:Ua(SD(n.rot,0)),hidden:n.hidden===!0,parent:typeof n.parent==`string`&&n.parent?n.parent:null,tint:typeof n.tint==`string`&&/^#[0-9a-fA-F]{6}$/.test(n.tint)?n.tint:null,pose:bD(n.pose)?xD(n.pose):null,identityImage:CD(n.identityImage),scale:wD(n.scale),subject:typeof n.subject==`string`?n.subject:t===0?gD:_D,layer:DD(n.layer),ikEdits:ED(n.ikEdits),motionTake:dE(n.motionTake)}}function ED(e){if(!bD(e))return null;let t=(e,t)=>Array.isArray(e)?e.filter(t).map(e=>xD(e)):[],n=t(e.keys,e=>bD(e)&&Number.isFinite(e.frame)&&bD(e.tracks)),r=t(e.pins,e=>bD(e)&&typeof e.id==`string`),i=t(e.pinResiduals,e=>Array.isArray(e)&&typeof e[0]==`string`);return n.length||r.length?{keys:n,pins:r,pinResiduals:i}:null}function DD(e){return{waypoints:Gr(xD((bD(e)?e:{}).waypoints),`waypoint`)}}function OD(e){let t=bD(e)?e:{},n=new Set;return{...t,characters:Array.isArray(t.characters)?t.characters.map(e=>({...e,layer:{waypoints:Gr(xD(e.layer?.waypoints),`waypoint`,n)}})):t.characters}}function kD(){return{waypoints:[]}}function AD(e){if(!bD(e))return e;let t={...xD(e)};if(Array.isArray(e.waypoints)){let n=new Map;for(let t of e.waypoints){if(!bD(t)||!Number.isFinite(t.frame))continue;let e=Math.max(0,$E(Math.round(t.frame)));n.set(e,{...xD(t),frame:e})}t.waypoints=[...n.values()].sort((e,t)=>e.frame-t.frame)}return t}function jD(e){return!bD(e)||!Array.isArray(e.characters)?e:{...e,characters:e.characters.map(e=>bD(e)&&bD(e.layer)?{...e,layer:AD(e.layer)}:e)}}function MD(e){let t=[TD({...bD(e.charA)?e.charA:{},id:`char-a`,pose:e.poseA??null,subject:e.subject??`a young woman in a tan coat`},0)];return e.showB===!0&&t.push(TD({...bD(e.charB)?e.charB:{},id:`char-b`,pose:e.poseB??null,subject:e.subject2??`a man in a dark coat`},1)),t}var ND=new Set([`characters`,`hasCharSheet`,`environmentImage`,`environment`,`style`,`hasEnvSheet`,`shotAspect`,`cameraPresetId`,`sensorId`,`keyLight`,`lighting`,`charA`,`charB`,`showB`,`poseA`,`poseB`,`subject`,`subject2`]);function PD(e=null){let t=bD(e)?e:{},n=Array.isArray(t.characters)&&t.characters.length?t.characters.map((e,t)=>TD(e,t)):MD(t),r={};for(let[e,n]of Object.entries(t))ND.has(e)||(r[e]=xD(n));return{...r,characters:n,hasCharSheet:t.hasCharSheet===!0,environmentImage:CD(t.environmentImage),environment:typeof t.environment==`string`?t.environment:vD.environment,style:typeof t.style==`string`?t.style:vD.style,hasEnvSheet:t.hasEnvSheet===!0,shotAspect:[`16:9`,`2.39:1`,`9:16`,`1:1`,`4:3`,`12:7`,`fal 480P`].includes(t.shotAspect)?t.shotAspect:vD.shotAspect,cameraPresetId:typeof t.cameraPresetId==`string`&&t.cameraPresetId?t.cameraPresetId:vD.cameraPresetId,sensorId:Object.hasOwn(xr,t.sensorId??t.sensorFormat)?t.sensorId??t.sensorFormat:vD.sensorId,keyLight:GE(t.keyLight),lighting:KE(t.lighting)}}function FD(e){let t=new Set(e.map(e=>e?.id)),n;do n=`scene-${Date.now().toString(36)}-${yD++}`;while(t.has(n));return n}function ID(e,t){let n=e=>typeof e==`string`?e.normalize(`NFKC`).toLowerCase():``,r=new Set(t.map(e=>n(e?.name))),i=e=>r.has(n(e)),a=typeof e==`string`&&e.trim()?e.trim():`SCENE 01`;if(!i(a))return a;let o=a.match(/^(.*?)(\d+)$/);if(o){let[,e,t]=o;for(let n=Number(t)+1;;n+=1){let r=`${e}${String(n).padStart(t.length,`0`)}`;if(!i(r))return r}}for(let e=2;;e+=1){let t=`${a} ${e}`;if(!i(t))return t}}function LD(e=`SCENE 01`,t=[]){return{id:FD(t),name:ID(e,t),objects:[],shotDocument:null,stage:PD()}}function RD(e,t=`SCENE 01`){let n=Array.isArray(e)?e:[];return[...n,LD(t,n)]}function zD(e,t){if(!Array.isArray(e)||t<0||t>=e.length)return e;let n=e[t],r=LD(n.name,e);return r.objects=xD(n.objects),r.shotDocument=xD(n.shotDocument),r.stage=PD(n.stage),[...e.slice(0,t+1),r,...e.slice(t+1)]}function BD(e,t,n){if(!Array.isArray(e)||t<0||t>=e.length||typeof n!=`string`||!n.trim())return e;let r=ID(n,e.filter((e,n)=>n!==t));return r===e[t].name?e:e.map((e,n)=>n===t?{...e,name:r}:e)}function VD(e,t){return!Array.isArray(e)||e.length<=1||t<0||t>=e.length?e:e.filter((e,n)=>n!==t)}function HD(e,t){if(!Array.isArray(e)||!e.length)return-1;let n=e.findIndex(e=>e.id===t);return n<0?0:n}function UD(){let e=LD();return{version:5,activeSceneId:e.id,scenes:[e]}}function WD(e,t,n,r,i=!1){if(!bD(e)||typeof e.id!=`string`||!e.id||!Array.isArray(e.objects)||t.some(t=>t.id===e.id))return null;let a=OD(PD(xD(bD(e.stage)?e.stage:r)));return{id:e.id,name:ID(typeof e.name==`string`?e.name:`SCENE ${String(n).padStart(2,`0`)}`,t),objects:e.objects.filter(bD).map(e=>xD(e)),shotDocument:xD(e.shotDocument??null),stage:i?jD(a):a}}function GD(e,t=vD,n=!1){let r=[],i=0;for(let a of e.scenes){let e=WD(a,r,r.length+1,t,n);e?r.push(e):i+=1}return r.length||r.push(LD()),{document:{version:5,activeSceneId:r[HD(r,e.activeSceneId)].id,scenes:r},dropped:i}}function KD(e){try{return JSON.parse(e)}catch{return null}}function qD(e,t=null){if(e==null||e===``){if(t!=null&&t!==``){let e=KD(t);if(!bD(e)||e.version!==1||!Array.isArray(e.objects))return{status:`corrupt`,document:UD(),dropped:0,quarantineRaw:t};let n=UD();return n.scenes[0].objects=e.objects.filter(bD).map(e=>xD(e)),{status:`migrated`,document:n,dropped:e.objects.length-n.scenes[0].objects.length}}return{status:`absent`,document:UD(),dropped:0}}let n=KD(e);if(!bD(n)||!Number.isInteger(n.version)||n.version<1)return{status:`corrupt`,document:UD(),dropped:0,quarantineRaw:e};if(n.version>5)return{status:`future`,document:null,dropped:0};if(!Array.isArray(n.scenes))return{status:`corrupt`,document:UD(),dropped:0,quarantineRaw:e};let r=n.version<5,i=n.version<4,a=GD(n,PD(n.stage),i);return{status:r?`migrated`:`valid`,...a}}function JD(e){if(!Number.isInteger(e.version)||e.version>=5)return e;let t=e.version<4;return{...e,version:5,scenes:e.scenes.map(e=>{let n=t?jD(e.stage):e.stage;return{...e,stage:bD(n)&&Array.isArray(n.characters)?{...n,characters:n.characters.map(e=>bD(e)&&!mD.includes(e.posture)?{...e,posture:`stand`}:e)}:n}})}}function YD(e){return JSON.stringify({version:5,activeSceneId:e.activeSceneId,scenes:e.scenes})}function XD(e){let t=e.getItem(nD);for(let n of lD){if(t)break;t=e.getItem(n)}let n=t?null:e.getItem(cD),r=qD(t,n);return r.status===`corrupt`&&r.quarantineRaw!==void 0&&e.setItem(rD,r.quarantineRaw),r.status===`migrated`&&e.setItem(nD,YD(r.document)),r}var ZD=Object.freeze([`storyboard`,`animation`]),QD=`animation`;function $D(e){return ZD.includes(e)?e:QD}var eO=`.cclayproject`,tO=`cozyclay.workflow.v1`,nO=`cozyclay.project-handle.v1`,rO=`kv`,iO=`lastProjectHandle`,aO=268435456;function oO(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function sO(e,t=0){if(e===null||typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Number.isFinite(e)?e:null;if(t>32)return null;if(Array.isArray(e))return e.map(e=>sO(e,t+1));if(!oO(e))return null;let n={};for(let[r,i]of Object.entries(e))r!==`__proto__`&&r!==`constructor`&&r!==`prototype`&&i!==void 0&&typeof i!=`function`&&typeof i!=`symbol`&&(n[r]=sO(i,t+1));return n}function cO(e){return{x:Number.isFinite(e?.x)?e.x:0,y:Number.isFinite(e?.y)?e.y:0}}function lO(){return{version:1,nodes:[],edges:[]}}function uO(e){if(!oO(e)||e.version!==void 0&&e.version!==1)return lO();let t=[],n=new Set;for(let r of Array.isArray(e.nodes)?e.nodes:[]){if(!oO(r)||typeof r.id!=`string`||!r.id.trim()||n.has(r.id))continue;let e=sO(r.data);t.push({id:r.id,type:typeof r.type==`string`&&r.type.trim()?r.type:`default`,position:cO(r.position),data:oO(e)?e:{}}),n.add(r.id)}let r=[],i=new Set;for(let t=0;t<(Array.isArray(e.edges)?e.edges.length:0);t+=1){let a=e.edges[t];if(!oO(a)||typeof a.source!=`string`||typeof a.target!=`string`||!n.has(a.source)||!n.has(a.target))continue;let o=typeof a.id==`string`&&a.id.trim()?a.id:`${a.source}->${a.target}:${t}`;if(i.has(o))continue;let s={id:o,source:a.source,target:a.target};typeof a.sourceHandle==`string`&&a.sourceHandle&&(s.sourceHandle=a.sourceHandle),typeof a.targetHandle==`string`&&a.targetHandle&&(s.targetHandle=a.targetHandle);let c=sO(a.data);oO(c)&&(s.data=c),r.push(s),i.add(o)}return{version:1,nodes:t,edges:r}}function dO(e=globalThis.localStorage,{strict:t=!1}={}){try{return uO(JSON.parse(e?.getItem(`cozyclay.workflow.v1`)||`null`))}catch(e){if(t)throw e;return lO()}}function fO(e,t=globalThis.localStorage){let n=uO(e);try{t?.setItem(tO,JSON.stringify(n))}catch{}try{globalThis.dispatchEvent?.(new CustomEvent(`cozyclay:workflow-change`))}catch{}return n}function pO(e){return e instanceof ArrayBuffer?e:ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):null}function mO(e){let t=new Uint8Array(e),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(n)}function hO(e,t){if(typeof e!=`string`||e.length<4||e.length%4)return{code:`bad-base64`};if(e.length>Math.ceil(t/3)*4)return{code:`too-large`};let n=e.endsWith(`==`)?2:+!!e.endsWith(`=`);for(let t=0;t<e.length-n;t+=1){let n=e.charCodeAt(t);if(!(n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47))return{code:`bad-base64`}}let r=e.length/4*3-n;return r>t?{code:`too-large`}:{bytes:r}}function gO(e,t){let n=hO(e,t);if(n.code)return n;try{let t=atob(e),n=Uint8Array.from(t,e=>e.charCodeAt(0));return mO(n)===e?{buffer:n.buffer}:{code:`bad-base64`}}catch{return{code:`bad-base64`}}}function _O(e,t,n){let r=Error(`${n} (${e} bytes) exceeds the ${t}-byte limit.`);return r.code=`resources-too-large`,r.bytes=e,r.limit=t,r}function vO(e){let t=pO(e?.bytes),n=It({...e,bytes:t});return!n||n.bytes.byteLength>33554432?null:{record:{...n,bytes:mO(n.bytes)},bytes:n.bytes.byteLength}}function yO(e){let t=new Set,n=e=>{if(Array.isArray(e)){for(let t of e)n(t);return}if(oO(e)){Ot(e.assetRef)&&t.add(e.assetRef);for(let t of Object.values(e))n(t)}};return n(e),t}async function bO(e,t){let n=pO(e?.bytes);if(!n)return!1;try{return(Ye(e.id)?await lt(n,t):kt(e.id)?await Nt(n,t):await Mt(n,t))===e.id}catch{return!1}}var xO={"bad-id":`its id is not a content address`,duplicate:`the same id appears earlier in the file`,"bad-encoding":`its encoding is not base64`,"bad-base64":`its payload is not valid base64`,"length-mismatch":`its payload does not match the recorded byte length`,"too-large":`its payload exceeds the size limit`,"bad-record":`its metadata is incomplete`};function SO(e,t){let n=[];if(!Array.isArray(e))return n;let r=new Set;for(let i of e){let e=typeof i?.id==`string`?i.id:null;if(!At(e)){t(`image`,e,`bad-id`);continue}if(r.has(e)){t(`image`,e,`duplicate`);continue}let a=gO(i.bytes,bt);if(a.code){t(`image`,e,a.code);continue}let o=It({...i,bytes:a.buffer});if(!o){t(`image`,e,`bad-record`);continue}r.add(e),n.push(o)}return n}function CO({scenesDocument:e,workspaceLayout:t,customPoses:n,name:r,previsMode:i,assets:a,savedAt:o,workflow:s}){let c=new Map;for(let e of Array.isArray(a)?a:[]){let t=vO(e);t&&c.set(t.record.id,t)}let l=[],u=0,d=Ht(e?.scenes);for(let e of yO(s))d.add(e);for(let e of d){let t=c.get(e);t&&(l.push(t.record),u+=t.bytes)}if(u>268435456)throw _O(u,aO,`Embedded resources`);return{app:`cozyclay`,kind:`project`,version:5,name:typeof r==`string`&&r.trim()?r.trim():`Untitled`,previsMode:$D(i),...Number.isFinite(o)&&o>0?{savedAt:o}:{},scenes:e,workspace:t??null,poseLibrary:Array.isArray(n)?n:[],workflow:uO(s),resources:{assets:l}}}function wO(e){let t=structuredClone(e?.scenesDocument??{version:5,activeSceneId:null,scenes:[]});return t.scenes=(t.scenes??[]).map(e=>({...e,shotDocument:e.shotDocument&&typeof e.shotDocument==`object`?{...e.shotDocument,shots:Array.isArray(e.shotDocument.shots)?e.shotDocument.shots.map(e=>({...e,...e.kind===`still`?{kind:`clip`}:{}})):e.shotDocument.shots}:e.shotDocument})),CO({scenesDocument:t,workspaceLayout:structuredClone(e?.workspaceLayout??null),customPoses:structuredClone(e?.customPoses??[]),name:`${e?.name||`Untitled`} - ${P(`Animation`,`애니메이션`)}`,previsMode:`animation`,assets:e?.assets??[],workflow:structuredClone(e?.workflow??lO()),savedAt:Date.now()})}function TO(e){let t;try{t=JSON.parse(e)}catch{return{ok:!1,reason:`corrupt`}}if(!t||typeof t!=`object`)return{ok:!1,reason:`corrupt`};if(t.app!==`cozyclay`||t.kind!==`project`)return{ok:!1,reason:`not-a-project`};if(typeof t.version!=`number`)return{ok:!1,reason:`corrupt`};if(t.version>5)return{ok:!1,reason:`future`};let n=t.scenes;if(!n||typeof n!=`object`||n.version>5||!Array.isArray(n.scenes))return{ok:!1,reason:`scenes-invalid`};let r=[],i=[],a=SO(t.version>=4?t.resources?.assets:t.version>=2?t.assets:void 0,(e,t,n)=>{let a=`Skipped embedded ${e} ${t??`(no id)`}: ${xO[n]}.`;i.push({kind:e,id:t,code:n,message:a}),r.push(a)}),o=uO(t.workflow);return{ok:!0,warnings:r,problems:i,project:{name:typeof t.name==`string`&&t.name.trim()?t.name.trim():`Untitled`,previsMode:$D(t.previsMode),savedAt:Number.isFinite(t.savedAt)&&t.savedAt>0?t.savedAt:null,scenesDocument:{version:n.version,activeSceneId:n.activeSceneId??null,scenes:n.scenes},workspaceLayout:t.workspace&&typeof t.workspace==`object`?t.workspace:null,customPoses:Array.isArray(t.poseLibrary)?t.poseLibrary.filter(e=>e&&typeof e==`object`&&typeof e.id==`string`&&e.bones&&typeof e.bones==`object`):[],assets:a,workflow:o}}}function EO(){return typeof window<`u`&&typeof window.showSaveFilePicker==`function`&&typeof window.showOpenFilePicker==`function`}var DO=[{description:`CozyClay Project`,accept:{"application/json":[eO,`.json`]}}];async function OO(e){return await window.showSaveFilePicker({suggestedName:`${e||`Untitled`}${eO}`,types:DO})}async function kO(){let[e]=await window.showOpenFilePicker({types:DO,multiple:!1});return e}async function AO(e,t){let n=await e.createWritable();await n.write(t),await n.close()}async function jO(e){let t=await e.getFile();return{name:t.name.replace(/\.cclayproject$|\.json$/i,``),text:await t.text(),savedAt:t.lastModified}}function MO(e,t){let n=new Blob([e],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${t||`Untitled`}${eO}`,i.click(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}function NO(){return new Promise(e=>{let t=document.createElement(`input`);t.type=`file`,t.accept=`${eO},.json,application/json`,t.onchange=async()=>{let n=t.files?.[0];if(!n)return e(null);e({name:n.name.replace(/\.cclayproject$|\.json$/i,``),text:await n.text(),savedAt:n.lastModified})},t.oncancel=()=>e(null),t.click()})}function PO(){return new Promise((e,t)=>{let n=indexedDB.open(nO,1);n.onupgradeneeded=()=>n.result.createObjectStore(rO),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}async function FO(e,t){try{let n=await PO();await new Promise((r,i)=>{let a=n.transaction(rO,`readwrite`);a.objectStore(rO).put({handle:e,name:t},iO),a.oncomplete=r,a.onerror=()=>i(a.error)}),n.close()}catch{}}async function IO(){try{let e=await PO(),t=await new Promise((t,n)=>{let r=e.transaction(rO,`readonly`).objectStore(rO).get(iO);r.onsuccess=()=>t(r.result??null),r.onerror=()=>n(r.error)});return e.close(),t}catch{return null}}async function LO(){try{let e=await PO();await new Promise((t,n)=>{let r=e.transaction(rO,`readwrite`);r.objectStore(rO).delete(iO),r.oncomplete=t,r.onerror=()=>n(r.error)}),e.close()}catch{}}var RO=`recentProjects`,zO=`projectsDirectory`,BO=8,VO=`cozyclay.project-session.v1`;function HO(e=globalThis.localStorage){try{let t=JSON.parse(e?.getItem(`cozyclay.project-session.v1`)||`null`);if(!t||typeof t!=`object`)return null;let n=typeof t.name==`string`?t.name.trim():``;return n?{name:n,previsMode:$D(t.previsMode),updatedAt:Number.isFinite(t.updatedAt)?t.updatedAt:0}:null}catch{return null}}function UO(e,t=QD,n=globalThis.localStorage){let r=typeof e==`string`?e.trim():``;if(!r)return!1;try{return n?.setItem(VO,JSON.stringify({name:r,previsMode:$D(t),updatedAt:Date.now()})),!0}catch{return!1}}async function WO(e,t){try{let n=await PO();await new Promise((r,i)=>{let a=n.transaction(rO,`readwrite`);a.objectStore(rO).put(t,e),a.oncomplete=r,a.onerror=()=>i(a.error)}),n.close()}catch{}}async function GO(e){try{let t=await PO(),n=await new Promise((n,r)=>{let i=t.transaction(rO,`readonly`).objectStore(rO).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)});return t.close(),n}catch{return null}}async function KO(e,t){let n=await GO(RO)??[];await WO(RO,[{handle:e,name:t,openedAt:Date.now()},...n.filter(e=>e.name!==t)].slice(0,BO)),await FO(e,t)}async function qO(){return await GO(RO)??[]}async function JO(e){await WO(RO,(await GO(RO)??[]).filter(t=>t.name!==e))}function YO(){return typeof window<`u`&&typeof window.showDirectoryPicker==`function`}async function XO(){return window.showDirectoryPicker({mode:`readwrite`})}async function ZO(e){await WO(zO,{handle:e})}async function QO(){return(await GO(zO))?.handle??null}async function $O(e){let t=[];try{for await(let[n,r]of e.entries()){if(r.kind!==`file`||!n.endsWith(`.cclayproject`))continue;let e=await r.getFile();t.push({name:n.slice(0,-13),handle:r,lastModified:e.lastModified})}}catch{return[]}return t.sort((e,t)=>t.lastModified-e.lastModified)}async function ek(e){try{return await e.queryPermission({mode:`readwrite`})}catch{return`denied`}}async function tk(e){try{return await e.queryPermission({mode:`readwrite`})===`granted`?`granted`:await e.requestPermission({mode:`readwrite`})}catch{return`denied`}}var nk=t((e=>{var t=Ie();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),rk=t(((e,t)=>{t.exports=nk()})),ik=t((e=>{var t=Ie(),n=rk();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),ak=t(((e,t)=>{t.exports=ik()})),ok=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),sk=t(((e,t)=>{t.exports=ok()})),Q=e(Ie(),1),ck=Be(),$=sk();function lk(e){return e?typeof e.id==`string`&&kt(e.id)?!0:Ct(e.type):!1}function uk({getRecord:e=async e=>Xt(await fk(),e),putRecord:t=async e=>Yt(await fk(),e),createBitmap:n=(...e)=>createImageBitmap(...e),makeTexture:r=e=>new b(e)}={}){let i=new Map;function a(e){let t=i.get(e);return t||(t={texture:null,record:null,promise:null,listeners:new Set,generation:0,evicted:!1},i.set(e,t)),t}function o(e){for(let t of e.listeners)t(e.texture)}function s(e){e?.image?.close?.(),e?.dispose?.()}async function c(e){if(lk(e))return null;let t=r(await n(new Blob([e.bytes],{type:e.type}),{imageOrientation:`flipY`}));return t.flipY=!1,t.colorSpace=ue,t.generateMipmaps=!0,t.minFilter=ee,t.magFilter=oe,t.anisotropy=4,t.needsUpdate=!0,t.userData.assetId=e.id,t}function l(t){if(typeof t!=`string`||!t||kt(t))return Promise.resolve(null);let n=a(t);if(n.evicted)return Promise.resolve(null);if(n.texture)return Promise.resolve(n.texture);if(!n.promise){let r=n.generation;n.promise=(async()=>{let i=n.record??await e(t);if(!i||n.evicted||n.generation!==r||lk(i))return null;n.record=i;let a=await c(i);return n.evicted||n.generation!==r?(s(a),null):(n.texture=a,o(n),a)})().catch(e=>(console.warn(`[cozyclay] could not load image asset ${t}`,e),n.failed=!0,null)).finally(()=>{n.generation===r&&(n.promise=null)})}return n.promise}async function u(t){if(typeof t!=`string`||!t)return null;let n=a(t);return n.evicted?null:(n.record||=await e(t),n.record)}async function d(e){let n=await t(e),r=a(n.id),i=++r.generation;if(r.evicted=!1,s(r.texture),r.texture=null,r.record=n,r.promise=null,lk(n))return n;let l=await c(n);return!l||r.generation!==i?(s(l),n):(r.texture=l,o(r),n)}function f(e){let t=i.get(e);t&&(t.generation+=1,t.evicted=!0,s(t.texture),t.texture=null,t.record=null,t.promise=null,o(t))}function p(e,t){if(typeof e!=`string`||!e)return()=>{};let n=a(e);return n.listeners.add(t),n.texture?t(n.texture):l(e),()=>n.listeners.delete(t)}function m(){for(let e of i.values())s(e.texture);i.clear()}return{loadAssetTexture:l,assetRecord:u,rememberAsset:d,evictAssetTexture:f,subscribeToAssetTexture:p,clearAssetTextures:m}}var dk=null;function fk(){return dk||=Jt(),dk}var pk=uk();pk.loadAssetTexture;var mk=pk.assetRecord,hk=pk.rememberAsset,gk=pk.evictAssetTexture,_k=pk.subscribeToAssetTexture;function vk(e){let t=Array.from(e?.files??[]).find(e=>e.type.startsWith(`image/`));if(t)return t;for(let t of Array.from(e?.items??[]))if(t.kind===`file`&&t.type.startsWith(`image/`)){let e=t.getAsFile?.();if(e)return e}return null}async function yk(e){let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode.apply(null,t.subarray(e,e+32768));return`data:${e.type||`image/png`};base64,${btoa(n)}`}function bk(e,t){return{fileName:e.name&&e.name!==`image.png`?e.name:`pasted-${new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`)}.png`,mimeType:e.type||`image/png`,fileUrl:t,image_url:t,localPreview:!0,outputs:[{value:t}]}}function xk(e,t){return vk(t)?!e||typeof e.matches!=`function`||!(e.isContentEditable||e.matches(`[contenteditable=true]`)):!1}var Sk=1600,Ck=4194304,wk=.85,Tk=Object.freeze([`image/png`,`image/jpeg`,`image/webp`]),Ek=`Up to 4 images per message`,Dk=`Attach a PNG, JPEG or WebP image`,Ok=`That image could not be attached`,kk={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,webp:`image/webp`};function Ak(e){let t=String(e?.type??``).toLowerCase();return Tk.includes(t)?t:t?null:kk[String(e?.name??``).toLowerCase().match(/\.([a-z0-9]+)$/)?.[1]]??null}function jk(e){return Array.from(e?.types??[]).includes(`Files`)}function Mk(e){let t=Array.from(e?.files??[]);if(!t.length){let n=vk(e);n&&t.push(n)}let n=[],r=0;for(let e of t)Ak(e)?n.push(e):String(e?.type??``).startsWith(`image/`)&&(r+=1);return{images:n,unsupported:r}}function Nk(e){let t=String(e??``).slice(String(e??``).indexOf(`,`)+1);if(!t)return 0;let n=t.endsWith(`==`)?2:+!!t.endsWith(`=`);return Math.max(0,Math.floor(t.length*3/4)-n)}function Pk(e,t,n=Sk){let r=Math.max(e,t);if(!Number.isFinite(r)||r<=0)return null;if(r<=n)return{width:Math.round(e),height:Math.round(t),scaled:!1};let i=n/r;return{width:Math.max(1,Math.round(e*i)),height:Math.max(1,Math.round(t*i)),scaled:!0}}function Fk(e=[],t=[],n=4){let r=Math.max(0,n-e.length);return{attachments:[...e,...t.slice(0,r)],rejected:Math.max(0,t.length-r)}}var Ik=32768,Lk=e=>{let t=``;for(let n=0;n<e.length;n+=Ik)t+=String.fromCharCode.apply(null,e.subarray(n,n+Ik));return btoa(t)};async function Rk(e,t){let n=new Uint8Array(await e.arrayBuffer());return`data:${t||e.type||`image/jpeg`};base64,${Lk(n)}`}function zk(e,t){if(typeof OffscreenCanvas==`function`)return new OffscreenCanvas(e,t);throw Error(`this browser cannot resize images — OffscreenCanvas is unavailable`)}function Bk(e){let t=e.indexOf(`,`),n=e.slice(5,e.indexOf(`;`)),r=atob(e.slice(t+1)),i=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)i[e]=r.charCodeAt(e);return new Blob([i],{type:n})}async function Vk(e,{decode:t=globalThis.createImageBitmap,makeCanvas:n=zk,toBlob:r=Bk,maxBytes:i=Ck,maxDimension:a=Sk,quality:o=wk}={}){if(Nk(e)<=i)return e;if(typeof t!=`function`)throw Error(`this browser cannot decode images — createImageBitmap is unavailable`);let s=await t(r(e));try{let e=Pk(s.width,s.height,a);if(!e)throw Error(`that image has no usable size`);let t=n(e.width,e.height),r=t.getContext(`2d`);if(!r)throw Error(`this browser cannot resize images — no 2D context`);return r.drawImage(s,0,0,e.width,e.height),await Rk(await t.convertToBlob({type:`image/jpeg`,quality:o}),`image/jpeg`)}finally{s?.close?.()}}function Hk(e){let t=String(e?.name??``).trim();return!t||t===`image.png`?`pasted-image.png`:t.slice(0,120)}async function Uk(e,t={}){let{readDataUrl:n=yk,...r}=t,i=Ak(e)??`image/png`,a=await n(e);return{dataUrl:await Vk(a.startsWith(`data:${i};`)?a:`data:${i};${a.slice(a.indexOf(`;`)+1)}`,r),name:Hk(e)}}var Wk=new Set([`aborted`,`capture_failed`,`generation_failed`,`unknown`]),Gk=new Set([`aborted`,`auth`,`rate_limited`,`tool_failed`,`upstream`,`unknown`]);function Kk(){try{if(!globalThis.crypto?.getRandomValues)return null;let e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``)}catch{return null}}function qk(e,t,n){try{Promise.resolve(e(t,n)).catch(()=>{})}catch{}}function Jk(e){try{return e()}catch{return NaN}}function Yk(e,t,n=`unknown`){let r=t===`agent`?Gk:Wk;try{if(e?.name===`AbortError`)return`aborted`}catch{}return r.has(n)?n:`unknown`}function Xk(e,{capture:t=y,now:n=()=>performance.now(),durationBucket:r=_}={}){let i=Kk(),a=!1,o=!1,s=Jk(n),c=(e,n)=>{i&&qk(t,e,n)};c(`workflow:run_requested`,{surface:`workflow`,...u.node_count_bucket.has(e.node_count_bucket)?{node_count_bucket:e.node_count_bucket}:{},run_id:i});let l=(e,t,o)=>{if(a||!i)return;a=!0;let l=Yk(t,`workflow`,o),d=e===`failed`&&l===`aborted`?`cancelled`:e,f=`lt1s`;try{let e=r(Jk(n)-s);u.duration_bucket.has(e)&&(f=e)}catch{}c(`workflow:run_${d}`,{run_id:i,duration_bucket:f,...d===`succeeded`?{}:{failure_code:l}})};return{runId:i,succeed(){l(`succeeded`)},fail(e,t=`unknown`){l(`failed`,e,t)},apply(){o||!i||(o=!0,c(`workflow:result_applied`,{run_id:i}))}}}var Zk=`follow the reference clip's framing and camera motion exactly`,Qk=`clay previs, neutral look`,$k=`motion and blocking come from the reference; keep timing`;function eA(e){if(!Number.isFinite(e)||e<=0)return`normal`;let t=18/Math.tan(e*Math.PI/360);return t<=20?`wide`:t<=40?`normal`:`long`}function tA(e){return`${Number(e.toFixed(2))}s`}function nA(e){let t=[];return e?.dolly&&t.push(`smooth dolly move`),e?.crane&&t.push(`gentle crane move`),e?.rail&&t.push(`sliding rail move`),t.length>0?t.join(`; `):`locked-off camera, no move`}var rA=[`front`,`front right`,`right`,`back right`,`back`,`back left`,`left`,`front left`];function iA(e){if(!Number.isFinite(e))return``;let t=(e%360+360)%360;return rA[Math.round(t/45)%8]}function aA(e){return Number.isFinite(e)?e>=50?`high`:e<=10?`low`:`level`:``}function oA(e){return Number.isFinite(e)?e>=.8?`strong`:e>=.35?`moderate`:`dim`:`moderate`}function sA(e){return e?`${[aA(e.elevationDeg),iA(e.azimuthDeg)].filter(Boolean).join(` `)||`even`} key light, ${oA(e.intensity)}`:`no key light, ambient fill`}function cA(e,t={}){let n=t.target===`video`?`video`:`image`,r=t.referenceOwnsCamera!==!1,i=Math.max(0,(e.frameRange?.end??0)-(e.frameRange?.start??0)+1)/(e.fps||24),a=typeof e.intent==`string`?e.intent.trim():``,o=[`SHOT: ${e.shotTitle||`untitled shot`}, ${tA(i)}, ${e.aspect||``}`.trimEnd(),`LENS: ${e.focalMm}mm, ${eA(e.fovDeg)} shot`,r?`CAMERA: ${Zk}`:`CAMERA: ${nA(e.cameraMove)}`,`LIGHT: ${sA(e.keyLight)}`,`CAST: ${(e.cast||[]).map(e=>e.name).join(`, `)||`none`}`,`LOOK: ${a||Qk}`];return n===`video`&&o.push(`MOTION: ${$k}`),o.join(`
14
- `)}var lA=``;function uA(e){return`${lA}${e}`}async function dA(e,t,n){let r=await e(uA(t),{headers:{"content-type":`application/json`},...n});if(!r.ok){let e=null;try{e=await r.clone().json()}catch{}let n=typeof e?.error==`string`?e.error:e?.error?.message,i=Error(n||`${t} responded ${r.status}`);throw i.status=r.status,e?.error&&typeof e.error==`object`&&Object.assign(i,e.error),e?.preservation&&typeof e.preservation==`object`&&(i.preservation=e.preservation),i}return r.json()}function fA({prompt:e,imageDataUrl:t,referenceDataUrl:n,references:r,composition:i,quality:a=`auto`,size:o}){return{prompt:e,imageDataUrl:t,...n?{referenceDataUrl:n}:{},...Array.isArray(r)&&r.length?{references:r}:{},...i?{composition:i}:{},quality:a,...o?{size:o}:{}}}function pA(e,{fetchImpl:t=globalThis.fetch?.bind(globalThis),signal:n}={}){return dA(t,`/agent/image`,{method:`POST`,body:JSON.stringify(fA(e)),signal:n})}var mA=`Use the first image (a clay blocking frame) as the layout: keep its composition and camera angle, and keep the pose but make it look natural. Render it as:`;function hA({meta:e,caption:t,imageDataUrl:n}){let r=typeof t==`string`?t.trim():``;return{prompt:`${mA}\n${cA(e,{target:`image`})}${r?`\n${r}`:``}`,imageDataUrl:n,quality:`auto`}}function gA(e){if(e?.code===`entitlement`)return P(`This account cannot generate images.`,`이 계정은 이미지를 생성할 수 없어요.`);if(e?.status===401||e?.code===`auth`)return P(`Sign in with ChatGPT in the Agent panel first.`,`먼저 Agent 패널에서 ChatGPT로 로그인하세요.`);let t=e?.message||P(`unknown error`,`알 수 없는 오류`);return P(`Stylize failed — ${t}`,`스타일화 실패 — ${t}`)}function _A(e,t){let n=typeof e==`string`?/^data:image\/png;base64,(.*)$/s.exec(e):null;if(!n)throw Error(P(`The image route did not return a PNG.`,`이미지 경로가 PNG를 돌려주지 않았어요.`));let r=atob(n[1]);if(r.length>t){let e=Math.round(t/1048576);throw Error(P(`The stylized image is larger than ${e} MB, so it was not added.`,`스타일화된 이미지가 ${e} MB보다 커서 추가하지 않았어요.`))}let i=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)i[e]=r.charCodeAt(e);return i}var vA=140,yA=(e,t=vA)=>{let n=String(e??``).replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n},bA=e=>{let t=String(e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[._\s-]+/).filter(Boolean).join(` `).toLowerCase();return t?t[0].toUpperCase()+t.slice(1):`Editor action`},xA=e=>new Map((e?.actionIndex??[]).filter(e=>e?.id&&e.label).map(e=>[e.id,e.label]));function SA(e,t){let n=[...String(e??``).matchAll(/tools\.(\w+)\(\s*\{?\s*(?:action\s*:\s*["'`]([\w.]+)["'`])?/g)].map(([,e,n])=>n?t?.get(n)??bA(n):d[e]??bA(e)),r=[...new Set(n)];return r.length>3?`${r.slice(0,3).join(`, `)}…`:r.join(`, `)}function CA(e,t,n){let r=e===`run_action`&&typeof t?.action==`string`?t.action:null,i=r?t.args:t,a=e===`script`?/^\s*\/\/\s*(.+)/.exec(String(t?.code??``))?.[1]??SA(t?.code,n):i?.spec?.label??i?.caption??i?.label??(r?null:i?.visual&&i.visual!==`none`?i.visual.replace(`_`,` `):null);return{...r?{action:r,actionLabel:n?.get(r)??bA(r)}:{},...a?{subject:yA(a,80)}:{}}}function wA(e,t={}){return e.kind===`compose`||e.kind===`tool`?e.actionLabel?e.actionLabel:e.action?bA(e.action):e.name===`script`?P(`Script`,`스크립트`):Object.hasOwn(t,e.name)?t[e.name]:e.label||bA(e.name||`tool`):``}function TA(e,t){let n=[],r=e?.checks?.framing?.derivedSize;return r&&n.push(r),e?.geometry?.axisConsistent===!1&&n.push(P(`cameras cross the line`,`카메라가 축을 넘음`)),e?.verification?.status&&n.push(e.verification.status===`verified`?P(`motion checked`,`모션 확인`):P(`motion unverified`,`모션 미확인`)),e?.visualStatus===`attached`&&n.push(t?.visual===`contact_sheet`?P(`looked at a contact sheet`,`컨택트 시트 확인`):P(`looked at the frame`,`화면 확인`)),e?.stale&&n.push(P(`stale evidence`,`이전 상태 기준`)),n.join(` · `)}function EA(e){if(e.kind!==`tool`)return``;if(e.status===`failed`)return yA(String(e.error??e.failure?.message??P(`Failed`,`실패`)).replace(/^Error:\s*/,``));if(e.status===`cancelled`)return e.result?.status===`not_applied`?P(`not applied`,`적용 안 됨`):P(`result unknown`,`결과 불명`);let t=e.result;if(!t||typeof t!=`object`)return``;if(e.name===`script`){let e=Array.isArray(t.calls)?t.calls:[],n=e.filter(e=>e?.ok===!1),r=P(`${e.length} call${e.length===1?``:`s`}`,`호출 ${e.length}회`);return t.ok===!1?yA(`${r} · ${t.error?.message??P(`failed`,`실패`)}${t.rollback?P(` · its edits were rolled back`,` · 편집 되돌림`):``}`):yA(n.length?`${r} · ${P(`${n.length} refused`,`${n.length}회 거부`)}: ${n[0].code??n[0].message??``}`:r)}return e.name===`verify_result`?yA(TA(t,e.args)):typeof t.summary==`string`&&t.summary?yA(t.summary.replace(/\.$/,``)):t.status===`started`?P(`started`,`시작됨`):``}function DA(e){let t=e.progress;if(!t)return``;let n=t.label??(t.action?bA(t.action):bA(t.name??`call`));return P(`${n} (call ${t.index})`,`${n} (${t.index}번째 호출)`)}function OA(e){let t=String(e??``).split(/\n+/).map(e=>e.replace(/^[#*\s-]+|\*+$/g,``).trim()).filter(Boolean),n=t.at(-1)??``;return yA(n.length<24&&t.length>1?t.at(-2):n)}function kA(e,t,n,r){let i=e.at(-1);return i?.kind===`thinking`?[...e.slice(0,-1),{...i,text:i.text+t,updatedAt:n}]:[...e,{kind:`thinking`,id:r(),text:t,startedAt:n,updatedAt:n}]}var AA=(e,t)=>e.at(-1)?.kind===`thinking`&&!e.at(-1).endedAt?[...e.slice(0,-1),{...e.at(-1),endedAt:t}]:e;function jA(e,t,n,r,i){let a=AA(e,n),o=Number.isInteger(t.index)?t.index:0,s=a.findLastIndex(e=>e.kind===`compose`&&e.index===o),c={name:t.name,...t.action?{action:t.action,actionLabel:i?.get(t.action)??bA(t.action)}:{},...t.subject?{subject:yA(t.subject,80)}:{}};return s!==-1&&a[s].name===t.name?a.map((e,t)=>t===s?{...e,...c}:e):[...a,{kind:`compose`,id:r(),index:o,startedAt:n,...c}]}function MA(e,t){let n=AA(e,t.startedAt),r=n.findIndex(e=>e.kind===`compose`&&e.name===t.name);return r===-1?[...n,t]:n.map((e,n)=>n===r?{...t,subject:t.subject??e.subject}:e)}var NA=(e,t,n)=>[...e.filter(e=>e.kind!==`compose`).map(e=>e.kind===`tool`&&e.status===`running`?{...e,status:`cancelled`}:e),{kind:`turn-end`,id:n(),...t}],PA=new Set([`tool`,`thinking`,`compose`]);function FA(e,{streaming:t=!1}={}){let n=[];for(let t of e)(t.kind===`user`&&!t.steered||!n.length)&&n.push([]),n.at(-1).push(t);let r=[];return n.forEach((e,i)=>{let a=e.findLastIndex(e=>PA.has(e.kind)),o=e.find(e=>e.kind===`turn-end`)??null,s=i===n.length-1,c=null;e.forEach((e,n)=>{if(e.kind!==`turn-end`){if(!(PA.has(e.kind)||e.kind===`assistant`&&n<a&&c)){r.push({type:`item`,item:e});return}c||(c={type:`steps`,id:`steps:${e.id}`,steps:[],end:o,live:s&&t,last:s},r.push(c)),c.steps.push(e.kind===`assistant`?{...e,kind:`narration`}:e)}})}),r}function IA(e,t,n){let r=e.steps.filter(e=>e.kind===`tool`).length,i=r?` · ${P(`${r} step${r===1?``:`s`}`,`${r}단계`)}`:``;if(e.live){let r=e.steps[0]?.startedAt;return{tone:`busy`,text:`${P(`Working`,`작업 중`)}${i}${Number.isFinite(r)?` · ${n(t-r)}`:``}`}}let a=e.end,o=a&&Number.isFinite(a.durationMs)?` · ${n(a.durationMs)}`:``;return a?.status===`stopped`?{tone:`warn`,text:`${P(`Stopped`,`중지됨`)}${i}${o}`}:a?.status===`failed`?{tone:`alert`,text:`${P(`Failed`,`실패`)}${i}${o}`}:{tone:`ok`,text:`${P(`Done`,`완료`)}${i}${o}`}}function LA(e,t){let n=new Map([...t?.entityIndex??[],...t?.shots??[]].filter(e=>e?.id&&e.name).map(e=>[e.id,e.name])),r=[...new Set(e.map(e=>n.get(e)).filter(Boolean))],i=e.filter(e=>!n.has(e)).length;if(!r.length&&!i)return P(`Changed the scene`,`장면을 바꿈`);let a=r.slice(0,4).join(`, `),o=Math.max(0,r.length-4)+i;return P(`Changed ${a||`the scene`}${o>0?` and ${o} more`:``}`,`${a||`장면`}${o>0?` 외 ${o}개`:``} 변경`)}function RA(e){return e.steps.some(e=>e.result?.authored===!0||(e.result?.calls??[]).some(e=>e?.revision&&e.revision.after!==e.revision.before))?P(`Stopped by you. What already ran stays in the scene; Cmd+Z undoes this turn.`,`직접 중지했어요. 이미 실행된 편집은 장면에 남아 있고, Cmd+Z로 이번 턴을 되돌릴 수 있어요.`):e.steps.some(e=>e.kind===`tool`&&e.status===`cancelled`)?P(`Stopped by you while a step was running; its result is unknown.`,`단계 실행 중에 직접 중지했어요. 그 단계의 결과는 알 수 없어요.`):P(`Stopped by you before anything changed in the scene.`,`장면이 바뀌기 전에 직접 중지했어요.`)}var zA=`cozyclay.workflow.agentPanel.width`,BA=1100,VA=`cozyclay.agent.session.studio`,HA=[`signed-out`,`signing-in`,`no-entitlement`,`ready`,`streaming`,`rate-limited`,`error`];function UA(e=globalThis.crypto){let t=e?.randomUUID?.();if(typeof t==`string`)return t;let n=new Uint8Array(16);e.getRandomValues(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;let r=[...n].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}var WA={queued:`Queued`,generating:`Generating`,preparing:`Preparing`,verifying:`Verifying`,repairing:`Repairing`,committing:`Installing`,reconciling:`Reconciling`,installed:`Installed`,review_required:`Needs review`,failed:`Failed`,cancelled:`Stopped`,stale_target:`Target changed`,stale_environment:`Scene changed`},GA=new Set([`installed`,`failed`,`cancelled`,`stale_target`,`stale_environment`]),KA=e=>GA.has(e),qA=e=>e===`installed`?`ok`:e===`review_required`?`warn`:KA(e)?`alert`:`busy`,JA=e=>Number.isFinite(e)?`${Math.round(e*100)}%`:``;function YA(e,t=null){if(e?.status===`installed`){let{installed:t,verification:n}=e,r=n.status===`verified`?`verified over ${n.evaluatedFrames} frames`:`installed unverified`;return`Installed ${t.durationSeconds}s of motion on ${t.characterId} — ${r}`}return e?.status===`undone`?`Undid ${e.undoneReceiptId}`:e?.status===`noop`?`Nothing to change`:e?.status===`transient`?`Changed the view only`:t?LA(e?.affectedIds??[],t):`Applied to ${e?.affectedIds?.join(`, `)||`the scene`}`}function XA(e){let t=Array.isArray(e?.efforts)?e.efforts:[];if(!t.length)return[];let n=e.defaultEffort&&t.includes(e.defaultEffort)?e.defaultEffort:t[0];return[n,...t.filter(e=>e!==n)]}var ZA=[`Block a two-shot conversation in this scene`,`Render this frame as a storyboard panel`,`Suggest a camera move for the current shot`],QA=[P(`Block a two-shot`,`투샷 블로킹`),P(`Frame the selected character`,`선택한 캐릭터 구도 잡기`),P(`Light the set warmer`,`세트 조명 더 따뜻하게`)],$A=`Image generation uses about 3-5x a normal turn`,ej={describe_workflow:`Read canvas`,add_workflow_node:`Add node`,update_workflow_node:`Edit node`,remove_workflow_node:`Remove node`,connect_workflow_nodes:`Connect nodes`,disconnect_workflow_nodes:`Disconnect nodes`,run_workflow:`Run workflow`,set_workflow_node_output:`Set node output`,focus_workflow_node:`Focus node`,add_reference_node:`Add reference image`},tj={inspect_studio:P(`Read the scene`,`장면 읽기`),operate_studio:P(`Selection and view`,`선택과 뷰`),arrange_objects:P(`Arrange objects`,`오브젝트 배치`),arrange_characters:P(`Arrange characters`,`캐릭터 배치`),patch_elements:P(`Edit properties`,`속성 편집`),frame_shot:P(`Frame the shot`,`샷 구도 잡기`),generate_motion:P(`Generate motion`,`모션 생성`),verify_result:P(`Verify the result`,`결과 검증`),undo_edit:P(`Undo an edit`,`편집 되돌리기`),run_action:P(`Run an editor action`,`편집기 동작 실행`)},nj=Object.freeze({workflow:Object.freeze({toolLabels:ej,toolBadge:`Canvas`,suggestions:ZA,imageHint:$A,imageEntitlement:!0,steer:!0,history:!0,persistWidth:!0,emptyTitle:`Direct the scene`,emptyHint:e=>`Ask for blocking, a camera move, or a rendered frame from \u201C${e}\u201D.`,composerPlaceholder:`Ask the agent to block, frame or render…`}),studio:Object.freeze({toolLabels:tj,toolBadge:P(`Scene`,`장면`),suggestions:QA,imageHint:null,imageEntitlement:!1,steer:!1,history:!0,persistWidth:!1,emptyTitle:P(`Direct the scene`,`장면을 연출하세요`),emptyHint:e=>P(`Ask for blocking, a camera move, or a motion take in \u201C${e}\u201D.`,`\u201C${e}\u201D\uC5D0\uC11C \uBE14\uB85C\uD0B9, \uCE74\uBA54\uB77C \uC6C0\uC9C1\uC784, \uBAA8\uC158 \uD14C\uC774\uD06C\uB97C \uC694\uCCAD\uD558\uC138\uC694.`),composerPlaceholder:P(`Ask the agent to block, frame or animate…`,`블로킹·구도·모션을 요청하세요…`)})});function rj(e){return Object.hasOwn(nj,e)?nj[e]:nj.workflow}function ij(e){let t=Number(e);return Number.isFinite(t)?Math.min(560,Math.max(300,Math.round(t))):360}function aj(e=globalThis.localStorage){try{let t=e?.getItem(zA);return t==null||t===``?360:ij(t)}catch{return 360}}function oj(e,t=globalThis.localStorage){try{t?.setItem(zA,String(ij(e)))}catch{}}var sj=`cozyclay.agent.model`;function cj(e=globalThis.localStorage){try{let t=e?.getItem(sj);return typeof t==`string`&&t?t:null}catch{return null}}function lj(e,t=globalThis.localStorage){try{typeof e==`string`&&e&&t?.setItem(sj,e)}catch{}}var uj=`cozyclay.agent.supervisor`;function dj(e=globalThis.localStorage){try{return e?.getItem(uj)===`on`}catch{return!1}}function fj(e,t=globalThis.localStorage){try{t?.setItem(uj,e?`on`:`off`)}catch{}}function pj(e,t=cj()){let n=Array.isArray(e)?e:[];return n.some(e=>e?.id===t)?t:n[0]?.id??``}function mj(e,t){if(!e.length)return!0;let n=e.find(e=>e.models?.some(e=>e.key===t));return!n||n.signedIn}function hj(e,t,n){return n&&t.some(e=>e.id===n)&&mj(e,n)?n:pj(t.filter(t=>mj(e,t.id)))}function gj(e,t){let n=e&&typeof e==`object`&&typeof t==`string`?e[t]:null;return n&&[`helper`,`vision`,`advisor`].every(e=>typeof n[e]==`string`&&n[e])?n:null}function _j(e){let t=String(e??``);return t.slice(t.indexOf(`/`)+1)}function vj(e,t=Date.now()){if(!e)return null;let n=typeof e==`number`?e:Date.parse(e);if(!Number.isFinite(n))return null;let r=Math.max(0,n-t),i=Math.round(r/1e3),a=Math.floor(i/3600),o=Math.floor(i%3600/60),s=i%60;return a>0?`${a}h ${String(o).padStart(2,`0`)}m`:o>0?`${o}m ${String(s).padStart(2,`0`)}s`:`${s}s`}var yj={capture_blocking_frame:{verb:`Capture`,target:`blocking frame`},render_from_frame:{verb:`Render`,target:`from frame`},place_image_in_scene:{verb:`Place`,target:`image in scene`}};function bj(e){if(e?.label)return e.label;let t=yj[e?.name];if(t)return`${t.verb} ${t.target}`;let n=String(e?.name||`tool`).split(/[_\-\s]+/).filter(Boolean);if(!n.length)return`Run tool`;let r=n[0][0].toUpperCase()+n[0].slice(1);return n.length>1?`${r} ${n.slice(1).join(` `)}`:r}var xj={STEER_UNSUPPORTED:`This surface cannot steer a running turn.`,NO_ACTIVE_TURN:`That turn already ended — send it as a new message.`},Sj=/^(TARGET_NOT_READY|CAPABILITY_MISSING|CONFIRMATION_REQUIRED):/;function Cj(e){let t=Array.isArray(e?.issues)?e.issues:[],n=(Array.isArray(e?.fixes)?e.fixes:[]).filter(e=>typeof e?.action==`string`&&e.args&&typeof e.args==`object`),r=new Set(n.map(e=>e.issueIndex)),i=t.filter((e,t)=>(e?.severity===`blocker`||e?.severity===`concern`)&&!r.has(t)),a=e=>`- [${e.severity}] ${e.text}${e.evidence?` (${e.evidence})`:``}`;return n.length?[P(`Supervisor review — apply these fixes exactly, in order, in ONE script call, then verify_result; do not re-derive them:`,`감독 검토 — 아래 수정을 유추 없이 순서대로 script 1회로 실행하고 verify_result로 확인해 주세요:`),...n.map(e=>`- [${e.severity}] ${t[e.issueIndex]?.text??``} -> run_action ${JSON.stringify({action:e.action,args:e.args})}`),...i.length?[P(`Also check:`,`추가 확인:`),...i.map(a)]:[]].join(`
15
- `):i.length?[P(`Supervisor review — please address:`,`감독 검토 — 다음을 고쳐 주세요:`),...i.map(a)].join(`
16
- `):null}var wj={auth:`Your session expired. Sign in again to continue.`,entitlement:`This account cannot generate images.`,rate_limit:`You have hit the usage limit for this window.`,upstream:`The model service failed to answer.`,overloaded:`The model service is overloaded right now. Try again in a moment.`},Tj=`Ready`,Ej={auth:`session expired`,entitlement:`not on this plan`,rate_limit:`usage limit reached`,rate_limited:`usage limit reached`,overloaded:`service overloaded`,no_output:`no response`};function Dj(e){if(!e)return`unknown error`;let t=Ej[e.code];if(t)return t;let n=String(e.message??``).trim();return n?n.length>64?`${n.slice(0,63)}…`:n:String(e.code||`unknown error`)}function Oj(e){let t=Number.isFinite(e)&&e>0?Math.floor(e/1e3):0;return t<60?`${t} s`:`${Math.floor(t/60)} m ${String(t%60).padStart(2,`0`)} s`}var kj=(e,t,n,r=``)=>({phase:e,kind:`live`,tone:`busy`,text:`${t} · ${Oj(n)}`,ticking:!0,...r?{detail:r}:{}});function Aj(e,{now:t=Date.now(),toolLabel:n=bj}={}){let r=e?.items??[],i=r.find(e=>e.kind===`image`&&e.apply?.status===`applying`);if(i)return kj(`editor`,`Waiting for the editor…`,t-(i.apply.startedAt??t));if(e?.streaming){let i=t-(e.turnStartedAt??t),a=r.findLast(e=>e.kind===`job`&&!KA(e.state));if(a){let e=JA(a.progress);return kj(`job`,`${WA[a.state]||a.state} motion${e?` ${e}`:``}`,i)}let o=r.findLast(e=>e.kind===`tool`&&e.status===`running`);if(o)return kj(`tool`,`Running ${n(o)}…`,i,o.progress?DA(o):o.subject);let s=r.at(-1);return s?.kind===`compose`?kj(`compose`,`Preparing ${n(s)}…`,i,s.subject):s?.kind===`thinking`?kj(`thinking`,`Thinking…`,i,OA(s.text)):s?.kind===`assistant`?kj(`reply`,`Writing the reply…`,i):s?.kind===`user`?kj(`sending`,i<2e3?`Sending…`:`Waiting for the model…`,i):kj(`thinking`,`Thinking…`,i)}let a=e?.lastTurn;return a&&t-a.endedAt<6e3?a.status===`stopped`?{phase:`stopped`,kind:`terminal`,tone:`warn`,text:`Stopped`,ticking:!0}:a.status===`failed`?{phase:`failed`,kind:`terminal`,tone:`alert`,text:`Failed: ${Dj(a.failure)}`,ticking:!0}:{phase:`done`,kind:`terminal`,tone:`ok`,text:`Done · ${Oj(a.durationMs)}`,ticking:!0}:{phase:`idle`,kind:`idle`,tone:``,text:Tj,ticking:!1}}function jj(e){let t=[],n=e.split(`
17
- `),r=n.pop()??``;for(let e of n){let n=e.trim();if(!n.startsWith(`data:`))continue;let r=n.slice(5).trim();if(r)try{t.push(JSON.parse(r))}catch{}}return{events:t,tail:r}}var Mj=e=>typeof e==`string`&&/^[a-f0-9]{32}$/.test(e),Nj=new Set([`aborted`,`auth`,`rate_limited`,`tool_failed`,`upstream`,`unknown`]),Pj=(e,t)=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===t.length&&t.every(t=>Object.hasOwn(e,t)),Fj=(e,t)=>{try{return e()}catch{return t}},Ij=e=>Fj(()=>e?.status===401||e?.code===`auth`?`auth`:e?.status===429||e?.code===`rate_limit`?`rate_limited`:`upstream`,`upstream`),Lj=new Set([`auth`,`entitlement`,`rate_limit`,`overloaded`,`upstream`]);async function Rj(e){let t=Number.isFinite(e?.status)?e.status:null,n=null;try{let t=await e.clone().json();n=typeof t?.error==`string`?{message:t.error}:t?.error&&typeof t.error==`object`?t.error:null}catch{}let r=typeof n?.message==`string`?n.message.trim():``,i=r?t!==null&&r.startsWith(`${t} `)?r:`${t??`Upstream`} — ${r}`:`The turn was refused with HTTP ${t??`error`}.`;return{code:Lj.has(n?.code)?n.code:t===429?`rate_limit`:t===401?`auth`:`upstream`,message:i,...t===null?{}:{status:t},...n?.resetAt?{resetAt:n.resetAt}:{}}}function zj({surface:e,capture:t,now:n,correlationId:r=null}){let i=Fj(()=>{let e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``)},null),a=()=>Fj(()=>{let e=n();return Number.isFinite(e)?e:NaN},NaN),o=r??i,s=a(),c=Fj(()=>[`studio`,`workflow`].includes(e)?e:/^\/workflow(?:\/|$)/.test(globalThis.location?.pathname||``)?`workflow`:`studio`,`studio`),l=!1,d=!1,f=new Map,p=new Set,m=(e,n)=>{if(i)try{Promise.resolve(t(e,n)).catch(()=>{})}catch{}},h=(e,t)=>{if(!l){if(l=!0,e===`cancelled`)for(let[e,t]of f)p.has(e)||m(`agent:tool_executed`,{turn_id:i,tool_category:t.category,outcome:`cancelled`,duration_bucket:_(a()-t.startedAt)});f.clear(),m(`agent:turn_${e}`,{turn_id:i,duration_bucket:_(a()-s),...e===`succeeded`?{}:{failure_code:t}})}};return m(`agent:turn_requested`,{surface:c,turn_id:i}),{turnId:i,cancel:()=>h(`cancelled`,`aborted`),fail:e=>h(`failed`,Nj.has(e)?e:`upstream`),frame(e){try{if(!i||l)return;if(e.type===`execution_tool_started`){if(!Pj(e,[`type`,`turn_id`,`telemetry_id`,`tool_category`])||e.turn_id!==o||!Mj(e.telemetry_id)||!v.includes(e.tool_category))return;!f.has(e.telemetry_id)&&!p.has(e.telemetry_id)&&f.set(e.telemetry_id,{category:e.tool_category,startedAt:a()});return}let{event:t,props:n}=e;if(n?.turn_id!==o)return;if(t===`agent:tool_executed`){if(!Pj(e,[`type`,`event`,`props`,`telemetry_id`])||!Mj(e.telemetry_id)||!Pj(n,[`turn_id`,`tool_category`,`outcome`,`duration_bucket`])||!v.includes(n.tool_category)||![`succeeded`,`failed`,`cancelled`].includes(n.outcome)||!u.duration_bucket.has(n.duration_bucket)||p.has(e.telemetry_id))return;p.add(e.telemetry_id),f.delete(e.telemetry_id),m(t,{turn_id:i,tool_category:n.tool_category,outcome:n.outcome,duration_bucket:n.duration_bucket});return}if(!Pj(e,[`type`,`event`,`props`]))return;if(t===`agent:result_applied`){!d&&Pj(n,[`turn_id`])&&(d=!0,m(t,{turn_id:i}));return}if(![`agent:turn_succeeded`,`agent:turn_failed`,`agent:turn_cancelled`].includes(t))return;let r=t.slice(11),s=Object.hasOwn(n,`failure_code`);if(!Pj(n,[`turn_id`,`duration_bucket`,...s?[`failure_code`]:[]])||!u.duration_bucket.has(n.duration_bucket)||s&&(r===`succeeded`||!Nj.has(n.failure_code)))return;h(r,r===`cancelled`?`aborted`:n.failure_code||`unknown`)}catch{}}}}var Bj=3;function Vj(e){let t=/"message"\s*:\s*"([^"]{1,160})"/.exec(String(e||``))?.[1],n=/\b(401|403)\b/.exec(String(e||``))?.[1];return`The model provider refused the credentials${n||t?` (${[n,t].filter(Boolean).join(`: `)})`:``}.`}function Hj({fetchImpl:e=globalThis.fetch?.bind(globalThis),surface:t,capture:n=y,now:r=()=>performance.now()}={}){let i=new Map,a=(t,n)=>dA(e,t,n);return{mock:!1,async status(){return a(`/oauth/status`)},async signIn(){return a(`/oauth/start`,{method:`POST`,body:`{}`})},async signOut(){return a(`/oauth/logout`,{method:`POST`,body:`{}`})},async models(){let e=await a(`/agent/models`),t=Array.isArray(e?.models)?e.models:[],n=Array.isArray(e?.providers)?e.providers.filter(e=>e?.id&&Array.isArray(e.models)):[],r=e?.roles?.byMain;return r&&typeof r==`object`&&!Array.isArray(r)?{providers:n,models:t,roles:{byMain:r}}:{providers:n,models:t}},async steer(e,t){return a(`/agent/turn/${encodeURIComponent(e)}/steer`,{method:`POST`,body:JSON.stringify(t)})},async providers(){let e=await a(`/agent/providers`);return Array.isArray(e?.providers)?e.providers:[]},async setProviderKey(e,t){return a(`/agent/providers/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify({key:t})})},async removeProviderKey(e){return a(`/agent/providers/${encodeURIComponent(e)}`,{method:`DELETE`})},async listSessions(){let e=await a(`/agent/sessions?surface=${encodeURIComponent(t||`studio`)}`);return Array.isArray(e?.sessions)?e.sessions:[]},async loadSession(e){return a(`/agent/sessions/${encodeURIComponent(e)}`)},async stop(e){let t=typeof e==`string`||!e?{sessionId:e}:{surface:`studio`,sessionId:e.sessionId,turnId:e.turnId,...e.jobId?{jobId:e.jobId}:{}};return i.get(t.sessionId)?.cancel(),a(`/agent/stop`,{method:`POST`,body:JSON.stringify(t)})},async acceptJob({jobId:e,sessionId:t,turnId:n}){return a(`/agent/jobs/${encodeURIComponent(e)}/accept`,{method:`POST`,body:JSON.stringify({surface:`studio`,sessionId:t,turnId:n,explicitUnverifiedAcceptance:!0})})},async image(t,n){return pA(t,{fetchImpl:e,signal:n})},async video(e,t){return a(`/agent/video`,{method:`POST`,body:JSON.stringify(e),signal:t})},async videoProviders(){return a(`/agent/video/providers`)},async supervisor(t,n){let r=await e(uA(`/agent/turn/${encodeURIComponent(t)}/supervisor`),{headers:{accept:`application/json`},credentials:`same-origin`,signal:n});if(r?.status!==200)return null;let i=await r.json();return i?.type===`supervisor`&&[`reviewed`,`unavailable`].includes(i.verdict)?i:null},async turn(a,o,s){let{sessionId:c,text:l,attachFrame:u,model:d,effort:f,attachments:p,supervisor:m}=a,h=Array.isArray(p)&&p.length?{attachments:p}:{},g=a.surface===`studio`,_=g?a.turnId:null,v=zj({surface:t,capture:n,now:r,correlationId:_});a.onTurnId?.(g?_:v.turnId),i.set(c,v);let y=()=>{s.reason===`agent-stop`&&v.cancel()};s?.addEventListener(`abort`,y,{once:!0}),s?.aborted&&y();let b=!1,x,S=0,C=!1,w=e=>{if(e?.type===`execution_telemetry`||e?.type===`execution_tool_started`){v.frame(e);return}if(g&&Number.isFinite(e?.eventSeq)){if(e.eventSeq<=S)return;S=e.eventSeq}e?.type===`error`&&(x=Ij(e)),e?.type===`done`&&(C=!0),o(e)},T=async e=>{let t=e.body.getReader();b=!0;try{let e=new TextDecoder,n=``;for(;;){let{value:r,done:i}=await t.read();if(i)break;n+=e.decode(r,{stream:!0});let a=jj(n);n=a.tail;for(let e of a.events)w(e)}for(let e of jj(`${n}\n`).events)e?.type!==`execution_telemetry`&&e?.type!==`execution_tool_started`&&w(e)}finally{t.releaseLock()}},E=JSON.stringify(g?{surface:`studio`,sessionId:c,turnId:_,text:l,context:a.context,...d?{model:d}:{},...f?{effort:f}:{},...u===void 0?{}:{attachFrame:!!u},...typeof m==`boolean`?{supervisor:m}:{},...h}:{sessionId:c,text:l,attachFrame:u,model:d,...f?{effort:f}:{},...h,...v.turnId?{turn_id:v.turnId}:{}});try{let t=await e(uA(`/agent/turn`),{method:`POST`,headers:{"content-type":`application/json`,accept:`text/event-stream`},body:E,signal:s});if(!t.ok||!t.body){v.fail(Ij(t)),o({type:`error`,...await Rj(t)}),o({type:`done`});return}let n=null;try{await T(t)}catch(e){n=e}for(let t=0;g&&_&&!C&&!s?.aborted&&t<Bj;t+=1){let t;try{t=await e(uA(`/agent/turn/${encodeURIComponent(_)}/events?after=${S}`),{headers:{accept:`text/event-stream`},signal:s})}catch{break}if(!t?.ok||!t.body)break;n=null;try{await T(t)}catch(e){n=e}}if(n)throw n;x&&v.fail(x)}catch(e){throw!s?.aborted&&(!b||x)&&v.fail(x||Ij(e)),e}finally{s?.removeEventListener(`abort`,y),i.get(c)===v&&i.delete(c)}}}}function Uj(e=globalThis.location?.search||``){let t=new URLSearchParams(e);if(t.get(`agent`)!==`mock`)return null;let n=t.get(`state`);return{state:HA.includes(n)?n:`ready`,speed:Number(t.get(`speed`))||1}}var Wj={signedIn:!0,email:`director@cozyclay.org`,plan:`Plus`,accountId:`acct_mock_126`,expiresAt:null},Gj=[{delay:40,event:{type:`text.delta`,text:`Framing a wide two-shot from the current blocking. `}},{delay:120,event:{type:`text.delta`,text:`Capturing the viewport first.`}},{delay:120,event:{type:`tool.start`,callId:`call-1`,name:`capture_blocking_frame`,label:`Capture blocking frame`,args:{shot:`current`}}},{delay:260,event:{type:`tool.done`,callId:`call-1`,ok:!0,elapsedMs:268,result:{width:1280,height:720}}},{delay:90,event:{type:`tool.start`,callId:`call-2`,name:`render_from_frame`,label:`Render from frame`,args:{style:`storyboard`,strength:.6}}},{delay:420,event:{type:`tool.done`,callId:`call-2`,ok:!0,elapsedMs:1412,result:{imageId:`img-1`}}},{delay:80,event:{type:`image`,imageId:`img-1`,dataUrl:`data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22288%22%20viewBox%3D%220%200%20512%20288%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%232a2f52%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%235b3550%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%22512%22%20height%3D%22288%22%20fill%3D%22url(%23g)%22%2F%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22150%22%20r%3D%2252%22%20fill%3D%22%23ef759d%22%20opacity%3D%220.85%22%2F%3E%3Crect%20x%3D%22250%22%20y%3D%22112%22%20width%3D%22180%22%20height%3D%22112%22%20rx%3D%2210%22%20fill%3D%22%238994ff%22%20opacity%3D%220.8%22%2F%3E%3Crect%20y%3D%22240%22%20width%3D%22512%22%20height%3D%2248%22%20fill%3D%22%23101116%22%20opacity%3D%220.55%22%2F%3E%3Ctext%20x%3D%2224%22%20y%3D%22272%22%20font-family%3D%22Inter%2Csans-serif%22%20font-size%3D%2218%22%20fill%3D%22%23edf0fb%22%3Emock%20render%20%C2%B7%20wide%20two-shot%3C%2Ftext%3E%3C%2Fsvg%3E`,width:512,height:288,prompt:`wide two-shot, storyboard ink`}},{delay:60,event:{type:`quota`,plan:`Plus`,primary:{usedPercent:46,windowMinutes:300,resetAt:null},credits:{has:!0}}},{delay:40,event:{type:`done`}}],Kj={ok:!0,commandId:`cmd-mock-1`,receiptId:`receipt-mock-1`,host:{workspaceId:`tab-mock`,documentEpoch:`doc-mock`,sceneId:`scene-mock`,sceneEpoch:`scene-open-mock`},status:`applied`,authored:!0,revision:{before:41,after:42},affectedIds:[`char-a`],delta:[{id:`char-a`,after:{position:{x:-.8,y:0,z:.4}}}],checks:{coverage:`affected-targets`},undo:{historyEntryId:`history-mock-1`,entries:1,canUndoDirect:!0},warnings:[]},qj=[{delay:40,event:{type:`text.delta`,text:`Reading the scene before I move anyone. `}},{delay:120,event:{type:`tool.start`,callId:`studio-1`,name:`inspect_studio`,label:`inspect studio`,args:{scope:`selection`}}},{delay:220,event:{type:`tool.done`,callId:`studio-1`,ok:!0,elapsedMs:214,result:{entities:2}}},{delay:90,event:{type:`text.delta`,text:`Blocking the two-shot now.`}},{delay:120,event:{type:`tool.start`,callId:`studio-2`,name:`arrange_characters`,label:`arrange characters`,args:{ops:[{op:`update`,characterId:`char-a`,position:{world:{x:-.8,y:0,z:.4}}}]}}},{delay:320,event:{type:`tool.done`,callId:`studio-2`,ok:!0,elapsedMs:332,result:{ok:!0,receiptId:Kj.receiptId}}},{delay:60,event:{type:`receipt`,receipt:Kj}},{delay:40,event:{type:`done`}}],Jj=[[`openai-codex`,`ChatGPT (OpenAI Codex)`],[`anthropic`,`Anthropic`],[`openai`,`OpenAI`],[`google`,`Google Gemini`],[`openrouter`,`OpenRouter`],[`cliproxy`,`CLIProxyAPI`]],Yj=`google`,Xj={"openai-codex":[{id:`gpt-6-astra`,label:`gpt-6-astra`,efforts:[`none`,`low`,`medium`,`high`,`xhigh`],defaultEffort:`medium`},{id:`gpt-5.1-codex`,label:`gpt-5.1-codex`,efforts:[`low`,`medium`,`high`],defaultEffort:`medium`}],anthropic:[{id:`claude-sonnet-4-5`,label:`Claude Sonnet 4.5`,efforts:[`none`,`low`,`medium`,`high`],defaultEffort:`medium`}],openai:[{id:`gpt-5.1`,label:`GPT-5.1`,efforts:[`none`,`low`,`medium`,`high`,`xhigh`],defaultEffort:`medium`}],google:[{id:`gemini-3-pro`,label:`Gemini 3 Pro`,efforts:[`none`,`low`,`medium`,`high`],defaultEffort:`medium`}],openrouter:[{id:`deepseek-v3`,label:`DeepSeek V3`,efforts:[`none`],defaultEffort:`none`}],cliproxy:[{id:`claude-sonnet-5`,label:`Claude Sonnet 5`,efforts:[`none`,`low`,`medium`,`high`],defaultEffort:`medium`}]},Zj={id:`gpt-6-live-preview`,label:`gpt-6 live preview`,efforts:[`none`,`low`,`medium`,`high`],defaultEffort:`high`},Qj=8,$j=`cozyclay.mock.agent.status-calls`,eM=`cozyclay.mock.agent.model-calls`,tM=e=>{try{globalThis.localStorage?.setItem(e,String(Number(globalThis.localStorage.getItem(e)||0)+1))}catch{}};function nM(e={state:`ready`}){let t=e?.state||`ready`,n=e?.surface===`studio`,r=e?.speed>0?e.speed:1,i=e=>new Promise(t=>setTimeout(t,Math.max(0,e/r))),a=new Set,o=t===`signed-out`?`out`:t===`signing-in`?`pending`:`in`,s=()=>Jj.map(([e,t])=>{let n=e===`openai-codex`?o===`in`?`chatgpt`:null:e===Yj?`env`:a.has(e)?`file`:null;return{id:e,label:t,authSource:n,signedIn:!!n}}),c=null,l=0;return{mock:!0,state:t,async status(){tM($j);let e=s().filter(e=>e.id!==`openai-codex`&&e.signedIn).length;return o===`pending`?{signedIn:!1,pending:!0,email:null,plan:null,accountId:null,expiresAt:null,providersConfigured:a.size}:o===`out`?{signedIn:!1,email:null,plan:null,accountId:null,expiresAt:null,providersConfigured:a.size}:t===`no-entitlement`?{...Wj,plan:`Free`,entitlements:{image:!1},providersConfigured:e}:{...Wj,entitlements:{image:!0},providersConfigured:e}},async signIn(){return o=`in`,{ok:!0,authorizeUrl:`https://auth.example.invalid/mock`}},async signOut(){return o=`out`,{ok:!0}},async models(){tM(eM);let e=s().map(e=>{let t=Xj[e.id]??[],n=e.id===`openai-codex`&&o===`in`?[...t,Zj]:t;return{...e,models:n.map(t=>({...t,key:`${e.id}/${t.id}`,input:[`text`,`image`]}))}});return{providers:e,models:e.flatMap(e=>e.models.map(e=>({...e,id:e.key})))}},async providers(){return s()},async setProviderKey(e,t){if(e===`openai-codex`)throw Object.assign(Error(`Use ChatGPT sign-in for OpenAI Codex.`),{status:400});if(typeof t!=`string`||t.trim().length<Qj)throw Object.assign(Error(`That key was refused: it is too short.`),{status:400});return a.add(e),{ok:!0}},async removeProviderKey(e){return a.delete(e),{ok:!0}},async stop(){return c=null,{ok:!0}},async steer(e,t){if(n)throw Object.assign(Error(`409 — Steering a Studio turn is not supported.`),{status:409,code:`STEER_UNSUPPORTED`});if(!c||e!==c)throw Object.assign(Error(`409 — This turn already ended.`),{status:409,code:`NO_ACTIVE_TURN`});try{globalThis.localStorage?.setItem(`cozyclay.mock.agent.last-steer`,JSON.stringify({turnId:e,text:t?.text??null,attachments:t?.attachments?.length??0}))}catch{}return{ok:!0,queued:!0}},async acceptJob(){return{ok:!0}},async listSessions(){if(!n)return[];let e=[];try{for(let t=0;t<globalThis.localStorage.length;t+=1){let n=globalThis.localStorage.key(t);if(!n?.startsWith(`cozyclay.mock.agent.session.`))continue;let r=JSON.parse(globalThis.localStorage.getItem(n));r?.meta&&e.push(r.meta)}}catch{}return e.sort((e,t)=>Date.parse(t.updatedAt||0)-Date.parse(e.updatedAt||0)).slice(0,50)},async loadSession(e){try{let t=JSON.parse(globalThis.localStorage.getItem(`cozyclay.mock.agent.session.${e}`));if(t?.transcript)return t}catch{}throw Error(`Mock session not found.`)},async applyImage({requestId:e}){return{ok:!0,receiptId:`mock-${e}`}},async turn(e,r,a){let o=`mock-turn-${++l}`;c=o,e?.onTurnId?.(o);try{globalThis.localStorage?.setItem(`cozyclay.mock.agent.last-turn`,JSON.stringify({turnId:o,model:e?.model??null,effort:e?.effort??null,text:e?.text??null}))}catch{}try{n&&e?.sessionId&&globalThis.localStorage?.setItem(`cozyclay.mock.agent.last-turn-session`,e.sessionId)}catch{}let s=[],u=n&&e?.sessionId?`cozyclay.mock.agent.session.${e.sessionId}`:null;if(u){try{s=JSON.parse(globalThis.localStorage.getItem(u))?.transcript||[]}catch{s=[]}s.push({kind:`user`,text:e.text})}let d=t=>{if(u){if(t.type===`text.delta`){let e=s.at(-1);e?.kind===`assistant`?e.text+=t.text:s.push({kind:`assistant`,text:t.text})}else if(t.type===`tool.start`)s.push({kind:`tool`,name:t.name,label:t.label,ok:!0,elapsedMs:null,callId:t.callId});else if(t.type===`tool.done`){let e=[...s].reverse().find(e=>e.kind===`tool`&&e.callId===t.callId);e&&Object.assign(e,{ok:t.ok,elapsedMs:t.elapsedMs})}else t.type===`receipt`&&s.push({kind:`receipt`,receiptId:t.receipt?.receiptId,summary:t.receipt?.status===`applied`?`Applied to the scene`:`Receipt`});try{globalThis.localStorage.setItem(u,JSON.stringify({sessionId:e.sessionId,transcript:s,meta:{sessionId:e.sessionId,surface:`studio`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),sceneName:`Mock scene`,firstText:s.find(e=>e.kind===`user`)?.text||``}}))}catch{}}r(t)};if(t===`rate-limited`){d({type:`text.delta`,text:`Framing a wide two-shot from the current blocking.`}),d({type:`quota`,plan:`Plus`,primary:{usedPercent:100,windowMinutes:300,resetAt:new Date(Date.now()+252e4).toISOString()},credits:{has:!1}}),d({type:`error`,code:`rate_limit`,message:wj.rate_limit,resetAt:new Date(Date.now()+252e4).toISOString()}),d({type:`done`}),c=null;return}if(t===`error`){d({type:`text.delta`,text:n?`Reading the scene first.`:`Capturing the viewport first.`}),d(n?{type:`tool.start`,callId:`call-1`,name:`inspect_studio`,label:`inspect studio`,args:{scope:`selection`}}:{type:`tool.start`,callId:`call-1`,name:`capture_blocking_frame`,label:`Capture blocking frame`,args:{shot:`current`}}),d({type:`tool.done`,callId:`call-1`,ok:!1,elapsedMs:812,error:n?`The scene is not ready`:`Viewport is not ready`}),d({type:`error`,code:`upstream`,message:wj.upstream}),d({type:`done`}),c=null;return}for(let e of n?qj:Gj){if(a?.aborted||(await i(e.delay),a?.aborted))break;d(e.event)}c=null,await i(240),a?.aborted&&d({type:`done`})}}}function rM(e={}){let t=e.mockConfig===void 0?Uj():e.mockConfig;return t?nM({surface:e.surface,...t}):Hj(e)}function iM(e){let t=e?.outcome;return t?.status===`already_applied`?null:t&&t.mutated===!1?{status:`not_applied`,code:t.code??`CANCELLED`,mutated:!1}:{status:`unknown`,code:t?.code??null,mutated:`unknown`}}function aM(e){return new Promise(t=>{let n=r=>{r.detail?.requestId===e.requestId&&(globalThis.removeEventListener(`cozyclay:agent-image-result`,n),t({ok:!!r.detail.ok,error:r.detail.error,receiptId:r.detail.receiptId}))};globalThis.addEventListener?.(`cozyclay:agent-image-result`,n),!(globalThis.dispatchEvent&&!globalThis.dispatchEvent(new CustomEvent(`cozyclay:agent-image`,{cancelable:!0,detail:e})))&&(globalThis.removeEventListener?.(`cozyclay:agent-image-result`,n),t({ok:!1,error:`No editor accepted the image. Open the scene that should receive it.`}))})}function oM({transport:e,surface:t=`workflow`,buildContext:r=null,requestImageAction:a=null,onAuthLost:o=null,onReceipt:s=null,newId:c=UA,clock:l=()=>Date.now()}={}){let u=t===`studio`,d=new Set,f=new Set,p=new Set,m=null,h=null,g=null,_=new Set,v=new Map,y={sessionId:c(),turnId:null,draft:``,pendingAttachments:[],items:[],streaming:!1,quota:null,rateLimit:null,lastPrompt:``,turnStartedAt:null,lastTurn:null},b=e=>{y={...y,...e};for(let e of[...d])e(y)},x=e=>b({items:e(y.items)}),S=(e,t)=>x(n=>n.map(n=>e(n)?{...n,...t}:n)),C=e=>y.items.find(t=>t.kind===`job`&&t.jobId===e);function w(e){if(!e?.jobId||!i.jobStates.includes(e.state))return;let t=typeof e.progress==`number`&&Number.isFinite(e.progress)?Math.min(1,Math.max(0,e.progress)):null;x(n=>{let r=n.find(t=>t.kind===`job`&&t.jobId===e.jobId),i={kind:`job`,id:r?.id??`job:${e.jobId}`,jobId:e.jobId,commandId:e.commandId??r?.commandId??null,state:e.state,phase:typeof e.phase==`string`?e.phase:r?.phase??null,progress:t??r?.progress??null,verification:r?.verification??null,receiptId:r?.receiptId??null,outcome:r?.outcome??null,acceptance:e.state===`review_required`?r?.acceptance??{status:`required`}:r?.acceptance??null};return r?n.map(e=>e===r?i:e):[...n,i]})}function T(e){let t;try{t=n(e)}catch(e){x(t=>[...t,{kind:`failure`,id:c(),failure:{code:e?.code||`INVALID_RECEIPT`,message:e?.message||`The host returned an unreadable receipt.`,preserved:{authoredState:`unknown`},recovery:{action:`inspect`}}}]);return}if(t.ok===!1){let e=`failure:${t.commandId}:${t.code}`;if(f.has(e))return;f.add(e),x(n=>[...n.map(e=>e.kind===`job`&&e.commandId===t.commandId&&!KA(e.state)?{...e,state:`failed`,phase:t.phase,acceptance:null}:e),{kind:`failure`,id:e,failure:t}]);return}if(!f.has(t.receiptId)){f.add(t.receiptId),x(e=>[...e.map(e=>e.kind===`job`&&e.jobId===t.jobId?{...e,state:t.status===`installed`?`installed`:e.state,verification:t.verification??null,receiptId:t.receiptId,acceptance:t.explicitUnverifiedAcceptance?{status:`accepted`}:null}:e),{kind:`receipt`,id:`receipt:${t.receiptId}`,receiptId:t.receiptId,receipt:t,summary:YA(t,u?Fj(()=>r?.()??null,null):null)}]);try{s?.(t)}catch{}}}function E(t){if(typeof e.supervisor!=`function`)return;let n=new AbortController;_.add(n),Promise.resolve().then(()=>e.supervisor(t,n.signal)).then(e=>{!e||n.signal.aborted||x(n=>[...n,{...e,kind:`supervisor`,id:`supervisor:${t}`}])}).catch(()=>{}).finally(()=>_.delete(n))}let D=()=>{for(let e of _)e.abort();_.clear()};function ee(e){if(h&&[`text.delta`,`tool.start`,`tool.done`,`image`,`job.state`,`job.progress`,`receipt`,`error`].includes(e?.type)&&(h.produced=!0),h&&(e?.type===`tool.done`&&(e.ok?e.result?.authored===!0:Sj.test(String(e.error??``)))||e?.type===`receipt`&&e.receipt?.authored===!0)&&(h.reviewable=!0),e?.type===`text.delta`){x(t=>{let n=t[t.length-1];return n?.kind===`assistant`?[...t.slice(0,-1),{...n,text:n.text+e.text}]:[...t,{kind:`assistant`,id:c(),text:e.text}]});return}if(e?.type===`tool.start`){x(t=>MA(t,{kind:`tool`,id:e.callId||c(),callId:e.callId,name:e.name,label:e.label,args:e.args,status:`running`,startedAt:l(),...CA(e.name,e.args,v)}));return}if(e?.type===`thinking.delta`){x(t=>kA(t,String(e.text??``),l(),c));return}if(e?.type===`tool.compose`){x(t=>jA(t,e,l(),c,v));return}if(e?.type===`tool.progress`){S(t=>t.kind===`tool`&&t.callId===e.callId&&t.status===`running`,{progress:{index:e.index,name:e.name,label:v.get(e.action),action:e.action,status:e.status,summary:e.summary}});return}if(e?.type===`tool.done`){S(t=>t.kind===`tool`&&t.callId===e.callId,{status:e.ok?`done`:`failed`,elapsedMs:e.elapsedMs,result:e.result,error:e.error});let t=e.result;if(e.ok&&t&&typeof t==`object`&&t.ok===!0&&typeof t.receiptId==`string`&&Array.isArray(t.affectedIds))try{s?.(t)}catch{}return}if(e?.type===`image`){x(t=>[...t,{kind:`image`,id:e.imageId||c(),imageId:e.imageId,dataUrl:e.dataUrl,width:e.width,height:e.height,prompt:e.prompt,placed:!1,apply:null}]);return}if(e?.type===`job.state`||e?.type===`job.progress`){w(e);return}if(e?.type===`receipt`){T(e.receipt);return}if(e?.type===`quota`){b({quota:{plan:e.plan,usedPercent:e.primary?.usedPercent,windowMinutes:e.primary?.windowMinutes,resetAt:e.primary?.resetAt,credits:e.credits}});return}if(e?.type!==`error`)return;let t={code:e.code||`upstream`,message:e.code===`unauthorized`?Vj(e.message):e.message||wj[e.code]||`The turn failed.`,...Number.isFinite(e.status)?{status:e.status}:{}};if(h&&(h.failure=t),e.code===`rate_limit`){b({rateLimit:{resetAt:e.resetAt||null,message:e.message||wj.rate_limit}});return}if(e.code===`auth`){o?.();return}x(e=>{let n=e.findLastIndex(e=>e.kind===`user`),r=e.findLastIndex((e,t)=>t>n&&e.kind===`tool`&&e.status===`failed`);return r===-1?[...e,{kind:`failure`,id:c(),failure:{...t,recovery:{action:t.code===`unauthorized`?`fix_key`:`retry`,retryAllowed:!0}}}]:e.map((e,n)=>n===r?{...e,failure:t}:e)})}function te(e,t,n){if(!e||p.has(e))return;p.add(e);let r=!!t?.ok,i={apply:{requestId:e,status:r?`settled`:`failed`,error:r?null:t?.error||`The editor did not apply the image.`,receiptId:t?.receiptId??null}};r&&(i.placed=n===`place`),S(t=>t.kind===`image`&&t.apply?.requestId===e,i)}async function ne(e,t){let n=y.items.find(t=>t.kind===`image`&&t.id===e);if(!n||n.apply?.status===`applying`||(t===`place`?n.placed:!n.placed))return;let r=c();S(t=>t.kind===`image`&&t.id===e,{apply:{requestId:r,status:`applying`,error:null,receiptId:null,startedAt:l()}});let i={action:t,requestId:r,imageId:n.imageId,dataUrl:n.dataUrl,width:n.width,height:n.height,prompt:n.prompt};try{te(r,await(a??aM)(i),t)}catch(e){te(r,{ok:!1,error:String(e?.message||e)},t)}}let O=()=>{D(),f.clear(),p.clear(),b({sessionId:c(),turnId:null,items:[],pendingAttachments:[],rateLimit:null,lastPrompt:``,turnStartedAt:null,lastTurn:null})};return{getState:()=>y,subscribe(e){return d.add(e),()=>d.delete(e)},setDraft:e=>b({draft:String(e??``)}),addAttachments(e){let t=(Array.isArray(e)?e:[]).filter(e=>typeof e?.dataUrl==`string`&&e.dataUrl.startsWith(`data:image/`)).map(e=>({id:c(),dataUrl:e.dataUrl,...e.name?{name:String(e.name).slice(0,120)}:{}})),{attachments:n,rejected:r}=Fk(y.pendingAttachments,t,4),i=n.length-y.pendingAttachments.length;return b({pendingAttachments:n}),{added:i,rejected:r}},removeAttachment:e=>b({pendingAttachments:y.pendingAttachments.filter(t=>t.id!==e)}),clearAttachments:()=>b({pendingAttachments:[]}),async send(t,n={}){let i=String(t??``).trim();if(!i||y.streaming)return;let a=c(),o=u?r?.()??null:null;if(v=xA(o),u&&!o){ee({type:`error`,code:`upstream`,message:`The editor is not ready to describe the scene yet.`});return}let s=l(),d={produced:!1,failure:null,reviewable:!1};h=d;let f=(Array.isArray(n.attachments)?n.attachments:y.pendingAttachments).slice(0,4).map(({dataUrl:e,name:t})=>({dataUrl:e,...t?{name:t}:{}}));b({lastPrompt:i,rateLimit:null,turnId:a,streaming:!0,draft:``,pendingAttachments:[],turnStartedAt:s,lastTurn:null,items:[...y.items,{kind:`user`,id:c(),text:i,attachFrame:!!n.attachFrame,attachments:f}]}),m=new AbortController;let p=m.signal;try{await e.turn({onTurnId:e=>{g=e},...u?{surface:`studio`,turnId:a,context:o}:{},sessionId:y.sessionId,text:i,...f.length?{attachments:f}:{},attachFrame:!!n.attachFrame,model:n.model,effort:n.effort??void 0,...typeof n.supervisor==`boolean`?{supervisor:n.supervisor}:{}},ee,p)}catch(e){p.aborted||ee({type:`error`,code:`upstream`,message:String(e?.message||e)})}finally{if(m?.signal===p&&(m=null),h===d){g=null,!d.produced&&!d.failure&&!p.aborted&&(d.failure={code:`no_output`,message:`The turn ended without a response.`,recovery:{action:`retry`,retryAllowed:!0}},x(e=>[...e,{kind:`failure`,id:c(),failure:d.failure}]));let e=l();h=null;let t={status:p.aborted?`stopped`:d.failure?`failed`:`done`,endedAt:e,durationMs:e-s,failure:d.failure};b({streaming:!1,turnStartedAt:null,lastTurn:t,items:NA(y.items,t,c)}),u&&d.reviewable&&n.supervisor===!0&&!p.aborted&&E(a)}}},async steer(t,n={}){let r=String(t??``).trim();if(!r)return{ok:!1,code:`EMPTY`,message:``};if(!y.streaming||!g||typeof e.steer!=`function`)return{ok:!1,code:`NO_ACTIVE_TURN`,message:xj.NO_ACTIVE_TURN};let i=(Array.isArray(n.attachments)?n.attachments:y.pendingAttachments).slice(0,4).map(({dataUrl:e,name:t})=>({dataUrl:e,...t?{name:t}:{}}));try{await e.steer(g,{text:r,...i.length?{attachments:i}:{}})}catch(e){let t=typeof e?.code==`string`?e.code:`upstream`;return{ok:!1,code:t,message:xj[t]||String(e?.message||e)}}return b({draft:``,pendingAttachments:[],items:[...y.items,{kind:`user`,id:c(),text:r,steered:!0,attachments:i}]}),{ok:!0,code:null,message:``}},stop(){let t=[...y.items].reverse().find(e=>e.kind===`job`&&!KA(e.state));m?.abort(`agent-stop`),m=null;let n=u?{sessionId:y.sessionId,turnId:y.turnId,...t?{jobId:t.jobId}:{}}:y.sessionId;if(Promise.resolve(e.stop?.(n)).then(e=>{if(!t)return;let n=iM(e);n&&(S(e=>e.kind===`job`&&e.jobId===t.jobId&&!KA(e.state),{state:n.status===`not_applied`?`cancelled`:`reconciling`,phase:null,outcome:n,acceptance:null}),S(e=>e.kind===`tool`&&e.status===`running`,{status:`cancelled`,result:n,elapsedMs:null}))}).catch(()=>{}),!y.streaming){b({streaming:!1});return}let r=l();b({streaming:!1,turnStartedAt:null,lastTurn:{status:`stopped`,endedAt:r,durationMs:r-(y.turnStartedAt??r),failure:null}})},async acceptJob(t){let n=C(t);if(!(!n||n.acceptance?.status!==`required`)){S(e=>e.kind===`job`&&e.jobId===t,{acceptance:{status:`accepting`}});try{let n=await e.acceptJob?.({jobId:t,sessionId:y.sessionId,turnId:y.turnId});n?.receipt?T(n.receipt):S(e=>e.kind===`job`&&e.jobId===t,{acceptance:{status:`required`,error:`The host did not acknowledge the acceptance.`}})}catch(e){S(e=>e.kind===`job`&&e.jobId===t,{acceptance:{status:`required`,error:String(e?.message||e)}})}}},applyImage:e=>ne(e,`place`),undoImage:e=>ne(e,`remove`),acknowledgeImageAction:({requestId:e,ok:t,error:n,receiptId:r})=>{let i=y.items.find(t=>t.kind===`image`&&t.apply?.requestId===e);te(e,{ok:t,error:n,receiptId:r},i?.placed?`remove`:`place`)},clearRateLimit:()=>b({rateLimit:null}),clearContext:O,newSession:O,restore:(e,t=y.sessionId)=>{D(),f.clear(),p.clear();let n=new Set,r=(Array.isArray(e)?e:[]).flatMap(e=>{if(e?.kind===`user`||e?.kind===`assistant`){let t=Array.isArray(e.attachments)?e.attachments.filter(e=>typeof e?.dataUrl==`string`):[];return[{kind:e.kind,id:c(),text:String(e.text??``),...t.length?{attachments:t}:{}}]}return e?.kind===`tool`?[{kind:`tool`,id:c(),callId:c(),name:e.name||`tool`,label:e.label,ok:e.ok,elapsedMs:e.elapsedMs,status:e.ok===!1?`failed`:`done`}]:e?.kind===`receipt`?e.receiptId&&n.has(e.receiptId)?[]:(e.receiptId&&(n.add(e.receiptId),f.add(e.receiptId)),[{kind:`receipt`,id:`receipt:${e.receiptId||c()}`,receiptId:e.receiptId,summary:e.summary||`Receipt`,receipt:{status:`applied`,warnings:[],verification:{status:`verified`}}}]):e?.kind===`failure`?[{kind:`failure`,id:c(),failure:{code:e.code||`upstream`,message:String(e.message||`The turn failed.`),recovery:{action:`retry`,retryAllowed:!0}}}]:[]}),i=[...r].reverse().find(e=>e.kind===`user`)?.text||``;return b({sessionId:t,turnId:null,items:r,rateLimit:null,lastPrompt:i,turnStartedAt:null,lastTurn:null,streaming:!1}),r}}}var sM=(0,Q.createContext)(null);function cM(){return(0,Q.useContext)(sM)}function lM(e){return!!(e?.isComposing||e?.nativeEvent?.isComposing||e?.keyCode===229||e?.which===229)}var uM=(e,t,n={})=>({type:e,title:t,...n}),dM={version:1,categories:{text:{models:{"text-passthrough":{name:`Input Text`,input_schema:{schemas:{input_data:{properties:{prompt:uM(`string`,`Prompt`)}}}}},"text-generation":{name:`Text Generation`,input_schema:{schemas:{input_data:{properties:{prompt:uM(`string`,`Prompt`),temperature:uM(`number`,`Temperature`,{default:.7,minimum:0,maximum:2,step:.1})}}}}}}},image:{models:{"image-passthrough":{name:`Input Image`,input_schema:{schemas:{input_data:{properties:{image_url:uM(`string`,`Image URL`,{format:`uri`})}}}}},"image-generation":{name:`Image Generation`,input_schema:{schemas:{input_data:{properties:{prompt:uM(`string`,`Prompt`),image_url:uM(`string`,`Reference image`,{format:`uri`}),aspect_ratio:uM(`string`,`Aspect ratio`,{enum:[`auto`,`1:1`,`16:9`,`9:16`]})}}}}}}},video:{models:{"video-passthrough":{name:`Input Video`,input_schema:{schemas:{input_data:{properties:{video_url:uM(`string`,`Video URL`,{format:`uri`})}}}}},"video-generation":{name:`Video Generation`,input_schema:{schemas:{input_data:{properties:{provider:uM(`string`,`Provider`,{enum:[`comfy`,`fal`],default:`comfy`}),prompt:uM(`string`,`Motion prompt`),duration_seconds:uM(`number`,`Duration`,{default:5,minimum:1,maximum:15,step:1}),aspect:uM(`string`,`Aspect ratio`,{enum:[`16:9`,`9:16`,`1:1`,`21:9`,`12:7`],default:`16:9`})}}}}}}},audio:{models:{"audio-passthrough":{name:`Input Audio`,input_schema:{schemas:{input_data:{properties:{audio_url:uM(`string`,`Audio URL`,{format:`uri`})}}}}},"audio-generation":{name:`Audio Generation`,input_schema:{schemas:{input_data:{properties:{prompt:uM(`string`,`Prompt`),duration:uM(`integer`,`Duration`,{default:10,minimum:1,maximum:60})}}}}}}},api:{models:{"api-model":{name:`API Model`,input_schema:{properties:{input:uM(`string`,`Input`),params:uM(`object`,`Parameters`,{default:{}})}}}}},utility:{models:{"prompt-concatenator":{name:`Prompt Concat`,input_schema:{schemas:{input_data:{properties:{template:uM(`string`,`Template`,{default:`{prompt} {style}`})}}}}},"video-combiner":{name:`Video Combiner`,input_schema:{schemas:{input_data:{properties:{videos_list:uM(`array`,`Video URLs`,{items:{type:`string`}}),aspect_ratio:uM(`string`,`Aspect ratio`,{enum:[`auto`,`16:9`,`9:16`,`1:1`]})}}}}}}}}};function fM(e,t){let n=e?.categories?.[t]?.models||{};return Object.entries(n).map(([e,t])=>({...t,id:e,name:t.name||e.replace(/-/g,` `)}))}function pM(e,t,n){let r=e?.categories?.[t]?.models?.[n]?.input_schema||{};return r?.schemas?.input_data||r}function mM(e,t,n){return pM(e,t,n)?.properties||{}}function hM(e={}){return Object.fromEntries(Object.entries(e).map(([e,t])=>t.default===void 0?t.enum?.length?[e,t.enum[0]]:t.type===`array`?[e,[]]:t.type===`object`?[e,{}]:t.type===`boolean`?[e,!1]:[e,``]:[e,t.default]))}function gM(e){return[`concat`,`video-combiner`,`shot-prompt`].includes(e)?`utility`:e}var _M=12,vM=new Map,yM=[],bM=new Set,xM=0,SM=0;function CM(){xM++;for(let e of[...bM])try{e()}catch{}}var wM=(e,t)=>Object.fromEntries(t.filter(t=>e?.[t]!==void 0).map(t=>[t,e[t]]));function TM(e,{take:t,installed:n=!1,specId:r=null,label:i=null,qa:a=null,timeline:o=[]}){let s=vM.get(e)??[],c=Object.freeze({n:(s.at(-1)?.n??0)+1,at:Date.now(),seq:++SM,characterId:e,take:t,frames:t?.frameCount??0,installed:!!n,specId:r,label:i,qa:{ok:!!a?.ok,total:a?.total??0,groups:(a?.groups??[]).map(e=>wM(e,[`kind`,`subject`,`count`,`first`,`last`,`worst`])),goals:(a?.goals??[]).map(e=>wM(e,[`name`,`kind`,`ok`,`value`,`need`,`at`]))},timeline:o??[]});return vM.set(e,[...s,c].slice(-12)),CM(),c}var EM=e=>vM.get(e)??[];function DM(e){if(e!==void 0)return EM(e).at(-1)??null;let t=null;for(let e of vM.values())e.length&&(!t||e.at(-1).seq>t.seq)&&(t=e.at(-1));return t}function OM({characterId:e=null,dataUrl:t,width:n=0,height:r=0,caption:i=``,frames:a=[]}){let o=Object.freeze({at:Date.now(),seq:++SM,characterId:e,dataUrl:t,width:n,height:r,caption:i,frames:a});return yM.push(o),yM.splice(0,Math.max(0,yM.length-_M)),CM(),o}var kM=()=>[...yM];function AM(){vM.clear(),yM.length=0,CM()}function jM(e){return bM.add(e),()=>{bM.delete(e)}}var MM=()=>xM,NM=new Set([...new Set([`motion:generate_requested`,`motion:preflight_blocked`,`motion:preflight_passed`,`motion:job_started`,`motion:job_succeeded`,`motion:job_failed`,`motion:result_applied`]),...p.filter(e=>e.startsWith(`mcp:`))]),PM=`5184`,FM=((e=PM)=>`ws://127.0.0.1:${e}/live`)(),IM=1e3,LM=15e3,RM=.25,zM=2e4,BM=1e4,VM=2e3,HM=`cozyclay:live-workspace-id`,UM=1008,WM=``;function GM(e){try{return e??globalThis.sessionStorage??null}catch{return null}}function KM(){return globalThis.crypto?.randomUUID?.()??`live-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function qM(e,t){WM=e;try{GM(t)?.setItem(HM,e)}catch{}return e}function JM(e){try{let t=GM(e)?.getItem(HM);if(typeof t==`string`&&t)return WM=t,t}catch{}return WM||qM(KM(),e)}function YM(e){return qM(KM(),e)}function XM(e,{target:t=globalThis,doc:n=globalThis.document}={}){if(typeof t?.addEventListener!=`function`)return()=>{};let r=()=>{n?.visibilityState===`visible`&&e()},i=[`online`,`focus`,`pageshow`];for(let n of i)t.addEventListener(n,e);return n?.addEventListener?.(`visibilitychange`,r),()=>{for(let n of i)t.removeEventListener(n,e);n?.removeEventListener?.(`visibilitychange`,r)}}var ZM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),now:()=>globalThis.performance?.now?.()??Date.now()};function QM(e){return e?.code===UM&&typeof e.reason==`string`&&e.reason.includes(`Workspace id is already connected`)}function $M(e){return e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:`Command failed`}function eN(e,t,n){return t?{type:`result`,id:e,ok:!0,value:n??{}}:{type:`result`,id:e,ok:!1,error:n}}async function tN(e,t={}){if(typeof e!=`string`)return null;let n;try{n=JSON.parse(e)}catch{return null}if(!n||typeof n!=`object`||Array.isArray(n)||n.type!==`cmd`||typeof n.id!=`string`)return null;if(typeof n.name!=`string`||!n.name)return eN(n.id,!1,`Invalid command name`);if(!n.args||typeof n.args!=`object`||Array.isArray(n.args))return eN(n.id,!1,`Invalid command arguments`);let r=t[n.name];if(typeof r!=`function`)return eN(n.id,!1,`Unknown command: ${n.name}`);try{return eN(n.id,!0,await r(n.args))}catch(e){return eN(n.id,!1,$M(e))}}function nN({handlers:e={},onWorkspace:t=()=>{},onEvent:n=()=>{},onDuplicate:r=()=>YM(),captureMotionTelemetry:i=y,captureTelemetry:a=y,workspaceId:o=``,meta:s=null,WebSocketImpl:c=globalThis.WebSocket,url:l=FM,timers:u=ZM,random:d=Math.random,listen:m=XM}={}){let g=e,_=o,v=null,b=null,x=0,S=!1,C=null,w=0,T=0,E=!1,D=null,ee=new Set,te=e=>{if(!NM.has(e.event))return;let t=f(e.event,e.props),n=t.request_id;if(!n||p.includes(e.event)&&h[e.event]?.some(e=>!Object.hasOwn(t,e))||(e.event===`motion:generate_requested`||e.event.startsWith(`motion:preflight_`))&&t.surface!==`mcp`)return;let r=`${n}:${e.event}`;if(ee.has(r))return;ee.add(r);let o=e.event.startsWith(`motion:`)?i:a;try{Promise.resolve(o(e.event,t)).catch(()=>{})}catch{}},ne=()=>{b!==null&&u.clearTimeout(b),b=null},O=()=>{let e=Math.min(IM*2**x,LM);return x+=1,Math.round(e*(1+(d()*2-1)*RM))},re=()=>{S||b!==null||v||(b=u.setTimeout(()=>{b=null,j()},O()))},k=()=>{S||v||(ne(),j())},A=()=>{C!==null&&u.clearTimeout(C),C=null,E=!1,D=null},ie=e=>{C!==null&&u.clearTimeout(C),w=u.now(),T=e,C=u.setTimeout(oe,e)},ae=e=>{A(),!(typeof e!=`number`||!(e>0))&&(E=!0,ie(zM))};function oe(){if(C=null,S||!E||!v)return;let e=u.now();if(e-w>T+VM){D=null,ie(zM);return}if(D===null){ce({type:`ping`}),D=e,ie(BM);return}let t=e-D;if(t>=1e4){se();return}ie(BM-t)}let se=()=>{let e=v;v=null,A();try{e?.close()}catch{}re()},ce=e=>{if(!(!v||v.readyState!==(v.OPEN??1)))try{v.send(JSON.stringify(e))}catch{}},j=()=>{if(S||!c)return;ne(),A();try{v=new c(l)}catch{v=null,re();return}let e=v;e.onopen=()=>{v!==e||S||ce({type:`hello`,role:`editor`,version:1,..._?{workspaceId:_}:{},...s?{meta:s}:{}})},e.onmessage=async r=>{if(v!==e||S)return;if(typeof r?.data==`string`)try{let e=JSON.parse(r.data);if(e?.type===`workspace`&&typeof e.handle==`string`){x=0,ae(e.heartbeatMs),t(e.handle);return}if(e?.type===`pong`){E&&(D=null,ie(zM));return}if(e?.type===`event`&&typeof e.name==`string`&&e.payload&&typeof e.payload==`object`){if(e.name===`motion_telemetry`||e.name===`telemetry`){te(e.payload);return}n(e.name,e.payload);return}}catch{}let i=await tN(r?.data,g);i&&ce(i)},e.onerror=()=>{},e.onclose=t=>{if(v===e&&(v=null,A()),QM(t)){x=0;try{let e=r();typeof e==`string`&&e&&(_=e)}catch{}}re()}},le=m(k)??(()=>{});return j(),{setHandlers(e){g=e&&typeof e==`object`?e:{}},close(){S=!0,ne(),A();try{le()}catch{}let e=v;v=null;try{e?.close()}catch{}}}}var rN={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},iN=Q.createContext&&Q.createContext(rN),aN=[`attr`,`size`,`title`];function oN(e,t){if(e==null)return{};var n,r,i=sN(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function sN(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function cN(){return cN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cN.apply(null,arguments)}function lN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uN(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?lN(Object(n),!0).forEach(function(t){dN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function dN(e,t,n){return(t=fN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fN(e){var t=pN(e,`string`);return typeof t==`symbol`?t:t+``}function pN(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function mN(e){return e&&e.map((e,t)=>Q.createElement(e.tag,uN({key:t},e.attr),mN(e.child)))}function hN(e){return t=>Q.createElement(gN,cN({attr:uN({},e.attr)},t),mN(e.child))}function gN(e){var t=t=>{var n=e.attr,r=e.size,i=e.title,a=oN(e,aN),o=r||t.size||`1em`,s;return t.className&&(s=t.className),e.className&&(s=(s?s+` `:``)+e.className),Q.createElement(`svg`,cN({stroke:`currentColor`,fill:`currentColor`,strokeWidth:`0`},t.attr,n,a,{className:s,style:uN(uN({color:e.color||t.color},t.style),e.style),height:o,width:o,xmlns:`http://www.w3.org/2000/svg`}),i&&Q.createElement(`title`,null,i),e.children)};return iN===void 0?t(rN):Q.createElement(iN.Consumer,null,e=>t(e))}function _N(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`line`,attr:{x1:`18`,y1:`6`,x2:`6`,y2:`18`},child:[]},{tag:`line`,attr:{x1:`6`,y1:`6`,x2:`18`,y2:`18`},child:[]}]})(e)}function vN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polygon`,attr:{points:`23 7 16 12 23 17 23 7`},child:[]},{tag:`rect`,attr:{x:`1`,y:`5`,width:`15`,height:`14`,rx:`2`,ry:`2`},child:[]}]})(e)}function yN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`},child:[]},{tag:`polyline`,attr:{points:`17 8 12 3 7 8`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`3`,x2:`12`,y2:`15`},child:[]}]})(e)}function bN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`4 7 4 4 20 4 20 7`},child:[]},{tag:`line`,attr:{x1:`9`,y1:`20`,x2:`15`,y2:`20`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`4`,x2:`12`,y2:`20`},child:[]}]})(e)}function xN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,ry:`2`},child:[]}]})(e)}function SN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`23 4 23 10 17 10`},child:[]},{tag:`path`,attr:{d:`M20.49 15a9 9 0 1 1-2.12-9.36L23 10`},child:[]}]})(e)}function CN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`line`,attr:{x1:`12`,y1:`5`,x2:`12`,y2:`19`},child:[]},{tag:`line`,attr:{x1:`5`,y1:`12`,x2:`19`,y2:`12`},child:[]}]})(e)}function wN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polygon`,attr:{points:`5 3 19 12 5 21 5 3`},child:[]}]})(e)}function TN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`},child:[]}]})(e)}function EN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M9 18V5l12-2v13`},child:[]},{tag:`circle`,attr:{cx:`6`,cy:`18`,r:`3`},child:[]},{tag:`circle`,attr:{cx:`18`,cy:`16`,r:`3`},child:[]}]})(e)}function DN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`1`},child:[]},{tag:`circle`,attr:{cx:`19`,cy:`12`,r:`1`},child:[]},{tag:`circle`,attr:{cx:`5`,cy:`12`,r:`1`},child:[]}]})(e)}function ON(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`},child:[]},{tag:`path`,attr:{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`},child:[]}]})(e)}function kN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,ry:`2`},child:[]},{tag:`circle`,attr:{cx:`8.5`,cy:`8.5`,r:`1.5`},child:[]},{tag:`polyline`,attr:{points:`21 15 16 10 5 21`},child:[]}]})(e)}function AN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{x:`2`,y:`2`,width:`20`,height:`20`,rx:`2.18`,ry:`2.18`},child:[]},{tag:`line`,attr:{x1:`7`,y1:`2`,x2:`7`,y2:`22`},child:[]},{tag:`line`,attr:{x1:`17`,y1:`2`,x2:`17`,y2:`22`},child:[]},{tag:`line`,attr:{x1:`2`,y1:`12`,x2:`22`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`2`,y1:`7`,x2:`7`,y2:`7`},child:[]},{tag:`line`,attr:{x1:`2`,y1:`17`,x2:`7`,y2:`17`},child:[]},{tag:`line`,attr:{x1:`17`,y1:`17`,x2:`22`,y2:`17`},child:[]},{tag:`line`,attr:{x1:`17`,y1:`7`,x2:`22`,y2:`7`},child:[]}]})(e)}function jN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`},child:[]},{tag:`polyline`,attr:{points:`14 2 14 8 20 8`},child:[]},{tag:`line`,attr:{x1:`16`,y1:`13`,x2:`8`,y2:`13`},child:[]},{tag:`line`,attr:{x1:`16`,y1:`17`,x2:`8`,y2:`17`},child:[]},{tag:`polyline`,attr:{points:`10 9 9 9 8 9`},child:[]}]})(e)}function MN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`},child:[]},{tag:`polyline`,attr:{points:`7 10 12 15 17 10`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`15`,x2:`12`,y2:`3`},child:[]}]})(e)}function NN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`},child:[]},{tag:`path`,attr:{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`},child:[]}]})(e)}function PN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`16 18 22 12 16 6`},child:[]},{tag:`polyline`,attr:{points:`8 6 2 12 8 18`},child:[]}]})(e)}function FN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`10`},child:[]},{tag:`polyline`,attr:{points:`12 6 12 12 16 14`},child:[]}]})(e)}function IN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`9 18 15 12 9 6`},child:[]}]})(e)}function LN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`20 6 9 17 4 12`},child:[]}]})(e)}function RN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z`},child:[]},{tag:`polyline`,attr:{points:`3.27 6.96 12 12.01 20.73 6.96`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`22.08`,x2:`12`,y2:`12`},child:[]}]})(e)}function zN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`line`,attr:{x1:`12`,y1:`19`,x2:`12`,y2:`5`},child:[]},{tag:`polyline`,attr:{points:`5 12 12 5 19 12`},child:[]}]})(e)}function BN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`9`,x2:`12`,y2:`13`},child:[]},{tag:`line`,attr:{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`},child:[]}]})(e)}function VN(e){return hN({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`polyline`,attr:{points:`22 12 18 12 15 21 9 3 6 12 2 12`},child:[]}]})(e)}var HN=e=>Math.round(e*10)/10,UN=e=>`${(e*100).toFixed(1)} cm`,WN=e=>`${e<0?`−`:`+`}${(Math.abs(e)*100).toFixed(1)} cm`;function GN(e,{width:t=220,height:n=40,pad:r=4}={}){if(!e.length)return{points:[],max:0,first:null,last:null};let i=Math.max(1,...e),a=e.length,o=e=>a===1?t/2:r+e*(t-2*r)/(a-1),s=e=>r+(1-e/i)*(n-2*r);return{points:e.map((e,t)=>[HN(o(t)),HN(s(e))]),max:i,first:e[0],last:e[a-1]}}function KN(e=[]){return e.map(e=>{let t=e.kind===`above`?WN:e.kind===`speed`?e=>`${Math.round(e*100)/100} m/s`:UN,n=Number.isFinite(e.value)?t(e.value):`—`,r=Number.isFinite(e.need)?`${e.kind===`near`||e.kind===`still`?`≤`:`≥`} ${t(e.need)}`:``;return{name:e.name??e.kind??`goal`,ok:!!e.ok,value:n,need:r,at:Number.isFinite(e.at)?`f${e.at}`:``}})}function qN(e=[],t=3){return e.filter(e=>e.kind!==`GOAL`).slice(0,t).map(e=>({kind:e.kind??``,subject:e.subject??``,count:e.count??0,frames:Number.isFinite(e.first)?Number.isFinite(e.last)&&e.last!==e.first?`f${e.first}–${e.last}`:`f${e.first}`:``}))}var JN=e=>e.filter(e=>e.kind===`user`&&!e.steered).length;function YN({kind:e,views:t=[],frames:n=[]}={}){let r=n.length?n.length>1?`f${n[0]}–${n[n.length-1]}`:`f${n[0]}`:``;return[e,t.join(`, `),r].filter(Boolean).join(` · `)}var XN=220,ZN=40;function QN({totals:e}){let{points:t,first:n,last:r}=GN(e,{width:XN,height:ZN});if(!t.length)return null;let[i,a]=t[t.length-1],o=P(`QA issues by draft: ${e.join(`, `)}`,`초안별 QA 문제 수: ${e.join(`, `)}`);return(0,$.jsxs)(`div`,{className:`agent-progress-trend`,children:[(0,$.jsxs)(`svg`,{viewBox:`0 0 ${XN} ${ZN}`,role:`img`,"aria-label":o,preserveAspectRatio:`none`,children:[(0,$.jsx)(`line`,{className:`base`,x1:4,y1:36,x2:216,y2:36}),t.length>1&&(0,$.jsx)(`polyline`,{className:`line`,points:t.map(e=>e.join(`,`)).join(` `)}),t.slice(0,-1).map(([e,t],n)=>(0,$.jsx)(`circle`,{className:`dot`,cx:e,cy:t,r:1.8},n)),(0,$.jsx)(`circle`,{className:`end ${r===0?`ok`:`issue`}`,cx:i,cy:a,r:3.4})]}),(0,$.jsx)(`span`,{className:`agent-progress-trend-text`,children:e.length>1?`${n} → ${r}`:`${r}`})]})}function $N({sheet:e,onClose:t}){return(0,Q.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,ck.createPortal)((0,$.jsxs)(`button`,{type:`button`,className:`agent-progress-viewer`,"aria-label":P(`Close image`,`이미지 닫기`),onClick:t,children:[(0,$.jsx)(`img`,{src:e.dataUrl,alt:e.caption||P(`Image the agent checked`,`에이전트가 확인한 이미지`)}),e.caption&&(0,$.jsx)(`span`,{className:`agent-progress-viewer-caption`,children:e.caption})]}),document.body)}function eP({items:e,since:t=null,live:n=!1}){(0,Q.useSyncExternalStore)(jM,MM);let[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)({}),s=e=>o(t=>({...t,[e]:!t[e]})),c=JN(e),l=(0,Q.useRef)(c);(0,Q.useEffect)(()=>{c>l.current&&AM(),l.current=c},[c]);let u=e=>t!==null&&e.at>=t,d=DM(),f=d&&u(d)?d:null,p=kM().filter(u),m=r&&p.find(e=>e.seq===r);if(!f&&!p.length)return null;let h=f?EM(f.characterId).filter(u):[],g=KN(f?.qa.goals),_=f&&!f.qa.ok?qN(f.qa.groups):[];return(0,$.jsxs)(`div`,{className:`agent-row`,children:[(0,$.jsxs)(`div`,{className:`agent-card agent-progress-card`,"data-agent-card":`progress`,"data-drafts":h.length,"data-installed":f?.installed?`true`:`false`,role:`status`,"aria-live":`polite`,children:[f&&(0,$.jsxs)(`div`,{className:`agent-progress-head`,children:[(0,$.jsxs)(`span`,{className:`agent-progress-title`,children:[P(`Draft`,`초안`),` `,f.n,` · QA `,f.qa.total]}),(0,$.jsx)(`span`,{className:`agent-progress-chip ${f.installed?`installed`:`draft`}`,children:f.installed?P(`Installed`,`설치됨`):n?P(`Not installed yet`,`아직 설치 전`):P(`Not installed`,`설치 안 됨`)})]}),f?.label&&(0,$.jsx)(`p`,{className:`agent-progress-label`,children:f.label}),h.length>0&&(0,$.jsxs)(`section`,{className:`agent-progress-section`,children:[(0,$.jsx)(`h4`,{children:P(`QA issues across ${h.length} draft${h.length===1?``:`s`}`,`초안 ${h.length}개의 QA 문제 수`)}),(0,$.jsx)(QN,{totals:h.map(e=>e.qa.total)})]}),g.length>0&&(0,$.jsxs)(`section`,{className:`agent-progress-section`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`agent-progress-fold`,"aria-expanded":!!a.goals,onClick:()=>s(`goals`),children:[(0,$.jsx)(`h4`,{children:P(`Goals`,`목표`)}),(0,$.jsx)(`span`,{children:P(`${g.filter(e=>e.ok).length} of ${g.length} met`,`${g.length}개 중 ${g.filter(e=>e.ok).length}개 충족`)})]}),a.goals&&(0,$.jsx)(`ul`,{className:`agent-progress-goals`,children:g.map((e,t)=>(0,$.jsxs)(`li`,{"data-goal-ok":e.ok?`true`:`false`,children:[(0,$.jsx)(`span`,{className:`agent-progress-mark ${e.ok?`ok`:`miss`}`,"aria-label":e.ok?P(`met`,`충족`):P(`missed`,`미충족`),children:e.ok?(0,$.jsx)(LN,{size:11}):(0,$.jsx)(_N,{size:11})}),(0,$.jsx)(`span`,{className:`agent-progress-goal-name`,children:e.name}),(0,$.jsxs)(`span`,{className:`agent-progress-goal-value`,children:[e.value,e.need&&(0,$.jsxs)(`span`,{className:`need`,children:[` / `,e.need]})]})]},t))})]}),_.length>0&&(0,$.jsxs)(`section`,{className:`agent-progress-section`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`agent-progress-fold`,"aria-expanded":!!a.issues,onClick:()=>s(`issues`),children:[(0,$.jsx)(`h4`,{children:P(`Largest issues`,`가장 큰 문제`)}),(0,$.jsxs)(`span`,{children:[_[0].kind,` `,_[0].subject]})]}),a.issues&&(0,$.jsx)(`ul`,{className:`agent-progress-issues`,children:_.map((e,t)=>(0,$.jsxs)(`li`,{children:[(0,$.jsx)(`span`,{className:`kind`,children:e.kind}),` `,e.subject,` `,(0,$.jsxs)(`span`,{className:`meta`,children:[`×`,e.count,e.frames&&` · ${e.frames}`]})]},t))})]}),p.length>0&&(0,$.jsxs)(`section`,{className:`agent-progress-section`,children:[(0,$.jsx)(`h4`,{children:P(`What the agent looked at`,`에이전트가 본 화면`)}),(0,$.jsx)(`div`,{className:`agent-progress-sheets`,children:p.map(e=>(0,$.jsx)(`button`,{type:`button`,className:`agent-progress-sheet`,title:e.caption,onClick:()=>i(e.seq),children:(0,$.jsx)(`img`,{src:e.dataUrl,alt:e.caption||P(`Image the agent checked`,`에이전트가 확인한 이미지`)})},e.seq))})]})]}),m&&(0,$.jsx)($N,{sheet:m,onClose:()=>i(null)})]})}var tP=(e,t)=>dA(globalThis.fetch.bind(globalThis),e,t),nP=e=>`/agent/logins/${encodeURIComponent(e)}`;async function rP(){let e=await tP(`/agent/logins`);return Array.isArray(e?.providers)?e.providers:[]}async function iP(e,t){return(await tP(`/agent/logins`,{method:`POST`,body:JSON.stringify({providerId:e,type:t})})).flowId}async function aP(e,t){return tP(`${nP(e)}?after=${t}`)}async function oP(e,t,n){return tP(`${nP(e)}/answer`,{method:`POST`,body:JSON.stringify({promptId:t,value:n})})}async function sP(e){return tP(nP(e),{method:`DELETE`})}async function cP(e){return tP(`/agent/logout/${encodeURIComponent(e)}`,{method:`POST`})}var lP=[[`Connected`,e=>e.connected],[`Subscriptions`,e=>!e.connected&&e.methods.some(e=>e.subscription)],[`API keys`,e=>!e.connected&&!e.methods.some(e=>e.subscription)]];function uP({prompt:e,onSubmit:t}){let[n,r]=(0,Q.useState)(``),i=e.prompt;if(i.type===`select`)return(0,$.jsxs)(`div`,{className:`agent-login-choices`,role:`group`,"aria-label":i.message,children:[(0,$.jsx)(`p`,{className:`agent-login-ask`,children:i.message}),(i.options??[]).map(e=>(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button`,onClick:()=>t(e.id),children:e.label},e.id))]});let a=`agent-login-${e.promptId}`;return(0,$.jsxs)(`form`,{className:`agent-login-form`,onSubmit:e=>{e.preventDefault(),t(n),r(``)},children:[(0,$.jsx)(`label`,{className:`agent-login-ask`,htmlFor:a,children:i.message}),(0,$.jsxs)(`div`,{className:`agent-key-controls`,children:[(0,$.jsx)(`input`,{id:a,className:`agent-key-input`,type:i.type===`secret`?`password`:`text`,autoComplete:`off`,spellCheck:`false`,placeholder:i.placeholder??``,value:n,autoFocus:!0,onChange:e=>r(e.target.value)}),(0,$.jsx)(`button`,{type:`submit`,className:`agent-key-save`,disabled:i.type===`secret`&&!n.trim(),children:`Continue`})]})]})}function dP({entries:e}){return(0,$.jsx)(`ul`,{className:`agent-login-log`,children:e.map((e,t)=>{let n=e.event;return n.type===`auth_url`?(0,$.jsxs)(`li`,{children:[(0,$.jsx)(`a`,{className:`agent-primary-button agent-login-open`,href:n.url,target:`_blank`,rel:`noopener noreferrer`,children:`Open the sign-in page`}),n.instructions&&(0,$.jsx)(`span`,{className:`agent-key-note`,children:n.instructions})]},t):n.type===`device_code`?(0,$.jsxs)(`li`,{children:[(0,$.jsx)(`span`,{className:`agent-key-note`,children:`Enter this code at `}),(0,$.jsx)(`a`,{href:n.verificationUri,target:`_blank`,rel:`noopener noreferrer`,children:n.verificationUri}),(0,$.jsx)(`code`,{className:`agent-login-code`,children:n.userCode})]},t):(0,$.jsxs)(`li`,{className:`agent-key-note`,children:[n.message,(n.links??[]).map(e=>(0,$.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[` `,e.label||e.url]},e.url))]},t)})})}function fP({onClose:e,onChatGPT:t,onChanged:n}){let[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(``),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(null),d=(0,Q.useRef)(!0),f=(0,Q.useCallback)(async()=>{try{i(await rP()),o(``)}catch(e){o(e?.message||`The login list is unavailable.`)}},[]);(0,Q.useEffect)(()=>(d.current=!0,f(),()=>{d.current=!1}),[f]),(0,Q.useEffect)(()=>{if(!l?.flowId||l.done)return;let e=!1;return(async()=>{let t=0;for(;!e&&d.current;){let r;try{r=await aP(l.flowId,t)}catch(t){e||u(e=>e&&{...e,done:!0,ok:!1,message:t?.message||`The login stopped.`});return}if(e)return;t=r.next;for(let e of r.events)u(t=>!t||t.flowId!==l.flowId?t:e.type===`prompt`?{...t,prompt:e}:e.type===`prompt_closed`?t.prompt?.promptId===e.promptId?{...t,prompt:null}:t:e.type===`event`?{...t,log:[...t.log,e]}:{...t,prompt:null,done:!0,ok:e.ok,message:e.message??``}),e.type===`done`&&e.ok&&(await n?.(),f());if(r.done)return}})(),()=>{e=!0}},[l?.flowId,l?.done,f,n]);let p=async(n,r)=>{if(o(``),r.type===`chatgpt`){t?.(),e?.();return}try{let e=await iP(n.id,r.type);u({flowId:e,name:n.name,label:r.label,log:[],prompt:null,done:!1})}catch(e){o(e?.message||`That login could not start.`)}},m=async e=>{let t=l?.prompt;if(t){u(e=>e&&{...e,prompt:null});try{await oP(l.flowId,t.promptId,e)}catch(e){o(e?.message||`That answer was not taken.`)}}},h=async()=>{l&&!l.done&&await sP(l.flowId).catch(()=>{}),u(null)},g=async e=>{try{await cP(e.id),await n?.(),f()}catch(e){o(e?.message||`Logout failed.`)}},_=(r??[]).filter(e=>!s.trim()||e.name.toLowerCase().includes(s.trim().toLowerCase()));return(0,$.jsxs)(`section`,{className:`agent-keys agent-login`,"aria-label":`Connect a model`,"data-agent-keys":`true`,children:[(0,$.jsxs)(`div`,{className:`agent-keys-head`,children:[(0,$.jsx)(`h3`,{className:`agent-keys-title`,children:`Connect a model`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-icon-button agent-keys-close`,"aria-label":`Close`,onClick:async()=>{await h(),e?.()},children:(0,$.jsx)(_N,{size:11,"aria-hidden":`true`})})]}),a&&(0,$.jsx)(`p`,{className:`agent-key-error`,role:`alert`,children:a}),l?(0,$.jsxs)(`div`,{className:`agent-login-flow`,"data-login-flow":l.done?l.ok?`connected`:`failed`:`running`,children:[(0,$.jsxs)(`p`,{className:`agent-key-label`,children:[l.name,` · `,l.label]}),(0,$.jsx)(dP,{entries:l.log}),l.prompt&&(0,$.jsx)(uP,{prompt:l.prompt,onSubmit:m},l.prompt.promptId),!l.done&&!l.prompt&&(0,$.jsxs)(`p`,{className:`agent-key-note`,children:[`Waiting for `,l.name,`…`]}),l.done&&(0,$.jsx)(`p`,{className:l.ok?`agent-key-note`:`agent-key-error`,role:l.ok?`status`:`alert`,children:l.ok?`Connected to ${l.name}.`:l.message}),(0,$.jsx)(`div`,{className:`agent-key-controls`,children:(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button`,onClick:h,children:l.done?`Back to the list`:`Cancel`})})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`agent-keys-hint`,children:`A subscription signs in on its own page. A key or server address you type stays with the local CozyClay service and is never shown again.`}),(0,$.jsx)(`input`,{className:`agent-key-input`,type:`search`,"aria-label":`Search providers`,placeholder:`Search providers`,value:s,onChange:e=>c(e.target.value)}),r===null&&!a&&(0,$.jsx)(`p`,{className:`agent-keys-note`,children:`Loading providers…`}),lP.map(([e,t])=>{let n=_.filter(t);return n.length?(0,$.jsxs)(`div`,{className:`agent-login-group`,children:[(0,$.jsx)(`p`,{className:`agent-key-endpoint-label`,children:e}),n.map(e=>(0,$.jsxs)(`div`,{className:`agent-key-row`,"data-provider":e.id,"data-provider-signed-in":e.connected?`true`:`false`,children:[(0,$.jsxs)(`div`,{className:`agent-key-head`,children:[(0,$.jsx)(`span`,{className:`agent-key-label`,children:e.name}),(0,$.jsx)(`span`,{className:`agent-key-source`,children:e.connected?e.via===`oauth`?`signed in`:e.source||`key`:``})]}),(0,$.jsx)(`div`,{className:`agent-key-controls`,children:e.connected&&e.id!==`openai-codex`?(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-key-remove`,onClick:()=>g(e),children:`Log out`}):e.methods.map(t=>(0,$.jsx)(`button`,{type:`button`,className:t.subscription?`agent-key-save`:`agent-ghost-button`,onClick:()=>p(e,t),children:t.label},t.type))})]},e.id))]},e):null})]})]})}function pP(e){if(!Number.isFinite(e)||e<0)return``;let t=e/1e3;return t<10?`${t.toFixed(1)} s`:t<60?`${Math.round(t)} s`:`${Math.floor(t/60)} m ${String(Math.round(t%60)).padStart(2,`0`)} s`}function mP({state:e}){return e===`running`?(0,$.jsx)(`span`,{className:`agent-step-spin`,"aria-label":P(`running`,`진행 중`)}):e===`failed`?(0,$.jsx)(_N,{className:`agent-step-icon alert`,size:11,"aria-label":P(`failed`,`실패`)}):e===`cancelled`?(0,$.jsx)(xN,{className:`agent-step-icon warn`,size:9,"aria-label":P(`stopped`,`중지됨`)}):e===`note`?(0,$.jsx)(`span`,{className:`agent-step-dot`,"aria-hidden":`true`}):(0,$.jsx)(LN,{className:`agent-step-icon ok`,size:11,"aria-label":P(`done`,`완료`)})}function hP({step:e,live:t,isLast:n,now:r,toolLabels:i}){let[a,o]=(0,Q.useState)(!1);if(e.kind===`narration`)return(0,$.jsxs)(`li`,{className:`agent-step narration`,"data-step-kind":`narration`,children:[(0,$.jsx)(mP,{state:`note`}),(0,$.jsx)(`span`,{className:`agent-step-text`,children:e.text})]});if(e.kind===`thinking`){let i=t&&n,s=OA(e.text),c=(i?r:e.endedAt??e.updatedAt)-e.startedAt;return(0,$.jsxs)(`li`,{className:`agent-step thinking`,"data-step-kind":`thinking`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`agent-step-row`,"aria-expanded":a,onClick:()=>o(e=>!e),children:[(0,$.jsx)(mP,{state:i?`running`:`note`}),(0,$.jsx)(`span`,{className:`agent-step-label`,children:P(`Thinking`,`생각`)}),(0,$.jsx)(`span`,{className:`agent-step-subject`,children:a?``:s}),(0,$.jsx)(`span`,{className:`agent-step-time`,children:c>=1e3?pP(c):``})]}),a&&(0,$.jsx)(`p`,{className:`agent-step-thought`,children:e.text})]})}let s=e.kind===`compose`||e.status===`running`,c=e.kind===`compose`?P(`Preparing ${wA(e,i)}`,`${wA(e,i)} 준비 중`):wA(e,i),l=s?e.progress?`${DA(e)}${e.progress.summary?` — ${e.progress.summary}`:``}`:``:EA(e),u=s?r-(e.startedAt??r):e.elapsedMs;return(0,$.jsxs)(`li`,{className:`agent-step ${e.kind}${e.status===`failed`?` failed`:``}`,"data-step-kind":e.kind,"data-tool-name":e.name,"data-tool-status":e.kind===`compose`?`composing`:e.status,"data-action":e.action,children:[(0,$.jsxs)(`div`,{className:`agent-step-row`,children:[(0,$.jsx)(mP,{state:s?`running`:e.status}),(0,$.jsx)(`span`,{className:`agent-step-label`,children:c}),e.subject&&(0,$.jsx)(`span`,{className:`agent-step-subject`,children:e.subject}),(0,$.jsx)(`span`,{className:`agent-step-time`,children:pP(u)})]}),l&&(0,$.jsx)(`p`,{className:`agent-step-result`,children:l})]})}function gP({block:e,now:t,toolLabels:n,formatClock:r,onRetry:i}){let[a,o]=(0,Q.useState)(null),s=e.end?.status===`failed`||e.steps.some(e=>e.failure),c=e.end?.status===`stopped`,l=a??(e.live||s||c),u=IA(e,t,r),d=e.steps.find(e=>e.failure)?.failure;return(0,$.jsxs)(`div`,{className:`agent-card agent-steps`,"data-agent-card":`steps`,"data-steps-state":e.live?`live`:e.end?.status??`done`,"data-open":l?`true`:`false`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`agent-steps-head`,"aria-expanded":l,onClick:()=>o(!l),children:[(0,$.jsx)(`span`,{className:`agent-status-dot ${u.tone}`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`agent-steps-title`,children:u.text}),(0,$.jsx)(IN,{className:`agent-steps-chevron`,size:12,"aria-hidden":`true`})]}),l&&(0,$.jsx)(`ol`,{className:`agent-steps-list`,children:e.steps.map((r,i)=>(0,$.jsx)(hP,{step:r,live:e.live,isLast:i===e.steps.length-1,now:t,toolLabels:n},r.id))}),c&&(0,$.jsx)(`p`,{className:`agent-steps-note`,children:RA(e)}),d&&(0,$.jsxs)(`div`,{className:`agent-error`,role:`alert`,children:[(0,$.jsx)(`span`,{children:d.message||P(`The turn failed.`,`턴이 실패했어요.`)}),(0,$.jsx)(`div`,{className:`agent-error-actions`,children:(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-error-retry`,onClick:i,children:P(`Retry`,`다시 시도`)})})]})]})}var _P=/^\s{0,3}#{1,6}\s+(.*?)\s*#*\s*$/,vP=/^\s*(?:[-*•]|(\d+)[.)])\s+(.*)$/,yP=/^\s*```/,bP=/^\s*\|.*\|\s*$/,xP=/^\s*\|?\s*:?-{2,}:?\s*(?:\|\s*:?-{2,}:?\s*)*\|?\s*$/,SP=/\*\*(.+?)\*\*|`([^`]+)`/g;function CP(e){let t=[],n=0;for(let r of e.matchAll(SP))r.index>n&&t.push({text:e.slice(n,r.index)}),t.push(r[2]===void 0?{text:r[1],bold:!0}:{text:r[2],code:!0}),n=r.index+r[0].length;return n<e.length&&t.push({text:e.slice(n)}),t}var wP=e=>e.trim().replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>CP(e.trim()));function TP(e){let t=String(e??``).replace(/\r\n?/g,`
18
- `).split(`
19
- `),n=[],r=null;for(let e=0;e<t.length;e+=1){let i=t[e];if(yP.test(i)&&t.slice(e+1).some(e=>yP.test(e))){let i=[];for(e+=1;!yP.test(t[e]);e+=1)i.push(t[e]);n.push({type:`code`,text:i.join(`
20
- `)}),r=null;continue}if(!i.trim()){r=null;continue}let a=_P.exec(i);if(a){n.push({type:`h`,raw:a[1]}),r=null;continue}if(bP.test(i)&&xP.test(t[e+1]??``)){let a={type:`table`,head:wP(i),rows:[]};for(e+=2;e<t.length&&bP.test(t[e]);e+=1)a.rows.push(wP(t[e]));--e,n.push(a),r=null;continue}let o=vP.exec(i);if(o){let e=o[1]===void 0?`ul`:`ol`;r?.type!==e&&(r={type:e,items:[],...e===`ol`&&o[1]!==`1`?{start:Number(o[1])}:{}},n.push(r)),r.items.push(o[2]);continue}r?.type===`p`?r.raw+=`\n${i}`:r?r.items[r.items.length-1]+=` ${i.trim()}`:n.push(r={type:`p`,raw:i})}return n.map(({raw:e,items:t,...n})=>e===void 0?t?{...n,items:t.map(CP)}:n:{...n,spans:CP(e)})}function EP({spans:e}){return e.map((e,t)=>e.code?(0,$.jsx)(`code`,{children:e.text},t):e.bold?(0,$.jsx)(`strong`,{children:e.text},t):(0,$.jsx)(Q.Fragment,{children:e.text},t))}function DP({block:e,tail:t}){if(e.type===`h`)return(0,$.jsxs)(`p`,{className:`agent-reply-heading`,children:[(0,$.jsx)(EP,{spans:e.spans}),t]});if(e.type===`code`)return(0,$.jsxs)(`pre`,{children:[(0,$.jsx)(`code`,{children:e.text}),t]});if(e.type===`ul`||e.type===`ol`){let n=e.type;return(0,$.jsx)(n,{start:e.start,children:e.items.map((n,r)=>(0,$.jsxs)(`li`,{children:[(0,$.jsx)(EP,{spans:n}),r===e.items.length-1&&t]},r))})}return e.type===`table`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`agent-reply-table`,children:(0,$.jsxs)(`table`,{children:[(0,$.jsx)(`thead`,{children:(0,$.jsx)(`tr`,{children:e.head.map((e,t)=>(0,$.jsx)(`th`,{children:(0,$.jsx)(EP,{spans:e})},t))})}),(0,$.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,$.jsx)(`tr`,{children:e.map((e,t)=>(0,$.jsx)(`td`,{children:(0,$.jsx)(EP,{spans:e})},t))},t))})]})}),t]}):(0,$.jsxs)(`p`,{children:[(0,$.jsx)(EP,{spans:e.spans}),t]})}function OP({text:e,tail:t=null}){let n=(0,Q.useMemo)(()=>TP(e),[e]);return n.length?n.map((e,r)=>(0,$.jsx)(DP,{block:e,tail:r===n.length-1?t:null},r)):t||null}function kP(e,t=Date.now()){let n=Date.parse(e||``);if(!Number.isFinite(n))return`just now`;let r=Math.max(0,Math.floor((t-n)/1e3));if(r<60)return`just now`;let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let a=Math.floor(i/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function AP({tone:e,title:t}){return(0,$.jsx)(`span`,{className:`agent-status-dot ${e}`,title:t,"aria-hidden":`true`})}function jP({image:e,onUse:t,onUndo:n,onRegenerate:r,onOpen:i}){let a=e.apply?.status===`applying`,o=e.apply?.status===`failed`;return(0,$.jsxs)(`div`,{className:`agent-card agent-image-card`,"data-image-id":e.imageId,"data-placed":e.placed?`true`:`false`,"data-apply-status":e.apply?.status||`idle`,children:[(0,$.jsx)(`figure`,{children:(0,$.jsx)(`img`,{src:e.dataUrl,width:e.width,height:e.height,alt:e.prompt||`Generated image`,onClick:()=>i(e)})}),e.placed?(0,$.jsxs)(`div`,{className:`agent-placed`,children:[(0,$.jsx)(AP,{tone:`ok`}),`Placed`,(0,$.jsx)(`button`,{type:`button`,className:`agent-image-undo`,disabled:a,onClick:()=>n(e),children:a?`Removing…`:`Undo`})]}):(0,$.jsxs)(`div`,{className:`agent-image-actions`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`primary agent-image-use`,disabled:a,onClick:()=>t(e),children:[(0,$.jsx)(kN,{size:11}),` `,a?`Applying…`:`Use in scene`]}),(0,$.jsxs)(`a`,{className:`agent-image-download`,role:`button`,href:e.dataUrl,download:`${e.imageId||`agent-image`}.png`,children:[(0,$.jsx)(MN,{size:11}),` Download`]}),(0,$.jsxs)(`button`,{type:`button`,className:`agent-image-regenerate`,onClick:()=>r(e),children:[(0,$.jsx)(SN,{size:11}),` Regenerate`]})]}),o&&(0,$.jsx)(`p`,{className:`agent-image-error`,role:`alert`,children:e.apply.error})]})}function MP({resetAt:e,onRetry:t,onSwitchModel:n}){let[r,i]=(0,Q.useState)(()=>Date.now());(0,Q.useEffect)(()=>{let e=setInterval(()=>i(Date.now()),1e3);return()=>clearInterval(e)},[]);let a=vj(e,r);return(0,$.jsxs)(`div`,{className:`agent-paused`,"data-agent-card":`rate-limited`,role:`status`,children:[(0,$.jsxs)(`div`,{className:`agent-paused-head`,children:[(0,$.jsx)(FN,{size:12,"aria-hidden":`true`}),` Paused — usage limit reached`,(0,$.jsx)(`span`,{className:`agent-paused-countdown`,children:a?`resets in ${a}`:`resets soon`})]}),(0,$.jsx)(`p`,{style:{margin:0},children:wj.rate_limit}),(0,$.jsxs)(`div`,{className:`agent-paused-actions`,children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-paused-wait`,onClick:t,children:`Wait & retry`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-paused-switch`,onClick:n,children:`Switch model`})]})]})}function NP({model:e,roles:t}){if(!t)return null;let n=[[P(`helper`,`보조`),t.helper],[P(`advisor`,`자문`),t.advisor]];return t.vision!==e&&n.push([P(`vision`,`비전`),t.vision]),(0,$.jsx)(`p`,{className:`agent-model-roles`,"data-agent-model-roles":`true`,children:n.map(([e,t])=>`${e} · ${_j(t)}`).join(` · `)})}function PP({job:e,onStop:t,onAccept:n}){let r=!KA(e.state),i=r&&Number.isFinite(e.progress)?Math.round(e.progress*100):null,a=e.state===`installed`?null:e.phase,o=e.state===`review_required`||e.verification?.status===`unverified`,s=e.verification?.limitations??[],c=e.state===`installed`&&o?`Installed with warnings`:WA[e.state]||e.state;return(0,$.jsxs)(`div`,{className:`agent-card agent-job-card`,"data-job-id":e.jobId,"data-job-state":e.state,children:[(0,$.jsxs)(`div`,{className:`agent-job-head`,children:[(0,$.jsx)(AP,{tone:qA(e.state),title:e.state}),(0,$.jsx)(`span`,{className:`agent-job-label`,children:c}),o&&(0,$.jsx)(`span`,{className:`agent-job-badge`,children:`Unverified`}),i!==null&&(0,$.jsx)(`span`,{className:`agent-job-progress`,children:JA(e.progress)})]}),a&&(0,$.jsx)(`p`,{className:`agent-job-phase`,children:a}),e.outcome?.status===`not_applied`&&(0,$.jsx)(`p`,{className:`agent-job-outcome`,children:`Not applied — scene unchanged.`}),e.outcome?.status===`unknown`&&(0,$.jsx)(`p`,{className:`agent-job-outcome`,children:`Stopped, but the result is unknown — reconcile before editing this target.`}),i!==null&&(0,$.jsx)(`div`,{className:`agent-job-bar`,role:`progressbar`,"aria-label":`Generation progress`,"aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,children:(0,$.jsx)(`span`,{className:`agent-job-bar-fill`,style:{transform:`scaleX(${e.progress})`}})}),s.length>0&&(0,$.jsx)(`ul`,{className:`agent-job-limits`,children:s.map(e=>(0,$.jsx)(`li`,{children:e},e))}),(0,$.jsxs)(`div`,{className:`agent-job-actions`,children:[r&&e.state!==`review_required`&&(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-job-stop`,onClick:()=>t(e),children:`Stop`}),e.acceptance?.status===`required`&&(0,$.jsxs)(`button`,{type:`button`,className:`agent-ghost-button agent-job-accept`,onClick:()=>n(e),children:[(0,$.jsx)(BN,{size:11}),` Apply with warnings`]}),e.acceptance?.status===`accepting`&&(0,$.jsx)(`span`,{className:`agent-job-note`,children:`Applying…`}),e.acceptance?.status===`accepted`&&(0,$.jsxs)(`span`,{className:`agent-job-note`,children:[(0,$.jsx)(LN,{size:11}),` Applied at your request`]}),e.acceptance?.error&&(0,$.jsx)(`span`,{className:`agent-job-note alert`,role:`alert`,children:e.acceptance.error})]})]})}function FP({item:e}){let{receipt:t={},summary:n}=e,r=t.verification?.status===`unverified`,i=t.verification?.limitations??[],a=t.warnings??[],o=t.status===`installed`&&r;return(0,$.jsxs)(`div`,{className:`agent-card agent-receipt-card`,"data-receipt-id":e.receiptId,"data-receipt-status":t.status,children:[(0,$.jsxs)(`div`,{className:`agent-receipt-head`,children:[(0,$.jsx)(AP,{tone:r?`warn`:`ok`,title:t.status}),o&&(0,$.jsx)(`span`,{className:`agent-job-label`,children:`Installed with warnings`}),(0,$.jsx)(`span`,{className:`agent-receipt-summary`,children:n})]}),(a.length>0||i.length>0)&&(0,$.jsxs)(`ul`,{className:`agent-receipt-notes`,children:[a.map(e=>(0,$.jsx)(`li`,{children:e.message||e.code},e.code)),i.map(e=>(0,$.jsx)(`li`,{children:e},e))]}),o&&(0,$.jsx)(`p`,{className:`agent-job-note`,children:`Undo with Cmd+Z or ask the agent.`})]})}var IP={blocker:P(`blocker`,`차단`),concern:P(`concern`,`우려`),note:P(`note`,`참고`)},LP={done:P(`done`,`완료`),partial:P(`partial`,`일부`),refused:P(`refused`,`거부됨`),missing:P(`missing`,`누락`)};function RP({note:e,onSend:t,defaultOpen:n=!1}){let[r,i]=(0,Q.useState)(n);if(e.verdict!==`reviewed`)return(0,$.jsx)(`div`,{className:`agent-card agent-supervisor-card`,"data-supervisor-verdict":`unavailable`,children:(0,$.jsxs)(`p`,{className:`agent-supervisor-summary`,children:[P(`Supervisor review unavailable`,`감독 검토를 할 수 없었어요`),e.reason?` — ${e.reason}`:``]})});let a=Cj(e),o=Array.isArray(e.fixes)?e.fixes:[];return(0,$.jsxs)(`div`,{className:`agent-card agent-supervisor-card`,"data-supervisor-verdict":`reviewed`,"data-open":r?`true`:`false`,children:[(0,$.jsxs)(`div`,{className:`agent-supervisor-head`,children:[(0,$.jsx)(`span`,{className:`agent-job-label`,children:P(`Supervisor`,`감독`)}),[`blocker`,`concern`,`note`].filter(t=>e.counts?.[t]>0).map(t=>(0,$.jsxs)(`span`,{className:`agent-job-badge agent-supervisor-badge ${t}`,"data-severity":t,children:[e.counts[t],` `,IP[t]]},t)),(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-supervisor-toggle`,"aria-expanded":r,onClick:()=>i(e=>!e),children:r?P(`Less`,`접기`):P(`Details`,`자세히`)})]}),(0,$.jsx)(`p`,{className:`agent-supervisor-summary`,children:e.summary}),r&&e.items?.length>0&&(0,$.jsx)(`ul`,{className:`agent-receipt-notes agent-supervisor-items`,children:e.items.map((e,t)=>(0,$.jsxs)(`li`,{"data-status":e.status,children:[LP[e.status]??e.status,` · `,e.text,e.evidence?` — ${e.evidence}`:``]},t))}),r&&e.issues?.length>0&&(0,$.jsx)(`ul`,{className:`agent-receipt-notes agent-supervisor-issues`,children:e.issues.map((e,t)=>{let n=o.find(e=>e.issueIndex===t);return(0,$.jsxs)(`li`,{"data-severity":e.severity,children:[IP[e.severity]??e.severity,` · `,e.text,e.evidence?` — ${e.evidence}`:``,n&&(0,$.jsx)(`code`,{className:`agent-supervisor-fix`,"data-fix-action":n.action,children:`run_action ${JSON.stringify({action:n.action,args:n.args})}`})]},t)})}),a&&(0,$.jsx)(`div`,{className:`agent-job-actions`,children:(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-supervisor-send`,onClick:()=>t(a),title:e.autofix?.eligible?P(`Autofix is on: the blocker fixes would be applied as written`,`자동 수정 켜짐: 차단 수정안을 적힌 그대로 적용합니다`):void 0,children:o.length?P(`Apply fixes as next prompt`,`수정안 다음 턴으로 보내기`):P(`Send as next prompt`,`다음 턴으로 보내기`)})})]})}var zP={none:`No recovery is available for this command.`,inspect:`Ask the agent to inspect the target before trying again.`,retry:`The same command can be retried.`,new_intent:`Tell the agent what to do with the changed target.`,reconcile:`The result is unknown; reconcile before changing this target.`,sign_in:`Sign in again to continue.`,fix_key:`Log in again under Connect a model, then retry.`};function BP({failure:e,onRetry:t,onFixKey:n}){return(0,$.jsxs)(`div`,{className:`agent-card agent-failure-card`,"data-failure-code":e.code,role:`alert`,children:[(0,$.jsxs)(`div`,{className:`agent-failure-head`,children:[(0,$.jsx)(BN,{size:12,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`agent-failure-code`,children:e.code})]}),(0,$.jsx)(`p`,{className:`agent-failure-message`,children:e.message||`The command did not complete.`}),(0,$.jsxs)(`p`,{className:`agent-failure-recovery`,children:[zP[e.recovery?.action]||zP.none,e.preserved?.authoredState===`unchanged`?` Nothing in the scene changed.`:e.preserved?.authoredState===`unknown`?` Whether the scene changed is unknown.`:``]}),e.recovery?.retryAllowed&&(0,$.jsxs)(`div`,{className:`agent-error-actions`,children:[e.recovery.action===`fix_key`&&n&&(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-error-keys`,onClick:n,children:`Log in again`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-error-retry`,onClick:t,children:`Retry`})]})]})}function VP({transport:e=null,sceneName:t=`CozyClay Scene`,defaultCollapsed:n=!1,onCollapsedChange:r=null,embedded:i=!1,hidden:a=!1,surface:o=`workflow`,buildContext:s=null,onImageAction:c=null,onReceipt:l=null}){let u=(0,Q.useMemo)(()=>rj(o),[o]),d=(0,Q.useMemo)(()=>e||rM({surface:o}),[e,o]),f=d.mock?d.state:null,p=cM()?.previsMode,m=o===`studio`&&p?p===`storyboard`?P(`Storyboard`,`스토리보드`):P(`Animation`,`애니메이션`):null,[h,g]=(0,Q.useState)(n),[_,v]=(0,Q.useState)(()=>u.persistWidth?aj():360),[y,b]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(null),[T,E]=(0,Q.useState)(`loading`),[D,ee]=(0,Q.useState)([]),[te,ne]=(0,Q.useState)([]),[O,re]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(`loading`),[ie,ae]=(0,Q.useState)(null),[oe,se]=(0,Q.useState)(null),ce=(0,Q.useMemo)(()=>XA(D.find(e=>e.id===O)),[D,O]),j=(0,Q.useCallback)(e=>{re(e),se(null),lj(e)},[]),[le,ue]=(0,Q.useState)(()=>dj()),de=(0,Q.useCallback)(()=>ue(e=>(fj(!e),!e)),[]),fe=(0,Q.useCallback)(e=>{let t=Array.isArray(e?.models)?e.models:[];if(!t.length)return!1;let n=Array.isArray(e?.providers)?e.providers:[];return ne(n),ee(t),ae(e?.roles?.byMain??null),re(e=>hj(n,t,e)),A(`ready`),!0},[]),[pe,me]=(0,Q.useState)(!1),[he,ge]=(0,Q.useState)(null),[_e,ve]=(0,Q.useState)(!1),[ye,be]=(0,Q.useState)(null),[xe,Se]=(0,Q.useState)(()=>!i&&(globalThis.innerWidth||1440)<1100),[Ce,we]=(0,Q.useState)(!1),[Te,Ee]=(0,Q.useState)(!1),[De,Oe]=(0,Q.useState)([]),[ke,Ae]=(0,Q.useState)(``),[je,Me]=(0,Q.useState)(``),[Ne,Pe]=(0,Q.useState)(o!==`studio`),Fe=(0,Q.useRef)(null),Ie=(0,Q.useRef)(!1),Le=(0,Q.useRef)(null),Re=(0,Q.useRef)(s);Re.current=s;let ze=(0,Q.useRef)(c);ze.current=c;let Be=(0,Q.useRef)(l);Be.current=l;let M=(0,Q.useMemo)(()=>oM({transport:d,surface:o,buildContext:()=>Re.current?.()??null,requestImageAction:e=>(ze.current??d.applyImage?.bind(d)??aM)(e),onReceipt:e=>Be.current?.(e),onAuthLost:()=>E(`signed-out`)}),[o,d]),Ve=(0,Q.useSyncExternalStore)(M.subscribe,M.getState,M.getState),{draft:He,items:Ue,pendingAttachments:We,quota:Ge,rateLimit:Ke,streaming:qe}=Ve;(0,Q.useEffect)(()=>{if(o!==`studio`){Pe(!0);return}let e=!1,t=null;try{t=globalThis.localStorage?.getItem(VA)}catch{}if(!t){Pe(!0);return}return(async()=>{try{let n=await d.loadSession(t);if(!Array.isArray(n?.transcript))throw Error(`missing transcript`);e||M.restore(n.transcript,n.sessionId||t)}catch(t){e||(M.newSession(),t?.status!==404&&Ae(`Previous conversation could not be restored`))}finally{e||Pe(!0)}})(),()=>{e=!0}},[o,M,d]),(0,Q.useEffect)(()=>{if(!(o!==`studio`||!Ne))try{globalThis.localStorage?.setItem(VA,Ve.sessionId)}catch{}},[Ve.sessionId,Ne,o]);let[Je,Ye]=(0,Q.useState)(()=>Date.now()),Xe=O?Aj(Ve,{now:Je,toolLabel:e=>wA(e,u.toolLabels)}):k===`failed`?{phase:`no-model`,kind:`terminal`,tone:`alert`,text:`No model available — the agent service did not answer with one`,ticking:!1}:{phase:`models`,kind:`live`,tone:`busy`,text:`Loading models…`,ticking:!1},Ze=(0,Q.useMemo)(()=>FA(Ue,{streaming:qe}),[Ue,qe]),Qe=qe?Ve.turnStartedAt:Ve.lastTurn?Ve.lastTurn.endedAt-Ve.lastTurn.durationMs:null,$e=(0,$.jsx)(eP,{items:Ue,since:Qe,live:qe});(0,Q.useEffect)(()=>{if(!Xe.ticking)return;let e=setInterval(()=>Ye(Date.now()),500);return()=>clearInterval(e)},[Xe.ticking]);let et=(0,Q.useCallback)(e=>e?.signedIn||e?.providersConfigured>0?u.imageEntitlement&&e?.entitlements?.image===!1?`no-entitlement`:`ready`:e?.pending?`signing-in`:`signed-out`,[u]),tt=(0,Q.useCallback)(async()=>{try{let e=await d.status();return w(e),E(et(e)),e}catch{return E(`signed-out`),null}},[et,d]),nt=(0,Q.useCallback)(async()=>{await tt();try{fe(await d.models())}catch{}},[fe,tt,d]);(0,Q.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await d.status();if(e)return;w(t),E(et(t))}catch{e||E(`signed-out`)}try{let t=await d.models();if(e)return;if(!fe(t)){A(`failed`);return}}catch{e||A(`failed`)}})(),()=>{e=!0}},[fe,et,d]),(0,Q.useEffect)(()=>{if(T!==`signing-in`)return;let e=()=>{document.visibilityState!==`hidden`&&nt()};return window.addEventListener(`focus`,e),window.addEventListener(`cozyclay:agent-auth-return`,e),document.addEventListener(`visibilitychange`,e),()=>{window.removeEventListener(`focus`,e),window.removeEventListener(`cozyclay:agent-auth-return`,e),document.removeEventListener(`visibilitychange`,e)}},[T,nt]),(0,Q.useEffect)(()=>{!f||T!==`ready`||!O||[`streaming`,`rate-limited`,`error`].includes(f)&&(Ue.length||M.send(`Give me a wide two-shot of this scene`,{attachFrame:!1,model:O}))},[T,Ue.length,f,O,M]),(0,Q.useEffect)(()=>{if(i)return;let e=()=>Se((globalThis.innerWidth||1440)<BA);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[i]),(0,Q.useEffect)(()=>{if(i)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`b`&&(e.preventDefault(),g(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,Q.useEffect)(()=>{if(i)return;let e=()=>g(e=>!e);return window.addEventListener(`cozyclay:agent-panel-toggle`,e),()=>window.removeEventListener(`cozyclay:agent-panel-toggle`,e)},[i]),(0,Q.useEffect)(()=>{i||r?.(h)},[h,i,r]),(0,Q.useEffect)(()=>{if(a){Fe.current&&Fe.current===document.activeElement&&Fe.current.blur();return}(i||!h)&&(Fe.current?.focus(),Ie.current=document.activeElement!==Fe.current)},[T,h,i,a]),(0,Q.useEffect)(()=>{let e=Le.current;e&&(e.scrollTop=e.scrollHeight)},[Ue,qe]);let rt=(0,Q.useCallback)(e=>{e.preventDefault(),b(!0);let t=e.clientX,n=_,r=e=>v(ij(n+(t-e.clientX))),i=e=>{b(!1),window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),oj(ij(n+(t-e.clientX)))};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)},[_]),it=(0,Q.useCallback)(e=>{v(t=>{let n=ij(t+e);return oj(n),n})},[]),at=(0,Q.useCallback)(async e=>{let t=[],n=0;for(let r of e)try{t.push(await Uk(r))}catch{n+=1}let r=t.length?M.addAttachments(t).rejected:0;ge(r?Ek:n?Ok:null)},[M]),ot=(0,Q.useCallback)(e=>{let{images:t,unsupported:n}=Mk(e);return t.length?(at(t),!0):(n&&ge(Dk),n>0)},[at]),st=(0,Q.useCallback)(e=>{ot(e.clipboardData)&&e.preventDefault()},[ot]),ct=(0,Q.useCallback)(e=>{jk(e.dataTransfer)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,ve(!0))},[]),lt=(0,Q.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||ve(!1)},[]),ut=(0,Q.useCallback)(e=>{ve(!1),ot(e.dataTransfer)&&e.preventDefault()},[ot]),dt=(0,Q.useCallback)(e=>(ge(null),Me(``),M.send(e,{attachFrame:pe,model:O,effort:oe??void 0,supervisor:le})),[pe,oe,O,M,le]),ft=(0,Q.useCallback)(()=>M.stop(),[M]),pt=(0,Q.useCallback)(async e=>{if(!String(e??``).trim())return;ge(null),Me(``);let t=await M.steer(e);t.ok||Me(t.message||`The running turn did not take that message.`)},[M]),mt=(0,Q.useCallback)(async()=>{E(`signing-in`);try{await d.signIn(),await nt()}catch{E(`signed-out`)}},[nt,d]),ht=(0,Q.useCallback)(async()=>{S(!1),await d.signOut().catch(()=>{}),w(null),M.newSession(),await nt()},[nt,M,d]),gt=(0,Q.useCallback)(()=>{if(o===`studio`)try{globalThis.localStorage?.removeItem(VA)}catch{}M.newSession(),we(!1),S(!1),Fe.current?.focus()},[M,o]),_t=(0,Q.useCallback)(async()=>{if(o!==`studio`)return;let e=!Ce;if(we(e),e)try{Oe(await d.listSessions())}catch{Oe([])}},[Ce,o,d]),vt=(0,Q.useCallback)(async e=>{try{let t=await d.loadSession(e);if(!Array.isArray(t?.transcript))throw Error(`missing transcript`);M.restore(t.transcript,t.sessionId||e),we(!1),Ae(``)}catch{Ae(`Previous conversation could not be restored`)}},[M,d]),yt=(0,Q.useCallback)(()=>{S(!1),Ee(!Te)},[Te]),bt=(0,Q.useCallback)(()=>{S(!1),Ee(!0)},[]),xt=(0,Q.useCallback)(()=>{M.clearContext(),S(!1)},[M]),St=(0,Q.useCallback)(()=>{let e=D.filter(e=>mj(te,e.id)),t=e.length?e:D,n=t[(t.findIndex(e=>e.id===O)+1)%t.length];n&&j(n.id),M.clearRateLimit()},[j,O,te,D,M]),Ct=(0,Q.useCallback)(e=>{if(e.key===`Escape`&&qe){e.preventDefault(),ft();return}if(e.key===`Enter`&&!lM(e)&&!e.shiftKey){if(e.preventDefault(),qe){u.steer&&pt(He);return}dt(He)}},[He,u,dt,pt,ft,qe]),wt=Ke?`rate-limited`:T===`ready`?qe?`streaming`:Ue.some(e=>e.kind===`tool`&&e.status===`failed`||e.kind===`failure`)?`error`:`ready`:T,Tt={"signed-out":``,"signing-in":`busy`,"no-entitlement":`warn`,ready:`ok`,streaming:`busy`,"rate-limited":`warn`,error:`alert`}[wt]||``,Et=vj(Ke?.resetAt||Ge?.resetAt),Dt=T===`ready`||T===`no-entitlement`,Ot=wt===`rate-limited`||!O||!mj(te,O);return(0,Q.useEffect)(()=>{a&&(Ie.current=!1),!(a||Ot||!Ie.current)&&(Ie.current=!1,(!document.activeElement||document.activeElement===document.body)&&Fe.current?.focus())},[Ot,a]),h&&!i?(0,$.jsxs)(`aside`,{className:`agent-panel collapsed`,"data-agent-state":wt,"data-agent-collapsed":`true`,"aria-label":`Agent panel, collapsed`,children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-rail-toggle`,onClick:()=>g(!1),"aria-label":`Expand agent panel`,title:`Expand agent panel (Cmd/Ctrl+B)`,children:(0,$.jsx)(IN,{size:13,style:{transform:`rotate(180deg)`}})}),(0,$.jsx)(AP,{tone:Tt,title:wt}),(0,$.jsx)(`span`,{className:`agent-rail-label`,children:`Agent`})]}):(0,$.jsxs)(`aside`,{className:`agent-panel${y?` resizing`:``}${xe&&!i?` overlay`:``}${i?` embedded`:``}`,style:i?void 0:{width:`${_}px`},hidden:i&&a,"data-agent-state":wt,"data-agent-width":i?void 0:_,"data-agent-overlay":xe&&!i?`true`:`false`,"data-agent-embedded":i?`true`:`false`,"aria-label":`Agent`,children:[!i&&(0,$.jsx)(`div`,{role:`separator`,"aria-label":`Resize agent panel`,"aria-orientation":`vertical`,"aria-valuenow":_,"aria-valuemin":300,"aria-valuemax":560,tabIndex:0,className:`agent-resize`,onPointerDown:rt,onKeyDown:e=>{e.key===`ArrowLeft`&&(e.preventDefault(),it(16)),e.key===`ArrowRight`&&(e.preventDefault(),it(-16))}}),(0,$.jsxs)(`header`,{className:`agent-header`,children:[(0,$.jsx)(AP,{tone:Tt,title:wt}),(0,$.jsx)(`h2`,{className:`agent-title`,"data-previs-mode":m?p:void 0,children:m?`Agent · ${m}`:`Agent`}),(0,$.jsx)(`span`,{className:`agent-header-spacer`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-icon-button agent-new`,"aria-label":`New conversation`,title:`New conversation`,onClick:gt,children:(0,$.jsx)(CN,{size:14,"aria-hidden":`true`})}),u.history&&(0,$.jsxs)(`span`,{className:`agent-history-wrap`,children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-icon-button agent-history`,"aria-label":`History`,title:`History`,"aria-haspopup":`listbox`,"aria-expanded":o===`studio`?Ce:void 0,onClick:o===`studio`?_t:void 0,disabled:o!==`studio`,children:(0,$.jsx)(FN,{size:13,"aria-hidden":`true`})}),o===`studio`&&Ce&&(0,$.jsx)(`div`,{className:`agent-history-popover`,role:`listbox`,"aria-label":`Agent history`,children:De.length?De.map(e=>(0,$.jsxs)(`button`,{type:`button`,role:`option`,className:`agent-history-item`,onClick:()=>vt(e.sessionId),children:[(0,$.jsx)(`span`,{className:`agent-history-time`,children:kP(e.updatedAt)}),(0,$.jsx)(`span`,{className:`agent-history-text`,children:e.firstText||`Untitled conversation`})]},e.sessionId)):(0,$.jsx)(`span`,{className:`agent-history-empty`,children:`No previous conversations`})})]}),(0,$.jsxs)(`span`,{className:`agent-overflow`,children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-icon-button agent-overflow-toggle`,"aria-haspopup":`menu`,"aria-expanded":x,"aria-label":`More agent actions`,onClick:()=>S(e=>!e),children:(0,$.jsx)(DN,{size:13})}),x&&(0,$.jsxs)(`div`,{className:`agent-menu`,role:`menu`,children:[C?.signedIn&&(0,$.jsxs)(`div`,{className:`agent-account`,role:`presentation`,children:[(0,$.jsx)(`span`,{className:`agent-account-email`,children:C.email}),(0,$.jsx)(`span`,{className:`agent-plan-badge`,children:Ge?.plan||C.plan||`Free`}),Et&&(0,$.jsxs)(`span`,{className:`agent-account-reset`,children:[`resets in `,Et]})]}),(0,$.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:xt,children:`Clear context`}),(0,$.jsx)(`button`,{type:`button`,role:`menuitem`,className:`agent-menu-keys`,"aria-expanded":Te,onClick:yt,children:`Connect a model…`}),C?.signedIn&&(0,$.jsx)(`button`,{type:`button`,role:`menuitem`,onClick:ht,children:`Sign out`})]})]}),!i&&(0,$.jsx)(`button`,{type:`button`,className:`agent-icon-button agent-collapse`,onClick:()=>g(!0),"aria-label":`Collapse agent panel`,title:`Collapse agent panel (Cmd/Ctrl+B)`,children:(0,$.jsx)(IN,{size:13})})]}),ke&&(0,$.jsx)(`div`,{className:`agent-toast`,role:`status`,children:ke}),je&&(0,$.jsx)(`div`,{className:`agent-toast alert agent-steer-notice`,role:`alert`,children:je}),Te&&(0,$.jsx)(fP,{onClose:()=>Ee(!1),onChatGPT:mt,onChanged:nt}),(0,$.jsxs)(`div`,{className:`agent-transcript`,ref:Le,"aria-live":`polite`,"aria-label":`Conversation`,"data-agent-transcript":`true`,children:[T===`signed-out`&&(0,$.jsxs)(`div`,{className:`agent-state-card`,"data-agent-card":`signed-out`,children:[(0,$.jsx)(`h3`,{children:`Connect a model`}),(0,$.jsx)(`p`,{children:`Sign in with ChatGPT, or log in to another provider with a subscription, an API key, or your own proxy server. Sign-in happens in your browser — no token is ever stored in this page.`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-primary-button agent-signin`,onClick:mt,children:`Sign in with ChatGPT`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-ghost-button agent-use-key`,onClick:bt,children:`Log in with another provider`})]}),T===`signing-in`&&(0,$.jsxs)(`div`,{className:`agent-state-card`,"data-agent-card":`signing-in`,children:[(0,$.jsx)(`span`,{className:`agent-spinner`,"aria-hidden":`true`}),(0,$.jsx)(`h3`,{children:`Waiting for your browser…`}),(0,$.jsx)(`p`,{children:`Finish the ChatGPT sign-in in the browser page that just opened. This panel picks up the session when you come back.`}),C?.authorizeUrl&&(0,$.jsx)(`a`,{className:`agent-ghost-button agent-signin-link`,href:C.authorizeUrl,target:`_blank`,rel:`noopener noreferrer`,children:`Open the sign-in page again`})]}),T===`no-entitlement`&&(0,$.jsxs)(`div`,{className:`agent-state-card`,"data-agent-card":`no-entitlement`,children:[(0,$.jsx)(`h3`,{children:`Image generation is not on this plan`}),(0,$.jsxs)(`p`,{children:[`Signed in as `,C?.email||`your account`,`. Chat and tool calls work; image results need a plan with image generation.`]}),(0,$.jsx)(`button`,{type:`button`,className:`agent-primary-button`,onClick:()=>window.open(`https://chatgpt.com/#pricing`,`_blank`,`noopener,noreferrer`),children:`See plans`})]}),T===`ready`&&!Ue.length&&!Ke&&(0,$.jsxs)(`div`,{className:`agent-state-card`,"data-agent-card":`ready`,children:[(0,$.jsx)(`h3`,{children:u.emptyTitle}),(0,$.jsx)(`p`,{children:u.emptyHint(t)}),(0,$.jsx)(`div`,{className:`agent-suggestions`,children:u.suggestions.map(e=>(0,$.jsx)(`button`,{type:`button`,className:`agent-chip`,onClick:()=>{M.setDraft(e),Fe.current?.focus()},children:e},e))})]}),Ze.map(e=>{if(e.type===`steps`)return(0,$.jsxs)(Q.Fragment,{children:[e.last&&$e,(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(gP,{block:e,now:Je,toolLabels:u.toolLabels,formatClock:Oj,onRetry:()=>dt(Ve.lastPrompt)})})]},e.id);let{item:t}=e;return t.kind===`user`?(0,$.jsxs)(`div`,{className:`agent-row user`,children:[t.attachments?.length>0&&(0,$.jsx)(`div`,{className:`agent-bubble-attachments`,children:t.attachments.map((e,n)=>(0,$.jsx)(`img`,{src:e.dataUrl,alt:e.name||`Attached image`,onClick:()=>be({dataUrl:e.dataUrl,prompt:e.name})},`${t.id}-${n}`))}),(0,$.jsx)(`div`,{className:`agent-bubble`,children:t.text})]},t.id):t.kind===`assistant`?(0,$.jsx)(`div`,{className:`agent-row assistant`,children:(0,$.jsx)(`div`,{className:`agent-assistant-text`,children:(0,$.jsx)(OP,{text:t.text,tail:qe&&(0,$.jsx)(`span`,{className:`agent-caret`,children:`▌`})})})},t.id):t.kind===`job`?(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(PP,{job:t,onStop:ft,onAccept:e=>M.acceptJob(e.jobId)})},t.id):t.kind===`receipt`?(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(FP,{item:t})},t.id):t.kind===`failure`?(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(BP,{failure:t.failure,onRetry:()=>dt(Ve.lastPrompt),onFixKey:bt})},t.id):t.kind===`supervisor`?(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(RP,{note:t,onSend:e=>{M.setDraft(e),dt(e)}})},t.id):(0,$.jsx)(`div`,{className:`agent-row`,children:(0,$.jsx)(jP,{image:t,onUse:e=>M.applyImage(e.id),onUndo:e=>M.undoImage(e.id),onRegenerate:()=>dt(Ve.lastPrompt),onOpen:be})},t.id)}),!Ze.some(e=>e.type===`steps`&&e.last)&&$e,Ke&&(0,$.jsx)(MP,{resetAt:Ke.resetAt,onRetry:()=>{M.clearRateLimit(),dt(Ve.lastPrompt)},onSwitchModel:St})]}),Dt&&(0,$.jsxs)(`div`,{className:`agent-activity`,"data-agent-activity":Xe.phase,"data-agent-activity-kind":Xe.kind,role:`status`,"aria-live":`polite`,children:[(0,$.jsx)(`span`,{className:`agent-activity-indicator ${Xe.tone}`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`agent-activity-text`,children:Xe.text}),Xe.detail&&(0,$.jsx)(`span`,{className:`agent-activity-detail`,children:Xe.detail})]}),Dt&&(0,$.jsxs)(`div`,{className:`agent-composer`,"data-agent-dropping":_e?`true`:`false`,onDragOver:Ot?void 0:ct,onDragLeave:Ot?void 0:lt,onDrop:Ot?void 0:ut,onPaste:Ot?void 0:st,children:[We.length>0&&(0,$.jsx)(`ul`,{className:`agent-attachments`,"aria-label":`Attached images`,children:We.map(e=>(0,$.jsxs)(`li`,{className:`agent-attachment`,children:[(0,$.jsx)(`img`,{src:e.dataUrl,alt:e.name||`Attached image`}),(0,$.jsx)(`button`,{type:`button`,className:`agent-attachment-remove`,"aria-label":`Remove ${e.name||`attached image`}`,onClick:()=>M.removeAttachment(e.id),children:(0,$.jsx)(_N,{size:10,"aria-hidden":`true`})})]},e.id))}),he&&(0,$.jsx)(`p`,{className:`agent-attachment-notice`,role:`status`,children:he}),(0,$.jsxs)(`div`,{className:`agent-field`,children:[(0,$.jsx)(`textarea`,{ref:Fe,className:`agent-input`,"aria-label":`Message the agent`,placeholder:wt===`rate-limited`?`Composer is paused`:O?u.composerPlaceholder:`Waiting for the model list…`,value:He,disabled:Ot,onChange:e=>M.setDraft(e.target.value),onKeyDown:Ct,onDragOver:ct,onDrop:ut}),(0,$.jsxs)(`div`,{className:`agent-composer-controls`,children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-attach-chip`,"aria-pressed":pe,"aria-label":`Attach current frame`,title:`Attach current frame`,onClick:()=>me(e=>!e),children:pe?(0,$.jsx)(`span`,{className:`agent-attach-thumb`,"aria-hidden":`true`}):(0,$.jsx)(TN,{size:13,"aria-hidden":`true`})}),(0,$.jsx)(`select`,{className:`agent-model-select`,"aria-label":`Model`,title:`Model`,value:O,disabled:!D.length,onChange:e=>j(e.target.value),children:te.length?te.map(e=>(0,$.jsx)(`optgroup`,{label:e.label,children:e.models.length?e.models.map(t=>(0,$.jsx)(`option`,{value:t.key,disabled:!e.signedIn,children:e.signedIn?t.label:`${t.label} — add key`},t.key)):(0,$.jsx)(`option`,{value:`${e.id}/`,disabled:!0,children:e.signedIn?`No models`:`No models — add key`})},e.id)):D.length?D.map(e=>(0,$.jsx)(`option`,{value:e.id,children:e.label},e.id)):(0,$.jsx)(`option`,{value:``,children:k===`failed`?`No model available`:`Loading models…`})}),ce.length>0&&(0,$.jsx)(`select`,{className:`agent-model-select agent-effort-select`,"aria-label":`Reasoning effort`,title:`Reasoning effort`,value:oe??ce[0],onChange:e=>se(e.target.value),children:ce.map((e,t)=>(0,$.jsx)(`option`,{value:e,title:t===0?`Default for this model`:void 0,children:e},e))}),o===`studio`&&(0,$.jsxs)(`button`,{type:`button`,className:`agent-supervisor-toggle${le?` is-on`:``}`,role:`switch`,"aria-checked":le,"aria-label":P(`Supervisor review`,`감독 검토`),title:P(le?`Supervisor review is on: a note arrives after each editing turn`:`Supervisor review is off`,le?`감독 검토 켜짐: 편집 턴이 끝나면 메모가 옵니다`:`감독 검토 꺼짐`),onClick:de,children:[P(`Supervisor`,`감독`),` `,le?`ON`:`OFF`]}),(0,$.jsx)(`span`,{className:`agent-composer-spacer`,"aria-hidden":`true`}),qe?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`agent-send stop agent-stop`,onClick:ft,children:`Stop`}),u.steer&&(0,$.jsx)(`button`,{type:`button`,className:`agent-send agent-steer`,disabled:!He.trim(),onClick:()=>pt(He),children:`Steer`})]}):(0,$.jsx)(`button`,{type:`button`,className:`agent-send`,"aria-label":`Send`,title:`Send (Enter)`,disabled:Ot||!He.trim(),onClick:()=>dt(He),children:(0,$.jsx)(zN,{size:14,"aria-hidden":`true`})})]}),(0,$.jsx)(NP,{model:O,roles:gj(ie,O)})]})]}),Dt&&u.imageHint&&(0,$.jsx)(`p`,{className:`agent-footer-hint`,children:u.imageHint}),ye&&(0,$.jsx)(`button`,{type:`button`,className:`agent-lightbox`,"aria-label":`Close image preview`,onClick:()=>be(null),children:(0,$.jsx)(`img`,{src:ye.dataUrl,alt:ye.prompt||`Generated image`})})]})}var HP=`cozyclay:scene-change`,UP=`cozyclay.scene-playback.v1`,WP=`cozyclay:scene-playback`;function GP(e,t){return!e||typeof e!=`object`?!1:[e.assetId,e.sourceAssetId,e.matteAssetId].includes(t)}function KP(e,t,{height:n=Ja,placement:r={},name:i=t?.name}={}){if(!t||!Ot(t.id))return{document:e,object:null,changed:!1,reason:`invalid-asset`};let a=e&&typeof e==`object`?e:UD(),o=Array.isArray(a.scenes)?a.scenes:[],s=HD(o,a.activeSceneId);if(s<0||!o[s])return{document:a,object:null,changed:!1,reason:`no-active-scene`};let c=o[s],l=Array.isArray(c.objects)?c.objects:[];if(l.some(e=>GP(e,t.id)))return{document:a,object:null,changed:!1,reason:`already-in-scene`};let u=xo({assetId:t.id,aspect:Ft(t)??1,height:n,name:i},l,r);if(!u)return{document:a,object:null,changed:!1,reason:`cutout-failed`};let d=o.map((e,t)=>t===s?{...e,objects:[...l,u]}:e);return{document:{...a,version:Number.isInteger(a.version)?a.version:5,scenes:d},object:u,changed:!0,reason:`added`}}function qP(e,t,n={}){if(typeof t!=`string`||!t.trim()||!n||typeof n!=`object`)return{document:e,changed:!1,reason:`invalid-motion`};let r=e&&typeof e==`object`?e:UD(),i=Array.isArray(r.scenes)?r.scenes:[],a=HD(i,r.activeSceneId);if(a<0||!i[a])return{document:r,changed:!1,reason:`no-active-scene`};let o=i[a],s=o.stage&&typeof o.stage==`object`?o.stage:{},c=Array.isArray(s.characters)?s.characters:[],l=c.find(e=>e?.id===t);if(!l)return{document:r,changed:!1,reason:`character-not-found`};if(n.spec?.schema!==`cozyclay.motion-spec.v1`)return{document:r,changed:!1,reason:`motion-spec-missing`};let u={schema:`cozyclay.take.v3`,rig:l.model||`x-bot-tpose`,spec:n.spec,placement:{position:[l.x??0,l.y??0,l.z??0],yaw:l.rot??0},scene:Nl(Array.isArray(o.objects)?o.objects:[])},d=c.map(e=>e?.id===t?{...e,motionTake:u}:e),f={...o,stage:{...s,characters:d}};return{document:{...r,scenes:i.map((e,t)=>t===a?f:e)},changed:!0,reason:`updated`,characterId:t,motionTake:u}}function JP(e,t,n={}){let r=qP(n.document??YP(n.storage),e,t);return r.changed&&XP(r.document,n),r}function YP(e=globalThis.localStorage){return qD(e?.getItem?.(`cozyclay.scenes.v5`)??null).document}function XP(e,{storage:t=globalThis.localStorage,target:n=globalThis}={}){let r=e&&typeof e==`object`?e:UD(),i=YD(r);try{t?.setItem?.(nD,i)}catch{}try{n?.dispatchEvent?.(new CustomEvent(HP,{detail:r}))}catch{}return r}function ZP(e,{storage:t=globalThis.localStorage,target:n=globalThis}={}){if(typeof e!=`function`)return()=>{};let r=t=>{let n=t?.detail;n&&typeof n==`object`&&e(n,{source:`same-tab`})},i=t=>{if(t?.key!==`cozyclay.scenes.v5`||!t.newValue)return;let n=qD(t.newValue);n.status===`corrupt`||n.status===`future`||!n.document||e(n.document,{source:`storage`})};return n?.addEventListener?.(HP,r),n?.addEventListener?.(`storage`,i),()=>{n?.removeEventListener?.(HP,r),n?.removeEventListener?.(`storage`,i)}}function QP(e,{storage:t=globalThis.localStorage,target:n=globalThis}={}){let r={activeSceneId:typeof e?.activeSceneId==`string`?e.activeSceneId:null,frame:Number.isFinite(Number(e?.frame))?Math.max(0,Math.round(Number(e.frame))):null,playing:typeof e?.playing==`boolean`&&e.playing,issuedAt:Date.now()};try{t?.setItem?.(UP,JSON.stringify(r))}catch{}try{n?.dispatchEvent?.(new CustomEvent(WP,{detail:r}))}catch{}return r}function $P(e,{storage:t=globalThis.localStorage,target:n=globalThis}={}){if(typeof e!=`function`)return()=>{};let r=t=>{try{let n=typeof t==`string`?JSON.parse(t):t;n&&typeof n==`object`&&e(n)}catch{}},i=e=>r(e?.detail),a=e=>{e?.key===`cozyclay.scene-playback.v1`&&e.newValue&&r(e.newValue)};return n?.addEventListener?.(WP,i),n?.addEventListener?.(`storage`,a),()=>{n?.removeEventListener?.(WP,i),n?.removeEventListener?.(`storage`,a)}}async function eF(e,{importer:t=Vt,remember:n=hk,importOptions:r}={}){return n(await t(e,{maxDimension:xt,...r||{}}))}async function tF(e,t={}){let n=await eF(e,t),r=KP(t.document??YP(t.storage),n,t);return r.changed&&XP(r.document,t),{...r,asset:n}}export{bk as $,hr as $a,$o as $i,nT as $n,op as $r,PD as $t,jM as A,Oi as Aa,Ga as Ai,QT as An,It as Ao,ym as Ar,TO as At,Hj as B,Sr as Ba,rs as Bi,OT as Bn,Xe as Bo,mp as Br,pD as Bt,nN as C,xi as Ca,L as Ci,uE as Cn,Rt as Co,Mx as Cr,$D as Ct,MM as D,gi as Da,io as Di,JT as Dn,kt as Do,hx as Dr,OO as Dt,DM as E,_i as Ea,Ia as Ei,tE as En,Ot as Eo,_x as Er,kO as Et,mM as F,Jr as Fa,xo as Fi,$T as Fn,qe as Fo,yp as Fr,UO as Ft,pA as G,wr as Ga,so as Gi,dT as Gn,Re as Go,Xf as Gr,fD as Gt,mj as H,Fr as Ha,wo as Hi,ET as Hn,rt as Ho,bp as Hr,gD as Ht,lM as I,Kr as Ia,Co as Ii,FT as In,We as Io,vp as Ir,ZO as It,cA as J,Pr as Ja,Oo as Ji,AT as Jn,cp as Jr,HD as Jt,gA as K,yr as Ka,Wo as Ki,bT as Kn,Ie as Ko,ip as Kr,rD as Kt,sM as L,qr as La,bo as Li,PT as Ln,ot as Lo,hp as Lr,fO as Lt,hM as M,Yr as Ma,vo as Mi,YT as Mn,Yt as Mo,Bp as Mr,KO as Mt,gM as N,Ur as Na,no as Ni,UT as Nn,Ht as No,zp as Nr,JO as Nt,TM as O,Ci as Oa,ao as Oi,ZT as On,Ct as Oo,Gb as Or,XO as Ot,fM as P,Gr as Pa,Fo as Pi,WT as Pn,Kt as Po,Mp as Pr,tk as Pt,vk as Q,Er as Qa,Qo as Qi,rT as Qn,$f as Qr,UD as Qt,cM as R,Lr as Ra,To as Ri,pT as Rn,st as Ro,pp as Rr,bO as Rt,vN as S,vi as Sa,R as Si,fE as Sn,Xt as So,Px as Sr,dO as St,YM as T,Si as Ta,Ka as Ti,eE as Tn,At as To,px as Tr,NO as Tt,cj as U,kr as Ua,Eo as Ui,wT as Un,Ve as Uo,Tp as Ur,_D as Ut,XA as V,br as Va,So as Vi,CT as Vn,Ye as Vo,up as Vr,uD as Vt,hA as W,xr as Wa,Vo as Wi,kT as Wn,Be as Wo,_p as Wr,mD as Wt,xk as X,Dr as Xa,Bo as Xi,aT as Xn,ap as Xr,TD as Xt,Xk as Y,Or as Ya,is as Yi,lT as Yn,Qf as Yr,RD as Yt,yk as Z,Tr as Za,Po as Zi,oT as Zn,Jf as Zr,kD as Zt,EN as _,oa as _a,vs as _i,hE as _n,Mt as _o,jx as _r,$O as _t,ZP as a,jo as aa,Ml as ai,qD as an,$n as ao,gC as ar,ak as at,bN as b,Xr as ba,_s as bi,pE as bn,Gt as bo,Rx as br,qO as bt,YN as c,Ua as ca,bl as ci,YD as cn,dr as co,Fx as cr,eO as ct,PN as d,Na as da,Ts as di,XE as dn,In as do,Kx as dr,LO as dt,yo as ea,Zf as ei,zD as en,gr as eo,cw as er,mk as et,NN as f,ja as fa,G as fi,GE as fn,dn as fo,Ax as fr,CO as ft,ON as g,ua as ga,z as gi,bE as gn,Wt as go,Jx as gr,EO as gt,kN as h,da as ha,as as hi,FE as hn,Ft as ho,Ux as hr,YO as ht,YP as i,uo as ia,np as ii,CD as in,Vn as io,uC as ir,sk as it,dM as j,ji as ja,co as ji,XT as jn,Jt as jo,Hp as jr,jO as jt,OM as k,bi as ka,eo as ki,iE as kn,Zt as ko,B_ as kr,ek as kt,VN as l,pa as la,Sl as li,YE as ln,rr as lo,qx as lr,tO as lt,AN as m,Fa as ma,W as mi,QE as mn,bt as mo,Xx as mr,MO as mt,tF as n,zo as na,qf as ni,XD as nn,_r as no,FC as nr,hk as nt,$P as o,Zo as oa,Nl as oi,VD as on,tr as oo,nS as or,QD as ot,jN as p,Ma as pa,I as pi,KE as pn,vt as po,zx as pr,lO as pt,_A as q,Rr as qa,ns as qi,DT as qn,rp as qr,nD as qt,QP as r,Ro as ra,Yf as ri,JD as rn,vr as ro,PC as rr,_k as rt,VP as s,Lo as sa,yl as si,BD as sn,ir as so,Lx as sr,ZD as st,JP as t,es as ta,sp as ti,hD as tn,P as to,uw as tr,gk as tt,RN as u,fa as ua,Cc as ui,IE as un,ur as uo,Gx as ur,wO as ut,wN as v,$i as va,U as vi,xE as vn,Ut as vo,Wx as vr,HO as vt,JM as w,ki as wa,Ja as wi,HT as wn,Vt as wo,Nx as wr,uO as wt,yN as x,ii as xa,fs as xi,dE as xn,Pt as xo,Zx as xr,IO as xt,CN as y,ea as ya,V as yi,SE as yn,Qt as yo,Yx as yr,QO as yt,rM as z,Ir as za,ko as zi,uT as zn,lt as zo,fp as zr,AO as zt};