[{"data":1,"prerenderedAt":830},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:sbulooRjrHzRUlN7tTqXV4NyPwPyx3-QveZjYXpDy_M":72,"content-page-surround:docs:sbulooRjrHzRUlN7tTqXV4NyPwPyx3-QveZjYXpDy_M":819,"i-lucide:braces":822,"i-lucide:file-cog":826,"i-lucide:clipboard":828},[4,12,18,24,30,36,42,48,54,60,66],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"icon":10,"path":11},"Overview","content:docs:1.overview.md","1","en",false,"lucide:compass","\u002Fdocs\u002Foverview",{"title":13,"id":14,"canonicalKey":15,"locale":8,"draft":9,"icon":16,"path":17},"Checklist","content:docs:2.checklist.md","2","lucide:list-checks","\u002Fdocs\u002Fchecklist",{"title":19,"id":20,"canonicalKey":21,"locale":8,"draft":9,"icon":22,"path":23},"Set up a repository","content:docs:3.set-up-a-repository.md","3","lucide:folder-plus","\u002Fdocs\u002Fset-up-a-repository",{"title":25,"id":26,"canonicalKey":27,"locale":8,"draft":9,"icon":28,"path":29},"Migrate a repository","content:docs:4.migrate-a-repository.md","4","lucide:arrow-right-left","\u002Fdocs\u002Fmigrate-a-repository",{"title":31,"id":32,"canonicalKey":33,"locale":8,"draft":9,"icon":34,"path":35},"Releasing","content:docs:5.releasing.md","5","lucide:rocket","\u002Fdocs\u002Freleasing",{"title":37,"id":38,"canonicalKey":39,"locale":8,"draft":9,"icon":40,"path":41},"Write library docs","content:docs:6.writing-docs.md","6","lucide:book-open","\u002Fdocs\u002Fwriting-docs",{"title":43,"id":44,"canonicalKey":45,"locale":8,"draft":9,"icon":46,"path":47},"Dependencies","content:docs:7.dependencies.md","7","lucide:package-search","\u002Fdocs\u002Fdependencies",{"title":49,"id":50,"canonicalKey":51,"locale":8,"draft":9,"icon":52,"path":53},"Security reports and incidents","content:docs:8.security.md","8","lucide:shield-alert","\u002Fdocs\u002Fsecurity",{"title":55,"id":56,"canonicalKey":57,"locale":8,"draft":9,"icon":58,"path":59},"Adding tooling","content:docs:9.adding-tooling.md","9","lucide:hammer","\u002Fdocs\u002Fadding-tooling",{"title":61,"id":62,"canonicalKey":63,"locale":8,"draft":9,"icon":64,"path":65},"Maintain the fleet","content:docs:10.maintain-the-fleet.md","10","lucide:calendar-check","\u002Fdocs\u002Fmaintain-the-fleet",{"title":67,"id":68,"canonicalKey":69,"locale":8,"draft":9,"icon":70,"path":71},"Troubleshooting","content:docs:11.troubleshooting.md","11","lucide:wrench","\u002Fdocs\u002Ftroubleshooting",{"title":43,"description":73,"icon":46,"redirectFrom":74,"body":77,"type":807,"id":44,"canonicalKey":45,"draft":9,"partial":9,"locale":8,"collection":808,"navigationFile":9,"file":809,"route":814,"resolution":816},"Renovate for updates, a 24-hour quarantine for new versions, an install-script allowlist, and a CI audit that blocks only advisories users would install.",[75,76],"\u002Fdocs\u002Fstandards\u002Fdependencies","\u002Fdocs\u002Fprocedures\u002Fdependency-update",{"type":78,"children":79,"toc":798},"root",[80,88,95,106,207,251,269,274,311,316,322,333,484,511,544,549,555,581,635,647,735,740,746,751,786],{"type":81,"tag":82,"props":83,"children":84},"element","p",{},[85],{"type":86,"value":87},"text","Most supply-chain attacks on npm are caught and pulled within hours. We do not\ninstall a version until it is a day old, we do not run install scripts we did\nnot approve, and publishing never runs dependency code. All of this is built\ninto pnpm and Renovate; there are no custom dependency scripts.",{"type":81,"tag":89,"props":90,"children":92},"h2",{"id":91},"quarantine",[93],{"type":86,"value":94},"Quarantine",{"type":81,"tag":82,"props":96,"children":97},{},[98,104],{"type":81,"tag":99,"props":100,"children":101},"code",{},[102],{"type":86,"value":103},"pnpm-workspace.yaml",{"type":86,"value":105},":",{"type":81,"tag":107,"props":108,"children":111},"pre",{"language":109,"class":110},"yaml","shiki shiki-themes light-plus dark-plus dark:dark-plus",[112],{"type":81,"tag":99,"props":113,"children":115},{"class":114},"language-yaml",[116,146,148,171,172,190,191],{"type":81,"tag":117,"props":118,"children":121},"span",{"class":119,"style":120},"line","display: inline",[122,128,134,140],{"type":81,"tag":117,"props":123,"children":125},{"style":124},"color:#800000;--shiki-dark:#569CD6",[126],{"type":86,"value":127},"minimumReleaseAge",{"type":81,"tag":117,"props":129,"children":131},{"style":130},"color:#000000;--shiki-dark:#D4D4D4",[132],{"type":86,"value":133},": ",{"type":81,"tag":117,"props":135,"children":137},{"style":136},"color:#098658;--shiki-dark:#B5CEA8",[138],{"type":86,"value":139},"1440",{"type":81,"tag":117,"props":141,"children":143},{"style":142},"color:#008000;--shiki-dark:#6A9955",[144],{"type":86,"value":145},"       # minutes: new versions wait 24 hours",{"type":86,"value":147},"\n",{"type":81,"tag":117,"props":149,"children":150},{"class":119,"style":120},[151,156,160,166],{"type":81,"tag":117,"props":152,"children":153},{"style":124},[154],{"type":86,"value":155},"minimumReleaseAgeStrict",{"type":81,"tag":117,"props":157,"children":158},{"style":130},[159],{"type":86,"value":133},{"type":81,"tag":117,"props":161,"children":163},{"style":162},"color:#0000FF;--shiki-dark:#569CD6",[164],{"type":86,"value":165},"true",{"type":81,"tag":117,"props":167,"children":168},{"style":142},[169],{"type":86,"value":170}," # fail instead of quietly excluding too-young versions",{"type":86,"value":147},{"type":81,"tag":117,"props":173,"children":174},{"class":119,"style":120},[175,180,185],{"type":81,"tag":117,"props":176,"children":177},{"style":124},[178],{"type":86,"value":179},"allowBuilds",{"type":81,"tag":117,"props":181,"children":182},{"style":130},[183],{"type":86,"value":184},":                  ",{"type":81,"tag":117,"props":186,"children":187},{"style":142},[188],{"type":86,"value":189},"# the only dependencies allowed to run install scripts",{"type":86,"value":147},{"type":81,"tag":117,"props":192,"children":193},{"class":119,"style":120},[194,199,203],{"type":81,"tag":117,"props":195,"children":196},{"style":124},[197],{"type":86,"value":198},"  esbuild",{"type":81,"tag":117,"props":200,"children":201},{"style":130},[202],{"type":86,"value":133},{"type":81,"tag":117,"props":204,"children":205},{"style":162},[206],{"type":86,"value":165},{"type":81,"tag":82,"props":208,"children":209},{},[210,212,216,218,223,225,229,231,235,237,242,244,249],{"type":86,"value":211},"pnpm refuses to resolve a version younger than 24 hours, including transitive\nones. With ",{"type":81,"tag":99,"props":213,"children":214},{},[215],{"type":86,"value":155},{"type":86,"value":217}," off, pnpm would instead add such a version\nto ",{"type":81,"tag":99,"props":219,"children":220},{},[221],{"type":86,"value":222},"minimumReleaseAgeExclude",{"type":86,"value":224}," by itself and install it; strict mode fails in CI\nand asks at the terminal. pnpm 11 turns strict mode on whenever\n",{"type":81,"tag":99,"props":226,"children":227},{},[228],{"type":86,"value":127},{"type":86,"value":230}," is set; the starters write it out so nobody turns it off\nby accident. Only list packages in ",{"type":81,"tag":99,"props":232,"children":233},{},[234],{"type":86,"value":179},{"type":86,"value":236}," (",{"type":81,"tag":99,"props":238,"children":239},{},[240],{"type":86,"value":241},"onlyBuiltDependencies",{"type":86,"value":243}," on pnpm 10)\nthat really need a build step. Never set ",{"type":81,"tag":99,"props":245,"children":246},{},[247],{"type":86,"value":248},"dangerouslyAllowAllBuilds",{"type":86,"value":250},".",{"type":81,"tag":82,"props":252,"children":253},{},[254,256,261,262,267],{"type":86,"value":255},"Pin pnpm in ",{"type":81,"tag":99,"props":257,"children":258},{},[259],{"type":86,"value":260},"package.json",{"type":86,"value":236},{"type":81,"tag":99,"props":263,"children":264},{},[265],{"type":86,"value":266},"\"packageManager\": \"pnpm@11.x.y\"",{"type":86,"value":268},"). An older pnpm\ncan silently ignore these settings.",{"type":81,"tag":82,"props":270,"children":271},{},[272],{"type":86,"value":273},"The quarantine applies to third-party versions only. Our own packages skip it,\nso a fix in one Lupinum library reaches the others the same day:",{"type":81,"tag":107,"props":275,"children":276},{"language":109,"class":110},[277],{"type":81,"tag":99,"props":278,"children":279},{"class":114},[280,291,292],{"type":81,"tag":117,"props":281,"children":282},{"class":119,"style":120},[283,287],{"type":81,"tag":117,"props":284,"children":285},{"style":124},[286],{"type":86,"value":222},{"type":81,"tag":117,"props":288,"children":289},{"style":130},[290],{"type":86,"value":105},{"type":86,"value":147},{"type":81,"tag":117,"props":293,"children":294},{"class":119,"style":120},[295,300,306],{"type":81,"tag":117,"props":296,"children":297},{"style":130},[298],{"type":86,"value":299},"  - ",{"type":81,"tag":117,"props":301,"children":303},{"style":302},"color:#0000FF;--shiki-dark:#CE9178",[304],{"type":86,"value":305},"'@lupinum\u002F*'",{"type":81,"tag":117,"props":307,"children":308},{"style":142},[309],{"type":86,"value":310}," # our own scope; published only by our protected workflows",{"type":81,"tag":82,"props":312,"children":313},{},[314],{"type":86,"value":315},"This is the one standing exclusion, decided on 2026-10-07 while the Ginko\nlibraries release often. Review it when release frequency drops.",{"type":81,"tag":89,"props":317,"children":319},{"id":318},"updates",[320],{"type":86,"value":321},"Updates",{"type":81,"tag":82,"props":323,"children":324},{},[325,327,332],{"type":86,"value":326},"Renovate opens update pull requests. ",{"type":81,"tag":99,"props":328,"children":329},{},[330],{"type":86,"value":331},".github\u002Frenovate.json",{"type":86,"value":105},{"type":81,"tag":107,"props":334,"children":336},{"language":335,"class":110},"json",[337],{"type":81,"tag":99,"props":338,"children":340},{"class":339},"language-json",[341,349,350,385,386,408,409,430,431,452,453,475,476],{"type":81,"tag":117,"props":342,"children":343},{"class":119,"style":120},[344],{"type":81,"tag":117,"props":345,"children":346},{"style":130},[347],{"type":86,"value":348},"{",{"type":86,"value":147},{"type":81,"tag":117,"props":351,"children":352},{"class":119,"style":120},[353,359,364,370,375,380],{"type":81,"tag":117,"props":354,"children":356},{"style":355},"color:#0451A5;--shiki-dark:#9CDCFE",[357],{"type":86,"value":358},"  \"extends\"",{"type":81,"tag":117,"props":360,"children":361},{"style":130},[362],{"type":86,"value":363},": [",{"type":81,"tag":117,"props":365,"children":367},{"style":366},"color:#A31515;--shiki-dark:#CE9178",[368],{"type":86,"value":369},"\"config:recommended\"",{"type":81,"tag":117,"props":371,"children":372},{"style":130},[373],{"type":86,"value":374},", ",{"type":81,"tag":117,"props":376,"children":377},{"style":366},[378],{"type":86,"value":379},"\"helpers:pinGitHubActionDigests\"",{"type":81,"tag":117,"props":381,"children":382},{"style":130},[383],{"type":86,"value":384},"],",{"type":86,"value":147},{"type":81,"tag":117,"props":387,"children":388},{"class":119,"style":120},[389,394,398,403],{"type":81,"tag":117,"props":390,"children":391},{"style":355},[392],{"type":86,"value":393},"  \"minimumReleaseAge\"",{"type":81,"tag":117,"props":395,"children":396},{"style":130},[397],{"type":86,"value":133},{"type":81,"tag":117,"props":399,"children":400},{"style":366},[401],{"type":86,"value":402},"\"1 day\"",{"type":81,"tag":117,"props":404,"children":405},{"style":130},[406],{"type":86,"value":407},",",{"type":86,"value":147},{"type":81,"tag":117,"props":410,"children":411},{"class":119,"style":120},[412,417,421,426],{"type":81,"tag":117,"props":413,"children":414},{"style":355},[415],{"type":86,"value":416},"  \"internalChecksFilter\"",{"type":81,"tag":117,"props":418,"children":419},{"style":130},[420],{"type":86,"value":133},{"type":81,"tag":117,"props":422,"children":423},{"style":366},[424],{"type":86,"value":425},"\"strict\"",{"type":81,"tag":117,"props":427,"children":428},{"style":130},[429],{"type":86,"value":407},{"type":86,"value":147},{"type":81,"tag":117,"props":432,"children":433},{"class":119,"style":120},[434,439,443,448],{"type":81,"tag":117,"props":435,"children":436},{"style":355},[437],{"type":86,"value":438},"  \"rangeStrategy\"",{"type":81,"tag":117,"props":440,"children":441},{"style":130},[442],{"type":86,"value":133},{"type":81,"tag":117,"props":444,"children":445},{"style":366},[446],{"type":86,"value":447},"\"replace\"",{"type":81,"tag":117,"props":449,"children":450},{"style":130},[451],{"type":86,"value":407},{"type":86,"value":147},{"type":81,"tag":117,"props":454,"children":455},{"class":119,"style":120},[456,461,465,470],{"type":81,"tag":117,"props":457,"children":458},{"style":355},[459],{"type":86,"value":460},"  \"schedule\"",{"type":81,"tag":117,"props":462,"children":463},{"style":130},[464],{"type":86,"value":363},{"type":81,"tag":117,"props":466,"children":467},{"style":366},[468],{"type":86,"value":469},"\"before 6am on Monday\"",{"type":81,"tag":117,"props":471,"children":472},{"style":130},[473],{"type":86,"value":474},"]",{"type":86,"value":147},{"type":81,"tag":117,"props":477,"children":478},{"class":119,"style":120},[479],{"type":81,"tag":117,"props":480,"children":481},{"style":130},[482],{"type":86,"value":483},"}",{"type":81,"tag":82,"props":485,"children":486},{},[487,489,494,496,501,503,509],{"type":86,"value":488},"Renovate waits the same day before it proposes a version, and keeps GitHub\nActions pinned to full commit SHAs with a version comment. ",{"type":81,"tag":99,"props":490,"children":491},{},[492],{"type":86,"value":493},"replace",{"type":86,"value":495}," keeps the\nranges that consumers of a library see; a repository that publishes nothing\nmay use ",{"type":81,"tag":99,"props":497,"children":498},{},[499],{"type":86,"value":500},"pin",{"type":86,"value":502},". The weekly schedule batches updates into one review session.\nRenovate opens security updates outside the schedule; pnpm still makes the\nnew version wait 24 hours unless you exclude it (see the last section). Dependabot stays on\nfor security alerts only; its security updates are off (see\n",{"type":81,"tag":504,"props":505,"children":507},"a",{"href":506},"\u002Fdocs\u002Fset-up-a-repository#github-settings",[508],{"type":86,"value":19},{"type":86,"value":510},"), so only\nRenovate opens update pull requests.",{"type":81,"tag":82,"props":512,"children":513},{},[514,516,521,523,528,530,535,537,542],{"type":86,"value":515},"When an update changes ",{"type":81,"tag":99,"props":517,"children":518},{},[519],{"type":86,"value":520},"dependencies",{"type":86,"value":522}," or ",{"type":81,"tag":99,"props":524,"children":525},{},[526],{"type":86,"value":527},"peerDependencies",{"type":86,"value":529}," of a published\npackage (not only the lockfile), users get the change with the next version.\nSuch a pull request needs a changeset that bumps that package, at least\n",{"type":81,"tag":99,"props":531,"children":532},{},[533],{"type":86,"value":534},"patch",{"type":86,"value":536},", for example \"Change the ",{"type":81,"tag":99,"props":538,"children":539},{},[540],{"type":86,"value":541},"foo",{"type":86,"value":543}," dependency to v2.\"; CI fails without\none. Push it to the Renovate branch. Dev dependencies and lockfile-only\nupdates need no changeset.",{"type":81,"tag":82,"props":545,"children":546},{},[547],{"type":86,"value":548},"An agent may merge a green Renovate pull request for a patch or minor update.\nA major update, or an update to anything that runs in CI or at build time\n(bundlers, test runners, GitHub Actions), gets a quick read of the release\nnotes first.",{"type":81,"tag":89,"props":550,"children":552},{"id":551},"audit",[553],{"type":86,"value":554},"Audit",{"type":81,"tag":82,"props":556,"children":557},{},[558,560,565,567,572,574,579],{"type":86,"value":559},"An advisory blocks only when users would install the vulnerable code. CI runs\n",{"type":81,"tag":99,"props":561,"children":562},{},[563],{"type":86,"value":564},"node scripts\u002Faudit-deps.mjs",{"type":86,"value":566}," as part of ",{"type":81,"tag":99,"props":568,"children":569},{},[570],{"type":86,"value":571},"pnpm verify",{"type":86,"value":573},". It runs\n",{"type":81,"tag":99,"props":575,"children":576},{},[577],{"type":86,"value":578},"pnpm audit --prod",{"type":86,"value":580}," and sorts every finding by where it comes from:",{"type":81,"tag":582,"props":583,"children":584},"table",{},[585,604],{"type":81,"tag":586,"props":587,"children":588},"thead",{},[589],{"type":81,"tag":590,"props":591,"children":592},"tr",{},[593,599],{"type":81,"tag":594,"props":595,"children":596},"th",{},[597],{"type":86,"value":598},"Finding",{"type":81,"tag":594,"props":600,"children":601},{},[602],{"type":86,"value":603},"Result",{"type":81,"tag":605,"props":606,"children":607},"tbody",{},[608,622],{"type":81,"tag":590,"props":609,"children":610},{},[611,617],{"type":81,"tag":612,"props":613,"children":614},"td",{},[615],{"type":86,"value":616},"High or critical, reached through the production dependencies of a published package",{"type":81,"tag":612,"props":618,"children":619},{},[620],{"type":86,"value":621},"CI fails",{"type":81,"tag":590,"props":623,"children":624},{},[625,630],{"type":81,"tag":612,"props":626,"children":627},{},[628],{"type":86,"value":629},"Anything in the docs site, in dev tools, or below high",{"type":81,"tag":612,"props":631,"children":632},{},[633],{"type":86,"value":634},"A warning in the CI log; Renovate fixes it on its normal schedule",{"type":81,"tag":82,"props":636,"children":637},{},[638,640,645],{"type":86,"value":639},"The docs site and the test tools never reach users, so an advisory there must\nnot block every pull request and release. Dependabot alerts stay on as\nnotifications; the audit lists them as advice (OPS-03), and CI decides what\nblocks. When ",{"type":81,"tag":99,"props":641,"children":642},{},[643],{"type":86,"value":644},"audit-deps.mjs",{"type":86,"value":646}," fails:",{"type":81,"tag":648,"props":649,"children":650},"ol",{},[651,657,724],{"type":81,"tag":652,"props":653,"children":654},"li",{},[655],{"type":86,"value":656},"Update the affected package, usually through the open Renovate pull request.",{"type":81,"tag":652,"props":658,"children":659},{},[660,665],{"type":81,"tag":82,"props":661,"children":662},{},[663],{"type":86,"value":664},"If no fixed version exists, check whether the vulnerable code is reachable\nfrom the library. If it is not, ignore that one advisory with a reason and\na date to look again:",{"type":81,"tag":107,"props":666,"children":667},{"language":109,"class":110},[668],{"type":81,"tag":99,"props":669,"children":670},{"class":114},[671,679,680,692,693,705,706],{"type":81,"tag":117,"props":672,"children":673},{"class":119,"style":120},[674],{"type":81,"tag":117,"props":675,"children":676},{"style":142},[677],{"type":86,"value":678},"# pnpm-workspace.yaml",{"type":86,"value":147},{"type":81,"tag":117,"props":681,"children":682},{"class":119,"style":120},[683,688],{"type":81,"tag":117,"props":684,"children":685},{"style":124},[686],{"type":86,"value":687},"auditConfig",{"type":81,"tag":117,"props":689,"children":690},{"style":130},[691],{"type":86,"value":105},{"type":86,"value":147},{"type":81,"tag":117,"props":694,"children":695},{"class":119,"style":120},[696,701],{"type":81,"tag":117,"props":697,"children":698},{"style":124},[699],{"type":86,"value":700},"  ignoreGhsas",{"type":81,"tag":117,"props":702,"children":703},{"style":130},[704],{"type":86,"value":105},{"type":86,"value":147},{"type":81,"tag":117,"props":707,"children":708},{"class":119,"style":120},[709,714,719],{"type":81,"tag":117,"props":710,"children":711},{"style":130},[712],{"type":86,"value":713},"    - ",{"type":81,"tag":117,"props":715,"children":716},{"style":302},[717],{"type":86,"value":718},"GHSA-xxxx-xxxx-xxxx",{"type":81,"tag":117,"props":720,"children":721},{"style":142},[722],{"type":86,"value":723}," # not reachable from our code; recheck 2026-11-01",{"type":81,"tag":652,"props":725,"children":726},{},[727,729,734],{"type":86,"value":728},"If it is reachable, treat it as a ",{"type":81,"tag":504,"props":730,"children":731},{"href":53},[732],{"type":86,"value":733},"security report",{"type":86,"value":250},{"type":81,"tag":82,"props":736,"children":737},{},[738],{"type":86,"value":739},"Only ignore an advisory that blocks. A warning needs no entry.",{"type":81,"tag":89,"props":741,"children":743},{"id":742},"when-the-quarantine-blocks-something-you-need-now",[744],{"type":86,"value":745},"When the quarantine blocks something you need now",{"type":81,"tag":82,"props":747,"children":748},{},[749],{"type":86,"value":750},"First try an older version that has the fix. If that is not possible, for an\nurgent security fix only, exclude one exact version:",{"type":81,"tag":107,"props":752,"children":753},{"language":109,"class":110},[754],{"type":81,"tag":99,"props":755,"children":756},{"class":114},[757,768,769],{"type":81,"tag":117,"props":758,"children":759},{"class":119,"style":120},[760,764],{"type":81,"tag":117,"props":761,"children":762},{"style":124},[763],{"type":86,"value":222},{"type":81,"tag":117,"props":765,"children":766},{"style":130},[767],{"type":86,"value":105},{"type":86,"value":147},{"type":81,"tag":117,"props":770,"children":771},{"class":119,"style":120},[772,776,781],{"type":81,"tag":117,"props":773,"children":774},{"style":130},[775],{"type":86,"value":299},{"type":81,"tag":117,"props":777,"children":778},{"style":302},[779],{"type":86,"value":780},"some-package@1.2.3",{"type":81,"tag":117,"props":782,"children":783},{"style":142},[784],{"type":86,"value":785}," # urgent fix for GHSA-…; remove after 2026-10-02",{"type":81,"tag":82,"props":787,"children":788},{},[789,791,796],{"type":86,"value":790},"Remove the line once the version is a day old. The audit reports every\nexclusion except ",{"type":81,"tag":99,"props":792,"children":793},{},[794],{"type":86,"value":795},"@lupinum\u002F*",{"type":86,"value":797}," as a warning until you do. Never exclude a range\nor a whole third-party package.",{"title":799,"searchDepth":800,"depth":800,"links":801},"",4,[802,804,805,806],{"id":91,"depth":803,"text":94},2,{"id":318,"depth":803,"text":321},{"id":551,"depth":803,"text":554},{"id":742,"depth":803,"text":745},"markdown","docs",{"source":810,"path":811,"stem":812,"dir":808,"extension":813},"content","docs\u002F7.dependencies.md","docs\u002F7.dependencies","md",{"requestedPath":47,"resolvedPath":47,"alternates":815},[],{"requested":817,"resolved":818,"usedFallback":9},{},{"locale":8},{"previous":820,"next":821},{"title":37,"id":38,"canonicalKey":39,"locale":8,"draft":9,"path":41},{"title":49,"id":50,"canonicalKey":51,"locale":8,"draft":9,"path":53},{"left":823,"top":823,"width":824,"height":824,"rotate":823,"vFlip":9,"hFlip":9,"body":825},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2a2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1m8 0h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"\u002F>",{"left":823,"top":823,"width":824,"height":824,"rotate":823,"vFlip":9,"hFlip":9,"body":827},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8zm5 0v12a2 2 0 0 1-2 2h-4.182M3.305 19.53l.923-.382M4 10.592V4a2 2 0 0 1 2-2h8M4.228 16.852l-.924-.383m2.548-1.241l-.383-.923m.383 6.467l-.383.924m2.679-6.468l.383-.923m-.001 7.391l-.382-.924m1.625-3.92l.922-.383m-.922 2.679l.922.383\"\u002F>\u003Ccircle cx=\"7\" cy=\"18\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":823,"top":823,"width":824,"height":824,"rotate":823,"vFlip":9,"hFlip":9,"body":829},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1791448771191]