From ccb78fba96f2e3af229ef0acf0c385a4a6dfb43a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 07:10:21 +0000 Subject: [PATCH] deploy: 3b162696e5c061a6c34cae4cdf391beef427a85c --- 404.html | 4 +- assets/js/043e14d3.a18e0ad1.js | 1 + assets/js/043e14d3.a2136bc9.js | 1 - assets/js/404ec107.2157b3fe.js | 1 + assets/js/404ec107.de148e32.js | 1 - ...bda57.ed80bc3b.js => 89ebda57.94bcc6f7.js} | 2 +- assets/js/92e44ed4.4ff6c65e.js | 1 + ...f2afb.e7197ae2.js => 935f2afb.1ef85d04.js} | 2 +- assets/js/a6f8198f.870e6635.js | 1 - assets/js/ec3de22d.5a4b6592.js | 1 + assets/js/ec3de22d.f1320b06.js | 1 - assets/js/main.7fc3f15a.js | 2 + ...CENSE.txt => main.7fc3f15a.js.LICENSE.txt} | 0 assets/js/main.ec610993.js | 2 - ...n.afa11dc9.js => runtime~main.beef933a.js} | 2 +- before_installation/imporatnt_notes.html | 6 +- before_installation/internet_connection.html | 6 +- before_installation/system_requirements.html | 6 +- blog.html | 4 +- blog/archive.html | 4 +- blog/effective_bug_report.html | 4 +- blog/tags.html | 4 +- blog/tags/bug.html | 4 +- category/before-installation.html | 6 +- category/developers-guide.html | 6 +- category/installation.html | 6 +- category/introduction.html | 6 +- category/packages.html | 6 +- category/post-installation.html | 6 +- category/tools.html | 6 +- category/troubleshoot.html | 6 +- category/user-guide.html | 6 +- cookie-consent.html | 4 +- dev_guide/build_source.html | 6 +- dev_guide/deploy_packages.html | 128 +++++++++++++++++- dev_guide/gpg_key.html | 8 +- dev_guide/install_keyring.html | 6 +- dev_guide/pkgbuild.html | 6 +- ...pload_gog_key.html => upload_gpg_key.html} | 12 +- dev_guide/write.html | 8 +- index.html | 6 +- installation/download_snigdha_os.html | 6 +- installation/live_env.html | 6 +- installation/making_bootable_usb.html | 6 +- installation/offline_install.html | 6 +- installation/online_install.html | 6 +- installation/start_installation.html | 6 +- installation/virtualbox_installation.html | 6 +- introduction/code_of_conduct.html | 6 +- introduction/coding-standard.html | 6 +- introduction/contributing.html | 6 +- introduction/faqs.html | 6 +- introduction/motivation.html | 6 +- introduction/name_and_story.html | 6 +- introduction/release_notes.html | 6 +- introduction/reporting_bugs.html | 6 +- markdown-page.html | 4 +- packages/snigdhaos_blackbox.html | 6 +- packages/snigdhaos_welcome.html | 6 +- post_installation/customization.html | 6 +- post_installation/install_packages.html | 6 +- post_installation/language.html | 6 +- post_installation/update.html | 6 +- privacy_policy.html | 4 +- sitemap.xml | 2 +- tools/dns.html | 6 +- troubleshoot/bluetooth.html | 6 +- troubleshoot/display.html | 6 +- troubleshoot/sound.html | 6 +- troubleshoot/wifi.html | 6 +- user_guide/aur.html | 6 +- user_guide/cheetsheet.html | 6 +- 72 files changed, 298 insertions(+), 178 deletions(-) create mode 100644 assets/js/043e14d3.a18e0ad1.js delete mode 100644 assets/js/043e14d3.a2136bc9.js create mode 100644 assets/js/404ec107.2157b3fe.js delete mode 100644 assets/js/404ec107.de148e32.js rename assets/js/{89ebda57.ed80bc3b.js => 89ebda57.94bcc6f7.js} (99%) create mode 100644 assets/js/92e44ed4.4ff6c65e.js rename assets/js/{935f2afb.e7197ae2.js => 935f2afb.1ef85d04.js} (52%) delete mode 100644 assets/js/a6f8198f.870e6635.js create mode 100644 assets/js/ec3de22d.5a4b6592.js delete mode 100644 assets/js/ec3de22d.f1320b06.js create mode 100644 assets/js/main.7fc3f15a.js rename assets/js/{main.ec610993.js.LICENSE.txt => main.7fc3f15a.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.ec610993.js rename assets/js/{runtime~main.afa11dc9.js => runtime~main.beef933a.js} (52%) rename dev_guide/{upload_gog_key.html => upload_gpg_key.html} (93%) diff --git a/404.html b/404.html index c1f45d5a..68b03fed 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ SNIGDHA OS - DOCS - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/043e14d3.a18e0ad1.js b/assets/js/043e14d3.a18e0ad1.js new file mode 100644 index 00000000..c6d82be6 --- /dev/null +++ b/assets/js/043e14d3.a18e0ad1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8731],{7388:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>d});var r=s(4848),i=s(8453);const a={sidebar_position:5},o="Upload & Deploy Packages",t={id:"dev_guide/deploy_packages",title:"Upload & Deploy Packages",description:"\ud83d\ude80 Uploading and Deploying an Arch Linux Package on GitHub",source:"@site/docs/dev_guide/deploy_packages.md",sourceDirName:"dev_guide",slug:"/dev_guide/deploy_packages",permalink:"/documentation/dev_guide/deploy_packages",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/deploy_packages.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"},next:{title:"Writing Documentation",permalink:"/documentation/dev_guide/write"}},c={},d=[{value:"\ud83d\ude80 Uploading and Deploying an Arch Linux Package on GitHub",id:"-uploading-and-deploying-an-arch-linux-package-on-github",level:3},{value:"1\ufe0f\u20e3 Prepare the Package",id:"1\ufe0f\u20e3-prepare-the-package",level:3},{value:"2\ufe0f\u20e3 Create a GitHub Repository",id:"2\ufe0f\u20e3-create-a-github-repository",level:3},{value:"3\ufe0f\u20e3 Upload the Package",id:"3\ufe0f\u20e3-upload-the-package",level:3},{value:"4\ufe0f\u20e3 Set Up a Repository for pacman",id:"4\ufe0f\u20e3-set-up-a-repository-for-pacman",level:3},{value:"5\ufe0f\u20e3 Serve the Repository on GitHub Pages",id:"5\ufe0f\u20e3-serve-the-repository-on-github-pages",level:3},{value:"6\ufe0f\u20e3 Configure pacman to Use Your Repository",id:"6\ufe0f\u20e3-configure-pacman-to-use-your-repository",level:3},{value:"\ud83d\udee0\ufe0f Automating Updates with GitHub Actions",id:"\ufe0f-automating-updates-with-github-actions",level:3},{value:"\u2705 Final Testing",id:"-final-testing",level:3}];function l(e){const n={a:"a",code:"code",h1:"h1",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"upload--deploy-packages",children:"Upload & Deploy Packages"}),"\n",(0,r.jsx)(n.h3,{id:"-uploading-and-deploying-an-arch-linux-package-on-github",children:"\ud83d\ude80 Uploading and Deploying an Arch Linux Package on GitHub"}),"\n",(0,r.jsxs)(n.p,{children:["Hosting an Arch Linux package on GitHub is a great way to distribute it. Users can download and install your package directly or use your repository for easier management with ",(0,r.jsx)(n.code,{children:"pacman"}),". Here's how to do it step-by-step."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"1\ufe0f\u20e3-prepare-the-package",children:["1\ufe0f\u20e3 ",(0,r.jsx)(n.strong,{children:"Prepare the Package"})]}),"\n",(0,r.jsxs)(n.p,{children:["Ensure you\u2019ve created your Arch package using a ",(0,r.jsx)(n.code,{children:"PKGBUILD"})," file."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the package"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["Navigate to your package directory containing the ",(0,r.jsx)(n.code,{children:"PKGBUILD"})," and run:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"makepkg -si\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This will create a ",(0,r.jsx)(n.code,{children:".pkg.tar.zst"})," file (e.g., ",(0,r.jsx)(n.code,{children:"mypackage-1.0-1-x86_64.pkg.tar.zst"}),")."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Sign the package (optional but recommended)"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"If you\u2019re distributing the package securely, sign it with your GPG key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --detach-sign --armor mypackage-1.0-1-x86_64.pkg.tar.zst\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This creates a signature file ",(0,r.jsx)(n.code,{children:"mypackage-1.0-1-x86_64.pkg.tar.zst.sig"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"2\ufe0f\u20e3-create-a-github-repository",children:["2\ufe0f\u20e3 ",(0,r.jsx)(n.strong,{children:"Create a GitHub Repository"})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Go to ",(0,r.jsx)(n.a,{href:"https://github.com",children:"GitHub"})," and create a new repository."]}),"\n",(0,r.jsxs)(n.li,{children:["Name the repository (e.g., ",(0,r.jsx)(n.code,{children:"arch-packages"}),") and add a description."]}),"\n",(0,r.jsx)(n.li,{children:"Initialize it with a README file (optional)."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"3\ufe0f\u20e3-upload-the-package",children:["3\ufe0f\u20e3 ",(0,r.jsx)(n.strong,{children:"Upload the Package"})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Clone the repository to your local system:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/yourusername/arch-packages.git\ncd arch-packages\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Copy your package files (",(0,r.jsx)(n.code,{children:".pkg.tar.zst"})," and ",(0,r.jsx)(n.code,{children:".sig"}),") to the repository directory:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cp ../mypackage-1.0-1-x86_64.pkg.tar.zst .\ncp ../mypackage-1.0-1-x86_64.pkg.tar.zst.sig .\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Commit and push the files:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'git add mypackage-1.0-1-x86_64.pkg.tar.zst mypackage-1.0-1-x86_64.pkg.tar.zst.sig\ngit commit -m "Add mypackage version 1.0"\ngit push origin main\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"4\ufe0f\u20e3-set-up-a-repository-for-pacman",children:["4\ufe0f\u20e3 ",(0,r.jsxs)(n.strong,{children:["Set Up a Repository for ",(0,r.jsx)(n.code,{children:"pacman"})]})]}),"\n",(0,r.jsxs)(n.p,{children:["To create a repository compatible with ",(0,r.jsx)(n.code,{children:"pacman"}),", you need a database file (",(0,r.jsx)(n.code,{children:".db"}),") and signature file (",(0,r.jsx)(n.code,{children:".db.sig"}),")."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Generate the database"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["Run ",(0,r.jsx)(n.code,{children:"repo-add"})," to create a repository database for your packages:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"repo-add myrepo.db.tar.gz mypackage-1.0-1-x86_64.pkg.tar.zst\n"})}),"\n",(0,r.jsx)(n.p,{children:"This will generate files like:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"myrepo.db.tar.gz"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"myrepo.db.tar.gz.sig"})," (if signed)"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Rename ",(0,r.jsx)(n.code,{children:"myrepo.db.tar.gz"})," to ",(0,r.jsx)(n.code,{children:"myrepo.db"})," for convenience:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mv myrepo.db.tar.gz myrepo.db\nmv myrepo.db.tar.gz.sig myrepo.db.sig\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Add repository files to GitHub"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["Copy the ",(0,r.jsx)(n.code,{children:".db"})," and ",(0,r.jsx)(n.code,{children:".sig"})," files to the repository and push them:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'git add myrepo.db myrepo.db.sig\ngit commit -m "Add repository database"\ngit push origin main\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"5\ufe0f\u20e3-serve-the-repository-on-github-pages",children:["5\ufe0f\u20e3 ",(0,r.jsx)(n.strong,{children:"Serve the Repository on GitHub Pages"})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Enable GitHub Pages for the repository:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Go to your repository\u2019s ",(0,r.jsx)(n.strong,{children:"Settings"})," > ",(0,r.jsx)(n.strong,{children:"Pages"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Source"}),", select ",(0,r.jsx)(n.code,{children:"main"})," (or the branch you\u2019re using) and set the folder to ",(0,r.jsx)(n.code,{children:"/root"})," or ",(0,r.jsx)(n.code,{children:"/docs"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Note the URL for your repository, which will be in the format:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-plaintext",children:"https://yourusername.github.io/arch-packages/\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.h3,{id:"6\ufe0f\u20e3-configure-pacman-to-use-your-repository",children:["6\ufe0f\u20e3 ",(0,r.jsxs)(n.strong,{children:["Configure ",(0,r.jsx)(n.code,{children:"pacman"})," to Use Your Repository"]})]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Add your repository to ",(0,r.jsx)(n.code,{children:"/etc/pacman.conf"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-plaintext",children:"[myrepo]\nSigLevel = Required\nServer = https://yourusername.github.io/arch-packages\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Update ",(0,r.jsx)(n.code,{children:"pacman"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -Syu\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Install your package:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -S mypackage\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-automating-updates-with-github-actions",children:"\ud83d\udee0\ufe0f Automating Updates with GitHub Actions"}),"\n",(0,r.jsxs)(n.p,{children:["To automate the deployment of new packages to GitHub, use ",(0,r.jsx)(n.strong,{children:"GitHub Actions"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.code,{children:".github/workflows/deploy.yml"})," file in your repository:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:'name: Deploy Arch Linux Package\n\non:\n push:\n branches:\n - main\n\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout code\n uses: actions/checkout@v3\n\n - name: Install Arch tools\n run: |\n sudo apt update\n sudo apt install archlinux-keyring devscripts pacman\n\n - name: Generate repository database\n run: |\n repo-add myrepo.db.tar.gz *.pkg.tar.zst\n mv myrepo.db.tar.gz myrepo.db\n mv myrepo.db.tar.gz.sig myrepo.db.sig\n\n - name: Commit and push repository updates\n run: |\n git add myrepo.db myrepo.db.sig\n git commit -m "Update repository database"\n git push origin main\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Push this file to your repository. The workflow will automatically run on every push to update the repository database."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"-final-testing",children:"\u2705 Final Testing"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Clone your repository to verify it\u2019s accessible:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"git clone https://yourusername.github.io/arch-packages\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Test package installation from your custom repository as described in step 6."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.p,{children:"By following these steps, you'll have a fully functional Arch Linux package repository hosted on GitHub, ready for others to use. \ud83c\udf89"})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>t});var r=s(6540);const i={},a=r.createContext(i);function o(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/043e14d3.a2136bc9.js b/assets/js/043e14d3.a2136bc9.js deleted file mode 100644 index 7dee406b..00000000 --- a/assets/js/043e14d3.a2136bc9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8731],{7388:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>p,frontMatter:()=>d,metadata:()=>s,toc:()=>c});var o=n(4848),a=n(8453);const d={sidebar_position:4},i="Upload & Deploy Packages",s={id:"dev_guide/deploy_packages",title:"Upload & Deploy Packages",description:"",source:"@site/docs/dev_guide/deploy_packages.md",sourceDirName:"dev_guide",slug:"/dev_guide/deploy_packages",permalink:"/documentation/dev_guide/deploy_packages",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/deploy_packages.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gog_key"},next:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"}},r={},c=[];function u(e){const t={h1:"h1",...(0,a.R)(),...e.components};return(0,o.jsx)(t.h1,{id:"upload--deploy-packages",children:"Upload & Deploy Packages"})}function p(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>s});var o=n(6540);const a={},d=o.createContext(a);function i(e){const t=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),o.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/404ec107.2157b3fe.js b/assets/js/404ec107.2157b3fe.js new file mode 100644 index 00000000..717ad54e --- /dev/null +++ b/assets/js/404ec107.2157b3fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5473],{60:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var i=n(4848),o=n(8453);const s={sidebar_position:4},r="Install Keyrings",a={id:"dev_guide/install_keyring",title:"Install Keyrings",description:"",source:"@site/docs/dev_guide/install_keyring.md",sourceDirName:"dev_guide",slug:"/dev_guide/install_keyring",permalink:"/documentation/dev_guide/install_keyring",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/install_keyring.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gpg_key"},next:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"}},d={},l=[];function c(e){const t={h1:"h1",...(0,o.R)(),...e.components};return(0,i.jsx)(t.h1,{id:"install-keyrings",children:"Install Keyrings"})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(6540);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/404ec107.de148e32.js b/assets/js/404ec107.de148e32.js deleted file mode 100644 index 522f096a..00000000 --- a/assets/js/404ec107.de148e32.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5473],{60:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var i=n(4848),o=n(8453);const s={sidebar_position:5},r="Install Keyrings",a={id:"dev_guide/install_keyring",title:"Install Keyrings",description:"",source:"@site/docs/dev_guide/install_keyring.md",sourceDirName:"dev_guide",slug:"/dev_guide/install_keyring",permalink:"/documentation/dev_guide/install_keyring",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/install_keyring.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"},next:{title:"Writing Documentation",permalink:"/documentation/dev_guide/write"}},d={},c=[];function u(e){const t={h1:"h1",...(0,o.R)(),...e.components};return(0,i.jsx)(t.h1,{id:"install-keyrings",children:"Install Keyrings"})}function l(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(6540);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/89ebda57.ed80bc3b.js b/assets/js/89ebda57.94bcc6f7.js similarity index 99% rename from assets/js/89ebda57.ed80bc3b.js rename to assets/js/89ebda57.94bcc6f7.js index 8baa34a0..6c79b1fa 100644 --- a/assets/js/89ebda57.ed80bc3b.js +++ b/assets/js/89ebda57.94bcc6f7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5766],{8521:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var r=s(4848),i=s(8453);const t={sidebar_position:2},l="Generate GPG Key",o={id:"dev_guide/gpg_key",title:"Generate GPG Key",description:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",source:"@site/docs/dev_guide/gpg_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/gpg_key",permalink:"/documentation/dev_guide/gpg_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/gpg_key.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Build From Source",permalink:"/documentation/dev_guide/build_source"},next:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gog_key"}},c={},d=[{value:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",id:"-how-to-generate-a-gpg-key-on-snigdha-os",level:3},{value:"\ud83d\udee0\ufe0f Step 1: Install GPG",id:"\ufe0f-step-1-install-gpg",level:3},{value:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair",id:"\ufe0f-step-2-create-a-new-gpg-key-pair",level:3},{value:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key",id:"\ufe0f-step-3-verify-the-generated-key",level:3},{value:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key",id:"\ufe0f-step-4-export-your-public-key",level:3},{value:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption",id:"\ufe0f-step-5-test-encryption-and-decryption",level:3},{value:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys",id:"\ufe0f-step-6-back-up-your-keys",level:3},{value:"\ud83d\ude80 Final Tips",id:"-final-tips",level:3}];function a(e){const n={code:"code",h1:"h1",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"generate-gpg-key",children:"Generate GPG Key"}),"\n",(0,r.jsx)(n.h3,{id:"-how-to-generate-a-gpg-key-on-snigdha-os",children:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS"}),"\n",(0,r.jsx)(n.p,{children:"GPG (GNU Privacy Guard) is a tool for secure communication and data encryption. It allows you to create and manage public and private keys, encrypt files, and sign documents. Here\u2019s how you can generate a GPG key on Snigdha OS, step by step, with examples."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-1-install-gpg",children:"\ud83d\udee0\ufe0f Step 1: Install GPG"}),"\n",(0,r.jsx)(n.p,{children:"Most Snigdha OS installations come with GPG pre-installed. If it\u2019s not installed, use the following command to install it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -S gnupg\n"})}),"\n",(0,r.jsx)(n.p,{children:"To verify the installation, check the version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --version\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-2-create-a-new-gpg-key-pair",children:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Start the key generation process"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --full-generate-key\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Select the key type"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll see a prompt to choose the type of key. Options typically include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"(1) RSA and RSA (default)"})}),"\n",(0,r.jsx)(n.li,{children:"(2) DSA and Elgamal"}),"\n",(0,r.jsx)(n.li,{children:"(3) DSA (sign only)"}),"\n",(0,r.jsx)(n.li,{children:"(4) RSA (sign only)"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Press ",(0,r.jsx)(n.code,{children:"1"})," and hit Enter to select the default ",(0,r.jsx)(n.strong,{children:"RSA and RSA"})," type."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the key length"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["You\u2019ll be prompted to specify the key size. A common recommendation is ",(0,r.jsx)(n.strong,{children:"4096 bits"})," for strong encryption. Type ",(0,r.jsx)(n.code,{children:"4096"})," and press Enter."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the expiration date"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You can define how long the key should be valid. Options include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"0"})," for no expiration"]}),"\n",(0,r.jsxs)(n.li,{children:["Specify a duration, e.g., ",(0,r.jsx)(n.code,{children:"1y"})," for one year, ",(0,r.jsx)(n.code,{children:"2y"})," for two years, or ",(0,r.jsx)(n.code,{children:"1m"})," for one month."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For this example, type ",(0,r.jsx)(n.code,{children:"0"})," (no expiration) and press Enter. When prompted, confirm your choice."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Enter your details"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll be asked for:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your real name"}),": Enter your full name."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your email address"}),": Enter a valid email address."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A comment (optional)"}),": Add a description or leave it blank."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"Real name: John Doe\nEmail address: johndoe@example.com\nComment: Snigdha OS User\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Review the details and confirm by typing ",(0,r.jsx)(n.code,{children:"O"})," (for OK)."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set a passphrase"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Choose a strong passphrase to protect your private key. This passphrase will be required whenever you use your private key for encryption or signing."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-3-verify-the-generated-key",children:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key"}),"\n",(0,r.jsx)(n.p,{children:"Once the key is generated, you can list your keys with:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,r.jsx)(n.p,{children:"Output:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"/home/username/.gnupg/pubring.kbx\n---------------------------------\npub rsa4096 2023-12-05 [SC] [expires: 2025-12-05]\n ABCD1234EFGH5678IJKL9012MNOP3456QRST7890\nuid [ultimate] John Doe \nsub rsa4096 2023-12-05 [E] [expires: 2025-12-05]\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"pub"}),": Your primary key (for signing and certification)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"sub"}),": Subkey (for encryption)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[SC]"}),": Key capabilities: Sign and Certify."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[E]"}),": Encryption."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-4-export-your-public-key",children:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key"}),"\n",(0,r.jsx)(n.p,{children:"To share your public key with others, export it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This creates a file ",(0,r.jsx)(n.code,{children:"public_key.asc"})," with your public key in ASCII format."]}),"\n",(0,r.jsx)(n.p,{children:"To display the key in the terminal:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-5-test-encryption-and-decryption",children:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Encrypt a file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Create a sample file to encrypt:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'echo "Hello, this is a test message!" > message.txt\n'})}),"\n",(0,r.jsx)(n.p,{children:"Encrypt the file with your public key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output message.txt.gpg --encrypt --recipient johndoe@example.com message.txt\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This generates an encrypted file ",(0,r.jsx)(n.code,{children:"message.txt.gpg"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Decrypt the file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Decrypt the file using your private key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output decrypted_message.txt --decrypt message.txt.gpg\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Enter your passphrase when prompted. The decrypted content will be saved in ",(0,r.jsx)(n.code,{children:"decrypted_message.txt"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-6-back-up-your-keys",children:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys"}),"\n",(0,r.jsx)(n.p,{children:"Always back up your keys to prevent losing access:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your private key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export-secret-keys johndoe@example.com > private_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your public key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Store these files (",(0,r.jsx)(n.code,{children:"private_key.asc"})," and ",(0,r.jsx)(n.code,{children:"public_key.asc"}),") in a safe place."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"-final-tips",children:"\ud83d\ude80 Final Tips"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Keep your private key secure. Never share it."}),"\n",(0,r.jsx)(n.li,{children:"Regularly update your passphrase for added security."}),"\n",(0,r.jsxs)(n.li,{children:["Use tools like ",(0,r.jsx)(n.strong,{children:"gpg-agent"})," for easier key management."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"That\u2019s it! You now have a functional GPG key pair set up on Snigdha OS. \ud83c\udf89"})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const i={},t=r.createContext(i);function l(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[5766],{8521:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var r=s(4848),i=s(8453);const t={sidebar_position:2},l="Generate GPG Key",o={id:"dev_guide/gpg_key",title:"Generate GPG Key",description:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",source:"@site/docs/dev_guide/gpg_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/gpg_key",permalink:"/documentation/dev_guide/gpg_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/gpg_key.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Build From Source",permalink:"/documentation/dev_guide/build_source"},next:{title:"Upload Key => Server",permalink:"/documentation/dev_guide/upload_gpg_key"}},c={},d=[{value:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS",id:"-how-to-generate-a-gpg-key-on-snigdha-os",level:3},{value:"\ud83d\udee0\ufe0f Step 1: Install GPG",id:"\ufe0f-step-1-install-gpg",level:3},{value:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair",id:"\ufe0f-step-2-create-a-new-gpg-key-pair",level:3},{value:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key",id:"\ufe0f-step-3-verify-the-generated-key",level:3},{value:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key",id:"\ufe0f-step-4-export-your-public-key",level:3},{value:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption",id:"\ufe0f-step-5-test-encryption-and-decryption",level:3},{value:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys",id:"\ufe0f-step-6-back-up-your-keys",level:3},{value:"\ud83d\ude80 Final Tips",id:"-final-tips",level:3}];function a(e){const n={code:"code",h1:"h1",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"generate-gpg-key",children:"Generate GPG Key"}),"\n",(0,r.jsx)(n.h3,{id:"-how-to-generate-a-gpg-key-on-snigdha-os",children:"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS"}),"\n",(0,r.jsx)(n.p,{children:"GPG (GNU Privacy Guard) is a tool for secure communication and data encryption. It allows you to create and manage public and private keys, encrypt files, and sign documents. Here\u2019s how you can generate a GPG key on Snigdha OS, step by step, with examples."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-1-install-gpg",children:"\ud83d\udee0\ufe0f Step 1: Install GPG"}),"\n",(0,r.jsx)(n.p,{children:"Most Snigdha OS installations come with GPG pre-installed. If it\u2019s not installed, use the following command to install it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"sudo pacman -S gnupg\n"})}),"\n",(0,r.jsx)(n.p,{children:"To verify the installation, check the version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --version\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-2-create-a-new-gpg-key-pair",children:"\ud83d\udee0\ufe0f Step 2: Create a New GPG Key Pair"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Start the key generation process"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Run the following command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --full-generate-key\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Select the key type"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll see a prompt to choose the type of key. Options typically include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"(1) RSA and RSA (default)"})}),"\n",(0,r.jsx)(n.li,{children:"(2) DSA and Elgamal"}),"\n",(0,r.jsx)(n.li,{children:"(3) DSA (sign only)"}),"\n",(0,r.jsx)(n.li,{children:"(4) RSA (sign only)"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Press ",(0,r.jsx)(n.code,{children:"1"})," and hit Enter to select the default ",(0,r.jsx)(n.strong,{children:"RSA and RSA"})," type."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the key length"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["You\u2019ll be prompted to specify the key size. A common recommendation is ",(0,r.jsx)(n.strong,{children:"4096 bits"})," for strong encryption. Type ",(0,r.jsx)(n.code,{children:"4096"})," and press Enter."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set the expiration date"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You can define how long the key should be valid. Options include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"0"})," for no expiration"]}),"\n",(0,r.jsxs)(n.li,{children:["Specify a duration, e.g., ",(0,r.jsx)(n.code,{children:"1y"})," for one year, ",(0,r.jsx)(n.code,{children:"2y"})," for two years, or ",(0,r.jsx)(n.code,{children:"1m"})," for one month."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For this example, type ",(0,r.jsx)(n.code,{children:"0"})," (no expiration) and press Enter. When prompted, confirm your choice."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Enter your details"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"You\u2019ll be asked for:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your real name"}),": Enter your full name."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Your email address"}),": Enter a valid email address."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"A comment (optional)"}),": Add a description or leave it blank."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"Real name: John Doe\nEmail address: johndoe@example.com\nComment: Snigdha OS User\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Review the details and confirm by typing ",(0,r.jsx)(n.code,{children:"O"})," (for OK)."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Set a passphrase"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Choose a strong passphrase to protect your private key. This passphrase will be required whenever you use your private key for encryption or signing."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-3-verify-the-generated-key",children:"\ud83d\udee0\ufe0f Step 3: Verify the Generated Key"}),"\n",(0,r.jsx)(n.p,{children:"Once the key is generated, you can list your keys with:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,r.jsx)(n.p,{children:"Output:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"/home/username/.gnupg/pubring.kbx\n---------------------------------\npub rsa4096 2023-12-05 [SC] [expires: 2025-12-05]\n ABCD1234EFGH5678IJKL9012MNOP3456QRST7890\nuid [ultimate] John Doe \nsub rsa4096 2023-12-05 [E] [expires: 2025-12-05]\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"pub"}),": Your primary key (for signing and certification)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"sub"}),": Subkey (for encryption)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[SC]"}),": Key capabilities: Sign and Certify."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[E]"}),": Encryption."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-4-export-your-public-key",children:"\ud83d\udee0\ufe0f Step 4: Export Your Public Key"}),"\n",(0,r.jsx)(n.p,{children:"To share your public key with others, export it:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This creates a file ",(0,r.jsx)(n.code,{children:"public_key.asc"})," with your public key in ASCII format."]}),"\n",(0,r.jsx)(n.p,{children:"To display the key in the terminal:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-5-test-encryption-and-decryption",children:"\ud83d\udee0\ufe0f Step 5: Test Encryption and Decryption"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Encrypt a file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Create a sample file to encrypt:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'echo "Hello, this is a test message!" > message.txt\n'})}),"\n",(0,r.jsx)(n.p,{children:"Encrypt the file with your public key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output message.txt.gpg --encrypt --recipient johndoe@example.com message.txt\n"})}),"\n",(0,r.jsxs)(n.p,{children:["This generates an encrypted file ",(0,r.jsx)(n.code,{children:"message.txt.gpg"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Decrypt the file"}),":"]}),"\n",(0,r.jsx)(n.p,{children:"Decrypt the file using your private key:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --output decrypted_message.txt --decrypt message.txt.gpg\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Enter your passphrase when prompted. The decrypted content will be saved in ",(0,r.jsx)(n.code,{children:"decrypted_message.txt"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-step-6-back-up-your-keys",children:"\ud83d\udee0\ufe0f Step 6: Back Up Your Keys"}),"\n",(0,r.jsx)(n.p,{children:"Always back up your keys to prevent losing access:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your private key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export-secret-keys johndoe@example.com > private_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Export your public key"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"gpg --armor --export johndoe@example.com > public_key.asc\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Store these files (",(0,r.jsx)(n.code,{children:"private_key.asc"})," and ",(0,r.jsx)(n.code,{children:"public_key.asc"}),") in a safe place."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h3,{id:"-final-tips",children:"\ud83d\ude80 Final Tips"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Keep your private key secure. Never share it."}),"\n",(0,r.jsx)(n.li,{children:"Regularly update your passphrase for added security."}),"\n",(0,r.jsxs)(n.li,{children:["Use tools like ",(0,r.jsx)(n.strong,{children:"gpg-agent"})," for easier key management."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"That\u2019s it! You now have a functional GPG key pair set up on Snigdha OS. \ud83c\udf89"})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const i={},t=r.createContext(i);function l(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/92e44ed4.4ff6c65e.js b/assets/js/92e44ed4.4ff6c65e.js new file mode 100644 index 00000000..960fc563 --- /dev/null +++ b/assets/js/92e44ed4.4ff6c65e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8728],{6867:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var s=n(4848),i=n(8453);const o={sidebar_position:3},t="Upload Key => Server",d={id:"dev_guide/upload_gpg_key",title:"Upload Key => Server",description:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",source:"@site/docs/dev_guide/upload_gpg_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/upload_gpg_key",permalink:"/documentation/dev_guide/upload_gpg_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/upload_gpg_key.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"},next:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"}},l={},a=[{value:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",id:"-sending-and-receiving-gpg-keys-using-a-key-server",level:3},{value:"1\ufe0f\u20e3 Send (Upload) Your Public Key to a Key Server",id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",level:3},{value:"A. Export Your Key's Fingerprint",id:"a-export-your-keys-fingerprint",level:4},{value:"B. Send the Key to a Key Server",id:"b-send-the-key-to-a-key-server",level:4},{value:"2\ufe0f\u20e3 Receive (Download) a Public Key from a Key Server",id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",level:3},{value:"A. Search for a Key by Email or Key ID",id:"a-search-for-a-key-by-email-or-key-id",level:4},{value:"B. Receive the Key Directly by Key ID",id:"b-receive-the-key-directly-by-key-id",level:4},{value:"3\ufe0f\u20e3 Verify the Downloaded Key",id:"3\ufe0f\u20e3-verify-the-downloaded-key",level:3},{value:"4\ufe0f\u20e3 Sign a Received Key (Optional)",id:"4\ufe0f\u20e3-sign-a-received-key-optional",level:3},{value:"5\ufe0f\u20e3 Synchronize Keys with a Key Server",id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",level:3},{value:"6\ufe0f\u20e3 Tips for Key Server Usage",id:"6\ufe0f\u20e3-tips-for-key-server-usage",level:3}];function c(e){const r={code:"code",h1:"h1",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.h1,{id:"upload-key--server",children:"Upload Key => Server"}),"\n",(0,s.jsx)(r.h3,{id:"-sending-and-receiving-gpg-keys-using-a-key-server",children:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server"}),"\n",(0,s.jsx)(r.p,{children:"Key servers are repositories for sharing and retrieving GPG public keys. They make it easy to distribute your public key and fetch others\u2019 keys for verifying signatures or encrypted communications. Here's how to send and receive GPG keys to/from a key server."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",children:["1\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Send (Upload) Your Public Key to a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-export-your-keys-fingerprint",children:["A. ",(0,s.jsx)(r.strong,{children:"Export Your Key's Fingerprint"})]}),"\n",(0,s.jsx)(r.p,{children:"First, identify your key by its fingerprint. List your GPG keys:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"Example output:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"pub rsa4096 2023-12-05 [SC]\n A41886F639658CA1A5519426E1415F19F21171F2\nuid [ultimate] Eshan Roy \nsub rsa4096 2023-12-05 [E]\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Copy the key ID or fingerprint (e.g., ",(0,s.jsx)(r.code,{children:"A41886F639658CA1A5519426E1415F19F21171F2"}),")."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-send-the-key-to-a-key-server",children:["B. ",(0,s.jsx)(r.strong,{children:"Send the Key to a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"Use the following command to upload your public key to a key server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Replace ",(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})," with your preferred key server (e.g., ",(0,s.jsx)(r.code,{children:"keys.openpgp.org"}),")."]}),"\n",(0,s.jsx)(r.li,{children:"Replace the key ID with your actual key ID or fingerprint."}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"If successful, your public key is now available on the key server for others to retrieve."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",children:["2\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Receive (Download) a Public Key from a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-search-for-a-key-by-email-or-key-id",children:["A. ",(0,s.jsx)(r.strong,{children:"Search for a Key by Email or Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you know the email address or key ID of the person whose key you need, search for it:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --search-keys eshanized@example.com\n"})}),"\n",(0,s.jsx)(r.p,{children:"You\u2019ll see a list of matching keys. Example:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"(1) Eshan Roy \n A41886F639658CA1A5519426E1415F19F21171F2\n(2) John X. Doe \n 1234EFGH5678IJKL9012MNOP3456QRST7890ABCD\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Choose the appropriate key by typing its number (e.g., ",(0,s.jsx)(r.code,{children:"1"}),") and pressing Enter."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-receive-the-key-directly-by-key-id",children:["B. ",(0,s.jsx)(r.strong,{children:"Receive the Key Directly by Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you already know the key ID or fingerprint:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"The public key will be downloaded and added to your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"3\ufe0f\u20e3-verify-the-downloaded-key",children:["3\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Verify the Downloaded Key"})]}),"\n",(0,s.jsx)(r.p,{children:"After receiving a key, verify its details to ensure it belongs to the correct person:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Check the ",(0,s.jsx)(r.code,{children:"uid"})," (user ID) and ensure it matches the expected email or name."]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"4\ufe0f\u20e3-sign-a-received-key-optional",children:["4\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Sign a Received Key (Optional)"})]}),"\n",(0,s.jsx)(r.p,{children:"If you trust the key\u2019s owner, you can sign the key to indicate trust:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --sign-key A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"This adds your signature to their key and shows others you vouch for its authenticity."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",children:["5\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Synchronize Keys with a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"If the key is updated (e.g., new subkeys added), synchronize it with the server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --refresh-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"This ensures you have the latest version of all keys in your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"6\ufe0f\u20e3-tips-for-key-server-usage",children:["6\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Tips for Key Server Usage"})]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Choose a Reliable Key Server"}),": Common servers include:"]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keys.openpgp.org"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://pgp.mit.edu"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Use TLS for Security"}),":\nSome key servers support HTTPS for secure communication:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkps://keys.openpgp.org --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Update Regularly"}),":\nSynchronize your keyring periodically to stay current with any changes or revocations."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.p,{children:"By following these steps, you can efficiently share your GPG public key and fetch others' keys for secure communication and verification. \ud83c\udf89"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>d});var s=n(6540);const i={},o=s.createContext(i);function t(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e7197ae2.js b/assets/js/935f2afb.1ef85d04.js similarity index 52% rename from assets/js/935f2afb.e7197ae2.js rename to assets/js/935f2afb.1ef85d04.js index 4724ec96..0c66dd12 100644 --- a/assets/js/935f2afb.e7197ae2.js +++ b/assets/js/935f2afb.1ef85d04.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/documentation/","docId":"introduction/overview","unlisted":false},{"type":"link","label":"Story & Name","href":"/documentation/introduction/name_and_story","docId":"introduction/name_and_story","unlisted":false},{"type":"link","label":"Code of Conduct","href":"/documentation/introduction/code_of_conduct","docId":"introduction/code_of_conduct","unlisted":false},{"type":"link","label":"Release Notes","href":"/documentation/introduction/release_notes","docId":"introduction/release_notes","unlisted":false},{"type":"link","label":"Reporting Bugs","href":"/documentation/introduction/reporting_bugs","docId":"introduction/reporting_bugs","unlisted":false},{"type":"link","label":"Frequently Asked","href":"/documentation/introduction/faqs","docId":"introduction/faqs","unlisted":false},{"type":"link","label":"Contribution Guidelines","href":"/documentation/introduction/contributing","docId":"introduction/contributing","unlisted":false},{"type":"link","label":"Coding Standard","href":"/documentation/introduction/coding-standard","docId":"introduction/coding-standard","unlisted":false},{"type":"link","label":"Aim & Motivation","href":"/documentation/introduction/motivation","docId":"introduction/motivation","unlisted":false}],"href":"/documentation/category/introduction"},{"type":"category","label":"Before Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"System Requirements","href":"/documentation/before_installation/system_requirements","docId":"before_installation/system_requirements","unlisted":false},{"type":"link","label":"Important Notes","href":"/documentation/before_installation/imporatnt_notes","docId":"before_installation/imporatnt_notes","unlisted":false},{"type":"link","label":"Internet Connection","href":"/documentation/before_installation/internet_connection","docId":"before_installation/internet_connection","unlisted":false}],"href":"/documentation/category/before-installation"},{"type":"category","label":"Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Download Snigdha OS","href":"/documentation/installation/download_snigdha_os","docId":"installation/download_snigdha_os","unlisted":false},{"type":"link","label":"Make Bootable USB","href":"/documentation/installation/making_bootable_usb","docId":"installation/making_bootable_usb","unlisted":false},{"type":"link","label":"Live Environment","href":"/documentation/installation/live_env","docId":"installation/live_env","unlisted":false},{"type":"link","label":"Offline Installation","href":"/documentation/installation/offline_install","docId":"installation/offline_install","unlisted":false},{"type":"link","label":"Online Installation","href":"/documentation/installation/online_install","docId":"installation/online_install","unlisted":false},{"type":"link","label":"Install Snigdha OS","href":"/documentation/installation/start_installation","docId":"installation/start_installation","unlisted":false},{"type":"link","label":"Virtualbox","href":"/documentation/installation/virtualbox_installation","docId":"installation/virtualbox_installation","unlisted":false}],"href":"/documentation/category/installation"},{"type":"category","label":"Post Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Language","href":"/documentation/post_installation/language","docId":"post_installation/language","unlisted":false},{"type":"link","label":"Update Snigdha OS","href":"/documentation/post_installation/update","docId":"post_installation/update","unlisted":false},{"type":"link","label":"Customize Snigdha OS","href":"/documentation/post_installation/customization","docId":"post_installation/customization","unlisted":false},{"type":"link","label":"Install Packages","href":"/documentation/post_installation/install_packages","docId":"post_installation/install_packages","unlisted":false}],"href":"/documentation/category/post-installation"},{"type":"category","label":"User Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Cheetsheet/Shortcuts","href":"/documentation/user_guide/cheetsheet","docId":"user_guide/cheetsheet","unlisted":false},{"type":"link","label":"Installing with AUR","href":"/documentation/user_guide/aur","docId":"user_guide/aur","unlisted":false}],"href":"/documentation/category/user-guide"},{"type":"category","label":"Troubleshoot","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Troubleshoot: Wifi","href":"/documentation/troubleshoot/wifi","docId":"troubleshoot/wifi","unlisted":false},{"type":"link","label":"Troubleshoot: Bluetooth","href":"/documentation/troubleshoot/bluetooth","docId":"troubleshoot/bluetooth","unlisted":false},{"type":"link","label":"Troubleshoot: Sound","href":"/documentation/troubleshoot/sound","docId":"troubleshoot/sound","unlisted":false},{"type":"link","label":"Troubleshoot: Display","href":"/documentation/troubleshoot/display","docId":"troubleshoot/display","unlisted":false}],"href":"/documentation/category/troubleshoot"},{"type":"category","label":"Packages","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Welcome","href":"/documentation/packages/snigdhaos_welcome","docId":"packages/snigdhaos_welcome","unlisted":false},{"type":"link","label":"Blackbox","href":"/documentation/packages/snigdhaos_blackbox","docId":"packages/snigdhaos_blackbox","unlisted":false}],"href":"/documentation/category/packages"},{"type":"category","label":"Developers Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Build From Source","href":"/documentation/dev_guide/build_source","docId":"dev_guide/build_source","unlisted":false},{"type":"link","label":"Generate GPG Key","href":"/documentation/dev_guide/gpg_key","docId":"dev_guide/gpg_key","unlisted":false},{"type":"link","label":"Upload Key => Server","href":"/documentation/dev_guide/upload_gog_key","docId":"dev_guide/upload_gog_key","unlisted":false},{"type":"link","label":"Upload & Deploy Packages","href":"/documentation/dev_guide/deploy_packages","docId":"dev_guide/deploy_packages","unlisted":false},{"type":"link","label":"Install Keyrings","href":"/documentation/dev_guide/install_keyring","docId":"dev_guide/install_keyring","unlisted":false},{"type":"link","label":"Writing Documentation","href":"/documentation/dev_guide/write","docId":"dev_guide/write","unlisted":false},{"type":"link","label":"PKGBUILD Template","href":"/documentation/dev_guide/pkgbuild","docId":"dev_guide/pkgbuild","unlisted":false}],"href":"/documentation/category/developers-guide"},{"type":"category","label":"Tools","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Tool: DNS Enum","href":"/documentation/tools/dns","docId":"tools/dns","unlisted":false}],"href":"/documentation/category/tools"}]},"docs":{"before_installation/imporatnt_notes":{"id":"before_installation/imporatnt_notes","title":"Important Notes","description":"\ud83d\udccc We do not recommended you to install Snigdha OS via VM (\'Virtual Machine\' = virtual machine), as it is optimized for use on real hardware or physical machine.","sidebar":"tutorialSidebar"},"before_installation/internet_connection":{"id":"before_installation/internet_connection","title":"Internet Connection","description":"","sidebar":"tutorialSidebar"},"before_installation/system_requirements":{"id":"before_installation/system_requirements","title":"System Requirements","description":"Minimum Requirements","sidebar":"tutorialSidebar"},"dev_guide/build_source":{"id":"dev_guide/build_source","title":"Build From Source","description":"Overview","sidebar":"tutorialSidebar"},"dev_guide/deploy_packages":{"id":"dev_guide/deploy_packages","title":"Upload & Deploy Packages","description":"","sidebar":"tutorialSidebar"},"dev_guide/gpg_key":{"id":"dev_guide/gpg_key","title":"Generate GPG Key","description":"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS","sidebar":"tutorialSidebar"},"dev_guide/install_keyring":{"id":"dev_guide/install_keyring","title":"Install Keyrings","description":"","sidebar":"tutorialSidebar"},"dev_guide/pkgbuild":{"id":"dev_guide/pkgbuild","title":"PKGBUILD Template","description":"Snigdha OS has it\'s own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.","sidebar":"tutorialSidebar"},"dev_guide/upload_gog_key":{"id":"dev_guide/upload_gog_key","title":"Upload Key => Server","description":"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server","sidebar":"tutorialSidebar"},"dev_guide/write":{"id":"dev_guide/write","title":"Writing Documentation","description":"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:","sidebar":"tutorialSidebar"},"installation/download_snigdha_os":{"id":"installation/download_snigdha_os","title":"Download Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/live_env":{"id":"installation/live_env","title":"Live Environment","description":"","sidebar":"tutorialSidebar"},"installation/making_bootable_usb":{"id":"installation/making_bootable_usb","title":"Make Bootable USB","description":"","sidebar":"tutorialSidebar"},"installation/offline_install":{"id":"installation/offline_install","title":"Offline Installation","description":"","sidebar":"tutorialSidebar"},"installation/online_install":{"id":"installation/online_install","title":"Online Installation","description":"","sidebar":"tutorialSidebar"},"installation/start_installation":{"id":"installation/start_installation","title":"Install Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/virtualbox_installation":{"id":"installation/virtualbox_installation","title":"Virtualbox","description":"","sidebar":"tutorialSidebar"},"introduction/code_of_conduct":{"id":"introduction/code_of_conduct","title":"Code of Conduct","description":"A code of conduct outlines expected behavior and guidelines for individuals within a specific community, organization, or group.","sidebar":"tutorialSidebar"},"introduction/coding-standard":{"id":"introduction/coding-standard","title":"Coding Standard","description":"1. Consistent Naming Conventions:","sidebar":"tutorialSidebar"},"introduction/contributing":{"id":"introduction/contributing","title":"Contribution Guidelines","description":"Thank you for considering contributing to Snigdha OS! We welcome contributions from everyone.","sidebar":"tutorialSidebar"},"introduction/faqs":{"id":"introduction/faqs","title":"Frequently Asked","description":"Here are some frequently asked questions (FAQs) about Snigdha OS (penetration distribution):","sidebar":"tutorialSidebar"},"introduction/motivation":{"id":"introduction/motivation","title":"Aim & Motivation","description":"The motivation behind Snigdha OS is to create a lightweight, efficient, and customizable Linux distribution that caters to specific use cases, particularly in the realm of penetration testing and ethical hacking. The OS is designed to be resource-efficient, making it suitable for use on a wide range of hardware, including older systems, mobile devices, and virtual environments.","sidebar":"tutorialSidebar"},"introduction/name_and_story":{"id":"introduction/name_and_story","title":"Story & Name","description":"Eshan Roy, widely known as eshanized, is the founder, lead maintainer, and developer of Snigdha OS.","sidebar":"tutorialSidebar"},"introduction/overview":{"id":"introduction/overview","title":"Overview","description":"Snigdha OS is a lightweight and highly customizable Linux distribution based on Arch and Linux Zen Kernel, minimalism, and focus on user-centric design. We are also working on penetration distribution and blackbox.","sidebar":"tutorialSidebar"},"introduction/release_notes":{"id":"introduction/release_notes","title":"Release Notes","description":"FOR IMMEDIATE RELEASE","sidebar":"tutorialSidebar"},"introduction/reporting_bugs":{"id":"introduction/reporting_bugs","title":"Reporting Bugs","description":"If you discover a security vulnerability within Snigdha OS as well as any packages and tools, please follow our security policy so we can address it promptly.","sidebar":"tutorialSidebar"},"packages/snigdhaos_blackbox":{"id":"packages/snigdhaos_blackbox","title":"Blackbox","description":"","sidebar":"tutorialSidebar"},"packages/snigdhaos_welcome":{"id":"packages/snigdhaos_welcome","title":"Welcome","description":"","sidebar":"tutorialSidebar"},"post_installation/customization":{"id":"post_installation/customization","title":"Customize Snigdha OS","description":"","sidebar":"tutorialSidebar"},"post_installation/install_packages":{"id":"post_installation/install_packages","title":"Install Packages","description":"","sidebar":"tutorialSidebar"},"post_installation/language":{"id":"post_installation/language","title":"Language","description":"","sidebar":"tutorialSidebar"},"post_installation/update":{"id":"post_installation/update","title":"Update Snigdha OS","description":"","sidebar":"tutorialSidebar"},"tools/dns":{"id":"tools/dns","title":"Tool: DNS Enum","description":"","sidebar":"tutorialSidebar"},"troubleshoot/bluetooth":{"id":"troubleshoot/bluetooth","title":"Troubleshoot: Bluetooth","description":"Troubleshooting Bluetooth on Snigdha OS involves several steps. Here\'s the common practice:","sidebar":"tutorialSidebar"},"troubleshoot/display":{"id":"troubleshoot/display","title":"Troubleshoot: Display","description":"","sidebar":"tutorialSidebar"},"troubleshoot/sound":{"id":"troubleshoot/sound","title":"Troubleshoot: Sound","description":"","sidebar":"tutorialSidebar"},"troubleshoot/wifi":{"id":"troubleshoot/wifi","title":"Troubleshoot: Wifi","description":"","sidebar":"tutorialSidebar"},"user_guide/aur":{"id":"user_guide/aur","title":"Installing with AUR","description":"","sidebar":"tutorialSidebar"},"user_guide/cheetsheet":{"id":"user_guide/cheetsheet","title":"Cheetsheet/Shortcuts","description":"","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/documentation/","docId":"introduction/overview","unlisted":false},{"type":"link","label":"Story & Name","href":"/documentation/introduction/name_and_story","docId":"introduction/name_and_story","unlisted":false},{"type":"link","label":"Code of Conduct","href":"/documentation/introduction/code_of_conduct","docId":"introduction/code_of_conduct","unlisted":false},{"type":"link","label":"Release Notes","href":"/documentation/introduction/release_notes","docId":"introduction/release_notes","unlisted":false},{"type":"link","label":"Reporting Bugs","href":"/documentation/introduction/reporting_bugs","docId":"introduction/reporting_bugs","unlisted":false},{"type":"link","label":"Frequently Asked","href":"/documentation/introduction/faqs","docId":"introduction/faqs","unlisted":false},{"type":"link","label":"Contribution Guidelines","href":"/documentation/introduction/contributing","docId":"introduction/contributing","unlisted":false},{"type":"link","label":"Coding Standard","href":"/documentation/introduction/coding-standard","docId":"introduction/coding-standard","unlisted":false},{"type":"link","label":"Aim & Motivation","href":"/documentation/introduction/motivation","docId":"introduction/motivation","unlisted":false}],"href":"/documentation/category/introduction"},{"type":"category","label":"Before Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"System Requirements","href":"/documentation/before_installation/system_requirements","docId":"before_installation/system_requirements","unlisted":false},{"type":"link","label":"Important Notes","href":"/documentation/before_installation/imporatnt_notes","docId":"before_installation/imporatnt_notes","unlisted":false},{"type":"link","label":"Internet Connection","href":"/documentation/before_installation/internet_connection","docId":"before_installation/internet_connection","unlisted":false}],"href":"/documentation/category/before-installation"},{"type":"category","label":"Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Download Snigdha OS","href":"/documentation/installation/download_snigdha_os","docId":"installation/download_snigdha_os","unlisted":false},{"type":"link","label":"Make Bootable USB","href":"/documentation/installation/making_bootable_usb","docId":"installation/making_bootable_usb","unlisted":false},{"type":"link","label":"Live Environment","href":"/documentation/installation/live_env","docId":"installation/live_env","unlisted":false},{"type":"link","label":"Offline Installation","href":"/documentation/installation/offline_install","docId":"installation/offline_install","unlisted":false},{"type":"link","label":"Online Installation","href":"/documentation/installation/online_install","docId":"installation/online_install","unlisted":false},{"type":"link","label":"Install Snigdha OS","href":"/documentation/installation/start_installation","docId":"installation/start_installation","unlisted":false},{"type":"link","label":"Virtualbox","href":"/documentation/installation/virtualbox_installation","docId":"installation/virtualbox_installation","unlisted":false}],"href":"/documentation/category/installation"},{"type":"category","label":"Post Installation","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Language","href":"/documentation/post_installation/language","docId":"post_installation/language","unlisted":false},{"type":"link","label":"Update Snigdha OS","href":"/documentation/post_installation/update","docId":"post_installation/update","unlisted":false},{"type":"link","label":"Customize Snigdha OS","href":"/documentation/post_installation/customization","docId":"post_installation/customization","unlisted":false},{"type":"link","label":"Install Packages","href":"/documentation/post_installation/install_packages","docId":"post_installation/install_packages","unlisted":false}],"href":"/documentation/category/post-installation"},{"type":"category","label":"User Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Cheetsheet/Shortcuts","href":"/documentation/user_guide/cheetsheet","docId":"user_guide/cheetsheet","unlisted":false},{"type":"link","label":"Installing with AUR","href":"/documentation/user_guide/aur","docId":"user_guide/aur","unlisted":false}],"href":"/documentation/category/user-guide"},{"type":"category","label":"Troubleshoot","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Troubleshoot: Wifi","href":"/documentation/troubleshoot/wifi","docId":"troubleshoot/wifi","unlisted":false},{"type":"link","label":"Troubleshoot: Bluetooth","href":"/documentation/troubleshoot/bluetooth","docId":"troubleshoot/bluetooth","unlisted":false},{"type":"link","label":"Troubleshoot: Sound","href":"/documentation/troubleshoot/sound","docId":"troubleshoot/sound","unlisted":false},{"type":"link","label":"Troubleshoot: Display","href":"/documentation/troubleshoot/display","docId":"troubleshoot/display","unlisted":false}],"href":"/documentation/category/troubleshoot"},{"type":"category","label":"Packages","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Welcome","href":"/documentation/packages/snigdhaos_welcome","docId":"packages/snigdhaos_welcome","unlisted":false},{"type":"link","label":"Blackbox","href":"/documentation/packages/snigdhaos_blackbox","docId":"packages/snigdhaos_blackbox","unlisted":false}],"href":"/documentation/category/packages"},{"type":"category","label":"Developers Guide","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Build From Source","href":"/documentation/dev_guide/build_source","docId":"dev_guide/build_source","unlisted":false},{"type":"link","label":"Generate GPG Key","href":"/documentation/dev_guide/gpg_key","docId":"dev_guide/gpg_key","unlisted":false},{"type":"link","label":"Upload Key => Server","href":"/documentation/dev_guide/upload_gpg_key","docId":"dev_guide/upload_gpg_key","unlisted":false},{"type":"link","label":"Install Keyrings","href":"/documentation/dev_guide/install_keyring","docId":"dev_guide/install_keyring","unlisted":false},{"type":"link","label":"Upload & Deploy Packages","href":"/documentation/dev_guide/deploy_packages","docId":"dev_guide/deploy_packages","unlisted":false},{"type":"link","label":"Writing Documentation","href":"/documentation/dev_guide/write","docId":"dev_guide/write","unlisted":false},{"type":"link","label":"PKGBUILD Template","href":"/documentation/dev_guide/pkgbuild","docId":"dev_guide/pkgbuild","unlisted":false}],"href":"/documentation/category/developers-guide"},{"type":"category","label":"Tools","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Tool: DNS Enum","href":"/documentation/tools/dns","docId":"tools/dns","unlisted":false}],"href":"/documentation/category/tools"}]},"docs":{"before_installation/imporatnt_notes":{"id":"before_installation/imporatnt_notes","title":"Important Notes","description":"\ud83d\udccc We do not recommended you to install Snigdha OS via VM (\'Virtual Machine\' = virtual machine), as it is optimized for use on real hardware or physical machine.","sidebar":"tutorialSidebar"},"before_installation/internet_connection":{"id":"before_installation/internet_connection","title":"Internet Connection","description":"","sidebar":"tutorialSidebar"},"before_installation/system_requirements":{"id":"before_installation/system_requirements","title":"System Requirements","description":"Minimum Requirements","sidebar":"tutorialSidebar"},"dev_guide/build_source":{"id":"dev_guide/build_source","title":"Build From Source","description":"Overview","sidebar":"tutorialSidebar"},"dev_guide/deploy_packages":{"id":"dev_guide/deploy_packages","title":"Upload & Deploy Packages","description":"\ud83d\ude80 Uploading and Deploying an Arch Linux Package on GitHub","sidebar":"tutorialSidebar"},"dev_guide/gpg_key":{"id":"dev_guide/gpg_key","title":"Generate GPG Key","description":"\ud83d\udd10 How to Generate a GPG Key on Snigdha OS","sidebar":"tutorialSidebar"},"dev_guide/install_keyring":{"id":"dev_guide/install_keyring","title":"Install Keyrings","description":"","sidebar":"tutorialSidebar"},"dev_guide/pkgbuild":{"id":"dev_guide/pkgbuild","title":"PKGBUILD Template","description":"Snigdha OS has it\'s own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template.","sidebar":"tutorialSidebar"},"dev_guide/upload_gpg_key":{"id":"dev_guide/upload_gpg_key","title":"Upload Key => Server","description":"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server","sidebar":"tutorialSidebar"},"dev_guide/write":{"id":"dev_guide/write","title":"Writing Documentation","description":"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:","sidebar":"tutorialSidebar"},"installation/download_snigdha_os":{"id":"installation/download_snigdha_os","title":"Download Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/live_env":{"id":"installation/live_env","title":"Live Environment","description":"","sidebar":"tutorialSidebar"},"installation/making_bootable_usb":{"id":"installation/making_bootable_usb","title":"Make Bootable USB","description":"","sidebar":"tutorialSidebar"},"installation/offline_install":{"id":"installation/offline_install","title":"Offline Installation","description":"","sidebar":"tutorialSidebar"},"installation/online_install":{"id":"installation/online_install","title":"Online Installation","description":"","sidebar":"tutorialSidebar"},"installation/start_installation":{"id":"installation/start_installation","title":"Install Snigdha OS","description":"","sidebar":"tutorialSidebar"},"installation/virtualbox_installation":{"id":"installation/virtualbox_installation","title":"Virtualbox","description":"","sidebar":"tutorialSidebar"},"introduction/code_of_conduct":{"id":"introduction/code_of_conduct","title":"Code of Conduct","description":"A code of conduct outlines expected behavior and guidelines for individuals within a specific community, organization, or group.","sidebar":"tutorialSidebar"},"introduction/coding-standard":{"id":"introduction/coding-standard","title":"Coding Standard","description":"1. Consistent Naming Conventions:","sidebar":"tutorialSidebar"},"introduction/contributing":{"id":"introduction/contributing","title":"Contribution Guidelines","description":"Thank you for considering contributing to Snigdha OS! We welcome contributions from everyone.","sidebar":"tutorialSidebar"},"introduction/faqs":{"id":"introduction/faqs","title":"Frequently Asked","description":"Here are some frequently asked questions (FAQs) about Snigdha OS (penetration distribution):","sidebar":"tutorialSidebar"},"introduction/motivation":{"id":"introduction/motivation","title":"Aim & Motivation","description":"The motivation behind Snigdha OS is to create a lightweight, efficient, and customizable Linux distribution that caters to specific use cases, particularly in the realm of penetration testing and ethical hacking. The OS is designed to be resource-efficient, making it suitable for use on a wide range of hardware, including older systems, mobile devices, and virtual environments.","sidebar":"tutorialSidebar"},"introduction/name_and_story":{"id":"introduction/name_and_story","title":"Story & Name","description":"Eshan Roy, widely known as eshanized, is the founder, lead maintainer, and developer of Snigdha OS.","sidebar":"tutorialSidebar"},"introduction/overview":{"id":"introduction/overview","title":"Overview","description":"Snigdha OS is a lightweight and highly customizable Linux distribution based on Arch and Linux Zen Kernel, minimalism, and focus on user-centric design. We are also working on penetration distribution and blackbox.","sidebar":"tutorialSidebar"},"introduction/release_notes":{"id":"introduction/release_notes","title":"Release Notes","description":"FOR IMMEDIATE RELEASE","sidebar":"tutorialSidebar"},"introduction/reporting_bugs":{"id":"introduction/reporting_bugs","title":"Reporting Bugs","description":"If you discover a security vulnerability within Snigdha OS as well as any packages and tools, please follow our security policy so we can address it promptly.","sidebar":"tutorialSidebar"},"packages/snigdhaos_blackbox":{"id":"packages/snigdhaos_blackbox","title":"Blackbox","description":"","sidebar":"tutorialSidebar"},"packages/snigdhaos_welcome":{"id":"packages/snigdhaos_welcome","title":"Welcome","description":"","sidebar":"tutorialSidebar"},"post_installation/customization":{"id":"post_installation/customization","title":"Customize Snigdha OS","description":"","sidebar":"tutorialSidebar"},"post_installation/install_packages":{"id":"post_installation/install_packages","title":"Install Packages","description":"","sidebar":"tutorialSidebar"},"post_installation/language":{"id":"post_installation/language","title":"Language","description":"","sidebar":"tutorialSidebar"},"post_installation/update":{"id":"post_installation/update","title":"Update Snigdha OS","description":"","sidebar":"tutorialSidebar"},"tools/dns":{"id":"tools/dns","title":"Tool: DNS Enum","description":"","sidebar":"tutorialSidebar"},"troubleshoot/bluetooth":{"id":"troubleshoot/bluetooth","title":"Troubleshoot: Bluetooth","description":"Troubleshooting Bluetooth on Snigdha OS involves several steps. Here\'s the common practice:","sidebar":"tutorialSidebar"},"troubleshoot/display":{"id":"troubleshoot/display","title":"Troubleshoot: Display","description":"","sidebar":"tutorialSidebar"},"troubleshoot/sound":{"id":"troubleshoot/sound","title":"Troubleshoot: Sound","description":"","sidebar":"tutorialSidebar"},"troubleshoot/wifi":{"id":"troubleshoot/wifi","title":"Troubleshoot: Wifi","description":"","sidebar":"tutorialSidebar"},"user_guide/aur":{"id":"user_guide/aur","title":"Installing with AUR","description":"","sidebar":"tutorialSidebar"},"user_guide/cheetsheet":{"id":"user_guide/cheetsheet","title":"Cheetsheet/Shortcuts","description":"","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a6f8198f.870e6635.js b/assets/js/a6f8198f.870e6635.js deleted file mode 100644 index 56c305b9..00000000 --- a/assets/js/a6f8198f.870e6635.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4084],{7772:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>a});var s=n(4848),i=n(8453);const o={sidebar_position:3},d="Upload Key => Server",t={id:"dev_guide/upload_gog_key",title:"Upload Key => Server",description:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",source:"@site/docs/dev_guide/upload_gog_key.md",sourceDirName:"dev_guide",slug:"/dev_guide/upload_gog_key",permalink:"/documentation/dev_guide/upload_gog_key",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/upload_gog_key.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Generate GPG Key",permalink:"/documentation/dev_guide/gpg_key"},next:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"}},l={},a=[{value:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server",id:"-sending-and-receiving-gpg-keys-using-a-key-server",level:3},{value:"1\ufe0f\u20e3 Send (Upload) Your Public Key to a Key Server",id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",level:3},{value:"A. Export Your Key's Fingerprint",id:"a-export-your-keys-fingerprint",level:4},{value:"B. Send the Key to a Key Server",id:"b-send-the-key-to-a-key-server",level:4},{value:"2\ufe0f\u20e3 Receive (Download) a Public Key from a Key Server",id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",level:3},{value:"A. Search for a Key by Email or Key ID",id:"a-search-for-a-key-by-email-or-key-id",level:4},{value:"B. Receive the Key Directly by Key ID",id:"b-receive-the-key-directly-by-key-id",level:4},{value:"3\ufe0f\u20e3 Verify the Downloaded Key",id:"3\ufe0f\u20e3-verify-the-downloaded-key",level:3},{value:"4\ufe0f\u20e3 Sign a Received Key (Optional)",id:"4\ufe0f\u20e3-sign-a-received-key-optional",level:3},{value:"5\ufe0f\u20e3 Synchronize Keys with a Key Server",id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",level:3},{value:"6\ufe0f\u20e3 Tips for Key Server Usage",id:"6\ufe0f\u20e3-tips-for-key-server-usage",level:3}];function c(e){const r={code:"code",h1:"h1",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.h1,{id:"upload-key--server",children:"Upload Key => Server"}),"\n",(0,s.jsx)(r.h3,{id:"-sending-and-receiving-gpg-keys-using-a-key-server",children:"\ud83c\udf10 Sending and Receiving GPG Keys Using a Key Server"}),"\n",(0,s.jsx)(r.p,{children:"Key servers are repositories for sharing and retrieving GPG public keys. They make it easy to distribute your public key and fetch others\u2019 keys for verifying signatures or encrypted communications. Here's how to send and receive GPG keys to/from a key server."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"1\ufe0f\u20e3-send-upload-your-public-key-to-a-key-server",children:["1\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Send (Upload) Your Public Key to a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-export-your-keys-fingerprint",children:["A. ",(0,s.jsx)(r.strong,{children:"Export Your Key's Fingerprint"})]}),"\n",(0,s.jsx)(r.p,{children:"First, identify your key by its fingerprint. List your GPG keys:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"Example output:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"pub rsa4096 2023-12-05 [SC]\n A41886F639658CA1A5519426E1415F19F21171F2\nuid [ultimate] Eshan Roy \nsub rsa4096 2023-12-05 [E]\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Copy the key ID or fingerprint (e.g., ",(0,s.jsx)(r.code,{children:"A41886F639658CA1A5519426E1415F19F21171F2"}),")."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-send-the-key-to-a-key-server",children:["B. ",(0,s.jsx)(r.strong,{children:"Send the Key to a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"Use the following command to upload your public key to a key server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Replace ",(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})," with your preferred key server (e.g., ",(0,s.jsx)(r.code,{children:"keys.openpgp.org"}),")."]}),"\n",(0,s.jsx)(r.li,{children:"Replace the key ID with your actual key ID or fingerprint."}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"If successful, your public key is now available on the key server for others to retrieve."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"2\ufe0f\u20e3-receive-download-a-public-key-from-a-key-server",children:["2\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Receive (Download) a Public Key from a Key Server"})]}),"\n",(0,s.jsxs)(r.h4,{id:"a-search-for-a-key-by-email-or-key-id",children:["A. ",(0,s.jsx)(r.strong,{children:"Search for a Key by Email or Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you know the email address or key ID of the person whose key you need, search for it:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --search-keys eshanized@example.com\n"})}),"\n",(0,s.jsx)(r.p,{children:"You\u2019ll see a list of matching keys. Example:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-plaintext",children:"(1) Eshan Roy \n A41886F639658CA1A5519426E1415F19F21171F2\n(2) John X. Doe \n 1234EFGH5678IJKL9012MNOP3456QRST7890ABCD\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Choose the appropriate key by typing its number (e.g., ",(0,s.jsx)(r.code,{children:"1"}),") and pressing Enter."]}),"\n",(0,s.jsxs)(r.h4,{id:"b-receive-the-key-directly-by-key-id",children:["B. ",(0,s.jsx)(r.strong,{children:"Receive the Key Directly by Key ID"})]}),"\n",(0,s.jsx)(r.p,{children:"If you already know the key ID or fingerprint:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"The public key will be downloaded and added to your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"3\ufe0f\u20e3-verify-the-downloaded-key",children:["3\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Verify the Downloaded Key"})]}),"\n",(0,s.jsx)(r.p,{children:"After receiving a key, verify its details to ensure it belongs to the correct person:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --list-keys\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Check the ",(0,s.jsx)(r.code,{children:"uid"})," (user ID) and ensure it matches the expected email or name."]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"4\ufe0f\u20e3-sign-a-received-key-optional",children:["4\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Sign a Received Key (Optional)"})]}),"\n",(0,s.jsx)(r.p,{children:"If you trust the key\u2019s owner, you can sign the key to indicate trust:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --sign-key A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n",(0,s.jsx)(r.p,{children:"This adds your signature to their key and shows others you vouch for its authenticity."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"5\ufe0f\u20e3-synchronize-keys-with-a-key-server",children:["5\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Synchronize Keys with a Key Server"})]}),"\n",(0,s.jsx)(r.p,{children:"If the key is updated (e.g., new subkeys added), synchronize it with the server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --refresh-keys\n"})}),"\n",(0,s.jsx)(r.p,{children:"This ensures you have the latest version of all keys in your keyring."}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsxs)(r.h3,{id:"6\ufe0f\u20e3-tips-for-key-server-usage",children:["6\ufe0f\u20e3 ",(0,s.jsx)(r.strong,{children:"Tips for Key Server Usage"})]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Choose a Reliable Key Server"}),": Common servers include:"]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keyserver.ubuntu.com"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://keys.openpgp.org"})}),"\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.code,{children:"hkp://pgp.mit.edu"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Use TLS for Security"}),":\nSome key servers support HTTPS for secure communication:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"gpg --keyserver hkps://keys.openpgp.org --send-keys A41886F639658CA1A5519426E1415F19F21171F2\n"})}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Update Regularly"}),":\nSynchronize your keyring periodically to stay current with any changes or revocations."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(r.hr,{}),"\n",(0,s.jsx)(r.p,{children:"By following these steps, you can efficiently share your GPG public key and fetch others' keys for secure communication and verification. \ud83c\udf89"})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>t});var s=n(6540);const i={},o=s.createContext(i);function d(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec3de22d.5a4b6592.js b/assets/js/ec3de22d.5a4b6592.js new file mode 100644 index 00000000..2af569ad --- /dev/null +++ b/assets/js/ec3de22d.5a4b6592.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4893],{5877:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>d,toc:()=>u});var o=n(4848),i=n(8453);const r={sidebar_position:6},s="Writing Documentation",d={id:"dev_guide/write",title:"Writing Documentation",description:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:",source:"@site/docs/dev_guide/write.md",sourceDirName:"dev_guide",slug:"/dev_guide/write",permalink:"/documentation/dev_guide/write",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/write.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Upload & Deploy Packages",permalink:"/documentation/dev_guide/deploy_packages"},next:{title:"PKGBUILD Template",permalink:"/documentation/dev_guide/pkgbuild"}},a={},u=[];function c(e){const t={a:"a",h1:"h1",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"writing-documentation",children:"Writing Documentation"}),"\n",(0,o.jsx)(t.p,{children:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"User guides to help Snigdha OS end users with some advanced features."}),"\n",(0,o.jsxs)(t.li,{children:["More ",(0,o.jsx)(t.a,{href:"/introduction/faqs",children:"frequently asked questions"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Expanded ",(0,o.jsx)(t.a,{href:"/category/troubleshoot",children:"troubleshooting"})," steps."]}),"\n",(0,o.jsxs)(t.li,{children:["Step-by-step tutorials for Snigdha OS ",(0,o.jsx)(t.a,{href:"/category/developers-guide",children:"development"})," or ",(0,o.jsx)(t.a,{href:"/category/installation",children:"installation"}),"."]}),"\n",(0,o.jsx)(t.li,{children:"Improving literally anything else you think we should elaborate on or explain better."}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["A good way to find topics to write about is to look for common questions in the ",(0,o.jsx)(t.a,{href:"https://forum.snigdhaos.org/t/support",children:"support tag"})," of our community."]})]})}function l(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>d});var o=n(6540);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec3de22d.f1320b06.js b/assets/js/ec3de22d.f1320b06.js deleted file mode 100644 index 834750e4..00000000 --- a/assets/js/ec3de22d.f1320b06.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[4893],{5877:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>d,toc:()=>u});var i=n(4848),o=n(8453);const r={sidebar_position:6},s="Writing Documentation",d={id:"dev_guide/write",title:"Writing Documentation",description:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:",source:"@site/docs/dev_guide/write.md",sourceDirName:"dev_guide",slug:"/dev_guide/write",permalink:"/documentation/dev_guide/write",draft:!1,unlisted:!1,editUrl:"https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/write.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Install Keyrings",permalink:"/documentation/dev_guide/install_keyring"},next:{title:"PKGBUILD Template",permalink:"/documentation/dev_guide/pkgbuild"}},a={},u=[];function l(e){const t={a:"a",h1:"h1",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"writing-documentation",children:"Writing Documentation"}),"\n",(0,i.jsx)(t.p,{children:"Adding documentation can help countless future of Snigdha OS users. A few ideas of what to work on:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"User guides to help Snigdha OS end users with some advanced features."}),"\n",(0,i.jsxs)(t.li,{children:["More ",(0,i.jsx)(t.a,{href:"/introduction/faqs",children:"frequently asked questions"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Expanded ",(0,i.jsx)(t.a,{href:"/category/troubleshoot",children:"troubleshooting"})," steps."]}),"\n",(0,i.jsxs)(t.li,{children:["Step-by-step tutorials for Snigdha OS ",(0,i.jsx)(t.a,{href:"/category/developers-guide",children:"development"})," or ",(0,i.jsx)(t.a,{href:"/category/installation",children:"installation"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Improving literally anything else you think we should elaborate on or explain better."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["A good way to find topics to write about is to look for common questions in the ",(0,i.jsx)(t.a,{href:"https://forum.snigdhaos.org/t/support",children:"support tag"})," of our community."]})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>d});var i=n(6540);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.7fc3f15a.js b/assets/js/main.7fc3f15a.js new file mode 100644 index 00000000..b28177ce --- /dev/null +++ b/assets/js/main.7fc3f15a.js @@ -0,0 +1,2 @@ +/*! For license information please see main.7fc3f15a.js.LICENSE.txt */ +(self.webpackChunkdocuments=self.webpackChunkdocuments||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9158)),"@theme/BlogTagsListPage",9158],"043e14d3":[()=>n.e(8731).then(n.bind(n,7388)),"@site/docs/dev_guide/deploy_packages.md",7388],"06ee4edd":[()=>n.e(9886).then(n.t.bind(n,1472,19)),"~docs/default/category-documentation-tutorialsidebar-category-developers-guide-ae5.json",1472],"0b3ceb4d":[()=>n.e(858).then(n.t.bind(n,1966,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"0b7de297":[()=>n.e(6793).then(n.bind(n,4083)),"@site/docs/troubleshoot/bluetooth.md",4083],"0e1f2be5":[()=>n.e(9489).then(n.bind(n,8799)),"@site/docs/introduction/coding-standard.md",8799],"143ddb83":[()=>n.e(7152).then(n.bind(n,4647)),"@site/docs/before_installation/system_requirements.md",4647],"14e72bca":[()=>n.e(3324).then(n.t.bind(n,3391,19)),"~blog/default/documentation-blog-d20.json",3391],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,4136)),"@theme/DocCategoryGeneratedIndexPage",4136],"151aa183":[()=>n.e(5990).then(n.bind(n,8244)),"@site/docs/installation/online_install.md",8244],"16a4261c":[()=>n.e(5305).then(n.bind(n,6443)),"@site/docs/introduction/motivation.md",6443],17896441:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8401)]).then(n.bind(n,4799)),"@theme/DocItem",4799],"1b1ff061":[()=>n.e(8758).then(n.bind(n,4e3)),"@site/docs/introduction/release_notes.md",4e3],"1c0d73a2":[()=>n.e(5564).then(n.t.bind(n,1783,19)),"~blog/default/documentation-blog-tags-bug-b05-list.json",1783],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(5533),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"1f9d4574":[()=>n.e(3865).then(n.bind(n,9726)),"@site/docs/installation/start_installation.md",9726],"21abdd8f":[()=>n.e(155).then(n.bind(n,24)),"@site/src/pages/cookie-consent.md",24],"24e7cd5a":[()=>n.e(5678).then(n.bind(n,1546)),"@site/docs/installation/virtualbox_installation.md",1546],"34e267cb":[()=>n.e(1809).then(n.bind(n,4245)),"@site/docs/installation/download_snigdha_os.md",4245],"36717f71":[()=>n.e(467).then(n.bind(n,1044)),"@site/docs/troubleshoot/wifi.md",1044],"374f080d":[()=>n.e(6227).then(n.bind(n,9535)),"@site/docs/before_installation/internet_connection.md",9535],"393be207":[()=>n.e(4134).then(n.bind(n,6602)),"@site/src/pages/markdown-page.md",6602],"3f32b921":[()=>n.e(3459).then(n.bind(n,1360)),"@site/docs/installation/offline_install.md",1360],"400546c3":[()=>n.e(2246).then(n.bind(n,47)),"@site/docs/packages/snigdhaos_welcome.md",47],"404ec107":[()=>n.e(5473).then(n.bind(n,60)),"@site/docs/dev_guide/install_keyring.md",60],"556b5122":[()=>n.e(5715).then(n.bind(n,6131)),"@site/docs/introduction/contributing.md",6131],"5d63bb5c":[()=>n.e(6301).then(n.t.bind(n,8155,19)),"~docs/default/category-documentation-tutorialsidebar-category-before-installation-bbf.json",8155],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"66ee5a7d":[()=>n.e(5890).then(n.bind(n,5843)),"@site/docs/dev_guide/pkgbuild.md",5843],"67391c37":[()=>n.e(7220).then(n.t.bind(n,1959,19)),"~blog/default/documentation-blog-tags-tags-271.json",1959],"6875c492":[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"69817ecd":[()=>n.e(3236).then(n.t.bind(n,1231,19)),"~docs/default/category-documentation-tutorialsidebar-category-user-guide-b31.json",1231],"7616f23a":[()=>n.e(6769).then(n.bind(n,8360)),"@site/docs/introduction/overview.md",8360],"7909fc73":[()=>n.e(4925).then(n.t.bind(n,2885,19)),"~blog/default/documentation-blog-tags-bug-b05.json",2885],"795cfaa5":[()=>n.e(9250).then(n.bind(n,2621)),"@site/docs/installation/live_env.md",2621],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"89ebda57":[()=>n.e(5766).then(n.bind(n,8521)),"@site/docs/dev_guide/gpg_key.md",8521],"904c2b3c":[()=>n.e(8989).then(n.bind(n,4389)),"@site/docs/post_installation/install_packages.md",4389],"9096837d":[()=>n.e(1255).then(n.t.bind(n,5091,19)),"~docs/default/category-documentation-tutorialsidebar-category-packages-eea.json",5091],"92e44ed4":[()=>n.e(8728).then(n.bind(n,6867)),"@site/docs/dev_guide/upload_gpg_key.md",6867],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"96b21efb":[()=>n.e(6540).then(n.t.bind(n,1937,19)),"~docs/default/category-documentation-tutorialsidebar-category-tools-82a.json",1937],"9cb882f2":[()=>n.e(2523).then(n.bind(n,3687)),"@site/docs/post_installation/customization.md",3687],"9dc2651c":[()=>n.e(9040).then(n.bind(n,6034)),"@site/docs/troubleshoot/sound.md",6034],"9dcbbb0d":[()=>n.e(3327).then(n.bind(n,949)),"@site/docs/dev_guide/build_source.md",949],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],a193a73b:[()=>n.e(58).then(n.t.bind(n,4061,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(7643)]).then(n.bind(n,7785)),"@theme/BlogListPage",7785],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],ad749202:[()=>n.e(7590).then(n.bind(n,262)),"@site/docs/post_installation/language.md",262],b19634de:[()=>n.e(3117).then(n.bind(n,4102)),"@site/docs/introduction/faqs.md",4102],b20c3152:[()=>n.e(5713).then(n.t.bind(n,856,19)),"~docs/default/category-documentation-tutorialsidebar-category-installation-da6.json",856],b85d3565:[()=>n.e(6213).then(n.bind(n,6456)),"@site/docs/installation/making_bootable_usb.md",6456],b9c524af:[()=>n.e(6731).then(n.bind(n,3547)),"@site/docs/before_installation/imporatnt_notes.md",3547],bbd9b434:[()=>n.e(3925).then(n.bind(n,3155)),"@site/docs/packages/snigdhaos_blackbox.md",3155],ca54887a:[()=>n.e(4612).then(n.bind(n,2096)),"@site/docs/introduction/name_and_story.md",2096],ccc49370:[()=>Promise.all([n.e(1869),n.e(5533),n.e(8747),n.e(3249)]).then(n.bind(n,4029)),"@theme/BlogPostPage",4029],ccd1ff3c:[()=>n.e(4434).then(n.t.bind(n,7770,19)),"~docs/default/category-documentation-tutorialsidebar-category-introduction-344.json",7770],ce85b788:[()=>n.e(7979).then(n.bind(n,2693)),"@site/docs/tools/dns.md",2693],d68f1e45:[()=>n.e(3244).then(n.bind(n,7911)),"@site/docs/user_guide/aur.md",7911],d773f089:[()=>n.e(8121).then(n.t.bind(n,2945,19)),"/home/runner/work/documentation/documentation/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",2945],dc87ea58:[()=>n.e(5634).then(n.bind(n,8723)),"@site/docs/introduction/reporting_bugs.md",8723],de6c38e6:[()=>n.e(1703).then(n.t.bind(n,7652,19)),"~docs/default/category-documentation-tutorialsidebar-category-troubleshoot-a4b.json",7652],e2e7c0ac:[()=>n.e(4347).then(n.bind(n,6543)),"@site/docs/troubleshoot/display.md",6543],e541c1c2:[()=>n.e(1339).then(n.t.bind(n,2351,19)),"~docs/default/category-documentation-tutorialsidebar-category-post-installation-06e.json",2351],e89f4dea:[()=>n.e(3527).then(n.bind(n,4279)),"@site/docs/introduction/code_of_conduct.md",4279],ec3de22d:[()=>n.e(4893).then(n.bind(n,5877)),"@site/docs/dev_guide/write.md",5877],ec4024f9:[()=>n.e(8262).then(n.bind(n,2662)),"@site/blog/effetive_bug_report.md?truncated=true",2662],eda3af29:[()=>n.e(4474).then(n.t.bind(n,2489,19)),"~blog/default/documentation-blog-archive-ece.json",2489],f7392c07:[()=>n.e(7904).then(n.bind(n,8226)),"@site/blog/effetive_bug_report.md",8226],f7a81d3a:[()=>n.e(2966).then(n.bind(n,8921)),"@site/docs/user_guide/cheetsheet.md",8921],fbb85ca9:[()=>n.e(6183).then(n.bind(n,8698)),"@site/src/pages/privacy_policy.md",8698],ffa2682b:[()=>n.e(2056).then(n.bind(n,1081)),"@site/docs/post_installation/update.md",1081]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/documentation/blog",component:d("/documentation/blog","6c7"),exact:!0},{path:"/documentation/blog/archive",component:d("/documentation/blog/archive","36a"),exact:!0},{path:"/documentation/blog/effective_bug_report",component:d("/documentation/blog/effective_bug_report","d13"),exact:!0},{path:"/documentation/blog/tags",component:d("/documentation/blog/tags","592"),exact:!0},{path:"/documentation/blog/tags/bug",component:d("/documentation/blog/tags/bug","8e1"),exact:!0},{path:"/documentation/cookie-consent",component:d("/documentation/cookie-consent","c46"),exact:!0},{path:"/documentation/markdown-page",component:d("/documentation/markdown-page","ca0"),exact:!0},{path:"/documentation/privacy_policy",component:d("/documentation/privacy_policy","0c9"),exact:!0},{path:"/documentation/",component:d("/documentation/","213"),routes:[{path:"/documentation/",component:d("/documentation/","6df"),routes:[{path:"/documentation/",component:d("/documentation/","82d"),routes:[{path:"/documentation/before_installation/imporatnt_notes",component:d("/documentation/before_installation/imporatnt_notes","89a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/before_installation/internet_connection",component:d("/documentation/before_installation/internet_connection","fae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/before_installation/system_requirements",component:d("/documentation/before_installation/system_requirements","65d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/before-installation",component:d("/documentation/category/before-installation","3ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/developers-guide",component:d("/documentation/category/developers-guide","73b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/installation",component:d("/documentation/category/installation","665"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/introduction",component:d("/documentation/category/introduction","2cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/packages",component:d("/documentation/category/packages","0e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/post-installation",component:d("/documentation/category/post-installation","ee0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/tools",component:d("/documentation/category/tools","a35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/troubleshoot",component:d("/documentation/category/troubleshoot","11b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/category/user-guide",component:d("/documentation/category/user-guide","d5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/build_source",component:d("/documentation/dev_guide/build_source","81a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/deploy_packages",component:d("/documentation/dev_guide/deploy_packages","61f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/gpg_key",component:d("/documentation/dev_guide/gpg_key","d30"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/install_keyring",component:d("/documentation/dev_guide/install_keyring","6ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/pkgbuild",component:d("/documentation/dev_guide/pkgbuild","393"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/upload_gpg_key",component:d("/documentation/dev_guide/upload_gpg_key","2be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/dev_guide/write",component:d("/documentation/dev_guide/write","856"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/download_snigdha_os",component:d("/documentation/installation/download_snigdha_os","369"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/live_env",component:d("/documentation/installation/live_env","d25"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/making_bootable_usb",component:d("/documentation/installation/making_bootable_usb","298"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/offline_install",component:d("/documentation/installation/offline_install","274"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/online_install",component:d("/documentation/installation/online_install","c8a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/start_installation",component:d("/documentation/installation/start_installation","0d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/installation/virtualbox_installation",component:d("/documentation/installation/virtualbox_installation","f71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/code_of_conduct",component:d("/documentation/introduction/code_of_conduct","1f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/coding-standard",component:d("/documentation/introduction/coding-standard","105"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/contributing",component:d("/documentation/introduction/contributing","2c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/faqs",component:d("/documentation/introduction/faqs","7af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/motivation",component:d("/documentation/introduction/motivation","0bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/name_and_story",component:d("/documentation/introduction/name_and_story","d3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/release_notes",component:d("/documentation/introduction/release_notes","590"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/introduction/reporting_bugs",component:d("/documentation/introduction/reporting_bugs","974"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/packages/snigdhaos_blackbox",component:d("/documentation/packages/snigdhaos_blackbox","3e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/packages/snigdhaos_welcome",component:d("/documentation/packages/snigdhaos_welcome","e46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/customization",component:d("/documentation/post_installation/customization","35c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/install_packages",component:d("/documentation/post_installation/install_packages","557"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/language",component:d("/documentation/post_installation/language","861"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/post_installation/update",component:d("/documentation/post_installation/update","bd0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/tools/dns",component:d("/documentation/tools/dns","2cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/bluetooth",component:d("/documentation/troubleshoot/bluetooth","269"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/display",component:d("/documentation/troubleshoot/display","9c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/sound",component:d("/documentation/troubleshoot/sound","004"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/troubleshoot/wifi",component:d("/documentation/troubleshoot/wifi","8fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/user_guide/aur",component:d("/documentation/user_guide/aur","9b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/user_guide/cheetsheet",component:d("/documentation/user_guide/cheetsheet","1e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/documentation/",component:d("/documentation/","dd9"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),i=n(545),l=n(8193);const s=[n(119),n(6134),n(6294),n(1043)];var u=n(8328),c=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),g=n(4586),h=n(6025),b=n(6342),y=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),S=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,c.zy)();return e+(0,x.applyTrailingSlash)((0,h.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,g.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(y.be,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function T(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(u.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var j=n(6125),N=n(6988),L=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.qh,{location:t,render:()=>e})})}}const I=D,M="__docusaurus-base-url-issue-banner-suggestion-container";function F(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Q=n(6921);const K=new Set,Y=new Set,Z=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!Z()&&!Y.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Q.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Z()&&!Y.has(e))(e)&&(Y.add(e),O(e))},J=Object.freeze(X),ee=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=J;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ee)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};O(window.location.pathname).then(l)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/documentation/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/documentation/","mainDocId":"introduction/overview","docs":[{"id":"before_installation/imporatnt_notes","path":"/documentation/before_installation/imporatnt_notes","sidebar":"tutorialSidebar"},{"id":"before_installation/internet_connection","path":"/documentation/before_installation/internet_connection","sidebar":"tutorialSidebar"},{"id":"before_installation/system_requirements","path":"/documentation/before_installation/system_requirements","sidebar":"tutorialSidebar"},{"id":"dev_guide/build_source","path":"/documentation/dev_guide/build_source","sidebar":"tutorialSidebar"},{"id":"dev_guide/deploy_packages","path":"/documentation/dev_guide/deploy_packages","sidebar":"tutorialSidebar"},{"id":"dev_guide/gpg_key","path":"/documentation/dev_guide/gpg_key","sidebar":"tutorialSidebar"},{"id":"dev_guide/install_keyring","path":"/documentation/dev_guide/install_keyring","sidebar":"tutorialSidebar"},{"id":"dev_guide/pkgbuild","path":"/documentation/dev_guide/pkgbuild","sidebar":"tutorialSidebar"},{"id":"dev_guide/upload_gpg_key","path":"/documentation/dev_guide/upload_gpg_key","sidebar":"tutorialSidebar"},{"id":"dev_guide/write","path":"/documentation/dev_guide/write","sidebar":"tutorialSidebar"},{"id":"installation/download_snigdha_os","path":"/documentation/installation/download_snigdha_os","sidebar":"tutorialSidebar"},{"id":"installation/live_env","path":"/documentation/installation/live_env","sidebar":"tutorialSidebar"},{"id":"installation/making_bootable_usb","path":"/documentation/installation/making_bootable_usb","sidebar":"tutorialSidebar"},{"id":"installation/offline_install","path":"/documentation/installation/offline_install","sidebar":"tutorialSidebar"},{"id":"installation/online_install","path":"/documentation/installation/online_install","sidebar":"tutorialSidebar"},{"id":"installation/start_installation","path":"/documentation/installation/start_installation","sidebar":"tutorialSidebar"},{"id":"installation/virtualbox_installation","path":"/documentation/installation/virtualbox_installation","sidebar":"tutorialSidebar"},{"id":"introduction/code_of_conduct","path":"/documentation/introduction/code_of_conduct","sidebar":"tutorialSidebar"},{"id":"introduction/coding-standard","path":"/documentation/introduction/coding-standard","sidebar":"tutorialSidebar"},{"id":"introduction/contributing","path":"/documentation/introduction/contributing","sidebar":"tutorialSidebar"},{"id":"introduction/faqs","path":"/documentation/introduction/faqs","sidebar":"tutorialSidebar"},{"id":"introduction/motivation","path":"/documentation/introduction/motivation","sidebar":"tutorialSidebar"},{"id":"introduction/name_and_story","path":"/documentation/introduction/name_and_story","sidebar":"tutorialSidebar"},{"id":"introduction/overview","path":"/documentation/","sidebar":"tutorialSidebar"},{"id":"introduction/release_notes","path":"/documentation/introduction/release_notes","sidebar":"tutorialSidebar"},{"id":"introduction/reporting_bugs","path":"/documentation/introduction/reporting_bugs","sidebar":"tutorialSidebar"},{"id":"packages/snigdhaos_blackbox","path":"/documentation/packages/snigdhaos_blackbox","sidebar":"tutorialSidebar"},{"id":"packages/snigdhaos_welcome","path":"/documentation/packages/snigdhaos_welcome","sidebar":"tutorialSidebar"},{"id":"post_installation/customization","path":"/documentation/post_installation/customization","sidebar":"tutorialSidebar"},{"id":"post_installation/install_packages","path":"/documentation/post_installation/install_packages","sidebar":"tutorialSidebar"},{"id":"post_installation/language","path":"/documentation/post_installation/language","sidebar":"tutorialSidebar"},{"id":"post_installation/update","path":"/documentation/post_installation/update","sidebar":"tutorialSidebar"},{"id":"tools/dns","path":"/documentation/tools/dns","sidebar":"tutorialSidebar"},{"id":"troubleshoot/bluetooth","path":"/documentation/troubleshoot/bluetooth","sidebar":"tutorialSidebar"},{"id":"troubleshoot/display","path":"/documentation/troubleshoot/display","sidebar":"tutorialSidebar"},{"id":"troubleshoot/sound","path":"/documentation/troubleshoot/sound","sidebar":"tutorialSidebar"},{"id":"troubleshoot/wifi","path":"/documentation/troubleshoot/wifi","sidebar":"tutorialSidebar"},{"id":"user_guide/aur","path":"/documentation/user_guide/aur","sidebar":"tutorialSidebar"},{"id":"user_guide/cheetsheet","path":"/documentation/user_guide/cheetsheet","sidebar":"tutorialSidebar"},{"id":"/category/introduction","path":"/documentation/category/introduction","sidebar":"tutorialSidebar"},{"id":"/category/before-installation","path":"/documentation/category/before-installation","sidebar":"tutorialSidebar"},{"id":"/category/installation","path":"/documentation/category/installation","sidebar":"tutorialSidebar"},{"id":"/category/post-installation","path":"/documentation/category/post-installation","sidebar":"tutorialSidebar"},{"id":"/category/user-guide","path":"/documentation/category/user-guide","sidebar":"tutorialSidebar"},{"id":"/category/troubleshoot","path":"/documentation/category/troubleshoot","sidebar":"tutorialSidebar"},{"id":"/category/packages","path":"/documentation/category/packages","sidebar":"tutorialSidebar"},{"id":"/category/developers-guide","path":"/documentation/category/developers-guide","sidebar":"tutorialSidebar"},{"id":"/category/tools","path":"/documentation/category/tools","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/documentation/category/introduction","label":"Introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"}}}');var u=n(4848);const c={siteConfig:o.A,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(8193),a=n(5260),i=n(440),l=n(1129),s=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(f,{fallback:()=>(0,s.jsx)(u,{error:t,tryAgain:n}),children:[(0,s.jsx)(a.A,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.A,{children:(0,s.jsx)(u,{error:t,tryAgain:n})})]})}const p=e=>(0,s.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,c.h)(),x=(0,u.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,l.A)(_),C=_?.replace("pathname://","");let A=void 0!==C?(T=C,b&&(e=>e.startsWith("/"))(T)?k(T):T):void 0;var T;A&&E&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),N=n?o.k2:o.N_,L=s.A.canUseIntersectionObserver,R=(0,r.useRef)(),P=()=>{j.current||null==A||(window.docusaurus.preload(A),j.current=!0)};(0,r.useEffect)((()=>(!L&&E&&null!=A&&window.docusaurus.prefetch(A),()=>{L&&R.current&&R.current.disconnect()})),[R,A,L,E]);const O=A?.startsWith("#")??!1,D=!y.target||"_self"===y.target,I=!A||!E||!D||O;return h||!O&&I||x.collectLink(A),y.id&&x.collectAnchor(y.id),I?(0,d.jsx)("a",{ref:S,href:A,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(N,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,L&&e&&E&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),R.current.observe(e))},to:A,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),o=n(4848);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,h:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>p,Gy:()=>c,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.A,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},1129:(e,t,n)=>{"use strict";n.d(t,{A:()=>mt});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(g,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:o,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,c.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),a&&(0,c.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),N=n(3104);var L=n(9532),R=n(5600);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,L.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,c.jsx)(P.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(P);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[a,m&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return o?(0,c.jsx)(Z.A,{href:s?f:o,...u,...g}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,c.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,c.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),le=n(9169),se=n(4586);const ue="dropdownNavbarItemMobile_S0Fm";function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",a),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ce,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),(0,c.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,o.A)(ue,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ce,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(418);function ye(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(be.A,{...e})})}const ve={navbarSearchContainer:"navbarSearchContainer_Bca1"};function we(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,o.A)(n,ve.navbarSearchContainer),children:t})}var ke=n(4070),xe=n(1754);var Se=n(5597);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,l.zy)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...a,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(we,{className:n,children:(0,c.jsx)(ye,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,c.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.QB)(t,r),l=a?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>l||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,xe.Vd)(r)[0],i=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,c.jsx)(ae,{...o,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,ke.zK)(n),f=(0,ke.jh)(n),{savePreferredVersionName:m}=(0,Se.g1)(n),g=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],h=(0,xe.Vd)(n)[0],b=t&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:_e(h).path;return g.length<=1?(0,c.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function Ce(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ee[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(o,{...n})}function Ae(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ce,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Te(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function je(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Te,{onClick:()=>t.hide()}),t.content]})}function Ne(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(M,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Ae,{}),secondaryMenu:(0,c.jsx)(je,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Re(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Re,{onClick:i.toggle}),(0,c.jsx)(Ne,{})]})}var Oe=n(440);const De={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ie(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Me(e){let{error:t}=e;const n=(0,Oe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:De.errorBoundaryError,children:n})}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const ze="right";function Be(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function $e(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(Be,{})})}const Ue={colorModeToggle:"colorModeToggle_DEke"};function qe(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(Ce,{...e})},t)))})}function He(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ge(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??ze)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,c.jsx)(He,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)($e,{}),(0,c.jsx)(Q,{}),(0,c.jsx)(qe,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(qe,{items:r}),(0,c.jsx)(V,{className:Ue.colorModeToggle}),!o&&(0,c.jsx)(we,{children:(0,c.jsx)(ye,{})})]})})}function Ve(){return(0,c.jsx)(Pe,{children:(0,c.jsx)(Ge,{})})}function We(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,l=(0,X.A)(n),s=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?s:r}:{to:l},...i,children:[o,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function Qe(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(We,{item:t})},t.href??t.to)}function Ke(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(Qe,{item:e},t)))})]})}function Ye(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Ke,{column:e},t)))})}function Ze(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Xe(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(We,{item:t})}function Je(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Xe,{item:e}),t.length!==n+1&&(0,c.jsx)(Ze,{})]},n)))})})}function et(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ye,{columns:t}):(0,c.jsx)(Je,{links:t})}var tt=n(1122);const nt="footerLogoLink_BH7S";function rt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(tt.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function ot(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:nt,target:t.target,children:(0,c.jsx)(rt,{logo:t})}):(0,c.jsx)(rt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function it(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,c.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function lt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,c.jsx)(it,{style:o,links:n&&n.length>0&&(0,c.jsx)(et,{links:n}),logo:r&&(0,c.jsx)(ot,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const st=r.memo(lt),ut=(0,L.fM)([F.a,k.oq,N.Tv,Se.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(R.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,c.jsx)(ut,{children:t})}var dt=n(1107);function pt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(dt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ie,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Me,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,c.jsxs)(ct,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(Ve,{}),(0,c.jsx)("div",{id:d,className:(0,o.A)(h.G.wrapper.main,ft.mainWrapper,r),children:(0,c.jsx)(a.A,{fallback:e=>(0,c.jsx)(pt,{...e}),children:t})}),!n&&(0,c.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,o.A)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:g,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,a.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:a},e)}))})}function c(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>u});var r=n(6540),o=n(8193),a=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?c:d}function g(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:a}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&u(t)}),[o,t]),o?(0,l.jsx)(g,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>g,oq:()=>m});var r=n(6540),o=n(2303),a=n(9466),i=n(9532),l=n(6342),s=n(4848);const u=(0,a.Wf)("docusaurus.announcement.dismiss"),c=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(6540),o=n(8193),a=n(9532),i=n(9466),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(u);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(9466),c=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,c.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.C5?(0,c.jsx)(h,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,l]=a,s=(0,o.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>m,w8:()=>y,C5:()=>p,$S:()=>g,cC:()=>f,B5:()=>C,Vd:()=>S,QB:()=>E,fW:()=>_,OF:()=>x,Y:()=>w});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){const t=(0,s.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function g(){const{pathname:e}=(0,o.zy)(),t=(0,u.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const h=(e,t)=>void 0!==e&&(0,d.ys)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,u.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,o.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,a.v)(i),sidebarName:u,sidebarItems:c}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function l(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(6025),u=n(4586);var c=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,c.jsxs)(a.A,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,o.A)(i,t);return(0,c.jsxs)(p.Provider,{value:l,children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("html",{className:l})}),n]})}function m(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(f,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(4586);const r="default";function o(e,t){return`docs-${e}-${t}`}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>s});n(6540);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,o.zy)(),u=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,g(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},5302:(e,t,n)=>{var r=n(4634);e.exports=m,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(l,f),l=f+d.length,p)s+=p[1];else{var m=e[l],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,_=g||u,E=b||y,C=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":i(_,C)})}}return l-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),o=n(8380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),a.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8692},3157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;o(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var y in f(b))if(y in c){p[b]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n