"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3089,0],{9734:function(e,t,a){a.r(t),a.d(t,{default:function(){return g}});var r=a(7294),n=a(9962),l=a(2896),o=a(2903),i=a(2511),s=a(7130);var c=function(e){var t=e.metadata,a=t.previousPage,n=t.nextPage;return r.createElement("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},r.createElement("div",{className:"pagination-nav__item"},a&&r.createElement(i.Z,{className:"pagination-nav__link",to:a},r.createElement("div",{className:"pagination-nav__label"},"\xab"," ",r.createElement(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")))),r.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},n&&r.createElement(i.Z,{className:"pagination-nav__link",to:n},r.createElement("div",{className:"pagination-nav__label"},r.createElement(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries")," ","\xbb"))))},m=a(8626);var g=function(e){var t=e.metadata,a=e.items,i=e.sidebar,s=(0,n.Z)().siteConfig.title,g=t.blogDescription,p=t.blogTitle,d="/"===t.permalink?s:p;return r.createElement(l.Z,{title:d,description:g,wrapperClassName:m.kM.wrapper.blogPages,pageClassName:m.kM.page.blogListPage,searchMetadatas:{tag:"blog_posts_list"},sidebar:i},a.map((function(e){var t=e.content;return r.createElement(o.Z,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:t.metadata.truncated},r.createElement(t,null))})),r.createElement(c,{metadata:t}))}},283:function(e,t,a){a.d(t,{Z:function(){return v}});var r=a(7462),n=a(3366),l=a(7294),o=a(6010),i=a(2511),s=a(8626),c=a(9524),m="footerLogoLink_qW4Z",g="footerCopyright_2yvt",p=a(4087),d=["to","href","label","prependBaseUrlToHref"];function u(e){var t=e.to,a=e.href,o=e.label,s=e.prependBaseUrlToHref,m=(0,n.Z)(e,d),g=(0,c.Z)(t),p=(0,c.Z)(a,{forcePrependBaseUrl:!0});return l.createElement(i.Z,(0,r.Z)({className:"footer__link-item"},a?{href:s?p:a}:{to:g},m),o)}var f=function(e){var t=e.sources,a=e.alt;return l.createElement(p.Z,{className:"footer__logo",alt:a,sources:t})};var v=function(){var e=(0,s.LU)().footer,t=e||{},a=t.copyright,r=t.links,n=void 0===r?[]:r,p=t.logo,d=void 0===p?{}:p,v={light:(0,c.Z)(d.src),dark:(0,c.Z)(d.srcDark||d.src)};return e?l.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===e.style})},l.createElement("div",{className:"container"},n&&n.length>0&&l.createElement("div",{className:"row footer__links"},n.map((function(e,t){return l.createElement("div",{key:t,className:"col footer__col"},null!=e.title?l.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?l.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?l.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):l.createElement("li",{key:e.href||e.to,className:"footer__item"},l.createElement(u,e))}))):null)}))),(d||a)&&l.createElement("div",{className:"footer__bottom text--center"},d&&(d.src||d.srcDark)&&l.createElement("div",{className:"margin-bottom--sm"},d.href?l.createElement(i.Z,{href:d.href,className:m},l.createElement(f,{alt:d.alt,sources:v})):l.createElement(f,{alt:d.alt,sources:v})),a?l.createElement("div",{className:g,dangerouslySetInnerHTML:{__html:a}}):null))):null}}}]);