From de0fd08acb9e07312fbf9fcc45f22c940d3d7f59 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:27:15 +0000 Subject: [PATCH] deploy: ecd39c0b8978dd7050cc58f49b51e29133063347 --- 404.html | 8 ++++---- CNAME | 1 - assets/js/209227ae.7a6afc96.js | 1 - assets/js/209227ae.9aa9fa00.js | 1 + assets/js/8a7e76de.3b346129.js | 1 + assets/js/8a7e76de.7c1017ef.js | 1 - assets/js/a194631d.5faac85b.js | 1 - assets/js/a194631d.67504aca.js | 1 + .../{b3469829.be08b700.js => b3469829.369e08fc.js} | 2 +- .../{c4f5d8e4.bb04434f.js => c4f5d8e4.61926369.js} | 2 +- assets/js/e1365922.491f7a42.js | 1 + assets/js/e1365922.819da6ca.js | 1 - assets/js/main.010b1fd7.js | 2 ++ ...8.js.LICENSE.txt => main.010b1fd7.js.LICENSE.txt} | 0 assets/js/main.0da00d88.js | 2 -- assets/js/runtime~main.73acb0a5.js | 1 + assets/js/runtime~main.9ecc9a0e.js | 1 - development.html | 12 ++++++------ download.html | 8 ++++---- index.html | 8 ++++---- resources.html | 8 ++++---- sitemap.xml | 2 +- startpage.html | 8 ++++---- support.html | 10 +++++----- 24 files changed, 41 insertions(+), 42 deletions(-) delete mode 100644 CNAME delete mode 100644 assets/js/209227ae.7a6afc96.js create mode 100644 assets/js/209227ae.9aa9fa00.js create mode 100644 assets/js/8a7e76de.3b346129.js delete mode 100644 assets/js/8a7e76de.7c1017ef.js delete mode 100644 assets/js/a194631d.5faac85b.js create mode 100644 assets/js/a194631d.67504aca.js rename assets/js/{b3469829.be08b700.js => b3469829.369e08fc.js} (77%) rename assets/js/{c4f5d8e4.bb04434f.js => c4f5d8e4.61926369.js} (71%) create mode 100644 assets/js/e1365922.491f7a42.js delete mode 100644 assets/js/e1365922.819da6ca.js create mode 100644 assets/js/main.010b1fd7.js rename assets/js/{main.0da00d88.js.LICENSE.txt => main.010b1fd7.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.0da00d88.js create mode 100644 assets/js/runtime~main.73acb0a5.js delete mode 100644 assets/js/runtime~main.9ecc9a0e.js diff --git a/404.html b/404.html index 5856602..94b345f 100644 --- a/404.html +++ b/404.html @@ -3,11 +3,11 @@ -Page Not Found | MapProxy - - +Page Not Found | MapProxy + + -
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.

+
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.

\ No newline at end of file diff --git a/CNAME b/CNAME deleted file mode 100644 index e913615..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -mapproxy.org \ No newline at end of file diff --git a/assets/js/209227ae.7a6afc96.js b/assets/js/209227ae.7a6afc96.js deleted file mode 100644 index f3b8d55..0000000 --- a/assets/js/209227ae.7a6afc96.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[611],{8342:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>t,metadata:()=>o,toc:()=>h});var s=r(5893),a=r(1151);const t={title:"Download"},l=void 0,o={type:"mdx",permalink:"/mapproxy-homepage/download",source:"@site/src/pages/download.md",title:"Download",description:"MapProxy releases are available from the PyPI project page of MapProxy. There is also an archive of all official releases, unofficial releases and pre-releases can be found here.",frontMatter:{title:"Download"},unlisted:!1},i={},h=[{value:"Releases",id:"releases",level:2},{value:"2.0.x",id:"20x",level:3},{value:"Previous releases",id:"previous-releases",level:3},{value:"1.1.x and newer",id:"11x-and-newer",level:3},{value:"1.0.x",id:"10x",level:3},{value:"0.9.x",id:"09x",level:3},{value:"Nightly",id:"nightly",level:3}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["MapProxy releases are available from the ",(0,s.jsx)(n.a,{href:"http://pypi.python.org/pypi/MapProxy",children:"PyPI project page of MapProxy"}),". There is also ",(0,s.jsx)(n.a,{href:"https://pypi.python.org/packages/source/M/MapProxy/",children:"an archive of all official releases"}),", unofficial releases and pre-releases ",(0,s.jsx)(n.a,{href:"https://mapproxy.org/static/rel/",children:"can be found here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["However, downloading is often not necessary, because you can install MapProxy with the Python tools ",(0,s.jsx)(n.code,{children:"easy_install"})," or ",(0,s.jsx)(n.code,{children:"pip"}),". Read the ",(0,s.jsx)(n.a,{href:"https://mapproxy.github.io/mapproxy/install.html",children:"installation instructions"})," for more information."]}),"\n",(0,s.jsx)(n.p,{children:"There are several ready-to-use docker images for development/testing and production use. Please check the docs for more information."}),"\n",(0,s.jsx)(n.h2,{id:"releases",children:"Releases"}),"\n",(0,s.jsx)(n.p,{children:"2.x is the current mainline of the development. All new features will be included in the next 2.x release (2.1.x, 2.2.x, etc.). We will make minor releases (e.g. 2.2.1) with small improvements and bugfixes as necessary."}),"\n",(0,s.jsxs)(n.p,{children:["For changes between each release see the ",(0,s.jsx)(n.a,{href:"https://github.com/mapproxy/mapproxy/blob/master/CHANGES.txt",children:"CHANGES.txt of MapProxy"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"20x",children:"2.0.x"}),"\n",(0,s.jsxs)(n.p,{children:["This is the current release. It is released under the ",(0,s.jsx)(n.a,{href:"http://www.apache.org/licenses/LICENSE-2.0.html",children:"Apache Software License 2.0"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To install the latest release:"}),"\n",(0,s.jsx)(n.p,{children:"pip install MapProxy"}),"\n",(0,s.jsx)(n.h3,{id:"previous-releases",children:"Previous releases"}),"\n",(0,s.jsx)(n.p,{children:"You can install previous releases with pip if you specify the version with the package name. For example, to install MapProxy 1.1.1:"}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.code,{children:"MapProxy==1.1.1"})]}),"\n",(0,s.jsx)(n.p,{children:"To install the latest version of the 1.2.x release, but not 1.3 or newer:"}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.code,{children:"MapProxy<1.2.99"})]}),"\n",(0,s.jsx)(n.h3,{id:"11x-and-newer",children:"1.1.x and newer"}),"\n",(0,s.jsxs)(n.p,{children:["These versions are released under the ",(0,s.jsx)(n.a,{href:"http://www.apache.org/licenses/LICENSE-2.0.html",children:"Apache Software License 2.0"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"10x",children:"1.0.x"}),"\n",(0,s.jsxs)(n.p,{children:["1.0.1 and all previous versions were released under the ",(0,s.jsx)(n.a,{href:"http://www.fsf.org/licensing/licenses/agpl-3.0.html",children:"GNU AGPL License 3.0"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"09x",children:"0.9.x"}),"\n",(0,s.jsxs)(n.p,{children:["The configuration format changed between 0.8.x and 0.9.x, so you have to make sure you configuration matches the ",(0,s.jsx)(n.a,{href:"https://mapproxy.org/docs/latest/migrate.html",children:"new format"})," if you're going to upgrade."]}),"\n",(0,s.jsx)(n.h3,{id:"nightly",children:"Nightly"}),"\n",(0,s.jsx)(n.p,{children:"There are no nightly build packages, but you can directly install from the development trunk."}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.a,{href:"https://github.com/mapproxy/mapproxy/tarball/master",children:"https://github.com/mapproxy/mapproxy/tarball/master"})]})]})}function c(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>o,a:()=>l});var s=r(7294);const a={},t=s.createContext(a);function l(e){const n=s.useContext(t);return s.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(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/209227ae.9aa9fa00.js b/assets/js/209227ae.9aa9fa00.js new file mode 100644 index 0000000..c84aeb3 --- /dev/null +++ b/assets/js/209227ae.9aa9fa00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[611],{8342:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>t,metadata:()=>o,toc:()=>h});var s=r(5893),a=r(1151);const t={title:"Download"},l=void 0,o={type:"mdx",permalink:"/download",source:"@site/src/pages/download.md",title:"Download",description:"MapProxy releases are available from the PyPI project page of MapProxy. There is also an archive of all official releases, unofficial releases and pre-releases can be found here.",frontMatter:{title:"Download"},unlisted:!1},i={},h=[{value:"Releases",id:"releases",level:2},{value:"2.0.x",id:"20x",level:3},{value:"Previous releases",id:"previous-releases",level:3},{value:"1.1.x and newer",id:"11x-and-newer",level:3},{value:"1.0.x",id:"10x",level:3},{value:"0.9.x",id:"09x",level:3},{value:"Nightly",id:"nightly",level:3}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["MapProxy releases are available from the ",(0,s.jsx)(n.a,{href:"http://pypi.python.org/pypi/MapProxy",children:"PyPI project page of MapProxy"}),". There is also ",(0,s.jsx)(n.a,{href:"https://pypi.python.org/packages/source/M/MapProxy/",children:"an archive of all official releases"}),", unofficial releases and pre-releases ",(0,s.jsx)(n.a,{href:"https://mapproxy.org/static/rel/",children:"can be found here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["However, downloading is often not necessary, because you can install MapProxy with the Python tools ",(0,s.jsx)(n.code,{children:"easy_install"})," or ",(0,s.jsx)(n.code,{children:"pip"}),". Read the ",(0,s.jsx)(n.a,{href:"https://mapproxy.github.io/mapproxy/install.html",children:"installation instructions"})," for more information."]}),"\n",(0,s.jsx)(n.p,{children:"There are several ready-to-use docker images for development/testing and production use. Please check the docs for more information."}),"\n",(0,s.jsx)(n.h2,{id:"releases",children:"Releases"}),"\n",(0,s.jsx)(n.p,{children:"2.x is the current mainline of the development. All new features will be included in the next 2.x release (2.1.x, 2.2.x, etc.). We will make minor releases (e.g. 2.2.1) with small improvements and bugfixes as necessary."}),"\n",(0,s.jsxs)(n.p,{children:["For changes between each release see the ",(0,s.jsx)(n.a,{href:"https://github.com/mapproxy/mapproxy/blob/master/CHANGES.txt",children:"CHANGES.txt of MapProxy"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"20x",children:"2.0.x"}),"\n",(0,s.jsxs)(n.p,{children:["This is the current release. It is released under the ",(0,s.jsx)(n.a,{href:"http://www.apache.org/licenses/LICENSE-2.0.html",children:"Apache Software License 2.0"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To install the latest release:"}),"\n",(0,s.jsx)(n.p,{children:"pip install MapProxy"}),"\n",(0,s.jsx)(n.h3,{id:"previous-releases",children:"Previous releases"}),"\n",(0,s.jsx)(n.p,{children:"You can install previous releases with pip if you specify the version with the package name. For example, to install MapProxy 1.1.1:"}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.code,{children:"MapProxy==1.1.1"})]}),"\n",(0,s.jsx)(n.p,{children:"To install the latest version of the 1.2.x release, but not 1.3 or newer:"}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.code,{children:"MapProxy<1.2.99"})]}),"\n",(0,s.jsx)(n.h3,{id:"11x-and-newer",children:"1.1.x and newer"}),"\n",(0,s.jsxs)(n.p,{children:["These versions are released under the ",(0,s.jsx)(n.a,{href:"http://www.apache.org/licenses/LICENSE-2.0.html",children:"Apache Software License 2.0"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"10x",children:"1.0.x"}),"\n",(0,s.jsxs)(n.p,{children:["1.0.1 and all previous versions were released under the ",(0,s.jsx)(n.a,{href:"http://www.fsf.org/licensing/licenses/agpl-3.0.html",children:"GNU AGPL License 3.0"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"09x",children:"0.9.x"}),"\n",(0,s.jsxs)(n.p,{children:["The configuration format changed between 0.8.x and 0.9.x, so you have to make sure you configuration matches the ",(0,s.jsx)(n.a,{href:"https://mapproxy.org/docs/latest/migrate.html",children:"new format"})," if you're going to upgrade."]}),"\n",(0,s.jsx)(n.h3,{id:"nightly",children:"Nightly"}),"\n",(0,s.jsx)(n.p,{children:"There are no nightly build packages, but you can directly install from the development trunk."}),"\n",(0,s.jsxs)(n.p,{children:["pip install ",(0,s.jsx)(n.a,{href:"https://github.com/mapproxy/mapproxy/tarball/master",children:"https://github.com/mapproxy/mapproxy/tarball/master"})]})]})}function c(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>o,a:()=>l});var s=r(7294);const a={},t=s.createContext(a);function l(e){const n=s.useContext(t);return s.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(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a7e76de.3b346129.js b/assets/js/8a7e76de.3b346129.js new file mode 100644 index 0000000..05d7de7 --- /dev/null +++ b/assets/js/8a7e76de.3b346129.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[852],{5767:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=o(5893),r=o(1151);const i={title:"Development"},s=void 0,a={type:"mdx",permalink:"/development",source:"@site/src/pages/development.md",title:"Development",description:"You want to improve MapProxy, found a bug and want to fix it? Great! This document points you to some helpful information.",frontMatter:{title:"Development"},unlisted:!1},p={},c=[{value:"Source",id:"source",level:4},{value:"Continuous integration",id:"continuous-integration",level:4},{value:"How to contribute",id:"how-to-contribute",level:4},{value:"More information",id:"more-information",level:4}];function h(e){const t={a:"a",br:"br",h4:"h4",p:"p",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"You want to improve MapProxy, found a bug and want to fix it? Great! This document points you to some helpful information."}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsxs)(t.p,{children:["Releases are available from the ",(0,n.jsx)(t.a,{href:"http://pypi.python.org/pypi/MapProxy",children:"PyPI project page of MapProxy"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["MapProxy uses ",(0,n.jsx)(t.a,{href:"http://git-scm.com/",children:"Git"})," as a source control management tool. If you are new to distributed SCMs or Git we recommend to read ",(0,n.jsx)(t.a,{href:"http://git-scm.com/book",children:"Pro Git"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The main (authoritative) repository is hosted at ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"https://github.com/mapproxy/mapproxy"})]}),"\n",(0,n.jsx)(t.p,{children:"To get a copy of the repository call:"}),"\n",(0,n.jsxs)(t.p,{children:["git clone ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"https://github.com/mapproxy/mapproxy"})]}),"\n",(0,n.jsx)(t.h4,{id:"continuous-integration",children:"Continuous integration"}),"\n",(0,n.jsxs)(t.p,{children:["We use github actions to automatically run the MapProxy test suite against different Python versions and also to automatically deploy new releases. \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy/actions",children:"https://github.com/mapproxy/mapproxy/actions"})]}),"\n",(0,n.jsx)(t.h4,{id:"how-to-contribute",children:"How to contribute"}),"\n",(0,n.jsxs)(t.p,{children:["Questions? \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"support",children:"mailing list"})," or ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy/issues",children:"issues"}),(0,n.jsx)(t.br,{}),"\n","Code enhancements / bugs \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"github"})]}),"\n",(0,n.jsxs)(t.p,{children:["You can post patches to the mailing list or create a new ticket. Or better, ",(0,n.jsx)(t.a,{href:"http://help.github.com/fork-a-repo/",children:"create a fork"})," instead and send a pull request. Feel free to post to the ",(0,n.jsx)(t.a,{href:"support",children:"mailing list first"}),", if you have any question."]}),"\n",(0,n.jsx)(t.h4,{id:"more-information",children:"More information"}),"\n",(0,n.jsxs)(t.p,{children:["There is a ",(0,n.jsx)(t.a,{href:"https://mapproxy.github.io/mapproxy/development.html",children:"whole chapter about development in the documentation"}),". It covers most aspects of the MapProxy development including the source code, documentation, tests, etc."]})]})}function l(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>a,a:()=>s});var n=o(7294);const r={},i=n.createContext(r);function s(e){const t=n.useContext(i);return n.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(r):e.components||r:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a7e76de.7c1017ef.js b/assets/js/8a7e76de.7c1017ef.js deleted file mode 100644 index 15a97c6..0000000 --- a/assets/js/8a7e76de.7c1017ef.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[852],{5767:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=o(5893),r=o(1151);const i={title:"Development"},a=void 0,s={type:"mdx",permalink:"/mapproxy-homepage/development",source:"@site/src/pages/development.md",title:"Development",description:"You want to improve MapProxy, found a bug and want to fix it? Great! This document points you to some helpful information.",frontMatter:{title:"Development"},unlisted:!1},p={},c=[{value:"Source",id:"source",level:4},{value:"Continuous integration",id:"continuous-integration",level:4},{value:"How to contribute",id:"how-to-contribute",level:4},{value:"More information",id:"more-information",level:4}];function h(e){const t={a:"a",br:"br",h4:"h4",p:"p",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"You want to improve MapProxy, found a bug and want to fix it? Great! This document points you to some helpful information."}),"\n",(0,n.jsx)(t.h4,{id:"source",children:"Source"}),"\n",(0,n.jsxs)(t.p,{children:["Releases are available from the ",(0,n.jsx)(t.a,{href:"http://pypi.python.org/pypi/MapProxy",children:"PyPI project page of MapProxy"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["MapProxy uses ",(0,n.jsx)(t.a,{href:"http://git-scm.com/",children:"Git"})," as a source control management tool. If you are new to distributed SCMs or Git we recommend to read ",(0,n.jsx)(t.a,{href:"http://git-scm.com/book",children:"Pro Git"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The main (authoritative) repository is hosted at ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"https://github.com/mapproxy/mapproxy"})]}),"\n",(0,n.jsx)(t.p,{children:"To get a copy of the repository call:"}),"\n",(0,n.jsxs)(t.p,{children:["git clone ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"https://github.com/mapproxy/mapproxy"})]}),"\n",(0,n.jsx)(t.h4,{id:"continuous-integration",children:"Continuous integration"}),"\n",(0,n.jsxs)(t.p,{children:["We use github actions to automatically run the MapProxy test suite against different Python versions and also to automatically deploy new releases. \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy/actions",children:"https://github.com/mapproxy/mapproxy/actions"})]}),"\n",(0,n.jsx)(t.h4,{id:"how-to-contribute",children:"How to contribute"}),"\n",(0,n.jsxs)(t.p,{children:["Questions? \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"support",children:"mailing list"})," or ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy/issues",children:"issues"}),(0,n.jsx)(t.br,{}),"\n","Code enhancements / bugs \ud83d\udc49 ",(0,n.jsx)(t.a,{href:"https://github.com/mapproxy/mapproxy",children:"github"})]}),"\n",(0,n.jsxs)(t.p,{children:["You can post patches to the mailing list or create a new ticket. Or better, ",(0,n.jsx)(t.a,{href:"http://help.github.com/fork-a-repo/",children:"create a fork"})," instead and send a pull request. Feel free to post to the ",(0,n.jsx)(t.a,{href:"support",children:"mailing list first"}),", if you have any question."]}),"\n",(0,n.jsx)(t.h4,{id:"more-information",children:"More information"}),"\n",(0,n.jsxs)(t.p,{children:["There is a ",(0,n.jsx)(t.a,{href:"https://mapproxy.github.io/mapproxy/development.html",children:"whole chapter about development in the documentation"}),". It covers most aspects of the MapProxy development including the source code, documentation, tests, etc."]})]})}function l(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>a});var n=o(7294);const r={},i=n.createContext(r);function a(e){const t=n.useContext(i);return n.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(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a194631d.5faac85b.js b/assets/js/a194631d.5faac85b.js deleted file mode 100644 index f43a0f6..0000000 --- a/assets/js/a194631d.5faac85b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[978],{1717:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>i,contentTitle:()=>a,default:()=>l,frontMatter:()=>n,metadata:()=>c,toc:()=>h});var r=t(5893),o=t(1151);const n={title:"Resources"},a=void 0,c={type:"mdx",permalink:"/mapproxy-homepage/resources",source:"@site/src/pages/resources.md",title:"Resources",description:"Talks",frontMatter:{title:"Resources"},unlisted:!1},i={},h=[{value:"Talks",id:"talks",level:2},{value:"Workshop Materials",id:"workshop-materials",level:2}];function p(e){const s={a:"a",br:"br",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"talks",children:"Talks"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://media.ccc.de/v/fossgis2017-5163-neues_von_mapproxy",children:"https://media.ccc.de/v/fossgis2017-5163-neues_von_mapproxy"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://www.youtube.com/watch?v=wg76zGQhgZY",children:"https://www.youtube.com/watch?v=wg76zGQhgZY"})}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"workshop-materials",children:"Workshop Materials"}),"\n",(0,r.jsxs)(s.p,{children:["There are regular workshops at the FOSSGIS conference. Check the ",(0,r.jsx)(s.a,{href:"https://fossgis-konferenz.de/",children:"conference page"})," for more information.",(0,r.jsx)(s.br,{}),"\n","The documents from previous years can be accessed here: ",(0,r.jsx)(s.a,{href:"https://github.com/terrestris/MapProxy_Workshop_Praxiseinsatz",children:"https://github.com/terrestris/MapProxy_Workshop_Praxiseinsatz"})]})]})}function l(e={}){const{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>a});var r=t(7294);const o={},n=r.createContext(o);function a(e){const s=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a194631d.67504aca.js b/assets/js/a194631d.67504aca.js new file mode 100644 index 0000000..a50de43 --- /dev/null +++ b/assets/js/a194631d.67504aca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[978],{1717:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>i,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>h});var r=t(5893),n=t(1151);const o={title:"Resources"},a=void 0,c={type:"mdx",permalink:"/resources",source:"@site/src/pages/resources.md",title:"Resources",description:"Talks",frontMatter:{title:"Resources"},unlisted:!1},i={},h=[{value:"Talks",id:"talks",level:2},{value:"Workshop Materials",id:"workshop-materials",level:2}];function l(e){const s={a:"a",br:"br",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"talks",children:"Talks"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://media.ccc.de/v/fossgis2017-5163-neues_von_mapproxy",children:"https://media.ccc.de/v/fossgis2017-5163-neues_von_mapproxy"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://www.youtube.com/watch?v=wg76zGQhgZY",children:"https://www.youtube.com/watch?v=wg76zGQhgZY"})}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"workshop-materials",children:"Workshop Materials"}),"\n",(0,r.jsxs)(s.p,{children:["There are regular workshops at the FOSSGIS conference. Check the ",(0,r.jsx)(s.a,{href:"https://fossgis-konferenz.de/",children:"conference page"})," for more information.",(0,r.jsx)(s.br,{}),"\n","The documents from previous years can be accessed here: ",(0,r.jsx)(s.a,{href:"https://github.com/terrestris/MapProxy_Workshop_Praxiseinsatz",children:"https://github.com/terrestris/MapProxy_Workshop_Praxiseinsatz"})]})]})}function p(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>a});var r=t(7294);const n={},o=r.createContext(n);function a(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b3469829.be08b700.js b/assets/js/b3469829.369e08fc.js similarity index 77% rename from assets/js/b3469829.be08b700.js rename to assets/js/b3469829.369e08fc.js index 707c033..1c09954 100644 --- a/assets/js/b3469829.be08b700.js +++ b/assets/js/b3469829.369e08fc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[812],{9463:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>h,toc:()=>u});var r=t(5893),i=t(1151),n=t(7294);const a=e=>{let{slides:s}=e;const[t,i]=(0,n.useState)(0),a=()=>{const e=t-1;i(e<0?s.length-1:e)},o=()=>{const e=t+1;i(e>=s.length?0:e)};return(0,n.useEffect)((()=>{const e=e=>{e.repeat||("ArrowRight"===e.key&&(document.querySelector("#slide-arrow-next")?.classList.add("active"),o()),"ArrowLeft"===e.key&&(document.querySelector("#slide-arrow-prev")?.classList.add("active"),a()))};return window.addEventListener("keydown",e),window.addEventListener("keyup",(e=>{e.repeat||(document.querySelector("#slide-arrow-next")?.classList.remove("active"),document.querySelector("#slide-arrow-prev")?.classList.remove("active"))})),()=>{window.removeEventListener("keydown",e)}}),[t]),(0,r.jsxs)("section",{className:"slider-wrapper",children:[(0,r.jsx)("button",{className:"slide-arrow",id:"slide-arrow-prev",onClick:a,children:"\u2039"}),(0,r.jsx)("button",{className:"slide-arrow",id:"slide-arrow-next",onClick:o,children:"\u203a"}),(0,r.jsxs)("div",{className:"slides-container",children:[(0,r.jsx)("h3",{className:"text--center",children:s[t].title}),s[t].lists.map((e=>(0,r.jsxs)(r.Fragment,{children:[e.descriptions.map((e=>(0,r.jsx)("div",{children:e}))),(0,r.jsx)("ul",{children:e.items.map((e=>(0,r.jsx)("li",{children:e})))})]})))]})]})};var o=t(5999);const c=[{title:(0,r.jsx)(o.Z,{children:"Tile cache"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"features-tile-cache-description"})],items:[(0,r.jsx)(o.Z,{children:"WMS sources (1.0.0\u20131.3.0)"}),(0,r.jsx)(o.Z,{children:"WMTS/TMS sources"}),(0,r.jsx)(o.Z,{children:"Mapserver and Mapnik configurations"}),(0,r.jsx)(o.Z,{children:"any TileCache, Google Maps or Bing compatible source"}),(0,r.jsx)(o.Z,{children:"ArcGIS REST servers and compact cache file"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"Other features"})],items:[(0,r.jsx)(o.Z,{children:"cache tiles in the filesystem, MBTiles/SQLite, ArcGIS Compact Cache, S3, Redis, Riak, or CouchDB"}),(0,r.jsx)(o.Z,{children:"reproject WMS and tile sources to other SRS"}),(0,r.jsx)(o.Z,{children:"stores identical tiles just once (e.g. ocean tiles)"}),(0,r.jsx)(o.Z,{children:"embed watermark in tiles"}),(0,r.jsx)(o.Z,{children:"merge multiple sources"}),(0,r.jsx)(o.Z,{children:"limit sources to polygon areas"}),(0,r.jsx)(o.Z,{children:"manipulate image bands to create grayscale- or false-color images"}),(0,r.jsx)(o.Z,{children:"many more"})]}]},{title:(0,r.jsx)(o.Z,{children:"WMS"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). It supports WMS responses from cached data:"})],items:[(0,r.jsx)(o.Z,{children:"merges tiles and scales or reprojects images"}),(0,r.jsx)(o.Z,{children:"accelerates existing WMS 10 to 100 time"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"and cascaded WMS services:"})],items:[(0,r.jsx)(o.Z,{children:"multi-threaded requests"}),(0,r.jsx)(o.Z,{children:"merges multiple sources"}),(0,r.jsx)(o.Z,{children:"adds transparency to opaque layers"}),(0,r.jsx)(o.Z,{children:"reprojects on-the-fly"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"It also supports combinations of cached and cascaded layers. Other features:"})],items:[(0,r.jsx)(o.Z,{children:"respond to GetLegendGraphic requests"}),(0,r.jsx)(o.Z,{children:"cascade GetFeatureInfo requests with optional XSL transformations'"}),(0,r.jsx)(o.Z,{children:"limit sources to polygon areas'"}),(0,r.jsx)(o.Z,{children:"convert WMS versions and image formats'"}),(0,r.jsx)(o.Z,{children:"support for non-image raster data like DEMs"})]}]},{title:(0,r.jsx)(o.Z,{children:"Security"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy can act as a security layer for existing map services. Thus, MapProxy can protect entire WMS but also individual layers from unwanted access or make them visible only to certain user groups."}),(0,r.jsx)(o.Z,{children:"In addition to the overall data, the security layer can also be applied to exact areas. For example, a polygon can be used to define which areas individual users are allowed to access and which are not."}),(0,r.jsx)(o.Z,{children:"The security layer was developed as an open interface so that it can be connected to a wide variety of user databases. Existing user databases can thus be used by the MapProxy."})],items:[]}]},{title:(0,r.jsx)(o.Z,{children:"Seeding"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"You can pre-generate the tile cache for better performance \u2013 this is called seeding. Some unique features:"})],items:[(0,r.jsx)(o.Z,{children:"fine-grained control over the seed area with Shapefiles, GeoJSON, PostGIS or WKT geometries"}),(0,r.jsx)(o.Z,{children:"multi-threaded requests, meta-tile splitting and image encoding"}),(0,r.jsx)(o.Z,{children:"optimized seeding strategy (to work _with_ your database cache"})]}]},{title:(0,r.jsx)(o.Z,{children:"Other features"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"You can use MapProxy to upgrade your SDI without touching your existing servers:"})],items:[(0,r.jsx)(o.Z,{children:"offer projections that your sources do not support"}),(0,r.jsx)(o.Z,{children:"offer protocol versions and image formats that your sources do not support"}),(0,r.jsx)(o.Z,{children:"combine multiple layers and servers"}),(0,r.jsx)(o.Z,{children:"hide WMS servers"}),(0,r.jsx)(o.Z,{children:"add watermarks and attribution lines to the images"}),(0,r.jsx)(o.Z,{children:"etc"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy is standard compliant and works with the following open specifications:"})],items:[(0,r.jsx)(o.Z,{children:"OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0"}),(0,r.jsx)(o.Z,{children:"OGC WMTS 1.0.0 (KVP and RESTful)"}),(0,r.jsx)(o.Z,{children:"OSGeo TMS 1.0.0"}),(0,r.jsx)(o.Z,{children:"OGC KML 2.2 SuperOverlay"})]}]}],l={},d="Features",h={type:"mdx",permalink:"/mapproxy-homepage/startpage",source:"@site/src/pages/startpage.mdx",description:"---",frontMatter:{},unlisted:!1},p={},u=[{value:"Getting started",id:"getting-started",level:2}];function x(e){const s={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{class:"flex-center",children:(0,r.jsx)("img",{src:"img/mapproxy-overview.png",alt:"MapProxy Overview"})}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h1,{id:"features",children:"Features"}),"\n",(0,r.jsx)(a,{slides:c}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h2,{id:"getting-started",children:"Getting started"}),"\n",(0,r.jsxs)(s.p,{children:["Curious? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode.",(0,r.jsx)(s.br,{}),"\n","After that you can visit ",(0,r.jsx)(s.a,{href:"http://localhost:8080",children:"http://localhost:8080"}),"."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:" sudo aptitude install python-imaging python-yaml libproj0\n sudo pip install mapproxy\n mapproxy-util create -t base-config ./\n mapproxy-util serve-develop ./mapproxy.yaml\n"})})]})}function m(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>a});var r=t(7294);const i={},n=r.createContext(i);function a(e){const s=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[812],{9463:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>h,toc:()=>u});var r=t(5893),i=t(1151),n=t(7294);const a=e=>{let{slides:s}=e;const[t,i]=(0,n.useState)(0),a=()=>{const e=t-1;i(e<0?s.length-1:e)},o=()=>{const e=t+1;i(e>=s.length?0:e)};return(0,n.useEffect)((()=>{const e=e=>{e.repeat||("ArrowRight"===e.key&&(document.querySelector("#slide-arrow-next")?.classList.add("active"),o()),"ArrowLeft"===e.key&&(document.querySelector("#slide-arrow-prev")?.classList.add("active"),a()))};return window.addEventListener("keydown",e),window.addEventListener("keyup",(e=>{e.repeat||(document.querySelector("#slide-arrow-next")?.classList.remove("active"),document.querySelector("#slide-arrow-prev")?.classList.remove("active"))})),()=>{window.removeEventListener("keydown",e)}}),[t]),(0,r.jsxs)("section",{className:"slider-wrapper",children:[(0,r.jsx)("button",{className:"slide-arrow",id:"slide-arrow-prev",onClick:a,children:"\u2039"}),(0,r.jsx)("button",{className:"slide-arrow",id:"slide-arrow-next",onClick:o,children:"\u203a"}),(0,r.jsxs)("div",{className:"slides-container",children:[(0,r.jsx)("h3",{className:"text--center",children:s[t].title}),s[t].lists.map((e=>(0,r.jsxs)(r.Fragment,{children:[e.descriptions.map((e=>(0,r.jsx)("div",{children:e}))),(0,r.jsx)("ul",{children:e.items.map((e=>(0,r.jsx)("li",{children:e})))})]})))]})]})};var o=t(5999);const c=[{title:(0,r.jsx)(o.Z,{children:"Tile cache"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"features-tile-cache-description"})],items:[(0,r.jsx)(o.Z,{children:"WMS sources (1.0.0\u20131.3.0)"}),(0,r.jsx)(o.Z,{children:"WMTS/TMS sources"}),(0,r.jsx)(o.Z,{children:"Mapserver and Mapnik configurations"}),(0,r.jsx)(o.Z,{children:"any TileCache, Google Maps or Bing compatible source"}),(0,r.jsx)(o.Z,{children:"ArcGIS REST servers and compact cache file"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"Other features"})],items:[(0,r.jsx)(o.Z,{children:"cache tiles in the filesystem, MBTiles/SQLite, ArcGIS Compact Cache, S3, Redis, Riak, or CouchDB"}),(0,r.jsx)(o.Z,{children:"reproject WMS and tile sources to other SRS"}),(0,r.jsx)(o.Z,{children:"stores identical tiles just once (e.g. ocean tiles)"}),(0,r.jsx)(o.Z,{children:"embed watermark in tiles"}),(0,r.jsx)(o.Z,{children:"merge multiple sources"}),(0,r.jsx)(o.Z,{children:"limit sources to polygon areas"}),(0,r.jsx)(o.Z,{children:"manipulate image bands to create grayscale- or false-color images"}),(0,r.jsx)(o.Z,{children:"many more"})]}]},{title:(0,r.jsx)(o.Z,{children:"WMS"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). It supports WMS responses from cached data:"})],items:[(0,r.jsx)(o.Z,{children:"merges tiles and scales or reprojects images"}),(0,r.jsx)(o.Z,{children:"accelerates existing WMS 10 to 100 time"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"and cascaded WMS services:"})],items:[(0,r.jsx)(o.Z,{children:"multi-threaded requests"}),(0,r.jsx)(o.Z,{children:"merges multiple sources"}),(0,r.jsx)(o.Z,{children:"adds transparency to opaque layers"}),(0,r.jsx)(o.Z,{children:"reprojects on-the-fly"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"It also supports combinations of cached and cascaded layers. Other features:"})],items:[(0,r.jsx)(o.Z,{children:"respond to GetLegendGraphic requests"}),(0,r.jsx)(o.Z,{children:"cascade GetFeatureInfo requests with optional XSL transformations'"}),(0,r.jsx)(o.Z,{children:"limit sources to polygon areas'"}),(0,r.jsx)(o.Z,{children:"convert WMS versions and image formats'"}),(0,r.jsx)(o.Z,{children:"support for non-image raster data like DEMs"})]}]},{title:(0,r.jsx)(o.Z,{children:"Security"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy can act as a security layer for existing map services. Thus, MapProxy can protect entire WMS but also individual layers from unwanted access or make them visible only to certain user groups."}),(0,r.jsx)(o.Z,{children:"In addition to the overall data, the security layer can also be applied to exact areas. For example, a polygon can be used to define which areas individual users are allowed to access and which are not."}),(0,r.jsx)(o.Z,{children:"The security layer was developed as an open interface so that it can be connected to a wide variety of user databases. Existing user databases can thus be used by the MapProxy."})],items:[]}]},{title:(0,r.jsx)(o.Z,{children:"Seeding"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"You can pre-generate the tile cache for better performance \u2013 this is called seeding. Some unique features:"})],items:[(0,r.jsx)(o.Z,{children:"fine-grained control over the seed area with Shapefiles, GeoJSON, PostGIS or WKT geometries"}),(0,r.jsx)(o.Z,{children:"multi-threaded requests, meta-tile splitting and image encoding"}),(0,r.jsx)(o.Z,{children:"optimized seeding strategy (to work _with_ your database cache"})]}]},{title:(0,r.jsx)(o.Z,{children:"Other features"}),lists:[{descriptions:[(0,r.jsx)(o.Z,{children:"You can use MapProxy to upgrade your SDI without touching your existing servers:"})],items:[(0,r.jsx)(o.Z,{children:"offer projections that your sources do not support"}),(0,r.jsx)(o.Z,{children:"offer protocol versions and image formats that your sources do not support"}),(0,r.jsx)(o.Z,{children:"combine multiple layers and servers"}),(0,r.jsx)(o.Z,{children:"hide WMS servers"}),(0,r.jsx)(o.Z,{children:"add watermarks and attribution lines to the images"}),(0,r.jsx)(o.Z,{children:"etc"})]},{descriptions:[(0,r.jsx)(o.Z,{children:"MapProxy is standard compliant and works with the following open specifications:"})],items:[(0,r.jsx)(o.Z,{children:"OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0"}),(0,r.jsx)(o.Z,{children:"OGC WMTS 1.0.0 (KVP and RESTful)"}),(0,r.jsx)(o.Z,{children:"OSGeo TMS 1.0.0"}),(0,r.jsx)(o.Z,{children:"OGC KML 2.2 SuperOverlay"})]}]}],l={},d="Features",h={type:"mdx",permalink:"/startpage",source:"@site/src/pages/startpage.mdx",description:"---",frontMatter:{},unlisted:!1},p={},u=[{value:"Getting started",id:"getting-started",level:2}];function x(e){const s={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{class:"flex-center",children:(0,r.jsx)("img",{src:"img/mapproxy-overview.png",alt:"MapProxy Overview"})}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h1,{id:"features",children:"Features"}),"\n",(0,r.jsx)(a,{slides:c}),"\n",(0,r.jsx)(s.hr,{}),"\n",(0,r.jsx)(s.h2,{id:"getting-started",children:"Getting started"}),"\n",(0,r.jsxs)(s.p,{children:["Curious? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode.",(0,r.jsx)(s.br,{}),"\n","After that you can visit ",(0,r.jsx)(s.a,{href:"http://localhost:8080",children:"http://localhost:8080"}),"."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:" sudo aptitude install python-imaging python-yaml libproj0\n sudo pip install mapproxy\n mapproxy-util create -t base-config ./\n mapproxy-util serve-develop ./mapproxy.yaml\n"})})]})}function m(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>a});var r=t(7294);const i={},n=r.createContext(i);function a(e){const s=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.bb04434f.js b/assets/js/c4f5d8e4.61926369.js similarity index 71% rename from assets/js/c4f5d8e4.bb04434f.js rename to assets/js/c4f5d8e4.61926369.js index 0961422..3880738 100644 --- a/assets/js/c4f5d8e4.bb04434f.js +++ b/assets/js/c4f5d8e4.61926369.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[195],{9463:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>h,toc:()=>u});var t=r(5893),i=r(1151),a=r(7294);const n=e=>{let{slides:s}=e;const[r,i]=(0,a.useState)(0),n=()=>{const e=r-1;i(e<0?s.length-1:e)},o=()=>{const e=r+1;i(e>=s.length?0:e)};return(0,a.useEffect)((()=>{const e=e=>{e.repeat||("ArrowRight"===e.key&&(document.querySelector("#slide-arrow-next")?.classList.add("active"),o()),"ArrowLeft"===e.key&&(document.querySelector("#slide-arrow-prev")?.classList.add("active"),n()))};return window.addEventListener("keydown",e),window.addEventListener("keyup",(e=>{e.repeat||(document.querySelector("#slide-arrow-next")?.classList.remove("active"),document.querySelector("#slide-arrow-prev")?.classList.remove("active"))})),()=>{window.removeEventListener("keydown",e)}}),[r]),(0,t.jsxs)("section",{className:"slider-wrapper",children:[(0,t.jsx)("button",{className:"slide-arrow",id:"slide-arrow-prev",onClick:n,children:"\u2039"}),(0,t.jsx)("button",{className:"slide-arrow",id:"slide-arrow-next",onClick:o,children:"\u203a"}),(0,t.jsxs)("div",{className:"slides-container",children:[(0,t.jsx)("h3",{className:"text--center",children:s[r].title}),s[r].lists.map((e=>(0,t.jsxs)(t.Fragment,{children:[e.descriptions.map((e=>(0,t.jsx)("div",{children:e}))),(0,t.jsx)("ul",{children:e.items.map((e=>(0,t.jsx)("li",{children:e})))})]})))]})]})};var o=r(5999);const c=[{title:(0,t.jsx)(o.Z,{children:"Tile cache"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"features-tile-cache-description"})],items:[(0,t.jsx)(o.Z,{children:"WMS sources (1.0.0\u20131.3.0)"}),(0,t.jsx)(o.Z,{children:"WMTS/TMS sources"}),(0,t.jsx)(o.Z,{children:"Mapserver and Mapnik configurations"}),(0,t.jsx)(o.Z,{children:"any TileCache, Google Maps or Bing compatible source"}),(0,t.jsx)(o.Z,{children:"ArcGIS REST servers and compact cache file"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"Other features"})],items:[(0,t.jsx)(o.Z,{children:"cache tiles in the filesystem, MBTiles/SQLite, ArcGIS Compact Cache, S3, Redis, Riak, or CouchDB"}),(0,t.jsx)(o.Z,{children:"reproject WMS and tile sources to other SRS"}),(0,t.jsx)(o.Z,{children:"stores identical tiles just once (e.g. ocean tiles)"}),(0,t.jsx)(o.Z,{children:"embed watermark in tiles"}),(0,t.jsx)(o.Z,{children:"merge multiple sources"}),(0,t.jsx)(o.Z,{children:"limit sources to polygon areas"}),(0,t.jsx)(o.Z,{children:"manipulate image bands to create grayscale- or false-color images"}),(0,t.jsx)(o.Z,{children:"many more"})]}]},{title:(0,t.jsx)(o.Z,{children:"WMS"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). It supports WMS responses from cached data:"})],items:[(0,t.jsx)(o.Z,{children:"merges tiles and scales or reprojects images"}),(0,t.jsx)(o.Z,{children:"accelerates existing WMS 10 to 100 time"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"and cascaded WMS services:"})],items:[(0,t.jsx)(o.Z,{children:"multi-threaded requests"}),(0,t.jsx)(o.Z,{children:"merges multiple sources"}),(0,t.jsx)(o.Z,{children:"adds transparency to opaque layers"}),(0,t.jsx)(o.Z,{children:"reprojects on-the-fly"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"It also supports combinations of cached and cascaded layers. Other features:"})],items:[(0,t.jsx)(o.Z,{children:"respond to GetLegendGraphic requests"}),(0,t.jsx)(o.Z,{children:"cascade GetFeatureInfo requests with optional XSL transformations'"}),(0,t.jsx)(o.Z,{children:"limit sources to polygon areas'"}),(0,t.jsx)(o.Z,{children:"convert WMS versions and image formats'"}),(0,t.jsx)(o.Z,{children:"support for non-image raster data like DEMs"})]}]},{title:(0,t.jsx)(o.Z,{children:"Security"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy can act as a security layer for existing map services. Thus, MapProxy can protect entire WMS but also individual layers from unwanted access or make them visible only to certain user groups."}),(0,t.jsx)(o.Z,{children:"In addition to the overall data, the security layer can also be applied to exact areas. For example, a polygon can be used to define which areas individual users are allowed to access and which are not."}),(0,t.jsx)(o.Z,{children:"The security layer was developed as an open interface so that it can be connected to a wide variety of user databases. Existing user databases can thus be used by the MapProxy."})],items:[]}]},{title:(0,t.jsx)(o.Z,{children:"Seeding"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"You can pre-generate the tile cache for better performance \u2013 this is called seeding. Some unique features:"})],items:[(0,t.jsx)(o.Z,{children:"fine-grained control over the seed area with Shapefiles, GeoJSON, PostGIS or WKT geometries"}),(0,t.jsx)(o.Z,{children:"multi-threaded requests, meta-tile splitting and image encoding"}),(0,t.jsx)(o.Z,{children:"optimized seeding strategy (to work _with_ your database cache"})]}]},{title:(0,t.jsx)(o.Z,{children:"Other features"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"You can use MapProxy to upgrade your SDI without touching your existing servers:"})],items:[(0,t.jsx)(o.Z,{children:"offer projections that your sources do not support"}),(0,t.jsx)(o.Z,{children:"offer protocol versions and image formats that your sources do not support"}),(0,t.jsx)(o.Z,{children:"combine multiple layers and servers"}),(0,t.jsx)(o.Z,{children:"hide WMS servers"}),(0,t.jsx)(o.Z,{children:"add watermarks and attribution lines to the images"}),(0,t.jsx)(o.Z,{children:"etc"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy is standard compliant and works with the following open specifications:"})],items:[(0,t.jsx)(o.Z,{children:"OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0"}),(0,t.jsx)(o.Z,{children:"OGC WMTS 1.0.0 (KVP and RESTful)"}),(0,t.jsx)(o.Z,{children:"OSGeo TMS 1.0.0"}),(0,t.jsx)(o.Z,{children:"OGC KML 2.2 SuperOverlay"})]}]}],l={},d="Features",h={type:"mdx",permalink:"/mapproxy-homepage/startpage",source:"@site/src/pages/startpage.mdx",description:"---",frontMatter:{},unlisted:!1},p={},u=[{value:"Getting started",id:"getting-started",level:2}];function x(e){const s={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{class:"flex-center",children:(0,t.jsx)("img",{src:"img/mapproxy-overview.png",alt:"MapProxy Overview"})}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h1,{id:"features",children:"Features"}),"\n",(0,t.jsx)(n,{slides:c}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"getting-started",children:"Getting started"}),"\n",(0,t.jsxs)(s.p,{children:["Curious? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode.",(0,t.jsx)(s.br,{}),"\n","After that you can visit ",(0,t.jsx)(s.a,{href:"http://localhost:8080",children:"http://localhost:8080"}),"."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:" sudo aptitude install python-imaging python-yaml libproj0\n sudo pip install mapproxy\n mapproxy-util create -t base-config ./\n mapproxy-util serve-develop ./mapproxy.yaml\n"})})]})}function m(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},9294:(e,s,r)=>{r.r(s),r.d(s,{default:()=>d});r(7294);var t=r(512),i=r(1154),a=r(2196);const n={heroBanner:"heroBanner_qdFl"};var o=r(9463),c=r(5893);function l(){return(0,c.jsx)("header",{className:(0,t.Z)("hero hero--primary",n.heroBanner),children:(0,c.jsxs)("div",{className:"container",children:[(0,c.jsx)("h1",{className:"hero__title",children:"MapProxy"}),(0,c.jsxs)("p",{className:"hero__subtitle",children:["MapProxy is an open source proxy for geospatial data.",(0,c.jsx)("br",{}),"It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client."]})]})})}function d(){return(0,c.jsxs)(i.Z,{children:[(0,c.jsx)(l,{}),(0,c.jsx)("div",{class:"main-wrapper mainWrapper_node_modules-@docusaurus-theme-classic-lib-theme-Layout-styles-module",children:(0,c.jsx)("main",{class:"container container--fluid margin-vert--lg",children:(0,c.jsx)(a.Z,{children:(0,c.jsx)(o.default,{})})})})]})}}}]); \ No newline at end of file +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[195],{9463:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>h,toc:()=>u});var t=r(5893),i=r(1151),a=r(7294);const n=e=>{let{slides:s}=e;const[r,i]=(0,a.useState)(0),n=()=>{const e=r-1;i(e<0?s.length-1:e)},o=()=>{const e=r+1;i(e>=s.length?0:e)};return(0,a.useEffect)((()=>{const e=e=>{e.repeat||("ArrowRight"===e.key&&(document.querySelector("#slide-arrow-next")?.classList.add("active"),o()),"ArrowLeft"===e.key&&(document.querySelector("#slide-arrow-prev")?.classList.add("active"),n()))};return window.addEventListener("keydown",e),window.addEventListener("keyup",(e=>{e.repeat||(document.querySelector("#slide-arrow-next")?.classList.remove("active"),document.querySelector("#slide-arrow-prev")?.classList.remove("active"))})),()=>{window.removeEventListener("keydown",e)}}),[r]),(0,t.jsxs)("section",{className:"slider-wrapper",children:[(0,t.jsx)("button",{className:"slide-arrow",id:"slide-arrow-prev",onClick:n,children:"\u2039"}),(0,t.jsx)("button",{className:"slide-arrow",id:"slide-arrow-next",onClick:o,children:"\u203a"}),(0,t.jsxs)("div",{className:"slides-container",children:[(0,t.jsx)("h3",{className:"text--center",children:s[r].title}),s[r].lists.map((e=>(0,t.jsxs)(t.Fragment,{children:[e.descriptions.map((e=>(0,t.jsx)("div",{children:e}))),(0,t.jsx)("ul",{children:e.items.map((e=>(0,t.jsx)("li",{children:e})))})]})))]})]})};var o=r(5999);const c=[{title:(0,t.jsx)(o.Z,{children:"Tile cache"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"features-tile-cache-description"})],items:[(0,t.jsx)(o.Z,{children:"WMS sources (1.0.0\u20131.3.0)"}),(0,t.jsx)(o.Z,{children:"WMTS/TMS sources"}),(0,t.jsx)(o.Z,{children:"Mapserver and Mapnik configurations"}),(0,t.jsx)(o.Z,{children:"any TileCache, Google Maps or Bing compatible source"}),(0,t.jsx)(o.Z,{children:"ArcGIS REST servers and compact cache file"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"Other features"})],items:[(0,t.jsx)(o.Z,{children:"cache tiles in the filesystem, MBTiles/SQLite, ArcGIS Compact Cache, S3, Redis, Riak, or CouchDB"}),(0,t.jsx)(o.Z,{children:"reproject WMS and tile sources to other SRS"}),(0,t.jsx)(o.Z,{children:"stores identical tiles just once (e.g. ocean tiles)"}),(0,t.jsx)(o.Z,{children:"embed watermark in tiles"}),(0,t.jsx)(o.Z,{children:"merge multiple sources"}),(0,t.jsx)(o.Z,{children:"limit sources to polygon areas"}),(0,t.jsx)(o.Z,{children:"manipulate image bands to create grayscale- or false-color images"}),(0,t.jsx)(o.Z,{children:"many more"})]}]},{title:(0,t.jsx)(o.Z,{children:"WMS"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). It supports WMS responses from cached data:"})],items:[(0,t.jsx)(o.Z,{children:"merges tiles and scales or reprojects images"}),(0,t.jsx)(o.Z,{children:"accelerates existing WMS 10 to 100 time"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"and cascaded WMS services:"})],items:[(0,t.jsx)(o.Z,{children:"multi-threaded requests"}),(0,t.jsx)(o.Z,{children:"merges multiple sources"}),(0,t.jsx)(o.Z,{children:"adds transparency to opaque layers"}),(0,t.jsx)(o.Z,{children:"reprojects on-the-fly"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"It also supports combinations of cached and cascaded layers. Other features:"})],items:[(0,t.jsx)(o.Z,{children:"respond to GetLegendGraphic requests"}),(0,t.jsx)(o.Z,{children:"cascade GetFeatureInfo requests with optional XSL transformations'"}),(0,t.jsx)(o.Z,{children:"limit sources to polygon areas'"}),(0,t.jsx)(o.Z,{children:"convert WMS versions and image formats'"}),(0,t.jsx)(o.Z,{children:"support for non-image raster data like DEMs"})]}]},{title:(0,t.jsx)(o.Z,{children:"Security"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy can act as a security layer for existing map services. Thus, MapProxy can protect entire WMS but also individual layers from unwanted access or make them visible only to certain user groups."}),(0,t.jsx)(o.Z,{children:"In addition to the overall data, the security layer can also be applied to exact areas. For example, a polygon can be used to define which areas individual users are allowed to access and which are not."}),(0,t.jsx)(o.Z,{children:"The security layer was developed as an open interface so that it can be connected to a wide variety of user databases. Existing user databases can thus be used by the MapProxy."})],items:[]}]},{title:(0,t.jsx)(o.Z,{children:"Seeding"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"You can pre-generate the tile cache for better performance \u2013 this is called seeding. Some unique features:"})],items:[(0,t.jsx)(o.Z,{children:"fine-grained control over the seed area with Shapefiles, GeoJSON, PostGIS or WKT geometries"}),(0,t.jsx)(o.Z,{children:"multi-threaded requests, meta-tile splitting and image encoding"}),(0,t.jsx)(o.Z,{children:"optimized seeding strategy (to work _with_ your database cache"})]}]},{title:(0,t.jsx)(o.Z,{children:"Other features"}),lists:[{descriptions:[(0,t.jsx)(o.Z,{children:"You can use MapProxy to upgrade your SDI without touching your existing servers:"})],items:[(0,t.jsx)(o.Z,{children:"offer projections that your sources do not support"}),(0,t.jsx)(o.Z,{children:"offer protocol versions and image formats that your sources do not support"}),(0,t.jsx)(o.Z,{children:"combine multiple layers and servers"}),(0,t.jsx)(o.Z,{children:"hide WMS servers"}),(0,t.jsx)(o.Z,{children:"add watermarks and attribution lines to the images"}),(0,t.jsx)(o.Z,{children:"etc"})]},{descriptions:[(0,t.jsx)(o.Z,{children:"MapProxy is standard compliant and works with the following open specifications:"})],items:[(0,t.jsx)(o.Z,{children:"OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0"}),(0,t.jsx)(o.Z,{children:"OGC WMTS 1.0.0 (KVP and RESTful)"}),(0,t.jsx)(o.Z,{children:"OSGeo TMS 1.0.0"}),(0,t.jsx)(o.Z,{children:"OGC KML 2.2 SuperOverlay"})]}]}],l={},d="Features",h={type:"mdx",permalink:"/startpage",source:"@site/src/pages/startpage.mdx",description:"---",frontMatter:{},unlisted:!1},p={},u=[{value:"Getting started",id:"getting-started",level:2}];function x(e){const s={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",hr:"hr",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{class:"flex-center",children:(0,t.jsx)("img",{src:"img/mapproxy-overview.png",alt:"MapProxy Overview"})}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h1,{id:"features",children:"Features"}),"\n",(0,t.jsx)(n,{slides:c}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"getting-started",children:"Getting started"}),"\n",(0,t.jsxs)(s.p,{children:["Curious? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode.",(0,t.jsx)(s.br,{}),"\n","After that you can visit ",(0,t.jsx)(s.a,{href:"http://localhost:8080",children:"http://localhost:8080"}),"."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{children:" sudo aptitude install python-imaging python-yaml libproj0\n sudo pip install mapproxy\n mapproxy-util create -t base-config ./\n mapproxy-util serve-develop ./mapproxy.yaml\n"})})]})}function m(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},9294:(e,s,r)=>{r.r(s),r.d(s,{default:()=>d});r(7294);var t=r(512),i=r(1154),a=r(2196);const n={heroBanner:"heroBanner_qdFl"};var o=r(9463),c=r(5893);function l(){return(0,c.jsx)("header",{className:(0,t.Z)("hero hero--primary",n.heroBanner),children:(0,c.jsxs)("div",{className:"container",children:[(0,c.jsx)("h1",{className:"hero__title",children:"MapProxy"}),(0,c.jsxs)("p",{className:"hero__subtitle",children:["MapProxy is an open source proxy for geospatial data.",(0,c.jsx)("br",{}),"It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client."]})]})})}function d(){return(0,c.jsxs)(i.Z,{children:[(0,c.jsx)(l,{}),(0,c.jsx)("div",{class:"main-wrapper mainWrapper_node_modules-@docusaurus-theme-classic-lib-theme-Layout-styles-module",children:(0,c.jsx)("main",{class:"container container--fluid margin-vert--lg",children:(0,c.jsx)(a.Z,{children:(0,c.jsx)(o.default,{})})})})]})}}}]); \ No newline at end of file diff --git a/assets/js/e1365922.491f7a42.js b/assets/js/e1365922.491f7a42.js new file mode 100644 index 0000000..5809b3b --- /dev/null +++ b/assets/js/e1365922.491f7a42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[6],{5550:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var t=s(5893),o=s(1151);s(7294);const i="flexrow_LcxP",n=e=>{let{companyList:r}=e;return(0,t.jsx)("div",{children:r.map((e=>(0,t.jsxs)("div",{className:i,children:[(0,t.jsx)("div",{children:(0,t.jsx)("a",{href:e.website,children:(0,t.jsx)("img",{src:e.logoUrl})})}),(0,t.jsx)("div",{children:e.description})]},e.id)))})},a=[{title:"terrestris",logoUrl:"https://www.terrestris.de/wp-content/uploads/2014/03/logo_terrestris_small3.png",description:"terrestris provides top-notch Free and OpenSource GIS services, solutions and training from Bonn, Germany. Offering custom project solutions, connecting you with communities and provide general support for many FOSS packages and libraries. They help customers in the planning, implementation & maintenance of their spatial data infrastructures (SDI) with FOSS. Please reach out, to see if terrestris can help you to get the best out of FOSS for geospatial.",website:"https://terrestris.de"}],l={},c=void 0,p={type:"mdx",permalink:"/support",source:"@site/src/pages/support.mdx",description:"If you need help setting up MapProxy, having some trouble or found a bug? There are different ways to get help:",frontMatter:{},unlisted:!1},h={},u=[{value:"Mailing List",id:"mailing-list",level:4},{value:"How to ask for help?",id:"how-to-ask-for-help",level:3},{value:"Commercial Support",id:"commercial-support",level:4},{value:"Issue Tracker",id:"issue-tracker",level:4}];function d(e){const r={a:"a",code:"code",em:"em",h3:"h3",h4:"h4",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"If you need help setting up MapProxy, having some trouble or found a bug? There are different ways to get help:"}),"\n",(0,t.jsx)(r.h4,{id:"mailing-list",children:"Mailing List"}),"\n",(0,t.jsxs)(r.p,{children:["The ",(0,t.jsx)(r.a,{href:"http://osgeo.org/",children:"OSGeo"})," is hosting our mailing list: ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/mailman/listinfo/mapproxy",children:"mapproxy@lists.osgeo.org"})]}),"\n",(0,t.jsxs)(r.p,{children:["The list is for users and developers and is the best place to discuss MapProxy. You must ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/mailman/listinfo/mapproxy",children:"subscribe to the list"})," before you can write. There is an ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/pipermail/mapproxy/",children:"archive"})," of all older posts."]}),"\n",(0,t.jsx)(r.h3,{id:"how-to-ask-for-help",children:"How to ask for help?"}),"\n",(0,t.jsxs)(r.p,{children:["There are a few things you should consider when asking for help on github or the mailing list, that will make it more likely to get a fast ",(0,t.jsx)(r.em,{children:"and"})," helpful response."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"Describe what you're trying to do and what your end result should be. It's possible that there is an easier way to do something."}),"\n",(0,t.jsx)(r.li,{children:"Always include a minimal configuration to reproduce your setup \u2013 including all grids, caches, sources and layers. But remove all unrelated parts, e.g. when you have multiple sources/caches/layers."}),"\n",(0,t.jsx)(r.li,{children:"Describe what you are expecting and what you get. Include URLs you are requesting from MapProxy and URLs of requests that MapProxy makes to your source."}),"\n",(0,t.jsx)(r.li,{children:"Describe what you already tried to do."}),"\n",(0,t.jsx)(r.li,{children:"Include the software versions of your setup (MapProxy, Windows/Linux, Proj4, PIL, etc.)."}),"\n",(0,t.jsxs)(r.li,{children:["Try to see if it works with ",(0,t.jsx)(r.code,{children:"mapproxy-util serve-develop"})," if your issue is not related to the deployment itself. Copy any error output in your mail."]}),"\n",(0,t.jsxs)(r.li,{children:["Always include a ",(0,t.jsx)(r.em,{children:"minimal"})," configuration to reproduce your setup."]}),"\n",(0,t.jsx)(r.li,{children:"There is a hard limit of 100kB per mail on the mailing list. Avoid HTML, only post tiny pictures and/or use external webspace (or Dropbox) for larger stuff."}),"\n",(0,t.jsx)(r.li,{children:"Use these guidelines with common sense. For example, we don't need your OpenLayers configuration when MapProxy doesn't start up."}),"\n"]}),"\n",(0,t.jsx)(r.h4,{id:"commercial-support",children:"Commercial Support"}),"\n",(0,t.jsx)(n,{companyList:a}),"\n",(0,t.jsx)(r.h4,{id:"issue-tracker",children:"Issue Tracker"}),"\n",(0,t.jsxs)(r.p,{children:["Found a bug? We have an ",(0,t.jsx)(r.a,{href:"https://github.com/mapproxy/mapproxy/issues",children:"issue tracker"})," for that, where you can create new tickets. See ",(0,t.jsx)(r.a,{href:"/development",children:"development"}),"."]})]})}function m(e={}){const{wrapper:r}={...(0,o.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,r,s)=>{s.d(r,{Z:()=>a,a:()=>n});var t=s(7294);const o={},i=t.createContext(o);function n(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e1365922.819da6ca.js b/assets/js/e1365922.819da6ca.js deleted file mode 100644 index 38f4b78..0000000 --- a/assets/js/e1365922.819da6ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[6],{5550:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>h,contentTitle:()=>p,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var t=s(5893),o=s(1151);s(7294);const i="flexrow_LcxP",n=e=>{let{companyList:r}=e;return(0,t.jsx)("div",{children:r.map((e=>(0,t.jsxs)("div",{className:i,children:[(0,t.jsx)("div",{children:(0,t.jsx)("a",{href:e.website,children:(0,t.jsx)("img",{src:e.logoUrl})})}),(0,t.jsx)("div",{children:e.description})]},e.id)))})},a=[{title:"terrestris",logoUrl:"https://www.terrestris.de/wp-content/uploads/2014/03/logo_terrestris_small3.png",description:"terrestris provides top-notch Free and OpenSource GIS services, solutions and training from Bonn, Germany. Offering custom project solutions, connecting you with communities and provide general support for many FOSS packages and libraries. They help customers in the planning, implementation & maintenance of their spatial data infrastructures (SDI) with FOSS. Please reach out, to see if terrestris can help you to get the best out of FOSS for geospatial.",website:"https://terrestris.de"}],l={},p=void 0,c={type:"mdx",permalink:"/mapproxy-homepage/support",source:"@site/src/pages/support.mdx",description:"If you need help setting up MapProxy, having some trouble or found a bug? There are different ways to get help:",frontMatter:{},unlisted:!1},h={},u=[{value:"Mailing List",id:"mailing-list",level:4},{value:"How to ask for help?",id:"how-to-ask-for-help",level:3},{value:"Commercial Support",id:"commercial-support",level:4},{value:"Issue Tracker",id:"issue-tracker",level:4}];function d(e){const r={a:"a",code:"code",em:"em",h3:"h3",h4:"h4",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"If you need help setting up MapProxy, having some trouble or found a bug? There are different ways to get help:"}),"\n",(0,t.jsx)(r.h4,{id:"mailing-list",children:"Mailing List"}),"\n",(0,t.jsxs)(r.p,{children:["The ",(0,t.jsx)(r.a,{href:"http://osgeo.org/",children:"OSGeo"})," is hosting our mailing list: ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/mailman/listinfo/mapproxy",children:"mapproxy@lists.osgeo.org"})]}),"\n",(0,t.jsxs)(r.p,{children:["The list is for users and developers and is the best place to discuss MapProxy. You must ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/mailman/listinfo/mapproxy",children:"subscribe to the list"})," before you can write. There is an ",(0,t.jsx)(r.a,{href:"http://lists.osgeo.org/pipermail/mapproxy/",children:"archive"})," of all older posts."]}),"\n",(0,t.jsx)(r.h3,{id:"how-to-ask-for-help",children:"How to ask for help?"}),"\n",(0,t.jsxs)(r.p,{children:["There are a few things you should consider when asking for help on github or the mailing list, that will make it more likely to get a fast ",(0,t.jsx)(r.em,{children:"and"})," helpful response."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"Describe what you're trying to do and what your end result should be. It's possible that there is an easier way to do something."}),"\n",(0,t.jsx)(r.li,{children:"Always include a minimal configuration to reproduce your setup \u2013 including all grids, caches, sources and layers. But remove all unrelated parts, e.g. when you have multiple sources/caches/layers."}),"\n",(0,t.jsx)(r.li,{children:"Describe what you are expecting and what you get. Include URLs you are requesting from MapProxy and URLs of requests that MapProxy makes to your source."}),"\n",(0,t.jsx)(r.li,{children:"Describe what you already tried to do."}),"\n",(0,t.jsx)(r.li,{children:"Include the software versions of your setup (MapProxy, Windows/Linux, Proj4, PIL, etc.)."}),"\n",(0,t.jsxs)(r.li,{children:["Try to see if it works with ",(0,t.jsx)(r.code,{children:"mapproxy-util serve-develop"})," if your issue is not related to the deployment itself. Copy any error output in your mail."]}),"\n",(0,t.jsxs)(r.li,{children:["Always include a ",(0,t.jsx)(r.em,{children:"minimal"})," configuration to reproduce your setup."]}),"\n",(0,t.jsx)(r.li,{children:"There is a hard limit of 100kB per mail on the mailing list. Avoid HTML, only post tiny pictures and/or use external webspace (or Dropbox) for larger stuff."}),"\n",(0,t.jsx)(r.li,{children:"Use these guidelines with common sense. For example, we don't need your OpenLayers configuration when MapProxy doesn't start up."}),"\n"]}),"\n",(0,t.jsx)(r.h4,{id:"commercial-support",children:"Commercial Support"}),"\n",(0,t.jsx)(n,{companyList:a}),"\n",(0,t.jsx)(r.h4,{id:"issue-tracker",children:"Issue Tracker"}),"\n",(0,t.jsxs)(r.p,{children:["Found a bug? We have an ",(0,t.jsx)(r.a,{href:"https://github.com/mapproxy/mapproxy/issues",children:"issue tracker"})," for that, where you can create new tickets. See ",(0,t.jsx)(r.a,{href:"/development",children:"development"}),"."]})]})}function m(e={}){const{wrapper:r}={...(0,o.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,r,s)=>{s.d(r,{Z:()=>a,a:()=>n});var t=s(7294);const o={},i=t.createContext(o);function n(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.010b1fd7.js b/assets/js/main.010b1fd7.js new file mode 100644 index 0000000..2acc760 --- /dev/null +++ b/assets/js/main.010b1fd7.js @@ -0,0 +1,2 @@ +/*! For license information please see main.010b1fd7.js.LICENSE.txt */ +(self.webpackChunkmapproxy_homepage=self.webpackChunkmapproxy_homepage||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"1f391b9e":[()=>Promise.all([n.e(532),n.e(196),n.e(85)]).then(n.bind(n,2698)),"@theme/MDXPage",2698],"209227ae":[()=>n.e(611).then(n.bind(n,8342)),"@site/src/pages/download.md",8342],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"8a7e76de":[()=>n.e(852).then(n.bind(n,5767)),"@site/src/pages/development.md",5767],"92f008cf":[()=>n.e(671).then(n.t.bind(n,5745,19)),"/home/runner/work/mapproxy-homepage/mapproxy-homepage/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],a194631d:[()=>n.e(978).then(n.bind(n,1717)),"@site/src/pages/resources.md",1717],b3469829:[()=>Promise.all([n.e(532),n.e(812)]).then(n.bind(n,9463)),"@site/src/pages/startpage.mdx",9463],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(196),n.e(195)]).then(n.bind(n,9294)),"@site/src/pages/index.js",9294],e1365922:[()=>Promise.all([n.e(532),n.e(6)]).then(n.bind(n,5550)),"@site/src/pages/support.mdx",5550]};var l=n(5893);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(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(460).then(n.bind(n,1460)),modules:["@theme/NotFound"],webpack:()=>[1460],render(e,t){const n=e.default;return(0,l.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,u.Z)(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]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)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 o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,l.jsx)(c.z,{value:i,children:(0,l.jsx)(o,{...a,...n})})}})}const p=[{path:"/development",component:d("/development","e69"),exact:!0},{path:"/download",component:d("/download","cb6"),exact:!0},{path:"/resources",component:d("/resources","122"),exact:!0},{path:"/startpage",component:d("/startpage","582"),exact:!0},{path:"/support",component:d("/support","a89"),exact:!0},{path:"/",component:d("/","827"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},4276:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(7462);function p(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var r=e.path?(0,c.LX)(t,e):n.length?n[n.length-1].match:c.F0.computeRootMatch(t);return r&&(n.push({route:e,match:r}),e.routes&&p(e.routes,t,n)),r})),n}var f=n(5893);function m(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var g=n(5742),h=n(2263),y=n(4996),b=n(6668),v=n(1944),w=n(4711),k=n(9727);const x="default";var S=n(8780);function E(e){let{locale:t,version:n,tag:r}=e;const a=t;return(0,f.jsxs)(g.Z,{children:[t&&(0,f.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,f.jsx)("meta",{name:"docusaurus_version",content:n}),r&&(0,f.jsx)("meta",{name:"docusaurus_tag",content:r}),a&&(0,f.jsx)("meta",{name:"docsearch:language",content:a}),n&&(0,f.jsx)("meta",{name:"docsearch:version",content:n}),r&&(0,f.jsx)("meta",{name:"docsearch:docusaurus_tag",content:r})]})}function C(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,w.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(g.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,c.TH)();return e+(0,S.applyTrailingSlash)((0,y.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(g.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function T(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(g.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.h})]}),n&&(0,f.jsx)(v.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(C,{}),(0,f.jsx)(E,{tag:x,locale:e}),(0,f.jsx)(g.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const j=new Map;function L(e){if(j.has(e.pathname))return{...e,pathname:j.get(e.pathname)};if(p(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return j.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return j.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),N=n(8940),R=n(469);function P(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()=>a.forEach((e=>e?.()))}const O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,R.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)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}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function D(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>p(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?P("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=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(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,f.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(c.AW,{location:t,render:()=>e})})}}const F=I,M="__docusaurus-base-url-issue-banner-container",z="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function $(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 = '${M}';\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 a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.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 Y=n(9670);const X=new Set,J=new Set,ee=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,te={prefetch(e){if(!(e=>!ee()&&!J.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=p(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!ee()&&!J.has(e))(e)&&(J.add(e),D(e))},ne=Object.freeze(te),re=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=ne;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(o.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(re)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};D(window.location.pathname).then(l)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var i=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"2.0.0","pluginVersions":{"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"}}}');var s=n(5893);const u={siteConfig:a.default,siteMetadata:l,globalData:{},i18n:o,codeTranslations:i},c=r.createContext(u);function d(e){let{children:t}=e;return(0,s.jsx)(c.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(1154),s=n(5893);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)(o.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{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){a.Z.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}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),l=n(3919),s=n(412),u=n(5893);const c=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(c),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const C=(0,l.Z)(E),_=E?.replace("pathname://","");let T=void 0!==_?(j=_,y&&(e=>e.startsWith("/"))(j)?k(j):j):void 0;var j;T&&C&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const L=(0,r.useRef)(!1),A=n?a.OL:a.rU,N=s.Z.canUseIntersectionObserver,R=(0,r.useRef)(),P=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,r.useEffect)((()=>(!N&&C&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()})),[R,T,N,C]);const O=T?.startsWith("#")??!1,D=!T||!C||O;return D||h||x.collectLink(T),D?(0,u.jsx)("a",{ref:S,href:T,...E&&!C&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,u.jsx)(A,{...b,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,N&&e&&C&&(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!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},1875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>s});var r=n(7294),a=n(5893);function o(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(7529);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 o(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,a.jsx)(a.Fragment,{children:o(i,r)})}},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)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)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),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,a.jsx)(o.Provider,{value:l,children:t})}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(9960);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var s=n(5893);function u(e){let{as:t,id:n,...u}=e;const{navbar:{hideOnScroll:c}}=(0,o.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...u,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,s.jsxs)(t,{...u,className:(0,r.Z)("anchor",c?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},1154:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Kt});var r=n(7294),a=n(512),o=n(4763),i=n(1944),l=n(6550),s=n(5999),u=n(902);function c(e){const t=(0,l.TH)(),n=(0,u.D9)(t),a=(0,u.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&a({location:t,previousLocation:n})}),[a,t,n])}var d=n(5893);const p="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function m(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(p);t&&f(t)}),[]);return c((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const g=(0,s.I)({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 h(e){const t=e.children??g,{containerRef:n,onClick:r}=m();return(0,d.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,d.jsx)("a",{...e,href:`#${p}`,onClick:r,children:t})})}var y=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function w(){return(0,d.jsx)(h,{className:v.skipToContent})}var k=n(6668),x=n(2389),S=n(12);const E=(0,S.WA)("docusaurus.announcement.dismiss"),C=(0,S.WA)("docusaurus.announcement.id"),_=()=>"true"===E.get(),T=e=>E.set(String(e)),j=r.createContext(null);function L(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,d.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,d.jsx)("g",{stroke:r,strokeWidth:a,children:(0,d.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const A={closeButton:"closeButton_CVFx"};function N(e){return(0,d.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",A.closeButton,e.className),children:(0,d.jsx)(L,{width:14,height:14,strokeWidth:3.1})})}const R={content:"content_knG7"};function P(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return(0,d.jsx)("div",{...e,className:(0,a.Z)(R.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const O={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function D(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=function(){const e=(0,r.useContext)(j);if(!e)throw new u.i6("AnnouncementBarProvider");return e}();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return(0,d.jsxs)("div",{className:O.announcementBar,style:{backgroundColor:a,color:o},role:"banner",children:[i&&(0,d.jsx)("div",{className:O.announcementBarPlaceholder}),(0,d.jsx)(P,{className:O.announcementBarContent}),i&&(0,d.jsx)(N,{onClick:n,className:O.announcementBarClose})]})}const I=r.createContext(null);function F(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,d.jsx)(I.Provider,{value:n,children:t})}function M(){const e=(0,r.useContext)(I);if(!e)throw new u.i6("NavbarSecondaryMenuContentProvider");return e[0]}var z=n(412);const B={desktop:"desktop",mobile:"mobile",ssr:"ssr"},$=996;function U(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!z.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>$?B.desktop:B.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}function q(e){!function(e){const t=(0,l.k6)(),n=(0,u.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}const H=r.createContext(void 0);function Z(){const e=function(){const e=M(),{items:t}=(0,k.L)().navbar;return 0===t.length&&!e.component}(),t=U(),n=!e&&"mobile"===t,[a,o]=(0,r.useState)(!1);q((()=>{if(a)return o(!1),!1}));const i=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&o(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:i,shown:a})),[e,n,i,a])}function G(e){let{children:t}=e;const n=Z();return(0,d.jsx)(H.Provider,{value:n,children:t})}function V(){const e=r.useContext(H);if(void 0===e)throw new u.i6("NavbarMobileSidebarProvider");return e}n(469);const W=r.createContext(void 0);function Q(){const e=(0,r.useContext)(W);if(null==e)throw new u.i6("ScrollControllerProvider");return e}const K=()=>z.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function Y(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return function(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=Q(),a=(0,r.useRef)(K()),o=(0,u.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=K();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}(((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 a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}const X=r.createContext(null);function J(e){let{children:t}=e;const n=function(){const e=V(),t=M(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,u.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,d.jsx)(X.Provider,{value:n,children:t})}function ee(e){if(e.component){const t=e.component;return(0,d.jsx)(t,{...e.props})}}function te(){const e=(0,r.useContext)(X);if(!e)throw new u.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=M();return(0,r.useMemo)((()=>({shown:t,hide:a,content:ee(o)})),[a,o,t])}function ne(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=te();return(0,d.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,d.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,d.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,d.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var re=n(2949);function ae(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,d.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 oe(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,d.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 ie={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function le(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,x.Z)(),l=(0,s.I)({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.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,d.jsx)("div",{className:(0,a.Z)(ie.toggle,t),children:(0,d.jsxs)("button",{className:(0,a.Z)("clean-btn",ie.toggleButton,!i&&ie.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,d.jsx)(ae,{className:(0,a.Z)(ie.toggleIcon,ie.lightToggleIcon)}),(0,d.jsx)(oe,{className:(0,a.Z)(ie.toggleIcon,ie.darkToggleIcon)})]})})}const se=r.memo(le),ue={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function ce(e){let{className:t}=e;const n=(0,k.L)().navbar.style,r=(0,k.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,re.I)();return r?null:(0,d.jsx)(se,{className:t,buttonClassName:"dark"===n?ue.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var de=n(9960),pe=n(4996),fe=n(2263);const me={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};function ge(e){let{className:t,children:n}=e;const o=(0,x.Z)(),{colorMode:i}=(0,re.I)();return(0,d.jsx)(d.Fragment,{children:(o?"dark"===i?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,me.themedComponent,me[`themedComponent--${e}`])});return(0,d.jsx)(r.Fragment,{children:o},e)}))})}function he(e){const{sources:t,className:n,alt:r,...a}=e;return(0,d.jsx)(ge,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,d.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}function ye(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,pe.Z)(t.src),dark:(0,pe.Z)(t.srcDark||t.src)},o=(0,d.jsx)(he,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,d.jsx)("div",{className:r,children:o}):o}function be(e){const{siteConfig:{title:t}}=(0,fe.Z)(),{navbar:{title:n,logo:r}}=(0,k.L)(),{imageClassName:a,titleClassName:o,...i}=e,l=(0,pe.Z)(r?.href||"/"),s=n?"":t,u=r?.alt??s;return(0,d.jsxs)(de.Z,{to:l,...i,...r?.target&&{target:r.target},children:[r&&(0,d.jsx)(ye,{logo:r,alt:u,imageClassName:a}),null!=n&&(0,d.jsx)("b",{className:o,children:n})]})}function ve(){return(0,d.jsx)(be,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function we(){const e=V();return(0,d.jsx)("button",{type:"button","aria-label":(0,s.I)({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,d.jsx)(L,{color:"var(--ifm-color-emphasis-600)"})})}function ke(){return(0,d.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,d.jsx)(ve,{}),(0,d.jsx)(ce,{className:"margin-right--md"}),(0,d.jsx)(we,{})]})}var xe=n(3919);function Se(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}const Ee={iconExternalLink:"iconExternalLink_nPIU"};function Ce(e){let{width:t=13.5,height:n=13.5}=e;return(0,d.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:Ee.iconExternalLink,children:(0,d.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"})})}function _e(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const c=(0,pe.Z)(r),p=(0,pe.Z)(t),f=(0,pe.Z)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,xe.Z)(a),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,d.jsxs)(d.Fragment,{children:[o,m&&(0,d.jsx)(Ce,{...l&&{width:12,height:12}})]})};return a?(0,d.jsx)(de.Z,{href:s?f:a,...u,...g}):(0,d.jsx)(de.Z,{to:c,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?Se(n,t.pathname):t.pathname.startsWith(p)},...u,...g})}function Te(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,d.jsx)(_e,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,d.jsx)("li",{children:o}):o}function je(e){let{className:t,isDropdownItem:n,...r}=e;return(0,d.jsx)("li",{className:"menu__list-item",children:(0,d.jsx)(_e,{className:(0,a.Z)("menu__link",t),...r})})}function Le(e){let{mobile:t=!1,position:n,...r}=e;const a=t?je:Te;return(0,d.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var Ae=n(7186);n(723);const Ne={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function Re(e,t){return e.some((e=>function(e,t){return!!function(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}(e.to,t)||!!Se(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function Pe(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&c(!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,d.jsxs)("div",{ref:s,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,d.jsx)(_e,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,d.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(ut,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function Oe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,fe.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),c=Re(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,Ae.u)({initialState:()=>!c});return(0,r.useEffect)((()=>{c&&m(!c)}),[u,c,m]),(0,d.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,d.jsx)(_e,{role:"button",className:(0,a.Z)(Ne.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,d.jsx)(Ae.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(ut,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function De(e){let{mobile:t=!1,...n}=e;const r=t?Oe:Pe;return(0,d.jsx)(r,{...n})}var Ie=n(4711);function Fe(e){let{width:t=20,height:n=20,...r}=e;return(0,d.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,d.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 Me="iconLanguage_nlXk";var ze=n(1875);const Be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function $e(e){let{children:t,className:n}=e;return(0,d.jsx)("div",{className:(0,a.Z)(n,Be.navbarSearchContainer),children:t})}const Ue="default";function qe(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,fe.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const He=e=>e.versions.find((e=>e.isLast));function Ze(e,t){const n=function(e,t){const n=He(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,l.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),r=n?.docs.find((e=>!!(0,l.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:r,alternateDocVersions:r?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(r.id):{}}}const Ge={},Ve=()=>qe("docusaurus-plugin-content-docs")??Ge,We=e=>function(e,t,n){void 0===t&&(t=Ue),void 0===n&&(n={});const r=qe(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function Qe(e){const t=We(e),{pathname:n}=(0,l.TH)();return Ze(t,n)}const Ke=e=>`docs-preferred-version-${e}`,Ye={save:(e,t,n)=>{(0,S.WA)(Ke(e),{persistence:t}).set(n)},read:(e,t)=>(0,S.WA)(Ke(e),{persistence:t}).get(),clear:(e,t)=>{(0,S.WA)(Ke(e),{persistence:t}).del()}},Xe=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const Je=r.createContext(null);function et(){const e=Ve(),t=(0,k.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,o]=(0,r.useState)((()=>Xe(n)));(0,r.useEffect)((()=>{o(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=Ye.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(Ye.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){Ye.save(e,t,n),o((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function tt(e){let{children:t}=e;const n=et();return(0,d.jsx)(Je.Provider,{value:n,children:t})}function nt(){const e=(0,r.useContext)(Je);if(!e)throw new u.i6("DocsPreferredVersionContextProvider");return e}function rt(e){void 0===e&&(e=Ue);const t=We(e),[n,a]=nt(),{preferredVersionName:o}=n[e];return{preferredVersion:t.versions.find((e=>e.name===o))??null,savePreferredVersionName:(0,r.useCallback)((t=>{a.savePreferredVersion(e,t)}),[a,e])}}function at(e){return Array.from(new Set(e))}const ot=!!Ve;function it(e){const{activeVersion:t}=Qe(e),{preferredVersion:n}=rt(e),a=function(e){const t=We(e);return He(t)}(e);return(0,r.useMemo)((()=>at([t,n,a].filter(Boolean))),[t,n,a])}const lt=e=>e.docs.find((t=>t.id===e.mainDocId));const st={default:Le,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:c}}=(0,fe.Z)(),p=(0,Ie.l)(),{search:f,hash:m}=(0,l.TH)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:c[e].label,lang:c[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[i].label;return(0,d.jsx)(De,{...o,mobile:t,label:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(Fe,{className:Me}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,d.jsx)($e,{className:n,children:(0,d.jsx)(ze.Z,{})})},dropdown:De,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,d.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=Qe(a),l=function(e,t){const n=it(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- ${at(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}(t,a),s=i?.path===l?.path;return null===l||l.unlisted&&!s?null:(0,d.jsx)(Le,{exact:!0,...o,isActive:()=>s||!!i?.sidebar&&i.sidebar===l.sidebar,label:n??l.id,to:l.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=Qe(a),l=function(e,t){const n=it(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])}(t,a).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,d.jsx)(Le,{exact:!0,...o,isActive:()=>i?.sidebar===t,label:n??l.label,to:l.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=it(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,d.jsx)(Le,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:c}=(0,l.TH)(),p=Qe(n),f=We(n).versions,{savePreferredVersionName:m}=rt(n),g=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??lt(e);return{label:e.label,to:`${t.path}${u}${c}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],h=it(n)[0],y=t&&g.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,b=t&&g.length>1?void 0:lt(h).path;return g.length<=1?(0,d.jsx)(Le,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,d.jsx)(De,{...i,mobile:t,label:y,to:b,items:g,isActive:r?()=>!1:void 0})}};function ut(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=st[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,d.jsx)(a,{...n})}function ct(){const e=V(),t=(0,k.L)().navbar.items;return(0,d.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(ut,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function dt(e){return(0,d.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,d.jsx)(s.Z,{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 pt(){const e=0===(0,k.L)().navbar.items.length,t=te();return(0,d.jsxs)(d.Fragment,{children:[!e&&(0,d.jsx)(dt,{onClick:()=>t.hide()}),t.content]})}function ft(){const e=V();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,d.jsx)(ne,{header:(0,d.jsx)(ke,{}),primaryMenu:(0,d.jsx)(ct,{}),secondaryMenu:(0,d.jsx)(pt,{})}):null}const mt={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function gt(e){return(0,d.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function ht(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,k.L)(),o=V(),{navbarRef:i,isNavbarVisible:l}=Y(n);return(0,d.jsxs)("nav",{ref:i,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[mt.navbarHideable,!l&&mt.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":o.shown}),children:[t,(0,d.jsx)(gt,{onClick:o.toggle}),(0,d.jsx)(ft,{})]})}var yt=n(8780);const bt={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function vt(e){return(0,d.jsx)("button",{type:"button",...e,children:(0,d.jsx)(s.Z,{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 wt(e){let{error:t}=e;const n=(0,yt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,d.jsx)("p",{className:bt.errorBoundaryError,children:n})}class kt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const xt="right";function St(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,d.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,d.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Et(){const{toggle:e,shown:t}=V();return(0,d.jsx)("button",{onClick:e,"aria-label":(0,s.I)({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,d.jsx)(St,{})})}const Ct={colorModeToggle:"colorModeToggle_DEke"};function _t(e){let{items:t}=e;return(0,d.jsx)(d.Fragment,{children:t.map(((e,t)=>(0,d.jsx)(kt,{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,d.jsx)(ut,{...e})},t)))})}function Tt(e){let{left:t,right:n}=e;return(0,d.jsxs)("div",{className:"navbar__inner",children:[(0,d.jsx)("div",{className:"navbar__items",children:t}),(0,d.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function jt(){const e=V(),t=(0,k.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??xt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,d.jsx)(Tt,{left:(0,d.jsxs)(d.Fragment,{children:[!e.disabled&&(0,d.jsx)(Et,{}),(0,d.jsx)(ve,{}),(0,d.jsx)(_t,{items:n})]}),right:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(_t,{items:r}),(0,d.jsx)(ce,{className:Ct.colorModeToggle}),!a&&(0,d.jsx)($e,{children:(0,d.jsx)(ze.Z,{})})]})})}function Lt(){return(0,d.jsx)(ht,{children:(0,d.jsx)(jt,{})})}function At(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,pe.Z)(n),s=(0,pe.Z)(r,{forcePrependBaseUrl:!0});return(0,d.jsxs)(de.Z,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,xe.Z)(r)&&(0,d.jsx)(Ce,{})]})}function Nt(e){let{item:t}=e;return t.html?(0,d.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,d.jsx)("li",{className:"footer__item",children:(0,d.jsx)(At,{item:t})},t.href??t.to)}function Rt(e){let{column:t}=e;return(0,d.jsxs)("div",{className:"col footer__col",children:[(0,d.jsx)("div",{className:"footer__title",children:t.title}),(0,d.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,d.jsx)(Nt,{item:e},t)))})]})}function Pt(e){let{columns:t}=e;return(0,d.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,d.jsx)(Rt,{column:e},t)))})}function Ot(){return(0,d.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Dt(e){let{item:t}=e;return t.html?(0,d.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,d.jsx)(At,{item:t})}function It(e){let{links:t}=e;return(0,d.jsx)("div",{className:"footer__links text--center",children:(0,d.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,d.jsxs)(r.Fragment,{children:[(0,d.jsx)(Dt,{item:e}),t.length!==n+1&&(0,d.jsx)(Ot,{})]},n)))})})}function Ft(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,d.jsx)(Pt,{columns:t}):(0,d.jsx)(It,{links:t})}const Mt={footerLogoLink:"footerLogoLink_BH7S"};function zt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,pe.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,d.jsx)(he,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Bt(e){let{logo:t}=e;return t.href?(0,d.jsx)(de.Z,{href:t.href,className:Mt.footerLogoLink,target:t.target,children:(0,d.jsx)(zt,{logo:t})}):(0,d.jsx)(zt,{logo:t})}function $t(e){let{copyright:t}=e;return(0,d.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ut(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,d.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,d.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,d.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,d.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function qt(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,d.jsx)(Ut,{style:a,links:n&&n.length>0&&(0,d.jsx)(Ft,{links:n}),logo:r&&(0,d.jsx)(Bt,{logo:r}),copyright:t&&(0,d.jsx)($t,{copyright:t})})}const Ht=r.memo(qt),Zt=(0,u.Qc)([re.S,function(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,k.L)(),t=(0,x.Z)(),[n,a]=(0,r.useState)((()=>!!t&&_()));(0,r.useEffect)((()=>{a(_())}),[]);const o=(0,r.useCallback)((()=>{T(!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&&T(!1),!r&&_()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return(0,d.jsx)(j.Provider,{value:n,children:t})},function(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,d.jsx)(W.Provider,{value:n,children:t})},function(e){let{children:t}=e;return ot?(0,d.jsx)(tt,{children:t}):(0,d.jsx)(d.Fragment,{children:t})},i.VC,function(e){let{children:t}=e;return(0,d.jsx)(F,{children:(0,d.jsx)(G,{children:(0,d.jsx)(J,{children:t})})})}]);function Gt(e){let{children:t}=e;return(0,d.jsx)(Zt,{children:t})}var Vt=n(2503);function Wt(e){let{error:t,tryAgain:n}=e;return(0,d.jsx)("main",{className:"container margin-vert--xl",children:(0,d.jsx)("div",{className:"row",children:(0,d.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,d.jsx)(Vt.Z,{as:"h1",className:"hero__title",children:(0,d.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,d.jsx)("div",{className:"margin-vert--lg",children:(0,d.jsx)(vt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,d.jsx)("hr",{}),(0,d.jsx)("div",{className:"margin-vert--md",children:(0,d.jsx)(wt,{error:t})})]})})})}const Qt={mainWrapper:"mainWrapper_z2l0"};function Kt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.t)(),(0,d.jsxs)(Gt,{children:[(0,d.jsx)(i.d,{title:l,description:s}),(0,d.jsx)(w,{}),(0,d.jsx)(D,{}),(0,d.jsx)(Lt,{}),(0,d.jsx)("div",{id:p,className:(0,a.Z)(y.k.wrapper.main,Qt.mainWrapper,r),children:(0,d.jsx)(o.Z,{fallback:e=>(0,d.jsx)(Wt,{...e}),children:t})}),!n&&(0,d.jsx)(Ht,{})]})}},7186:(e,t,n)=>{"use strict";n.d(t,{z:()=>y,u:()=>s});var r=n(7294),a=n(412),o=n(469);var i=n(5893);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=function(){const t=e.scrollHeight;return{transition:`height ${a?.duration??p(t)}ms ${a?.easing??l}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(r(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{r()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.Z.canUseDOM)return e?u:c}function g(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:l,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,i.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),l?.(n))},className:s,children:a})}function h(e){let{collapsed:t,...n}=e;const[a,l]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.Z)((()=>{t||l(!0)}),[t]),(0,o.Z)((()=>{a&&u(t)}),[a,t]),a?(0,i.jsx)(g,{...n,collapsed:s}):null}function y(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,i.jsx)(r,{...n})}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668),s=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.Z.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.L)(),[a,o]=(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:a=!0}=r;t?(o(t),a&&g(t)):(o(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(a))}),[a]),(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:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>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:{}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),a=n(512),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.Z,{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,a.Z)(i,t);return(0,c.jsxs)(p.Provider,{value:l,children:[(0,c.jsx)(o.Z,{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 o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>c,Ql:()=>u,i6:()=>s,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{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,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(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=o(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),a({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),a({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),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),u=(0,o.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}`}}}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(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[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,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(a,o)}},4143:(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]}},8780: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 a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>_,ob:()=>f,PP:()=>j,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);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,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!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,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,g(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},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(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={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]||a}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 a=f(n);a&&a!==m&&e(t,a,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,a,o,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,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;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 a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}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=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{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)*a(Math.random()*t,.1,.95)),t=a(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 a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),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,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[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===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],g=n[2],h=n[3],y=n[4],b=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,C=y||b;r.push({name:h||o++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(E)+"]+?"})}}return i{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"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(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(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(m+f.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642: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 a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}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;a(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 y in d)if(!(y in c))for(var b in f(y))if(b in c){p[y]=!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,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}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},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,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:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n