{"version":3,"file":"shared-lib.CdOKwsHS.mjs","names":["useState","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/fHPo4nAmQAxDBn5X2kF1/ymzAdP1nfBWSoSVBfWZQ/nZjNjGRCH.js","https:/framerusercontent.com/modules/im8hW9Buvm7umtL179NO/j39ht8MJjqEhBqsDGna4/LogoIntro.js","https:/framerusercontent.com/modules/aRCSCGL3Tse9fwceTcTL/0J6rSXUzRhOtpFoLdJ8Q/siteMetadata.js"],"sourcesContent":["// Generated by Framer (4d21961)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Manrope-medium\",\"FS;Manrope-bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Manrope\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/BNWG6MUI4RTC6WEND2VPDH4MHMIVU3XZ/R5YXY5FMVG6PXU36GNEEA24MIPMEPGSM/CIM4KQCLZSMMLWPVH25IDDSTY4ENPHEY.woff2\",weight:\"500\"},{family:\"Manrope\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/NGBUP45ES3F7RD5XGKPEDJ6QEPO4TMOK/EXDVWJ2EDDVVV65UENMX33EDDYBX6OF7/6P4FPMFQH7CCC7RZ4UU4NKSGJ2RLF7V5.woff2\",weight:\"700\"}]}];export const css=[\".framer-ofFxZ .framer-styles-preset-q12std:not(.rich-text-wrapper), .framer-ofFxZ .framer-styles-preset-q12std.rich-text-wrapper p { --framer-font-family: \\\"Manrope\\\", \\\"Manrope Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Manrope\\\", \\\"Manrope Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-7ab5faa8-d17b-41d2-8b42-49368cf2f4df, #222725); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }\",'@media (max-width: 1199px) and (min-width: 810px) { .framer-ofFxZ .framer-styles-preset-q12std:not(.rich-text-wrapper), .framer-ofFxZ .framer-styles-preset-q12std.rich-text-wrapper p { --framer-font-family: \"Manrope\", \"Manrope Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-7ab5faa8-d17b-41d2-8b42-49368cf2f4df, #222725); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-ofFxZ .framer-styles-preset-q12std:not(.rich-text-wrapper), .framer-ofFxZ .framer-styles-preset-q12std.rich-text-wrapper p { --framer-font-family: \"Manrope\", \"Manrope Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-7ab5faa8-d17b-41d2-8b42-49368cf2f4df, #222725); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-ofFxZ\";\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\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useLayoutEffect,useState}from\"react\";// Page load cover: four dark strips lift away (the reverse of the menu's drop-down) to\n// reveal the page.\n// - \"intro\" (Home): on a full page load, the first time in a browser session the Key Mark\n//   outline draws itself and fills in before the strips lift; after that, and on every\n//   in-site navigation, it behaves like \"page\". framer.* hosts (Preview, staging) always get\n//   the full intro on a full page load so it can be checked.\n// - \"page\" (every other page): strips only.\n// Either mode is skipped when the page was opened from the menu: the menu is already a dark\n// cover, and its own exit reveals the page.\n// While a cover is up, other entrance animations (Text_Chr_Reveal) wait for COVER_EVENT.\nconst MARK_W=869;const MARK_H=773;// Same outline as KeyMark.tsx (\"detail\" version).\nconst MARK_PATH=\"M621.0 767.3 587.0 766.5 562.0 761.3 540.0 753.3 490.0 725.7 469.0 719.5 443.0 720.5 384.0 737.3 337.0 743.5 291.0 742.5 248.0 735.3 209.0 723.3 166.0 703.3 126.6 677.0 107.0 660.5 88.5 642.0 65.7 614.0 45.7 583.0 32.7 557.0 22.7 532.0 13.7 501.0 8.5 474.0 5.5 445.0 5.5 412.0 8.5 383.0 13.7 356.0 22.7 325.0 32.7 300.0 45.7 274.0 65.7 243.0 88.5 215.0 107.0 196.5 135.0 173.7 166.0 153.7 199.0 137.7 240.0 123.7 275.0 116.5 304.0 113.5 337.0 113.5 370.0 117.5 395.0 117.5 418.0 112.3 429.0 107.3 445.4 96.0 485.6 58.0 518.0 35.7 552.0 19.7 567.0 14.7 600.0 7.5 619.0 5.5 657.0 6.5 682.0 10.7 713.0 19.7 738.0 30.7 766.0 47.7 786.0 63.5 805.5 83.0 821.3 103.0 833.3 122.0 849.3 156.0 854.3 171.0 861.5 204.0 863.5 223.0 863.5 250.0 860.5 275.0 854.3 302.0 840.3 338.0 827.3 361.0 805.5 390.0 779.4 415.0 742.0 442.8 734.7 452.0 732.7 457.0 732.5 469.0 734.7 476.0 756.3 510.0 765.3 528.0 775.3 558.0 779.5 585.0 779.5 608.0 773.3 643.0 766.3 663.0 751.3 691.0 738.5 708.0 719.4 727.0 695.0 744.3 675.0 754.3 647.0 763.3 621.0 767.3ZM691.5 402.0 707.0 397.3 724.0 388.3 753.0 366.5 776.3 340.0 793.3 311.0 803.3 284.0 807.5 265.0 809.5 248.0 809.5 225.0 807.5 208.0 803.3 189.0 798.3 174.0 784.3 145.0 762.5 116.0 736.0 92.7 707.0 75.7 680.0 65.7 661.0 61.5 644.0 59.5 621.0 59.5 604.0 61.5 585.0 65.7 570.0 70.7 541.0 84.7 519.6 100.0 507.0 112.6 500.7 123.0 497.5 134.0 497.5 146.0 500.7 157.0 504.7 165.0 513.0 176.4 552.5 215.0 569.0 234.6 586.3 259.0 608.3 300.0 618.3 325.0 631.7 369.0 640.0 383.4 651.6 394.0 660.0 398.3 675.0 402.5 691.5 402.0ZM336.5 689.0 362.0 686.5 403.0 676.3 416.4 669.0 427.3 658.0 432.3 649.0 436.5 633.0 438.5 575.0 443.7 550.0 448.7 535.0 465.7 502.0 500.3 458.0 503.5 449.0 503.5 440.0 500.3 432.0 495.5 425.0 459.5 390.0 450.0 378.4 437.7 361.0 424.7 338.0 415.7 317.0 406.7 286.0 403.5 269.0 400.5 231.0 397.3 214.0 393.3 202.0 386.3 190.0 373.0 177.7 357.0 170.7 335.0 167.5 306.0 167.5 279.0 170.5 251.0 176.7 232.0 182.7 208.0 192.7 181.0 207.7 160.6 222.0 139.0 240.5 123.5 257.0 107.7 277.0 93.7 299.0 84.7 316.0 74.7 340.0 68.7 359.0 62.5 387.0 59.5 414.0 59.5 443.0 62.5 470.0 68.7 498.0 74.7 517.0 84.7 541.0 99.7 568.0 114.0 588.4 132.5 610.0 149.0 625.5 169.0 641.3 191.0 655.3 208.0 664.3 232.0 674.3 263.0 683.3 286.0 687.5 306.0 689.5 336.5 689.0ZM551.5 383.0 559.0 380.3 564.3 375.0 567.3 369.0 568.5 355.0 562.3 330.0 547.3 299.0 527.0 268.6 516.5 256.0 504.4 245.0 493.0 237.7 483.0 234.7 478.0 234.7 470.0 237.7 464.7 243.0 460.7 252.0 459.5 270.0 461.7 283.0 466.7 299.0 476.7 321.0 496.0 349.4 516.6 370.0 536.0 381.3 544.0 383.5 551.5 383.0ZM619.5 713.0 640.0 709.3 659.0 702.3 670.0 696.3 686.0 684.5 697.0 673.4 708.3 658.0 717.3 640.0 723.3 620.0 725.5 606.0 725.5 587.0 721.3 565.0 714.3 546.0 704.0 528.6 691.0 514.5 686.0 510.7 670.0 503.7 662.0 502.5 646.0 503.7 634.0 509.7 625.0 518.6 618.7 530.0 608.3 557.0 595.3 583.0 575.3 614.0 545.7 652.0 539.7 668.0 539.5 678.0 543.7 689.0 549.0 695.5 557.0 701.3 577.0 709.3 591.0 712.5 619.5 713.0ZM511.5 594.0 517.0 592.3 523.0 588.3 532.5 579.0 547.3 557.0 555.3 540.0 559.5 525.0 558.3 517.0 554.0 511.7 549.0 509.7 543.0 509.5 533.0 512.7 522.0 520.5 515.0 527.6 507.7 538.0 501.7 550.0 497.7 562.0 496.5 580.0 497.7 585.0 502.0 591.5 508.0 594.3 511.5 594.0Z\";const SUBPATHS=MARK_PATH.split(\"Z\").map(s=>s.trim()).filter(Boolean).map(s=>s+\"Z\");const SEEN_KEY=\"zhu-intro-seen\";const EASE=\"cubic-bezier(.8,.2,0,1)\"// the menu's curve\n;const STRIPS=4;const STRIP_STAGGER_S=.07;const LIFT_S=1;const DRAW_MS=1200// outline + fill finish this long after first paint\n;const MIN_HOLD_MS=350// keep the cover up at least this long after hydration\n;const PAGE_HOLD_MS=300// strips-only: how long the cover holds after first paint\n;const PAGE_MIN_HOLD_MS=150;const LIFT_MS=(LIFT_S+STRIP_STAGGER_S*(STRIPS-1))*1e3+60;const MENU_SELECTOR=\"#template-overlay\"// the Navbar menu lives in the layout template's overlay\n;const MENU_NAV_WINDOW_MS=3e3// a page mounting this soon after a menu link click came from the menu\n;const MENU_LIFT_PX=8// the menu counts as lifting once it has moved this far up\n;const MENU_REVEAL_TIMEOUT_MS=2500// reveal anyway if the menu's exit can't be observed\n;const COVER_EVENT=\"zhu:cover-lift\";const useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;// Notes when an internal link inside the menu is clicked, before the router navigates.\nif(typeof document!==\"undefined\"&&!window.__zhuMenuNavListener){window.__zhuMenuNavListener=true;document.addEventListener(\"click\",event=>{const link=event.target?.closest?.(\"a[href]\");const href=link?.getAttribute(\"href\")??\"\";if(link?.closest(MENU_SELECTOR)&&!/^[a-z][a-z0-9+.-]*:/i.test(href)){window.__zhuMenuNavAt=performance.now();}},true);}// True once any cover has mounted in this document, i.e. later mounts are in-site navigations.\nfunction isClientNavigation(){return typeof window!==\"undefined\"&&!!window.__zhuHydrated;}function openedFromMenu(){if(typeof window===\"undefined\")return false;const at=window.__zhuMenuNavAt;return at!==undefined&&performance.now()-at<MENU_NAV_WINDOW_MS;}// The menu's sliding container, while it is still mounted.\nfunction menuPanel(){return document.querySelector(`${MENU_SELECTOR} [data-framer-name=\"Container\"]`);}// Covers currently hiding the page. Text_Chr_Reveal starts once this is empty.\nfunction covers(){const w=window;if(!w.__zhuCovers)w.__zhuCovers=new Set;return w.__zhuCovers;}function raiseCover(token){covers().add(token);}function dropCover(token){const set=covers();if(!set.delete(token))return;if(set.size===0)window.dispatchEvent(new Event(COVER_EVENT));}const CSS=`\n@keyframes zhu-intro-draw { from { stroke-dashoffset: 1 } to { stroke-dashoffset: 0 } }\n@keyframes zhu-intro-fill { from { opacity: 0 } to { opacity: 1 } }\n.zhu-intro-line { stroke-dasharray: 1 1; stroke-dashoffset: 1; animation: zhu-intro-draw .9s cubic-bezier(.65,0,.35,1) forwards }\n.zhu-intro-fill { opacity: 0; animation: zhu-intro-fill .45s ease-out .7s forwards }\n`;function isLiveHost(){return typeof window!==\"undefined\"&&!/framer/i.test(window.location.hostname);}function bootScript(once){// Runs while the server-rendered HTML is parsed, before hydration: notes when the\n// cover first painted, and hides the mark at once for visitors who already saw it.\nreturn`(function(){try{var r=document.currentScript.parentElement,m=r.querySelector(\"[data-zhu-mark]\");window.__zhuIntroT=window.__zhuIntroT||performance.now();window.__zhuCoverBoot=true;if(m&&${once?1:0}&&!/framer/i.test(location.hostname)&&sessionStorage.getItem(\"${SEEN_KEY}\"))m.style.display=\"none\"}catch(e){}})()`;}/**\n * Logo Intro\n *\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 800\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function LogoIntro(props){const{mode=\"intro\",background=\"#151513\",ink=\"#EFEEEC\",markSize=84,oncePerSession=true,style}=props;const isStatic=useIsStaticRenderer();// Both are false on a full page load, so the server render always matches the first\n// client render; they only differ for in-site navigations.\nconst[clientNav]=useState(isClientNavigation);const[fromMenu]=useState(()=>clientNav&&openedFromMenu());const[phase,setPhase]=useState(fromMenu?\"done\":\"draw\");const[showMark,setShowMark]=useState(mode===\"intro\"&&!clientNav);const[token]=useState(()=>({}));// Layout effect, so the cover is registered before any entrance animation checks for it.\nuseIsomorphicLayoutEffect(()=>{if(isStatic)return;raiseCover(token);window.__zhuCoverBoot=false;return()=>dropCover(token);},[isStatic,token]);// The page shows once the strips start lifting, or once the menu starts lifting off it.\n// The menu's exit can start late on heavy pages, so it is watched rather than timed.\nuseEffect(()=>{if(isStatic||phase===\"draw\")return;if(!fromMenu){dropCover(token);return;}const start=performance.now();let frame=0;const watch=()=>{const panel=menuPanel();const lifting=!panel||panel.getBoundingClientRect().top<-MENU_LIFT_PX;if(lifting||performance.now()-start>MENU_REVEAL_TIMEOUT_MS)dropCover(token);else frame=requestAnimationFrame(watch);};frame=requestAnimationFrame(watch);return()=>cancelAnimationFrame(frame);},[isStatic,phase,fromMenu,token]);useEffect(()=>{if(isStatic)return;const w=window;w.__zhuHydrated=true;const painted=w.__zhuIntroT;w.__zhuIntroT=undefined;if(fromMenu){w.__zhuMenuNavAt=undefined;return;}const reduced=window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;if(reduced){setPhase(\"done\");return;}let mark=mode===\"intro\"&&!clientNav;if(mark){try{const seen=!!window.sessionStorage.getItem(SEEN_KEY);window.sessionStorage.setItem(SEEN_KEY,\"1\");if(oncePerSession&&seen&&isLiveHost())mark=false;}catch(e){}}setShowMark(mark);const sincePaint=performance.now()-(painted??performance.now());const liftIn=mark?Math.max(DRAW_MS-sincePaint,MIN_HOLD_MS):Math.max(PAGE_HOLD_MS-sincePaint,PAGE_MIN_HOLD_MS);const t1=window.setTimeout(()=>setPhase(\"lift\"),liftIn);const t2=window.setTimeout(()=>setPhase(\"done\"),liftIn+LIFT_MS);return()=>{window.clearTimeout(t1);window.clearTimeout(t2);};},[isStatic,oncePerSession,mode,fromMenu,clientNav]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:8,left:\"50%\",transform:\"translateX(-50%)\",padding:\"4px 8px\",borderRadius:4,background,color:ink,font:\"500 11px/1.4 Inter, system-ui, sans-serif\",whiteSpace:\"nowrap\"},children:[mode===\"intro\"?\"Logo Intro\":\"Page Reveal\",\" \\xb7 plays on page load\"]})});}if(phase===\"done\")return null;const lifting=phase===\"lift\";const strokeWidth=1.4*MARK_W/markSize;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",pointerEvents:lifting?\"none\":\"auto\"},children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),Array.from({length:STRIPS},(_,i)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,left:`${100/STRIPS*i}%`,width:`calc(${100/STRIPS}% + 1px)`,background,transform:lifting?\"translateY(-101%)\":\"none\",transition:`transform ${LIFT_S}s ${EASE} ${i*STRIP_STAGGER_S}s`}},i)),mode===\"intro\"&&/*#__PURE__*/_jsx(\"div\",{\"data-zhu-mark\":\"\",style:{position:\"absolute\",inset:0,display:showMark?\"flex\":\"none\",alignItems:\"center\",justifyContent:\"center\",opacity:lifting?0:1,transform:lifting?\"translateY(-32px)\":\"none\",transition:`opacity .3s ease-out, transform ${LIFT_S}s ${EASE}`},children:/*#__PURE__*/_jsxs(\"svg\",{viewBox:`0 0 ${MARK_W} ${MARK_H}`,style:{width:`min(${markSize}px, 22vw)`,height:\"auto\",overflow:\"visible\",display:\"block\"},children:[/*#__PURE__*/_jsx(\"path\",{className:\"zhu-intro-fill\",d:MARK_PATH,fill:ink,fillRule:\"evenodd\"}),SUBPATHS.map((d,i)=>/*#__PURE__*/_jsx(\"path\",{className:\"zhu-intro-line\",d:d,pathLength:1,fill:\"none\",stroke:ink,strokeWidth:strokeWidth,strokeLinejoin:\"round\",style:{animationDelay:`${i*.06}s`}},i))]})}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:bootScript(oncePerSession)}})]});}addPropertyControls(LogoIntro,{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"intro\",\"page\"],optionTitles:[\"Logo Intro\",\"Page Reveal\"],defaultValue:\"intro\",displaySegmentedControl:true},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#151513\"},ink:{type:ControlType.Color,title:\"Logo\",defaultValue:\"#EFEEEC\",hidden:p=>p.mode===\"page\"},markSize:{type:ControlType.Number,title:\"Logo Size\",defaultValue:84,min:32,max:240,step:1,unit:\"px\",hidden:p=>p.mode===\"page\"},oncePerSession:{type:ControlType.Boolean,title:\"Logo Once / Session\",defaultValue:true,hidden:p=>p.mode===\"page\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LogoIntro\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"800\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LogoIntro.map","// Generated by Framer (0da2bc6)\nexport default function metadata(params,activeLocale){return{description:\"Welcome to the personal website of Zhu Yufan, a  researcher at Keio University Graduate School of Media Design.\",favicon:\"https://framerusercontent.com/assets/mguDQk80MMcZZFGKaZCMMkPztE.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/Rbqnw4fpCSg4Cy8RuagtxCP0JA.png\",title:\"ZHU YUFAN\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}