diff --git a/404.html b/404.html index 659b113..2e4ccea 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page Not Found | Tech Notes - - + +
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/assets/js/04d962f6.3a319360.js b/assets/js/04d962f6.3a319360.js new file mode 100644 index 0000000..78cfc1d --- /dev/null +++ b/assets/js/04d962f6.3a319360.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[513],{3905:(e,A,t)=>{t.d(A,{Zo:()=>s,kt:()=>f});var o=t(7294);function a(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function n(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);A&&(o=o.filter((function(A){return Object.getOwnPropertyDescriptor(e,A).enumerable}))),t.push.apply(t,o)}return t}function r(e){for(var A=1;A=0||(a[t]=e[t]);return a}(e,A);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=o.createContext({}),l=function(e){var A=o.useContext(i),t=A;return e&&(t="function"==typeof e?e(A):r(r({},A),e)),t},s=function(e){var A=l(e.components);return o.createElement(i.Provider,{value:A},e.children)},c={inlineCode:"code",wrapper:function(e){var A=e.children;return o.createElement(o.Fragment,{},A)}},d=o.forwardRef((function(e,A){var t=e.components,a=e.mdxType,n=e.originalType,i=e.parentName,s=g(e,["components","mdxType","originalType","parentName"]),d=l(t),f=a,u=d["".concat(i,".").concat(f)]||d[f]||c[f]||n;return t?o.createElement(u,r(r({ref:A},s),{},{components:t})):o.createElement(u,r({ref:A},s))}));function f(e,A){var t=arguments,a=A&&A.mdxType;if("string"==typeof e||a){var n=t.length,r=new Array(n);r[0]=d;var g={};for(var i in A)hasOwnProperty.call(A,i)&&(g[i]=A[i]);g.originalType=e,g.mdxType="string"==typeof e?e:a,r[1]=g;for(var l=2;l{t.r(A),t.d(A,{assets:()=>i,contentTitle:()=>r,default:()=>c,frontMatter:()=>n,metadata:()=>g,toc:()=>l});var o=t(3117),a=(t(7294),t(3905));const n={authors:"alzafacon"},r="Does melting ice really cause sea levels to rise?",g={permalink:"/blog/2022/11/01/Melting_Ice",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md",source:"@site/blog/2022-11-01-Melting_Ice/index.md",title:"Does melting ice really cause sea levels to rise?",description:"I saw a documentary that claimed melting polar ice caps are causing sea levels",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[],readingTime:2.04,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Plumbing: Connect 2 pipes with 4 elbows",permalink:"/blog/2024/08/10/Four_Elbows"},nextItem:{title:"Python Quine",permalink:"/blog/2022/01/05/Python_Quine"}},i={authorsImageUrls:[void 0]},l=[{value:"Simplifying assumptions",id:"simplifying-assumptions",level:2},{value:"Free body diagram",id:"free-body-diagram",level:2},{value:"Common sense",id:"common-sense",level:2},{value:"Back to saltwater",id:"back-to-saltwater",level:2}],s={toc:l};function c(e){let{components:A,...n}=e;return(0,a.kt)("wrapper",(0,o.Z)({},s,n,{components:A,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"I saw a documentary that claimed melting polar ice caps are causing sea levels\nto rise. Something was fishy about that claim so I made some simplifying\nassumptions, drew a free body diagram and started doing algebra. I won't\nreproduce the algebra here because it turns out there is a common sense way to\nreach the same conclusion."),(0,a.kt)("h2",{id:"simplifying-assumptions"},"Simplifying assumptions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"No saltwater"),(0,a.kt)("li",{parentName:"ul"},"Ice is pure water"),(0,a.kt)("li",{parentName:"ul"},"Ice is free-floating"),(0,a.kt)("li",{parentName:"ul"},"No condensation"),(0,a.kt)("li",{parentName:"ul"},"No evaporation")),(0,a.kt)("h2",{id:"free-body-diagram"},"Free body diagram"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"free body diagram",src:t(454).Z,width:"500",height:"500"})),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"not drawn to scale")),(0,a.kt)("h2",{id:"common-sense"},"Common sense"),(0,a.kt)("p",null,"Since the system is in equilibrium the buoyancy force (red) is equal in\nmagnitude to the gravitational force (blue). "),(0,a.kt)("p",null,"Under the force of gravity the ice will displace some volume of water. ",(0,a.kt)("inlineCode",{parentName:"p"},"The mass\nof the displaced volume of water must be equal to the mass of the ice causing\nthat water to be displaced.")," Therefore, the water from the melted ice has the\nsame volume as the water originally displaced! The water level will not change!"),(0,a.kt)("p",null,"Wait a minute! How do we know that ",(0,a.kt)("inlineCode",{parentName:"p"},"The mass of the displaced volume of water\nmust be equal to the mass of the ice causing that water to be displaced."),"?\nWell, picture this: gravity is applying to a body of water. Pushing against the\nwater causes an equal-magnitude and opposite-direction reaction. The more water\nis displaced the greater reaction force. You are pushing against gravity!"),(0,a.kt)("p",null,"This is the buoyancy force!"),(0,a.kt)("p",null,"The force an object can exert due to gravity on a body of water is determined by\nits mass. That object will sink if the force exerted by the object is greater\nthan the buoyant force. In other words: if the mass of the object is greater\nthan the mass of the object's volume in water then the object sinks. "),(0,a.kt)("p",null,"If the mass of an object is less than the mass of the object's volume in\nwater... then the object floats."),(0,a.kt)("p",null,"In other words, objects denser than water sink, objects less dense than water\nfloat."),(0,a.kt)("h2",{id:"back-to-saltwater"},"Back to saltwater"),(0,a.kt)("p",null,"In the previous discussion the medium of floatation was the same as the object\nof displacement. In other words: ice (frozen H2O) is floating in water (liquid\nH2O). Obviously, once the ice melts it's all water with the same properties, including density."),(0,a.kt)("p",null,"So what happens to the fluid level when ice (frozen H2O) floating in saltwater\nmelts?"),(0,a.kt)("p",null,"I leave this as an exercise for the reader."))}c.isMDXComponent=!0},454:(e,A,t)=>{t.d(A,{Z:()=>o});const o="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/04d962f6.8e28f97c.js b/assets/js/04d962f6.8e28f97c.js deleted file mode 100644 index c74ff72..0000000 --- a/assets/js/04d962f6.8e28f97c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[513],{3905:(A,e,t)=>{t.d(e,{Zo:()=>s,kt:()=>f});var o=t(7294);function a(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function n(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(A);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable}))),t.push.apply(t,o)}return t}function r(A){for(var e=1;e=0||(a[t]=A[t]);return a}(A,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(A);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(A,t)&&(a[t]=A[t])}return a}var i=o.createContext({}),l=function(A){var e=o.useContext(i),t=e;return A&&(t="function"==typeof A?A(e):r(r({},e),A)),t},s=function(A){var e=l(A.components);return o.createElement(i.Provider,{value:e},A.children)},c={inlineCode:"code",wrapper:function(A){var e=A.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(A,e){var t=A.components,a=A.mdxType,n=A.originalType,i=A.parentName,s=g(A,["components","mdxType","originalType","parentName"]),d=l(t),f=a,u=d["".concat(i,".").concat(f)]||d[f]||c[f]||n;return t?o.createElement(u,r(r({ref:e},s),{},{components:t})):o.createElement(u,r({ref:e},s))}));function f(A,e){var t=arguments,a=e&&e.mdxType;if("string"==typeof A||a){var n=t.length,r=new Array(n);r[0]=d;var g={};for(var i in e)hasOwnProperty.call(e,i)&&(g[i]=e[i]);g.originalType=A,g.mdxType="string"==typeof A?A:a,r[1]=g;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>r,default:()=>c,frontMatter:()=>n,metadata:()=>g,toc:()=>l});var o=t(3117),a=(t(7294),t(3905));const n={authors:"alzafacon"},r="Does melting ice really cause sea levels to rise?",g={permalink:"/blog/2022/11/01/Melting_Ice",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md",source:"@site/blog/2022-11-01-Melting_Ice/index.md",title:"Does melting ice really cause sea levels to rise?",description:"I saw a documentary that claimed melting polar ice caps are causing sea levels",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[],readingTime:2.04,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},nextItem:{title:"Python Quine",permalink:"/blog/2022/01/05/Python_Quine"}},i={authorsImageUrls:[void 0]},l=[{value:"Simplifying assumptions",id:"simplifying-assumptions",level:2},{value:"Free body diagram",id:"free-body-diagram",level:2},{value:"Common sense",id:"common-sense",level:2},{value:"Back to saltwater",id:"back-to-saltwater",level:2}],s={toc:l};function c(A){let{components:e,...n}=A;return(0,a.kt)("wrapper",(0,o.Z)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"I saw a documentary that claimed melting polar ice caps are causing sea levels\nto rise. Something was fishy about that claim so I made some simplifying\nassumptions, drew a free body diagram and started doing algebra. I won't\nreproduce the algebra here because it turns out there is a common sense way to\nreach the same conclusion."),(0,a.kt)("h2",{id:"simplifying-assumptions"},"Simplifying assumptions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"No saltwater"),(0,a.kt)("li",{parentName:"ul"},"Ice is pure water"),(0,a.kt)("li",{parentName:"ul"},"Ice is free-floating"),(0,a.kt)("li",{parentName:"ul"},"No condensation"),(0,a.kt)("li",{parentName:"ul"},"No evaporation")),(0,a.kt)("h2",{id:"free-body-diagram"},"Free body diagram"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"free body diagram",src:t(454).Z,width:"500",height:"500"})),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"not drawn to scale")),(0,a.kt)("h2",{id:"common-sense"},"Common sense"),(0,a.kt)("p",null,"Since the system is in equilibrium the buoyancy force (red) is equal in\nmagnitude to the gravitational force (blue). "),(0,a.kt)("p",null,"Under the force of gravity the ice will displace some volume of water. ",(0,a.kt)("inlineCode",{parentName:"p"},"The mass\nof the displaced volume of water must be equal to the mass of the ice causing\nthat water to be displaced.")," Therefore, the water from the melted ice has the\nsame volume as the water originally displaced! The water level will not change!"),(0,a.kt)("p",null,"Wait a minute! How do we know that ",(0,a.kt)("inlineCode",{parentName:"p"},"The mass of the displaced volume of water\nmust be equal to the mass of the ice causing that water to be displaced."),"?\nWell, picture this: gravity is applying to a body of water. Pushing against the\nwater causes an equal-magnitude and opposite-direction reaction. The more water\nis displaced the greater reaction force. You are pushing against gravity!"),(0,a.kt)("p",null,"This is the buoyancy force!"),(0,a.kt)("p",null,"The force an object can exert due to gravity on a body of water is determined by\nits mass. That object will sink if the force exerted by the object is greater\nthan the buoyant force. In other words: if the mass of the object is greater\nthan the mass of the object's volume in water then the object sinks. "),(0,a.kt)("p",null,"If the mass of an object is less than the mass of the object's volume in\nwater... then the object floats."),(0,a.kt)("p",null,"In other words, objects denser than water sink, objects less dense than water\nfloat."),(0,a.kt)("h2",{id:"back-to-saltwater"},"Back to saltwater"),(0,a.kt)("p",null,"In the previous discussion the medium of floatation was the same as the object\nof displacement. In other words: ice (frozen H2O) is floating in water (liquid\nH2O). Obviously, once the ice melts it's all water with the same properties, including density."),(0,a.kt)("p",null,"So what happens to the fluid level when ice (frozen H2O) floating in saltwater\nmelts?"),(0,a.kt)("p",null,"I leave this as an exercise for the reader."))}c.isMDXComponent=!0},454:(A,e,t)=>{t.d(e,{Z:()=>o});const o="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/2d25e629.24578709.js b/assets/js/2d25e629.ff35c3e1.js similarity index 62% rename from assets/js/2d25e629.24578709.js rename to assets/js/2d25e629.ff35c3e1.js index 3a31488..8fa38cc 100644 --- a/assets/js/2d25e629.24578709.js +++ b/assets/js/2d25e629.ff35c3e1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[32],{3422:(e,t,a)=>{a.d(t,{a:()=>i});var o=a(7294),n=a(4792);const i=e=>{let{language:t,text:a}=e;const[i,r]=(0,o.useState)(!1);return o.createElement("div",{onClick:()=>r(!0)},o.createElement(n.Z,{language:t},i?a:"Click to reveal"))}},1936:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=a(3117),n=(a(7294),a(3905)),i=a(3422);const r={authors:"alzafacon"},l="Python Quine",s={permalink:"/blog/2022/01/05/Python_Quine",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx",source:"@site/blog/2022-01-05-Python_Quine.mdx",title:"Python Quine",description:"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.",date:"2022-01-05T00:00:00.000Z",formattedDate:"January 5, 2022",tags:[],readingTime:.275,hasTruncateMarker:!1,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"},nextItem:{title:"Useless Machine with LEGO Technic",permalink:"/blog/2021/12/16/Lego_Useless_Machine"}},c={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"A quine is a computer program which takes no input and produces a copy of its own source code as its only output."),(0,n.kt)("p",null,"I first read about this kind of program in an ACM article but I can't remember which one."),(0,n.kt)("p",null,"Here is my solution"),(0,n.kt)(i.a,{language:"python",text:"print('print({}.format({}))'.format('print({}.format({}))'))",mdxType:"ClickToReveal"}))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[32],{3422:(e,t,a)=>{a.d(t,{a:()=>i});var o=a(7294),n=a(4792);const i=e=>{let{language:t,text:a}=e;const[i,r]=(0,o.useState)(!1);return o.createElement("div",{onClick:()=>r(!0)},o.createElement(n.Z,{language:t},i?a:"Click to reveal"))}},1936:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var o=a(3117),n=(a(7294),a(3905)),i=a(3422);const r={authors:"alzafacon"},s="Python Quine",l={permalink:"/blog/2022/01/05/Python_Quine",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx",source:"@site/blog/2022-01-05-Python_Quine.mdx",title:"Python Quine",description:"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.",date:"2022-01-05T00:00:00.000Z",formattedDate:"January 5, 2022",tags:[],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"},nextItem:{title:"Useless Machine with LEGO Technic",permalink:"/blog/2021/12/16/Lego_Useless_Machine"}},u={authorsImageUrls:[void 0]},c=[],p={toc:c};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"A quine is a computer program which takes no input and produces a copy of its own source code as its only output."),(0,n.kt)("p",null,"I first read about this kind of program in the ACM article ",(0,n.kt)("a",{parentName:"p",href:"https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf"},"Reflections on Trusting Trust (August 1984 Volume 27 Number 8 Page 761)"),"."),(0,n.kt)("p",null,"Here is my solution"),(0,n.kt)(i.a,{language:"python",text:"print('print({}.format({}))'.format('print({}.format({}))'))",mdxType:"ClickToReveal"}))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/814f3328.d0526dc3.js b/assets/js/814f3328.d0526dc3.js deleted file mode 100644 index 4fe09f2..0000000 --- a/assets/js/814f3328.d0526dc3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Does melting ice really cause sea levels to rise?","permalink":"/blog/2022/11/01/Melting_Ice"},{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"},{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"},{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"},{"title":"DigiLog: Digital Zoom for a Single Hand Analog Timepiece","permalink":"/blog/2021/12/05/DigiLog"}]}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.fe878519.js b/assets/js/814f3328.fe878519.js new file mode 100644 index 0000000..caa8582 --- /dev/null +++ b/assets/js/814f3328.fe878519.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Plumbing: Connect 2 pipes with 4 elbows","permalink":"/blog/2024/08/10/Four_Elbows"},{"title":"Does melting ice really cause sea levels to rise?","permalink":"/blog/2022/11/01/Melting_Ice"},{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"},{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"},{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"}]}')}}]); \ No newline at end of file diff --git a/assets/js/9554848d.8e531736.js b/assets/js/9554848d.8e531736.js new file mode 100644 index 0000000..18ddef1 --- /dev/null +++ b/assets/js/9554848d.8e531736.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[579],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),f=s(r),d=o,m=f["".concat(c,".").concat(d)]||f[d]||u[d]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(3117),o=(r(7294),r(3905));const a={authors:"alzafacon"},i="Plumbing: Connect 2 pipes with 4 elbows",l={permalink:"/blog/2024/08/10/Four_Elbows",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2024-08-10-Four_Elbows/index.md",source:"@site/blog/2024-08-10-Four_Elbows/index.md",title:"Plumbing: Connect 2 pipes with 4 elbows",description:"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way.",date:"2024-08-10T00:00:00.000Z",formattedDate:"August 10, 2024",tags:[],readingTime:3.215,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},nextItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"}},c={authorsImageUrls:[void 0]},s=[],p={toc:s};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way."),(0,o.kt)("p",null,"A professional recommended using 4 elbows! Genius! The joint is assembled by sliding the top part into the bottom 2 elbows. Instead of having to dig out the pipes enough to bend the pipes to fit couplers on each end."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"}," _____ _____\n | __====__ |\n | |2 3| |\n || ||\n || ||\n\n____ _| |1 4| |_ _____\n____|____| |____|_____\n\nfig. 1\n")),(0,o.kt)("p",null,"But can this technique be applied even if the pipes are skewed?"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f0366e5.a34a569b.js b/assets/js/9f0366e5.a34a569b.js new file mode 100644 index 0000000..877708f --- /dev/null +++ b/assets/js/9f0366e5.a34a569b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[383],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),h=s(n),f=i,d=h["".concat(p,".").concat(f)]||h[f]||u[f]||r;return n?a.createElement(d,o(o({ref:t},c),{},{components:n})):a.createElement(d,o({ref:t},c))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:i,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=n(3117),i=(n(7294),n(3905));const r={authors:"alzafacon"},o="Plumbing: Connect 2 pipes with 4 elbows",l={permalink:"/blog/2024/08/10/Four_Elbows",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2024-08-10-Four_Elbows/index.md",source:"@site/blog/2024-08-10-Four_Elbows/index.md",title:"Plumbing: Connect 2 pipes with 4 elbows",description:"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way.",date:"2024-08-10T00:00:00.000Z",formattedDate:"August 10, 2024",tags:[],readingTime:3.215,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},nextItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"}},p={authorsImageUrls:[void 0]},s=[],c={toc:s};function u(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way."),(0,i.kt)("p",null,"A professional recommended using 4 elbows! Genius! The joint is assembled by sliding the top part into the bottom 2 elbows. Instead of having to dig out the pipes enough to bend the pipes to fit couplers on each end."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"}," _____ _____\n | __====__ |\n | |2 3| |\n || ||\n || ||\n\n____ _| |1 4| |_ _____\n____|____| |____|_____\n\nfig. 1\n")),(0,i.kt)("p",null,"But can this technique be applied even if the pipes are skewed?"),(0,i.kt)("p",null,"Of course I want to generalize. I'm just the typical math aficionado. I will attempt a proof by construction."),(0,i.kt)("p",null,"The critical feature of the 4 elbow joint is that 2 vertical pipes shown below must be parallel (so they can be slid into place)."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"}," _____ _____\n | __====__ |\n | |2 3| |\n || ||\n || ||\n\nfig. 2\n")),(0,i.kt)("p",null,"Here is a simplified drawing with conventional mathematical notation. Pretend it is in three dimensions."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"}," C D\n *_________*\n | |\n | |\n<-*-----* *-----*->\n A' A B B' \n\nfig. 3 \n")),(0,i.kt)("p",null,"Let there be a plane at point A perpendicular to ->AA' called P."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'This plane includes all points in the rays that a 90 degree "elbow" at point A could draw when rotated.')),(0,i.kt)("p",null,"Now, let there also be a plane at point B perpendicular to ->BB' called Q."),(0,i.kt)("p",null,'These planes are useful because they get us closer to identifying the orientation of the "vertical" pipes in fig. 2. The reason for this is that each plane contains all of the possible orientations of the pipes independently.'),(0,i.kt)("p",null,"So all we need to find is a line in plane P through point A that is parallel to a line in plane Q through point B. Then it is trivial to select a point C and draw a perpendicular line to a point D as illustrated in fig. 3."),(0,i.kt)("p",null,"Notice that the planes may either intersect or not. "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"In the case that the planes do not intersect"),(0,i.kt)("p",{parentName:"li"},'This means the planes are parallel. Which means any line we chose through point A will have a parallel line through point B. So there are infinitely many lines to select and an infinite choice of points C and D. In other words there are infinitely many ways to orient the fitting in fig. 2 by rotating it around the pipes. The length of the "vertical" pipes is the other infinite choice.')),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"In the case that the planes intersect"),(0,i.kt)("p",{parentName:"li"},'We can take the line of intersection -call it X- and draw a line parallel to X in plane P through point A. Likewise we can draw a line parallel to X in plane Q through point B.\nBy transitivity the line in plane P through point A is parallel to the line in plane Q through point B.\nThis time we only have one pair of parallel lines instead of an infinite choice. But there are 2 orientations for the "vertical" pipes as shown in fig. 4 and fig. 5.\nThe length of the "vertical" pipes is still an infinite choice.'))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"}," * \n / \\\n / \\\n<---* \\\n * \n /\n /\n *------\x3e\n\nfig. 4\n")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"<---* \n / \n / \n * \n \\ \n \\ *------\x3e\n \\ /\n \\ /\n *\n \nfig. 5\n")),(0,i.kt)("p",null,"Yes! The 4 elbow technique can always work... in you have enough space."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a8cfb0e0.bb2eff03.js b/assets/js/a8cfb0e0.e41bfddd.js similarity index 62% rename from assets/js/a8cfb0e0.bb2eff03.js rename to assets/js/a8cfb0e0.e41bfddd.js index 1c48172..ece9497 100644 --- a/assets/js/a8cfb0e0.bb2eff03.js +++ b/assets/js/a8cfb0e0.e41bfddd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[393],{3422:(e,t,a)=>{a.d(t,{a:()=>i});var o=a(7294),n=a(4792);const i=e=>{let{language:t,text:a}=e;const[i,r]=(0,o.useState)(!1);return o.createElement("div",{onClick:()=>r(!0)},o.createElement(n.Z,{language:t},i?a:"Click to reveal"))}},7317:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=a(3117),n=(a(7294),a(3905)),i=a(3422);const r={authors:"alzafacon"},l="Python Quine",s={permalink:"/blog/2022/01/05/Python_Quine",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx",source:"@site/blog/2022-01-05-Python_Quine.mdx",title:"Python Quine",description:"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.",date:"2022-01-05T00:00:00.000Z",formattedDate:"January 5, 2022",tags:[],readingTime:.275,hasTruncateMarker:!1,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"},nextItem:{title:"Useless Machine with LEGO Technic",permalink:"/blog/2021/12/16/Lego_Useless_Machine"}},c={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"A quine is a computer program which takes no input and produces a copy of its own source code as its only output."),(0,n.kt)("p",null,"I first read about this kind of program in an ACM article but I can't remember which one."),(0,n.kt)("p",null,"Here is my solution"),(0,n.kt)(i.a,{language:"python",text:"print('print({}.format({}))'.format('print({}.format({}))'))",mdxType:"ClickToReveal"}))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[393],{3422:(e,t,a)=>{a.d(t,{a:()=>i});var o=a(7294),n=a(4792);const i=e=>{let{language:t,text:a}=e;const[i,r]=(0,o.useState)(!1);return o.createElement("div",{onClick:()=>r(!0)},o.createElement(n.Z,{language:t},i?a:"Click to reveal"))}},7317:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var o=a(3117),n=(a(7294),a(3905)),i=a(3422);const r={authors:"alzafacon"},s="Python Quine",l={permalink:"/blog/2022/01/05/Python_Quine",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx",source:"@site/blog/2022-01-05-Python_Quine.mdx",title:"Python Quine",description:"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.",date:"2022-01-05T00:00:00.000Z",formattedDate:"January 5, 2022",tags:[],readingTime:.305,hasTruncateMarker:!1,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Does melting ice really cause sea levels to rise?",permalink:"/blog/2022/11/01/Melting_Ice"},nextItem:{title:"Useless Machine with LEGO Technic",permalink:"/blog/2021/12/16/Lego_Useless_Machine"}},u={authorsImageUrls:[void 0]},c=[],p={toc:c};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"A quine is a computer program which takes no input and produces a copy of its own source code as its only output."),(0,n.kt)("p",null,"I first read about this kind of program in the ACM article ",(0,n.kt)("a",{parentName:"p",href:"https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf"},"Reflections on Trusting Trust (August 1984 Volume 27 Number 8 Page 761)"),"."),(0,n.kt)("p",null,"Here is my solution"),(0,n.kt)(i.a,{language:"python",text:"print('print({}.format({}))'.format('print({}.format({}))'))",mdxType:"ClickToReveal"}))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2b675dd.0d8439dc.js b/assets/js/b2b675dd.ed47c171.js similarity index 77% rename from assets/js/b2b675dd.0d8439dc.js rename to assets/js/b2b675dd.ed47c171.js index 9aecfb0..708782e 100644 --- a/assets/js/b2b675dd.0d8439dc.js +++ b/assets/js/b2b675dd.ed47c171.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[533],{8017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[533],{8017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.375270ff.js b/assets/js/b2f554cd.375270ff.js new file mode 100644 index 0000000..958363b --- /dev/null +++ b/assets/js/b2f554cd.375270ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2024/08/10/Four_Elbows","metadata":{"permalink":"/blog/2024/08/10/Four_Elbows","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2024-08-10-Four_Elbows/index.md","source":"@site/blog/2024-08-10-Four_Elbows/index.md","title":"Plumbing: Connect 2 pipes with 4 elbows","description":"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way.","date":"2024-08-10T00:00:00.000Z","formattedDate":"August 10, 2024","tags":[],"readingTime":3.215,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"nextItem":{"title":"Does melting ice really cause sea levels to rise?","permalink":"/blog/2022/11/01/Melting_Ice"}},"content":"The underground PVC water pipes outside my home are frequently cracking or leaking at the joints. After making several repairs I turned to reddit for an easier way.\\n\\nA professional recommended using 4 elbows! Genius! The joint is assembled by sliding the top part into the bottom 2 elbows. Instead of having to dig out the pipes enough to bend the pipes to fit couplers on each end.\\n\\n```\\n _____ _____\\n | __====__ |\\n | |2 3| |\\n || ||\\n || ||\\n\\n____ _| |1 4| |_ _____\\n____|____| |____|_____\\n\\nfig. 1\\n```\\n\\nBut can this technique be applied even if the pipes are skewed?\\n\\n\x3c!--truncate--\x3e\\n\\nOf course I want to generalize. I\'m just the typical math aficionado. I will attempt a proof by construction.\\n\\nThe critical feature of the 4 elbow joint is that 2 vertical pipes shown below must be parallel (so they can be slid into place).\\n\\n```\\n _____ _____\\n | __====__ |\\n | |2 3| |\\n || ||\\n || ||\\n\\nfig. 2\\n```\\n\\n\\nHere is a simplified drawing with conventional mathematical notation. Pretend it is in three dimensions.\\n\\n```\\n C D\\n *_________*\\n | |\\n | |\\n<-*-----* *-----*->\\n A\' A B B\' \\n\\nfig. 3 \\n```\\n\\nLet there be a plane at point A perpendicular to ->AA\' called P.\\n\\n- This plane includes all points in the rays that a 90 degree \\"elbow\\" at point A could draw when rotated.\\n\\nNow, let there also be a plane at point B perpendicular to ->BB\' called Q.\\n\\nThese planes are useful because they get us closer to identifying the orientation of the \\"vertical\\" pipes in fig. 2. The reason for this is that each plane contains all of the possible orientations of the pipes independently.\\n\\nSo all we need to find is a line in plane P through point A that is parallel to a line in plane Q through point B. Then it is trivial to select a point C and draw a perpendicular line to a point D as illustrated in fig. 3.\\n\\nNotice that the planes may either intersect or not. \\n\\n1. In the case that the planes do not intersect\\n\\n This means the planes are parallel. Which means any line we chose through point A will have a parallel line through point B. So there are infinitely many lines to select and an infinite choice of points C and D. In other words there are infinitely many ways to orient the fitting in fig. 2 by rotating it around the pipes. The length of the \\"vertical\\" pipes is the other infinite choice.\\n\\n2. In the case that the planes intersect\\n\\n We can take the line of intersection -call it X- and draw a line parallel to X in plane P through point A. Likewise we can draw a line parallel to X in plane Q through point B.\\n By transitivity the line in plane P through point A is parallel to the line in plane Q through point B.\\n This time we only have one pair of parallel lines instead of an infinite choice. But there are 2 orientations for the \\"vertical\\" pipes as shown in fig. 4 and fig. 5.\\n The length of the \\"vertical\\" pipes is still an infinite choice.\\n\\n\\n\\n```\\n * \\n / \\\\\\n / \\\\\\n<---* \\\\\\n * \\n /\\n /\\n *------\x3e\\n\\nfig. 4\\n```\\n\\n\\n``` \\n<---* \\n / \\n / \\n * \\n \\\\ \\n \\\\ *------\x3e\\n \\\\ /\\n \\\\ /\\n *\\n \\nfig. 5\\n```\\n\\nYes! The 4 elbow technique can always work... in you have enough space.\\n\\n\\n\x3c!-- Another advantage is that the joints will be straight and without any flexing to weaken the joints.\\n\\n\\nWhen pipes are skewed:\\n\\nLong pipes can get curved when they are laid and buried. So when a cracked section is cut out the remaining ends are slightly skewed.\\n\\nJoining pipes on a grade change will also cause the pipes to be skewed. --\x3e"},{"id":"/2022/11/01/Melting_Ice","metadata":{"permalink":"/blog/2022/11/01/Melting_Ice","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md","source":"@site/blog/2022-11-01-Melting_Ice/index.md","title":"Does melting ice really cause sea levels to rise?","description":"I saw a documentary that claimed melting polar ice caps are causing sea levels","date":"2022-11-01T00:00:00.000Z","formattedDate":"November 1, 2022","tags":[],"readingTime":2.04,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Plumbing: Connect 2 pipes with 4 elbows","permalink":"/blog/2024/08/10/Four_Elbows"},"nextItem":{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"}},"content":"I saw a documentary that claimed melting polar ice caps are causing sea levels\\nto rise. Something was fishy about that claim so I made some simplifying\\nassumptions, drew a free body diagram and started doing algebra. I won\'t\\nreproduce the algebra here because it turns out there is a common sense way to\\nreach the same conclusion.\\n\\n\x3c!--truncate--\x3e\\n\\n## Simplifying assumptions\\n- No saltwater\\n- Ice is pure water\\n- Ice is free-floating\\n- No condensation\\n- No evaporation\\n\\n## Free body diagram\\n![free body diagram](./free_body_diagram_floating_ice.png)\\n> not drawn to scale\\n\\n## Common sense\\nSince the system is in equilibrium the buoyancy force (red) is equal in\\nmagnitude to the gravitational force (blue). \\n\\nUnder the force of gravity the ice will displace some volume of water. `The mass\\nof the displaced volume of water must be equal to the mass of the ice causing\\nthat water to be displaced.` Therefore, the water from the melted ice has the\\nsame volume as the water originally displaced! The water level will not change!\\n\\nWait a minute! How do we know that `The mass of the displaced volume of water\\nmust be equal to the mass of the ice causing that water to be displaced.`?\\nWell, picture this: gravity is applying to a body of water. Pushing against the\\nwater causes an equal-magnitude and opposite-direction reaction. The more water\\nis displaced the greater reaction force. You are pushing against gravity!\\n\\nThis is the buoyancy force!\\n\\nThe force an object can exert due to gravity on a body of water is determined by\\nits mass. That object will sink if the force exerted by the object is greater\\nthan the buoyant force. In other words: if the mass of the object is greater\\nthan the mass of the object\'s volume in water then the object sinks. \\n\\nIf the mass of an object is less than the mass of the object\'s volume in \\nwater... then the object floats.\\n\\nIn other words, objects denser than water sink, objects less dense than water\\nfloat.\\n\\n## Back to saltwater\\n\\nIn the previous discussion the medium of floatation was the same as the object\\nof displacement. In other words: ice (frozen H2O) is floating in water (liquid \\nH2O). Obviously, once the ice melts it\'s all water with the same properties, including density.\\n\\nSo what happens to the fluid level when ice (frozen H2O) floating in saltwater\\nmelts?\\n\\nI leave this as an exercise for the reader."},{"id":"/2022/01/05/Python_Quine","metadata":{"permalink":"/blog/2022/01/05/Python_Quine","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx","source":"@site/blog/2022-01-05-Python_Quine.mdx","title":"Python Quine","description":"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.","date":"2022-01-05T00:00:00.000Z","formattedDate":"January 5, 2022","tags":[],"readingTime":0.305,"hasTruncateMarker":false,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Does melting ice really cause sea levels to rise?","permalink":"/blog/2022/11/01/Melting_Ice"},"nextItem":{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"}},"content":"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.\\n\\nI first read about this kind of program in the ACM article [Reflections on Trusting Trust (August 1984 Volume 27 Number 8 Page 761)](https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf).\\n\\nHere is my solution\\n\\nimport { ClickToReveal } from \'../src/components/ClickToReveal/ClickToReveal.js\';\\n\\n"},{"id":"/2021/12/16/Lego_Useless_Machine","metadata":{"permalink":"/blog/2021/12/16/Lego_Useless_Machine","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-16-Lego_Useless_Machine/index.md","source":"@site/blog/2021-12-16-Lego_Useless_Machine/index.md","title":"Useless Machine with LEGO Technic","description":"The purpose of a Useless Machine is to turn itself off when activated. Kits and built examples are available for purchase. While researching I found LEGO models but without kits or instructions.","date":"2021-12-16T00:00:00.000Z","formattedDate":"December 16, 2021","tags":[],"readingTime":0.715,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"},"nextItem":{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"}},"content":"The purpose of a Useless Machine is to turn itself off when activated. Kits and built examples are available for purchase. While researching I found LEGO models but without kits or instructions.\\n\\nChallenge accepted!\\n\\n\x3c!--truncate--\x3e\\n\\nI completed the model in March of 2017 and revised it today.\\n\\nWithout a parts list or instructions I decided to reverse engineer the device from the following video:\\n[[011] Lego Technic - Useless Machine](https://www.youtube.com/watch?v=HAk-rhvZe2w)\\n\\nI created a model using LEGO Digital Designer (LDD) before buying the parts. [Download the LXF model](./UselessMachine.lxf)\\n\\nUsing LDD I generated a PDF with building instructions and a parts list at the end.\\n[Download the PDF instructions](./UselessMachineInstructions.pdf)\\n\\n> NOTE: The model and instructions do not include the LEGO Wind Up MOTOR 6x5x3! It was not available in the LDD.\\n\\nHere is the model at the final step of assembly\\n\\n![Final Step from instructions](./Step84.png)"},{"id":"/2021/12/06/GitHub_Pages","metadata":{"permalink":"/blog/2021/12/06/GitHub_Pages","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-06-GitHub_Pages.md","source":"@site/blog/2021-12-06-GitHub_Pages.md","title":"Custom Apex Domain for GitHub Pages","description":"I\'ll explain how I setup the DNS records for an apex domain (fidelcoria.com) with a redirect from www.fidelcoria.com to fidelcoria.com.","date":"2021-12-06T00:00:00.000Z","formattedDate":"December 6, 2021","tags":[],"readingTime":1.815,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"},"nextItem":{"title":"DigiLog: Digital Zoom for a Single Hand Analog Timepiece","permalink":"/blog/2021/12/05/DigiLog"}},"content":"I\'ll explain how I setup the DNS records for an apex domain (fidelcoria.com) with a redirect from www.fidelcoria.com to fidelcoria.com.\\n\\nIf you\'re new to GitHub Pages visit [pages.github.com](https://pages.github.com/) to learn the basics.\\n\\n\x3c!--truncate--\x3e\\n\\n## TL;DR\\n\\nHere are the DNS records. The host values for the DNS records were the tricky part to figure out. \\n\\n```\\nALIAS\\nHost: @\\nTarget: alzafacon.github.io.\\n```\\n```\\nCNAME\\nHost: www\\nTarget: alzafacon.github.io.\\n```\\n\\n## The devil is in the details\\n\\nI find the official documentation to be unclear or confusing in some parts, but I don\'t blame them. The internet is complicated and the GitHub writers are trying to make the docs helpful even for beginners.\\n\\nThe long and short of it is that the steps (for apex domain with https and www) are in the docs [here](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain). Unfortunately the DNS instructions are confusing.\\n\\nHere are the steps I had to follow:\\n\\n- Enter your desired custom domain in the repo settings page (**before** creating any DNS entries)\\n\\n I used fidelcoria.com (without the leading `www.`)\\n\\n Doing this will configure a CNAME file on your GitHub Pages branch\\n\\n- Create an ALIAS record via your DNS provider\\n\\n The docs say \\"`To create an ALIAS or ANAME record, point your apex domain to the default domain for your site`\\".\\n\\n The `apex domain` did not work. Instead I had to use `@`, which is used to represent the \\"bare domain\\" in DNS records.\\n \\n ```\\n ALIAS\\n Host: @\\n Target: alzafacon.github.io.\\n ``` \\n\\n- Create a CNAME record via your DNS provider\\n \\n The docs say \\"`Navigate to your DNS provider and create a CNAME record that points www.example.com to the default domain for your site`\\"\\n\\n `www.fidelcoria.com` did not work. Instead I had to use `www`.\\n ```\\n CNAME\\n Host: www\\n Target: alzafacon.github.io.\\n ```\\n\\nDNS changes can take up to 24 hours to propagate. This makes it hard to tell if something is wrong or just needs more time.\\n\\nI learned the best approach for me was to get informed, decide what I want, make a plan, try it out, observe patiently, then iterate.\\n\\n## Extra DNS setup\\n\\nI also setup alzafacon.com to redirect to fidelcoria.com\\n\\n```\\nURL Redirect\\nHost: @\\nDestination URL: https://fidelcoria.com\\nUnmasked\\n```"},{"id":"/2021/12/05/DigiLog","metadata":{"permalink":"/blog/2021/12/05/DigiLog","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-05-DigiLog/index.mdx","source":"@site/blog/2021-12-05-DigiLog/index.mdx","title":"DigiLog: Digital Zoom for a Single Hand Analog Timepiece","description":"Clocks and watches originally had a single hand. Obviously, this made it hard to tell time accurately. Until the minute hand was invented.","date":"2021-12-05T00:00:00.000Z","formattedDate":"December 5, 2021","tags":[],"readingTime":3.335,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"}},"content":"Clocks and watches originally had a single hand. Obviously, this made it hard to tell time accurately. Until the minute hand was invented.\\n\\nI came up with another way to read the minutes without a minute hand. Since the position of the hour hand past the hour marking implies the minutes... zooming into the hour hand shows minutes at a better resolution. For example, at 6:30 the tick marks will show the hour hand to be half way between 6 and 7. While at 7:05 you can zoom in to see the tick marks showing 5 minutes past 7.\\n\\nimport { FreestyleClock } from \'../../src/components/clock/FreestyleClock.js\';\\n\\n
\\n \\n
\\n\\n\x3c!--truncate--\x3e\\n\\n## The Math\\n\\n| | Definitions |\\n| - | - |\\n| Viewport | circular window of fixed size |\\n| `D` | viewport diameter\\n| `R` | viewport radius |\\n| Clock face | the numbers, tick markings, and the hour hand together |\\n| `r` | distance between viewport center and midpoint of chord to be zoomed (chord offset) |\\n| `tau` | time \\"angle\\" in radians of hour hand from polar axis (3 o\'clock) |\\n| `a` | length of the chord |\\n| `S` | scale factor |\\n\\n\\"chord\\n\\n> SOURCE: Weisstein, Eric W. \\"Chord.\\" From MathWorld--A Wolfram Web Resource. https://mathworld.wolfram.com/Chord.html\\n\\nZooming the clock face is simply done by enlarging a circular segment centered where the hour hand is pointing. In the image above the time would be 1:30.\\n\\nI take the chord and enlarge it to be congruent with the view port diameter. So to scale the chord from `a` to `D` the whole clock face must be scaled by `D/a` (i.e. `a(D/a) = D`). \\n\\nThe chord is determined when the user chooses `r`. We need an expression for the value of `a` given `r`.\\n\\nEasy! Pythagorean theorem: \\n\\n R^2 = r^2 + (a/2)^2\\n a/2 = sqrt(R^2 - r^2)\\n a = 2sqrt(R^2 - r^2)\\n\\nSo now we have the scale factor:\\n\\n S = D/a \\n = 2R / (2sqrt(R^2 - r^2))\\n = R / sqrt(R^2 - r^2)\\n\\nNext we need to slide the midpoint of the chord onto the center of the viewport.\\n\\nIt might help to think of the midpoint in polar coordinates as (`Sr`, `tau`). Yes, I scaled by S. With a simple change of coordinates we have:\\n\\n dx = Sr cos(tau)\\n dy = Sr sin(tau)\\n\\n## Course and Fine adjustment of r\\n\\nUsing a slider to change `r` linearly is a bad user experience. At low zoom the clock face moves very little and at high zoom the clock face moves too much. If you graph the scale function It is easy to see why this happens. `S(r)` grows quickly and is also concave up.\\n\\nIt would be better for the value of r to change more quickly at low zoom (course adjustment) and more slowly at high zoom (fine adjustment).\\n\\nThis can be done by letting the user input a zoom value rather than let them input `r` directly. Now we can map the zoom value any way we want with a function `f(z) = r`.\\n\\nI would like to take `z` to be in `[0,1]` and `f(1) = p`, where `0 < p < 1` and `pR` is the max chord-offset allowed. `f` should be monotonically increasing, concave down, with an inflection point somewhere around 0.1, and preferably asymptotic to `1`. Notice `f` will be multiplied by `R` to give the final chord offset.\\n\\nA good candidate function is `1 - 1/(z + 1)`.\\n\\nSo I\'ll start applying transformations to get the desired properties.\\n\\n f(1) = p = 1 - 1/(kz + 1)\\n ... algebra ...\\n k = p / (1-p)\\n \\n f(z) = 1 - 1/(pz/(1-p) + 1)\\n ... algebra ...\\n = 1 - (1-p)/(pz + 1 - p)\\n ... algebra ...\\n = pz / (pz + 1 - p)\\n\\nFinally to get the actual chord offset we take `Rf(z)`. \\n\\nThat\'s all folks!"}]}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.7043990d.js b/assets/js/b2f554cd.7043990d.js deleted file mode 100644 index ed06d1b..0000000 --- a/assets/js/b2f554cd.7043990d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/11/01/Melting_Ice","metadata":{"permalink":"/blog/2022/11/01/Melting_Ice","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md","source":"@site/blog/2022-11-01-Melting_Ice/index.md","title":"Does melting ice really cause sea levels to rise?","description":"I saw a documentary that claimed melting polar ice caps are causing sea levels","date":"2022-11-01T00:00:00.000Z","formattedDate":"November 1, 2022","tags":[],"readingTime":2.04,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"nextItem":{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"}},"content":"I saw a documentary that claimed melting polar ice caps are causing sea levels\\nto rise. Something was fishy about that claim so I made some simplifying\\nassumptions, drew a free body diagram and started doing algebra. I won\'t\\nreproduce the algebra here because it turns out there is a common sense way to\\nreach the same conclusion.\\n\\n\x3c!--truncate--\x3e\\n\\n## Simplifying assumptions\\n- No saltwater\\n- Ice is pure water\\n- Ice is free-floating\\n- No condensation\\n- No evaporation\\n\\n## Free body diagram\\n![free body diagram](./free_body_diagram_floating_ice.png)\\n> not drawn to scale\\n\\n## Common sense\\nSince the system is in equilibrium the buoyancy force (red) is equal in\\nmagnitude to the gravitational force (blue). \\n\\nUnder the force of gravity the ice will displace some volume of water. `The mass\\nof the displaced volume of water must be equal to the mass of the ice causing\\nthat water to be displaced.` Therefore, the water from the melted ice has the\\nsame volume as the water originally displaced! The water level will not change!\\n\\nWait a minute! How do we know that `The mass of the displaced volume of water\\nmust be equal to the mass of the ice causing that water to be displaced.`?\\nWell, picture this: gravity is applying to a body of water. Pushing against the\\nwater causes an equal-magnitude and opposite-direction reaction. The more water\\nis displaced the greater reaction force. You are pushing against gravity!\\n\\nThis is the buoyancy force!\\n\\nThe force an object can exert due to gravity on a body of water is determined by\\nits mass. That object will sink if the force exerted by the object is greater\\nthan the buoyant force. In other words: if the mass of the object is greater\\nthan the mass of the object\'s volume in water then the object sinks. \\n\\nIf the mass of an object is less than the mass of the object\'s volume in \\nwater... then the object floats.\\n\\nIn other words, objects denser than water sink, objects less dense than water\\nfloat.\\n\\n## Back to saltwater\\n\\nIn the previous discussion the medium of floatation was the same as the object\\nof displacement. In other words: ice (frozen H2O) is floating in water (liquid \\nH2O). Obviously, once the ice melts it\'s all water with the same properties, including density.\\n\\nSo what happens to the fluid level when ice (frozen H2O) floating in saltwater\\nmelts?\\n\\nI leave this as an exercise for the reader."},{"id":"/2022/01/05/Python_Quine","metadata":{"permalink":"/blog/2022/01/05/Python_Quine","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-01-05-Python_Quine.mdx","source":"@site/blog/2022-01-05-Python_Quine.mdx","title":"Python Quine","description":"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.","date":"2022-01-05T00:00:00.000Z","formattedDate":"January 5, 2022","tags":[],"readingTime":0.275,"hasTruncateMarker":false,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Does melting ice really cause sea levels to rise?","permalink":"/blog/2022/11/01/Melting_Ice"},"nextItem":{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"}},"content":"A quine is a computer program which takes no input and produces a copy of its own source code as its only output.\\n\\nI first read about this kind of program in an ACM article but I can\'t remember which one.\\n\\nHere is my solution\\n\\nimport { ClickToReveal } from \'../src/components/ClickToReveal/ClickToReveal.js\';\\n\\n"},{"id":"/2021/12/16/Lego_Useless_Machine","metadata":{"permalink":"/blog/2021/12/16/Lego_Useless_Machine","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-16-Lego_Useless_Machine/index.md","source":"@site/blog/2021-12-16-Lego_Useless_Machine/index.md","title":"Useless Machine with LEGO Technic","description":"The purpose of a Useless Machine is to turn itself off when activated. Kits and built examples are available for purchase. While researching I found LEGO models but without kits or instructions.","date":"2021-12-16T00:00:00.000Z","formattedDate":"December 16, 2021","tags":[],"readingTime":0.715,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Python Quine","permalink":"/blog/2022/01/05/Python_Quine"},"nextItem":{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"}},"content":"The purpose of a Useless Machine is to turn itself off when activated. Kits and built examples are available for purchase. While researching I found LEGO models but without kits or instructions.\\n\\nChallenge accepted!\\n\\n\x3c!--truncate--\x3e\\n\\nI completed the model in March of 2017 and revised it today.\\n\\nWithout a parts list or instructions I decided to reverse engineer the device from the following video:\\n[[011] Lego Technic - Useless Machine](https://www.youtube.com/watch?v=HAk-rhvZe2w)\\n\\nI created a model using LEGO Digital Designer (LDD) before buying the parts. [Download the LXF model](./UselessMachine.lxf)\\n\\nUsing LDD I generated a PDF with building instructions and a parts list at the end.\\n[Download the PDF instructions](./UselessMachineInstructions.pdf)\\n\\n> NOTE: The model and instructions do not include the LEGO Wind Up MOTOR 6x5x3! It was not available in the LDD.\\n\\nHere is the model at the final step of assembly\\n\\n![Final Step from instructions](./Step84.png)"},{"id":"/2021/12/06/GitHub_Pages","metadata":{"permalink":"/blog/2021/12/06/GitHub_Pages","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-06-GitHub_Pages.md","source":"@site/blog/2021-12-06-GitHub_Pages.md","title":"Custom Apex Domain for GitHub Pages","description":"I\'ll explain how I setup the DNS records for an apex domain (fidelcoria.com) with a redirect from www.fidelcoria.com to fidelcoria.com.","date":"2021-12-06T00:00:00.000Z","formattedDate":"December 6, 2021","tags":[],"readingTime":1.815,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Useless Machine with LEGO Technic","permalink":"/blog/2021/12/16/Lego_Useless_Machine"},"nextItem":{"title":"DigiLog: Digital Zoom for a Single Hand Analog Timepiece","permalink":"/blog/2021/12/05/DigiLog"}},"content":"I\'ll explain how I setup the DNS records for an apex domain (fidelcoria.com) with a redirect from www.fidelcoria.com to fidelcoria.com.\\n\\nIf you\'re new to GitHub Pages visit [pages.github.com](https://pages.github.com/) to learn the basics.\\n\\n\x3c!--truncate--\x3e\\n\\n## TL;DR\\n\\nHere are the DNS records. The host values for the DNS records were the tricky part to figure out. \\n\\n```\\nALIAS\\nHost: @\\nTarget: alzafacon.github.io.\\n```\\n```\\nCNAME\\nHost: www\\nTarget: alzafacon.github.io.\\n```\\n\\n## The devil is in the details\\n\\nI find the official documentation to be unclear or confusing in some parts, but I don\'t blame them. The internet is complicated and the GitHub writers are trying to make the docs helpful even for beginners.\\n\\nThe long and short of it is that the steps (for apex domain with https and www) are in the docs [here](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain). Unfortunately the DNS instructions are confusing.\\n\\nHere are the steps I had to follow:\\n\\n- Enter your desired custom domain in the repo settings page (**before** creating any DNS entries)\\n\\n I used fidelcoria.com (without the leading `www.`)\\n\\n Doing this will configure a CNAME file on your GitHub Pages branch\\n\\n- Create an ALIAS record via your DNS provider\\n\\n The docs say \\"`To create an ALIAS or ANAME record, point your apex domain to the default domain for your site`\\".\\n\\n The `apex domain` did not work. Instead I had to use `@`, which is used to represent the \\"bare domain\\" in DNS records.\\n \\n ```\\n ALIAS\\n Host: @\\n Target: alzafacon.github.io.\\n ``` \\n\\n- Create a CNAME record via your DNS provider\\n \\n The docs say \\"`Navigate to your DNS provider and create a CNAME record that points www.example.com to the default domain for your site`\\"\\n\\n `www.fidelcoria.com` did not work. Instead I had to use `www`.\\n ```\\n CNAME\\n Host: www\\n Target: alzafacon.github.io.\\n ```\\n\\nDNS changes can take up to 24 hours to propagate. This makes it hard to tell if something is wrong or just needs more time.\\n\\nI learned the best approach for me was to get informed, decide what I want, make a plan, try it out, observe patiently, then iterate.\\n\\n## Extra DNS setup\\n\\nI also setup alzafacon.com to redirect to fidelcoria.com\\n\\n```\\nURL Redirect\\nHost: @\\nDestination URL: https://fidelcoria.com\\nUnmasked\\n```"},{"id":"/2021/12/05/DigiLog","metadata":{"permalink":"/blog/2021/12/05/DigiLog","editUrl":"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2021-12-05-DigiLog/index.mdx","source":"@site/blog/2021-12-05-DigiLog/index.mdx","title":"DigiLog: Digital Zoom for a Single Hand Analog Timepiece","description":"Clocks and watches originally had a single hand. Obviously, this made it hard to tell time accurately. Until the minute hand was invented.","date":"2021-12-05T00:00:00.000Z","formattedDate":"December 5, 2021","tags":[],"readingTime":3.335,"hasTruncateMarker":true,"authors":[{"name":"Fidel Coria","title":"Software Engineer","url":"https://fidelcoria.com","imageURL":"https://github.com/alzafacon.png","key":"alzafacon"}],"frontMatter":{"authors":"alzafacon"},"prevItem":{"title":"Custom Apex Domain for GitHub Pages","permalink":"/blog/2021/12/06/GitHub_Pages"}},"content":"Clocks and watches originally had a single hand. Obviously, this made it hard to tell time accurately. Until the minute hand was invented.\\n\\nI came up with another way to read the minutes without a minute hand. Since the position of the hour hand past the hour marking implies the minutes... zooming into the hour hand shows minutes at a better resolution. For example, at 6:30 the tick marks will show the hour hand to be half way between 6 and 7. While at 7:05 you can zoom in to see the tick marks showing 5 minutes past 7.\\n\\nimport { FreestyleClock } from \'../../src/components/clock/FreestyleClock.js\';\\n\\n
\\n \\n
\\n\\n\x3c!--truncate--\x3e\\n\\n## The Math\\n\\n| | Definitions |\\n| - | - |\\n| Viewport | circular window of fixed size |\\n| `D` | viewport diameter\\n| `R` | viewport radius |\\n| Clock face | the numbers, tick markings, and the hour hand together |\\n| `r` | distance between viewport center and midpoint of chord to be zoomed (chord offset) |\\n| `tau` | time \\"angle\\" in radians of hour hand from polar axis (3 o\'clock) |\\n| `a` | length of the chord |\\n| `S` | scale factor |\\n\\n\\"chord\\n\\n> SOURCE: Weisstein, Eric W. \\"Chord.\\" From MathWorld--A Wolfram Web Resource. https://mathworld.wolfram.com/Chord.html\\n\\nZooming the clock face is simply done by enlarging a circular segment centered where the hour hand is pointing. In the image above the time would be 1:30.\\n\\nI take the chord and enlarge it to be congruent with the view port diameter. So to scale the chord from `a` to `D` the whole clock face must be scaled by `D/a` (i.e. `a(D/a) = D`). \\n\\nThe chord is determined when the user chooses `r`. We need an expression for the value of `a` given `r`.\\n\\nEasy! Pythagorean theorem: \\n\\n R^2 = r^2 + (a/2)^2\\n a/2 = sqrt(R^2 - r^2)\\n a = 2sqrt(R^2 - r^2)\\n\\nSo now we have the scale factor:\\n\\n S = D/a \\n = 2R / (2sqrt(R^2 - r^2))\\n = R / sqrt(R^2 - r^2)\\n\\nNext we need to slide the midpoint of the chord onto the center of the viewport.\\n\\nIt might help to think of the midpoint in polar coordinates as (`Sr`, `tau`). Yes, I scaled by S. With a simple change of coordinates we have:\\n\\n dx = Sr cos(tau)\\n dy = Sr sin(tau)\\n\\n## Course and Fine adjustment of r\\n\\nUsing a slider to change `r` linearly is a bad user experience. At low zoom the clock face moves very little and at high zoom the clock face moves too much. If you graph the scale function It is easy to see why this happens. `S(r)` grows quickly and is also concave up.\\n\\nIt would be better for the value of r to change more quickly at low zoom (course adjustment) and more slowly at high zoom (fine adjustment).\\n\\nThis can be done by letting the user input a zoom value rather than let them input `r` directly. Now we can map the zoom value any way we want with a function `f(z) = r`.\\n\\nI would like to take `z` to be in `[0,1]` and `f(1) = p`, where `0 < p < 1` and `pR` is the max chord-offset allowed. `f` should be monotonically increasing, concave down, with an inflection point somewhere around 0.1, and preferably asymptotic to `1`. Notice `f` will be multiplied by `R` to give the final chord offset.\\n\\nA good candidate function is `1 - 1/(z + 1)`.\\n\\nSo I\'ll start applying transformations to get the desired properties.\\n\\n f(1) = p = 1 - 1/(kz + 1)\\n ... algebra ...\\n k = p / (1-p)\\n \\n f(z) = 1 - 1/(pz/(1-p) + 1)\\n ... algebra ...\\n = 1 - (1-p)/(pz + 1 - p)\\n ... algebra ...\\n = pz / (pz + 1 - p)\\n\\nFinally to get the actual chord offset we take `Rf(z)`. \\n\\nThat\'s all folks!"}]}')}}]); \ No newline at end of file diff --git a/assets/js/d9daf2c9.6c1c3a7f.js b/assets/js/d9daf2c9.c0c0d775.js similarity index 57% rename from assets/js/d9daf2c9.6c1c3a7f.js rename to assets/js/d9daf2c9.c0c0d775.js index 4992811..7e17d6b 100644 --- a/assets/js/d9daf2c9.6c1c3a7f.js +++ b/assets/js/d9daf2c9.c0c0d775.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[902],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),m=s(r),f=a,d=m["".concat(l,".").concat(f)]||m[f]||p[f]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(3117),a=(r(7294),r(3905));const o={authors:"alzafacon"},i="Does melting ice really cause sea levels to rise?",c={permalink:"/blog/2022/11/01/Melting_Ice",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md",source:"@site/blog/2022-11-01-Melting_Ice/index.md",title:"Does melting ice really cause sea levels to rise?",description:"I saw a documentary that claimed melting polar ice caps are causing sea levels",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[],readingTime:2.04,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},nextItem:{title:"Python Quine",permalink:"/blog/2022/01/05/Python_Quine"}},l={authorsImageUrls:[void 0]},s=[],u={toc:s};function p(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"I saw a documentary that claimed melting polar ice caps are causing sea levels\nto rise. Something was fishy about that claim so I made some simplifying\nassumptions, drew a free body diagram and started doing algebra. I won't\nreproduce the algebra here because it turns out there is a common sense way to\nreach the same conclusion."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[902],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),f=a,g=m["".concat(c,".").concat(f)]||m[f]||p[f]||o;return r?n.createElement(g,i(i({ref:t},u),{},{components:r})):n.createElement(g,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(3117),a=(r(7294),r(3905));const o={authors:"alzafacon"},i="Does melting ice really cause sea levels to rise?",l={permalink:"/blog/2022/11/01/Melting_Ice",editUrl:"https://github.com/alzafacon/alzafacon.github.io/edit/main/website/blog/blog/2022-11-01-Melting_Ice/index.md",source:"@site/blog/2022-11-01-Melting_Ice/index.md",title:"Does melting ice really cause sea levels to rise?",description:"I saw a documentary that claimed melting polar ice caps are causing sea levels",date:"2022-11-01T00:00:00.000Z",formattedDate:"November 1, 2022",tags:[],readingTime:2.04,hasTruncateMarker:!0,authors:[{name:"Fidel Coria",title:"Software Engineer",url:"https://fidelcoria.com",imageURL:"https://github.com/alzafacon.png",key:"alzafacon"}],frontMatter:{authors:"alzafacon"},prevItem:{title:"Plumbing: Connect 2 pipes with 4 elbows",permalink:"/blog/2024/08/10/Four_Elbows"},nextItem:{title:"Python Quine",permalink:"/blog/2022/01/05/Python_Quine"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function p(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"I saw a documentary that claimed melting polar ice caps are causing sea levels\nto rise. Something was fishy about that claim so I made some simplifying\nassumptions, drew a free body diagram and started doing algebra. I won't\nreproduce the algebra here because it turns out there is a common sense way to\nreach the same conclusion."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.5b489c74.js b/assets/js/main.5b489c74.js deleted file mode 100644 index 1fe2dad..0000000 --- a/assets/js/main.5b489c74.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.5b489c74.js.LICENSE.txt */ -(self.webpackChunkfidelcoria=self.webpackChunkfidelcoria||[]).push([[179],{4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(b){if(!(_=o(k,S,e,v))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=S;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(S=L-=E.value.length,E.value instanceof a)continue;for(var P=E;P!==t.tail&&(Ld.reach&&(d.reach=D);var I=E.prev;if(N&&(I=s(t,I,N),S+=N.length),u(t,I,C),E=s(t,I,new a(f,g?r.tokenize(R,g):R,y,R)),O&&s(t,E,O),C>1){var M={cause:f+","+m,reach:D};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],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],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(3117),o=n(8356),i=n.n(o),l=n(6887);const s={"04d962f6":[()=>n.e(513).then(n.bind(n,655)),"@site/blog/2022-11-01-Melting_Ice/index.md",655],"1f391b9e":[()=>Promise.all([n.e(532),n.e(690),n.e(85)]).then(n.bind(n,3502)),"@theme/MDXPage",3502],"25e050aa":[()=>n.e(796).then(n.bind(n,1242)),"@site/src/pages/phrases.md",1242],"2d25e629":[()=>Promise.all([n.e(532),n.e(690),n.e(32)]).then(n.bind(n,1936)),"@site/blog/2022-01-05-Python_Quine.mdx?truncated=true",1936],"4c38a669":[()=>n.e(561).then(n.bind(n,6496)),"@site/blog/2021-12-06-GitHub_Pages.md?truncated=true",6496],"4ff2cc1c":[()=>n.e(357).then(n.bind(n,605)),"@site/blog/2021-12-06-GitHub_Pages.md",605],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"63792a14":[()=>Promise.all([n.e(532),n.e(735),n.e(661)]).then(n.bind(n,4945)),"@site/blog/2021-12-05-DigiLog/index.mdx",4945],"6b9716ed":[()=>n.e(775).then(n.bind(n,4036)),"@site/blog/2021-12-16-Lego_Useless_Machine/index.md",4036],"814f3328":[()=>n.e(535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"8d3e48fa":[()=>n.e(625).then(n.t.bind(n,5745,19)),"/home/runner/work/alzafacon.github.io/alzafacon.github.io/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"9e4087bc":[()=>n.e(608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(690),n.e(189),n.e(89)]).then(n.bind(n,3269)),"@theme/BlogListPage",3269],a8cfb0e0:[()=>Promise.all([n.e(532),n.e(690),n.e(393)]).then(n.bind(n,7317)),"@site/blog/2022-01-05-Python_Quine.mdx",7317],ab1657fd:[()=>Promise.all([n.e(532),n.e(735),n.e(789)]).then(n.bind(n,1275)),"@site/blog/2021-12-05-DigiLog/index.mdx?truncated=true",1275],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],bd6dae92:[()=>n.e(454).then(n.bind(n,901)),"@site/src/pages/toolbox.md",901],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(735),n.e(195)]).then(n.bind(n,470)),"@site/src/pages/index.js",470],ccc49370:[()=>Promise.all([n.e(532),n.e(690),n.e(189),n.e(103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],d2a537ed:[()=>n.e(39).then(n.bind(n,1053)),"@site/blog/2021-12-16-Lego_Useless_Machine/index.md?truncated=true",1053],d9daf2c9:[()=>n.e(902).then(n.bind(n,2491)),"@site/blog/2022-11-01-Melting_Ice/index.md?truncated=true",2491],eb8547fe:[()=>n.e(435).then(n.t.bind(n,4469,19)),"/home/runner/work/alzafacon.github.io/alzafacon.github.io/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("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%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("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"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/blog",component:f("/blog","b70"),exact:!0},{path:"/blog/2021/12/05/DigiLog",component:f("/blog/2021/12/05/DigiLog","51c"),exact:!0},{path:"/blog/2021/12/06/GitHub_Pages",component:f("/blog/2021/12/06/GitHub_Pages","08a"),exact:!0},{path:"/blog/2021/12/16/Lego_Useless_Machine",component:f("/blog/2021/12/16/Lego_Useless_Machine","c0a"),exact:!0},{path:"/blog/2022/01/05/Python_Quine",component:f("/blog/2022/01/05/Python_Quine","384"),exact:!0},{path:"/blog/2022/11/01/Melting_Ice",component:f("/blog/2022/11/01/Melting_Ice","f5c"),exact:!0},{path:"/blog/archive",component:f("/blog/archive","7a5"),exact:!0},{path:"/phrases",component:f("/phrases","3a3"),exact:!0},{path:"/toolbox",component:f("/toolbox","4b2"),exact:!0},{path:"/",component:f("/","09c"),exact:!0},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},8446:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(905),n(3310),n(8320),n(985)];var u=n(723),c=n(6775),d=n(3117);function f(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&&f(e.routes,t,n)),r})),n}function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var m=n(5742),h=n(2263),g=n(4996),v=n(6668),b=n(1944),y=n(4711),w=n(4608);const k="default";var E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,d.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if(f(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const a=(null==(r=t.default)?void 0:r[e])??t[e];return null==a?void 0:a(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1)),n=document.getElementById(e);null==n||n.scrollIntoView()}else window.scrollTo(0,0)}(n),P("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>f(u.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class O extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,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}),N(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 r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const D=O,I="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\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(/{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:I}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(j,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var $=n(4763);function q(){const e=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?r.createElement(c.rs,n,e.map((function(e,n){return r.createElement(c.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,d.Z)({},n,{},t,{route:e})):r.createElement(e.component,(0,d.Z)({},n,t,{route:e}))}})}))):null}(u.Z),t=(0,c.TH)();return r.createElement($.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(_,null),r.createElement(z,null),r.createElement(D,{location:T(t)},e)))))}var G=n(6887);const H=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==o||o.appendChild(a)}))}: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 Z=n(9670);const V=new Set,W=new Set,Y=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Q={prefetch(e){if(!(e=>!Y()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=f(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?H(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!W.has(e))(e)&&(W.add(e),N(e))},K=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=K;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(q,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>c});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":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"}}}'),s={siteConfig:a.default,siteMetadata:l,globalData:{},i18n:o,codeTranslations:i},u=r.createContext(s);function c(e){let{children:t}=e;return r.createElement(u.Provider,{value:s},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(412),o=n(5742),i=n(920);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function s(e){let{error:t,tryAgain:n}=e;return r.createElement(c,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const u=e=>r.createElement(s,e);class c 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??u)(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});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(3117),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){var n;let{isNavLink:f,to:p,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":v,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,d.C)(),S=(0,a.useContext)(c),x=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>x.current));const _=p||m;const C=(0,s.Z)(_),T=null==_?void 0:_.replace("pathname://","");let A=void 0!==T?(L=T,b&&(e=>e.startsWith("/"))(L)?E(L):L):void 0;var L;A&&C&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:w,baseUrl:k}));const P=(0,a.useRef)(!1),R=f?o.OL:o.rU,N=u.Z.canUseIntersectionObserver,O=(0,a.useRef)(),D=()=>{P.current||null==A||(window.docusaurus.preload(A),P.current=!0)};(0,a.useEffect)((()=>(!N&&C&&null!=A&&window.docusaurus.prefetch(A),()=>{N&&O.current&&O.current.disconnect()})),[O,A,N,C]);const I=(null==(n=A)?void 0:n.startsWith("#"))??!1,M=!A||!C||I;return M||v||S.collectLink(A),M?a.createElement("a",(0,r.Z)({ref:x,href:A},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(R,(0,r.Z)({},y,{onMouseEnter:D,onTouchStart:D,innerRef:e=>{x.current=e,N&&e&&C&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),O.current.observe(e))},to:A},f&&{isActive:g,activeClassName:h}))}const p=a.forwardRef(f)},1875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0: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 o=n(7529);function i(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 o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},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:()=>o,Z:()=>i});var r=n(2263),a=n(3919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();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._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,o]=n;const i=r?`${r}.${a}`:a;var l;"object"==typeof(l=o)&&l&&Object.keys(l).length>0?e(o,i):t[i]=o}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(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,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},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(1205),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},920:(e,t,n)=>{"use strict";n.d(t,{Z:()=>qt});var r=n(7294),a=n(4334),o=n(4763),i=n(1944),l=n(3117),s=n(6775),u=n(5999),c=n(902);function d(e){const t=(0,s.TH)(),n=(0,c.D9)(t),a=(0,c.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&a({location:t,previousLocation:n})}),[a,t,n])}const f="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function m(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(f);t&&p(t)}),[]);return d((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,u.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 g(e){const t=e.children??h,{containerRef:n,onClick:a}=m();return r.createElement("div",{ref:n,role:"region","aria-label":h},r.createElement("a",(0,l.Z)({},e,{href:`#${f}`,onClick:a}),t))}var v=n(5281),b=n(4608);const y="skipToContent_fXgn";function w(){return r.createElement(g,{className:y})}var k=n(6668),E=n(2389),S=n(12);const x=(0,S.W)("docusaurus.announcement.dismiss"),_=(0,S.W)("docusaurus.announcement.id"),C=()=>"true"===x.get(),T=e=>x.set(String(e)),A=r.createContext(null);function L(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const P="closeButton_CVFx";function R(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.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",P,e.className)}),r.createElement(L,{width:14,height:14,strokeWidth:3.1}))}const N="content_knG7";function O(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(N,e.className),dangerouslySetInnerHTML:{__html:n}}))}const D="announcementBar_mb4j",I="announcementBarPlaceholder_vyr4",M="announcementBarClose_gvF7",F="announcementBarContent_xLdY";function B(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=function(){const e=(0,r.useContext)(A);if(!e)throw new c.i6("AnnouncementBarProvider");return e}();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:D,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:I}),r.createElement(O,{className:F}),i&&r.createElement(R,{onClick:n,className:M}))}var j=n(3102),z=n(7524);function U(e){!function(e){const t=(0,s.k6)(),n=(0,c.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}const $=r.createContext(void 0);function q(){const e=function(){const e=(0,j.HY)(),{items:t}=(0,k.L)().navbar;return 0===t.length&&!e.component}(),t=(0,z.i)(),n=!e&&"mobile"===t,[a,o]=(0,r.useState)(!1);U((()=>{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=q();return r.createElement($.Provider,{value:n},t)}function H(){const e=r.useContext($);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}var Z=n(412);const V=r.createContext(void 0);function W(){const e=(0,r.useContext)(V);if(null==e)throw new c.i6("ScrollControllerProvider");return e}const Y=()=>Z.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function Q(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}=W(),a=(0,r.useRef)(Y()),o=(0,c.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=Y();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 K=r.createContext(null);function X(e){let{children:t}=e;const n=function(){const e=H(),t=(0,j.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,c.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 r.createElement(K.Provider,{value:n},t)}function J(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function ee(){const e=(0,r.useContext)(K);if(!e)throw new c.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,j.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:J(o)})),[a,o,t])}function te(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=ee();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var ne=n(2949);function re(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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 ae(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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 oe={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function ie(e){let{className:t,value:n,onChange:o}=e;const i=(0,E.Z)(),l=(0,u.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"===n?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(oe.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",oe.toggleButton,!i&&oe.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite"},r.createElement(re,{className:(0,a.Z)(oe.toggleIcon,oe.lightToggleIcon)}),r.createElement(ae,{className:(0,a.Z)(oe.toggleIcon,oe.darkToggleIcon)})))}const le=r.memo(ie);function se(e){let{className:t}=e;const n=(0,k.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,ne.I)();return n?null:r.createElement(le,{className:t,value:a,onChange:o})}var ue=n(9960),ce=n(4996),de=n(2263);const fe={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function pe(e){const t=(0,E.Z)(),{colorMode:n}=(0,ne.I)(),{sources:o,className:i,alt:s,...u}=e,c=t?"dark"===n?["dark"]:["light"]:["light","dark"];return r.createElement(r.Fragment,null,c.map((e=>r.createElement("img",(0,l.Z)({key:e,src:o[e],alt:s,className:(0,a.Z)(fe.themedImage,fe[`themedImage--${e}`],i)},u)))))}function me(e){let{logo:t,alt:n,imageClassName:a}=e;const o={light:(0,ce.Z)(t.src),dark:(0,ce.Z)(t.srcDark||t.src)},i=r.createElement(pe,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return a?r.createElement("div",{className:a},i):i}function he(e){const{siteConfig:{title:t}}=(0,de.Z)(),{navbar:{title:n,logo:a}}=(0,k.L)(),{imageClassName:o,titleClassName:i,...s}=e,u=(0,ce.Z)((null==a?void 0:a.href)||"/"),c=n?"":t,d=(null==a?void 0:a.alt)??c;return r.createElement(ue.Z,(0,l.Z)({to:u},s,(null==a?void 0:a.target)&&{target:a.target}),a&&r.createElement(me,{logo:a,alt:d,imageClassName:o}),null!=n&&r.createElement("b",{className:i},n))}function ge(){return r.createElement(he,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function ve(){const e=H();return r.createElement("button",{type:"button","aria-label":(0,u.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()},r.createElement(L,{color:"var(--ifm-color-emphasis-600)"}))}function be(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(ge,null),r.createElement(se,{className:"margin-right--md"}),r.createElement(ve,null))}var ye=n(3919);function we(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}const ke="iconExternalLink_nPIU";function Ee(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:ke},r.createElement("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 Se(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,ce.Z)(a),p=(0,ce.Z)(t),m=(0,ce.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,ye.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(Ee,u&&{width:12,height:12}))};return o?r.createElement(ue.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(ue.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?we(n,t.pathname):t.pathname.startsWith(p)},d,g))}function xe(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(Se,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function _e(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(Se,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function Ce(e){let{mobile:t=!1,position:n,...a}=e;const o=t?_e:xe;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var Te=n(6043);n(723);function Ae(e,t){return e.some((e=>function(e,t){return!!function(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}(e.to,t)||!!we(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function Le(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(Se,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(it,(0,l.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=u.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function Pe(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,de.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=Ae(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,Te.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(Se,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(Te.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(it,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function Re(e){let{mobile:t=!1,...n}=e;const a=t?Pe:Le;return r.createElement(a,n)}var Ne=n(4711);function Oe(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("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 De="iconLanguage_nlXk";var Ie=n(1875);const Me="searchBox_ZlJk";function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me)},t)}const Be="default";function je(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,de.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const ze=e=>e.versions.find((e=>e.isLast));function Ue(e,t){const n=function(e,t){const n=ze(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,s.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),r=null==n?void 0:n.docs.find((e=>!!(0,s.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 $e={},qe=()=>je("docusaurus-plugin-content-docs")??$e,Ge=e=>function(e,t,n){void 0===t&&(t=Be),void 0===n&&(n={});const r=je(e),a=null==r?void 0: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 He(e){const t=Ge(e),{pathname:n}=(0,s.TH)();return Ue(t,n)}const Ze=e=>`docs-preferred-version-${e}`,Ve=(e,t,n)=>{(0,S.W)(Ze(e),{persistence:t}).set(n)},We=(e,t)=>(0,S.W)(Ze(e),{persistence:t}).get(),Ye=(e,t)=>{(0,S.W)(Ze(e),{persistence:t}).del()};const Qe=r.createContext(null);function Ke(){const e=qe(),t=(0,k.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,o]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{o(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=We(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(Ye(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){Ve(e,t,n),o((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function Xe(e){let{children:t}=e;const n=Ke();return r.createElement(Qe.Provider,{value:n},t)}function Je(){const e=(0,r.useContext)(Qe);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function et(e){void 0===e&&(e=Be);const t=Ge(e),[n,a]=Je(),{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 tt(e){return Array.from(new Set(e))}const nt=!!qe;function rt(e){const{activeVersion:t}=He(e),{preferredVersion:n}=et(e),a=function(e){const t=Ge(e);return ze(t)}(e);return(0,r.useMemo)((()=>tt([t,n,a].filter(Boolean))),[t,n,a])}const at=e=>e.docs.find((t=>t.id===e.mainDocId));const ot={default:Ce,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,de.Z)(),f=(0,Ne.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(Re,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(Oe,{className:De}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(Ie.Z,null))},dropdown:Re,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=He(a),s=function(e,t){const n=rt(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(`DocNavbarItem: 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- ${tt(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}(t,a);return null===s?null:r.createElement(Ce,(0,l.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.path)===s.path||!(null==i||!i.sidebar)&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=He(a),s=function(e,t){const n=rt(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(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(Ce,(0,l.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.sidebar)===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=rt(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(Ce,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=He(n),m=Ge(n).versions,{savePreferredVersionName:h}=et(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??at(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],v=rt(n)[0],b=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):v.label,y=t&&g.length>1?void 0:at(v).path;return g.length<=1?r.createElement(Ce,(0,l.Z)({},c,{mobile:t,label:b,to:y,isActive:a?()=>!1:void 0})):r.createElement(Re,(0,l.Z)({},c,{mobile:t,label:b,to:y,items:g,isActive:a?()=>!1:void 0}))}};function it(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=ot[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function lt(){const e=H(),t=(0,k.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(it,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function st(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.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)"},"\u2190 Back to main menu"))}function ut(){const e=0===(0,k.L)().navbar.items.length,t=ee();return r.createElement(r.Fragment,null,!e&&r.createElement(st,{onClick:()=>t.hide()}),t.content)}function ct(){const e=H();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?r.createElement(te,{header:r.createElement(be,null),primaryMenu:r.createElement(lt,null),secondaryMenu:r.createElement(ut,null)}):null}const dt="navbarHideable_m1mJ",ft="navbarHidden_jGov";function pt(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function mt(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,k.L)(),i=H(),{navbarRef:l,isNavbarVisible:s}=Q(n);return r.createElement("nav",{ref:l,className:(0,a.Z)("navbar","navbar--fixed-top",n&&[dt,!s&&ft],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(pt,{onClick:i.toggle}),r.createElement(ct,null))}function ht(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function gt(){const{toggle:e,shown:t}=H();return r.createElement("button",{onClick:e,"aria-label":(0,u.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"},r.createElement(ht,null))}const vt="colorModeToggle_DEke";function bt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(it,(0,l.Z)({},e,{key:t})))))}function yt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function wt(){const e=H(),t=(0,k.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(yt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(gt,null),r.createElement(ge,null),r.createElement(bt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(bt,{items:a}),r.createElement(se,{className:vt}),!o&&r.createElement(Fe,null,r.createElement(Ie.Z,null)))})}function kt(){return r.createElement(mt,null,r.createElement(wt,null))}function Et(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,ce.Z)(n),c=(0,ce.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(ue.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,ye.Z)(a)&&r.createElement(Ee,null))}function St(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Et,{item:t}))}function xt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(St,{key:t,item:e})))))}function _t(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(xt,{key:t,column:e}))))}function Ct(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Tt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Et,{item:t})}function At(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Tt,{item:e}),t.length!==n+1&&r.createElement(Ct,null))))))}function Lt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(_t,{columns:t}):r.createElement(At,{links:t})}const Pt="footerLogoLink_BH7S";function Rt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ce.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(pe,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Nt(e){let{logo:t}=e;return t.href?r.createElement(ue.Z,{href:t.href,className:Pt,target:t.target},r.createElement(Rt,{logo:t})):r.createElement(Rt,{logo:t})}function Ot(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Dt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function It(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Dt,{style:o,links:n&&n.length>0&&r.createElement(Lt,{links:n}),logo:a&&r.createElement(Nt,{logo:a}),copyright:t&&r.createElement(Ot,{copyright:t})})}const Mt=r.memo(It),Ft="docusaurus.tab.",Bt=r.createContext(void 0);const jt=(0,c.Qc)([ne.S,function(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,k.L)(),t=(0,E.Z)(),[n,a]=(0,r.useState)((()=>!!t&&C()));(0,r.useEffect)((()=>{a(C())}),[]);const o=(0,r.useCallback)((()=>{T(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=_.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;_.set(t),r&&T(!1),!r&&C()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(A.Provider,{value:n},t)},function(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,S.W)(`docusaurus.tab.${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,S._)().forEach((t=>{if(t.startsWith(Ft)){const n=t.substring(Ft.length);e[n]=(0,S.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const a=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:a})),[e,a])}();return r.createElement(Bt.Provider,{value:n},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 r.createElement(V.Provider,{value:n},t)},function(e){let{children:t}=e;return nt?r.createElement(Xe,null,t):r.createElement(r.Fragment,null,t)},i.VC,function(e){let{children:t}=e;return r.createElement(j.n2,null,r.createElement(G,null,r.createElement(X,null,t)))}]);function zt(e){let{children:t}=e;return r.createElement(jt,null,t)}function Ut(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const $t="mainWrapper_z2l0";function qt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(zt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(w,null),r.createElement(B,null),r.createElement(kt,null),r.createElement("div",{id:f,className:(0,a.Z)(v.k.wrapper.main,$t,l)},r.createElement(o.Z,{fallback:e=>r.createElement(Ut,e)},t)),!n&&r.createElement(Mt,null))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>m});var r=n(3117),a=n(7294),o=n(412);function i(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const l={display:"none",overflow:"hidden",height:"0px"},s={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?l:s;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function c(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=(null==r?void 0:r.duration)??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${(null==r?void 0:r.easing)??"ease-in-out"}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return u(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!o.Z.canUseDOM)return e?l:s}function f(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const f=(0,a.useRef)(null);return c({collapsibleRef:f,collapsed:n,animation:o}),a.createElement(t,{ref:f,style:s?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(u(f.current,n),null==i||i(n))},className:l},r)}function p(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function m(e){let{lazy:t,...n}=e;const r=t?p:f;return a.createElement(r,n)}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.W)(u),d="light",f="dark",p=e=>e===f?f:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,i]=(0,r.useState)((e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e))(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&(e=>{c.set(p(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&s(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);const m=(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||m.current?m.current=window.matchMedia("print").matches:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:s,get isDarkTheme(){return o===f},setLightTheme(){s(d)},setDarkTheme(){s(f)}})),[o,s])}function h(e){let{children:t}=e;const n=m();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4608:(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)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(412);const o="desktop",i="mobile",l="ssr";function s(){return a.Z.canUseDOM?window.innerWidth>996?o:i:l}function u(){const[e,t]=(0,r.useState)((()=>s()));return(0,r.useEffect)((()=>{function e(){t(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),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",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:()=>c,VC:()=>p});var r=n(7294),a=n(7459),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);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,a;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(a=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:a.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},12:(e,t,n)=>{"use strict";n.d(t,{W:()=>l,_:()=>s});const r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(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),o=!0),null}var t}let o=!1;const i={get:()=>null,set:()=>{},del:()=>{}};function l(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}}(e);const n=a(null==t?void 0:t.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function s(e){void 0===e&&(e=r);const t=a(e);if(!t)return[];const n=[];for(let r=0;r{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6775);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},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)}},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.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(3117);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),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(2177);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 f(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 p(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=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(1296),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,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function E(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||k(e)===c},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=k},1296:(e,t,n)=>{"use strict";e.exports=n(6103)},1143:e=>{"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}}},905:(e,t,n)=>{"use strict";n.r(t)},985:(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))&&p(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&&p(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:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(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)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,s=a(e),u=1;u{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},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 f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in m=f)c[y]=!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 f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,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,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(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n