{"version":3,"file":"shared-lib.DcqSLvLt.mjs","names":["fonts","css","className","fonts","css","className","useStore","useState","t","a","b","cx","r","useRef","i","j","e","to","ts","fonts","css","className","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","animation","animation1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","getProps","className","addPropertyOverrides","AtSymbol","serializationHash","variantClassNames","transition1","t","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","Button","IconButton","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","Image1","RichText","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","e","t","n","i","o","r","a","s","l","c","u","f","d","p","v","y","m","g","x","h","S","w","b","_","A","C","M","B","I","T","R","E","V","L","k","q","O","D","F","H","j","W","G","N","U","z","X","Q","Y","Z","$","J","Matter","Matter","i","React","Matter","e","i","y","x","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","className","RichText","SVG","v","t","I","e","b","n","r","x","N","R","P","i","s","a","o","j","C","J","V","K","Z","u","l","h","c","d","g","p","U","S","L","B","E","M","y","c","e","u","t","a","f","l","d","p","n","o","r","i","l","g","e","m","t","a","r"],"sources":["https:/framerusercontent.com/modules/mumTinintR4AIs2TMWoY/E3ilFQso3d4VborR2zqF/QigpaSEWp.js","https:/framerusercontent.com/modules/B920aPmIz2gesjC3EWCb/cDKdXRXhTremIFICZJT9/nKawLoObs.js","https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/Z94H7SbtRp0eIuNil2MW/AfrexZ0tzEj32xYT9V2N/EclipseToggle.js","https:/framerusercontent.com/modules/9DmpZujyf2FkCUEa9ePp/ZHeeL4tviKCmbbyTbSGD/xIMWIV8VX.js","https:/framerusercontent.com/modules/utGD9lCad7Hc3LG7DJdn/eiOdCozwcFGcRBqYvRZB/heN_EOHyG.js","https:/framerusercontent.com/modules/ws16QcKfyIodusRormm1/xKaUTtj7mJwushGmIHe1/u1xUycoro.js","https:/framerusercontent.com/modules/1lUk1TfvZjRdlJsRNotP/lJ1jENdzoDPrUDxt7YZz/ch_nII7Pe.js","https:/framerusercontent.com/modules/7XYFjKKX3Oc7Fl8UP0id/hmRn96GYoopJqLReXKLJ/VqS4pE3VE.js","https:/framerusercontent.com/modules/Qp7QnKs7s6FTn9uMZgRO/C7OM43GjHmHjQWWUVuxG/mm1ooJYW9.js","https:/ga.jspm.io/npm:matter-js@0.18.0/build/matter.js","https:/framerusercontent.com/modules/KYVdEKqNHqMXAKLjSKCy/Ok6wam0uM9G4VUuXWgpR/MakeWalls.js","https:/framer.com/m/MakeWalls-36kf.js@Ok6wam0uM9G4VUuXWgpR","https:/framerusercontent.com/modules/6UgWtAa26OCy0CE59gub/LTuIQWugGJr30ZUS1CV9/MakeBodies.js","https:/framer.com/m/MakeBodies-Lkv1.js@LTuIQWugGJr30ZUS1CV9","https:/framerusercontent.com/modules/4Fac5OzNRRqm9W1N01zM/EmaNXD5BbJi7EsAFalbB/Physics.js","https:/framerusercontent.com/modules/b5D6NotqbX4ORfRTwaQH/kisrx2uw57ww9HxEGSNe/XiCnSmisM.js","https:/framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN-0.js","https:/framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN-1.js","https:/framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js"],"sourcesContent":["// Generated by Framer (448a859)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;PP Telegraf Regular\",\"CUSTOMV2;PP Telegraf Ultrabold\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"PP Telegraf Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Telegraf\",url:\"https://framerusercontent.com/assets/M6kcZiAiWFBxmXufSV18IilATQ.woff2\",weight:\"400\"},{cssFamilyName:\"PP Telegraf Ultrabold\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Telegraf\",url:\"https://framerusercontent.com/assets/M2PVbRGwqLeN8ABeQH6eyykqjE.woff2\",weight:\"800\"}]}];export const css=['.framer-8OPTs .framer-styles-preset-1yt2hkj:not(.rich-text-wrapper), .framer-8OPTs .framer-styles-preset-1yt2hkj.rich-text-wrapper h3 { --framer-font-family: \"PP Telegraf Regular\", \"PP Telegraf Regular Placeholder\", sans-serif; --framer-font-family-bold: \"PP Telegraf Ultrabold\", \"PP Telegraf Ultrabold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 800; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1148px) and (min-width: 635px) { .framer-8OPTs .framer-styles-preset-1yt2hkj:not(.rich-text-wrapper), .framer-8OPTs .framer-styles-preset-1yt2hkj.rich-text-wrapper h3 { --framer-font-family: \"PP Telegraf Regular\", \"PP Telegraf Regular Placeholder\", sans-serif; --framer-font-family-bold: \"PP Telegraf Ultrabold\", \"PP Telegraf Ultrabold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 800; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 30px; --framer-text-alignment: start; --framer-text-color: var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 634px) and (min-width: 0px) { .framer-8OPTs .framer-styles-preset-1yt2hkj:not(.rich-text-wrapper), .framer-8OPTs .framer-styles-preset-1yt2hkj.rich-text-wrapper h3 { --framer-font-family: \"PP Telegraf Regular\", \"PP Telegraf Regular Placeholder\", sans-serif; --framer-font-family-bold: \"PP Telegraf Ultrabold\", \"PP Telegraf Ultrabold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 800; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-8OPTs\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (448a859)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;PP Supply Mono Regular\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"PP Supply Mono Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Supply Mono\",url:\"https://framerusercontent.com/assets/CTX3fHUepJxbyoY195f0xCdXUU.woff2\",weight:\"400\"}]}];export const css=['.framer-ib4rT .framer-styles-preset-dqig1f:not(.rich-text-wrapper), .framer-ib4rT .framer-styles-preset-dqig1f.rich-text-wrapper h4 { --framer-font-family: \"PP Supply Mono Regular\", \"PP Supply Mono Regular Placeholder\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-ib4rT\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";// ─── Shared store ─────────────────────────────────────────────────────────────\nconst useStore=createStore({theme:\"system\"});const changeTheme=theme=>{const html=document.getElementsByTagName(\"html\")[0];const body=document.getElementsByTagName(\"body\")[0];html.setAttribute(\"toggle-theme\",theme);body.setAttribute(\"toggle-theme\",theme);localStorage.setItem(\"theme\",theme);window.dispatchEvent(new Event(\"themeChange\"));};// ─── Helpers ──────────────────────────────────────────────────────────────────\nfunction ease(t){return t<.5?2*t*t:-1+(4-2*t)*t;}function lerpColor(a,b,t){const ah=a.replace(\"#\",\"\");const bh=b.replace(\"#\",\"\");const ar=parseInt(ah.slice(0,2),16),ag=parseInt(ah.slice(2,4),16),ab=parseInt(ah.slice(4,6),16);const br=parseInt(bh.slice(0,2),16),bg=parseInt(bh.slice(2,4),16),bb=parseInt(bh.slice(4,6),16);return`rgb(${Math.round(ar+(br-ar)*t)},${Math.round(ag+(bg-ag)*t)},${Math.round(ab+(bb-ab)*t)})`;}// Resolve the true current theme — checks localStorage first, then system preference\nfunction resolveTheme(){if(typeof window===\"undefined\")return\"light\";const saved=localStorage.getItem(\"theme\");if(saved===\"dark\"||saved===\"light\")return saved;return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\";}const DURATION=900;// ─── Component ────────────────────────────────────────────────────────────────\nexport default function EclipseToggle({size=48}){const[store,setStore]=useStore();const cx=size/2;const r=size/2;const lightX=-cx;const darkX=cx;// Resolve true starting theme immediately — don't trust store.theme on first render\nconst initialDark=resolveTheme()===\"dark\";const moonRef=useRef(null);const sunRef=useRef(null);const ringRef=useRef(null);const coronaRef=useRef(null);const moonXRef=useRef(initialDark?darkX:lightX);const rafRef=useRef(null);const runningRef=useRef(false);// ── Theme init ────────────────────────────────────────────────────────────\nuseEffect(()=>{const resolved=resolveTheme();// Sync store to resolved theme\nsetStore({theme:resolved});localStorage.setItem(\"theme\",resolved);const html=document.getElementsByTagName(\"html\")[0];const body=document.getElementsByTagName(\"body\")[0];html?.setAttribute(\"toggle-theme\",resolved);body?.setAttribute(\"toggle-theme\",resolved);// Set initial SVG state to match resolved theme\nconst isDark=resolved===\"dark\";moonRef.current?.setAttribute(\"cx\",String(isDark?darkX:lightX));moonXRef.current=isDark?darkX:lightX;coronaRef.current?.setAttribute(\"opacity\",isDark?\"1\":\"0\");const stroke=isDark?\"#ffffff\":\"#000000\";ringRef.current?.setAttribute(\"stroke\",stroke);sunRef.current?.setAttribute(\"stroke\",stroke);let lightTokens=[];let darkTokens=[];for(let i=0;i<document.styleSheets.length;i++){const sheet=document.styleSheets[i];try{for(let rule of sheet.cssRules){if(rule.selectorText===\"body\"){const style=rule.style;for(let j=0;j<style.length;j++){const prop=style[j];if(prop.includes(\"--token\")){lightTokens.push(`${prop}: ${style.getPropertyValue(prop)};`);}}lightTokens=lightTokens.join(\" \");}else if(rule.conditionText===\"(prefers-color-scheme: dark)\"){if(!rule.cssText.includes(\"body:not([data-framer-theme])\")){darkTokens=rule.cssRules[0].cssText.replace(\"body\",\"\").replace(/\\s*{\\s*/,\"\").replace(/\\s*}\\s*$/,\"\");}}}}catch(e){console.warn(\"Cannot access stylesheet:\",sheet.href);}}const styleEl=document.createElement(\"style\");styleEl.id=\"toggle-theme\";styleEl.textContent=`\n            body[toggle-theme=\"light\"] {${lightTokens}}\n            body[toggle-theme=\"dark\"]  {${darkTokens}}\n            html[toggle-theme=\"light\"] { color-scheme: light; }\n            html[toggle-theme=\"dark\"]  { color-scheme: dark;  }\n            body { transition: background-color 0.9s ease, color 0.9s ease; }\n            *, *::before, *::after { transition: background-color 0.9s ease, color 0.9s ease, border-color 0.9s ease; }\n        `;document.head.appendChild(styleEl);return()=>{document.getElementById(\"toggle-theme\")?.remove();html?.setAttribute(\"toggle-theme\",\"system\");body?.setAttribute(\"toggle-theme\",\"system\");};},[]);// ── Click handler ─────────────────────────────────────────────────────────\nconst handleClick=()=>{if(runningRef.current)return;runningRef.current=true;if(rafRef.current)cancelAnimationFrame(rafRef.current);// Always read live DOM state — never trust store during animation\nconst currentTheme=document.body.getAttribute(\"toggle-theme\")||resolveTheme();const goingDark=currentTheme!==\"dark\";const from=moonXRef.current;const to=goingDark?darkX:lightX;let t0=null;let themeTriggered=false;const tick=ts=>{if(!t0)t0=ts;const t=Math.min((ts-t0)/DURATION,1);const e=ease(t);moonXRef.current=from+(to-from)*e;moonRef.current?.setAttribute(\"cx\",String(moonXRef.current));coronaRef.current?.setAttribute(\"opacity\",String(goingDark?e:1-e));const strokeColor=goingDark?lerpColor(\"#000000\",\"#ffffff\",e):lerpColor(\"#ffffff\",\"#000000\",e);ringRef.current?.setAttribute(\"stroke\",strokeColor);sunRef.current?.setAttribute(\"stroke\",strokeColor);// Fire theme at totality so site fade runs in parallel\n// with the second half of the eclipse animation\nif(!themeTriggered&&t>=.5){themeTriggered=true;const newTheme=goingDark?\"dark\":\"light\";setStore({theme:newTheme});changeTheme(newTheme);}if(t<1){rafRef.current=requestAnimationFrame(tick);return;}// Settled — lock final visual state\nmoonXRef.current=to;moonRef.current?.setAttribute(\"cx\",String(to));const finalStroke=goingDark?\"#ffffff\":\"#000000\";ringRef.current?.setAttribute(\"stroke\",finalStroke);sunRef.current?.setAttribute(\"stroke\",finalStroke);coronaRef.current?.setAttribute(\"opacity\",goingDark?\"1\":\"0\");runningRef.current=false;};rafRef.current=requestAnimationFrame(tick);};// ── Render — initial visual state driven by resolveTheme() ───────────────\nconst initDark=initialDark;const initStroke=initDark?\"#ffffff\":\"#000000\";return /*#__PURE__*/_jsx(\"div\",{style:{width:size,height:size,flexShrink:0,flexGrow:0},children:/*#__PURE__*/_jsx(\"button\",{onClick:handleClick,\"aria-label\":initDark?\"Switch to light mode\":\"Switch to dark mode\",\"aria-pressed\":initDark,style:{width:size,height:size,background:\"none\",border:\"none\",padding:0,cursor:\"pointer\",outline:\"none\",overflow:\"visible\",display:\"block\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:`0 0 ${size} ${size}`,style:{overflow:\"visible\",display:\"block\"},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsx(\"clipPath\",{id:\"eclipse-clip\",children:/*#__PURE__*/_jsx(\"circle\",{cx:cx,cy:cx,r:r})}),/*#__PURE__*/_jsxs(\"filter\",{id:\"eclipse-glow\",x:\"-100%\",y:\"-100%\",width:\"300%\",height:\"300%\",children:[/*#__PURE__*/_jsx(\"feGaussianBlur\",{in:\"SourceGraphic\",stdDeviation:\"4\",result:\"b1\"}),/*#__PURE__*/_jsx(\"feGaussianBlur\",{in:\"SourceGraphic\",stdDeviation:\"10\",result:\"b2\"}),/*#__PURE__*/_jsx(\"feGaussianBlur\",{in:\"SourceGraphic\",stdDeviation:\"18\",result:\"b3\"}),/*#__PURE__*/_jsxs(\"feMerge\",{children:[/*#__PURE__*/_jsx(\"feMergeNode\",{in:\"b3\"}),/*#__PURE__*/_jsx(\"feMergeNode\",{in:\"b2\"}),/*#__PURE__*/_jsx(\"feMergeNode\",{in:\"b1\"}),/*#__PURE__*/_jsx(\"feMergeNode\",{in:\"SourceGraphic\"})]})]})]}),/*#__PURE__*/_jsx(\"circle\",{ref:coronaRef,cx:cx,cy:cx,r:r-1,fill:\"none\",stroke:\"white\",strokeWidth:\"1.5\",filter:\"url(#eclipse-glow)\",opacity:initDark?1:0}),/*#__PURE__*/_jsx(\"circle\",{ref:sunRef,cx:cx,cy:cx,r:r-1,fill:\"white\",stroke:initStroke,strokeWidth:\"1.5\"}),/*#__PURE__*/_jsx(\"g\",{clipPath:\"url(#eclipse-clip)\",children:/*#__PURE__*/_jsx(\"circle\",{ref:moonRef,cx:initDark?darkX:lightX,cy:cx,r:r,fill:\"black\"})}),/*#__PURE__*/_jsx(\"circle\",{ref:ringRef,cx:cx,cy:cx,r:r-1,fill:\"none\",stroke:initStroke,strokeWidth:\"1.5\"})]})})});}// ─── Property Controls ────────────────────────────────────────────────────────\naddPropertyControls(EclipseToggle,{size:{type:ControlType.Number,title:\"Size\",defaultValue:48,min:24,max:96,step:2,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EclipseToggle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EclipseToggle.map","// Generated by Framer (b3492b4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-MRnb1 .framer-styles-preset-1n8b8bo:not(.rich-text-wrapper), .framer-MRnb1 .framer-styles-preset-1n8b8bo.rich-text-wrapper a { --framer-link-current-text-color: var(--token-4ba47def-cd96-4cdf-b05c-9552813f6cd1, #ffc700); --framer-link-current-text-decoration: underline; --framer-link-hover-text-color: var(--token-6f65be5b-d434-40c7-9377-eff99acd05cd, #8f8f8f); --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, #000000); --framer-link-text-decoration: underline; }\"];export const className=\"framer-MRnb1\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (448a859)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;PP Supply Mono Regular\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"PP Supply Mono Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Supply Mono\",url:\"https://framerusercontent.com/assets/CTX3fHUepJxbyoY195f0xCdXUU.woff2\",weight:\"400\"}]}];export const css=['.framer-Otsa0 .framer-styles-preset-14y2wh2:not(.rich-text-wrapper), .framer-Otsa0 .framer-styles-preset-14y2wh2.rich-text-wrapper h6 { --framer-font-family: \"PP Supply Mono Regular\", \"PP Supply Mono Regular Placeholder\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-80544288-9fc2-479e-b7e3-a43fa5b423d3, #121212); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-Otsa0\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b3492b4)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/utGD9lCad7Hc3LG7DJdn/eiOdCozwcFGcRBqYvRZB/heN_EOHyG.js\";const enabledGestures={Tc2wf66pg:{hover:true,pressed:true},tRbzm2k1f:{hover:true,pressed:true}};const cycleOrder=[\"tRbzm2k1f\",\"Tc2wf66pg\"];const serializationHash=\"framer-YEU3x\";const variantClassNames={Tc2wf66pg:\"framer-v-1f5tew3\",tRbzm2k1f:\"framer-v-e1frb5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const MlarH8BLN=undefined;const BHOb6yUiX=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:1,rotate:3,rotateX:0,rotateY:0,scale:1.1,skewX:0,skewY:0,transition:transition1};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:.9,skewX:0,skewY:0,transition:transition1};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Accent Small\":\"Tc2wf66pg\",Accent:\"tRbzm2k1f\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,label,link,width,...props})=>{return{...props,BHOb6yUiX:label??props.BHOb6yUiX??\"Label\",MlarH8BLN:link??props.MlarH8BLN,variant:humanReadableVariantMap[props.variant]??props.variant??\"tRbzm2k1f\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,MlarH8BLN,BHOb6yUiX,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"tRbzm2k1f\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-e1frb5\",className,classNames),\"data-framer-name\":\"Accent\",layoutDependency:layoutDependency,layoutId:\"tRbzm2k1f\",ref:refBinding,style:{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,...style},variants:{\"Tc2wf66pg-hover\":{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},\"Tc2wf66pg-pressed\":{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},\"tRbzm2k1f-pressed\":{borderBottomLeftRadius:1e3,borderBottomRightRadius:1e3,borderTopLeftRadius:1e3,borderTopRightRadius:1e3}},...addPropertyOverrides({\"Tc2wf66pg-hover\":{\"data-framer-name\":undefined},\"Tc2wf66pg-pressed\":{\"data-framer-name\":undefined},\"tRbzm2k1f-hover\":{\"data-framer-name\":undefined},\"tRbzm2k1f-pressed\":{\"data-framer-name\":undefined},Tc2wf66pg:{\"data-framer-name\":\"Accent Small\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:MlarH8BLN,motionChild:true,nodeId:\"yNu2Yyu9r\",openInNewTab:false,scopeId:\"u1xUycoro\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-15y1z66 framer-1h1tcnf\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"yNu2Yyu9r\",style:{backgroundColor:\"var(--token-4ba47def-cd96-4cdf-b05c-9552813f6cd1, rgb(255, 199, 0))\",borderBottomLeftRadius:1e3,borderBottomRightRadius:1e3,borderTopLeftRadius:1e3,borderTopRightRadius:1e3,boxShadow:\"none\"},variants:{\"Tc2wf66pg-hover\":{backgroundColor:\"var(--token-b44abd82-515d-4d9e-951a-695bc355e2ce, rgb(250, 250, 250))\",boxShadow:\"none\"},\"Tc2wf66pg-pressed\":{boxShadow:\"0px 0px 7px 0px rgba(0, 0, 0, 0.45)\"},\"tRbzm2k1f-hover\":{backgroundColor:\"rgb(255, 255, 255)\"},\"tRbzm2k1f-pressed\":{boxShadow:\"inset 0px 0px 7px 0px rgba(0, 0, 0, 0.45)\"}},...addPropertyOverrides({\"Tc2wf66pg-hover\":{whileHover:animation},\"Tc2wf66pg-pressed\":{whileHover:animation},\"tRbzm2k1f-hover\":{whileHover:animation},\"tRbzm2k1f-pressed\":{whileTap:animation1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{className:\"framer-styles-preset-14y2wh2\",\"data-styles-preset\":\"heN_EOHyG\",dir:\"auto\",children:\"BLAST OFF\"})}),className:\"framer-10m8umx\",\"data-framer-name\":\"Label\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"vpQAxiTtS\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:BHOb6yUiX,verticalAlignment:\"top\",withExternalLayout:true})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-YEU3x.framer-1h1tcnf, .framer-YEU3x .framer-1h1tcnf { display: block; }\",\".framer-YEU3x.framer-e1frb5 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-YEU3x .framer-15y1z66 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 24px 48px 24px 48px; position: relative; text-decoration: none; width: min-content; }\",\".framer-YEU3x .framer-10m8umx { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-YEU3x.framer-v-1f5tew3 .framer-15y1z66 { padding: 14px 32px 14px 32px; }\",\".framer-YEU3x.framer-v-e1frb5.hover .framer-15y1z66, .framer-YEU3x.framer-v-e1frb5.pressed .framer-15y1z66, .framer-YEU3x.framer-v-1f5tew3.hover .framer-15y1z66, .framer-YEU3x.framer-v-1f5tew3.pressed .framer-15y1z66 { will-change: var(--framer-will-change-effect-override, transform); }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 67\n * @framerIntrinsicWidth 137.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"Tc2wf66pg\":{\"layout\":[\"auto\",\"auto\"]},\"Nq2pZfS3Z\":{\"layout\":[\"auto\",\"auto\"]},\"qyX70HKPV\":{\"layout\":[\"auto\",\"auto\"]},\"TyN_4FZzh\":{\"layout\":[\"auto\",\"auto\"]},\"RtHRq7Lzh\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"MlarH8BLN\":\"link\",\"BHOb6yUiX\":\"label\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Frameru1xUycoro=withCSS(Component,css,\"framer-YEU3x\");export default Frameru1xUycoro;Frameru1xUycoro.displayName=\"Button\";Frameru1xUycoro.defaultProps={height:67,width:137.5};addPropertyControls(Frameru1xUycoro,{variant:{options:[\"tRbzm2k1f\",\"Tc2wf66pg\"],optionTitles:[\"Accent\",\"Accent Small\"],title:\"Variant\",type:ControlType.Enum},MlarH8BLN:{title:\"Link\",type:ControlType.Link},BHOb6yUiX:{defaultValue:\"Label\",displayTextArea:false,placeholder:\"Label\",title:\"Label\",type:ControlType.String},onBHOb6yUiXChange:{changes:\"BHOb6yUiX\",type:ControlType.ChangeHandler}});addFonts(Frameru1xUycoro,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameru1xUycoro\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"67\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"137.5\",\"framerVariables\":\"{\\\"MlarH8BLN\\\":\\\"link\\\",\\\"BHOb6yUiX\\\":\\\"label\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Tc2wf66pg\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Nq2pZfS3Z\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"qyX70HKPV\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"TyN_4FZzh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"RtHRq7Lzh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 13.5 9 C 13.5 11.485 11.485 13.5 9 13.5 C 6.515 13.5 4.5 11.485 4.5 9 C 4.5 6.515 6.515 4.5 9 4.5 C 11.485 4.5 13.5 6.515 13.5 9 Z M 13.5 9 C 13.5 10.657 14.507 12 15.75 12 C 16.993 12 18 10.657 18 9 C 18 6.697 17.121 4.393 15.364 2.636 C 11.849 -0.879 6.151 -0.879 2.636 2.636 C -0.879 6.151 -0.879 11.849 2.636 15.364 C 6.151 18.879 11.849 18.879 15.364 15.364 M 13.5 9 L 13.5 5.25\" fill=\"transparent\" height=\"18.000025px\" id=\"b8LFyosmU\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" stroke=\"var(--szd5nr, black)\" transform=\"translate(3 3)\" width=\"18px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,YmfIrZ3Ez:stroke??props.YmfIrZ3Ez??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,YmfIrZ3Ez,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-VmkWo\",className),layoutId:layoutId,ref:ref,style:{\"--szd5nr\":YmfIrZ3Ez,...style}});});const css=[`.framer-VmkWo { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--szd5nr); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"YmfIrZ3Ez\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"At Symbol\",\"color\":{\"type\":\"variable\",\"value\":\"szd5nr\"},\"set\":{\"localId\":\"vectorSet/kNBkgkDkJ\",\"id\":\"kNBkgkDkJ\",\"moduleId\":\"DyJDRQD0f0RPOu0ZYoEG\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-VmkWo\");Icon.displayName=\"At Symbol\";export default Icon;addPropertyControls(Icon,{YmfIrZ3Ez:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\",\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"At Symbol\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"szd5nr\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/kNBkgkDkJ\\\",\\\"id\\\":\\\"kNBkgkDkJ\\\",\\\"moduleId\\\":\\\"DyJDRQD0f0RPOu0ZYoEG\\\"}}\",\"framerVariables\":\"{\\\"YmfIrZ3Ez\\\":\\\"stroke\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b3492b4)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,Link,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import AtSymbol from\"https://framerusercontent.com/modules/1lUk1TfvZjRdlJsRNotP/lJ1jENdzoDPrUDxt7YZz/ch_nII7Pe.js\";const AtSymbolFonts=getFonts(AtSymbol);const enabledGestures={E3luSTtmM:{hover:true,pressed:true}};const serializationHash=\"framer-W2CN4\";const variantClassNames={E3luSTtmM:\"framer-v-lzczvg\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const Azg7pt6ka=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transformTemplate1=(_,t)=>`translate(-50%, -50%) ${t}`;const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1.1,skewX:0,skewY:0,transition:transition1};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:.9,skewX:0,skewY:0,transition:transition1};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,width,...props})=>{return{...props,Azg7pt6ka:link??props.Azg7pt6ka};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,Azg7pt6ka,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"E3luSTtmM\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-lzczvg\",className,classNames),\"data-framer-name\":\"Accent\",layoutDependency:layoutDependency,layoutId:\"E3luSTtmM\",ref:refBinding,style:{...style},...addPropertyOverrides({\"E3luSTtmM-hover\":{\"data-framer-name\":undefined},\"E3luSTtmM-pressed\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:Azg7pt6ka,motionChild:true,nodeId:\"tJvR999Nd\",openInNewTab:false,scopeId:\"VqS4pE3VE\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-h8paku framer-14k5laa\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"tJvR999Nd\",style:{backgroundColor:\"var(--token-4ba47def-cd96-4cdf-b05c-9552813f6cd1, rgb(255, 199, 0))\",borderBottomLeftRadius:1e3,borderBottomRightRadius:1e3,borderTopLeftRadius:1e3,borderTopRightRadius:1e3},transformTemplate:transformTemplate1,...addPropertyOverrides({\"E3luSTtmM-hover\":{whileHover:animation},\"E3luSTtmM-pressed\":{whileTap:animation1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ifc6x5\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"LJdYte4OK\",transformTemplate:transformTemplate1,children:/*#__PURE__*/_jsx(AtSymbol,{animated:true,className:\"framer-1blrwlj\",\"data-framer-name\":\"Vector\",layoutDependency:layoutDependency,layoutId:\"V0_0HRZq1\",style:{\"--szd5nr\":\"var(--token-80544288-9fc2-479e-b7e3-a43fa5b423d3, rgb(18, 18, 18))\"}})})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-W2CN4.framer-14k5laa, .framer-W2CN4 .framer-14k5laa { display: block; }\",\".framer-W2CN4.framer-lzczvg { cursor: pointer; height: 40px; position: relative; width: 40px; }\",\".framer-W2CN4 .framer-h8paku { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 40px); left: 50%; overflow: visible; position: absolute; text-decoration: none; top: 50%; width: 40px; }\",\".framer-W2CN4 .framer-1ifc6x5 { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 24px); left: 50%; overflow: visible; position: absolute; top: 50%; width: 24px; }\",\".framer-W2CN4 .framer-1blrwlj { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 24px); left: 0px; position: absolute; right: 0px; top: 0px; width: calc(100% - 0px); }\",\".framer-W2CN4.framer-v-lzczvg.hover .framer-h8paku, .framer-W2CN4.framer-v-lzczvg.pressed .framer-h8paku { will-change: var(--framer-will-change-effect-override, transform); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 40\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"wVMOS2_1L\":{\"layout\":[\"fixed\",\"fixed\"]},\"QRbGbMALD\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"Azg7pt6ka\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerVqS4pE3VE=withCSS(Component,css,\"framer-W2CN4\");export default FramerVqS4pE3VE;FramerVqS4pE3VE.displayName=\"Icon Button\";FramerVqS4pE3VE.defaultProps={height:40,width:40};addPropertyControls(FramerVqS4pE3VE,{Azg7pt6ka:{title:\"Link\",type:ControlType.Link}});addFonts(FramerVqS4pE3VE,[{explicitInter:true,fonts:[]},...AtSymbolFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerVqS4pE3VE\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"wVMOS2_1L\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"QRbGbMALD\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"Azg7pt6ka\\\":\\\"link\\\"}\",\"framerIntrinsicHeight\":\"40\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"40\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VqS4pE3VE.map","// Generated by Framer (448a859)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image as Image1,Link,ResolveLinks,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import EclipseToggle from\"https://framerusercontent.com/modules/Z94H7SbtRp0eIuNil2MW/AfrexZ0tzEj32xYT9V2N/EclipseToggle.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/B920aPmIz2gesjC3EWCb/cDKdXRXhTremIFICZJT9/nKawLoObs.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/9DmpZujyf2FkCUEa9ePp/ZHeeL4tviKCmbbyTbSGD/xIMWIV8VX.js\";import Button from\"https://framerusercontent.com/modules/ws16QcKfyIodusRormm1/xKaUTtj7mJwushGmIHe1/u1xUycoro.js\";import IconButton from\"https://framerusercontent.com/modules/7XYFjKKX3Oc7Fl8UP0id/hmRn96GYoopJqLReXKLJ/VqS4pE3VE.js\";const ButtonFonts=getFonts(Button);const EclipseToggleFonts=getFonts(EclipseToggle);const IconButtonFonts=getFonts(IconButton);const cycleOrder=[\"QRmyQDp8W\",\"x9FpZnuhW\"];const serializationHash=\"framer-NfEwT\";const variantClassNames={QRmyQDp8W:\"framer-v-16lqlvs\",x9FpZnuhW:\"framer-v-1teyhx2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"QRmyQDp8W\",Mobile:\"x9FpZnuhW\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"QRmyQDp8W\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"QRmyQDp8W\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"x9FpZnuhW\")return false;return true;};const router=useRouter();const isDisplayed1=()=>{if(baseVariant===\"x9FpZnuhW\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.header,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-16lqlvs\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"QRmyQDp8W\",ref:refBinding,style:{...style},...addPropertyOverrides({x9FpZnuhW:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"uga3Lv969\",openInNewTab:false,scopeId:\"mm1ooJYW9\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-hkk87 framer-1s01zr8\",\"data-framer-name\":\"Left\",layoutDependency:layoutDependency,layoutId:\"uga3Lv969\",children:[/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:398.6666666666667,intrinsicWidth:399.3333333333333,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(25+((componentViewport?.height||73)-25-35)/2)+0),pixelHeight:598,pixelWidth:599,sizes:\"40px\",src:\"https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?width=599&height=598\",srcSet:\"https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?scale-down-to=512&width=599&height=598 512w,https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?width=599&height=598 599w\"},className:\"framer-hj6jzh\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"NXjy8dGFr\",...addPropertyOverrides({x9FpZnuhW:{background:{alt:\"\",fit:\"fill\",intrinsicHeight:398.6666666666667,intrinsicWidth:399.3333333333333,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(15+((componentViewport?.height||55)-15-35)/2)+0),pixelHeight:598,pixelWidth:599,sizes:\"40px\",src:\"https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?width=599&height=598\",srcSet:\"https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?scale-down-to=512&width=599&height=598 512w,https://framerusercontent.com/images/UbS2kGXt2B8aJxiUt5NXJR2Zk.png?width=599&height=598 599w\"}}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.h4,{className:\"framer-styles-preset-dqig1f\",\"data-styles-preset\":\"nKawLoObs\",dir:\"auto\",children:[\"JAMIE FERRATO\",/*#__PURE__*/_jsx(motion.br,{}),\"// DESIGN & MOTION\"]})}),className:\"framer-1gximz5\",\"data-framer-name\":\"H3\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"rDVkXgN83\",verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ohb6mh\",\"data-framer-name\":\"Right\",layoutDependency:layoutDependency,layoutId:\"dj803VXyO\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1wks4wr\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"w1vfTRGXj\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ghkeus\",\"data-framer-name\":\"Link 1\",layoutDependency:layoutDependency,layoutId:\"cQpnyzbUW\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{className:\"framer-styles-preset-dqig1f\",\"data-styles-preset\":\"nKawLoObs\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1eung3n, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"uDKZjxsz9\"},motionChild:true,nodeId:\"H2TLVaFPi\",openInNewTab:false,relValues:[],scopeId:\"mm1ooJYW9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1n8b8bo\",\"data-styles-preset\":\"xIMWIV8VX\",children:\"MY WORK\"})})})}),className:\"framer-1h1h3qj\",\"data-framer-name\":\"H3\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"H2TLVaFPi\",style:{\"--extracted-1eung3n\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({x9FpZnuhW:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{className:\"framer-styles-preset-dqig1f\",\"data-styles-preset\":\"nKawLoObs\",dir:\"auto\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1eung3n, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"uDKZjxsz9\"},motionChild:true,nodeId:\"H2TLVaFPi\",openInNewTab:false,relValues:[],scopeId:\"mm1ooJYW9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1n8b8bo\",\"data-styles-preset\":\"xIMWIV8VX\",children:\"MY WORK\"})})})})}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1fvqrh4\",\"data-framer-name\":\"Link 2\",layoutDependency:layoutDependency,layoutId:\"umDJ9AffI\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{className:\"framer-styles-preset-dqig1f\",\"data-styles-preset\":\"nKawLoObs\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1eung3n, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"WwswOWG4i\"},motionChild:true,nodeId:\"ppZ8gxOKb\",openInNewTab:false,relValues:[],scopeId:\"mm1ooJYW9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1n8b8bo\",\"data-styles-preset\":\"xIMWIV8VX\",children:\"ABOUT ME\"})})})}),className:\"framer-1ttspp0\",\"data-framer-name\":\"H3\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ppZ8gxOKb\",style:{\"--extracted-1eung3n\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\"},verticalAlignment:\"top\",withExternalLayout:true})})]}),isDisplayed()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"UBRGMV7ad\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:67,y:(componentViewport?.y||0)+(25+((componentViewport?.height||73)-25-67)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1cb0wz-container\",layoutDependency:layoutDependency,layoutId:\"yLj7xmSiA-container\",nodeId:\"yLj7xmSiA\",rendersWithMotion:true,scopeId:\"mm1ooJYW9\",children:/*#__PURE__*/_jsx(Button,{BHOb6yUiX:\"BLAST OFF\",height:\"100%\",id:\"yLj7xmSiA\",layoutId:\"yLj7xmSiA\",MlarH8BLN:resolvedLinks[0],variant:matchVariant(\"Tc2wf66pg\"),width:\"100%\"})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1u4inj7\",layoutDependency:layoutDependency,layoutId:\"SWsDLqrHF\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-fjdh3b-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"mv9ZpDOaS-container\",nodeId:\"mv9ZpDOaS\",rendersWithMotion:true,scopeId:\"mm1ooJYW9\",children:/*#__PURE__*/_jsx(EclipseToggle,{height:\"100%\",id:\"mv9ZpDOaS\",layoutId:\"mv9ZpDOaS\",size:48,width:\"100%\",...addPropertyOverrides({x9FpZnuhW:{size:40,style:{height:\"100%\",width:\"100%\"}}},baseVariant,gestureVariant)})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-jxxukw\",layoutDependency:layoutDependency,layoutId:\"O3AInQEoD\",children:isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"UBRGMV7ad\"},implicitPathVariables:undefined},{href:{webPageId:\"UBRGMV7ad\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({x9FpZnuhW:{height:40,width:\"40px\",y:(componentViewport?.y||0)+(15+((componentViewport?.height||55)-15-40)/2)+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fs7t14-container\",layoutDependency:layoutDependency,layoutId:\"CZeeMbmTS-container\",nodeId:\"CZeeMbmTS\",rendersWithMotion:true,scopeId:\"mm1ooJYW9\",children:/*#__PURE__*/_jsx(IconButton,{Azg7pt6ka:resolvedLinks1[0],height:\"100%\",id:\"CZeeMbmTS\",layoutId:\"CZeeMbmTS\",style:{height:\"100%\",width:\"100%\"},width:\"100%\",...addPropertyOverrides({x9FpZnuhW:{Azg7pt6ka:resolvedLinks1[1]}},baseVariant,gestureVariant)})})})})})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-NfEwT.framer-1s01zr8, .framer-NfEwT .framer-1s01zr8 { display: block; }\",\".framer-NfEwT.framer-16lqlvs { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 25px 25px 0px 25px; position: relative; width: 1072px; }\",\".framer-NfEwT .framer-hkk87 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 1px; }\",\".framer-NfEwT .framer-hj6jzh { aspect-ratio: 1.0016722408026755 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 40px; }\",\".framer-NfEwT .framer-1gximz5 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-NfEwT .framer-1ohb6mh { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-NfEwT .framer-1wks4wr { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-NfEwT .framer-1ghkeus { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 25px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 8px 0px 8px 0px; position: relative; width: 125px; }\",\".framer-NfEwT .framer-1h1h3qj, .framer-NfEwT .framer-1ttspp0 { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-NfEwT .framer-1fvqrh4 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 8px 0px 8px 0px; position: relative; width: 125px; }\",\".framer-NfEwT .framer-1cb0wz-container, .framer-NfEwT .framer-fjdh3b-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-NfEwT .framer-1u4inj7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 48px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 49px; }\",\".framer-NfEwT .framer-jxxukw { flex: none; height: 40px; overflow: visible; position: relative; width: 40px; }\",\".framer-NfEwT .framer-1fs7t14-container { bottom: 0px; flex: none; left: calc(48.78048780487807% - 40px / 2); position: absolute; top: 0px; width: 40px; }\",\".framer-NfEwT.framer-v-1teyhx2.framer-16lqlvs { gap: unset; justify-content: space-between; padding: 15px 15px 0px 15px; width: 414px; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-hkk87 { flex: none; width: min-content; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-1ohb6mh { gap: 12px; justify-content: flex-end; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-1wks4wr { gap: 15px; order: 0; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-1ghkeus, .framer-NfEwT.framer-v-1teyhx2 .framer-1fvqrh4 { width: min-content; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-1h1h3qj, .framer-NfEwT.framer-v-1teyhx2 .framer-1ttspp0 { flex: none; white-space: pre; width: auto; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-1u4inj7 { height: 40px; order: 2; width: 40px; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-fjdh3b-container { height: 40px; width: 40px; }\",\".framer-NfEwT.framer-v-1teyhx2 .framer-jxxukw { order: 1; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 73\n * @framerIntrinsicWidth 1072\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"x9FpZnuhW\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framermm1ooJYW9=withCSS(Component,css,\"framer-NfEwT\");export default Framermm1ooJYW9;Framermm1ooJYW9.displayName=\"Main Navigation\";Framermm1ooJYW9.defaultProps={height:73,width:1072};addPropertyControls(Framermm1ooJYW9,{variant:{options:[\"QRmyQDp8W\",\"x9FpZnuhW\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Framermm1ooJYW9,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...ButtonFonts,...EclipseToggleFonts,...IconButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});Framermm1ooJYW9.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Button,{},context),forwardLoader(IconButton,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framermm1ooJYW9\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"73\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"x9FpZnuhW\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1072\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./mm1ooJYW9.map","var e=\"undefined\"!==typeof globalThis?globalThis:\"undefined\"!==typeof self?self:global;var t={};(function webpackUniversalModuleDefinition(e,n){t=n()})(0,(function(){return function(e){var t={};function __webpack_require__(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:false,exports:{}};e[n].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.m=e;__webpack_require__.c=t;__webpack_require__.d=function(e,t,n){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:true,get:n})};__webpack_require__.r=function(e){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"});Object.defineProperty(e,\"__esModule\",{value:true})};__webpack_require__.t=function(e,t){1&t&&(e=__webpack_require__(e));if(8&t)return e;if(4&t&&\"object\"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);__webpack_require__.r(n);Object.defineProperty(n,\"default\",{enumerable:true,value:e});if(2&t&&\"string\"!=typeof e)for(var i in e)__webpack_require__.d(n,i,function(t){return e[t]}.bind(null,i));return n};__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};__webpack_require__.d(t,\"a\",t);return t};__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=21)}([function(t,n){var i={};t.exports=i;(function(){i._nextId=0;i._seed=0;i._nowStartTime=+new Date;i._warnedOnce={};i._decomp=null;\n/**\n         * Extends the object in the first argument using the object in the second argument.\n         * @method extend\n         * @param {} obj\n         * @param {boolean} deep\n         * @return {} obj extended\n         */i.extend=function(e,t){var n,o;if(\"boolean\"===typeof t){n=2;o=t}else{n=1;o=true}for(var r=n;r<arguments.length;r++){var a=arguments[r];if(a)for(var s in a)if(o&&a[s]&&a[s].constructor===Object)if(e[s]&&e[s].constructor!==Object)e[s]=a[s];else{e[s]=e[s]||{};i.extend(e[s],o,a[s])}else e[s]=a[s]}return e};\n/**\n         * Creates a new clone of the object, if deep is true references will also be cloned.\n         * @method clone\n         * @param {} obj\n         * @param {bool} deep\n         * @return {} obj cloned\n         */i.clone=function(e,t){return i.extend({},t,e)};\n/**\n         * Returns the list of keys for the given object.\n         * @method keys\n         * @param {} obj\n         * @return {string[]} keys\n         */i.keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t};\n/**\n         * Returns the list of values for the given object.\n         * @method values\n         * @param {} obj\n         * @return {array} Array of the objects property values\n         */i.values=function(e){var t=[];if(Object.keys){var n=Object.keys(e);for(var i=0;i<n.length;i++)t.push(e[n[i]]);return t}for(var o in e)t.push(e[o]);return t};\n/**\n         * Gets a value from `base` relative to the `path` string.\n         * @method get\n         * @param {} obj The base object\n         * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n         * @param {number} [begin] Path slice begin\n         * @param {number} [end] Path slice end\n         * @return {} The object at the given path\n         */i.get=function(e,t,n,i){t=t.split(\".\").slice(n,i);for(var o=0;o<t.length;o+=1)e=e[t[o]];return e};\n/**\n         * Sets a value on `base` relative to the given `path` string.\n         * @method set\n         * @param {} obj The base object\n         * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n         * @param {} val The value to set\n         * @param {number} [begin] Path slice begin\n         * @param {number} [end] Path slice end\n         * @return {} Pass through `val` for chaining\n         */i.set=function(e,t,n,o,r){var a=t.split(\".\").slice(o,r);i.get(e,t,0,-1)[a[a.length-1]]=n;return n};\n/**\n         * Shuffles the given array in-place.\n         * The function uses a seeded random generator.\n         * @method shuffle\n         * @param {array} array\n         * @return {array} array shuffled randomly\n         */i.shuffle=function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(i.random()*(t+1));var o=e[t];e[t]=e[n];e[n]=o}return e};\n/**\n         * Randomly chooses a value from a list with equal probability.\n         * The function uses a seeded random generator.\n         * @method choose\n         * @param {array} choices\n         * @return {object} A random choice object from the array\n         */i.choose=function(e){return e[Math.floor(i.random()*e.length)]};\n/**\n         * Returns true if the object is a HTMLElement, otherwise false.\n         * @method isElement\n         * @param {object} obj\n         * @return {boolean} True if the object is a HTMLElement, otherwise false\n         */i.isElement=function(e){return\"undefined\"!==typeof HTMLElement?e instanceof HTMLElement:!!(e&&e.nodeType&&e.nodeName)};\n/**\n         * Returns true if the object is an array.\n         * @method isArray\n         * @param {object} obj\n         * @return {boolean} True if the object is an array, otherwise false\n         */i.isArray=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};\n/**\n         * Returns true if the object is a function.\n         * @method isFunction\n         * @param {object} obj\n         * @return {boolean} True if the object is a function, otherwise false\n         */i.isFunction=function(e){return\"function\"===typeof e};\n/**\n         * Returns true if the object is a plain object.\n         * @method isPlainObject\n         * @param {object} obj\n         * @return {boolean} True if the object is a plain object, otherwise false\n         */i.isPlainObject=function(e){return\"object\"===typeof e&&e.constructor===Object};\n/**\n         * Returns true if the object is a string.\n         * @method isString\n         * @param {object} obj\n         * @return {boolean} True if the object is a string, otherwise false\n         */i.isString=function(e){return\"[object String]\"===toString.call(e)};\n/**\n         * Returns the given value clamped between a minimum and maximum value.\n         * @method clamp\n         * @param {number} value\n         * @param {number} min\n         * @param {number} max\n         * @return {number} The value clamped between min and max inclusive\n         */i.clamp=function(e,t,n){return e<t?t:e>n?n:e};\n/**\n         * Returns the sign of the given value.\n         * @method sign\n         * @param {number} value\n         * @return {number} -1 if negative, +1 if 0 or positive\n         */i.sign=function(e){return e<0?-1:1};i.now=function(){if(\"undefined\"!==typeof window&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime};\n/**\n         * Returns a random value between a minimum and a maximum value inclusive.\n         * The function uses a seeded random generator.\n         * @method random\n         * @param {number} min\n         * @param {number} max\n         * @return {number} A random number between min and max inclusive\n         */i.random=function(e,t){e=\"undefined\"!==typeof e?e:0;t=\"undefined\"!==typeof t?t:1;return e+_seededRandom()*(t-e)};var _seededRandom=function(){i._seed=(9301*i._seed+49297)%233280;return i._seed/233280};\n/**\n         * Converts a CSS hex colour string into an integer.\n         * @method colorToNumber\n         * @param {string} colorString\n         * @return {number} An integer representing the CSS hex string\n         */i.colorToNumber=function(e){e=e.replace(\"#\",\"\");3==e.length&&(e=e.charAt(0)+e.charAt(0)+e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2));return parseInt(e,16)};\n/**\n         * The console logging level to use, where each level includes all levels above and excludes the levels below.\n         * The default level is 'debug' which shows all console messages.  \n         *\n         * Possible level values are:\n         * - 0 = None\n         * - 1 = Debug\n         * - 2 = Info\n         * - 3 = Warn\n         * - 4 = Error\n         * @property Common.logLevel\n         * @type {Number}\n         * @default 1\n         */i.logLevel=1;\n/**\n         * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method log\n         * @param ...objs {} The objects to log.\n         */i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method info\n         * @param ...objs {} The objects to log.\n         */i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method warn\n         * @param ...objs {} The objects to log.\n         */i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Uses `Common.warn` to log the given message one time only.\n         * @method warnOnce\n         * @param ...objs {} The objects to log.\n         */i.warnOnce=function(){var e=Array.prototype.slice.call(arguments).join(\" \");if(!i._warnedOnce[e]){i.warn(e);i._warnedOnce[e]=true}};\n/**\n         * Shows a deprecated console warning when the function on the given object is called.\n         * The target function will be replaced with a new function that first shows the warning\n         * and then calls the original function.\n         * @method deprecated\n         * @param {object} obj The object or module\n         * @param {string} name The property name of the function on obj\n         * @param {string} warning The one-time message to show if the function is called\n         */i.deprecated=function(e,t,n){e[t]=i.chain((function(){i.warnOnce(\"🔅 deprecated 🔅\",n)}),e[t])};i.nextId=function(){return i._nextId++};\n/**\n         * A cross browser compatible indexOf implementation.\n         * @method indexOf\n         * @param {array} haystack\n         * @param {object} needle\n         * @return {number} The position of needle in haystack, otherwise -1.\n         */i.indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(e[n]===t)return n;return-1};\n/**\n         * A cross browser compatible array map implementation.\n         * @method map\n         * @param {array} list\n         * @param {function} func\n         * @return {array} Values from list transformed by func.\n         */i.map=function(e,t){if(e.map)return e.map(t);var n=[];for(var i=0;i<e.length;i+=1)n.push(t(e[i]));return n};\n/**\n         * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n         * Circular dependencies are allowed.\n         * @method topologicalSort\n         * @param {object} graph\n         * @return {array} Partially ordered set of vertices in topological order.\n         */i.topologicalSort=function(e){var t=[],n=[],o=[];for(var r in e)n[r]||o[r]||i._topologicalSort(r,n,o,e,t);return t};i._topologicalSort=function(e,t,n,o,r){var a=o[e]||[];n[e]=true;for(var s=0;s<a.length;s+=1){var l=a[s];n[l]||(t[l]||i._topologicalSort(l,t,n,o,r))}n[e]=false;t[e]=true;r.push(e)};\n/**\n         * Takes _n_ functions as arguments and returns a new function that calls them in order.\n         * The arguments applied when calling the new function will also be applied to every function passed.\n         * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n         * Therefore if a passed function does not return a value, the previously returned value is maintained.\n         * After all passed functions have been called the new function returns the last returned value (if any).\n         * If any of the passed functions are a chain, then the chain will be flattened.\n         * @method chain\n         * @param ...funcs {function} The functions to chain.\n         * @return {function} A new function that calls the passed functions in order.\n         */i.chain=function(){var e=[];for(var t=0;t<arguments.length;t+=1){var n=arguments[t];n._chained?e.push.apply(e,n._chained):e.push(n)}var chain=function(){var t,n=new Array(arguments.length);for(var i=0,o=arguments.length;i<o;i++)n[i]=arguments[i];for(i=0;i<e.length;i+=1){var r=e[i].apply(t,n);\"undefined\"!==typeof r&&(t=r)}return t};chain._chained=e;return chain};\n/**\n         * Chains a function to excute before the original function on the given `path` relative to `base`.\n         * See also docs for `Common.chain`.\n         * @method chainPathBefore\n         * @param {} base The base object\n         * @param {string} path The path relative to `base`\n         * @param {function} func The function to chain before the original\n         * @return {function} The chained function that replaced the original\n         */i.chainPathBefore=function(e,t,n){return i.set(e,t,i.chain(n,i.get(e,t)))};\n/**\n         * Chains a function to excute after the original function on the given `path` relative to `base`.\n         * See also docs for `Common.chain`.\n         * @method chainPathAfter\n         * @param {} base The base object\n         * @param {string} path The path relative to `base`\n         * @param {function} func The function to chain after the original\n         * @return {function} The chained function that replaced the original\n         */i.chainPathAfter=function(e,t,n){return i.set(e,t,i.chain(i.get(e,t),n))};\n/**\n         * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n         * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n         * @method setDecomp\n         * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n         */i.setDecomp=function(e){i._decomp=e};i.getDecomp=function(){var t=i._decomp;try{t||\"undefined\"===typeof window||(t=window.decomp);t||\"undefined\"===typeof e||(t=e.decomp)}catch(e){t=null}return t}})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n         * @method create\n         * @param {vertices} vertices\n         * @return {bounds} A new bounds object\n         */\nn.create=function(e){var t={min:{x:0,y:0},max:{x:0,y:0}};e&&n.update(t,e);return t};\n/**\n         * Updates bounds using the given vertices and extends the bounds given a velocity.\n         * @method update\n         * @param {bounds} bounds\n         * @param {vertices} vertices\n         * @param {vector} velocity\n         */n.update=function(e,t,n){e.min.x=Infinity;e.max.x=-Infinity;e.min.y=Infinity;e.max.y=-Infinity;for(var i=0;i<t.length;i++){var o=t[i];o.x>e.max.x&&(e.max.x=o.x);o.x<e.min.x&&(e.min.x=o.x);o.y>e.max.y&&(e.max.y=o.y);o.y<e.min.y&&(e.min.y=o.y)}if(n){n.x>0?e.max.x+=n.x:e.min.x+=n.x;n.y>0?e.max.y+=n.y:e.min.y+=n.y}};\n/**\n         * Returns true if the bounds contains the given point.\n         * @method contains\n         * @param {bounds} bounds\n         * @param {vector} point\n         * @return {boolean} True if the bounds contain the point, otherwise false\n         */n.contains=function(e,t){return t.x>=e.min.x&&t.x<=e.max.x&&t.y>=e.min.y&&t.y<=e.max.y};\n/**\n         * Returns true if the two bounds intersect.\n         * @method overlaps\n         * @param {bounds} boundsA\n         * @param {bounds} boundsB\n         * @return {boolean} True if the bounds overlap, otherwise false\n         */n.overlaps=function(e,t){return e.min.x<=t.max.x&&e.max.x>=t.min.x&&e.max.y>=t.min.y&&e.min.y<=t.max.y};\n/**\n         * Translates the bounds by the given vector.\n         * @method translate\n         * @param {bounds} bounds\n         * @param {vector} vector\n         */n.translate=function(e,t){e.min.x+=t.x;e.max.x+=t.x;e.min.y+=t.y;e.max.y+=t.y};\n/**\n         * Shifts the bounds to the given position.\n         * @method shift\n         * @param {bounds} bounds\n         * @param {vector} position\n         */n.shift=function(e,t){var n=e.max.x-e.min.x,i=e.max.y-e.min.y;e.min.x=t.x;e.max.x=t.x+n;e.min.y=t.y;e.max.y=t.y+i}})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new vector.\n         * @method create\n         * @param {number} x\n         * @param {number} y\n         * @return {vector} A new vector\n         */\nn.create=function(e,t){return{x:e||0,y:t||0}};\n/**\n         * Returns a new vector with `x` and `y` copied from the given `vector`.\n         * @method clone\n         * @param {vector} vector\n         * @return {vector} A new cloned vector\n         */n.clone=function(e){return{x:e.x,y:e.y}};\n/**\n         * Returns the magnitude (length) of a vector.\n         * @method magnitude\n         * @param {vector} vector\n         * @return {number} The magnitude of the vector\n         */n.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)};\n/**\n         * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n         * @method magnitudeSquared\n         * @param {vector} vector\n         * @return {number} The squared magnitude of the vector\n         */n.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};\n/**\n         * Rotates the vector about (0, 0) by specified angle.\n         * @method rotate\n         * @param {vector} vector\n         * @param {number} angle\n         * @param {vector} [output]\n         * @return {vector} The vector rotated about (0, 0)\n         */n.rotate=function(e,t,n){var i=Math.cos(t),o=Math.sin(t);n||(n={});var r=e.x*i-e.y*o;n.y=e.x*o+e.y*i;n.x=r;return n};\n/**\n         * Rotates the vector about a specified point by specified angle.\n         * @method rotateAbout\n         * @param {vector} vector\n         * @param {number} angle\n         * @param {vector} point\n         * @param {vector} [output]\n         * @return {vector} A new vector rotated about the point\n         */n.rotateAbout=function(e,t,n,i){var o=Math.cos(t),r=Math.sin(t);i||(i={});var a=n.x+((e.x-n.x)*o-(e.y-n.y)*r);i.y=n.y+((e.x-n.x)*r+(e.y-n.y)*o);i.x=a;return i};\n/**\n         * Normalises a vector (such that its magnitude is `1`).\n         * @method normalise\n         * @param {vector} vector\n         * @return {vector} A new vector normalised\n         */n.normalise=function(e){var t=n.magnitude(e);return 0===t?{x:0,y:0}:{x:e.x/t,y:e.y/t}};\n/**\n         * Returns the dot-product of two vectors.\n         * @method dot\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The dot product of the two vectors\n         */n.dot=function(e,t){return e.x*t.x+e.y*t.y};\n/**\n         * Returns the cross-product of two vectors.\n         * @method cross\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The cross product of the two vectors\n         */n.cross=function(e,t){return e.x*t.y-e.y*t.x};\n/**\n         * Returns the cross-product of three vectors.\n         * @method cross3\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} vectorC\n         * @return {number} The cross product of the three vectors\n         */n.cross3=function(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)};\n/**\n         * Adds the two vectors.\n         * @method add\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} [output]\n         * @return {vector} A new vector of vectorA and vectorB added\n         */n.add=function(e,t,n){n||(n={});n.x=e.x+t.x;n.y=e.y+t.y;return n};\n/**\n         * Subtracts the two vectors.\n         * @method sub\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} [output]\n         * @return {vector} A new vector of vectorA and vectorB subtracted\n         */n.sub=function(e,t,n){n||(n={});n.x=e.x-t.x;n.y=e.y-t.y;return n};\n/**\n         * Multiplies a vector and a scalar.\n         * @method mult\n         * @param {vector} vector\n         * @param {number} scalar\n         * @return {vector} A new vector multiplied by scalar\n         */n.mult=function(e,t){return{x:e.x*t,y:e.y*t}};\n/**\n         * Divides a vector and a scalar.\n         * @method div\n         * @param {vector} vector\n         * @param {number} scalar\n         * @return {vector} A new vector divided by scalar\n         */n.div=function(e,t){return{x:e.x/t,y:e.y/t}};\n/**\n         * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n         * @method perp\n         * @param {vector} vector\n         * @param {bool} [negate=false]\n         * @return {vector} The perpendicular vector\n         */n.perp=function(e,t){t=true===t?-1:1;return{x:t*-e.y,y:t*e.x}};\n/**\n         * Negates both components of a vector such that it points in the opposite direction.\n         * @method neg\n         * @param {vector} vector\n         * @return {vector} The negated vector\n         */n.neg=function(e){return{x:-e.x,y:-e.y}};\n/**\n         * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n         * @method angle\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The angle in radians\n         */n.angle=function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)};\n/**\n         * Temporary vector pool (not thread-safe).\n         * @property _temp\n         * @type {vector[]}\n         * @private\n         */n._temp=[n.create(),n.create(),n.create(),n.create(),n.create(),n.create()]})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(0);(function(){\n/**\n         * Creates a new set of `Matter.Body` compatible vertices.\n         * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n         *\n         *     [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n         *\n         * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n         * but with some additional references required for efficient collision detection routines.\n         *\n         * Vertices must be specified in clockwise order.\n         *\n         * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n         *\n         * @method create\n         * @param {vector[]} points\n         * @param {body} body\n         */\ni.create=function(e,t){var n=[];for(var i=0;i<e.length;i++){var o=e[i],r={x:o.x,y:o.y,index:i,body:t,isInternal:false};n.push(r)}return n};\n/**\n         * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n         * into a `Matter.Vertices` object for the given `Matter.Body`.\n         * For parsing SVG paths, see `Svg.pathToVertices`.\n         * @method fromPath\n         * @param {string} path\n         * @param {body} body\n         * @return {vertices} vertices\n         */i.fromPath=function(e,t){var n=/L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/gi,o=[];e.replace(n,(function(e,t,n){o.push({x:parseFloat(t),y:parseFloat(n)})}));return i.create(o,t)};\n/**\n         * Returns the centre (centroid) of the set of vertices.\n         * @method centre\n         * @param {vertices} vertices\n         * @return {vector} The centre point\n         */i.centre=function(e){var t,n,r,a=i.area(e,true),s={x:0,y:0};for(var l=0;l<e.length;l++){r=(l+1)%e.length;t=o.cross(e[l],e[r]);n=o.mult(o.add(e[l],e[r]),t);s=o.add(s,n)}return o.div(s,6*a)};\n/**\n         * Returns the average (mean) of the set of vertices.\n         * @method mean\n         * @param {vertices} vertices\n         * @return {vector} The average point\n         */i.mean=function(e){var t={x:0,y:0};for(var n=0;n<e.length;n++){t.x+=e[n].x;t.y+=e[n].y}return o.div(t,e.length)};\n/**\n         * Returns the area of the set of vertices.\n         * @method area\n         * @param {vertices} vertices\n         * @param {bool} signed\n         * @return {number} The area\n         */i.area=function(e,t){var n=0,i=e.length-1;for(var o=0;o<e.length;o++){n+=(e[i].x-e[o].x)*(e[i].y+e[o].y);i=o}return t?n/2:Math.abs(n)/2};\n/**\n         * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n         * @method inertia\n         * @param {vertices} vertices\n         * @param {number} mass\n         * @return {number} The polygon's moment of inertia\n         */i.inertia=function(e,t){var n,i,r=0,a=0,s=e;for(var l=0;l<s.length;l++){i=(l+1)%s.length;n=Math.abs(o.cross(s[i],s[l]));r+=n*(o.dot(s[i],s[i])+o.dot(s[i],s[l])+o.dot(s[l],s[l]));a+=n}return t/6*(r/a)};\n/**\n         * Translates the set of vertices in-place.\n         * @method translate\n         * @param {vertices} vertices\n         * @param {vector} vector\n         * @param {number} scalar\n         */i.translate=function(e,t,n){n=\"undefined\"!==typeof n?n:1;var i,o=e.length,r=t.x*n,a=t.y*n;for(i=0;i<o;i++){e[i].x+=r;e[i].y+=a}return e};\n/**\n         * Rotates the set of vertices in-place.\n         * @method rotate\n         * @param {vertices} vertices\n         * @param {number} angle\n         * @param {vector} point\n         */i.rotate=function(e,t,n){if(0!==t){var i,o,r,a,s=Math.cos(t),l=Math.sin(t),c=n.x,u=n.y,f=e.length;for(a=0;a<f;a++){i=e[a];o=i.x-c;r=i.y-u;i.x=c+(o*s-r*l);i.y=u+(o*l+r*s)}return e}};\n/**\n         * Returns `true` if the `point` is inside the set of `vertices`.\n         * @method contains\n         * @param {vertices} vertices\n         * @param {vector} point\n         * @return {boolean} True if the vertices contains point, otherwise false\n         */i.contains=function(e,t){var n,i=t.x,o=t.y,r=e.length,a=e[r-1];for(var s=0;s<r;s++){n=e[s];if((i-a.x)*(n.y-a.y)+(o-a.y)*(a.x-n.x)>0)return false;a=n}return true};\n/**\n         * Scales the vertices from a point (default is centre) in-place.\n         * @method scale\n         * @param {vertices} vertices\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} point\n         */i.scale=function(e,t,n,r){if(1===t&&1===n)return e;r=r||i.centre(e);var a,s;for(var l=0;l<e.length;l++){a=e[l];s=o.sub(a,r);e[l].x=r.x+s.x*t;e[l].y=r.y+s.y*n}return e};\n/**\n         * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n         * The radius parameter is a single number or an array to specify the radius for each vertex.\n         * @method chamfer\n         * @param {vertices} vertices\n         * @param {number[]} radius\n         * @param {number} quality\n         * @param {number} qualityMin\n         * @param {number} qualityMax\n         */i.chamfer=function(e,t,n,i,a){t=\"number\"===typeof t?[t]:t||[8];n=\"undefined\"!==typeof n?n:-1;i=i||2;a=a||14;var s=[];for(var l=0;l<e.length;l++){var c=e[l-1>=0?l-1:e.length-1],u=e[l],f=e[(l+1)%e.length],d=t[l<t.length?l:t.length-1];if(0!==d){var p=o.normalise({x:u.y-c.y,y:c.x-u.x});var v=o.normalise({x:f.y-u.y,y:u.x-f.x});var y=Math.sqrt(2*Math.pow(d,2)),m=o.mult(r.clone(p),d),g=o.normalise(o.mult(o.add(p,v),.5)),x=o.sub(u,o.mult(g,y));var h=n;-1===n&&(h=1.75*Math.pow(d,.32));h=r.clamp(h,i,a);h%2===1&&(h+=1);var b=Math.acos(o.dot(p,v)),S=b/h;for(var w=0;w<h;w++)s.push(o.add(o.rotate(m,S*w),x))}else s.push(u)}return s};\n/**\n         * Sorts the input vertices into clockwise order in place.\n         * @method clockwiseSort\n         * @param {vertices} vertices\n         * @return {vertices} vertices\n         */i.clockwiseSort=function(e){var t=i.mean(e);e.sort((function(e,n){return o.angle(t,e)-o.angle(t,n)}));return e};\n/**\n         * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n         * @method isConvex\n         * @param {vertices} vertices\n         * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n         */i.isConvex=function(e){var t,n,i,o,r=0,a=e.length;if(a<3)return null;for(t=0;t<a;t++){n=(t+1)%a;i=(t+2)%a;o=(e[n].x-e[t].x)*(e[i].y-e[n].y);o-=(e[n].y-e[t].y)*(e[i].x-e[n].x);o<0?r|=1:o>0&&(r|=2);if(3===r)return false}return 0!==r||null};\n/**\n         * Returns the convex hull of the input vertices as a new array of points.\n         * @method hull\n         * @param {vertices} vertices\n         * @return [vertex] vertices\n         */i.hull=function(e){var t,n,i=[],r=[];e=e.slice(0);e.sort((function(e,t){var n=e.x-t.x;return 0!==n?n:e.y-t.y}));for(n=0;n<e.length;n+=1){t=e[n];while(r.length>=2&&o.cross3(r[r.length-2],r[r.length-1],t)<=0)r.pop();r.push(t)}for(n=e.length-1;n>=0;n-=1){t=e[n];while(i.length>=2&&o.cross3(i[i.length-2],i[i.length-1],t)<=0)i.pop();i.push(t)}i.pop();r.pop();return i.concat(r)}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){\n/**\n         * Subscribes a callback function to the given object's `eventName`.\n         * @method on\n         * @param {} object\n         * @param {string} eventNames\n         * @param {function} callback\n         */\ni.on=function(e,t,n){var i,o=t.split(\" \");for(var r=0;r<o.length;r++){i=o[r];e.events=e.events||{};e.events[i]=e.events[i]||[];e.events[i].push(n)}return n};\n/**\n         * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n         * @method off\n         * @param {} object\n         * @param {string} eventNames\n         * @param {function} callback\n         */i.off=function(e,t,n){if(t){if(\"function\"===typeof t){n=t;t=o.keys(e.events).join(\" \")}var i=t.split(\" \");for(var r=0;r<i.length;r++){var a=e.events[i[r]],s=[];if(n&&a)for(var l=0;l<a.length;l++)a[l]!==n&&s.push(a[l]);e.events[i[r]]=s}}else e.events={}};\n/**\n         * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n         * @method trigger\n         * @param {} object\n         * @param {string} eventNames\n         * @param {} event\n         */i.trigger=function(e,t,n){var i,r,a,s;var l=e.events;if(l&&o.keys(l).length>0){n||(n={});i=t.split(\" \");for(var c=0;c<i.length;c++){r=i[c];a=l[r];if(a){s=o.clone(n,false);s.name=r;s.source=e;for(var u=0;u<a.length;u++)a[u].apply(e,[s])}}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(4);var r=n(0);var a=n(1);var s=n(6);(function(){\n/**\n         * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properites section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} [options]\n         * @return {composite} A new composite\n         */\ni.create=function(e){return r.extend({id:r.nextId(),type:\"composite\",parent:null,isModified:false,bodies:[],constraints:[],composites:[],label:\"Composite\",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},e)};\n/**\n         * Sets the composite's `isModified` flag. \n         * If `updateParents` is true, all parents will be set (default: false).\n         * If `updateChildren` is true, all children will be set (default: false).\n         * @private\n         * @method setModified\n         * @param {composite} composite\n         * @param {boolean} isModified\n         * @param {boolean} [updateParents=false]\n         * @param {boolean} [updateChildren=false]\n         */i.setModified=function(e,t,n,o){e.isModified=t;if(t&&e.cache){e.cache.allBodies=null;e.cache.allConstraints=null;e.cache.allComposites=null}n&&e.parent&&i.setModified(e.parent,t,n,o);if(o)for(var r=0;r<e.composites.length;r++){var a=e.composites[r];i.setModified(a,t,n,o)}};\n/**\n         * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n         * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n         * @method add\n         * @param {composite} composite\n         * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n         * @return {composite} The original composite with the objects added\n         */i.add=function(e,t){var n=[].concat(t);o.trigger(e,\"beforeAdd\",{object:t});for(var a=0;a<n.length;a++){var s=n[a];switch(s.type){case\"body\":if(s.parent!==s){r.warn(\"Composite.add: skipped adding a compound body part (you must add its parent instead)\");break}i.addBody(e,s);break;case\"constraint\":i.addConstraint(e,s);break;case\"composite\":i.addComposite(e,s);break;case\"mouseConstraint\":i.addConstraint(e,s.constraint);break}}o.trigger(e,\"afterAdd\",{object:t});return e};\n/**\n         * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n         * Optionally searching its children recursively.\n         * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n         * @method remove\n         * @param {composite} composite\n         * @param {object|array} object\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the objects removed\n         */i.remove=function(e,t,n){var r=[].concat(t);o.trigger(e,\"beforeRemove\",{object:t});for(var a=0;a<r.length;a++){var s=r[a];switch(s.type){case\"body\":i.removeBody(e,s,n);break;case\"constraint\":i.removeConstraint(e,s,n);break;case\"composite\":i.removeComposite(e,s,n);break;case\"mouseConstraint\":i.removeConstraint(e,s.constraint);break}}o.trigger(e,\"afterRemove\",{object:t});return e};\n/**\n         * Adds a composite to the given composite.\n         * @private\n         * @method addComposite\n         * @param {composite} compositeA\n         * @param {composite} compositeB\n         * @return {composite} The original compositeA with the objects from compositeB added\n         */i.addComposite=function(e,t){e.composites.push(t);t.parent=e;i.setModified(e,true,true,false);return e};\n/**\n         * Removes a composite from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeComposite\n         * @param {composite} compositeA\n         * @param {composite} compositeB\n         * @param {boolean} [deep=false]\n         * @return {composite} The original compositeA with the composite removed\n         */i.removeComposite=function(e,t,n){var o=r.indexOf(e.composites,t);-1!==o&&i.removeCompositeAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeComposite(e.composites[a],t,true);return e};\n/**\n         * Removes a composite from the given composite.\n         * @private\n         * @method removeCompositeAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the composite removed\n         */i.removeCompositeAt=function(e,t){e.composites.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Adds a body to the given composite.\n         * @private\n         * @method addBody\n         * @param {composite} composite\n         * @param {body} body\n         * @return {composite} The original composite with the body added\n         */i.addBody=function(e,t){e.bodies.push(t);i.setModified(e,true,true,false);return e};\n/**\n         * Removes a body from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeBody\n         * @param {composite} composite\n         * @param {body} body\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the body removed\n         */i.removeBody=function(e,t,n){var o=r.indexOf(e.bodies,t);-1!==o&&i.removeBodyAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeBody(e.composites[a],t,true);return e};\n/**\n         * Removes a body from the given composite.\n         * @private\n         * @method removeBodyAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the body removed\n         */i.removeBodyAt=function(e,t){e.bodies.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Adds a constraint to the given composite.\n         * @private\n         * @method addConstraint\n         * @param {composite} composite\n         * @param {constraint} constraint\n         * @return {composite} The original composite with the constraint added\n         */i.addConstraint=function(e,t){e.constraints.push(t);i.setModified(e,true,true,false);return e};\n/**\n         * Removes a constraint from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeConstraint\n         * @param {composite} composite\n         * @param {constraint} constraint\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the constraint removed\n         */i.removeConstraint=function(e,t,n){var o=r.indexOf(e.constraints,t);-1!==o&&i.removeConstraintAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeConstraint(e.composites[a],t,true);return e};\n/**\n         * Removes a body from the given composite.\n         * @private\n         * @method removeConstraintAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the constraint removed\n         */i.removeConstraintAt=function(e,t){e.constraints.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Removes all bodies, constraints and composites from the given composite.\n         * Optionally clearing its children recursively.\n         * @method clear\n         * @param {composite} composite\n         * @param {boolean} keepStatic\n         * @param {boolean} [deep=false]\n         */i.clear=function(e,t,n){if(n)for(var o=0;o<e.composites.length;o++)i.clear(e.composites[o],t,true);t?e.bodies=e.bodies.filter((function(e){return e.isStatic})):e.bodies.length=0;e.constraints.length=0;e.composites.length=0;i.setModified(e,true,true,false);return e};\n/**\n         * Returns all bodies in the given composite, including all bodies in its children, recursively.\n         * @method allBodies\n         * @param {composite} composite\n         * @return {body[]} All the bodies\n         */i.allBodies=function(e){if(e.cache&&e.cache.allBodies)return e.cache.allBodies;var t=[].concat(e.bodies);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allBodies(e.composites[n]));e.cache&&(e.cache.allBodies=t);return t};\n/**\n         * Returns all constraints in the given composite, including all constraints in its children, recursively.\n         * @method allConstraints\n         * @param {composite} composite\n         * @return {constraint[]} All the constraints\n         */i.allConstraints=function(e){if(e.cache&&e.cache.allConstraints)return e.cache.allConstraints;var t=[].concat(e.constraints);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allConstraints(e.composites[n]));e.cache&&(e.cache.allConstraints=t);return t};\n/**\n         * Returns all composites in the given composite, including all composites in its children, recursively.\n         * @method allComposites\n         * @param {composite} composite\n         * @return {composite[]} All the composites\n         */i.allComposites=function(e){if(e.cache&&e.cache.allComposites)return e.cache.allComposites;var t=[].concat(e.composites);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allComposites(e.composites[n]));e.cache&&(e.cache.allComposites=t);return t};\n/**\n         * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n         * @method get\n         * @param {composite} composite\n         * @param {number} id\n         * @param {string} type\n         * @return {object} The requested object, if found\n         */i.get=function(e,t,n){var o,r;switch(n){case\"body\":o=i.allBodies(e);break;case\"constraint\":o=i.allConstraints(e);break;case\"composite\":o=i.allComposites(e).concat(e);break}if(!o)return null;r=o.filter((function(e){return e.id.toString()===t.toString()}));return 0===r.length?null:r[0]};\n/**\n         * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n         * @method move\n         * @param {compositeA} compositeA\n         * @param {object[]} objects\n         * @param {compositeB} compositeB\n         * @return {composite} Returns compositeA\n         */i.move=function(e,t,n){i.remove(e,t);i.add(n,t);return e};\n/**\n         * Assigns new ids for all objects in the composite, recursively.\n         * @method rebase\n         * @param {composite} composite\n         * @return {composite} Returns composite\n         */i.rebase=function(e){var t=i.allBodies(e).concat(i.allConstraints(e)).concat(i.allComposites(e));for(var n=0;n<t.length;n++)t[n].id=r.nextId();return e};\n/**\n         * Translates all children in the composite by a given vector relative to their current positions, \n         * without imparting any velocity.\n         * @method translate\n         * @param {composite} composite\n         * @param {vector} translation\n         * @param {bool} [recursive=true]\n         */i.translate=function(e,t,n){var o=n?i.allBodies(e):e.bodies;for(var r=0;r<o.length;r++)s.translate(o[r],t);return e};\n/**\n         * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n         * @method rotate\n         * @param {composite} composite\n         * @param {number} rotation\n         * @param {vector} point\n         * @param {bool} [recursive=true]\n         */i.rotate=function(e,t,n,o){var r=Math.cos(t),a=Math.sin(t),l=o?i.allBodies(e):e.bodies;for(var c=0;c<l.length;c++){var u=l[c],f=u.position.x-n.x,d=u.position.y-n.y;s.setPosition(u,{x:n.x+(f*r-d*a),y:n.y+(f*a+d*r)});s.rotate(u,t)}return e};\n/**\n         * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n         * @method scale\n         * @param {composite} composite\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} point\n         * @param {bool} [recursive=true]\n         */i.scale=function(e,t,n,o,r){var a=r?i.allBodies(e):e.bodies;for(var l=0;l<a.length;l++){var c=a[l],u=c.position.x-o.x,f=c.position.y-o.y;s.setPosition(c,{x:o.x+u*t,y:o.y+f*n});s.scale(c,t,n)}return e};\n/**\n         * Returns the union of the bounds of all of the composite's bodies.\n         * @method bounds\n         * @param {composite} composite The composite.\n         * @returns {bounds} The composite bounds.\n         */i.bounds=function(e){var t=i.allBodies(e),n=[];for(var o=0;o<t.length;o+=1){var r=t[o];n.push(r.bounds.min,r.bounds.max)}return a.create(n)};\n/**\n        * Fired when a call to `Composite.add` is made, before objects have been added.\n        *\n        * @event beforeAdd\n        * @param {} event An event object\n        * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.add` is made, after objects have been added.\n        *\n        * @event afterAdd\n        * @param {} event An event object\n        * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.remove` is made, before objects have been removed.\n        *\n        * @event beforeRemove\n        * @param {} event An event object\n        * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.remove` is made, after objects have been removed.\n        *\n        * @event afterRemove\n        * @param {} event An event object\n        * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"composite\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage composites.\n         *\n         * @property label\n         * @type string\n         * @default \"Composite\"\n         */\n/**\n         * A flag that specifies whether the composite has been modified during the current step.\n         * This is automatically managed when bodies, constraints or composites are added or removed.\n         *\n         * @property isModified\n         * @type boolean\n         * @default false\n         */\n/**\n         * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n         *\n         * @property parent\n         * @type composite\n         * @default null\n         */\n/**\n         * An array of `Body` that are _direct_ children of this composite.\n         * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n         *\n         * @property bodies\n         * @type body[]\n         * @default []\n         */\n/**\n         * An array of `Constraint` that are _direct_ children of this composite.\n         * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n         *\n         * @property constraints\n         * @type constraint[]\n         * @default []\n         */\n/**\n         * An array of `Composite` that are _direct_ children of this composite.\n         * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n         *\n         * @property composites\n         * @type composite[]\n         * @default []\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * An object used for storing cached results for performance reasons.\n         * This is used internally only and is automatically managed.\n         *\n         * @private\n         * @property cache\n         * @type {}\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(2);var a=n(7);n(16);var s=n(0);var l=n(1);var c=n(11);(function(){i._inertiaScale=4;i._nextCollidingGroupId=1;i._nextNonCollidingGroupId=-1;i._nextCategory=1;\n/**\n         * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * Vertices must be specified in clockwise order.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} options\n         * @return {body} body\n         */i.create=function(e){var t={id:s.nextId(),type:\"body\",label:\"Body\",parts:[],plugin:{},angle:0,vertices:o.fromPath(\"L 0 0 L 40 0 L 40 40 L 0 40\"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:false,isStatic:false,isSleeping:false,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:true,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,_original:null};var n=s.extend(t,e);_initProperties(n,e);return n};\n/**\n         * Returns the next unique group index for which bodies will collide.\n         * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n         * See `body.collisionFilter` for more information.\n         * @method nextGroup\n         * @param {bool} [isNonColliding=false]\n         * @return {Number} Unique group index\n         */i.nextGroup=function(e){return e?i._nextNonCollidingGroupId--:i._nextCollidingGroupId++};i.nextCategory=function(){i._nextCategory=i._nextCategory<<1;return i._nextCategory};\n/**\n         * Initialises body properties.\n         * @method _initProperties\n         * @private\n         * @param {body} body\n         * @param {} [options]\n         */var _initProperties=function(e,t){t=t||{};i.set(e,{bounds:e.bounds||l.create(e.vertices),positionPrev:e.positionPrev||r.clone(e.position),anglePrev:e.anglePrev||e.angle,vertices:e.vertices,parts:e.parts||[e],isStatic:e.isStatic,isSleeping:e.isSleeping,parent:e.parent||e});o.rotate(e.vertices,e.angle,e.position);c.rotate(e.axes,e.angle);l.update(e.bounds,e.vertices,e.velocity);i.set(e,{axes:t.axes||e.axes,area:t.area||e.area,mass:t.mass||e.mass,inertia:t.inertia||e.inertia});var n=e.isStatic?\"#14151f\":s.choose([\"#f19648\",\"#f5d259\",\"#f55a3c\",\"#063e7b\",\"#ececd1\"]),a=e.isStatic?\"#555\":\"#ccc\",u=e.isStatic&&null===e.render.fillStyle?1:0;e.render.fillStyle=e.render.fillStyle||n;e.render.strokeStyle=e.render.strokeStyle||a;e.render.lineWidth=e.render.lineWidth||u;e.render.sprite.xOffset+=-(e.bounds.min.x-e.position.x)/(e.bounds.max.x-e.bounds.min.x);e.render.sprite.yOffset+=-(e.bounds.min.y-e.position.y)/(e.bounds.max.y-e.bounds.min.y)};\n/**\n         * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n         * Prefer to use the actual setter functions in performance critical situations.\n         * @method set\n         * @param {body} body\n         * @param {} settings A property name (or map of properties and values) to set on the body.\n         * @param {} value The value to set if `settings` is a single property name.\n         */i.set=function(e,t,n){var o;if(\"string\"===typeof t){o=t;t={};t[o]=n}for(o in t)if(Object.prototype.hasOwnProperty.call(t,o)){n=t[o];switch(o){case\"isStatic\":i.setStatic(e,n);break;case\"isSleeping\":a.set(e,n);break;case\"mass\":i.setMass(e,n);break;case\"density\":i.setDensity(e,n);break;case\"inertia\":i.setInertia(e,n);break;case\"vertices\":i.setVertices(e,n);break;case\"position\":i.setPosition(e,n);break;case\"angle\":i.setAngle(e,n);break;case\"velocity\":i.setVelocity(e,n);break;case\"angularVelocity\":i.setAngularVelocity(e,n);break;case\"parts\":i.setParts(e,n);break;case\"centre\":i.setCentre(e,n);break;default:e[o]=n}}};\n/**\n         * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n         * @method setStatic\n         * @param {body} body\n         * @param {bool} isStatic\n         */i.setStatic=function(e,t){for(var n=0;n<e.parts.length;n++){var i=e.parts[n];i.isStatic=t;if(t){i._original={restitution:i.restitution,friction:i.friction,mass:i.mass,inertia:i.inertia,density:i.density,inverseMass:i.inverseMass,inverseInertia:i.inverseInertia};i.restitution=0;i.friction=1;i.mass=i.inertia=i.density=Infinity;i.inverseMass=i.inverseInertia=0;i.positionPrev.x=i.position.x;i.positionPrev.y=i.position.y;i.anglePrev=i.angle;i.angularVelocity=0;i.speed=0;i.angularSpeed=0;i.motion=0}else if(i._original){i.restitution=i._original.restitution;i.friction=i._original.friction;i.mass=i._original.mass;i.inertia=i._original.inertia;i.density=i._original.density;i.inverseMass=i._original.inverseMass;i.inverseInertia=i._original.inverseInertia;i._original=null}}};\n/**\n         * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n         * @method setMass\n         * @param {body} body\n         * @param {number} mass\n         */i.setMass=function(e,t){var n=e.inertia/(e.mass/6);e.inertia=n*(t/6);e.inverseInertia=1/e.inertia;e.mass=t;e.inverseMass=1/e.mass;e.density=e.mass/e.area};\n/**\n         * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n         * @method setDensity\n         * @param {body} body\n         * @param {number} density\n         */i.setDensity=function(e,t){i.setMass(e,t*e.area);e.density=t};\n/**\n         * Sets the moment of inertia (i.e. second moment of area) of the body. \n         * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n         * @method setInertia\n         * @param {body} body\n         * @param {number} inertia\n         */i.setInertia=function(e,t){e.inertia=t;e.inverseInertia=1/e.inertia};\n/**\n         * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n         * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n         * They are then automatically translated to world space based on `body.position`.\n         *\n         * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n         * Vertices must form a convex hull, concave hulls are not supported.\n         *\n         * @method setVertices\n         * @param {body} body\n         * @param {vector[]} vertices\n         */i.setVertices=function(e,t){t[0].body===e?e.vertices=t:e.vertices=o.create(t,e);e.axes=c.fromVertices(e.vertices);e.area=o.area(e.vertices);i.setMass(e,e.density*e.area);var n=o.centre(e.vertices);o.translate(e.vertices,n,-1);i.setInertia(e,i._inertiaScale*o.inertia(e.vertices,e.mass));o.translate(e.vertices,e.position);l.update(e.bounds,e.vertices,e.velocity)};\n/**\n         * Sets the parts of the `body` and updates mass, inertia and centroid.\n         * Each part will have its parent set to `body`.\n         * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n         * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n         * @method setParts\n         * @param {body} body\n         * @param [body] parts\n         * @param {bool} [autoHull=true]\n         */i.setParts=function(e,t,n){var r;t=t.slice(0);e.parts.length=0;e.parts.push(e);e.parent=e;for(r=0;r<t.length;r++){var a=t[r];if(a!==e){a.parent=e;e.parts.push(a)}}if(1!==e.parts.length){n=\"undefined\"===typeof n||n;if(n){var s=[];for(r=0;r<t.length;r++)s=s.concat(t[r].vertices);o.clockwiseSort(s);var l=o.hull(s),c=o.centre(l);i.setVertices(e,l);o.translate(e.vertices,c)}var u=i._totalProperties(e);e.area=u.area;e.parent=e;e.position.x=u.centre.x;e.position.y=u.centre.y;e.positionPrev.x=u.centre.x;e.positionPrev.y=u.centre.y;i.setMass(e,u.mass);i.setInertia(e,u.inertia);i.setPosition(e,u.centre)}};\n/**\n         * Set the centre of mass of the body. \n         * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n         * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n         * This is equal to moving `body.position` but not the `body.vertices`.\n         * Invalid if the `centre` falls outside the body's convex hull.\n         * @method setCentre\n         * @param {body} body\n         * @param {vector} centre\n         * @param {bool} relative\n         */i.setCentre=function(e,t,n){if(n){e.positionPrev.x+=t.x;e.positionPrev.y+=t.y;e.position.x+=t.x;e.position.y+=t.y}else{e.positionPrev.x=t.x-(e.position.x-e.positionPrev.x);e.positionPrev.y=t.y-(e.position.y-e.positionPrev.y);e.position.x=t.x;e.position.y=t.y}};\n/**\n         * Sets the position of the body instantly. Velocity, angle, force etc. are unchanged.\n         * @method setPosition\n         * @param {body} body\n         * @param {vector} position\n         */i.setPosition=function(e,t){var n=r.sub(t,e.position);e.positionPrev.x+=n.x;e.positionPrev.y+=n.y;for(var i=0;i<e.parts.length;i++){var a=e.parts[i];a.position.x+=n.x;a.position.y+=n.y;o.translate(a.vertices,n);l.update(a.bounds,a.vertices,e.velocity)}};\n/**\n         * Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged.\n         * @method setAngle\n         * @param {body} body\n         * @param {number} angle\n         */i.setAngle=function(e,t){var n=t-e.angle;e.anglePrev+=n;for(var i=0;i<e.parts.length;i++){var a=e.parts[i];a.angle+=n;o.rotate(a.vertices,n,e.position);c.rotate(a.axes,n);l.update(a.bounds,a.vertices,e.velocity);i>0&&r.rotateAbout(a.position,n,e.position,a.position)}};\n/**\n         * Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.\n         * @method setVelocity\n         * @param {body} body\n         * @param {vector} velocity\n         */i.setVelocity=function(e,t){e.positionPrev.x=e.position.x-t.x;e.positionPrev.y=e.position.y-t.y;e.velocity.x=t.x;e.velocity.y=t.y;e.speed=r.magnitude(e.velocity)};\n/**\n         * Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.\n         * @method setAngularVelocity\n         * @param {body} body\n         * @param {number} velocity\n         */i.setAngularVelocity=function(e,t){e.anglePrev=e.angle-t;e.angularVelocity=t;e.angularSpeed=Math.abs(e.angularVelocity)};\n/**\n         * Moves a body by a given vector relative to its current position, without imparting any velocity.\n         * @method translate\n         * @param {body} body\n         * @param {vector} translation\n         */i.translate=function(e,t){i.setPosition(e,r.add(e.position,t))};\n/**\n         * Rotates a body by a given angle relative to its current angle, without imparting any angular velocity.\n         * @method rotate\n         * @param {body} body\n         * @param {number} rotation\n         * @param {vector} [point]\n         */i.rotate=function(e,t,n){if(n){var o=Math.cos(t),r=Math.sin(t),a=e.position.x-n.x,s=e.position.y-n.y;i.setPosition(e,{x:n.x+(a*o-s*r),y:n.y+(a*r+s*o)});i.setAngle(e,e.angle+t)}else i.setAngle(e,e.angle+t)};\n/**\n         * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n         * @method scale\n         * @param {body} body\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} [point]\n         */i.scale=function(e,t,n,r){var a=0,s=0;r=r||e.position;for(var u=0;u<e.parts.length;u++){var f=e.parts[u];o.scale(f.vertices,t,n,r);f.axes=c.fromVertices(f.vertices);f.area=o.area(f.vertices);i.setMass(f,e.density*f.area);o.translate(f.vertices,{x:-f.position.x,y:-f.position.y});i.setInertia(f,i._inertiaScale*o.inertia(f.vertices,f.mass));o.translate(f.vertices,{x:f.position.x,y:f.position.y});if(u>0){a+=f.area;s+=f.inertia}f.position.x=r.x+(f.position.x-r.x)*t;f.position.y=r.y+(f.position.y-r.y)*n;l.update(f.bounds,f.vertices,e.velocity)}if(e.parts.length>1){e.area=a;if(!e.isStatic){i.setMass(e,e.density*a);i.setInertia(e,s)}}e.circleRadius&&(t===n?e.circleRadius*=t:e.circleRadius=null)};\n/**\n         * Performs a simulation step for the given `body`, including updating position and angle using Verlet integration.\n         * @method update\n         * @param {body} body\n         * @param {number} deltaTime\n         * @param {number} timeScale\n         * @param {number} correction\n         */i.update=function(e,t,n,i){var a=Math.pow(t*n*e.timeScale,2);var s=1-e.frictionAir*n*e.timeScale,u=e.position.x-e.positionPrev.x,f=e.position.y-e.positionPrev.y;e.velocity.x=u*s*i+e.force.x/e.mass*a;e.velocity.y=f*s*i+e.force.y/e.mass*a;e.positionPrev.x=e.position.x;e.positionPrev.y=e.position.y;e.position.x+=e.velocity.x;e.position.y+=e.velocity.y;e.angularVelocity=(e.angle-e.anglePrev)*s*i+e.torque/e.inertia*a;e.anglePrev=e.angle;e.angle+=e.angularVelocity;e.speed=r.magnitude(e.velocity);e.angularSpeed=Math.abs(e.angularVelocity);for(var d=0;d<e.parts.length;d++){var p=e.parts[d];o.translate(p.vertices,e.velocity);if(d>0){p.position.x+=e.velocity.x;p.position.y+=e.velocity.y}if(0!==e.angularVelocity){o.rotate(p.vertices,e.angularVelocity,e.position);c.rotate(p.axes,e.angularVelocity);d>0&&r.rotateAbout(p.position,e.angularVelocity,e.position,p.position)}l.update(p.bounds,p.vertices,e.velocity)}};\n/**\n         * Applies a force to a body from a given world-space position, including resulting torque.\n         * @method applyForce\n         * @param {body} body\n         * @param {vector} position\n         * @param {vector} force\n         */i.applyForce=function(e,t,n){e.force.x+=n.x;e.force.y+=n.y;var i={x:t.x-e.position.x,y:t.y-e.position.y};e.torque+=i.x*n.y-i.y*n.x};\n/**\n         * Returns the sums of the properties of all compound parts of the parent body.\n         * @method _totalProperties\n         * @private\n         * @param {body} body\n         * @return {}\n         */i._totalProperties=function(e){var t={mass:0,area:0,inertia:0,centre:{x:0,y:0}};for(var n=1===e.parts.length?0:1;n<e.parts.length;n++){var i=e.parts[n],o=Infinity!==i.mass?i.mass:1;t.mass+=o;t.area+=i.area;t.inertia+=i.inertia;t.centre=r.add(t.centre,r.mult(i.position,o))}t.centre=r.div(t.centre,t.mass);return t};\n/**\n        * Fired when a body starts sleeping (where `this` is the body).\n        *\n        * @event sleepStart\n        * @this {body} The body that has started sleeping\n        * @param {} event An event object\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a body ends sleeping (where `this` is the body).\n        *\n        * @event sleepEnd\n        * @this {body} The body that has ended sleeping\n        * @param {} event An event object\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"body\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage bodies.\n         *\n         * @property label\n         * @type string\n         * @default \"Body\"\n         */\n/**\n         * An array of bodies that make up this body. \n         * The first body in the array must always be a self reference to the current body instance.\n         * All bodies in the `parts` array together form a single rigid compound body.\n         * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n         * Parts themselves should never be added to a `World`, only the parent body should be.\n         * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n         *\n         * @property parts\n         * @type body[]\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * A self reference if the body is _not_ a part of another body.\n         * Otherwise this is a reference to the body that this is a part of.\n         * See `body.parts`.\n         *\n         * @property parent\n         * @type body\n         */\n/**\n         * A `Number` specifying the angle of the body, in radians.\n         *\n         * @property angle\n         * @type number\n         * @default 0\n         */\n/**\n         * An array of `Vector` objects that specify the convex hull of the rigid body.\n         * These should be provided about the origin `(0, 0)`. E.g.\n         *\n         *     [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n         *\n         * When passed via `Body.create`, the vertices are translated relative to `body.position` (i.e. world-space, and constantly updated by `Body.update` during simulation).\n         * The `Vector` objects are also augmented with additional properties required for efficient collision detection. \n         *\n         * Other properties such as `inertia` and `bounds` are automatically calculated from the passed vertices (unless provided via `options`).\n         * Concave hulls are not currently supported. The module `Matter.Vertices` contains useful methods for working with vertices.\n         *\n         * @property vertices\n         * @type vector[]\n         */\n/**\n         * A `Vector` that specifies the current world-space position of the body.\n         *\n         * @property position\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that specifies the force to apply in the current step. It is zeroed after every `Body.update`. See also `Body.applyForce`.\n         *\n         * @property force\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that specifies the torque (turning force) to apply in the current step. It is zeroed after every `Body.update`.\n         *\n         * @property torque\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that _measures_ the current speed of the body after the last `Body.update`. It is read-only and always positive (it's the magnitude of `body.velocity`).\n         *\n         * @readOnly\n         * @property speed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that _measures_ the current angular speed of the body after the last `Body.update`. It is read-only and always positive (it's the magnitude of `body.angularVelocity`).\n         *\n         * @readOnly\n         * @property angularSpeed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Vector` that _measures_ the current velocity of the body after the last `Body.update`. It is read-only. \n         * If you need to modify a body's velocity directly, you should either apply a force or simply change the body's `position` (as the engine uses position-Verlet integration).\n         *\n         * @readOnly\n         * @property velocity\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that _measures_ the current angular velocity of the body after the last `Body.update`. It is read-only. \n         * If you need to modify a body's angular velocity directly, you should apply a torque or simply change the body's `angle` (as the engine uses position-Verlet integration).\n         *\n         * @readOnly\n         * @property angularVelocity\n         * @type number\n         * @default 0\n         */\n/**\n         * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n         * If you need to set a body as static after its creation, you should use `Body.setStatic` as this requires more than just setting this flag.\n         *\n         * @property isStatic\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n         *\n         * @property isSensor\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n         * If you need to set a body as sleeping, you should use `Sleeping.set` as this requires more than just setting this flag.\n         *\n         * @property isSleeping\n         * @type boolean\n         * @default false\n         */\n/**\n         * A `Number` that _measures_ the amount of movement a body currently has (a combination of `speed` and `angularSpeed`). It is read-only and always positive.\n         * It is used and updated by the `Matter.Sleeping` module during simulation to decide if a body has come to rest.\n         *\n         * @readOnly\n         * @property motion\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that defines the number of updates in which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n         *\n         * @property sleepThreshold\n         * @type number\n         * @default 60\n         */\n/**\n         * A `Number` that defines the density of the body, that is its mass per unit area.\n         * If you pass the density via `Body.create` the `mass` property is automatically calculated for you based on the size (area) of the object.\n         * This is generally preferable to simply setting mass and allows for more intuitive definition of materials (e.g. rock has a higher density than wood).\n         *\n         * @property density\n         * @type number\n         * @default 0.001\n         */\n/**\n         * A `Number` that defines the mass of the body, although it may be more appropriate to specify the `density` property instead.\n         * If you modify this value, you must also modify the `body.inverseMass` property (`1 / mass`).\n         *\n         * @property mass\n         * @type number\n         */\n/**\n         * A `Number` that defines the inverse mass of the body (`1 / mass`).\n         * If you modify this value, you must also modify the `body.mass` property.\n         *\n         * @property inverseMass\n         * @type number\n         */\n/**\n         * A `Number` that defines the moment of inertia (i.e. second moment of area) of the body.\n         * It is automatically calculated from the given convex hull (`vertices` array) and density in `Body.create`.\n         * If you modify this value, you must also modify the `body.inverseInertia` property (`1 / inertia`).\n         *\n         * @property inertia\n         * @type number\n         */\n/**\n         * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n         * If you modify this value, you must also modify the `body.inertia` property.\n         *\n         * @property inverseInertia\n         * @type number\n         */\n/**\n         * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n         * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n         * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n         * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n         *\n         *     Math.max(bodyA.restitution, bodyB.restitution)\n         *\n         * @property restitution\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n         * A value of `0` means that the body may slide indefinitely.\n         * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n         *\n         * The effects of the value may be non-linear. \n         * High values may be unstable depending on the body.\n         * The engine uses a Coulomb friction model including static and kinetic friction.\n         * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n         *\n         *     Math.min(bodyA.friction, bodyB.friction)\n         *\n         * @property friction\n         * @type number\n         * @default 0.1\n         */\n/**\n         * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n         * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n         * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n         * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n         *\n         * @property frictionStatic\n         * @type number\n         * @default 0.5\n         */\n/**\n         * A `Number` that defines the air friction of the body (air resistance). \n         * A value of `0` means the body will never slow as it moves through space.\n         * The higher the value, the faster a body slows when moving through space.\n         * The effects of the value are non-linear. \n         *\n         * @property frictionAir\n         * @type number\n         * @default 0.01\n         */\n/**\n         * An `Object` that specifies the collision filtering properties of this body.\n         *\n         * Collisions between two bodies will obey the following rules:\n         * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n         *   they will always collide if the value is positive, and they will never collide\n         *   if the value is negative.\n         * - If the two bodies have different values of `collisionFilter.group` or if one\n         *   (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n         *\n         * Each body belongs to a collision category, given by `collisionFilter.category`. This\n         * value is used as a bit field and the category should have only one bit set, meaning that\n         * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n         * different collision categories available.\n         *\n         * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n         * the categories it collides with (the value is the bitwise AND value of all these categories).\n         *\n         * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n         * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n         * are both true.\n         *\n         * @property collisionFilter\n         * @type object\n         */\n/**\n         * An Integer `Number`, that specifies the collision group this body belongs to.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.group\n         * @type object\n         * @default 0\n         */\n/**\n         * A bit field that specifies the collision category this body belongs to.\n         * The category value should have only one bit set, for example `0x0001`.\n         * This means there are up to 32 unique collision categories available.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.category\n         * @type object\n         * @default 1\n         */\n/**\n         * A bit mask that specifies the collision categories this body may collide with.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.mask\n         * @type object\n         * @default -1\n         */\n/**\n         * A `Number` that specifies a tolerance on how far a body is allowed to 'sink' or rotate into other bodies.\n         * Avoid changing this value unless you understand the purpose of `slop` in physics engines.\n         * The default should generally suffice, although very large bodies may require larger values for stable stacking.\n         *\n         * @property slop\n         * @type number\n         * @default 0.05\n         */\n/**\n         * A `Number` that allows per-body time scaling, e.g. a force-field where bodies inside are in slow-motion, while others are at full speed.\n         *\n         * @property timeScale\n         * @type number\n         * @default 1\n         */\n/**\n         * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n         *\n         * @property render\n         * @type object\n         */\n/**\n         * A flag that indicates if the body should be rendered.\n         *\n         * @property render.visible\n         * @type boolean\n         * @default true\n         */\n/**\n         * Sets the opacity to use when rendering.\n         *\n         * @property render.opacity\n         * @type number\n         * @default 1\n        */\n/**\n         * An `Object` that defines the sprite properties to use when rendering, if any.\n         *\n         * @property render.sprite\n         * @type object\n         */\n/**\n         * An `String` that defines the path to the image to use as the sprite texture, if any.\n         *\n         * @property render.sprite.texture\n         * @type string\n         */\n/**\n         * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n         *\n         * @property render.sprite.xScale\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n         *\n         * @property render.sprite.yScale\n         * @type number\n         * @default 1\n         */\n/**\n          * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n          *\n          * @property render.sprite.xOffset\n          * @type number\n          * @default 0\n          */\n/**\n          * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n          *\n          * @property render.sprite.yOffset\n          * @type number\n          * @default 0\n          */\n/**\n         * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n         * A value of `0` means no outline will be rendered.\n         *\n         * @property render.lineWidth\n         * @type number\n         * @default 0\n         */\n/**\n         * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.fillStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.strokeStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * An array of unique axis vectors (edge normals) used for collision detection.\n         * These are automatically calculated from the given convex hull (`vertices` array) in `Body.create`.\n         * They are constantly updated by `Body.update` during the simulation.\n         *\n         * @property axes\n         * @type vector[]\n         */\n/**\n         * A `Number` that _measures_ the area of the body's convex hull, calculated at creation by `Body.create`.\n         *\n         * @property area\n         * @type string\n         * @default \n         */\n/**\n         * A `Bounds` object that defines the AABB region for the body.\n         * It is automatically calculated from the given convex hull (`vertices` array) in `Body.create` and constantly updated by `Body.update` during simulation.\n         *\n         * @property bounds\n         * @type bounds\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(4);(function(){i._motionWakeThreshold=.18;i._motionSleepThreshold=.08;i._minBias=.9;\n/**\n         * Puts bodies to sleep or wakes them up depending on their motion.\n         * @method update\n         * @param {body[]} bodies\n         * @param {number} timeScale\n         */i.update=function(e,t){var n=t*t*t;for(var o=0;o<e.length;o++){var r=e[o],a=r.speed*r.speed+r.angularSpeed*r.angularSpeed;if(0===r.force.x&&0===r.force.y){var s=Math.min(r.motion,a),l=Math.max(r.motion,a);r.motion=i._minBias*s+(1-i._minBias)*l;if(r.sleepThreshold>0&&r.motion<i._motionSleepThreshold*n){r.sleepCounter+=1;r.sleepCounter>=r.sleepThreshold&&i.set(r,true)}else r.sleepCounter>0&&(r.sleepCounter-=1)}else i.set(r,false)}};\n/**\n         * Given a set of colliding pairs, wakes the sleeping bodies involved.\n         * @method afterCollisions\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.afterCollisions=function(e,t){var n=t*t*t;for(var o=0;o<e.length;o++){var r=e[o];if(r.isActive){var a=r.collision,s=a.bodyA.parent,l=a.bodyB.parent;if(!(s.isSleeping&&l.isSleeping||s.isStatic||l.isStatic)&&(s.isSleeping||l.isSleeping)){var c=s.isSleeping&&!s.isStatic?s:l,u=c===s?l:s;!c.isStatic&&u.motion>i._motionWakeThreshold*n&&i.set(c,false)}}}};\n/**\n         * Set a body as sleeping or awake.\n         * @method set\n         * @param {body} body\n         * @param {boolean} isSleeping\n         */i.set=function(e,t){var n=e.isSleeping;if(t){e.isSleeping=true;e.sleepCounter=e.sleepThreshold;e.positionImpulse.x=0;e.positionImpulse.y=0;e.positionPrev.x=e.position.x;e.positionPrev.y=e.position.y;e.anglePrev=e.angle;e.speed=0;e.angularSpeed=0;e.motion=0;n||o.trigger(e,\"sleepStart\")}else{e.isSleeping=false;e.sleepCounter=0;n&&o.trigger(e,\"sleepEnd\")}}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(9);(function(){var e=[];var t={overlap:0,axis:null};var n={overlap:0,axis:null};\n/**\n         * Creates a new collision record.\n         * @method create\n         * @param {body} bodyA The first body part represented by the collision record\n         * @param {body} bodyB The second body part represented by the collision record\n         * @return {collision} A new collision record\n         */i.create=function(e,t){return{pair:null,collided:false,bodyA:e,bodyB:t,parentA:e.parent,parentB:t.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}};\n/**\n         * Detect collision between two bodies.\n         * @method collides\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n         * @return {collision|null} A collision record if detected, otherwise null\n         */i.collides=function(e,a,s){i._overlapAxes(t,e.vertices,a.vertices,e.axes);if(t.overlap<=0)return null;i._overlapAxes(n,a.vertices,e.vertices,a.axes);if(n.overlap<=0)return null;var l,c=s&&s.table[r.id(e,a)];if(c)l=c.collision;else{l=i.create(e,a);l.collided=true;l.bodyA=e.id<a.id?e:a;l.bodyB=e.id<a.id?a:e;l.parentA=l.bodyA.parent;l.parentB=l.bodyB.parent}e=l.bodyA;a=l.bodyB;var u;u=t.overlap<n.overlap?t:n;var f=l.normal,d=l.supports,p=u.axis,v=p.x,y=p.y;if(v*(a.position.x-e.position.x)+y*(a.position.y-e.position.y)<0){f.x=v;f.y=y}else{f.x=-v;f.y=-y}l.tangent.x=-f.y;l.tangent.y=f.x;l.depth=u.overlap;l.penetration.x=f.x*l.depth;l.penetration.y=f.y*l.depth;var m=i._findSupports(e,a,f,1),g=0;o.contains(e.vertices,m[0])&&(d[g++]=m[0]);o.contains(e.vertices,m[1])&&(d[g++]=m[1]);if(g<2){var x=i._findSupports(a,e,f,-1);o.contains(a.vertices,x[0])&&(d[g++]=x[0]);g<2&&o.contains(a.vertices,x[1])&&(d[g++]=x[1])}0===g&&(d[g++]=m[0]);d.length=g;return l};\n/**\n         * Find the overlap between two sets of vertices.\n         * @method _overlapAxes\n         * @private\n         * @param {object} result\n         * @param {vertices} verticesA\n         * @param {vertices} verticesB\n         * @param {axes} axes\n         */i._overlapAxes=function(e,t,n,i){var o,r,a,s,l,c,u=t.length,f=n.length,d=t[0].x,p=t[0].y,v=n[0].x,y=n[0].y,m=i.length,g=Number.MAX_VALUE,x=0;for(l=0;l<m;l++){var h=i[l],b=h.x,S=h.y,w=d*b+p*S,_=v*b+y*S,A=w,P=_;for(c=1;c<u;c+=1){s=t[c].x*b+t[c].y*S;s>A?A=s:s<w&&(w=s)}for(c=1;c<f;c+=1){s=n[c].x*b+n[c].y*S;s>P?P=s:s<_&&(_=s)}r=A-_;a=P-w;o=r<a?r:a;if(o<g){g=o;x=l;if(o<=0)break}}e.axis=i[x];e.overlap=g};\n/**\n         * Projects vertices on an axis and returns an interval.\n         * @method _projectToAxis\n         * @private\n         * @param {} projection\n         * @param {} vertices\n         * @param {} axis\n         */i._projectToAxis=function(e,t,n){var i=t[0].x*n.x+t[0].y*n.y,o=i;for(var r=1;r<t.length;r+=1){var a=t[r].x*n.x+t[r].y*n.y;a>o?o=a:a<i&&(i=a)}e.min=i;e.max=o};\n/**\n         * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n         * @method _findSupports\n         * @private\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @param {vector} normal\n         * @param {number} direction\n         * @return [vector]\n         */i._findSupports=function(t,n,i,o){var r,a,s,l,c,u=n.vertices,f=u.length,d=t.position.x,p=t.position.y,v=i.x*o,y=i.y*o,m=Number.MAX_VALUE;for(c=0;c<f;c+=1){a=u[c];l=v*(d-a.x)+y*(p-a.y);if(l<m){m=l;r=a}}s=u[(f+r.index-1)%f];m=v*(d-s.x)+y*(p-s.y);a=u[(r.index+1)%f];if(v*(d-a.x)+y*(p-a.y)<m){e[0]=r;e[1]=a;return e}e[0]=r;e[1]=s;return e};\n/**\n         * A reference to the pair using this collision record, if there is one.\n         *\n         * @property pair\n         * @type {pair|null}\n         * @default null\n         */\n/**\n         * A flag that indicates if the bodies were colliding when the collision was last updated.\n         * \n         * @property collided\n         * @type boolean\n         * @default false\n         */\n/**\n         * The first body part represented by the collision (see also `collision.parentA`).\n         * \n         * @property bodyA\n         * @type body\n         */\n/**\n         * The second body part represented by the collision (see also `collision.parentB`).\n         * \n         * @property bodyB\n         * @type body\n         */\n/**\n         * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n         * \n         * @property parentA\n         * @type body\n         */\n/**\n         * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n         * \n         * @property parentB\n         * @type body\n         */\n/**\n         * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n         *\n         * @readOnly\n         * @property depth\n         * @type number\n         * @default 0\n         */\n/**\n         * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n         *\n         * @property normal\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A normalised `Vector` that is the tangent direction to the collision normal.\n         *\n         * @property tangent\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that represents the direction and depth of the collision.\n         *\n         * @property penetration\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * An array of body vertices that represent the support points in the collision.\n         * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n         *\n         * @property supports\n         * @type vector[]\n         * @default []\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(17);(function(){\n/**\n         * Creates a pair.\n         * @method create\n         * @param {collision} collision\n         * @param {number} timestamp\n         * @return {pair} A new pair\n         */\ni.create=function(e,t){var n=e.bodyA,o=e.bodyB;var r={id:i.id(n,o),bodyA:n,bodyB:o,collision:e,contacts:[],activeContacts:[],separation:0,isActive:true,confirmedActive:true,isSensor:n.isSensor||o.isSensor,timeCreated:t,timeUpdated:t,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};i.update(r,e,t);return r};\n/**\n         * Updates a pair given a collision.\n         * @method update\n         * @param {pair} pair\n         * @param {collision} collision\n         * @param {number} timestamp\n         */i.update=function(e,t,n){var i=e.contacts,r=t.supports,a=e.activeContacts,s=t.parentA,l=t.parentB,c=s.vertices.length;e.isActive=true;e.timeUpdated=n;e.collision=t;e.separation=t.depth;e.inverseMass=s.inverseMass+l.inverseMass;e.friction=s.friction<l.friction?s.friction:l.friction;e.frictionStatic=s.frictionStatic>l.frictionStatic?s.frictionStatic:l.frictionStatic;e.restitution=s.restitution>l.restitution?s.restitution:l.restitution;e.slop=s.slop>l.slop?s.slop:l.slop;t.pair=e;a.length=0;for(var u=0;u<r.length;u++){var f=r[u],d=f.body===s?f.index:c+f.index,p=i[d];p?a.push(p):a.push(i[d]=o.create(f))}};\n/**\n         * Set a pair as active or inactive.\n         * @method setActive\n         * @param {pair} pair\n         * @param {bool} isActive\n         * @param {number} timestamp\n         */i.setActive=function(e,t,n){if(t){e.isActive=true;e.timeUpdated=n}else{e.isActive=false;e.activeContacts.length=0}};\n/**\n         * Get the id for the given pair.\n         * @method id\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {string} Unique pairId\n         */i.id=function(e,t){return e.id<t.id?\"A\"+e.id+\"B\"+t.id:\"A\"+t.id+\"B\"+e.id}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(2);var a=n(7);var s=n(1);var l=n(11);var c=n(0);(function(){i._warming=.4;i._torqueDampen=1;i._minLength=1e-6;\n/**\n         * Creates a new constraint.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n         * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n         * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} options\n         * @return {constraint} constraint\n         */i.create=function(e){var t=e;t.bodyA&&!t.pointA&&(t.pointA={x:0,y:0});t.bodyB&&!t.pointB&&(t.pointB={x:0,y:0});var n=t.bodyA?r.add(t.bodyA.position,t.pointA):t.pointA,i=t.bodyB?r.add(t.bodyB.position,t.pointB):t.pointB,o=r.magnitude(r.sub(n,i));t.length=\"undefined\"!==typeof t.length?t.length:o;t.id=t.id||c.nextId();t.label=t.label||\"Constraint\";t.type=\"constraint\";t.stiffness=t.stiffness||(t.length>0?1:.7);t.damping=t.damping||0;t.angularStiffness=t.angularStiffness||0;t.angleA=t.bodyA?t.bodyA.angle:t.angleA;t.angleB=t.bodyB?t.bodyB.angle:t.angleB;t.plugin={};var a={visible:true,lineWidth:2,strokeStyle:\"#ffffff\",type:\"line\",anchors:true};if(0===t.length&&t.stiffness>.1){a.type=\"pin\";a.anchors=false}else t.stiffness<.9&&(a.type=\"spring\");t.render=c.extend(a,t.render);return t};\n/**\n         * Prepares for solving by constraint warming.\n         * @private\n         * @method preSolveAll\n         * @param {body[]} bodies\n         */i.preSolveAll=function(e){for(var t=0;t<e.length;t+=1){var n=e[t],i=n.constraintImpulse;if(!(n.isStatic||0===i.x&&0===i.y&&0===i.angle)){n.position.x+=i.x;n.position.y+=i.y;n.angle+=i.angle}}};\n/**\n         * Solves all constraints in a list of collisions.\n         * @private\n         * @method solveAll\n         * @param {constraint[]} constraints\n         * @param {number} timeScale\n         */i.solveAll=function(e,t){for(var n=0;n<e.length;n+=1){var o=e[n],r=!o.bodyA||o.bodyA&&o.bodyA.isStatic,a=!o.bodyB||o.bodyB&&o.bodyB.isStatic;(r||a)&&i.solve(e[n],t)}for(n=0;n<e.length;n+=1){o=e[n];r=!o.bodyA||o.bodyA&&o.bodyA.isStatic;a=!o.bodyB||o.bodyB&&o.bodyB.isStatic;r||a||i.solve(e[n],t)}};\n/**\n         * Solves a distance constraint with Gauss-Siedel method.\n         * @private\n         * @method solve\n         * @param {constraint} constraint\n         * @param {number} timeScale\n         */i.solve=function(e,t){var n=e.bodyA,o=e.bodyB,a=e.pointA,s=e.pointB;if(n||o){if(n&&!n.isStatic){r.rotate(a,n.angle-e.angleA,a);e.angleA=n.angle}if(o&&!o.isStatic){r.rotate(s,o.angle-e.angleB,s);e.angleB=o.angle}var l=a,c=s;n&&(l=r.add(n.position,a));o&&(c=r.add(o.position,s));if(l&&c){var u=r.sub(l,c),f=r.magnitude(u);f<i._minLength&&(f=i._minLength);var d,p,v,y,m,g=(f-e.length)/f,x=e.stiffness<1?e.stiffness*t:e.stiffness,h=r.mult(u,g*x),b=(n?n.inverseMass:0)+(o?o.inverseMass:0),S=(n?n.inverseInertia:0)+(o?o.inverseInertia:0),w=b+S;if(e.damping){var _=r.create();v=r.div(u,f);m=r.sub(o&&r.sub(o.position,o.positionPrev)||_,n&&r.sub(n.position,n.positionPrev)||_);y=r.dot(v,m)}if(n&&!n.isStatic){p=n.inverseMass/b;n.constraintImpulse.x-=h.x*p;n.constraintImpulse.y-=h.y*p;n.position.x-=h.x*p;n.position.y-=h.y*p;if(e.damping){n.positionPrev.x-=e.damping*v.x*y*p;n.positionPrev.y-=e.damping*v.y*y*p}d=r.cross(a,h)/w*i._torqueDampen*n.inverseInertia*(1-e.angularStiffness);n.constraintImpulse.angle-=d;n.angle-=d}if(o&&!o.isStatic){p=o.inverseMass/b;o.constraintImpulse.x+=h.x*p;o.constraintImpulse.y+=h.y*p;o.position.x+=h.x*p;o.position.y+=h.y*p;if(e.damping){o.positionPrev.x+=e.damping*v.x*y*p;o.positionPrev.y+=e.damping*v.y*y*p}d=r.cross(s,h)/w*i._torqueDampen*o.inverseInertia*(1-e.angularStiffness);o.constraintImpulse.angle+=d;o.angle+=d}}}};\n/**\n         * Performs body updates required after solving constraints.\n         * @private\n         * @method postSolveAll\n         * @param {body[]} bodies\n         */i.postSolveAll=function(e){for(var t=0;t<e.length;t++){var n=e[t],c=n.constraintImpulse;if(!(n.isStatic||0===c.x&&0===c.y&&0===c.angle)){a.set(n,false);for(var u=0;u<n.parts.length;u++){var f=n.parts[u];o.translate(f.vertices,c);if(u>0){f.position.x+=c.x;f.position.y+=c.y}if(0!==c.angle){o.rotate(f.vertices,c.angle,n.position);l.rotate(f.axes,c.angle);u>0&&r.rotateAbout(f.position,c.angle,n.position,f.position)}s.update(f.bounds,f.vertices,n.velocity)}c.angle*=i._warming;c.x*=i._warming;c.y*=i._warming}}};\n/**\n         * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n         * @method pointAWorld\n         * @param {constraint} constraint\n         * @returns {vector} the world-space position\n         */i.pointAWorld=function(e){return{x:(e.bodyA?e.bodyA.position.x:0)+e.pointA.x,y:(e.bodyA?e.bodyA.position.y:0)+e.pointA.y}};\n/**\n         * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n         * @method pointBWorld\n         * @param {constraint} constraint\n         * @returns {vector} the world-space position\n         */i.pointBWorld=function(e){return{x:(e.bodyB?e.bodyB.position.x:0)+e.pointB.x,y:(e.bodyB?e.bodyB.position.y:0)+e.pointB.y}};\n/**\n         * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"constraint\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage bodies.\n         *\n         * @property label\n         * @type string\n         * @default \"Constraint\"\n         */\n/**\n         * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n         *\n         * @property render\n         * @type object\n         */\n/**\n         * A flag that indicates if the constraint should be rendered.\n         *\n         * @property render.visible\n         * @type boolean\n         * @default true\n         */\n/**\n         * A `Number` that defines the line width to use when rendering the constraint outline.\n         * A value of `0` means no outline will be rendered.\n         *\n         * @property render.lineWidth\n         * @type number\n         * @default 2\n         */\n/**\n         * A `String` that defines the stroke style to use when rendering the constraint outline.\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.strokeStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * A `String` that defines the constraint rendering type. \n         * The possible values are 'line', 'pin', 'spring'.\n         * An appropriate render type will be automatically chosen unless one is given in options.\n         *\n         * @property render.type\n         * @type string\n         * @default 'line'\n         */\n/**\n         * A `Boolean` that defines if the constraint's anchor points should be rendered.\n         *\n         * @property render.anchors\n         * @type boolean\n         * @default true\n         */\n/**\n         * The first possible `Body` that this constraint is attached to.\n         *\n         * @property bodyA\n         * @type body\n         * @default null\n         */\n/**\n         * The second possible `Body` that this constraint is attached to.\n         *\n         * @property bodyB\n         * @type body\n         * @default null\n         */\n/**\n         * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n         *\n         * @property pointA\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n         *\n         * @property pointB\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n         * A value of `1` means the constraint should be very stiff.\n         * A value of `0.2` means the constraint acts like a soft spring.\n         *\n         * @property stiffness\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that specifies the damping of the constraint, \n         * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n         * Damping will only be apparent when the constraint also has a very low `stiffness`.\n         * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n         * A value of `0` means the constraint will apply no damping.\n         *\n         * @property damping\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that specifies the target resting length of the constraint. \n         * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n         *\n         * @property length\n         * @type number\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(0);(function(){\n/**\n         * Creates a new set of axes from the given vertices.\n         * @method fromVertices\n         * @param {vertices} vertices\n         * @return {axes} A new axes from the given vertices\n         */\ni.fromVertices=function(e){var t={};for(var n=0;n<e.length;n++){var i=(n+1)%e.length,a=o.normalise({x:e[i].y-e[n].y,y:e[n].x-e[i].x}),s=0===a.y?Infinity:a.x/a.y;s=s.toFixed(3).toString();t[s]=a}return r.values(t)};\n/**\n         * Rotates a set of axes by the given angle.\n         * @method rotate\n         * @param {axes} axes\n         * @param {number} angle\n         */i.rotate=function(e,t){if(0!==t){var n=Math.cos(t),i=Math.sin(t);for(var o=0;o<e.length;o++){var r,a=e[o];r=a.x*n-a.y*i;a.y=a.x*i+a.y*n;a.x=r}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(0);var a=n(6);var s=n(1);var l=n(2);(function(){\n/**\n         * Creates a new rigid body model with a rectangle hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method rectangle\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {object} [options]\n         * @return {body} A new rectangle body\n         */\ni.rectangle=function(e,t,n,i,s){s=s||{};var l={label:\"Rectangle Body\",position:{x:e,y:t},vertices:o.fromPath(\"L 0 0 L \"+n+\" 0 L \"+n+\" \"+i+\" L 0 \"+i)};if(s.chamfer){var c=s.chamfer;l.vertices=o.chamfer(l.vertices,c.radius,c.quality,c.qualityMin,c.qualityMax);delete s.chamfer}return a.create(r.extend({},l,s))};\n/**\n         * Creates a new rigid body model with a trapezoid hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method trapezoid\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {number} slope\n         * @param {object} [options]\n         * @return {body} A new trapezoid body\n         */i.trapezoid=function(e,t,n,i,s,l){l=l||{};s*=.5;var c=(1-2*s)*n;var u,f=n*s,d=f+c,p=d+f;u=s<.5?\"L 0 0 L \"+f+\" \"+-i+\" L \"+d+\" \"+-i+\" L \"+p+\" 0\":\"L 0 0 L \"+d+\" \"+-i+\" L \"+p+\" 0\";var v={label:\"Trapezoid Body\",position:{x:e,y:t},vertices:o.fromPath(u)};if(l.chamfer){var y=l.chamfer;v.vertices=o.chamfer(v.vertices,y.radius,y.quality,y.qualityMin,y.qualityMax);delete l.chamfer}return a.create(r.extend({},v,l))};\n/**\n         * Creates a new rigid body model with a circle hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method circle\n         * @param {number} x\n         * @param {number} y\n         * @param {number} radius\n         * @param {object} [options]\n         * @param {number} [maxSides]\n         * @return {body} A new circle body\n         */i.circle=function(e,t,n,o,a){o=o||{};var s={label:\"Circle Body\",circleRadius:n};a=a||25;var l=Math.ceil(Math.max(10,Math.min(a,n)));l%2===1&&(l+=1);return i.polygon(e,t,l,n,r.extend({},s,o))};\n/**\n         * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method polygon\n         * @param {number} x\n         * @param {number} y\n         * @param {number} sides\n         * @param {number} radius\n         * @param {object} [options]\n         * @return {body} A new regular polygon body\n         */i.polygon=function(e,t,n,s,l){l=l||{};if(n<3)return i.circle(e,t,s,l);var c=2*Math.PI/n,u=\"\",f=.5*c;for(var d=0;d<n;d+=1){var p=f+d*c,v=Math.cos(p)*s,y=Math.sin(p)*s;u+=\"L \"+v.toFixed(3)+\" \"+y.toFixed(3)+\" \"}var m={label:\"Polygon Body\",position:{x:e,y:t},vertices:o.fromPath(u)};if(l.chamfer){var g=l.chamfer;m.vertices=o.chamfer(m.vertices,g.radius,g.quality,g.qualityMin,g.qualityMax);delete l.chamfer}return a.create(r.extend({},m,l))};\n/**\n         * Utility to create a compound body based on set(s) of vertices.\n         * \n         * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n         * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n         * \n         * The resulting vertices are reorientated about their centre of mass,\n         * and offset such that `body.position` corresponds to this point.\n         * \n         * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n         * To later move the centre of mass see `Body.setCentre`.\n         * \n         * Note that automatic conconcave decomposition results are not always optimal. \n         * For best results, simplify the input vertices as much as possible first.\n         * By default this function applies some addtional simplification to help.\n         * \n         * Some outputs may also require further manual processing afterwards to be robust.\n         * In particular some parts may need to be overlapped to avoid collision gaps.\n         * Thin parts and sharp points should be avoided or removed where possible.\n         *\n         * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n         * \n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method fromVertices\n         * @param {number} x\n         * @param {number} y\n         * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n         * @param {object} [options] The body options.\n         * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n         * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n         * @param {number} [minimumArea=10] Threshold when removing small parts.\n         * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n         * @return {body}\n         */i.fromVertices=function(e,t,n,i,c,u,f,d){var p,v,y,m,g,x,h,b,S,w,_,A=r.getDecomp();p=Boolean(A&&A.quickDecomp);i=i||{};y=[];c=\"undefined\"!==typeof c&&c;u=\"undefined\"!==typeof u?u:.01;f=\"undefined\"!==typeof f?f:10;d=\"undefined\"!==typeof d?d:.01;r.isArray(n[0])||(n=[n]);for(w=0;w<n.length;w+=1){x=n[w];m=o.isConvex(x);g=!m;g&&!p&&r.warnOnce(\"Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices.\");if(m||!p){x=m?o.clockwiseSort(x):o.hull(x);y.push({position:{x:e,y:t},vertices:x})}else{var P=x.map((function(e){return[e.x,e.y]}));A.makeCCW(P);false!==u&&A.removeCollinearPoints(P,u);false!==d&&A.removeDuplicatePoints&&A.removeDuplicatePoints(P,d);var C=A.quickDecomp(P);for(h=0;h<C.length;h++){var k=C[h];var M=k.map((function(e){return{x:e[0],y:e[1]}}));f>0&&o.area(M)<f||y.push({position:o.centre(M),vertices:M})}}}for(h=0;h<y.length;h++)y[h]=a.create(r.extend(y[h],i));if(c){var B=5;for(h=0;h<y.length;h++){var I=y[h];for(b=h+1;b<y.length;b++){var T=y[b];if(s.overlaps(I.bounds,T.bounds)){var R=I.vertices,E=T.vertices;for(S=0;S<I.vertices.length;S++)for(_=0;_<T.vertices.length;_++){var V=l.magnitudeSquared(l.sub(R[(S+1)%R.length],E[_])),L=l.magnitudeSquared(l.sub(R[S],E[(_+1)%E.length]));if(V<B&&L<B){R[S].isInternal=true;E[_].isInternal=true}}}}}}if(y.length>1){v=a.create(r.extend({parts:y.slice(0)},i));a.setPosition(v,{x:e,y:t});return v}return y[0]}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){\n/**\n         * Creates a mouse input.\n         * @method create\n         * @param {HTMLElement} element\n         * @return {mouse} A new mouse\n         */\ni.create=function(e){var t={};e||o.log(\"Mouse.create: element was undefined, defaulting to document.body\",\"warn\");t.element=e||document.body;t.absolute={x:0,y:0};t.position={x:0,y:0};t.mousedownPosition={x:0,y:0};t.mouseupPosition={x:0,y:0};t.offset={x:0,y:0};t.scale={x:1,y:1};t.wheelDelta=0;t.button=-1;t.pixelRatio=parseInt(t.element.getAttribute(\"data-pixel-ratio\"),10)||1;t.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null};t.mousemove=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;if(o){t.button=0;e.preventDefault()}t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.sourceEvents.mousemove=e};t.mousedown=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;if(o){t.button=0;e.preventDefault()}else t.button=e.button;t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.mousedownPosition.x=t.position.x;t.mousedownPosition.y=t.position.y;t.sourceEvents.mousedown=e};t.mouseup=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;o&&e.preventDefault();t.button=-1;t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.mouseupPosition.x=t.position.x;t.mouseupPosition.y=t.position.y;t.sourceEvents.mouseup=e};t.mousewheel=function(e){t.wheelDelta=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));e.preventDefault()};i.setElement(t,t.element);return t};\n/**\n         * Sets the element the mouse is bound to (and relative to).\n         * @method setElement\n         * @param {mouse} mouse\n         * @param {HTMLElement} element\n         */i.setElement=function(e,t){e.element=t;t.addEventListener(\"mousemove\",e.mousemove);t.addEventListener(\"mousedown\",e.mousedown);t.addEventListener(\"mouseup\",e.mouseup);t.addEventListener(\"mousewheel\",e.mousewheel);t.addEventListener(\"DOMMouseScroll\",e.mousewheel);t.addEventListener(\"touchmove\",e.mousemove);t.addEventListener(\"touchstart\",e.mousedown);t.addEventListener(\"touchend\",e.mouseup)};\n/**\n         * Clears all captured source events.\n         * @method clearSourceEvents\n         * @param {mouse} mouse\n         */i.clearSourceEvents=function(e){e.sourceEvents.mousemove=null;e.sourceEvents.mousedown=null;e.sourceEvents.mouseup=null;e.sourceEvents.mousewheel=null;e.wheelDelta=0};\n/**\n         * Sets the mouse position offset.\n         * @method setOffset\n         * @param {mouse} mouse\n         * @param {vector} offset\n         */i.setOffset=function(e,t){e.offset.x=t.x;e.offset.y=t.y;e.position.x=e.absolute.x*e.scale.x+e.offset.x;e.position.y=e.absolute.y*e.scale.y+e.offset.y};\n/**\n         * Sets the mouse position scale.\n         * @method setScale\n         * @param {mouse} mouse\n         * @param {vector} scale\n         */i.setScale=function(e,t){e.scale.x=t.x;e.scale.y=t.y;e.position.x=e.absolute.x*e.scale.x+e.offset.x;e.position.y=e.absolute.y*e.scale.y+e.offset.y};\n/**\n         * Gets the mouse position relative to an element given a screen pixel ratio.\n         * @method _getRelativeMousePosition\n         * @private\n         * @param {} event\n         * @param {} element\n         * @param {number} pixelRatio\n         * @return {}\n         */i._getRelativeMousePosition=function(e,t,n){var i,o,r=t.getBoundingClientRect(),a=document.documentElement||document.body.parentNode||document.body,s=void 0!==window.pageXOffset?window.pageXOffset:a.scrollLeft,l=void 0!==window.pageYOffset?window.pageYOffset:a.scrollTop,c=e.changedTouches;if(c){i=c[0].pageX-r.left-s;o=c[0].pageY-r.top-l}else{i=e.pageX-r.left-s;o=e.pageY-r.top-l}return{x:i/(t.clientWidth/(t.width||t.clientWidth)*n),y:o/(t.clientHeight/(t.height||t.clientHeight)*n)}}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);var r=n(8);(function(){\n/**\n         * Creates a new collision detector.\n         * @method create\n         * @param {} options\n         * @return {detector} A new collision detector\n         */\ni.create=function(e){var t={bodies:[],pairs:null};return o.extend(t,e)};\n/**\n         * Sets the list of bodies in the detector.\n         * @method setBodies\n         * @param {detector} detector\n         * @param {body[]} bodies\n         */i.setBodies=function(e,t){e.bodies=t.slice(0)};\n/**\n         * Clears the detector including its list of bodies.\n         * @method clear\n         * @param {detector} detector\n         */i.clear=function(e){e.bodies=[]};\n/**\n         * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n         * \n         * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n         * If a specific ordering is required then apply a sort to the resulting array.\n         * @method collisions\n         * @param {detector} detector\n         * @return {collision[]} collisions\n         */i.collisions=function(e){var t,n,o=[],a=e.pairs,s=e.bodies,l=s.length,c=i.canCollide,u=r.collides;s.sort(i._compareBoundsX);for(t=0;t<l;t++){var f=s[t],d=f.bounds,p=f.bounds.max.x,v=f.bounds.max.y,y=f.bounds.min.y,m=f.isStatic||f.isSleeping,g=f.parts.length,x=1===g;for(n=t+1;n<l;n++){var h=s[n],b=h.bounds;if(b.min.x>p)break;if(!(v<b.min.y||y>b.max.y)&&((!m||!h.isStatic&&!h.isSleeping)&&c(f.collisionFilter,h.collisionFilter))){var S=h.parts.length;if(x&&1===S){var w=u(f,h,a);w&&o.push(w)}else{var _=g>1?1:0,A=S>1?1:0;for(var P=_;P<g;P++){var C=f.parts[P];d=C.bounds;for(var k=A;k<S;k++){var M=h.parts[k];b=M.bounds;if(!(d.min.x>b.max.x||d.max.x<b.min.x||d.max.y<b.min.y||d.min.y>b.max.y)){w=u(C,M,a);w&&o.push(w)}}}}}}}return o};\n/**\n         * Returns `true` if both supplied collision filters will allow a collision to occur.\n         * See `body.collisionFilter` for more information.\n         * @method canCollide\n         * @param {} filterA\n         * @param {} filterB\n         * @return {bool} `true` if collision can occur\n         */i.canCollide=function(e,t){return e.group===t.group&&0!==e.group?e.group>0:0!==(e.mask&t.category)&&0!==(t.mask&e.category)};\n/**\n         * The comparison function used in the broadphase algorithm.\n         * Returns the signed delta of the bodies bounds on the x-axis.\n         * @private\n         * @method _sortCompare\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {number} The signed delta used for sorting\n         */i._compareBoundsX=function(e,t){return e.bounds.min.x-t.bounds.min.x};\n/**\n         * The array of `Matter.Body` between which the detector finds collisions.\n         * \n         * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n         * @property bodies\n         * @type body[]\n         * @default []\n         */\n/**\n         * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n         * @property pairs\n         * @type {pairs|null}\n         * @default null\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){i._registry={};\n/**\n         * Registers a plugin object so it can be resolved later by name.\n         * @method register\n         * @param plugin {} The plugin to register.\n         * @return {object} The plugin.\n         */i.register=function(e){i.isPlugin(e)||o.warn(\"Plugin.register:\",i.toString(e),\"does not implement all required fields.\");if(e.name in i._registry){var t=i._registry[e.name],n=i.versionParse(e.version).number,r=i.versionParse(t.version).number;if(n>r){o.warn(\"Plugin.register:\",i.toString(t),\"was upgraded to\",i.toString(e));i._registry[e.name]=e}else n<r?o.warn(\"Plugin.register:\",i.toString(t),\"can not be downgraded to\",i.toString(e)):e!==t&&o.warn(\"Plugin.register:\",i.toString(e),\"is already registered to different plugin object\")}else i._registry[e.name]=e;return e};\n/**\n         * Resolves a dependency to a plugin object from the registry if it exists. \n         * The `dependency` may contain a version, but only the name matters when resolving.\n         * @method resolve\n         * @param dependency {string} The dependency.\n         * @return {object} The plugin if resolved, otherwise `undefined`.\n         */i.resolve=function(e){return i._registry[i.dependencyParse(e).name]};\n/**\n         * Returns a pretty printed plugin name and version.\n         * @method toString\n         * @param plugin {} The plugin.\n         * @return {string} Pretty printed plugin name and version.\n         */i.toString=function(e){return\"string\"===typeof e?e:(e.name||\"anonymous\")+\"@\"+(e.version||e.range||\"0.0.0\")};\n/**\n         * Returns `true` if the object meets the minimum standard to be considered a plugin.\n         * This means it must define the following properties:\n         * - `name`\n         * - `version`\n         * - `install`\n         * @method isPlugin\n         * @param obj {} The obj to test.\n         * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n         */i.isPlugin=function(e){return e&&e.name&&e.version&&e.install};\n/**\n         * Returns `true` if a plugin with the given `name` been installed on `module`.\n         * @method isUsed\n         * @param module {} The module.\n         * @param name {string} The plugin name.\n         * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n         */i.isUsed=function(e,t){return e.used.indexOf(t)>-1};\n/**\n         * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n         * If `plugin.for` is not specified then it is assumed to be applicable.\n         * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n         * @method isFor\n         * @param plugin {} The plugin.\n         * @param module {} The module.\n         * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n         */i.isFor=function(e,t){var n=e.for&&i.dependencyParse(e.for);return!e.for||t.name===n.name&&i.versionSatisfies(t.version,n.range)};\n/**\n         * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n         * For installing plugins on `Matter` see the convenience function `Matter.use`.\n         * Plugins may be specified either by their name or a reference to the plugin object.\n         * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n         * Order is important, a topological sort is performed to find the best resulting order of installation.\n         * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n         * This function logs the resulting status of each dependency in the console, along with any warnings.\n         * - A green tick ✅ indicates a dependency was resolved and installed.\n         * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n         * - A red cross ❌ indicates a dependency could not be resolved.\n         * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n         * @method use\n         * @param module {} The module install plugins on.\n         * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n         */i.use=function(e,t){e.uses=(e.uses||[]).concat(t||[]);if(0!==e.uses.length){var n=i.dependencies(e),r=o.topologicalSort(n),a=[];for(var s=0;s<r.length;s+=1)if(r[s]!==e.name){var l=i.resolve(r[s]);if(l){if(!i.isUsed(e,l.name)){if(!i.isFor(l,e)){o.warn(\"Plugin.use:\",i.toString(l),\"is for\",l.for,\"but installed on\",i.toString(e)+\".\");l._warned=true}if(l.install)l.install(e);else{o.warn(\"Plugin.use:\",i.toString(l),\"does not specify an install function.\");l._warned=true}if(l._warned){a.push(\"🔶 \"+i.toString(l));delete l._warned}else a.push(\"✅ \"+i.toString(l));e.used.push(l.name)}}else a.push(\"❌ \"+r[s])}a.length>0&&o.info(a.join(\"  \"))}else o.warn(\"Plugin.use:\",i.toString(e),\"does not specify any dependencies to install.\")};\n/**\n         * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n         * @method dependencies\n         * @param module {} The module.\n         * @return {object} A dependency graph.\n         */i.dependencies=function(e,t){var n=i.dependencyParse(e),r=n.name;t=t||{};if(!(r in t)){e=i.resolve(e)||e;t[r]=o.map(e.uses||[],(function(t){i.isPlugin(t)&&i.register(t);var r=i.dependencyParse(t),a=i.resolve(t);if(a&&!i.versionSatisfies(a.version,r.range)){o.warn(\"Plugin.dependencies:\",i.toString(a),\"does not satisfy\",i.toString(r),\"used by\",i.toString(n)+\".\");a._warned=true;e._warned=true}else if(!a){o.warn(\"Plugin.dependencies:\",i.toString(t),\"used by\",i.toString(n),\"could not be resolved.\");e._warned=true}return r.name}));for(var a=0;a<t[r].length;a+=1)i.dependencies(t[r][a],t);return t}};\n/**\n         * Parses a dependency string into its components.\n         * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n         * See documentation for `Plugin.versionParse` for a description of the format.\n         * This function can also handle dependencies that are already resolved (e.g. a module object).\n         * @method dependencyParse\n         * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n         * @return {object} The dependency parsed into its components.\n         */i.dependencyParse=function(e){if(o.isString(e)){var t=/^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;t.test(e)||o.warn(\"Plugin.dependencyParse:\",e,\"is not a valid dependency string.\");return{name:e.split(\"@\")[0],range:e.split(\"@\")[1]||\"*\"}}return{name:e.name,range:e.range||e.version}};\n/**\n         * Parses a version string into its components.  \n         * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n         * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n         * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n         * Only the following range types are supported:\n         * - Tilde ranges e.g. `~1.2.3`\n         * - Caret ranges e.g. `^1.2.3`\n         * - Greater than ranges e.g. `>1.2.3`\n         * - Greater than or equal ranges e.g. `>=1.2.3`\n         * - Exact version e.g. `1.2.3`\n         * - Any version `*`\n         * @method versionParse\n         * @param range {string} The version string.\n         * @return {object} The version range parsed into its components.\n         */i.versionParse=function(e){var t=/^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;t.test(e)||o.warn(\"Plugin.versionParse:\",e,\"is not a valid version or range.\");var n=t.exec(e);var i=Number(n[4]);var r=Number(n[5]);var a=Number(n[6]);return{isRange:Boolean(n[1]||n[2]),version:n[3],range:e,operator:n[1]||n[2]||\"\",major:i,minor:r,patch:a,parts:[i,r,a],prerelease:n[7],number:1e8*i+1e4*r+a}};\n/**\n         * Returns `true` if `version` satisfies the given `range`.\n         * See documentation for `Plugin.versionParse` for a description of the format.\n         * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n         * @method versionSatisfies\n         * @param version {string} The version string.\n         * @param range {string} The range string.\n         * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n         */i.versionSatisfies=function(e,t){t=t||\"*\";var n=i.versionParse(t),o=i.versionParse(e);if(n.isRange){if(\"*\"===n.operator||\"*\"===e)return true;if(\">\"===n.operator)return o.number>n.number;if(\">=\"===n.operator)return o.number>=n.number;if(\"~\"===n.operator)return o.major===n.major&&o.minor===n.minor&&o.patch>=n.patch;if(\"^\"===n.operator)return n.major>0?o.major===n.major&&o.number>=n.number:n.minor>0?o.minor===n.minor&&o.patch>=n.patch:o.patch===n.patch}return e===t||\"*\"===e}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);var r=n(5);var a=n(1);var s=n(4);var l=n(2);var c=n(13);(function(){var e,t;if(\"undefined\"!==typeof window){e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout((function(){e(o.now())}),1e3/60)};t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame}i._goodFps=30;i._goodDelta=1e3/60;\n/**\n         * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {object} [options]\n         * @return {render} A new renderer\n         */i.create=function(e){var t={controller:i,engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:\"#14151f\",wireframeBackground:\"#14151f\",hasBounds:!!e.bounds,enabled:true,wireframes:true,showSleeping:true,showDebug:false,showStats:false,showPerformance:false,showBounds:false,showVelocity:false,showCollisions:false,showSeparations:false,showAxes:false,showPositions:false,showAngleIndicator:false,showIds:false,showVertexNumbers:false,showConvexHulls:false,showInternalEdges:false,showMousePosition:false}};var n=o.extend(t,e);if(n.canvas){n.canvas.width=n.options.width||n.canvas.width;n.canvas.height=n.options.height||n.canvas.height}n.mouse=e.mouse;n.engine=e.engine;n.canvas=n.canvas||_createCanvas(n.options.width,n.options.height);n.context=n.canvas.getContext(\"2d\");n.textures={};n.bounds=n.bounds||{min:{x:0,y:0},max:{x:n.canvas.width,y:n.canvas.height}};n.options.showBroadphase=false;1!==n.options.pixelRatio&&i.setPixelRatio(n,n.options.pixelRatio);o.isElement(n.element)?n.element.appendChild(n.canvas):n.canvas.parentNode||o.log(\"Render.create: options.element was undefined, render.canvas was created but not appended\",\"warn\");return n};\n/**\n         * Continuously updates the render canvas on the `requestAnimationFrame` event.\n         * @method run\n         * @param {render} render\n         */i.run=function(t){(function loop(n){t.frameRequestId=e(loop);_updateTiming(t,n);i.world(t,n);(t.options.showStats||t.options.showDebug)&&i.stats(t,t.context,n);(t.options.showPerformance||t.options.showDebug)&&i.performance(t,t.context,n)})()};\n/**\n         * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n         * @method stop\n         * @param {render} render\n         */i.stop=function(e){t(e.frameRequestId)};\n/**\n         * Sets the pixel ratio of the renderer and updates the canvas.\n         * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n         * @method setPixelRatio\n         * @param {render} render\n         * @param {number} pixelRatio\n         */i.setPixelRatio=function(e,t){var n=e.options,i=e.canvas;\"auto\"===t&&(t=_getPixelRatio(i));n.pixelRatio=t;i.setAttribute(\"data-pixel-ratio\",t);i.width=n.width*t;i.height=n.height*t;i.style.width=n.width+\"px\";i.style.height=n.height+\"px\"};\n/**\n         * Positions and sizes the viewport around the given object bounds.\n         * Objects must have at least one of the following properties:\n         * - `object.bounds`\n         * - `object.position`\n         * - `object.min` and `object.max`\n         * - `object.x` and `object.y`\n         * @method lookAt\n         * @param {render} render\n         * @param {object[]} objects\n         * @param {vector} [padding]\n         * @param {bool} [center=true]\n         */i.lookAt=function(e,t,n,i){i=\"undefined\"===typeof i||i;t=o.isArray(t)?t:[t];n=n||{x:0,y:0};var r={min:{x:Infinity,y:Infinity},max:{x:-Infinity,y:-Infinity}};for(var a=0;a<t.length;a+=1){var s=t[a],l=s.bounds?s.bounds.min:s.min||s.position||s,u=s.bounds?s.bounds.max:s.max||s.position||s;if(l&&u){l.x<r.min.x&&(r.min.x=l.x);u.x>r.max.x&&(r.max.x=u.x);l.y<r.min.y&&(r.min.y=l.y);u.y>r.max.y&&(r.max.y=u.y)}}var f=r.max.x-r.min.x+2*n.x,d=r.max.y-r.min.y+2*n.y,p=e.canvas.height,v=e.canvas.width,y=v/p,m=f/d,g=1,x=1;m>y?x=m/y:g=y/m;e.options.hasBounds=true;e.bounds.min.x=r.min.x;e.bounds.max.x=r.min.x+f*g;e.bounds.min.y=r.min.y;e.bounds.max.y=r.min.y+d*x;if(i){e.bounds.min.x+=.5*f-f*g*.5;e.bounds.max.x+=.5*f-f*g*.5;e.bounds.min.y+=.5*d-d*x*.5;e.bounds.max.y+=.5*d-d*x*.5}e.bounds.min.x-=n.x;e.bounds.max.x-=n.x;e.bounds.min.y-=n.y;e.bounds.max.y-=n.y;if(e.mouse){c.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.canvas.width,y:(e.bounds.max.y-e.bounds.min.y)/e.canvas.height});c.setOffset(e.mouse,e.bounds.min)}};\n/**\n         * Applies viewport transforms based on `render.bounds` to a render context.\n         * @method startViewTransform\n         * @param {render} render\n         */i.startViewTransform=function(e){var t=e.bounds.max.x-e.bounds.min.x,n=e.bounds.max.y-e.bounds.min.y,i=t/e.options.width,o=n/e.options.height;e.context.setTransform(e.options.pixelRatio/i,0,0,e.options.pixelRatio/o,0,0);e.context.translate(-e.bounds.min.x,-e.bounds.min.y)};\n/**\n         * Resets all transforms on the render context.\n         * @method endViewTransform\n         * @param {render} render\n         */i.endViewTransform=function(e){e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)};\n/**\n         * Renders the given `engine`'s `Matter.World` object.\n         * This is the entry point for all rendering and should be called every time the scene changes.\n         * @method world\n         * @param {render} render\n         */i.world=function(e,t){var n=o.now(),u=e.engine,f=u.world,d=e.canvas,p=e.context,v=e.options,y=e.timing;var m,g=r.allBodies(f),x=r.allConstraints(f),h=v.wireframes?v.wireframeBackground:v.background,b=[],S=[];var w={timestamp:u.timing.timestamp};s.trigger(e,\"beforeRender\",w);e.currentBackground!==h&&_applyBackground(e,h);p.globalCompositeOperation=\"source-in\";p.fillStyle=\"transparent\";p.fillRect(0,0,d.width,d.height);p.globalCompositeOperation=\"source-over\";if(v.hasBounds){for(m=0;m<g.length;m++){var _=g[m];a.overlaps(_.bounds,e.bounds)&&b.push(_)}for(m=0;m<x.length;m++){var A=x[m],P=A.bodyA,C=A.bodyB,k=A.pointA,M=A.pointB;P&&(k=l.add(P.position,A.pointA));C&&(M=l.add(C.position,A.pointB));k&&M&&((a.contains(e.bounds,k)||a.contains(e.bounds,M))&&S.push(A))}i.startViewTransform(e);if(e.mouse){c.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.options.width,y:(e.bounds.max.y-e.bounds.min.y)/e.options.height});c.setOffset(e.mouse,e.bounds.min)}}else{S=x;b=g;1!==e.options.pixelRatio&&e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)}if(!v.wireframes||u.enableSleeping&&v.showSleeping)i.bodies(e,b,p);else{v.showConvexHulls&&i.bodyConvexHulls(e,b,p);i.bodyWireframes(e,b,p)}v.showBounds&&i.bodyBounds(e,b,p);(v.showAxes||v.showAngleIndicator)&&i.bodyAxes(e,b,p);v.showPositions&&i.bodyPositions(e,b,p);v.showVelocity&&i.bodyVelocity(e,b,p);v.showIds&&i.bodyIds(e,b,p);v.showSeparations&&i.separations(e,u.pairs.list,p);v.showCollisions&&i.collisions(e,u.pairs.list,p);v.showVertexNumbers&&i.vertexNumbers(e,b,p);v.showMousePosition&&i.mousePosition(e,e.mouse,p);i.constraints(S,p);v.hasBounds&&i.endViewTransform(e);s.trigger(e,\"afterRender\",w);y.lastElapsed=o.now()-n};\n/**\n         * Renders statistics about the engine and world useful for debugging.\n         * @private\n         * @method stats\n         * @param {render} render\n         * @param {RenderingContext} context\n         * @param {Number} time\n         */i.stats=function(e,t,n){var i=e.engine,o=i.world,a=r.allBodies(o),s=0,l=55,c=44,u=0,f=0;for(var d=0;d<a.length;d+=1)s+=a[d].parts.length;var p={Part:s,Body:a.length,Cons:r.allConstraints(o).length,Comp:r.allComposites(o).length,Pair:i.pairs.list.length};t.fillStyle=\"#0e0f19\";t.fillRect(u,f,5.5*l,c);t.font=\"12px Arial\";t.textBaseline=\"top\";t.textAlign=\"right\";for(var v in p){var y=p[v];t.fillStyle=\"#aaa\";t.fillText(v,u+l,f+8);t.fillStyle=\"#eee\";t.fillText(y,u+l,f+26);u+=l}};\n/**\n         * Renders engine and render performance information.\n         * @private\n         * @method performance\n         * @param {render} render\n         * @param {RenderingContext} context\n         */i.performance=function(e,t){var n=e.engine,o=e.timing,r=o.deltaHistory,a=o.elapsedHistory,s=o.timestampElapsedHistory,l=o.engineDeltaHistory,c=o.engineElapsedHistory,u=n.timing.lastDelta;var f=_mean(r),d=_mean(a),p=_mean(l),v=_mean(c),y=_mean(s),m=y/f||0,g=1e3/f||0;var x=4,h=12,b=60,S=34,w=10,_=69;t.fillStyle=\"#0e0f19\";t.fillRect(0,50,4*h+5*b+22,S);i.status(t,w,_,b,x,r.length,Math.round(g)+\" fps\",g/i._goodFps,(function(e){return r[e]/f-1}));i.status(t,w+h+b,_,b,x,l.length,u.toFixed(2)+\" dt\",i._goodDelta/u,(function(e){return l[e]/p-1}));i.status(t,w+2*(h+b),_,b,x,c.length,v.toFixed(2)+\" ut\",1-v/i._goodFps,(function(e){return c[e]/v-1}));i.status(t,w+3*(h+b),_,b,x,a.length,d.toFixed(2)+\" rt\",1-d/i._goodFps,(function(e){return a[e]/d-1}));i.status(t,w+4*(h+b),_,b,x,s.length,m.toFixed(2)+\" x\",m*m*m,(function(e){return(s[e]/r[e]/m||0)-1}))};\n/**\n         * Renders a label, indicator and a chart.\n         * @private\n         * @method status\n         * @param {RenderingContext} context\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {number} count\n         * @param {string} label\n         * @param {string} indicator\n         * @param {function} plotY\n         */i.status=function(e,t,n,i,r,a,s,l,c){e.strokeStyle=\"#888\";e.fillStyle=\"#444\";e.lineWidth=1;e.fillRect(t,n+7,i,1);e.beginPath();e.moveTo(t,n+7-r*o.clamp(.4*c(0),-2,2));for(var u=0;u<i;u+=1)e.lineTo(t+u,n+7-(u<a?r*o.clamp(.4*c(u),-2,2):0));e.stroke();e.fillStyle=\"hsl(\"+o.clamp(25+95*l,0,120)+\",100%,60%)\";e.fillRect(t,n-7,4,4);e.font=\"12px Arial\";e.textBaseline=\"middle\";e.textAlign=\"right\";e.fillStyle=\"#eee\";e.fillText(s,t+i,n-5)};\n/**\n         * Description\n         * @private\n         * @method constraints\n         * @param {constraint[]} constraints\n         * @param {RenderingContext} context\n         */i.constraints=function(e,t){var n=t;for(var i=0;i<e.length;i++){var r=e[i];if(r.render.visible&&r.pointA&&r.pointB){var a,s,c=r.bodyA,u=r.bodyB;a=c?l.add(c.position,r.pointA):r.pointA;if(\"pin\"===r.render.type){n.beginPath();n.arc(a.x,a.y,3,0,2*Math.PI);n.closePath()}else{s=u?l.add(u.position,r.pointB):r.pointB;n.beginPath();n.moveTo(a.x,a.y);if(\"spring\"===r.render.type){var f,d=l.sub(s,a),p=l.perp(l.normalise(d)),v=Math.ceil(o.clamp(r.length/5,12,20));for(var y=1;y<v;y+=1){f=y%2===0?1:-1;n.lineTo(a.x+d.x*(y/v)+p.x*f*4,a.y+d.y*(y/v)+p.y*f*4)}}n.lineTo(s.x,s.y)}if(r.render.lineWidth){n.lineWidth=r.render.lineWidth;n.strokeStyle=r.render.strokeStyle;n.stroke()}if(r.render.anchors){n.fillStyle=r.render.strokeStyle;n.beginPath();n.arc(a.x,a.y,3,0,2*Math.PI);n.arc(s.x,s.y,3,0,2*Math.PI);n.closePath();n.fill()}}}};\n/**\n         * Description\n         * @private\n         * @method bodies\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodies=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options),c=l.showInternalEdges||!l.wireframes;for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(a=i.parts.length>1?1:0;a<i.parts.length;a++){o=i.parts[a];if(o.render.visible){l.showSleeping&&i.isSleeping?s.globalAlpha=.5*o.render.opacity:1!==o.render.opacity&&(s.globalAlpha=o.render.opacity);if(o.render.sprite&&o.render.sprite.texture&&!l.wireframes){var u=o.render.sprite,f=_getTexture(e,u.texture);s.translate(o.position.x,o.position.y);s.rotate(o.angle);s.drawImage(f,f.width*-u.xOffset*u.xScale,f.height*-u.yOffset*u.yScale,f.width*u.xScale,f.height*u.yScale);s.rotate(-o.angle);s.translate(-o.position.x,-o.position.y)}else{if(o.circleRadius){s.beginPath();s.arc(o.position.x,o.position.y,o.circleRadius,0,2*Math.PI)}else{s.beginPath();s.moveTo(o.vertices[0].x,o.vertices[0].y);for(var d=1;d<o.vertices.length;d++){!o.vertices[d-1].isInternal||c?s.lineTo(o.vertices[d].x,o.vertices[d].y):s.moveTo(o.vertices[d].x,o.vertices[d].y);o.vertices[d].isInternal&&!c&&s.moveTo(o.vertices[(d+1)%o.vertices.length].x,o.vertices[(d+1)%o.vertices.length].y)}s.lineTo(o.vertices[0].x,o.vertices[0].y);s.closePath()}if(l.wireframes){s.lineWidth=1;s.strokeStyle=\"#bbb\";s.stroke()}else{s.fillStyle=o.render.fillStyle;if(o.render.lineWidth){s.lineWidth=o.render.lineWidth;s.strokeStyle=o.render.strokeStyle;s.stroke()}s.fill()}}s.globalAlpha=1}}}};\n/**\n         * Optimised method for drawing body wireframes in one pass\n         * @private\n         * @method bodyWireframes\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyWireframes=function(e,t,n){var i,o,r,a,s,l=n,c=e.options.showInternalEdges;l.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(s=i.parts.length>1?1:0;s<i.parts.length;s++){o=i.parts[s];l.moveTo(o.vertices[0].x,o.vertices[0].y);for(a=1;a<o.vertices.length;a++){!o.vertices[a-1].isInternal||c?l.lineTo(o.vertices[a].x,o.vertices[a].y):l.moveTo(o.vertices[a].x,o.vertices[a].y);o.vertices[a].isInternal&&!c&&l.moveTo(o.vertices[(a+1)%o.vertices.length].x,o.vertices[(a+1)%o.vertices.length].y)}l.lineTo(o.vertices[0].x,o.vertices[0].y)}}l.lineWidth=1;l.strokeStyle=\"#bbb\";l.stroke()};\n/**\n         * Optimised method for drawing body convex hull wireframes in one pass\n         * @private\n         * @method bodyConvexHulls\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyConvexHulls=function(e,t,n){var i,o,r,a=n;a.beginPath();for(o=0;o<t.length;o++){i=t[o];if(i.render.visible&&1!==i.parts.length){a.moveTo(i.vertices[0].x,i.vertices[0].y);for(r=1;r<i.vertices.length;r++)a.lineTo(i.vertices[r].x,i.vertices[r].y);a.lineTo(i.vertices[0].x,i.vertices[0].y)}}a.lineWidth=1;a.strokeStyle=\"rgba(255,255,255,0.2)\";a.stroke()};\n/**\n         * Renders body vertex numbers.\n         * @private\n         * @method vertexNumbers\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.vertexNumbers=function(e,t,n){var i,o,r,a=n;for(i=0;i<t.length;i++){var s=t[i].parts;for(r=s.length>1?1:0;r<s.length;r++){var l=s[r];for(o=0;o<l.vertices.length;o++){a.fillStyle=\"rgba(255,255,255,0.2)\";a.fillText(i+\"_\"+o,l.position.x+.8*(l.vertices[o].x-l.position.x),l.position.y+.8*(l.vertices[o].y-l.position.y))}}}};\n/**\n         * Renders mouse position.\n         * @private\n         * @method mousePosition\n         * @param {render} render\n         * @param {mouse} mouse\n         * @param {RenderingContext} context\n         */i.mousePosition=function(e,t,n){var i=n;i.fillStyle=\"rgba(255,255,255,0.8)\";i.fillText(t.position.x+\"  \"+t.position.y,t.position.x+5,t.position.y-5)};\n/**\n         * Draws body bounds\n         * @private\n         * @method bodyBounds\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyBounds=function(e,t,n){var i=n,o=(e.engine,e.options);i.beginPath();for(var r=0;r<t.length;r++){var a=t[r];if(a.render.visible){var s=t[r].parts;for(var l=s.length>1?1:0;l<s.length;l++){var c=s[l];i.rect(c.bounds.min.x,c.bounds.min.y,c.bounds.max.x-c.bounds.min.x,c.bounds.max.y-c.bounds.min.y)}}}o.wireframes?i.strokeStyle=\"rgba(255,255,255,0.08)\":i.strokeStyle=\"rgba(0,0,0,0.1)\";i.lineWidth=1;i.stroke()};\n/**\n         * Draws body angle indicators and axes\n         * @private\n         * @method bodyAxes\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyAxes=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options);s.beginPath();for(o=0;o<t.length;o++){var c=t[o],u=c.parts;if(c.render.visible)if(l.showAxes)for(r=u.length>1?1:0;r<u.length;r++){i=u[r];for(a=0;a<i.axes.length;a++){var f=i.axes[a];s.moveTo(i.position.x,i.position.y);s.lineTo(i.position.x+20*f.x,i.position.y+20*f.y)}}else for(r=u.length>1?1:0;r<u.length;r++){i=u[r];for(a=0;a<i.axes.length;a++){s.moveTo(i.position.x,i.position.y);s.lineTo((i.vertices[0].x+i.vertices[i.vertices.length-1].x)/2,(i.vertices[0].y+i.vertices[i.vertices.length-1].y)/2)}}}if(l.wireframes){s.strokeStyle=\"indianred\";s.lineWidth=1}else{s.strokeStyle=\"rgba(255, 255, 255, 0.4)\";s.globalCompositeOperation=\"overlay\";s.lineWidth=2}s.stroke();s.globalCompositeOperation=\"source-over\"};\n/**\n         * Draws body positions\n         * @private\n         * @method bodyPositions\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyPositions=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options);s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(a=0;a<i.parts.length;a++){o=i.parts[a];s.arc(o.position.x,o.position.y,3,0,2*Math.PI,false);s.closePath()}}l.wireframes?s.fillStyle=\"indianred\":s.fillStyle=\"rgba(0,0,0,0.5)\";s.fill();s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible){s.arc(i.positionPrev.x,i.positionPrev.y,2,0,2*Math.PI,false);s.closePath()}}s.fillStyle=\"rgba(255,165,0,0.8)\";s.fill()};\n/**\n         * Draws body velocity\n         * @private\n         * @method bodyVelocity\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyVelocity=function(e,t,n){var i=n;i.beginPath();for(var o=0;o<t.length;o++){var r=t[o];if(r.render.visible){i.moveTo(r.position.x,r.position.y);i.lineTo(r.position.x+2*(r.position.x-r.positionPrev.x),r.position.y+2*(r.position.y-r.positionPrev.y))}}i.lineWidth=3;i.strokeStyle=\"cornflowerblue\";i.stroke()};\n/**\n         * Draws body ids\n         * @private\n         * @method bodyIds\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyIds=function(e,t,n){var i,o,r=n;for(i=0;i<t.length;i++)if(t[i].render.visible){var a=t[i].parts;for(o=a.length>1?1:0;o<a.length;o++){var s=a[o];r.font=\"12px Arial\";r.fillStyle=\"rgba(255,255,255,0.5)\";r.fillText(s.id,s.position.x+10,s.position.y-10)}}};\n/**\n         * Description\n         * @private\n         * @method collisions\n         * @param {render} render\n         * @param {pair[]} pairs\n         * @param {RenderingContext} context\n         */i.collisions=function(e,t,n){var i,o,r,a,s=n,l=e.options;s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.isActive){o=i.collision;for(a=0;a<i.activeContacts.length;a++){var c=i.activeContacts[a],u=c.vertex;s.rect(u.x-1.5,u.y-1.5,3.5,3.5)}}}l.wireframes?s.fillStyle=\"rgba(255,255,255,0.7)\":s.fillStyle=\"orange\";s.fill();s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.isActive){o=i.collision;if(i.activeContacts.length>0){var f=i.activeContacts[0].vertex.x,d=i.activeContacts[0].vertex.y;if(2===i.activeContacts.length){f=(i.activeContacts[0].vertex.x+i.activeContacts[1].vertex.x)/2;d=(i.activeContacts[0].vertex.y+i.activeContacts[1].vertex.y)/2}o.bodyB===o.supports[0].body||true===o.bodyA.isStatic?s.moveTo(f-8*o.normal.x,d-8*o.normal.y):s.moveTo(f+8*o.normal.x,d+8*o.normal.y);s.lineTo(f,d)}}}l.wireframes?s.strokeStyle=\"rgba(255,165,0,0.7)\":s.strokeStyle=\"orange\";s.lineWidth=1;s.stroke()};\n/**\n         * Description\n         * @private\n         * @method separations\n         * @param {render} render\n         * @param {pair[]} pairs\n         * @param {RenderingContext} context\n         */i.separations=function(e,t,n){var i,o,r,a,s,l=n,c=e.options;l.beginPath();for(s=0;s<t.length;s++){i=t[s];if(i.isActive){o=i.collision;r=o.bodyA;a=o.bodyB;var u=1;a.isStatic||r.isStatic||(u=.5);a.isStatic&&(u=0);l.moveTo(a.position.x,a.position.y);l.lineTo(a.position.x-o.penetration.x*u,a.position.y-o.penetration.y*u);u=1;a.isStatic||r.isStatic||(u=.5);r.isStatic&&(u=0);l.moveTo(r.position.x,r.position.y);l.lineTo(r.position.x+o.penetration.x*u,r.position.y+o.penetration.y*u)}}c.wireframes?l.strokeStyle=\"rgba(255,165,0,0.5)\":l.strokeStyle=\"orange\";l.stroke()};\n/**\n         * Description\n         * @private\n         * @method inspector\n         * @param {inspector} inspector\n         * @param {RenderingContext} context\n         */i.inspector=function(e,t){e.engine;var n,i=e.selected,o=e.render,r=o.options;if(r.hasBounds){var a=o.bounds.max.x-o.bounds.min.x,s=o.bounds.max.y-o.bounds.min.y,l=a/o.options.width,c=s/o.options.height;t.scale(1/l,1/c);t.translate(-o.bounds.min.x,-o.bounds.min.y)}for(var u=0;u<i.length;u++){var f=i[u].data;t.translate(.5,.5);t.lineWidth=1;t.strokeStyle=\"rgba(255,165,0,0.9)\";t.setLineDash([1,2]);switch(f.type){case\"body\":n=f.bounds;t.beginPath();t.rect(Math.floor(n.min.x-3),Math.floor(n.min.y-3),Math.floor(n.max.x-n.min.x+6),Math.floor(n.max.y-n.min.y+6));t.closePath();t.stroke();break;case\"constraint\":var d=f.pointA;f.bodyA&&(d=f.pointB);t.beginPath();t.arc(d.x,d.y,10,0,2*Math.PI);t.closePath();t.stroke();break}t.setLineDash([]);t.translate(-.5,-.5)}if(null!==e.selectStart){t.translate(.5,.5);t.lineWidth=1;t.strokeStyle=\"rgba(255,165,0,0.6)\";t.fillStyle=\"rgba(255,165,0,0.1)\";n=e.selectBounds;t.beginPath();t.rect(Math.floor(n.min.x),Math.floor(n.min.y),Math.floor(n.max.x-n.min.x),Math.floor(n.max.y-n.min.y));t.closePath();t.stroke();t.fill();t.translate(-.5,-.5)}r.hasBounds&&t.setTransform(1,0,0,1,0,0)};\n/**\n         * Updates render timing.\n         * @method _updateTiming\n         * @private\n         * @param {render} render\n         * @param {number} time\n         */var _updateTiming=function(e,t){var n=e.engine,o=e.timing,r=o.historySize,a=n.timing.timestamp;o.delta=t-o.lastTime||i._goodDelta;o.lastTime=t;o.timestampElapsed=a-o.lastTimestamp||0;o.lastTimestamp=a;o.deltaHistory.unshift(o.delta);o.deltaHistory.length=Math.min(o.deltaHistory.length,r);o.engineDeltaHistory.unshift(n.timing.lastDelta);o.engineDeltaHistory.length=Math.min(o.engineDeltaHistory.length,r);o.timestampElapsedHistory.unshift(o.timestampElapsed);o.timestampElapsedHistory.length=Math.min(o.timestampElapsedHistory.length,r);o.engineElapsedHistory.unshift(n.timing.lastElapsed);o.engineElapsedHistory.length=Math.min(o.engineElapsedHistory.length,r);o.elapsedHistory.unshift(o.lastElapsed);o.elapsedHistory.length=Math.min(o.elapsedHistory.length,r)};\n/**\n         * Returns the mean value of the given numbers.\n         * @method _mean\n         * @private\n         * @param {Number[]} values\n         * @return {Number} the mean of given values\n         */var _mean=function(e){var t=0;for(var n=0;n<e.length;n+=1)t+=e[n];return t/e.length||0};\n/**\n         * @method _createCanvas\n         * @private\n         * @param {} width\n         * @param {} height\n         * @return canvas\n         */var _createCanvas=function(e,t){var n=document.createElement(\"canvas\");n.width=e;n.height=t;n.oncontextmenu=function(){return false};n.onselectstart=function(){return false};return n};\n/**\n         * Gets the pixel ratio of the canvas.\n         * @method _getPixelRatio\n         * @private\n         * @param {HTMLElement} canvas\n         * @return {Number} pixel ratio\n         */var _getPixelRatio=function(e){var t=e.getContext(\"2d\"),n=window.devicePixelRatio||1,i=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return n/i};\n/**\n         * Gets the requested texture (an Image) via its path\n         * @method _getTexture\n         * @private\n         * @param {render} render\n         * @param {string} imagePath\n         * @return {Image} texture\n         */var _getTexture=function(e,t){var n=e.textures[t];if(n)return n;n=e.textures[t]=new Image;n.src=t;return n};\n/**\n         * Applies the background to the canvas using CSS.\n         * @method applyBackground\n         * @private\n         * @param {render} render\n         * @param {string} background\n         */var _applyBackground=function(e,t){var n=t;/(jpg|gif|png)$/.test(t)&&(n=\"url(\"+t+\")\");e.canvas.style.background=n;e.canvas.style.backgroundSize=\"contain\";e.currentBackground=t};\n/**\n        * Fired before rendering\n        *\n        * @event beforeRender\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after rendering\n        *\n        * @event afterRender\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A back-reference to the `Matter.Render` module.\n         *\n         * @property controller\n         * @type render\n         */\n/**\n         * A reference to the `Matter.Engine` instance to be used.\n         *\n         * @property engine\n         * @type engine\n         */\n/**\n         * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n         *\n         * @property element\n         * @type HTMLElement\n         * @default null\n         */\n/**\n         * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n         *\n         * @property canvas\n         * @type HTMLCanvasElement\n         * @default null\n         */\n/**\n         * A `Bounds` object that specifies the drawing view region.\n         * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n         * This allows for creating views that can pan or zoom around the scene.\n         * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n         *\n         * @property bounds\n         * @type bounds\n         */\n/**\n         * The 2d rendering context from the `render.canvas` element.\n         *\n         * @property context\n         * @type CanvasRenderingContext2D\n         */\n/**\n         * The sprite texture cache.\n         *\n         * @property textures\n         * @type {}\n         */\n/**\n         * The mouse to render if `render.options.showMousePosition` is enabled.\n         *\n         * @property mouse\n         * @type mouse\n         * @default null\n         */\n/**\n         * The configuration options of the renderer.\n         *\n         * @property options\n         * @type {}\n         */\n/**\n         * The target width in pixels of the `render.canvas` to be created.\n         * See also the `options.pixelRatio` property to change render quality.\n         *\n         * @property options.width\n         * @type number\n         * @default 800\n         */\n/**\n         * The target height in pixels of the `render.canvas` to be created.\n         * See also the `options.pixelRatio` property to change render quality.\n         *\n         * @property options.height\n         * @type number\n         * @default 600\n         */\n/**\n         * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n         *\n         * @property options.pixelRatio\n         * @type number\n         * @default 1\n         */\n/**\n         * A CSS background color string to use when `render.options.wireframes` is disabled.\n         * This may be also set to `'transparent'` or equivalent.\n         *\n         * @property options.background\n         * @type string\n         * @default '#14151f'\n         */\n/**\n         * A CSS background color string to use when `render.options.wireframes` is enabled.\n         * This may be also set to `'transparent'` or equivalent.\n         *\n         * @property options.wireframeBackground\n         * @type string\n         * @default '#14151f'\n         */\n/**\n         * A flag that specifies if `render.bounds` should be used when rendering.\n         *\n         * @property options.hasBounds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable all debug information overlays together.  \n         * This includes and has priority over the values of:\n         *\n         * - `render.options.showStats`\n         * - `render.options.showPerformance`\n         *\n         * @property options.showDebug\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the engine stats info overlay.  \n         * From left to right, the values shown are:\n         *\n         * - body parts total\n         * - body total\n         * - constraints total\n         * - composites total\n         * - collision pairs total\n         *\n         * @property options.showStats\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable performance charts.  \n         * From left to right, the values shown are:\n         *\n         * - average render frequency (e.g. 60 fps)\n         * - exact engine delta time used for last update (e.g. 16.66ms)\n         * - average engine execution duration (e.g. 5.00ms)\n         * - average render execution duration (e.g. 0.40ms)\n         * - average effective play speed (e.g. '1.00x' is 'real-time')\n         *\n         * Each value is recorded over a fixed sample of past frames (60 frames).\n         *\n         * A chart shown below each value indicates the variance from the average over the sample.\n         * The more stable or fixed the value is the flatter the chart will appear.\n         *\n         * @property options.showPerformance\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable rendering entirely.\n         *\n         * @property options.enabled\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n         *\n         * @property options.wireframes\n         * @type boolean\n         * @default true\n         */\n/**\n         * A flag to enable or disable sleeping bodies indicators.\n         *\n         * @property options.showSleeping\n         * @type boolean\n         * @default true\n         */\n/**\n         * A flag to enable or disable the debug information overlay.\n         *\n         * @property options.showDebug\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the collision broadphase debug overlay.\n         *\n         * @deprecated no longer implemented\n         * @property options.showBroadphase\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body bounds debug overlay.\n         *\n         * @property options.showBounds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body velocity debug overlay.\n         *\n         * @property options.showVelocity\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body collisions debug overlay.\n         *\n         * @property options.showCollisions\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the collision resolver separations debug overlay.\n         *\n         * @property options.showSeparations\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body axes debug overlay.\n         *\n         * @property options.showAxes\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body positions debug overlay.\n         *\n         * @property options.showPositions\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body angle debug overlay.\n         *\n         * @property options.showAngleIndicator\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body and part ids debug overlay.\n         *\n         * @property options.showIds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body vertex numbers debug overlay.\n         *\n         * @property options.showVertexNumbers\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body convex hulls debug overlay.\n         *\n         * @property options.showConvexHulls\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body internal edges debug overlay.\n         *\n         * @property options.showInternalEdges\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the mouse position debug overlay.\n         *\n         * @property options.showMousePosition\n         * @type boolean\n         * @default false\n         */})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new contact.\n         * @method create\n         * @param {vertex} vertex\n         * @return {contact} A new contact\n         */\nn.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}})()},function(e,t,n){var i={};e.exports=i;var o=n(7);var r=n(19);var a=n(14);var s=n(20);var l=n(4);var c=n(5);var u=n(10);var f=n(0);var d=n(6);(function(){\n/**\n         * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {object} [options]\n         * @return {engine} engine\n         */\ni.create=function(e){e=e||{};var t={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:false,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}};var n=f.extend(t,e);n.world=e.world||c.create({label:\"World\"});n.pairs=e.pairs||s.create();n.detector=e.detector||a.create();n.grid={buckets:[]};n.world.gravity=n.gravity;n.broadphase=n.grid;n.metrics={};return n};\n/**\n         * Moves the simulation forward in time by `delta` ms.\n         * The `correction` argument is an optional `Number` that specifies the time correction factor to apply to the update.\n         * This can help improve the accuracy of the simulation in cases where `delta` is changing between updates.\n         * The value of `correction` is defined as `delta / lastDelta`, i.e. the percentage change of `delta` over the last step.\n         * Therefore the value is always `1` (no correction) when `delta` constant (or when no correction is desired, which is the default).\n         * See the paper on <a href=\"http://lonesock.net/article/verlet.html\">Time Corrected Verlet</a> for more information.\n         *\n         * Triggers `beforeUpdate` and `afterUpdate` events.\n         * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n         * @method update\n         * @param {engine} engine\n         * @param {number} [delta=16.666]\n         * @param {number} [correction=1]\n         */i.update=function(e,t,n){var d=f.now();t=t||1e3/60;n=n||1;var p,v=e.world,y=e.detector,m=e.pairs,g=e.timing,x=g.timestamp;g.timestamp+=t*g.timeScale;g.lastDelta=t*g.timeScale;var h={timestamp:g.timestamp};l.trigger(e,\"beforeUpdate\",h);var b=c.allBodies(v),S=c.allConstraints(v);v.isModified&&a.setBodies(y,b);v.isModified&&c.setModified(v,false,false,true);e.enableSleeping&&o.update(b,g.timeScale);i._bodiesApplyGravity(b,e.gravity);i._bodiesUpdate(b,t,g.timeScale,n,v.bounds);u.preSolveAll(b);for(p=0;p<e.constraintIterations;p++)u.solveAll(S,g.timeScale);u.postSolveAll(b);y.pairs=e.pairs;var w=a.collisions(y);s.update(m,w,x);e.enableSleeping&&o.afterCollisions(m.list,g.timeScale);m.collisionStart.length>0&&l.trigger(e,\"collisionStart\",{pairs:m.collisionStart});r.preSolvePosition(m.list);for(p=0;p<e.positionIterations;p++)r.solvePosition(m.list,g.timeScale);r.postSolvePosition(b);u.preSolveAll(b);for(p=0;p<e.constraintIterations;p++)u.solveAll(S,g.timeScale);u.postSolveAll(b);r.preSolveVelocity(m.list);for(p=0;p<e.velocityIterations;p++)r.solveVelocity(m.list,g.timeScale);m.collisionActive.length>0&&l.trigger(e,\"collisionActive\",{pairs:m.collisionActive});m.collisionEnd.length>0&&l.trigger(e,\"collisionEnd\",{pairs:m.collisionEnd});i._bodiesClearForces(b);l.trigger(e,\"afterUpdate\",h);e.timing.lastElapsed=f.now()-d;return e};\n/**\n         * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n         * @method merge\n         * @param {engine} engineA\n         * @param {engine} engineB\n         */i.merge=function(e,t){f.extend(e,t);if(t.world){e.world=t.world;i.clear(e);var n=c.allBodies(e.world);for(var r=0;r<n.length;r++){var a=n[r];o.set(a,false);a.id=f.nextId()}}};\n/**\n         * Clears the engine pairs and detector.\n         * @method clear\n         * @param {engine} engine\n         */i.clear=function(e){s.clear(e.pairs);a.clear(e.detector)};\n/**\n         * Zeroes the `body.force` and `body.torque` force buffers.\n         * @method _bodiesClearForces\n         * @private\n         * @param {body[]} bodies\n         */i._bodiesClearForces=function(e){for(var t=0;t<e.length;t++){var n=e[t];n.force.x=0;n.force.y=0;n.torque=0}};\n/**\n         * Applys a mass dependant force to all given bodies.\n         * @method _bodiesApplyGravity\n         * @private\n         * @param {body[]} bodies\n         * @param {vector} gravity\n         */i._bodiesApplyGravity=function(e,t){var n=\"undefined\"!==typeof t.scale?t.scale:.001;if((0!==t.x||0!==t.y)&&0!==n)for(var i=0;i<e.length;i++){var o=e[i];if(!o.isStatic&&!o.isSleeping){o.force.y+=o.mass*t.y*n;o.force.x+=o.mass*t.x*n}}};\n/**\n         * Applys `Body.update` to all given `bodies`.\n         * @method _bodiesUpdate\n         * @private\n         * @param {body[]} bodies\n         * @param {number} deltaTime \n         * The amount of time elapsed between updates\n         * @param {number} timeScale\n         * @param {number} correction \n         * The Verlet correction factor (deltaTime / lastDeltaTime)\n         * @param {bounds} worldBounds\n         */i._bodiesUpdate=function(e,t,n,i,o){for(var r=0;r<e.length;r++){var a=e[r];a.isStatic||a.isSleeping||d.update(a,t,n,i)}};\n/**\n         * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n         * @deprecated use Matter.Runner.run(engine) instead\n         * @method run\n         * @param {engine} engine\n         */\n/**\n        * Fired just before an update\n        *\n        * @event beforeUpdate\n        * @param {object} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update and all collision events\n        *\n        * @event afterUpdate\n        * @param {object} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n        *\n        * @event collisionStart\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n        *\n        * @event collisionActive\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n        *\n        * @event collisionEnd\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n         * An integer `Number` that specifies the number of position iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         *\n         * @property positionIterations\n         * @type number\n         * @default 6\n         */\n/**\n         * An integer `Number` that specifies the number of velocity iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         *\n         * @property velocityIterations\n         * @type number\n         * @default 4\n         */\n/**\n         * An integer `Number` that specifies the number of constraint iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         * The default value of `2` is usually very adequate.\n         *\n         * @property constraintIterations\n         * @type number\n         * @default 2\n         */\n/**\n         * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n         * Sleeping can improve stability and performance, but often at the expense of accuracy.\n         *\n         * @property enableSleeping\n         * @type boolean\n         * @default false\n         */\n/**\n         * An `Object` containing properties regarding the timing systems of the engine. \n         *\n         * @property timing\n         * @type object\n         */\n/**\n         * A `Number` that specifies the global scaling factor of time for all bodies.\n         * A value of `0` freezes the simulation.\n         * A value of `0.1` gives a slow-motion effect.\n         * A value of `1.2` gives a speed-up effect.\n         *\n         * @property timing.timeScale\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n         * It is incremented on every `Engine.update` by the given `delta` argument. \n         *\n         * @property timing.timestamp\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n         * It is updated by timing from the start of the last `Engine.update` call until it ends.\n         *\n         * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n         *\n         * @property timing.lastElapsed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that represents the `delta` value used in the last engine update.\n         *\n         * @property timing.lastDelta\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Matter.Detector` instance.\n         *\n         * @property detector\n         * @type detector\n         * @default a Matter.Detector instance\n         */\n/**\n         * A `Matter.Grid` instance.\n         *\n         * @deprecated replaced by `engine.detector`\n         * @property grid\n         * @type grid\n         * @default a Matter.Grid instance\n         */\n/**\n         * Replaced by and now alias for `engine.grid`.\n         *\n         * @deprecated replaced by `engine.detector`\n         * @property broadphase\n         * @type grid\n         * @default a Matter.Grid instance\n         */\n/**\n         * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n         *\n         * @property world\n         * @type composite\n         * @default a Matter.Composite instance\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * The gravity to apply on all bodies in `engine.world`.\n         *\n         * @property gravity\n         * @type object\n         */\n/**\n         * The gravity x component.\n         *\n         * @property gravity.x\n         * @type object\n         * @default 0\n         */\n/**\n         * The gravity y component.\n         *\n         * @property gravity.y\n         * @type object\n         * @default 1\n         */\n/**\n         * The gravity scale factor.\n         *\n         * @property gravity.scale\n         * @type object\n         * @default 0.001\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(1);(function(){i._restingThresh=4;i._restingThreshTangent=6;i._positionDampen=.9;i._positionWarming=.8;i._frictionNormalMultiplier=5;\n/**\n         * Prepare pairs for position solving.\n         * @method preSolvePosition\n         * @param {pair[]} pairs\n         */i.preSolvePosition=function(e){var t,n,i,o=e.length;for(t=0;t<o;t++){n=e[t];if(n.isActive){i=n.activeContacts.length;n.collision.parentA.totalContacts+=i;n.collision.parentB.totalContacts+=i}}};\n/**\n         * Find a solution for pair positions.\n         * @method solvePosition\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.solvePosition=function(e,t){var n,o,r,a,s,l,c,u,f=i._positionDampen,d=e.length;for(n=0;n<d;n++){o=e[n];if(o.isActive&&!o.isSensor){r=o.collision;a=r.parentA;s=r.parentB;l=r.normal;o.separation=l.x*(s.positionImpulse.x+r.penetration.x-a.positionImpulse.x)+l.y*(s.positionImpulse.y+r.penetration.y-a.positionImpulse.y)}}for(n=0;n<d;n++){o=e[n];if(o.isActive&&!o.isSensor){r=o.collision;a=r.parentA;s=r.parentB;l=r.normal;u=(o.separation-o.slop)*t;(a.isStatic||s.isStatic)&&(u*=2);if(!(a.isStatic||a.isSleeping)){c=f/a.totalContacts;a.positionImpulse.x+=l.x*u*c;a.positionImpulse.y+=l.y*u*c}if(!(s.isStatic||s.isSleeping)){c=f/s.totalContacts;s.positionImpulse.x-=l.x*u*c;s.positionImpulse.y-=l.y*u*c}}}};\n/**\n         * Apply position resolution.\n         * @method postSolvePosition\n         * @param {body[]} bodies\n         */i.postSolvePosition=function(e){var t=i._positionWarming,n=e.length,a=o.translate,s=r.update;for(var l=0;l<n;l++){var c=e[l],u=c.positionImpulse,f=u.x,d=u.y,p=c.velocity;c.totalContacts=0;if(0!==f||0!==d){for(var v=0;v<c.parts.length;v++){var y=c.parts[v];a(y.vertices,u);s(y.bounds,y.vertices,p);y.position.x+=f;y.position.y+=d}c.positionPrev.x+=f;c.positionPrev.y+=d;if(f*p.x+d*p.y<0){u.x=0;u.y=0}else{u.x*=t;u.y*=t}}}};\n/**\n         * Prepare pairs for velocity solving.\n         * @method preSolveVelocity\n         * @param {pair[]} pairs\n         */i.preSolveVelocity=function(e){var t,n,i=e.length;for(t=0;t<i;t++){var o=e[t];if(o.isActive&&!o.isSensor){var r=o.activeContacts,a=r.length,s=o.collision,l=s.parentA,c=s.parentB,u=s.normal,f=s.tangent;for(n=0;n<a;n++){var d=r[n],p=d.vertex,v=d.normalImpulse,y=d.tangentImpulse;if(0!==v||0!==y){var m=u.x*v+f.x*y,g=u.y*v+f.y*y;if(!(l.isStatic||l.isSleeping)){l.positionPrev.x+=m*l.inverseMass;l.positionPrev.y+=g*l.inverseMass;l.anglePrev+=l.inverseInertia*((p.x-l.position.x)*g-(p.y-l.position.y)*m)}if(!(c.isStatic||c.isSleeping)){c.positionPrev.x-=m*c.inverseMass;c.positionPrev.y-=g*c.inverseMass;c.anglePrev-=c.inverseInertia*((p.x-c.position.x)*g-(p.y-c.position.y)*m)}}}}}};\n/**\n         * Find a solution for pair velocities.\n         * @method solveVelocity\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.solveVelocity=function(e,t){var n,o,r,a,s=t*t,l=i._restingThresh*s,c=i._frictionNormalMultiplier,u=i._restingThreshTangent*s,f=Number.MAX_VALUE,d=e.length;for(r=0;r<d;r++){var p=e[r];if(p.isActive&&!p.isSensor){var v=p.collision,y=v.parentA,m=v.parentB,g=y.velocity,x=m.velocity,h=v.normal.x,b=v.normal.y,S=v.tangent.x,w=v.tangent.y,_=p.activeContacts,A=_.length,P=1/A,C=y.inverseMass+m.inverseMass,k=p.friction*p.frictionStatic*c*s;g.x=y.position.x-y.positionPrev.x;g.y=y.position.y-y.positionPrev.y;x.x=m.position.x-m.positionPrev.x;x.y=m.position.y-m.positionPrev.y;y.angularVelocity=y.angle-y.anglePrev;m.angularVelocity=m.angle-m.anglePrev;for(a=0;a<A;a++){var M=_[a],B=M.vertex;var I=B.x-y.position.x,T=B.y-y.position.y,R=B.x-m.position.x,E=B.y-m.position.y;var V=g.x-T*y.angularVelocity,L=g.y+I*y.angularVelocity,q=x.x-E*m.angularVelocity,O=x.y+R*m.angularVelocity;var D=V-q,F=L-O;var H=h*D+b*F,j=S*D+w*F;var W=p.separation+H;var G=Math.min(W,1);G=W<0?0:G;var N=G*k;if(j>N||-j>N){o=j>0?j:-j;n=p.friction*(j>0?1:-1)*s;n<-o?n=-o:n>o&&(n=o)}else{n=j;o=f}var U=I*b-T*h,z=R*b-E*h,X=P/(C+y.inverseInertia*U*U+m.inverseInertia*z*z);var Q=(1+p.restitution)*H*X;n*=X;if(H*H>l&&H<0)M.normalImpulse=0;else{var Y=M.normalImpulse;M.normalImpulse+=Q;M.normalImpulse=Math.min(M.normalImpulse,0);Q=M.normalImpulse-Y}if(j*j>u)M.tangentImpulse=0;else{var Z=M.tangentImpulse;M.tangentImpulse+=n;M.tangentImpulse<-o&&(M.tangentImpulse=-o);M.tangentImpulse>o&&(M.tangentImpulse=o);n=M.tangentImpulse-Z}var $=h*Q+S*n,J=b*Q+w*n;if(!(y.isStatic||y.isSleeping)){y.positionPrev.x+=$*y.inverseMass;y.positionPrev.y+=J*y.inverseMass;y.anglePrev+=(I*J-T*$)*y.inverseInertia}if(!(m.isStatic||m.isSleeping)){m.positionPrev.x-=$*m.inverseMass;m.positionPrev.y-=J*m.inverseMass;m.anglePrev-=(R*J-E*$)*m.inverseInertia}}}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(9);var r=n(0);(function(){\n/**\n         * Creates a new pairs structure.\n         * @method create\n         * @param {object} options\n         * @return {pairs} A new pairs structure\n         */\ni.create=function(e){return r.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},e)};\n/**\n         * Updates pairs given a list of collisions.\n         * @method update\n         * @param {object} pairs\n         * @param {collision[]} collisions\n         * @param {number} timestamp\n         */i.update=function(e,t,n){var i,r,a,s,l=e.list,c=l.length,u=e.table,f=t.length,d=e.collisionStart,p=e.collisionEnd,v=e.collisionActive;d.length=0;p.length=0;v.length=0;for(s=0;s<c;s++)l[s].confirmedActive=false;for(s=0;s<f;s++){i=t[s];a=i.pair;if(a){a.isActive?v.push(a):d.push(a);o.update(a,i,n);a.confirmedActive=true}else{a=o.create(i,n);u[a.id]=a;d.push(a);l.push(a)}}var y=[];c=l.length;for(s=0;s<c;s++){a=l[s];if(!a.confirmedActive){o.setActive(a,false,n);p.push(a);a.collision.bodyA.isSleeping||a.collision.bodyB.isSleeping||y.push(s)}}for(s=0;s<y.length;s++){r=y[s]-s;a=l[r];l.splice(r,1);delete u[a.id]}};\n/**\n         * Clears the given pairs structure.\n         * @method clear\n         * @param {pairs} pairs\n         * @return {pairs} pairs\n         */i.clear=function(e){e.table={};e.list.length=0;e.collisionStart.length=0;e.collisionActive.length=0;e.collisionEnd.length=0;return e}})()},function(e,t,n){var i=e.exports=n(22);i.Axes=n(11);i.Bodies=n(12);i.Body=n(6);i.Bounds=n(1);i.Collision=n(8);i.Common=n(0);i.Composite=n(5);i.Composites=n(23);i.Constraint=n(10);i.Contact=n(17);i.Detector=n(14);i.Engine=n(18);i.Events=n(4);i.Grid=n(24);i.Mouse=n(13);i.MouseConstraint=n(25);i.Pair=n(9);i.Pairs=n(20);i.Plugin=n(15);i.Query=n(26);i.Render=n(16);i.Resolver=n(19);i.Runner=n(27);i.SAT=n(28);i.Sleeping=n(7);i.Svg=n(29);i.Vector=n(2);i.Vertices=n(3);i.World=n(30);i.Engine.run=i.Runner.run;i.Common.deprecated(i.Engine,\"run\",\"Engine.run ➤ use Matter.Runner.run(engine) instead\")},function(e,t,n){var i={};e.exports=i;var o=n(15);var r=n(0);(function(){\n/**\n         * The library name.\n         * @property name\n         * @readOnly\n         * @type {String}\n         */\ni.name=\"matter-js\";\n/**\n         * The library version.\n         * @property version\n         * @readOnly\n         * @type {String}\n         */i.version=\"0.18.0\";\n/**\n         * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\n         * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\n         * @property uses\n         * @type {Array}\n         */i.uses=[];\n/**\n         * The plugins that have been installed through `Matter.Plugin.install`. Read only.\n         * @property used\n         * @readOnly\n         * @type {Array}\n         */i.used=[];\n/**\n         * Installs the given plugins on the `Matter` namespace.\n         * This is a short-hand for `Plugin.use`, see it for more information.\n         * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\n         * Avoid calling this function multiple times unless you intend to manually control installation order.\n         * @method use\n         * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\n         */i.use=function(){o.use(i,Array.prototype.slice.call(arguments))};\n/**\n         * Chains a function to excute before the original function on the given `path` relative to `Matter`.\n         * See also docs for `Common.chain`.\n         * @method before\n         * @param {string} path The path relative to `Matter`\n         * @param {function} func The function to chain before the original\n         * @return {function} The chained function that replaced the original\n         */i.before=function(e,t){e=e.replace(/^Matter./,\"\");return r.chainPathBefore(i,e,t)};\n/**\n         * Chains a function to excute after the original function on the given `path` relative to `Matter`.\n         * See also docs for `Common.chain`.\n         * @method after\n         * @param {string} path The path relative to `Matter`\n         * @param {function} func The function to chain after the original\n         * @return {function} The chained function that replaced the original\n         */i.after=function(e,t){e=e.replace(/^Matter./,\"\");return r.chainPathAfter(i,e,t)}})()},function(e,t,n){var i={};e.exports=i;var o=n(5);var r=n(10);var a=n(0);var s=n(6);var l=n(12);var c=a.deprecated;(function(){\n/**\n         * Create a new composite containing bodies created in the callback in a grid arrangement.\n         * This function uses the body's bounds to prevent overlaps.\n         * @method stack\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {function} callback\n         * @return {composite} A new composite containing objects created in the callback\n         */\ni.stack=function(e,t,n,i,r,a,l){var c,u=o.create({label:\"Stack\"}),f=e,d=t,p=0;for(var v=0;v<i;v++){var y=0;for(var m=0;m<n;m++){var g=l(f,d,m,v,c,p);if(g){var x=g.bounds.max.y-g.bounds.min.y,h=g.bounds.max.x-g.bounds.min.x;x>y&&(y=x);s.translate(g,{x:.5*h,y:.5*x});f=g.bounds.max.x+r;o.addBody(u,g);c=g;p+=1}else f+=r}d+=y+a;f=e}return u};\n/**\n         * Chains all bodies in the given composite together using constraints.\n         * @method chain\n         * @param {composite} composite\n         * @param {number} xOffsetA\n         * @param {number} yOffsetA\n         * @param {number} xOffsetB\n         * @param {number} yOffsetB\n         * @param {object} options\n         * @return {composite} A new composite containing objects chained together with constraints\n         */i.chain=function(e,t,n,i,s,l){var c=e.bodies;for(var u=1;u<c.length;u++){var f=c[u-1],d=c[u],p=f.bounds.max.y-f.bounds.min.y,v=f.bounds.max.x-f.bounds.min.x,y=d.bounds.max.y-d.bounds.min.y,m=d.bounds.max.x-d.bounds.min.x;var g={bodyA:f,pointA:{x:v*t,y:p*n},bodyB:d,pointB:{x:m*i,y:y*s}};var x=a.extend(g,l);o.addConstraint(e,r.create(x))}e.label+=\" Chain\";return e};\n/**\n         * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n         * @method mesh\n         * @param {composite} composite\n         * @param {number} columns\n         * @param {number} rows\n         * @param {boolean} crossBrace\n         * @param {object} options\n         * @return {composite} The composite containing objects meshed together with constraints\n         */i.mesh=function(e,t,n,i,s){var l,c,u,f,d,p=e.bodies;for(l=0;l<n;l++){for(c=1;c<t;c++){u=p[c-1+l*t];f=p[c+l*t];o.addConstraint(e,r.create(a.extend({bodyA:u,bodyB:f},s)))}if(l>0)for(c=0;c<t;c++){u=p[c+(l-1)*t];f=p[c+l*t];o.addConstraint(e,r.create(a.extend({bodyA:u,bodyB:f},s)));if(i&&c>0){d=p[c-1+(l-1)*t];o.addConstraint(e,r.create(a.extend({bodyA:d,bodyB:f},s)))}if(i&&c<t-1){d=p[c+1+(l-1)*t];o.addConstraint(e,r.create(a.extend({bodyA:d,bodyB:f},s)))}}}e.label+=\" Mesh\";return e};\n/**\n         * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n         * This function uses the body's bounds to prevent overlaps.\n         * @method pyramid\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {function} callback\n         * @return {composite} A new composite containing objects created in the callback\n         */i.pyramid=function(e,t,n,o,r,a,l){return i.stack(e,t,n,o,r,a,(function(t,i,a,c,u,f){var d=Math.min(o,Math.ceil(n/2)),p=u?u.bounds.max.x-u.bounds.min.x:0;if(!(c>d)){c=d-c;var v=c,y=n-1-c;if(!(a<v||a>y)){1===f&&s.translate(u,{x:(a+(n%2===1?1:-1))*p,y:0});var m=u?a*p:0;return l(e+m+a*r,i,a,c,u,f)}}}))};\n/**\n         * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n         * @deprecated moved to newtonsCradle example\n         * @method newtonsCradle\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} number\n         * @param {number} size\n         * @param {number} length\n         * @return {composite} A new composite newtonsCradle body\n         */i.newtonsCradle=function(e,t,n,i,a){var s=o.create({label:\"Newtons Cradle\"});for(var c=0;c<n;c++){var u=1.9,f=l.circle(e+c*(i*u),t+a,i,{inertia:Infinity,restitution:1,friction:0,frictionAir:1e-4,slop:1}),d=r.create({pointA:{x:e+c*(i*u),y:t},bodyB:f});o.addBody(s,f);o.addConstraint(s,d)}return s};c(i,\"newtonsCradle\",\"Composites.newtonsCradle ➤ moved to newtonsCradle example\");\n/**\n         * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n         * @deprecated moved to car example\n         * @method car\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} width\n         * @param {number} height\n         * @param {number} wheelSize\n         * @return {composite} A new composite car body\n         */i.car=function(e,t,n,i,a){var c=s.nextGroup(true),u=20,f=.5*-n+u,d=.5*n-u,p=0;var v=o.create({label:\"Car\"}),y=l.rectangle(e,t,n,i,{collisionFilter:{group:c},chamfer:{radius:.5*i},density:2e-4});var m=l.circle(e+f,t+p,a,{collisionFilter:{group:c},friction:.8});var g=l.circle(e+d,t+p,a,{collisionFilter:{group:c},friction:.8});var x=r.create({bodyB:y,pointB:{x:f,y:p},bodyA:m,stiffness:1,length:0});var h=r.create({bodyB:y,pointB:{x:d,y:p},bodyA:g,stiffness:1,length:0});o.addBody(v,y);o.addBody(v,m);o.addBody(v,g);o.addConstraint(v,x);o.addConstraint(v,h);return v};c(i,\"car\",\"Composites.car ➤ moved to car example\");\n/**\n         * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n         * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n         * @deprecated moved to softBody and cloth examples\n         * @method softBody\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {boolean} crossBrace\n         * @param {number} particleRadius\n         * @param {} particleOptions\n         * @param {} constraintOptions\n         * @return {composite} A new composite softBody\n         */i.softBody=function(e,t,n,o,r,s,c,u,f,d){f=a.extend({inertia:Infinity},f);d=a.extend({stiffness:.2,render:{type:\"line\",anchors:false}},d);var p=i.stack(e,t,n,o,r,s,(function(e,t){return l.circle(e,t,u,f)}));i.mesh(p,n,o,c,d);p.label=\"Soft Body\";return p};c(i,\"softBody\",\"Composites.softBody ➤ moved to softBody and cloth examples\")})()},function(e,t,n){\n/**\n      * This module has now been replaced by `Matter.Detector`.\n      *\n      * All usage should be migrated to `Matter.Detector` or another alternative.\n      * For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n      *\n      * The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n      *\n      * @class Grid\n      * @deprecated\n      */\nvar i={};e.exports=i;var o=n(9);var r=n(0);var a=r.deprecated;(function(){\n/**\n         * Creates a new grid.\n         * @deprecated replaced by Matter.Detector\n         * @method create\n         * @param {} options\n         * @return {grid} A new grid\n         */\ni.create=function(e){var t={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return r.extend(t,e)};\n/**\n         * The width of a single grid bucket.\n         *\n         * @property bucketWidth\n         * @type number\n         * @default 48\n         */\n/**\n         * The height of a single grid bucket.\n         *\n         * @property bucketHeight\n         * @type number\n         * @default 48\n         */\n/**\n         * Updates the grid.\n         * @deprecated replaced by Matter.Detector\n         * @method update\n         * @param {grid} grid\n         * @param {body[]} bodies\n         * @param {engine} engine\n         * @param {boolean} forceUpdate\n         */i.update=function(e,t,n,o){var r,a,s,l,c,u=n.world,f=e.buckets,d=false;for(r=0;r<t.length;r++){var p=t[r];if((!p.isSleeping||o)&&(!u.bounds||!(p.bounds.max.x<u.bounds.min.x||p.bounds.min.x>u.bounds.max.x||p.bounds.max.y<u.bounds.min.y||p.bounds.min.y>u.bounds.max.y))){var v=i._getRegion(e,p);if(!p.region||v.id!==p.region.id||o){p.region&&!o||(p.region=v);var y=i._regionUnion(v,p.region);for(a=y.startCol;a<=y.endCol;a++)for(s=y.startRow;s<=y.endRow;s++){c=i._getBucketId(a,s);l=f[c];var m=a>=v.startCol&&a<=v.endCol&&s>=v.startRow&&s<=v.endRow;var g=a>=p.region.startCol&&a<=p.region.endCol&&s>=p.region.startRow&&s<=p.region.endRow;!m&&g&&g&&l&&i._bucketRemoveBody(e,l,p);if(p.region===v||m&&!g||o){l||(l=i._createBucket(f,c));i._bucketAddBody(e,l,p)}}p.region=v;d=true}}}d&&(e.pairsList=i._createActivePairsList(e))};a(i,\"update\",\"Grid.update ➤ replaced by Matter.Detector\");\n/**\n         * Clears the grid.\n         * @deprecated replaced by Matter.Detector\n         * @method clear\n         * @param {grid} grid\n         */i.clear=function(e){e.buckets={};e.pairs={};e.pairsList=[]};a(i,\"clear\",\"Grid.clear ➤ replaced by Matter.Detector\");\n/**\n         * Finds the union of two regions.\n         * @method _regionUnion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} regionA\n         * @param {} regionB\n         * @return {} region\n         */i._regionUnion=function(e,t){var n=Math.min(e.startCol,t.startCol),o=Math.max(e.endCol,t.endCol),r=Math.min(e.startRow,t.startRow),a=Math.max(e.endRow,t.endRow);return i._createRegion(n,o,r,a)};\n/**\n         * Gets the region a given body falls in for a given grid.\n         * @method _getRegion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} body\n         * @return {} region\n         */i._getRegion=function(e,t){var n=t.bounds,o=Math.floor(n.min.x/e.bucketWidth),r=Math.floor(n.max.x/e.bucketWidth),a=Math.floor(n.min.y/e.bucketHeight),s=Math.floor(n.max.y/e.bucketHeight);return i._createRegion(o,r,a,s)};\n/**\n         * Creates a region.\n         * @method _createRegion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} startCol\n         * @param {} endCol\n         * @param {} startRow\n         * @param {} endRow\n         * @return {} region\n         */i._createRegion=function(e,t,n,i){return{id:e+\",\"+t+\",\"+n+\",\"+i,startCol:e,endCol:t,startRow:n,endRow:i}};\n/**\n         * Gets the bucket id at the given position.\n         * @method _getBucketId\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} column\n         * @param {} row\n         * @return {string} bucket id\n         */i._getBucketId=function(e,t){return\"C\"+e+\"R\"+t};\n/**\n         * Creates a bucket.\n         * @method _createBucket\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} buckets\n         * @param {} bucketId\n         * @return {} bucket\n         */i._createBucket=function(e,t){var n=e[t]=[];return n};\n/**\n         * Adds a body to a bucket.\n         * @method _bucketAddBody\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} bucket\n         * @param {} body\n         */i._bucketAddBody=function(e,t,n){var i,r=e.pairs,a=o.id,s=t.length;for(i=0;i<s;i++){var l=t[i];if(!(n.id===l.id||n.isStatic&&l.isStatic)){var c=a(n,l),u=r[c];u?u[2]+=1:r[c]=[n,l,1]}}t.push(n)};\n/**\n         * Removes a body from a bucket.\n         * @method _bucketRemoveBody\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} bucket\n         * @param {} body\n         */i._bucketRemoveBody=function(e,t,n){var i,a=e.pairs,s=o.id;t.splice(r.indexOf(t,n),1);var l=t.length;for(i=0;i<l;i++){var c=a[s(n,t[i])];c&&(c[2]-=1)}};\n/**\n         * Generates a list of the active pairs in the grid.\n         * @method _createActivePairsList\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @return [] pairs\n         */i._createActivePairsList=function(e){var t,n,i=e.pairs,o=r.keys(i),a=o.length,s=[];for(n=0;n<a;n++){t=i[o[n]];t[2]>0?s.push(t):delete i[o[n]]}return s}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(7);var a=n(13);var s=n(4);var l=n(14);var c=n(10);var u=n(5);var f=n(0);var d=n(1);(function(){\n/**\n         * Creates a new mouse constraint.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {engine} engine\n         * @param {} options\n         * @return {MouseConstraint} A new MouseConstraint\n         */\ni.create=function(e,t){var n=(e?e.mouse:null)||(t?t.mouse:null);if(!n)if(e&&e.render&&e.render.canvas)n=a.create(e.render.canvas);else if(t&&t.element)n=a.create(t.element);else{n=a.create();f.warn(\"MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected\")}var o=c.create({label:\"Mouse Constraint\",pointA:n.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:\"#90EE90\",lineWidth:3}});var r={type:\"mouseConstraint\",mouse:n,element:null,body:null,constraint:o,collisionFilter:{category:1,mask:4294967295,group:0}};var l=f.extend(r,t);s.on(e,\"beforeUpdate\",(function(){var t=u.allBodies(e.world);i.update(l,t);i._triggerEvents(l)}));return l};\n/**\n         * Updates the given mouse constraint.\n         * @private\n         * @method update\n         * @param {MouseConstraint} mouseConstraint\n         * @param {body[]} bodies\n         */i.update=function(e,t){var n=e.mouse,i=e.constraint,a=e.body;if(0===n.button)if(i.bodyB){r.set(i.bodyB,false);i.pointA=n.position}else for(var c=0;c<t.length;c++){a=t[c];if(d.contains(a.bounds,n.position)&&l.canCollide(a.collisionFilter,e.collisionFilter))for(var u=a.parts.length>1?1:0;u<a.parts.length;u++){var f=a.parts[u];if(o.contains(f.vertices,n.position)){i.pointA=n.position;i.bodyB=e.body=a;i.pointB={x:n.position.x-a.position.x,y:n.position.y-a.position.y};i.angleB=a.angle;r.set(a,false);s.trigger(e,\"startdrag\",{mouse:n,body:a});break}}}else{i.bodyB=e.body=null;i.pointB=null;a&&s.trigger(e,\"enddrag\",{mouse:n,body:a})}};\n/**\n         * Triggers mouse constraint events.\n         * @method _triggerEvents\n         * @private\n         * @param {mouse} mouseConstraint\n         */i._triggerEvents=function(e){var t=e.mouse,n=t.sourceEvents;n.mousemove&&s.trigger(e,\"mousemove\",{mouse:t});n.mousedown&&s.trigger(e,\"mousedown\",{mouse:t});n.mouseup&&s.trigger(e,\"mouseup\",{mouse:t});a.clearSourceEvents(t)};\n/**\n        * Fired when the mouse has moved (or a touch moves) during the last step\n        *\n        * @event mousemove\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the mouse is down (or a touch has started) during the last step\n        *\n        * @event mousedown\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the mouse is up (or a touch has ended) during the last step\n        *\n        * @event mouseup\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the user starts dragging a body\n        *\n        * @event startdrag\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {body} event.body The body being dragged\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the user ends dragging a body\n        *\n        * @event enddrag\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {body} event.body The body that has stopped being dragged\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"constraint\"\n         * @readOnly\n         */\n/**\n         * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n         *\n         * @property mouse\n         * @type mouse\n         * @default mouse\n         */\n/**\n         * The `Body` that is currently being moved by the user, or `null` if no body.\n         *\n         * @property body\n         * @type body\n         * @default null\n         */\n/**\n         * The `Constraint` object that is used to move the body during interaction.\n         *\n         * @property constraint\n         * @type constraint\n         */\n/**\n         * An `Object` that specifies the collision filter properties.\n         * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter\n         * @type object\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(8);var a=n(1);var s=n(12);var l=n(3);(function(){\n/**\n         * Returns a list of collisions between `body` and `bodies`.\n         * @method collides\n         * @param {body} body\n         * @param {body[]} bodies\n         * @return {collision[]} Collisions\n         */\ni.collides=function(e,t){var n=[],i=t.length,o=e.bounds,s=r.collides,l=a.overlaps;for(var c=0;c<i;c++){var u=t[c],f=u.parts.length,d=1===f?0:1;if(l(u.bounds,o))for(var p=d;p<f;p++){var v=u.parts[p];if(l(v.bounds,o)){var y=s(v,e);if(y){n.push(y);break}}}}return n};\n/**\n         * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n         * @method ray\n         * @param {body[]} bodies\n         * @param {vector} startPoint\n         * @param {vector} endPoint\n         * @param {number} [rayWidth]\n         * @return {collision[]} Collisions\n         */i.ray=function(e,t,n,r){r=r||1e-100;var a=o.angle(t,n),l=o.magnitude(o.sub(t,n)),c=.5*(n.x+t.x),u=.5*(n.y+t.y),f=s.rectangle(c,u,l,r,{angle:a}),d=i.collides(f,e);for(var p=0;p<d.length;p+=1){var v=d[p];v.body=v.bodyB=v.bodyA}return d};\n/**\n         * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n         * @method region\n         * @param {body[]} bodies\n         * @param {bounds} bounds\n         * @param {bool} [outside=false]\n         * @return {body[]} The bodies matching the query\n         */i.region=function(e,t,n){var i=[];for(var o=0;o<e.length;o++){var r=e[o],s=a.overlaps(r.bounds,t);(s&&!n||!s&&n)&&i.push(r)}return i};\n/**\n         * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n         * @method point\n         * @param {body[]} bodies\n         * @param {vector} point\n         * @return {body[]} The bodies matching the query\n         */i.point=function(e,t){var n=[];for(var i=0;i<e.length;i++){var o=e[i];if(a.contains(o.bounds,t))for(var r=1===o.parts.length?0:1;r<o.parts.length;r++){var s=o.parts[r];if(a.contains(s.bounds,t)&&l.contains(s.vertices,t)){n.push(o);break}}}return n}})()},function(e,t,n){var i={};e.exports=i;var o=n(4);var r=n(18);var a=n(0);(function(){var e,t;if(\"undefined\"!==typeof window){e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame;t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame}if(!e){var n;e=function(e){n=setTimeout((function(){e(a.now())}),1e3/60)};t=function(){clearTimeout(n)}}\n/**\n         * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * @method create\n         * @param {} options\n         */i.create=function(e){var t={fps:60,correction:1,deltaSampleSize:60,counterTimestamp:0,frameCounter:0,deltaHistory:[],timePrev:null,timeScalePrev:1,frameRequestId:null,isFixed:false,enabled:true};var n=a.extend(t,e);n.delta=n.delta||1e3/n.fps;n.deltaMin=n.deltaMin||1e3/n.fps;n.deltaMax=n.deltaMax||1e3/(.5*n.fps);n.fps=1e3/n.delta;return n};\n/**\n         * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n         * @method run\n         * @param {engine} engine\n         */i.run=function(t,n){if(\"undefined\"!==typeof t.positionIterations){n=t;t=i.create()}(function render(o){t.frameRequestId=e(render);o&&t.enabled&&i.tick(t,n,o)})();return t};\n/**\n         * A game loop utility that updates the engine and renderer by one step (a 'tick').\n         * Features delta smoothing, time correction and fixed or dynamic timing.\n         * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n         * @method tick\n         * @param {runner} runner\n         * @param {engine} engine\n         * @param {number} time\n         */i.tick=function(e,t,n){var i,a=t.timing,s=1;var l={timestamp:a.timestamp};o.trigger(e,\"beforeTick\",l);if(e.isFixed)i=e.delta;else{i=n-e.timePrev||e.delta;e.timePrev=n;e.deltaHistory.push(i);e.deltaHistory=e.deltaHistory.slice(-e.deltaSampleSize);i=Math.min.apply(null,e.deltaHistory);i=i<e.deltaMin?e.deltaMin:i;i=i>e.deltaMax?e.deltaMax:i;s=i/e.delta;e.delta=i}0!==e.timeScalePrev&&(s*=a.timeScale/e.timeScalePrev);0===a.timeScale&&(s=0);e.timeScalePrev=a.timeScale;e.correction=s;e.frameCounter+=1;if(n-e.counterTimestamp>=1e3){e.fps=e.frameCounter*((n-e.counterTimestamp)/1e3);e.counterTimestamp=n;e.frameCounter=0}o.trigger(e,\"tick\",l);o.trigger(e,\"beforeUpdate\",l);r.update(t,i,s);o.trigger(e,\"afterUpdate\",l);o.trigger(e,\"afterTick\",l)};\n/**\n         * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n         * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n         * @method stop\n         * @param {runner} runner\n         */i.stop=function(e){t(e.frameRequestId)};\n/**\n         * Alias for `Runner.run`.\n         * @method start\n         * @param {runner} runner\n         * @param {engine} engine\n         */i.start=function(e,t){i.run(e,t)};\n/**\n        * Fired at the start of a tick, before any updates to the engine or timing\n        *\n        * @event beforeTick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after engine timing updated, but just before update\n        *\n        * @event tick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired at the end of a tick, after engine update and after rendering\n        *\n        * @event afterTick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired before update\n        *\n        * @event beforeUpdate\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after update\n        *\n        * @event afterUpdate\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A flag that specifies whether the runner is running or not.\n         *\n         * @property enabled\n         * @type boolean\n         * @default true\n         */\n/**\n         * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n         * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n         * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n         *\n         * @property isFixed\n         * @type boolean\n         * @default false\n         */\n/**\n         * A `Number` that specifies the time step between updates in milliseconds.\n         * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n         * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n         *\n         * @property delta\n         * @type number\n         * @default 1000 / 60\n         */})()},function(e,t,n){\n/**\n      * This module has now been replaced by `Matter.Collision`.\n      *\n      * All usage should be migrated to `Matter.Collision`.\n      * For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n      *\n      * The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n      *\n      * @class SAT\n      * @deprecated\n      */\nvar i={};e.exports=i;var o=n(8);var r=n(0);var a=r.deprecated;(function(){\n/**\n         * Detect collision between two bodies using the Separating Axis Theorem.\n         * @deprecated replaced by Collision.collides\n         * @method collides\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {collision} collision\n         */\ni.collides=function(e,t){return o.collides(e,t)};a(i,\"collides\",\"SAT.collides ➤ replaced by Collision.collides\")})()},function(e,t,n){var i={};e.exports=i;n(1);var o=n(0);(function(){\n/**\n         * Converts an SVG path into an array of vector points.\n         * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n         * See `Bodies.fromVertices` which provides support for this.\n         * Note that this function is not guaranteed to support complex paths (such as those with holes).\n         * You must load the `pathseg.js` polyfill on newer browsers.\n         * @method pathToVertices\n         * @param {SVGPathElement} path\n         * @param {Number} [sampleLength=15]\n         * @return {Vector[]} points\n         */\ni.pathToVertices=function(e,t){\"undefined\"===typeof window||\"SVGPathSeg\"in window||o.warn(\"Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.\");var n,r,a,s,l,c,u,f,d,p,v,y,m=[],g=0,x=0,h=0;t=t||15;var addPoint=function(e,t,n){var i=n%2===1&&n>1;if(!d||e!=d.x||t!=d.y){if(d&&i){v=d.x;y=d.y}else{v=0;y=0}var o={x:v+e,y:y+t};!i&&d||(d=o);m.push(o);x=v+e;h=y+t}};var addSegmentPoint=function(e){var t=e.pathSegTypeAsLetter.toUpperCase();if(\"Z\"!==t){switch(t){case\"M\":case\"L\":case\"T\":case\"C\":case\"S\":case\"Q\":x=e.x;h=e.y;break;case\"H\":x=e.x;break;case\"V\":h=e.y;break}addPoint(x,h,e.pathSegType)}};i._svgPathToAbsolute(e);a=e.getTotalLength();c=[];for(n=0;n<e.pathSegList.numberOfItems;n+=1)c.push(e.pathSegList.getItem(n));u=c.concat();while(g<a){p=e.getPathSegAtLength(g);l=c[p];if(l!=f){while(u.length&&u[0]!=l)addSegmentPoint(u.shift());f=l}switch(l.pathSegTypeAsLetter.toUpperCase()){case\"C\":case\"T\":case\"S\":case\"Q\":case\"A\":s=e.getPointAtLength(g);addPoint(s.x,s.y,0);break}g+=t}for(n=0,r=u.length;n<r;++n)addSegmentPoint(u[n]);return m};i._svgPathToAbsolute=function(e){var t,n,i,o,r,a,s=e.pathSegList,l=0,c=0,u=s.numberOfItems;for(var f=0;f<u;++f){var d=s.getItem(f),p=d.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(p)){\"x\"in d&&(l=d.x);\"y\"in d&&(c=d.y)}else{\"x1\"in d&&(i=l+d.x1);\"x2\"in d&&(r=l+d.x2);\"y1\"in d&&(o=c+d.y1);\"y2\"in d&&(a=c+d.y2);\"x\"in d&&(l+=d.x);\"y\"in d&&(c+=d.y);switch(p){case\"m\":s.replaceItem(e.createSVGPathSegMovetoAbs(l,c),f);break;case\"l\":s.replaceItem(e.createSVGPathSegLinetoAbs(l,c),f);break;case\"h\":s.replaceItem(e.createSVGPathSegLinetoHorizontalAbs(l),f);break;case\"v\":s.replaceItem(e.createSVGPathSegLinetoVerticalAbs(c),f);break;case\"c\":s.replaceItem(e.createSVGPathSegCurvetoCubicAbs(l,c,i,o,r,a),f);break;case\"s\":s.replaceItem(e.createSVGPathSegCurvetoCubicSmoothAbs(l,c,r,a),f);break;case\"q\":s.replaceItem(e.createSVGPathSegCurvetoQuadraticAbs(l,c,i,o),f);break;case\"t\":s.replaceItem(e.createSVGPathSegCurvetoQuadraticSmoothAbs(l,c),f);break;case\"a\":s.replaceItem(e.createSVGPathSegArcAbs(l,c,d.r1,d.r2,d.angle,d.largeArcFlag,d.sweepFlag),f);break;case\"z\":case\"Z\":l=t;c=n;break}}if(\"M\"==p||\"m\"==p){t=l;n=c}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(5);n(0);(function(){i.create=o.create;i.add=o.add;i.remove=o.remove;i.clear=o.clear;i.addComposite=o.addComposite;i.addBody=o.addBody;i.addConstraint=o.addConstraint})()}])}));var n=t;const i=t.Matter,o=t.__esModule;export{i as Matter,o as __esModule,n as default};\n\n//# sourceMappingURL=matter.js.map","import Matter from\"matter-js\";const opts={isStatic:true,friction:2};export function makeWalls(conainerBounding,engine,wallOptions){var Bodies=Matter.Bodies;let bottom,top,wLeft,wRight;if(wallOptions.bottom){bottom=Bodies.rectangle(conainerBounding.width/2,conainerBounding.height+50,conainerBounding.width+100,100,opts);Matter.World.add(engine,bottom);}if(wallOptions.top){top=Bodies.rectangle(conainerBounding.width/2,-50,conainerBounding.width+100,100,opts);Matter.World.add(engine,top);}if(wallOptions.right){wRight=Bodies.rectangle(conainerBounding.width+50,conainerBounding.height/2,100,conainerBounding.height,opts);Matter.World.add(engine,wRight);}if(wallOptions.bottom){wLeft=Bodies.rectangle(-50,conainerBounding.height/2,100,conainerBounding.height,opts);Matter.World.add(engine,wLeft);}}\nexport const __FramerMetadata__ = {\"exports\":{\"makeWalls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MakeWalls.map","/*\n * MakeWalls\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/KYVdEKqNHqMXAKLjSKCy/Ok6wam0uM9G4VUuXWgpR/MakeWalls.js\"\n","import Matter from\"matter-js\";export function makeBodies(container,world,elements,frictionOpts,densityOpts){const conainerBounding=container.getBoundingClientRect();let stack=Matter.Composites.stack(0,0,elements.length,1,0,0,(xx,yy,i)=>{const{x,y,width,height}=elements[i].getBoundingClientRect();var maxLeft=conainerBounding.width-width;var maxTop=conainerBounding.height-height;// Places the elements at random locations\n// Could be expanded to allow control of body placement from property controls\nvar tLeft=Math.floor(Math.random()*maxLeft),tTop=Math.floor(Math.random()*maxTop);return Matter.Bodies.rectangle(tLeft,tTop,width,height,{isStatic:false,density:densityOpts.enable?densityOpts.density:0,friction:frictionOpts.friction,frictionAir:frictionOpts.frictionAir});});Matter.World.add(world,stack);return stack;}\nexport const __FramerMetadata__ = {\"exports\":{\"makeBodies\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MakeBodies.map","/*\n * MakeBodies\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/6UgWtAa26OCy0CE59gub/LTuIQWugGJr30ZUS1CV9/MakeBodies.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import React from\"react\";import Matter from\"matter-js\";import{addPropertyControls,ControlType}from\"framer\";import{makeWalls}from\"https://framer.com/m/MakeWalls-36kf.js@Ok6wam0uM9G4VUuXWgpR\";import{makeBodies}from\"https://framer.com/m/MakeBodies-Lkv1.js@LTuIQWugGJr30ZUS1CV9\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function PhysicsZeroG(props){const containerRef=React.useRef(null);let engine=React.useRef(null);React.useEffect(()=>{if(!engine.current){engine.current=Matter.Engine.create({enableSleeping:false,gravity:{y:1,x:0}});// Gravity scale is the real lever — drop it to near nothing\nengine.current.gravity.scale=8e-6;engine.current.gravity.y=props.gravY;engine.current.gravity.x=props.gravX;const containerBounding=containerRef.current?.getBoundingClientRect();if(!containerBounding)return;makeWalls(containerBounding,engine.current.world,props.wallOptions);if(props.debug){const render=Matter.Render.create({element:containerRef.current,engine:engine.current,options:{height:containerBounding.height,width:containerBounding.width,showAngleIndicator:true,showVelocity:false}});Matter.Render.run(render);}let mouseConstraint=null;if(props.mouseOptions.enable){const mouse=Matter.Mouse.create(containerRef.current);mouseConstraint=Matter.MouseConstraint.create(engine.current,{mouse,constraint:{angularStiffness:props.mouseOptions.angularStiffness,stiffness:props.mouseOptions.stiffness}});Matter.Composite.add(engine.current.world,mouseConstraint);[\"mousewheel\",\"DOMMouseScroll\",\"touchstart\",\"touchmove\",\"touchend\"].forEach(event=>{mouseConstraint.mouse.element.removeEventListener(event,mouseConstraint.mouse[event]);});mouseConstraint.mouse.element.addEventListener(\"touchstart\",mouseConstraint.mouse.mousedown,{passive:true});mouseConstraint.mouse.element.addEventListener(\"touchmove\",e=>{if(mouseConstraint.body)mouseConstraint.mouse.mousemove(e);});mouseConstraint.mouse.element.addEventListener(\"touchend\",e=>{if(mouseConstraint.body)mouseConstraint.mouse.mouseup(e);});containerRef.current.addEventListener(\"mouseleave\",event=>{mouseConstraint.mouse.mouseup(event);});}let stack=makeBodies(containerRef.current,engine.current.world,containerRef.current?.children||[],props.frictionOptions,props.densityOptions);// Force-apply body properties after makeBodies\nstack.bodies.forEach(body=>{Matter.Body.set(body,{friction:0,frictionAir:2e-4,frictionStatic:0,restitution:.95,density:2e-4,sleepThreshold:Infinity});// Gentle random drift on spawn — smooth, not spastic\nMatter.Body.setVelocity(body,{x:(Math.random()-.5)*props.driftSpeed,y:(Math.random()-.5)*props.driftSpeed});// Very subtle spin\nMatter.Body.setAngularVelocity(body,(Math.random()-.5)*.008);});// ── Velocity cap only — NO nudges, NO jitter ──\n// Real zero-G: things drift until they hit something\nMatter.Events.on(engine.current,\"beforeUpdate\",()=>{stack.bodies.forEach(body=>{const maxV=props.maxVelocity;if(Math.abs(body.velocity.x)>maxV){Matter.Body.setVelocity(body,{x:Math.sign(body.velocity.x)*maxV,y:body.velocity.y});}if(Math.abs(body.velocity.y)>maxV){Matter.Body.setVelocity(body,{x:body.velocity.x,y:Math.sign(body.velocity.y)*maxV});}});});const update=()=>{requestAnimationFrame(update);if(!containerRef.current)return;stack.bodies.forEach((block,i)=>{let el=containerRef.current?.children[i];if(!el)return;let{x,y}=block.vertices[0];el.style.visibility=\"visible\";el.style.top=`${y}px`;el.style.left=`${x}px`;el.style.transform=`\n                        translate(-50%, -50%)\n                        rotate(${block.angle}rad)\n                        translate(50%, 50%)\n                    `;});Matter.Engine.update(engine.current);};update();}},[]);return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,ref:containerRef,draggable:\"false\",onDragStart:e=>e.preventDefault(),children:Array.isArray(props.children)&&props.children.length>0?props.children.map((el,i)=>/*#__PURE__*/_jsx(\"div\",{style:bodyStyle,id:\"physics-body\",draggable:\"false\",children:el},i)):/*#__PURE__*/_jsx(\"div\",{style:bodyStyle,id:\"physics-body\",draggable:\"false\",children:props.children})});}const containerStyle={height:\"100%\",width:\"100%\",overflow:\"hidden\"};const bodyStyle={position:\"absolute\",visibility:\"hidden\"};PhysicsZeroG.defaultProps={gravX:0,gravY:1,driftSpeed:.4,maxVelocity:2.5,children:[],wallOptions:{top:true,bottom:true,right:true,left:true},frictionOptions:{friction:0,frictionAir:2e-4},mouseOptions:{angularStiffness:0,stiffness:.04,enable:true},densityOptions:{enable:true,density:2e-4},debug:false};addPropertyControls(PhysicsZeroG,{children:{type:ControlType.Array,control:{type:ControlType.ComponentInstance}},gravY:{type:ControlType.Number,defaultValue:1,max:5,min:-5,step:.1,title:\"Gravity Y\"},gravX:{type:ControlType.Number,defaultValue:0,max:5,min:-5,step:.1,title:\"Gravity X\"},driftSpeed:{type:ControlType.Number,defaultValue:.4,min:0,max:5,step:.1,title:\"Drift Speed\",description:\"Initial random velocity on spawn\"},maxVelocity:{type:ControlType.Number,defaultValue:2.5,min:1,max:20,step:.5,title:\"Max Velocity\",description:\"Caps speed after a hard flick\"},wallOptions:{title:\"Walls\",type:ControlType.Object,controls:{top:{type:ControlType.Boolean,defaultValue:true},bottom:{type:ControlType.Boolean,defaultValue:true},right:{type:ControlType.Boolean,defaultValue:true},left:{type:ControlType.Boolean,defaultValue:true}}},mouseOptions:{title:\"Mouse\",type:ControlType.Object,controls:{enable:{title:\"Enable\",type:ControlType.Boolean,defaultValue:true},angularStiffness:{title:\"Angular Stiffness\",description:\"0 = pills swing freely when held\",type:ControlType.Number,defaultValue:0,min:0,max:1,step:.01},stiffness:{title:\"Grab Stiffness\",description:\"Lower = looser, more floaty grab\",type:ControlType.Number,defaultValue:.04,min:.001,max:1,step:.01}}},debug:{title:\"Debug\",type:ControlType.Boolean,defaultValue:false,description:\"Show physics debug overlay\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhysicsZeroG\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Physics.map","// Generated by Framer (8a3d870)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import PhysicsZeroG from\"https://framerusercontent.com/modules/4Fac5OzNRRqm9W1N01zM/EmaNXD5BbJi7EsAFalbB/Physics.js\";const PhysicsZeroGFonts=getFonts(PhysicsZeroG);const serializationHash=\"framer-OEEGr\";const variantClassNames={xkiUfVcYW:\"framer-v-15c0ttr\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"xkiUfVcYW\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-15c0ttr\",className,classNames),\"data-framer-name\":\"Small Objects (phone)\",layoutDependency:layoutDependency,layoutId:\"xkiUfVcYW\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1iyll1u-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"ZYMyq5sZt-container\",nodeId:\"ZYMyq5sZt\",rendersWithMotion:true,scopeId:\"XiCnSmisM\",children:/*#__PURE__*/_jsxs(PhysicsZeroG,{debug:false,driftSpeed:.4,gravX:0,gravY:.3,height:\"100%\",id:\"ZYMyq5sZt\",layoutId:\"ZYMyq5sZt\",maxVelocity:2.5,mouseOptions:{angularStiffness:0,enable:true,stiffness:1},style:{height:\"100%\",width:\"100%\"},wallOptions:{bottom:true,left:true,right:true,top:true},width:\"100%\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-veg4ub\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"ZC3S6AcW4\",style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"var(--token-2f83f1a1-5171-4e65-a829-9ae9e8bea332, rgb(0, 0, 0))\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",backgroundColor:\"var(--token-5e456808-e1b6-40cd-a3a5-5989fd0c40d0, rgb(250, 250, 250))\",borderBottomLeftRadius:9,borderBottomRightRadius:9,borderTopLeftRadius:9,borderTopRightRadius:9},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", monospace',\"--framer-font-size\":\"23px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:\"SHY LIL' GUY\"})}),className:\"framer-17ai0fn\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"FscWhTHc4\",style:{\"--extracted-r6o4lv\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1tjmvg8\",\"data-framer-name\":\"ArrowDown\",layoutDependency:layoutDependency,layoutId:\"Mb8M0ADQ1\",style:{backgroundColor:\"rgba(227, 227, 225, 0)\",borderBottomLeftRadius:51,borderBottomRightRadius:51,borderTopLeftRadius:51,borderTopRightRadius:51},children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1qf91ou\",\"data-framer-name\":\"graphic\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"s_rWYcVVU\",opacity:1,radius:122,style:{backgroundColor:\"var(--token-5e456808-e1b6-40cd-a3a5-5989fd0c40d0, rgb(250, 250, 250))\",borderBottomLeftRadius:122,borderBottomRightRadius:122,borderTopLeftRadius:122,borderTopRightRadius:122},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 57 57\"><path d=\"M 28.5 0 C 12.76 0 0 12.76 0 28.5 C 0 44.24 12.76 57 28.5 57 C 44.24 57 57 44.24 57 28.5 C 57 12.76 44.241 0 28.5 0 Z M 30.679 52.812 C 30.566 53.41 30.454 53.982 30.392 54.543 C 29.77 54.592 29.135 54.617 28.488 54.617 C 14.122 54.58 2.42 42.878 2.42 28.5 C 2.42 21.504 5.184 15.143 9.69 10.462 C 9.902 10.263 10.113 10.076 10.325 9.889 C 12.23 11.57 11.794 13.86 10.873 17.284 C 10.225 19.674 9.566 22.139 10.437 24.342 C 10.673 24.952 11.159 25.263 11.483 25.475 C 11.582 25.537 11.744 25.637 11.769 25.674 C 11.993 26.234 12.105 26.882 12.23 27.566 C 12.491 29.073 12.802 30.791 14.483 31.774 C 14.856 31.998 15.329 31.923 15.628 31.612 C 16.226 30.977 16.101 29.907 15.242 28.313 C 15.242 28.308 15.24 28.304 15.237 28.3 L 15.23 28.288 C 15.23 28.288 15.233 28.293 15.237 28.3 C 15.919 29.279 16.514 30.31 17.147 31.388 C 17.408 31.836 17.67 32.297 17.944 32.745 C 18.093 33.006 18.255 33.28 18.417 33.567 C 18.952 34.5 19.549 35.571 20.296 36.368 C 21.018 37.139 22.002 37.438 22.786 37.687 C 23.047 37.762 23.321 37.737 23.545 37.588 C 23.77 37.451 23.931 37.214 23.981 36.953 C 24.877 37.276 25.575 37.799 26.035 38.484 C 25.998 38.907 26.259 39.305 26.67 39.442 C 27.006 39.554 27.33 39.579 27.616 39.53 C 27.591 40.04 27.292 40.687 26.77 41.608 C 26.359 42.33 26.01 42.965 25.998 43.613 C 25.998 43.799 26.048 43.974 26.147 44.123 L 26.384 44.509 C 27.604 46.426 28.861 48.405 31.04 49.551 C 31.102 50.559 30.89 51.704 30.679 52.812 Z M 52.713 38.123 C 50.547 43.625 46.538 48.206 41.447 51.132 C 43.7 49.103 45.816 46.663 46.775 43.177 C 46.849 42.891 46.787 42.579 46.6 42.343 C 43.438 38.484 40.451 37.998 38.683 37.7 C 38.11 37.6 37.513 37.5 37.351 37.339 C 37.264 37.239 37.139 37.152 37.015 37.102 C 36.517 36.903 36.143 36.666 35.857 36.38 C 35.658 36.181 35.372 36.081 35.085 36.119 C 34.426 36.206 33.367 36.031 32.571 35.285 C 32.26 34.986 31.786 34.948 31.425 35.185 C 31.226 35.322 30.927 35.421 30.629 35.546 C 30.069 35.758 29.322 36.044 28.836 36.654 C 28.301 36.467 27.815 36.467 27.268 36.554 C 27.28 36.48 27.305 36.392 27.342 36.293 L 27.355 36.231 C 27.429 35.994 27.392 35.733 27.268 35.509 C 27.18 35.347 27.044 35.222 26.882 35.135 C 26.807 35.085 26.72 35.048 26.62 35.023 C 26.546 34.998 26.458 34.973 26.384 34.948 L 26.334 34.936 C 25.898 34.799 25.587 34.65 25.301 34.413 C 25.151 34.214 24.927 34.089 24.678 34.052 C 24.106 33.99 23.483 33.753 22.873 33.367 C 22.4 33.069 20.894 32.011 21.218 30.691 C 21.255 30.542 21.255 30.38 21.218 30.23 C 21.193 30.143 21.205 30.093 21.242 30.019 C 21.305 29.907 21.342 29.782 21.367 29.658 C 21.379 29.533 21.579 29.272 21.964 29.073 C 22.437 28.824 22.985 28.786 23.309 28.961 C 23.458 29.048 23.633 29.085 23.807 29.073 C 23.981 29.06 24.155 29.06 24.317 29.06 C 24.653 29.06 24.965 28.898 25.139 28.612 C 25.301 28.575 25.649 28.6 26.01 28.662 C 26.073 29.583 26.496 30.156 26.832 30.604 C 26.907 30.703 26.994 30.815 27.056 30.927 C 27.193 31.139 27.405 31.276 27.641 31.326 C 27.753 31.351 27.853 31.363 27.965 31.388 C 28.338 31.438 28.699 31.264 28.898 30.94 C 29.309 30.255 29.185 29.309 29.035 28.214 C 28.986 27.865 28.948 27.517 28.911 27.18 C 30.417 26.272 31.376 24.89 32.297 23.558 C 33.118 22.363 33.903 21.23 35.023 20.52 C 35.123 20.458 35.197 20.383 35.272 20.296 C 35.571 19.898 35.919 19.525 36.442 19.064 C 36.666 18.865 36.778 18.554 36.741 18.242 C 36.704 17.931 36.505 17.67 36.231 17.533 C 35.795 17.309 35.434 17.122 35.098 16.935 C 35.098 16.935 35.098 16.923 35.085 16.923 C 36.044 16.462 37.027 16.836 37.625 17.346 C 37.737 17.446 37.874 17.508 38.023 17.545 C 38.036 17.695 38.085 17.831 38.16 17.956 C 38.198 18.018 38.235 18.068 38.26 18.13 C 38.347 18.317 38.496 18.454 38.683 18.541 C 38.683 18.541 38.695 18.554 38.72 18.603 C 38.87 18.952 39.206 19.176 39.579 19.176 L 39.803 19.176 C 39.891 19.176 39.953 19.151 40.04 19.126 C 40.077 19.114 40.189 19.101 40.276 19.089 C 40.413 19.076 40.563 19.064 40.7 19.027 L 40.749 19.014 C 40.899 18.977 41.111 18.927 41.322 18.865 C 41.808 18.715 42.082 18.217 41.945 17.732 C 41.795 17.197 41.472 16.786 41.048 16.574 C 41.247 14.931 40.388 13.972 39.729 13.238 C 39.056 12.491 38.708 12.055 38.832 11.159 C 38.857 10.985 38.832 10.81 38.758 10.649 C 38.484 10.051 38.073 9.889 37.787 9.864 C 37.326 9.815 37.015 10.051 36.791 10.3 C 36.231 9.03 35.222 8.184 33.828 7.81 C 33.479 7.723 33.106 7.835 32.882 8.109 C 31.948 9.217 31.537 10.425 31.587 11.918 C 31.201 12.105 30.952 12.404 30.778 12.74 C 30.205 11.993 29.347 11.483 28.649 11.072 C 28.164 10.786 27.678 10.499 27.33 10.188 C 27.653 9.603 28.276 9.242 29.197 8.769 C 29.558 8.582 29.944 8.383 30.305 8.146 C 30.579 7.96 30.741 7.648 30.728 7.312 C 30.703 6.814 30.604 6.304 30.43 5.719 C 30.392 5.57 30.293 5.433 30.193 5.321 C 30.168 5.296 30.143 5.258 30.106 5.233 C 29.496 4.636 28.749 4.2 27.828 3.901 C 27.728 3.864 27.629 3.852 27.517 3.852 C 27.18 3.864 26.682 3.74 26.409 3.603 C 26.321 3.553 26.222 3.516 26.11 3.503 C 25.624 3.428 25.139 3.379 24.666 3.316 C 24.131 3.254 23.633 3.204 23.147 3.117 C 23.035 3.092 22.923 3.08 22.811 3.055 C 24.641 2.644 26.546 2.432 28.488 2.432 C 33.255 2.432 37.724 3.715 41.584 5.968 C 41.534 6.466 41.359 7.026 41.036 7.673 C 41.023 7.698 41.011 7.711 41.011 7.736 C 40.949 7.873 40.924 8.022 40.924 8.171 C 41.023 9.889 42.094 12.23 43.737 13.176 C 43.887 13.263 44.036 13.3 44.198 13.3 C 44.385 13.3 44.571 13.25 44.721 13.138 C 45.43 12.653 45.667 11.856 45.853 11.209 C 45.916 11.01 45.978 10.81 46.04 10.649 C 46.513 10.624 46.912 10.512 47.235 10.425 C 50.758 14.072 53.223 18.74 54.144 23.931 C 54.132 24.379 54.144 24.803 54.319 25.064 C 54.356 25.338 54.393 25.612 54.418 25.886 C 53.422 26.645 52.626 27.716 52.078 29.048 C 50.883 31.973 51.144 35.708 52.713 38.123 Z\" fill=\"rgb(255, 199, 0)\"></path></svg>',svgContentId:9130866572,withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ob9olb\",layoutDependency:layoutDependency,layoutId:\"PWpriMyIr\",style:{backgroundColor:\"rgba(227, 227, 225, 0)\",borderBottomLeftRadius:85,borderBottomRightRadius:85,borderTopLeftRadius:85,borderTopRightRadius:85},children:/*#__PURE__*/_jsx(SVG,{className:\"framer-mrmdvm\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"vNCxxGAPC\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 90 90\"><path d=\"M 89.642 19.124 C 89.029 18.063 87.545 17.492 85.54 17.606 C 82.041 17.793 75.686 19.841 67.638 23.345 L 67.213 23.584 L 66.87 23.2 C 61.117 16.722 52.81 13 44.098 13 C 38.764 13.005 33.525 14.414 28.906 17.086 C 16.456 24.281 10.692 39.419 15.209 53.081 L 15.324 53.424 L 13.351 55.015 C 7.183 59.694 2.821 63.748 1.066 66.441 C -0.024 68.115 -0.294 69.685 0.329 70.756 C 0.713 71.411 1.336 71.869 2.209 72.108 C 3.465 72.451 5.781 72.274 8.491 71.598 C 12.177 70.673 17.266 68.791 23.184 66.171 L 23.558 66.005 L 23.859 66.275 C 29.454 71.258 36.683 74.008 44.171 74 C 49.487 74 54.731 72.586 59.362 69.914 C 70.754 63.346 76.643 50.194 73.962 37.308 L 73.879 36.903 L 74.211 36.664 C 79.455 32.838 83.63 29.355 86.288 26.61 C 88.251 24.572 89.528 22.732 89.871 21.422 C 90.099 20.559 90.026 19.779 89.642 19.124 Z M 16.435 41.79 C 17.255 27.213 29.321 15.724 43.921 15.63 L 44.087 15.63 C 53.527 15.63 62.208 20.372 67.348 28.336 C 67.42 28.45 67.535 28.513 67.649 28.492 C 68.77 28.429 70.068 28.325 71.522 28.19 C 71.688 28.169 71.854 28.273 71.917 28.429 C 71.979 28.585 71.917 28.752 71.792 28.856 C 70.536 29.791 66.953 32.328 66.922 32.349 C 61.813 36.123 54.056 41.093 45.624 45.959 C 36.58 51.189 27.733 55.743 21.938 58.155 L 21.886 58.176 C 21.886 58.176 19.052 59.444 17.681 60.037 C 17.639 60.057 17.587 60.068 17.546 60.068 C 17.442 60.068 17.349 60.026 17.286 59.943 C 17.192 59.827 17.183 59.663 17.266 59.538 C 17.733 58.799 18.418 57.635 19.29 56.065 C 19.353 55.94 19.363 55.795 19.29 55.67 C 17.15 51.367 16.166 46.579 16.435 41.779 Z M 58.116 67.803 C 53.91 70.234 49.141 71.517 44.285 71.525 C 37.462 71.525 30.91 69.041 25.832 64.528 L 25.531 64.268 L 25.895 64.102 C 33.028 60.816 41.035 56.637 49.041 52.01 C 57.036 47.394 64.637 42.549 71.034 38.016 L 71.356 37.787 L 71.439 38.182 C 73.847 49.9 68.481 61.844 58.127 67.814 Z M 86.735 21.484 C 86.247 22.337 85.426 23.356 84.222 24.603 C 81.397 27.525 76.839 31.257 71.024 35.416 C 64.388 40.168 56.413 45.252 47.981 50.128 C 39.518 55.015 31.118 59.392 23.672 62.781 C 17.203 65.724 11.71 67.803 7.785 68.791 C 6.103 69.217 4.846 69.415 3.829 69.415 L 2.759 69.415 L 3.278 68.469 C 3.476 68.105 3.891 67.419 4.369 66.836 C 6.155 64.663 9.176 61.919 13.34 58.664 L 16.881 55.899 L 14.254 59.517 C 14.14 59.704 14.046 59.891 14.005 60.037 C 13.849 60.567 13.901 61.066 14.161 61.513 C 14.41 61.95 14.815 62.251 15.355 62.376 C 15.853 62.501 16.777 62.438 17.743 62.189 C 18.127 62.095 18.574 61.96 19.083 61.783 L 19.259 61.721 C 20.038 61.451 20.983 61.097 22.063 60.65 C 28.075 58.165 37.307 53.434 46.746 47.976 C 56.143 42.549 64.835 36.934 69.996 32.952 C 70.961 32.204 71.771 31.548 72.405 30.987 C 72.851 30.592 73.225 30.249 73.526 29.937 C 74.211 29.24 74.731 28.481 74.876 27.961 C 75.032 27.41 74.99 26.943 74.72 26.495 C 74.45 26.038 74.035 25.736 73.464 25.612 C 73.35 25.591 73.204 25.57 73.038 25.57 L 72.934 25.57 L 69.404 25.757 L 72.685 24.354 C 77.586 22.368 81.47 21.131 84.232 20.663 C 84.73 20.58 85.312 20.538 85.956 20.538 L 87.264 20.559 L 86.735 21.494 Z\" fill=\"rgb(255, 199, 0)\"></path></svg>',svgContentId:9136688508,withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-awojou\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"OSjOVeZDa\",style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"var(--token-2f83f1a1-5171-4e65-a829-9ae9e8bea332, rgb(0, 0, 0))\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",backgroundColor:\"var(--token-5e456808-e1b6-40cd-a3a5-5989fd0c40d0, rgb(250, 250, 250))\",borderBottomLeftRadius:28,borderBottomRightRadius:28,borderTopLeftRadius:28,borderTopRightRadius:28},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", monospace',\"--framer-font-size\":\"23px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:\"MOTION DESIGN\"})}),className:\"framer-2uk9m1\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"VUWl0MA5v\",style:{\"--extracted-r6o4lv\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ksqwhz\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"cmPdWWnAN\",style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"var(--token-2f83f1a1-5171-4e65-a829-9ae9e8bea332, rgb(0, 0, 0))\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",backgroundColor:\"var(--token-5e456808-e1b6-40cd-a3a5-5989fd0c40d0, rgb(250, 250, 250))\",borderBottomLeftRadius:28,borderBottomRightRadius:28,borderTopLeftRadius:28,borderTopRightRadius:28},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", monospace',\"--framer-font-size\":\"23px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:\"BRANDING\"})}),className:\"framer-1tqikxp\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"Frbt5UPCe\",style:{\"--extracted-r6o4lv\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1jgqrir\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"h4LpJjsUN\",style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"var(--token-2f83f1a1-5171-4e65-a829-9ae9e8bea332, rgb(0, 0, 0))\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",backgroundColor:\"var(--token-5e456808-e1b6-40cd-a3a5-5989fd0c40d0, rgb(250, 250, 250))\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", monospace',\"--framer-font-size\":\"23px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0)))\"},children:\"STRATEGY\"})}),className:\"framer-5czpka\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"q8r35lnDb\",style:{\"--extracted-r6o4lv\":\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1pyfoev\",layoutDependency:layoutDependency,layoutId:\"EXuZooq77\",style:{backgroundColor:\"var(--token-8ed0f524-5690-4ee5-ae11-cc9b60d389b9, rgb(0, 0, 0))\",borderBottomLeftRadius:19,borderBottomRightRadius:19,borderTopLeftRadius:19,borderTopRightRadius:19}})]})]})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-OEEGr.framer-b3f502, .framer-OEEGr .framer-b3f502 { display: block; }\",\".framer-OEEGr.framer-15c0ttr { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 390px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1170px; }\",\".framer-OEEGr .framer-1iyll1u-container { flex: 1 0 0px; height: 100%; position: relative; width: 1px; }\",\".framer-OEEGr .framer-veg4ub, .framer-OEEGr .framer-1jgqrir { -webkit-user-select: auto; align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 20px 10px 20px; position: relative; user-select: auto; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-OEEGr .framer-17ai0fn, .framer-OEEGr .framer-2uk9m1, .framer-OEEGr .framer-1tqikxp, .framer-OEEGr .framer-5czpka { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-OEEGr .framer-1tjmvg8 { -webkit-user-select: auto; align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 10px 12px 10px 12px; position: relative; user-select: auto; width: min-content; }\",\".framer-OEEGr .framer-1qf91ou { flex: none; height: 57px; position: relative; width: 57px; }\",\".framer-OEEGr .framer-1ob9olb { -webkit-user-select: auto; align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 9px 10px 9px 10px; position: relative; user-select: auto; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-OEEGr .framer-mrmdvm { flex: none; height: 90px; position: relative; width: 90px; }\",\".framer-OEEGr .framer-awojou, .framer-OEEGr .framer-1ksqwhz { -webkit-user-select: auto; align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 20px 10px 20px; position: relative; user-select: auto; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-OEEGr .framer-1pyfoev { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 14px); overflow: hidden; position: relative; width: 14px; will-change: var(--framer-will-change-override, transform); }\",'.framer-OEEGr[data-border=\"true\"]::after, .framer-OEEGr [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 390\n * @framerIntrinsicWidth 1170\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerXiCnSmisM=withCSS(Component,css,\"framer-OEEGr\");export default FramerXiCnSmisM;FramerXiCnSmisM.displayName=\"Objects (Phone)\";FramerXiCnSmisM.defaultProps={height:390,width:1170};addFonts(FramerXiCnSmisM,[{explicitInter:true,fonts:[{cssFamilyName:\"Space Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Space Mono\",url:\"https://fonts.gstatic.com/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRUEN2RFq7AwU.woff2\",weight:\"400\"}]},...PhysicsZeroGFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerXiCnSmisM\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"390\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1170\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./XiCnSmisM.map","var t,e=Object.create,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(t,e,n)=>e in t?r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>function(){return e||(0,t[i(t)[0]])((e={exports:{}}).exports,e),e.exports;},l=(t,e,s,o)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let u of i(e))a.call(t,u)||u===s||r(t,u,{get:()=>e[u],enumerable:!(o=n(e,u))||o.enumerable});return t;},h=(t,n,i)=>(i=null!=t?e(s(t)):{},l(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !n&&t&&t.__esModule?i:r(i,\"default\",{value:t,enumerable:!0}),t)),c=(t,e,r)=>o(t,\"symbol\"!=typeof e?e+\"\":e,r),f=u({\"../../../node_modules/dataloader/index.js\"(t,e){var r,n=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return i;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){a(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!o(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));a(e);for(var r=0;r<e.callbacks.length;r++){var n=t[r];n instanceof Error?e.callbacks[r].reject(n):e.callbacks[r].resolve(n);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,n=this._cacheKeyFn(t);if(r){var i=r.get(n);if(i){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(i);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(n,l),l;},e.loadMany=function(t){if(!o(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var n,i=this._cacheKeyFn(t);void 0===r.get(i)&&(e instanceof Error?(n=Promise.reject(e)).catch(function(){}):n=Promise.resolve(e),r.set(i,n));}return this;},t;}(),i=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){a(e);for(var n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r);}function a(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function o(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=n;}}),d=h(f(),1),g={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},p=class{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=g.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=g.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=g.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=g.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=g.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=g.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=g.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=g.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=g.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=g.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,n=this.bytes.subarray(e,r);return this.offset=r,n;}readString(){let t=this.readUint32(),e=this.readBytes(t);return this.decoder.decode(e);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(t){this.bytes=t,c(this,\"offset\",0),c(this,\"view\"),c(this,\"decoder\",new TextDecoder),this.view=v(this.bytes);}};function v(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as y}from\"framer\";// ../../library/src/utils/utils.ts\nvar m=\"undefined\"!=typeof window,w=m&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction I(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function b(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar U=1024,S=1.5,k=t=>2**t-1,L=t=>-(2**(t-1)),B=t=>2**(t-1)-1,E={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:L(8),Int16:L(16),Int32:L(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},M={Uint8:k(8),Uint16:k(16),Uint32:k(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:B(8),Int16:B(16),Int32:B(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function T(t,e,r,n){I(t>=e,t,\"outside lower bound for\",n),I(t<=r,t,\"outside upper bound for\",n);}var F=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*S)+t);r.set(this.bytes),this.bytes=r,this.view=v(r);}writeUint8(t){T(t,E.Uint8,M.Uint8,\"Uint8\");let e=g.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){T(t,E.Uint16,M.Uint16,\"Uint16\");let e=g.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){T(t,E.Uint32,M.Uint32,\"Uint32\");let e=g.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){T(t,E.Uint64,M.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){T(t,E.BigUint64,M.BigUint64,\"BigUint64\");let e=g.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){T(t,E.Int8,M.Int8,\"Int8\");let e=g.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){T(t,E.Int16,M.Int16,\"Int16\");let e=g.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){T(t,E.Int32,M.Int32,\"Int32\");let e=g.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){T(t,E.Int64,M.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){T(t,E.BigInt64,M.BigInt64,\"BigInt64\");let e=g.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=g.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=g.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){c(this,\"offset\",0),c(this,\"bytes\",new Uint8Array(U)),c(this,\"view\",v(this.bytes)),c(this,\"encoder\",new TextEncoder),c(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction x(t){return\"string\"==typeof t;}function N(t){return Number.isFinite(t);}function A(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar O=class t{static fromString(e){let[r,n,i]=e.split(\"/\").map(Number);return I(N(r),\"Invalid chunkId\"),I(N(n),\"Invalid offset\"),I(N(i),\"Invalid length\"),new t(r,n,i);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(e){let r=e.readUint16(),n=e.readUint32(),i=e.readUint32();return new t(r,n,i);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(I(this.length===t.length),0);}constructor(t,e,r){this.chunkId=t,this.offset=e,this.length=r;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nimport{ControlType as P}from\"framer\";function R(t){if(A(t))return 0/* Null */;switch(t.type){case P.Array:return 1/* Array */;case P.Boolean:return 2/* Boolean */;case P.Color:return 3/* Color */;case P.Date:return 4/* Date */;case P.Enum:return 5/* Enum */;case P.File:return 6/* File */;case P.ResponsiveImage:return 10/* ResponsiveImage */;case P.Link:return 7/* Link */;case P.Number:return 8/* Number */;case P.Object:return 9/* Object */;case P.RichText:return 11/* RichText */;case P.String:return 12/* String */;case P.VectorSetItem:return 13/* VectorSetItem */;default:b(t);}}function q(e){let r=e.readUint16(),n=[];for(let i=0;i<r;i++){let r=t.read(e);n.push(r);}return{type:P.Array,value:n};}function _(e,r){for(let n of(e.writeUint16(r.value.length),r.value))t.write(e,n);}function D(e,r,n){let i=e.value.length,s=r.value.length;if(i<s)return -1;if(i>s)return 1;for(let s=0;s<i;s++){let i=e.value[s],a=r.value[s],o=t.compare(i,a,n);if(0!==o)return o;}return 0;}function j(t){return{type:P.Boolean,value:0!==t.readUint8()};}function C(t,e){t.writeUint8(e.value?1:0);}function J(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:P.Color,value:t.readString()};}function W(t,e){t.writeString(e.value);}function $(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function z(t){let e=t.readInt64(),r=new Date(e);return{type:P.Date,value:r.toISOString()};}function G(t,e){let r=new Date(e.value),n=r.getTime();t.writeInt64(n);}function K(t,e){let r=new Date(t.value),n=new Date(e.value);return r<n?-1:r>n?1:0;}function H(t){return{type:P.Enum,value:t.readString()};}function X(t,e){t.writeString(e.value);}function Q(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Y(t){return{type:P.File,value:t.readString()};}function Z(t,e){t.writeString(e.value);}function tt(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function te(t){return{type:P.Link,value:t.readJson()};}function tr(t,e){t.writeJson(e.value);}function tn(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function ti(t){return{type:P.Number,value:t.readFloat64()};}function ts(t,e){t.writeFloat64(e.value);}function ta(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(e){let r=e.readUint16(),n={};for(let i=0;i<r;i++){let r=e.readString();n[r]=t.read(e);}return{type:P.Object,value:n};}function tu(e,r){let n=Object.entries(r.value);for(let[r,i]of(e.writeUint16(n.length),n))e.writeString(r),t.write(e,i);}function tl(e,r,n){let i=Object.keys(e.value).sort(),s=Object.keys(r.value).sort();if(i.length<s.length)return -1;if(i.length>s.length)return 1;for(let a=0;a<i.length;a++){let o=i[a],u=s[a];if(o<u)return -1;if(o>u)return 1;let l=e.value[o]??null,h=r.value[u]??null,c=t.compare(l,h,n);if(0!==c)return c;}return 0;}function th(t){return{type:P.ResponsiveImage,value:t.readJson()};}function tc(t,e){t.writeJson(e.value);}function tf(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function td(t){let e=t.readInt8();if(0===e)return{type:P.RichText,value:t.readUint32()};if(1===e)return{type:P.RichText,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tg(t,e){if(N(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(x(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tp(t,e){let r=t.value,n=e.value;if(N(r)&&N(n)||x(r)&&x(n))return r<n?-1:r>n?1:0;throw Error(\"Invalid rich text pointer\");}function tv(t){return{type:P.String,value:t.readString()};}function ty(t,e){t.writeString(e.value);}function tm(t,e,r){let n=t.value,i=e.value;return(0/* CaseInsensitive */===r.type&&(n=t.value.toLowerCase(),i=e.value.toLowerCase()),n<i)?-1:n>i?1:0;}function tw(t){return{type:P.VectorSetItem,value:t.readUint32()};}function tI(t,e){t.writeUint32(e.value);}function tb(t,e){let r=t.value,n=e.value;return r<n?-1:r>n?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return q(t);case 2/* Boolean */:return j(t);case 3/* Color */:return V(t);case 4/* Date */:return z(t);case 5/* Enum */:return H(t);case 6/* File */:return Y(t);case 7/* Link */:return te(t);case 8/* Number */:return ti(t);case 9/* Object */:return to(t);case 10/* ResponsiveImage */:return th(t);case 11/* RichText */:return td(t);case 12/* String */:return tv(t);case 13/* VectorSetItem */:return tw(t);default:b(e);}},t.write=function(t,e){let r=R(e);if(t.writeUint8(r),!A(e))switch(e.type){case P.Array:return _(t,e);case P.Boolean:return C(t,e);case P.Color:return W(t,e);case P.Date:return G(t,e);case P.Enum:return X(t,e);case P.File:return Z(t,e);case P.Link:return tr(t,e);case P.Number:return ts(t,e);case P.Object:return tu(t,e);case P.ResponsiveImage:return tc(t,e);case P.RichText:return tg(t,e);case P.VectorSetItem:return tI(t,e);case P.String:return ty(t,e);default:b(e);}},t.compare=function(t,e,r){let n=R(t),i=R(e);if(n<i)return -1;if(n>i)return 1;if(A(t)||A(e))return 0;switch(t.type){case P.Array:return I(e.type===P.Array),D(t,e,r);case P.Boolean:return I(e.type===P.Boolean),J(t,e);case P.Color:return I(e.type===P.Color),$(t,e);case P.Date:return I(e.type===P.Date),K(t,e);case P.Enum:return I(e.type===P.Enum),Q(t,e);case P.File:return I(e.type===P.File),tt(t,e);case P.Link:return I(e.type===P.Link),tn(t,e);case P.Number:return I(e.type===P.Number),ta(t,e);case P.Object:return I(e.type===P.Object),tl(t,e,r);case P.ResponsiveImage:return I(e.type===P.ResponsiveImage),tf(t,e);case P.RichText:return I(e.type===P.RichText),tp(t,e);case P.VectorSetItem:return I(e.type===P.VectorSetItem),tb(t,e);case P.String:return I(e.type===P.String),tm(t,e,r);default:b(t);}};})(t||(t={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tU=class e{sortEntries(){this.entries.sort((e,r)=>{for(let n=0;n<this.fieldNames.length;n++){let i=e.values[n],s=r.values[n],a=t.compare(i,s,this.options.collation);if(0!==a)return a;}return e.pointer.compare(r.pointer);});}static deserialize(r){let n=new p(r),i=n.readJson(),s=n.readUint8(),a=[];for(let t=0;t<s;t++){let t=n.readString();a.push(t);}let o=new e(a,{collation:i}),u=n.readUint32();for(let e=0;e<u;e++){let e=[];for(let r=0;r<s;r++){let r=t.read(n);e.push(r);}let r=O.read(n);o.entries.push({values:e,pointer:r});}return o;}serialize(){let e=new F;for(let t of(e.writeJson(this.options.collation),e.writeUint8(this.fieldNames.length),this.fieldNames))e.writeString(t);for(let r of(this.sortEntries(),e.writeUint32(this.entries.length),this.entries)){let{values:n,pointer:i}=r;for(let r of n)t.write(e,r);i.write(e);}return e.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(t,e){this.fieldNames=t,this.options=e,c(this,\"entries\",[]);}},tS=3,tk=250,tL=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tB=async(t,e)=>{let r=0;for(;;){try{let n=await fetch(t,e);if(!tL.includes(n.status)||++r>tS)return n;}catch(t){if(e?.signal?.aborted||++r>tS)throw t;}await tE(r);}};async function tE(t){let e=Math.floor(tk*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tM(t,e){let r=tx(e),n=[],i=0;for(let t of r)n.push(`${t.from}-${t.to-1}`),i+=t.to-t.from;let s=new URL(t),a=n.join(\",\");s.searchParams.set(\"range\",a);let o=await tB(s);if(200!==o.status)throw Error(`Request failed: ${o.status} ${o.statusText}`);let u=await o.arrayBuffer(),l=new Uint8Array(u);if(l.length!==i)throw Error(\"Request failed: Unexpected response length\");let h=new tT,c=0;for(let t of r){let e=t.to-t.from,r=c+e,n=l.subarray(c,r);h.write(t.from,n),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tT=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let n=t-r.start,i=n+e;return r.data.slice(n,i);}throw Error(\"Missing data\");}write(t,e){let r=t,n=r+e.length,i=0,s=this.chunks.length;for(;i<s;i++){let t=this.chunks[i];if(I(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let n=r-t.start,i=t.data.subarray(0,n);e=tF(i,e),r=t.start;}break;}}for(;s>i;s--){let t=this.chunks[s-1];if(I(t,\"Missing chunk\"),!(n<t.start)){if(n<t.end){let r=n-t.start,i=t.data.subarray(r);e=tF(e,i),n=t.end;}break;}}let a={start:r,end:n,data:e},o=s-i;this.chunks.splice(i,o,a);}constructor(){c(this,\"chunks\",[]);}};function tF(t,e){let r=t.length+e.length,n=new Uint8Array(r);return n.set(t,0),n.set(e,t.length),n;}function tx(t){I(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,n=r[e];n&&t.from<=n.to?r[e]={from:n.from,to:Math.max(n.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar tN=class{async loadModel(){let[t]=await tM(this.options.url,[this.options.range]);return I(t,\"Failed to load model\"),tU.deserialize(t);}async getModel(){return this.modelPromise??=this.loadModel(),this.model??=await this.modelPromise,this.model;}async lookupItems(t){I(t.length===this.fields.length,\"Invalid query length\");let e=await this.getModel(),r=t.reduce((t,e,r)=>t.flatMap(t=>{switch(e.type){case\"All\"/* All */:return[t];case\"Equals\"/* Equals */:return this.queryEquals(t,e,r);case\"NotEquals\"/* NotEquals */:return this.queryNotEquals(t,e,r);case\"LessThan\"/* LessThan */:return this.queryLessThan(t,e,r);case\"GreaterThan\"/* GreaterThan */:return this.queryGreaterThan(t,e,r);case\"Contains\"/* Contains */:return this.queryContains(t,e,r);case\"StartsWith\"/* StartsWith */:return this.queryStartsWith(t,e,r);case\"EndsWith\"/* EndsWith */:return this.queryEndsWith(t,e,r);default:b(e);}}),[e.entries]),n=[];for(let t of r)for(let e of t){let t={};for(let r=0;r<this.options.fieldNames.length;r++){let n=this.options.fieldNames[r],i=e.values[r];t[n]=i;}n.push({pointer:e.pointer.toString(),data:t});}return n;}queryEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=t.slice(n,i+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=[],a=t.slice(0,n);a.length>0&&s.push(a);let o=t.slice(i+1);return o.length>0&&s.push(o),s;}queryLessThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getRightMost(t,r,e.value),i=t.slice(0,n+1);return i.length>0?[i]:[];}let i=this.getLeftMost(t,r,e.value),s=t.slice(0,i);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getLeftMost(t,r,e.value),i=t.slice(n);return i.length>0?[i]:[];}let i=this.getRightMost(t,r,e.value),s=t.slice(i+1);return s.length>0?[s]:[];}queryContains(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.includes(n);});}queryStartsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.startsWith(n);});}queryEndsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.endsWith(n);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];0>t.compare(u,n,this.collation)?i=a+1:s=a;}return i;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];t.compare(u,n,this.collation)>0?s=a:i=a+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */findItems(t,e,r){let n=[],i=0;for(let s=0;s<t.length;s++){let a=t[s],o=a.values[e],u=r(o);if(!u){if(i<s){let e=t.slice(i,s);n.push(e);}i=s+1;}}if(i<t.length){let e=t.slice(i);n.push(e);}return n;}constructor(t){this.options=t,c(this,\"schema\"),c(this,\"fields\"),c(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),c(this,\"modelPromise\"),c(this,\"model\"),c(this,\"collation\");let e={},r=[];for(let t of this.options.fieldNames){let n=this.options.collectionSchema[t];I(n,\"Missing definition for field\",t),e[t]=n,r.push({type:\"Identifier\",name:t});}this.schema=e,this.fields=r,this.collation=this.options.collation;}},tA=class e{static read(r){let n=new e,i=r.readUint16();for(let e=0;e<i;e++){let e=r.readString(),i=t.read(r);n.setField(e,i);}return n;}write(e){for(let[r,n]of(e.writeUint16(this.fields.size),this.fields))e.writeString(r),t.write(e,n);}getData(){let t={};for(let[e,r]of this.fields)t[e]=r;return t;}setField(t,e){this.fields.set(t,e);}getField(t){return this.fields.get(t);}constructor(){c(this,\"fields\",/* @__PURE__ */new Map);}},tO=class{scanItems(){return this.itemsPromise??=tB(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),n=new p(r),i=[],s=n.readUint32();for(let t=0;t<s;t++){let t=n.getOffset(),e=tA.read(n),r=n.getOffset()-t,s=new O(this.id,t,r),a=s.toString(),o={pointer:a,data:e.getData()};this.itemLoader.prime(a,o),i.push(o);}return i;}),this.itemsPromise;}resolveItem(t){return this.itemLoader.load(t);}constructor(t,e){this.id=t,this.url=e,c(this,\"itemsPromise\"),c(this,\"itemLoader\",new d.default(async t=>{let e=t.map(t=>{let e=O.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tM(this.url,e);return r.map((e,r)=>{let n=new p(e),i=tA.read(n),s=t[r];return I(s,\"Missing pointer\"),{pointer:s,data:i.getData()};});},{maxBatchSize:250}));}},tP=class{async scanItems(){let t=await Promise.all(this.chunks.map(async t=>t.scanItems()));return t.flat();}resolveItems(t){return Promise.all(t.map(t=>{let e=O.fromString(t),r=this.chunks[e.chunkId];return I(r,\"Missing chunk\"),r.resolveItem(t);}));}compareItems(t,e){let r=O.fromString(t.pointer),n=O.fromString(e.pointer);return r.compare(n);}compareValues(e,r,n){return t.compare(e,r,n);}constructor(t){this.options=t,c(this,\"id\"),c(this,\"schema\"),c(this,\"indexes\"),c(this,\"resolveRichText\"),c(this,\"resolveVectorSetItem\"),c(this,\"chunks\"),this.chunks=this.options.chunks.map((t,e)=>new tO(e,t)),this.schema=t.schema,this.indexes=t.indexes,this.resolveRichText=t.resolveRichText,this.resolveVectorSetItem=t.resolveVectorSetItem,this.id=t.id;}};export{tP as DatabaseCollection,tN as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{AutoBreakpointVariant as t,ComponentPresetsConsumer as r,Link as n,motion as o}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as i}from\"react\";// ../../library/src/utils/utils.ts\nvar a,l=\"undefined\"!=typeof window,f=l&&\"function\"==typeof window.requestIdleCallback,u=\"preload\";function c(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/i(e)&&u in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as p,createElement as s}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction m(e,...t){if(!e)throw Error(\"Assertion Error\"+(t.length>0?\": \"+t.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar d=((a=d||{})[a.Fragment=1]=\"Fragment\",a[a.Link=2]=\"Link\",a[a.Module=3]=\"Module\",a[a.Tag=4]=\"Tag\",a[a.Text=5]=\"Text\",a);function g(i){let a=/* @__PURE__ */new Map;return l=>{let f=a.get(l);if(f)return f;let u=JSON.parse(l),d=function a(l){switch(l[0]){case 1/* Fragment */:{let[,...e]=l,t=e.map(a);return /*#__PURE__*/s(p,void 0,...t);}case 2/* Link */:{let[,e,...t]=l,r=t.map(a);return /*#__PURE__*/s(n,e,...r);}case 3/* Module */:{let[,n,o,f,u]=l;for(let e of f){let t=o[e];t&&(o[e]=a(t));}for(let e of u){let t=o[e];if(\"string\"!=typeof t)continue;let r=i[t];r&&(c(r)&&r.preload(),o[e]=r);}let p=i[n];return m(p,\"Module not found\"),c(p)&&p.preload(),/*#__PURE__*/e(r,{componentIdentifier:n,children:r=>/*#__PURE__*/e(t,{component:p,props:{...r,...o}})});}case 4/* Tag */:{let[,e,t,...r]=l,n=r.map(a);if(\"a\"===e)return /*#__PURE__*/s(o.a,t,...n);return /*#__PURE__*/s(e,t,...n);}case 5/* Text */:{let[,e]=l;return e;}}}(u);return a.set(l,d),d;};}export{d as RichTextJsonType,g as getRichTextJsonResolver};\nexport const __FramerMetadata__ = {\"exports\":{\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0f5ea8b)\nimport{addPropertyControls as e,ControlType as l,QueryEngine as t}from\"framer\";import{DatabaseCollection as a,DatabaseDictionaryIndex as r}from\"./MvEZj4CCN-0.js\";import{getRichTextJsonResolver as m}from\"./MvEZj4CCN-1.js\";let i={aCUBhR5uu:{isNullable:!0,type:l.ResponsiveImage},agKp0XBu4:{isNullable:!0,type:l.ResponsiveImage},AwGGBmwL4:{isNullable:!0,type:l.String},BKuUChGIr:{isNullable:!0,type:l.String},BXJb21Bpw:{isNullable:!0,type:l.RichText},cQX23QoA0:{isNullable:!0,type:l.String},createdAt:{isNullable:!0,type:l.Date},hzwk737bv:{isNullable:!0,type:l.ResponsiveImage},i1siCDltM:{isNullable:!0,type:l.String},id:{isNullable:!1,type:l.String},JHgK_S1RH:{isNullable:!0,type:l.ResponsiveImage},KEjoMfIPK:{isNullable:!0,type:l.Link},lAlDXeno1:{isNullable:!0,type:l.ResponsiveImage},mM3MmdReO:{isNullable:!0,type:l.ResponsiveImage},nextItemId:{isNullable:!0,type:l.String},p3fVzI8xb:{isNullable:!0,type:l.ResponsiveImage},previousItemId:{isNullable:!0,type:l.String},shz2d1CSa:{isNullable:!0,type:l.RichText},updatedAt:{isNullable:!0,type:l.Date},Vmgq42Tb6:{isNullable:!0,type:l.String},VwomRRL3_:{isNullable:!0,type:l.RichText}},o=[\"id\"],n={type:1},c=[\"previousItemId\"],s=[\"nextItemId\"],u=[\"id\",\"BKuUChGIr\"],d=[\"BKuUChGIr\",\"id\"],f=[\"cQX23QoA0\"],p={type:0},C=[\"AwGGBmwL4\"],h=[\"i1siCDltM\"],g=[\"BKuUChGIr\"],N=[\"Vmgq42Tb6\"],y=[\"shz2d1CSa\"],w=[\"BXJb21Bpw\"],R=[\"VwomRRL3_\"],I=[\"mM3MmdReO\"],v=[\"p3fVzI8xb\"],S=[\"JHgK_S1RH\"],x=[\"hzwk737bv\"],M=[\"agKp0XBu4\"],L=[\"aCUBhR5uu\"],b=[\"lAlDXeno1\"],U=[\"KEjoMfIPK\"],j=[],E=e=>{let l=j[e];if(l)return l().then(e=>e.default);},B={},Z=m(B),K=new t,V={collectionByLocaleId:{default:new a({chunks:[new URL(\"./MvEZj4CCN-chunk-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")],id:\"0e3fc703-3a09-44ed-849a-40d437722dd6default\",indexes:[new r({collation:n,collectionSchema:i,fieldNames:o,range:{from:0,to:97},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:n,collectionSchema:i,fieldNames:c,range:{from:97,to:193},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:n,collectionSchema:i,fieldNames:s,range:{from:193,to:285},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:n,collectionSchema:i,fieldNames:u,range:{from:285,to:444},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:n,collectionSchema:i,fieldNames:d,range:{from:444,to:603},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:f,range:{from:603,to:752},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:C,range:{from:752,to:869},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:h,range:{from:869,to:958},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:g,range:{from:958,to:1069},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:N,range:{from:1069,to:2079},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:y,range:{from:2079,to:8896},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:w,range:{from:8896,to:9285},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:R,range:{from:9285,to:9743},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:I,range:{from:9743,to:11244},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:v,range:{from:11244,to:12488},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:S,range:{from:12488,to:13864},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:x,range:{from:13864,to:15361},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:M,range:{from:15361,to:16737},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:L,range:{from:16737,to:17276},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:b,range:{from:17276,to:17341},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")}),new r({collation:p,collectionSchema:i,fieldNames:U,range:{from:17341,to:17900},url:new URL(\"./MvEZj4CCN-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/ciJdDno2AIFHd3iiVXDs/d1LBCrD44aJAY3pRE5pv/MvEZj4CCN.js\").href.replace(\"/modules/\",\"/cms/\")})],resolveRichText:Z,resolveVectorSetItem:E,schema:i})},displayName:\"Works\",id:\"0e3fc703-3a09-44ed-849a-40d437722dd6\"};export default V;e(V,{cQX23QoA0:{defaultValue:\"\",title:\"Title\",type:l.String},AwGGBmwL4:{defaultValue:\"\",title:\"Category\",type:l.String},i1siCDltM:{defaultValue:\"\",title:\"Date\",type:l.String},BKuUChGIr:{preventLocalization:!0,title:\"Slug\",type:l.String},Vmgq42Tb6:{defaultValue:\"\",displayTextArea:!0,title:\"Project Overview\",type:l.String},shz2d1CSa:{defaultValue:\"\",title:\"Description\",type:l.RichText},BXJb21Bpw:{defaultValue:\"\",title:\"Services\",type:l.RichText},VwomRRL3_:{defaultValue:\"\",title:\"Role\",type:l.RichText},mM3MmdReO:{title:\"Image (thumbnail) 16:9\",type:l.ResponsiveImage},p3fVzI8xb:{title:\"Image 02  / 16:9\",type:l.ResponsiveImage},JHgK_S1RH:{title:\"Image 03 / 16:9\",type:l.ResponsiveImage},hzwk737bv:{title:\"Image 04 / 16:9\",type:l.ResponsiveImage},agKp0XBu4:{title:\"Image 05 / 4:3\",type:l.ResponsiveImage},aCUBhR5uu:{title:\"Image 06 / 4:3\",type:l.ResponsiveImage},lAlDXeno1:{title:\"Image 07 / 16:9\",type:l.ResponsiveImage},KEjoMfIPK:{title:\"Next Project\",type:l.Link},createdAt:{title:\"Created\",type:l.Date},updatedAt:{title:\"Updated\",type:l.Date},previousItemId:{dataIdentifier:\"local-module:collection/MvEZj4CCN:default\",title:\"Previous\",type:l.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/MvEZj4CCN:default\",title:\"Next\",type:l.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,l){let[t]=await K.query({from:{data:V,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"BKuUChGIr\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},l);return t?.BKuUChGIr;},async getRecordIdBySlug(e,l){let[t]=await K.query({from:{data:V,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"BKuUChGIr\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},l);return t?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerCollectionUtils\":\"1\",\"framerRecordIdKey\":\"id\",\"framerSlug\":\"BKuUChGIr\",\"framerContractVersion\":\"1\",\"framerCollectionId\":\"MvEZj4CCN\",\"framerData\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerEnumToDisplayNameUtils\":\"2\",\"framerColorSyntax\":\"false\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}