[{"data":1,"prerenderedAt":758},["ShallowReactive",2],{"i-lucide:search":3,"i-lucide:sun":8,"i-lucide:menu":10,"release-hy-1.0.0-beta.1":12,"releases-index-hy":430,"i-lucide:copy":754,"i-lucide:link":756},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"/>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"/>\u003C/g>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"/>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"/>\u003C/g>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"/>",{"doc":13,"isFallback":6},{"id":14,"title":15,"body":16,"channel":419,"date":420,"description":421,"extension":422,"meta":423,"navigation":424,"path":425,"seo":426,"seoTitle":15,"stem":427,"version":428,"__hash__":429},"releasesHy/hy/releases/1.0.0-beta.1.md","Maran 1.0.0-beta.1 — առաջին տեղադրելի թողարկումը",{"type":17,"value":18,"toc":411},"minimark",[19,27,30,35,72,87,90,94,102,182,209,212,257,270,274,338,342,345,349,352,392,395,399,407],[20,21,22,23],"p",{},"Առաջին թողարկումը, որը տեղադրվում է սերվերի վրա և հոսթինգի հաշիվը տանում է սկզբից մինչև վերջ։\nՀրապարակված է որպես բետա, և բառը նշանակում է հենց այն, ինչ նշանակում է․ ",[24,25,26],"strong",{},"դեռ մի՛ տեղավորեք դրա\nվրա ուրիշի հաճախորդներին։",[20,28,29],{},"Ծրագիրը տեղադրվում է, աշխատում է և անում այն, ինչ գրված է իր էկրաններին։ Երեք բան, որոնց համար\nվճարովի հոսթինգ արտադրանքը պարտավոր է վստահելի լինել, փորձարկվել է միայն նախագծի սեփական\nկոնտեյներներում — ոչ մի վկայագիր չի թողարկվել իրական հավաստագրող կենտրոնի կողմից, ոչ մի սկավառակային\nսահմանաչափ չի կիրառվել իրական ֆայլային համակարգի կողմից, և ոչ մի վերականգնում չի կատարվել իրական\nսարքավորման վրա։ Սրանք հայտնի սխալներ չեն — սրանք պնդումներ են, որոնք դեռ ոչ ոք չի ստուգել այնտեղ,\nորտեղ դա կարևոր է։",[31,32,34],"h2",{"id":33},"տեղադրում","Տեղադրում",[36,37,42],"pre",{"className":38,"code":39,"language":40,"meta":41,"style":41},"language-bash shiki shiki-themes github-light github-dark","curl -sSL https://get.maran.innovayse.com | sudo bash\n","bash","",[43,44,45],"code",{"__ignoreMap":41},[46,47,50,54,58,62,66,69],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"sScJk","curl",[46,55,57],{"class":56},"sj4cs"," -sSL",[46,59,61],{"class":60},"sZZnC"," https://get.maran.innovayse.com",[46,63,65],{"class":64},"szBVR"," |",[46,67,68],{"class":52}," sudo",[46,70,71],{"class":60}," bash\n",[20,73,74,75,78,79,86],{},"Տեղադրիչը ներբեռնում է այն արտեֆակտները, որոնք նշված են նախագծի թողարկման բանալիով ստորագրված\nմանիֆեստում, և մերժում է ամեն ինչ, ինչի ստորագրությունը կամ ստուգիչ գումարը չի համընկնում։\nՄանիֆեստը և դրանում նշված արտեֆակտները հրապարակված են ",[43,76,77],{},"releases.maran.innovayse.com"," հասցեում, իսկ\nայն պիտակի ելակետային կոդը, որից հավաքվել է թողարկումը՝ ",[80,81,85],"a",{"href":82,"rel":83},"https://github.com/innovayse/maran",[84],"nofollow","GitHub","-ում։",[20,88,89],{},"Նայեք, թե ինչ է անելու տեղադրիչը, նախքան այն root-ով գործարկելը — ինչպես ցանկացած սցենարի դեպքում,\nորին հանձնում եք ձեր սերվերը․ ներբեռնեք, կարդացեք, հետո գործարկեք։",[31,91,93],{"id":92},"ֆայլերը-և-ինչպես-ինքներդ-ստուգել-դրանք","Ֆայլերը և ինչպես ինքներդ ստուգել դրանք",[20,95,96,97,101],{},"Այն ամենը, ինչ ներբեռնում է տեղադրիչը, հրապարակված է\n",[80,98,77],{"href":99,"rel":100},"https://releases.maran.innovayse.com",[84],"-ում և թվարկված է նախագծի\nթողարկման բանալիով ստորագրված մանիֆեստում։",[103,104,105,121],"table",{},[106,107,108],"thead",{},[109,110,111,115,118],"tr",{},[112,113,114],"th",{},"Ֆայլ",[112,116,117],{},"Չափ",[112,119,120],{},"SHA-256",[122,123,124,144,163],"tbody",{},[109,125,126,136,139],{},[127,128,129],"td",{},[80,130,133],{"href":131,"rel":132},"https://releases.maran.innovayse.com/beta/agent-x86_64.tar.gz",[84],[43,134,135],{},"agent-x86_64.tar.gz",[127,137,138],{},"2.9 MB",[127,140,141],{},[43,142,143],{},"f9a57621ef349cb1bfc2df5f7f812685fb3a5a690834b18bd1ae8df2493fbadc",[109,145,146,155,158],{},[127,147,148],{},[80,149,152],{"href":150,"rel":151},"https://releases.maran.innovayse.com/beta/api-x86_64.tar.gz",[84],[43,153,154],{},"api-x86_64.tar.gz",[127,156,157],{},"25.4 MB",[127,159,160],{},[43,161,162],{},"6f367807e265d06bee9db37d692d0748c5fb815967965c0e59675a0b8468c799",[109,164,165,174,177],{},[127,166,167],{},[80,168,171],{"href":169,"rel":170},"https://releases.maran.innovayse.com/beta/frontend-x86_64.tar.gz",[84],[43,172,173],{},"frontend-x86_64.tar.gz",[127,175,176],{},"340 KB",[127,178,179],{},[43,180,181],{},"27879087ddb1a0d1e05e92b9b0b4dec6da21a99263388a74e122681ada828009",[20,183,184,185,192,193,200,201,208],{},"Ստորագրված ցանկը ",[80,186,189],{"href":187,"rel":188},"https://releases.maran.innovayse.com/beta/manifest.json",[84],[43,190,191],{},"manifest.json","-ն է,\nկողքին՝ ",[80,194,197],{"href":195,"rel":196},"https://releases.maran.innovayse.com/beta/manifest.json.sig",[84],[43,198,199],{},"manifest.json.sig",", իսկ\n",[80,202,205],{"href":203,"rel":204},"https://releases.maran.innovayse.com/beta/integrity-manifest.json",[84],[43,206,207],{},"integrity-manifest.json","-ը\nգրանցում է արխիվների ներսի ամեն ֆայլ, ոչ միայն արխիվները։",[20,210,211],{},"Եթե չեք ուզում որևէ բան խողովակով ուղարկել root-shell — նույն տեղադրումն առանց դրա․",[36,213,215],{"className":38,"code":214,"language":40,"meta":41,"style":41},"curl -O https://releases.maran.innovayse.com/installer/maran-installer.tar.gz\ntar -xzf maran-installer.tar.gz\nsudo bash installer/install.sh --channel beta\n",[43,216,217,227,239],{"__ignoreMap":41},[46,218,219,221,224],{"class":48,"line":49},[46,220,53],{"class":52},[46,222,223],{"class":56}," -O",[46,225,226],{"class":60}," https://releases.maran.innovayse.com/installer/maran-installer.tar.gz\n",[46,228,230,233,236],{"class":48,"line":229},2,[46,231,232],{"class":52},"tar",[46,234,235],{"class":56}," -xzf",[46,237,238],{"class":60}," maran-installer.tar.gz\n",[46,240,242,245,248,251,254],{"class":48,"line":241},3,[46,243,244],{"class":52},"sudo",[46,246,247],{"class":60}," bash",[46,249,250],{"class":60}," installer/install.sh",[46,252,253],{"class":56}," --channel",[46,255,256],{"class":60}," beta\n",[20,258,259,260,263,264,269],{},"Հանրային բանալին, որով ստուգում է տեղադրիչը, գալիս է հենց այդ փաթեթի ներսում՝\n",[43,261,262],{},"installer/keys/release-signing.pub","։ Արժե ուղիղ ասել․ նույն հոսթից ներբեռնված բանալիով ստուգված\nստորագրությունն ապացուցում է միայն, որ երկուսն էլ նույն տեղից են եկել։ Ավելին ապացուցելու համար\nհամեմատեք այդ բանալին ",[80,265,268],{"href":266,"rel":267},"https://github.com/innovayse/maran/blob/main/installer/keys/release-signing.pub",[84],"պահեստարանի պատճենի հետ","։",[31,271,273],{"id":272},"ինչ-է-ստանում-սերվերը","Ինչ է ստանում սերվերը",[275,276,277,284,290,296,302,308,314,332],"ul",{},[278,279,280,283],"li",{},[24,281,282],{},"Հոսթինգի հաշիվները իրական Linux օգտատերեր են։"," Հաշիվ ստեղծելը սերվերի վրա ստեղծում է\nհամակարգային օգտատեր, տնային պանակ և սակագնի սկավառակային սահմանաչափ․ կասեցումը, վերականգնումը և\nջնջումը նույնպես հասնում են հոսթին։ Նախ գործում է գործակալը, հետո հայտնվում է տողը բազայում —\nուստի վահանակը երբեք չի հայտարարում հաշիվ, որը սերվերի վրա չկա։",[278,285,286,289],{},[24,287,288],{},"Կայքեր"," — ստատիկ, PHP և հակադարձ պրոքսի — տիրույթների կեղծանուններով և փաստաթղթերի արմատով\nհաշվի տնային պանակի ներսում։ Գործակալը կազմում է կարգավորումը, ստիպում սերվերի սեփական\nվավերացնողին ստուգել արդյունքը և հետ գլորում ֆայլը, եթե ստուգումը կամ վերաբեռնումը մերժել են —\nուստի վատ կազմումը չի կարող տապալել սերվերի մյուս կայքերը։",[278,291,292,295],{},[24,293,294],{},"PHP-ի մի քանի տարբերակ միաժամանակ","՝ յուրաքանչյուր հաշվի համար առանձին պուլ ըստ տարբերակի,\nաշխատելով հենց այդ հաշվի Linux օգտատիրոջ անունից։ Հաճախորդը կարող է փոխել թույլատրված\nկարգավորումների ենթաբազմությունը․ ցանկից դուրս անունը մերժվում է, ոչ թե լուռ անտեսվում։",[278,297,298,301],{},[24,299,300],{},"SSL"," ACME-ով HTTP-01 ստուգմամբ, սեփական վկայագրերի վերբեռնում և թարմացում ժամկետի լրանալուց\nերեսուն օր առաջ։ Բանալիները գրվում են միայն root-ին հասանելի պահեստում՝ տնային պանակներից դուրս,\nքանի որ կայքի PHP-ն աշխատում է հաճախորդի անունից։",[278,303,304,307],{},[24,305,306],{},"Տվյալների բազաներ","՝ յուրաքանչյուրի համար առանձին օգտատեր, սակագնի սահմանաչափեր և չափի ցուցում։\nԳաղտնաբառը գեներացվում է, ցուցադրվում մեկ անգամ և չի պահվում — ուստի վերականգնումը վերականգնում չէ,\nայլ վերականգնում նորից սահմանելով։",[278,309,310,313],{},[24,311,312],{},"Ֆայլերի փոխանցում"," — SFTP հոսթի սեփական OpenSSH-ով, յուրաքանչյուր մուտք փակված է jail-ում, որի\nներսում ամրակցված է հաշվի իրական տնային պանակը, նույն uid-ով և առանց shell-ի։ FTPS-ը մատակարարվում\nէ տեղադրված, բայց անջատված․ ոչինչ չի լսում, մինչև ադմինիստրատորը այն չմիացնի։",[278,315,316,319,320,323,324,327,328,331],{},[24,317,318],{},"Պահուստային պատճեններ",", միայն ավելացվող ",[24,321,322],{},"աուդիտի մատյան"," ամեն մուտքի և ամեն փոփոխության\nհամար, ",[24,325,326],{},"տեղեկամատյանների"," կենդանի դիտում, պատնեշ, մոնիթորինգ և ",[43,329,330],{},"maran"," հրամանային գործիքը։",[278,333,334,337],{},[24,335,336],{},"Մուտք վահանակ"," Argon2id-ով, կարճատև հասանելիության նշաններով, refresh-նշանների ռոտացիայով, որտեղ\nկրկնակի օգտագործված նշանը չեղարկում է ամբողջ ընտանիքը, TOTP՝ վերականգնման կոդերով, և սեսիաներով,\nորոնք կարելի է չեղարկել մեկ առ մեկ կամ բոլորը միանգամից։",[31,339,341],{"id":340},"ինչ-է-այն-միտումնավոր-չանում","Ինչ է այն միտումնավոր չանում",[20,343,344],{},"DNS, փոստ և տվյալների բազայի վեբ-կառավարիչ։ Յուրաքանչյուրը բացակայում է որոշմամբ, ոչ թե\nանավարտության պատճառով․ բազայի կառավարիչը նախատեսված է որպես առանձին տեղակայում՝ սեփական հասցեով և\nսեփական նույնականացմամբ, ոչ թե այստեղ կիսատ արված։",[31,346,348],{"id":347},"նախքան-այնտեղ-տեղադրելը-որտեղ-դա-կարևոր-է","Նախքան այնտեղ տեղադրելը, որտեղ դա կարևոր է",[20,350,351],{},"Երեք սահմանափակում արժե իմանալ նախապես — այլապես օպերատորը դրանք կիմանա դժվար ճանապարհով։",[275,353,354,368,374],{},[278,355,356,359,360,363,364,367],{},[24,357,358],{},"Ոչ մի վկայագիր իրական հավաստագրման կենտրոնի կողմից չի տրվել։"," Ամբողջ ուղին, այդուհանդերձ,\nանցնում է սկզբից մինչև վերջ՝ գրանցում, պատվեր, HTTP-01 ստուգում, ավարտում, ներբեռնում — ",[43,361,362],{},"pebble","-ի\nդեմ, որը Let's Encrypt-ի սեփական փորձնական սերվերն է, ընդ որում տրված վկայագրի սերիական համարը\nհամընկնում է PEM-ից կարդացվածի հետ։ Այդ վարժությունը գտավ իրական թերություն, որը ոչ մի թեստ չէր\nտեսնում․ հաճախորդը ",[43,365,366],{},"User-Agent"," չէր ուղարկում, ինչը pebble-ը մերժում է, իսկ Let's Encrypt-ը՝\nհանդուրժում։ Չստուգվածը հենց կենտրոնն է՝ ոչ նրա սահմանաքանակները, ոչ հանրային ցանցից ստուգումը,\nոչ նրա շղթան։ Թարմացման ճյուղն ընդհանրապես չի փորձարկվել։ Միայն HTTP-01 — առանց wildcard\nվկայագրերի, դրանք կգան DNS-ի կառավարման հետ։",[278,369,370,373],{},[24,371,372],{},"Տվյալների բազայի ջնջումը վերջնական է։"," Չկա ոչ պատկեր, ոչ աղբարկղ, ոչ ուշացում, և ջնջման\nընթացքը ոչ մի կերպ չի դիմում պահուստավորման մոդուլին։ Բազան վերականգնելի է միայն այն պատճենից, որն\nարդեն գոյություն ուներ։",[278,375,376,379,380,383,384,387,388,391],{},[24,377,378],{},"SSH դեմոնի կարգավորումը հսկվում է, և հսկողության սահմանը նշված է։"," Տեղադրիչը գրում է այն\nբլոկը, որը ֆայլերի փոխանցման մուտքը դարձնում է փակված, իսկ մոնիթորինգն այժմ կարդում է այդ բլոկը\nետ և ահազանգ է բարձրացնում շեղման դեպքում՝ բոլոր չորս հրահանգները առանձին-առանձին, այնպես որ\nբլոկը, որի վերնագիրը մնացել է, իսկ մարմինը դատարկվել, նույնպես բռնվում է։ Կարդացվում է\nկարգավորման ֆայլը, ոչ թե դեմոնի պատասխանը․ ",[43,381,382],{},"sshd -T","-ն ընդհանրապես երբեք չի տպում ",[43,385,386],{},"Match"," բլոկի\nպարունակությունը։ Ինչ չի անում․ չի հետևում ",[43,389,390],{},"Include"," հրահանգներին և չի ապացուցում, որ շեղված\nհոսթը իրոք shell է տալիս։ Այն հաղորդում է, որ կարգավորումն այլևս չի ասում գրվածը։",[20,393,394],{},"Արտոնյալ մասերը ծածկող սպառնալիքների նշումները կարդացվել և ընդունվել են թողարկման օրը։ Դա\nբավարարում է նախագծի սեփական կանոնը երկրորդ ստուգողի մասին։ Դա արտաքին աուդիտ չէ, և այս էջը այդպիսին\nչի հայտարարում։",[31,396,398],{"id":397},"թարմացում-010-ից","Թարմացում 0.1.0-ից",[20,400,401,402,406],{},"Թարմացման ուղի չկա, և այն պետք չէ․ ",[80,403,405],{"href":404},"/releases/0.1.0","0.1.0","-ը կմախք էր առանց հոսթինգի\nհնարավորությունների, և դրա վրա պահպանելու բան չկար։",[408,409,410],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":41,"searchDepth":229,"depth":229,"links":412},[413,414,415,416,417,418],{"id":33,"depth":229,"text":34},{"id":92,"depth":229,"text":93},{"id":272,"depth":229,"text":273},{"id":340,"depth":229,"text":341},{"id":347,"depth":229,"text":348},{"id":397,"depth":229,"text":398},"beta","2026-09-23","Առաջին թողարկումը, որը տեղադրվում է սերվերի վրա՝ հաշիվները որպես իրական Linux օգտատերեր, կայքեր, PHP տարբերակներ, SSL, տվյալների բազաներ, ֆայլերի փոխանցում և պահուստային պատճեններ — հրապարակված է որպես բետա՝ հստակ նշված սահմանով։","md",{},true,"/hy/releases/0.0-beta.1",{"title":15,"description":421},"hy/releases/1.0.0-beta.1","1.0.0-beta.1","7rdPHEZdCpwI9XzxRvbTxiXVkFfXRPyGSxJ3YbmjAuM",[431,498],{"id":432,"title":433,"body":434,"channel":489,"date":490,"description":491,"extension":422,"meta":492,"navigation":424,"path":493,"seo":494,"seoTitle":495,"stem":496,"version":405,"__hash__":497},"releasesHy/hy/releases/0.1.0.md","Maran 0.1.0 — հիմք",{"type":17,"value":435,"toc":485},[436,439,443,474,478],[20,437,438],{},"Կմախք, ոչ թե արտադրանք, որը կդնեիք հոսթինգի հաճախորդների առջև։ Այն այնուամենայնիվ հրապարակված է\nորպես թողարկում, որովհետև հետագա ամեն ինչ կառուցված է այստեղ կայացված որոշումների վրա։",[31,440,442],{"id":441},"ինչ-է-ներառում","Ինչ է ներառում",[275,444,445,451,457,463,469],{},[278,446,447,450],{},[24,448,449],{},"Պայմանագիրը"," վահանակի և root գործակալի միջև՝ տիպավորված գործողությունները, որոնցով նրանք\nփոխանակվում են unix-սոկետով։",[278,452,453,456],{},[24,454,455],{},"Rust գործակալի կմախքը",", ներառյալ սոկետի վրա գործընկերոջ հավաստագրերի ստուգումը․ գործակալը գիտի,\nոր գործընթացն է իրեն դիմում, նախքան որևէ բան անելը։",[278,458,459,462],{},[24,460,461],{},"C# մոդուլային մոնոլիտը",", որը դարձավ վահանակը։",[278,464,465,468],{},[24,466,467],{},"Vue-ի թաղանթը",", որի վրա կառուցված է ինտերֆեյսը։",[278,470,471],{},[24,472,473],{},"Մշակման միջավայրը և CI-ն։",[31,475,477],{"id":476},"ինչ-չի-ներառում","Ինչ չի ներառում",[20,479,480,481,269],{},"Հոսթինգի ոչ մի հնարավորություն։ Հաշիվները, կայքերը, PHP լողավազանները, SSL-ը, բազաները, ֆայլերի\nփոխանցումը, պահուստավորումը, firewall-ը և մոնիտորինգը կառուցվել են այս պիտակից հետո և նրա մեջ չեն\nմտնում։ Դրանք ճանապարհին են դեպի առաջին ֆունկցիոնալ թողարկումը․ ինչ է հրապարակված՝ տեսեք\n",[80,482,484],{"href":483},"/releases","թողարկումներում",{"title":41,"searchDepth":229,"depth":229,"links":486},[487,488],{"id":441,"depth":229,"text":442},{"id":476,"depth":229,"text":477},"stable","2026-08-29","Առաջին նշված տարբերակը՝ պայմանագիրը, Rust գործակալի կմախքը, C# մոնոլիտը, Vue-ի թաղանթը և մշակման միջավայրը։",{},"/hy/releases/0.1.0",{"title":433,"description":491},"Maran 0.1.0 — հիմքի թողարկում","hy/releases/0.1.0","qASgxyfYhFZV5db7mibdy1snwKspMZFR7Agx1YcxoNk",{"id":14,"title":15,"body":499,"channel":419,"date":420,"description":421,"extension":422,"meta":752,"navigation":424,"path":425,"seo":753,"seoTitle":15,"stem":427,"version":428,"__hash__":429},{"type":17,"value":500,"toc":744},[501,505,507,509,527,534,536,538,543,602,619,621,653,660,662,702,704,706,708,710,734,736,738,742],[20,502,22,503],{},[24,504,26],{},[20,506,29],{},[31,508,34],{"id":33},[36,510,511],{"className":38,"code":39,"language":40,"meta":41,"style":41},[43,512,513],{"__ignoreMap":41},[46,514,515,517,519,521,523,525],{"class":48,"line":49},[46,516,53],{"class":52},[46,518,57],{"class":56},[46,520,61],{"class":60},[46,522,65],{"class":64},[46,524,68],{"class":52},[46,526,71],{"class":60},[20,528,74,529,78,531,86],{},[43,530,77],{},[80,532,85],{"href":82,"rel":533},[84],[20,535,89],{},[31,537,93],{"id":92},[20,539,96,540,101],{},[80,541,77],{"href":99,"rel":542},[84],[103,544,545,555],{},[106,546,547],{},[109,548,549,551,553],{},[112,550,114],{},[112,552,117],{},[112,554,120],{},[122,556,557,572,587],{},[109,558,559,566,568],{},[127,560,561],{},[80,562,564],{"href":131,"rel":563},[84],[43,565,135],{},[127,567,138],{},[127,569,570],{},[43,571,143],{},[109,573,574,581,583],{},[127,575,576],{},[80,577,579],{"href":150,"rel":578},[84],[43,580,154],{},[127,582,157],{},[127,584,585],{},[43,586,162],{},[109,588,589,596,598],{},[127,590,591],{},[80,592,594],{"href":169,"rel":593},[84],[43,595,173],{},[127,597,176],{},[127,599,600],{},[43,601,181],{},[20,603,184,604,192,609,200,614,208],{},[80,605,607],{"href":187,"rel":606},[84],[43,608,191],{},[80,610,612],{"href":195,"rel":611},[84],[43,613,199],{},[80,615,617],{"href":203,"rel":616},[84],[43,618,207],{},[20,620,211],{},[36,622,623],{"className":38,"code":214,"language":40,"meta":41,"style":41},[43,624,625,633,641],{"__ignoreMap":41},[46,626,627,629,631],{"class":48,"line":49},[46,628,53],{"class":52},[46,630,223],{"class":56},[46,632,226],{"class":60},[46,634,635,637,639],{"class":48,"line":229},[46,636,232],{"class":52},[46,638,235],{"class":56},[46,640,238],{"class":60},[46,642,643,645,647,649,651],{"class":48,"line":241},[46,644,244],{"class":52},[46,646,247],{"class":60},[46,648,250],{"class":60},[46,650,253],{"class":56},[46,652,256],{"class":60},[20,654,259,655,263,657,269],{},[43,656,262],{},[80,658,268],{"href":266,"rel":659},[84],[31,661,273],{"id":272},[275,663,664,668,672,676,680,684,688,698],{},[278,665,666,283],{},[24,667,282],{},[278,669,670,289],{},[24,671,288],{},[278,673,674,295],{},[24,675,294],{},[278,677,678,301],{},[24,679,300],{},[278,681,682,307],{},[24,683,306],{},[278,685,686,313],{},[24,687,312],{},[278,689,690,319,692,323,694,327,696,331],{},[24,691,318],{},[24,693,322],{},[24,695,326],{},[43,697,330],{},[278,699,700,337],{},[24,701,336],{},[31,703,341],{"id":340},[20,705,344],{},[31,707,348],{"id":347},[20,709,351],{},[275,711,712,720,724],{},[278,713,714,359,716,363,718,367],{},[24,715,358],{},[43,717,362],{},[43,719,366],{},[278,721,722,373],{},[24,723,372],{},[278,725,726,379,728,383,730,387,732,391],{},[24,727,378],{},[43,729,382],{},[43,731,386],{},[43,733,390],{},[20,735,394],{},[31,737,398],{"id":397},[20,739,401,740,406],{},[80,741,405],{"href":404},[408,743,410],{},{"title":41,"searchDepth":229,"depth":229,"links":745},[746,747,748,749,750,751],{"id":33,"depth":229,"text":34},{"id":92,"depth":229,"text":93},{"id":272,"depth":229,"text":273},{"id":340,"depth":229,"text":341},{"id":347,"depth":229,"text":348},{"id":397,"depth":229,"text":398},{},{"title":15,"description":421},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":755},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/>\u003C/g>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":757},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/>\u003Cpath d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>\u003C/g>",1790166380291]