(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2888],{7258:function(e,t,n){var i,o,a;void 0!==(o="function"==typeof(i=a=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var i in n)t[i]=n[i]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(i){function o(){}function a(t,n,a){if("undefined"!=typeof document){"number"==typeof(a=e({path:"/"},o.defaults,a)).expires&&(a.expires=new Date(new Date*1+864e5*a.expires)),a.expires=a.expires?a.expires.toUTCString():"";try{var r=JSON.stringify(n);/^[\{\[]/.test(r)&&(n=r)}catch(e){}n=i.write?i.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var s="";for(var l in a)a[l]&&(s+="; "+l,!0!==a[l]&&(s+="="+a[l].split(";")[0]));return document.cookie=t+"="+n+s}}function r(e,n){if("undefined"!=typeof document){for(var o={},a=document.cookie?document.cookie.split("; "):[],r=0;r<a.length;r++){var s=a[r].split("="),l=s.slice(1).join("=");n||'"'!==l.charAt(0)||(l=l.slice(1,-1));try{var c=t(s[0]);if(l=(i.read||i)(l,c)||t(l),n)try{l=JSON.parse(l)}catch(e){}if(o[c]=l,e===c)break}catch(e){}}return e?o[e]:o}}return o.set=a,o.get=function(e){return r(e,!1)},o.getJSON=function(e){return r(e,!0)},o.remove=function(t,n){a(t,"",e(n,{expires:-1}))},o.defaults={},o.withConverter=n,o}(function(){})})?i.call(t,n,t,e):i)&&(e.exports=o),e.exports=a()},68505:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(595)}])},41395:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"actionAsyncStorage",{enumerable:!0,get:function(){return i}});let i=(0,n(13562).createAsyncLocalStorage)();("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35851:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"actionAsyncStorage",{enumerable:!0,get:function(){return i.actionAsyncStorage}});let i=n(41395);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13562:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createAsyncLocalStorage",{enumerable:!0,get:function(){return a}});let n=Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");class i{disable(){throw n}getStore(){}run(){throw n}exit(){throw n}enterWith(){throw n}}let o=globalThis.AsyncLocalStorage;function a(){return o?new o:new i}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},30689:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ErrorBoundary:function(){return g},ErrorBoundaryHandler:function(){return d},GlobalError:function(){return p},default:function(){return h}});let i=n(42430),o=n(11527),a=i._(n(50959)),r=n(85239),s=n(87063),l=n(25561),c={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}};function u(e){let{error:t}=e,n=l.staticGenerationAsyncStorage.getStore();if((null==n?void 0:n.isRevalidate)||(null==n?void 0:n.isStaticGeneration))throw console.error(t),t;return null}class d extends a.default.Component{static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,o.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}}function p(e){let{error:t}=e,n=null==t?void 0:t.digest;return(0,o.jsxs)("html",{id:"__next_error__",children:[(0,o.jsx)("head",{}),(0,o.jsxs)("body",{children:[(0,o.jsx)(u,{error:t}),(0,o.jsx)("div",{style:c.error,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{style:c.text,children:"Application error: a "+(n?"server":"client")+"-side exception has occurred (see the "+(n?"server logs":"browser console")+" for more information)."}),n?(0,o.jsx)("p",{style:c.text,children:"Digest: "+n}):null]})})]})]})}let h=p;function g(e){let{errorComponent:t,errorStyles:n,errorScripts:i,children:a}=e,s=(0,r.usePathname)();return t?(0,o.jsx)(d,{pathname:s,errorComponent:t,errorStyles:n,errorScripts:i,children:a}):(0,o.jsx)(o.Fragment,{children:a})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87063:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return a}});let i=n(96427),o=n(75514);function a(e){return e&&e.digest&&((0,o.isRedirectError)(e)||(0,i.isNotFoundError)(e))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},85239:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ReadonlyURLSearchParams:function(){return l.ReadonlyURLSearchParams},RedirectType:function(){return l.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},notFound:function(){return l.notFound},permanentRedirect:function(){return l.permanentRedirect},redirect:function(){return l.redirect},useParams:function(){return h},usePathname:function(){return d},useRouter:function(){return p},useSearchParams:function(){return u},useSelectedLayoutSegment:function(){return f},useSelectedLayoutSegments:function(){return g},useServerInsertedHTML:function(){return c.useServerInsertedHTML}});let i=n(50959),o=n(49780),a=n(6354),r=n(77450),s=n(67901),l=n(76819),c=n(64053);function u(){let e=(0,i.useContext)(a.SearchParamsContext);return(0,i.useMemo)(()=>e?new l.ReadonlyURLSearchParams(e):null,[e])}function d(){return(0,i.useContext)(a.PathnameContext)}function p(){let e=(0,i.useContext)(o.AppRouterContext);if(null===e)throw Error("invariant expected app router to be mounted");return e}function h(){return(0,i.useContext)(a.PathParamsContext)}function g(e){void 0===e&&(e="children");let t=(0,i.useContext)(o.LayoutRouterContext);return t?function e(t,n,i,o){let a;if(void 0===i&&(i=!0),void 0===o&&(o=[]),i)a=t[1][n];else{var l;let e=t[1];a=null!=(l=e.children)?l:Object.values(e)[0]}if(!a)return o;let c=a[0],u=(0,r.getSegmentValue)(c);return!u||u.startsWith(s.PAGE_SEGMENT_KEY)?o:(o.push(u),e(a,n,!1,o))}(t.tree,e):null}function f(e){void 0===e&&(e="children");let t=g(e);if(!t||0===t.length)return null;let n="children"===e?t[0]:t[t.length-1];return n===s.DEFAULT_SEGMENT_KEY?null:n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},76819:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ReadonlyURLSearchParams:function(){return r},RedirectType:function(){return i.RedirectType},notFound:function(){return o.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect}});let i=n(75514),o=n(96427);class a extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class r extends URLSearchParams{append(){throw new a}delete(){throw new a}set(){throw new a}sort(){throw new a}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},96427:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{isNotFoundError:function(){return o},notFound:function(){return i}});let n="NEXT_NOT_FOUND";function i(){let e=Error(n);throw e.digest=n,e}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},17993:function(e,t){"use strict";var n,i;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return n}}),(i=n||(n={}))[i.SeeOther=303]="SeeOther",i[i.TemporaryRedirect=307]="TemporaryRedirect",i[i.PermanentRedirect=308]="PermanentRedirect",("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75514:function(e,t,n){"use strict";var i,o;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{RedirectType:function(){return i},getRedirectError:function(){return c},getRedirectStatusCodeFromError:function(){return f},getRedirectTypeFromError:function(){return g},getURLFromRedirectError:function(){return h},isRedirectError:function(){return p},permanentRedirect:function(){return d},redirect:function(){return u}});let a=n(73460),r=n(35851),s=n(17993),l="NEXT_REDIRECT";function c(e,t,n){void 0===n&&(n=s.RedirectStatusCode.TemporaryRedirect);let i=Error(l);i.digest=l+";"+t+";"+e+";"+n+";";let o=a.requestAsyncStorage.getStore();return o&&(i.mutableCookies=o.mutableCookies),i}function u(e,t){void 0===t&&(t="replace");let n=r.actionAsyncStorage.getStore();throw c(e,t,(null==n?void 0:n.isAction)?s.RedirectStatusCode.SeeOther:s.RedirectStatusCode.TemporaryRedirect)}function d(e,t){void 0===t&&(t="replace");let n=r.actionAsyncStorage.getStore();throw c(e,t,(null==n?void 0:n.isAction)?s.RedirectStatusCode.SeeOther:s.RedirectStatusCode.PermanentRedirect)}function p(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,n,i,o]=e.digest.split(";",4),a=Number(o);return t===l&&("replace"===n||"push"===n)&&"string"==typeof i&&!isNaN(a)&&a in s.RedirectStatusCode}function h(e){return p(e)?e.digest.split(";",3)[2]:null}function g(e){if(!p(e))throw Error("Not a redirect error");return e.digest.split(";",2)[1]}function f(e){if(!p(e))throw Error("Not a redirect error");return Number(e.digest.split(";",4)[3])}(o=i||(i={})).push="push",o.replace="replace",("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2860:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"requestAsyncStorage",{enumerable:!0,get:function(){return i}});let i=(0,n(13562).createAsyncLocalStorage)();("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},73460:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{getExpectedRequestStore:function(){return o},requestAsyncStorage:function(){return i.requestAsyncStorage}});let i=n(2860);function o(e){let t=i.requestAsyncStorage.getStore();if(t)return t;throw Error("`"+e+"` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},77450:function(e,t){"use strict";function n(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},79580:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"staticGenerationAsyncStorage",{enumerable:!0,get:function(){return i}});let i=(0,n(13562).createAsyncLocalStorage)();("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25561:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"staticGenerationAsyncStorage",{enumerable:!0,get:function(){return i.staticGenerationAsyncStorage}});let i=n(79580);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},64053:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ServerInsertedHTMLContext:function(){return o},useServerInsertedHTML:function(){return a}});let i=n(11778)._(n(50959)),o=i.default.createContext(null);function a(e){let t=(0,i.useContext)(o);t&&t(e)}},29331:function(e,t,n){"use strict";n.d(t,{Tw:function(){return b},G6:function(){return a},_8:function(){return h},Qm:function(){return y},fy:function(){return x},cE:function(){return d},Ho:function(){return S},Kj:function(){return l},D2:function(){return r},qT:function(){return c},nB:function(){return s},Ic:function(){return u},Oq:function(){return v},UV:function(){return k},K2:function(){return o},Kv:function(){return w},PB:function(){return C},C_:function(){return O},Z7:function(){return M},yZ:function(){return p},U2:function(){return g},n2:function(){return f},lA:function(){return m}});var i=n(11527);let o=e=>{let{size:t=14,color:n="#00131A"}=e;return(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:(0,i.jsx)("path",{d:"M3.5 11L11.0833 3.41669M11.0833 3.41669V10.6967M11.0833 3.41669H3.80333",stroke:n,strokeLinecap:"round",strokeLinejoin:"round"})})},a=e=>{let{size:t=14,color:n="#00131A",className:o}=e;return(0,i.jsx)("svg",{className:o,xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 16 16",fill:"none",children:(0,i.jsx)("path",{d:"M13.3295 6L9.08688 10.2426L4.84424 6",stroke:n})})},r=()=>(0,i.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",fill:"white"}),(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",stroke:"#ECECEE"}),(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M30.3035 18C23.5058 18 18 23.5058 18 30.3035C18 35.7478 21.5219 40.3463 26.4125 41.9765C27.0277 42.0842 27.2584 41.715 27.2584 41.3921C27.2584 41.0999 27.243 40.131 27.243 39.1005C24.1518 39.6696 23.352 38.347 23.106 37.6549C22.9675 37.3012 22.3678 36.2092 21.8449 35.917C21.4142 35.6863 20.7991 35.1173 21.8295 35.1019C22.7984 35.0865 23.4904 35.9939 23.7211 36.363C24.8285 38.2239 26.5971 37.701 27.3045 37.3781C27.4122 36.5783 27.7352 36.04 28.0889 35.7325C25.3514 35.4249 22.4908 34.3637 22.4908 29.6576C22.4908 28.3196 22.9675 27.2123 23.7519 26.351C23.6289 26.0434 23.1982 24.7823 23.8749 23.0906C23.8749 23.0906 24.9054 22.7676 27.2584 24.3517C28.2427 24.0749 29.2885 23.9365 30.3343 23.9365C31.3801 23.9365 32.4259 24.0749 33.4102 24.3517C35.7632 22.7522 36.7936 23.0906 36.7936 23.0906C37.4703 24.7823 37.0397 26.0434 36.9167 26.351C37.701 27.2123 38.1778 28.3042 38.1778 29.6576C38.1778 34.3791 35.3018 35.4249 32.5643 35.7325C33.0103 36.1169 33.3948 36.8552 33.3948 38.0086C33.3948 39.6542 33.3794 40.9768 33.3794 41.3921C33.3794 41.715 33.6101 42.0995 34.2253 41.9765C39.0852 40.3463 42.607 35.7325 42.607 30.3035C42.607 23.5058 37.1012 18 30.3035 18Z",fill:"#00131A"})]}),s=()=>(0,i.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",fill:"white"}),(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",stroke:"#ECECEE"}),(0,i.jsx)("path",{d:"M36.1088 20H39.4399L32.1624 28.4718L40.7239 40H34.0203L28.7698 33.0082L22.7621 40H19.429L27.213 30.9385L19 20H25.8737L30.6197 26.3908L36.1088 20ZM34.9397 37.9692H36.7855L24.8708 21.9241H22.89L34.9397 37.9692Z",fill:"#00131A"})]}),l=()=>(0,i.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",fill:"white"}),(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",stroke:"#ECECEE"}),(0,i.jsx)("path",{d:"M38.6777 21.675C37.0212 20.8925 35.25 20.3238 33.3982 20C33.1708 20.4151 32.9051 20.9735 32.7219 21.4176C30.7534 21.1187 28.803 21.1187 26.8708 21.4176C26.6876 20.9735 26.4159 20.4151 26.1864 20C24.3327 20.3238 22.5594 20.8946 20.9029 21.6791C17.5617 26.7767 16.6559 31.7476 17.1088 36.648C19.3249 38.3188 21.4725 39.3338 23.5839 39.9979C24.1052 39.2736 24.5701 38.5035 24.9707 37.692C24.2078 37.3994 23.4772 37.0382 22.7869 36.6189C22.97 36.482 23.1492 36.3387 23.3222 36.1914C27.533 38.1798 32.108 38.1798 36.2684 36.1914C36.4435 36.3387 36.6226 36.482 36.8038 36.6189C36.1114 37.0403 35.3788 37.4014 34.6159 37.6941C35.0165 38.5035 35.4794 39.2757 36.0027 40C38.1161 39.3358 40.2658 38.3209 42.4818 36.648C43.0132 30.9672 41.5741 26.0419 38.6777 21.675ZM25.5443 33.6343C24.2803 33.6343 23.2437 32.4429 23.2437 30.9921C23.2437 29.5413 24.2582 28.3479 25.5443 28.3479C26.8305 28.3479 27.8671 29.5392 27.8449 30.9921C27.8469 32.4429 26.8305 33.6343 25.5443 33.6343ZM34.0463 33.6343C32.7823 33.6343 31.7457 32.4429 31.7457 30.9921C31.7457 29.5413 32.7601 28.3479 34.0463 28.3479C35.3325 28.3479 36.3691 29.5392 36.3469 30.9921C36.3469 32.4429 35.3325 33.6343 34.0463 33.6343Z",fill:"#00131A"})]}),c=()=>(0,i.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",fill:"white"}),(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",stroke:"#ECECEE"}),(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M23.8124 19.4062C23.8124 20.7351 22.7351 21.8124 21.4062 21.8124C20.0773 21.8124 19 20.7351 19 19.4062C19 18.0773 20.0773 17 21.4062 17C22.7351 17 23.8124 18.0773 23.8124 19.4062ZM37.3204 24.0524C37.303 24.0469 37.2859 24.0412 37.2688 24.0356C37.2346 24.0243 37.2003 24.013 37.1637 24.0029C37.0977 23.9877 37.0317 23.9754 36.9643 23.9644C36.7031 23.9121 36.4171 23.875 36.0816 23.875C33.2134 23.875 31.3943 25.9608 30.7948 26.7666V23.875H25.8751V38.9997H30.7948V30.7499C30.7948 30.7499 34.5127 25.5717 36.0816 29.3749V38.9997H40.9999V28.7933C40.9999 26.5081 39.4338 24.6037 37.3204 24.0524ZM19.0001 23.8753H23.9198V39.0001H19.0001V23.8753Z",fill:"#00131A"})]}),u=()=>(0,i.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",fill:"white"}),(0,i.jsx)("rect",{x:"0.5",y:"0.5",width:"59",height:"59",rx:"11.5",stroke:"#ECECEE"}),(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M38.866 21.1495C40.4244 21.2373 41.1898 21.468 41.895 22.7225C42.6295 23.9754 43 26.1334 43 29.9342V29.9391V29.9473C43 33.7303 42.6295 35.9045 41.8966 37.1444C41.1914 38.3989 40.426 38.6264 38.8676 38.732C37.3092 38.8214 33.3946 38.875 30.0033 38.875C26.6054 38.875 22.6891 38.8214 21.1324 38.7304C19.5773 38.6248 18.8119 38.3973 18.1001 37.1427C17.3737 35.9029 17 33.7286 17 29.9456V29.9424V29.9375V29.9326C17 26.1334 17.3737 23.9754 18.1001 22.7225C18.8119 21.4664 19.5789 21.2373 21.134 21.1479C22.6891 21.0439 26.6054 21 30.0033 21C33.3946 21 37.3092 21.0439 38.866 21.1495ZM34.875 29.9375L26.75 25.0625V34.8125L34.875 29.9375Z",fill:"black"})]}),d=()=>(0,i.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("circle",{cx:"12.0006",cy:"12.0001",r:"10.2857",fill:"#4FC4F9"}),(0,i.jsx)("path",{d:"M11.1431 9.42704H12.8574L12.8574 7.71275H11.1431L11.1431 9.42704Z",fill:"white"}),(0,i.jsx)("path",{d:"M11.1431 16.2842H12.8574V11.1413H11.1431V16.2842Z",fill:"white"})]}),p=()=>(0,i.jsxs)("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("circle",{cx:"10",cy:"10.1194",r:"9",fill:"#D0D7DC"}),(0,i.jsx)("path",{d:"M9.30005 9.1194H10.7V14.1194H9.30005V9.1194Z",fill:"#00131A"}),(0,i.jsx)("path",{d:"M9.30006 6.51939H10.7001V7.91939H9.30006V6.51939Z",fill:"#00131A"})]}),h=()=>(0,i.jsxs)("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M7.33333 10.9879V10.9307L4.86193 8.45934L5.80474 7.51653L7.33333 9.04513V2.6546H8.66667V9.04513L10.1953 7.51653L11.1381 8.45934L8.66667 10.9307V10.9879H8.60948L8 11.5974L7.39052 10.9879H7.33333Z",fill:"white"}),(0,i.jsx)("path",{d:"M2 8.6546V12.6546C2 13.7592 2.89543 14.6546 4 14.6546H12C13.1046 14.6546 14 13.7592 14 12.6546V8.6546H12.6667V12.6546C12.6667 13.0228 12.3682 13.3213 12 13.3213H4C3.63181 13.3213 3.33333 13.0228 3.33333 12.6546V8.6546H2Z",fill:"white"})]}),g='\n  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n    <path \n      fill="#000000" \n      d="M18.71,7.21a1,1,0,0,0-1.42,0L9.84,14.67,6.71,11.53A1,1,0,1,0,5.29,13l3.84,3.84a1,1,0,0,0,1.42,0l8.16-8.16A1,1,0,0,0,18.71,7.21Z"\n    />\n  </svg>\n',f='\n  <svg\n    width="24"\n    height="24"\n    viewBox="0 0 24 24"\n    fill="none"\n    xmlns="http://www.w3.org/2000/svg"\n  >\n    <path\n      d="M16 4H6.5C5.11929 4 4 5.11929 4 6.5V16"\n      stroke="#1D2939"\n      strokeWidth="2"\n    />\n    <path\n      d="M19.5 8H8.5C8.22386 8 8 8.22386 8 8.5V19.5C8 19.7761 8.22386 20 8.5 20H19.5C19.7761 20 20 19.7761 20 19.5V8.5C20 8.22386 19.7761 8 19.5 8Z"\n      stroke="#1D2939"\n      strokeWidth="2"\n    />\n  </svg>\n',m='\n  <svg\n    aria-hidden="true"\n    focusable="false"\n    height="20"\n    version="1.1"\n    viewBox="0 0 16 16"\n    width="16"\n  >\n    <path\n      fill="#0092E4"\n      fillRule="evenodd"\n      d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"\n    ></path>\n  </svg>\n',v=()=>(0,i.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",children:[(0,i.jsx)("rect",{x:"2",y:"5",width:"20",height:"2",fill:"black"}),(0,i.jsx)("rect",{x:"2",y:"11",width:"20",height:"2",fill:"black"}),(0,i.jsx)("rect",{x:"2",y:"17",width:"20",height:"2",fill:"black"})]}),b=()=>(0,i.jsx)("svg",{width:"19",height:"19",viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.77917 9.19349L0.00210416 16.9706L1.41632 18.3848L9.19339 10.6077L16.9706 18.3849L18.3848 16.9707L10.6076 9.19349L18.3869 1.41421L16.9727 0L9.19339 7.77928L1.41421 0.000103474L0 1.41432L7.77917 9.19349Z",fill:"black"})}),y=()=>(0,i.jsxs)("svg",{width:"24",height:"24",strokeWidth:"1.5",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M14 11.9976C14 9.5059 11.683 7 8.85714 7C8.52241 7 7.41904 7.00001 7.14286 7.00001C4.30254 7.00001 2 9.23752 2 11.9976C2 14.376 3.70973 16.3664 6 16.8714C6.36756 16.9525 6.75006 16.9952 7.14286 16.9952",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M10 11.9976C10 14.4893 12.317 16.9952 15.1429 16.9952C15.4776 16.9952 16.581 16.9952 16.8571 16.9952C19.6975 16.9952 22 14.7577 22 11.9976C22 9.6192 20.2903 7.62884 18 7.12383C17.6324 7.04278 17.2499 6.99999 16.8571 6.99999",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})]}),k=()=>(0,i.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.15234 1.9999L9.15234 6.9999L4.15234 11.9999L5.00087 12.8484L10.8494 6.9999L5.00087 1.15137L4.15234 1.9999Z",fill:"black"})}),x=()=>(0,i.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("g",{clipPath:"url(#clip0_446_5013)",children:(0,i.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7 0.5C3.1325 0.5 0 3.6325 0 7.5C0 10.5975 2.00375 13.2137 4.78625 14.1413C5.13625 14.2025 5.2675 13.9925 5.2675 13.8088C5.2675 13.6425 5.25875 13.0913 5.25875 12.505C3.5 12.8288 3.045 12.0763 2.905 11.6825C2.82625 11.4812 2.485 10.86 2.1875 10.6937C1.9425 10.5625 1.5925 10.2387 2.17875 10.23C2.73 10.2212 3.12375 10.7375 3.255 10.9475C3.885 12.0062 4.89125 11.7088 5.29375 11.525C5.355 11.07 5.53875 10.7638 5.74 10.5887C4.1825 10.4137 2.555 9.81 2.555 7.1325C2.555 6.37125 2.82625 5.74125 3.2725 5.25125C3.2025 5.07625 2.9575 4.35875 3.3425 3.39625C3.3425 3.39625 3.92875 3.2125 5.2675 4.11375C5.8275 3.95625 6.4225 3.8775 7.0175 3.8775C7.6125 3.8775 8.2075 3.95625 8.7675 4.11375C10.1063 3.20375 10.6925 3.39625 10.6925 3.39625C11.0775 4.35875 10.8325 5.07625 10.7625 5.25125C11.2087 5.74125 11.48 6.3625 11.48 7.1325C11.48 9.81875 9.84375 10.4137 8.28625 10.5887C8.54 10.8075 8.75875 11.2275 8.75875 11.8837C8.75875 12.82 8.75 13.5725 8.75 13.8088C8.75 13.9925 8.88125 14.2113 9.23125 14.1413C11.9963 13.2137 14 10.5887 14 7.5C14 3.6325 10.8675 0.5 7 0.5Z",fill:"#00131A"})}),(0,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"clip0_446_5013",children:(0,i.jsx)("rect",{width:"14",height:"14",fill:"white"})})})]}),w=e=>{let{color:t,size:n=14}=e;return(0,i.jsx)("svg",{width:n,height:n,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,i.jsx)("path",{d:"M2 7L12.7244 7M12.7244 7L7.57669 12.1477M12.7244 7L7.5767 1.85228",stroke:t||"#00131A",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})})},S=()=>(0,i.jsx)("svg",{focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24",children:(0,i.jsx)("path",{d:"M18.861 16.1166C17.4619 18.4433 14.9127 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12H22C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C15.6409 22 18.8274 20.0542 20.5762 17.1457L18.861 16.1166Z",fill:"#1D2939"})}),C=()=>(0,i.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M0 13H12",stroke:"black",strokeWidth:"1.5"}),(0,i.jsx)("path",{d:"M0 9H6",stroke:"black",strokeWidth:"1.5"}),(0,i.jsx)("path",{d:"M0 5H12",stroke:"black",strokeWidth:"1.5"})]}),M=e=>{let{color:t="#4C5A67"}=e;return(0,i.jsx)("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,i.jsx)("path",{d:"M12.1519 14.4027L13.9744 7.95428C14.003 7.85327 14.0077 7.74701 13.9882 7.64386C13.9688 7.54071 13.9257 7.44348 13.8623 7.3598C13.7989 7.27613 13.717 7.20829 13.623 7.16163C13.5289 7.11497 13.4254 7.09074 13.3204 7.09087H9.42419C9.36833 7.09087 9.3132 7.07827 9.26289 7.05401C9.21258 7.02974 9.16839 6.99444 9.13362 6.95073C9.09884 6.90702 9.07438 6.85602 9.06205 6.80155C9.04972 6.74707 9.04984 6.69051 9.0624 6.63609L9.23209 5.90164C9.38753 5.22795 9.43742 4.5339 9.38007 3.84493L9.34884 3.47058C9.31539 3.06898 9.14067 2.69223 8.85571 2.40727C8.59505 2.14655 8.2415 2.00006 7.87283 2H7.79138C7.5684 2 7.36306 2.12082 7.25514 2.31563L6.3527 3.93962C5.94813 4.66796 5.34506 5.26644 4.61365 5.66543L2.35365 6.89742C2.2465 6.95589 2.1571 7.04216 2.09486 7.14716C2.03263 7.25217 1.99986 7.37201 2 7.49407V14.2181C2 14.3981 2.07151 14.5708 2.19881 14.6981C2.32611 14.8254 2.49876 14.8969 2.67878 14.8969H11.4985C11.6463 14.8968 11.7901 14.8485 11.908 14.7594C12.0258 14.6702 12.1117 14.5449 12.1519 14.4027Z",stroke:t,strokeWidth:"1.14286",strokeLinecap:"round",strokeLinejoin:"round"})})},O=e=>{let{color:t="#4C5A67"}=e;return(0,i.jsx)("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,i.jsx)("path",{d:"M12.2945 2.04591L14.117 8.49435C14.1455 8.59536 14.1503 8.70162 14.1308 8.80477C14.1114 8.90792 14.0683 9.00515 14.0049 9.08883C13.9415 9.1725 13.8596 9.24034 13.7655 9.287C13.6715 9.33367 13.5679 9.35789 13.463 9.35776H9.56677C9.32783 9.35776 9.15135 9.57972 9.20497 9.81254L9.37467 10.547C9.53011 11.2207 9.58 11.9147 9.52264 12.6037L9.49142 12.978C9.45797 13.3797 9.28325 13.7564 8.99828 14.0414C8.73762 14.3021 8.38408 14.4486 8.01541 14.4486H7.93395C7.82456 14.4486 7.71716 14.4193 7.62289 14.3638C7.52861 14.3083 7.45087 14.2286 7.39771 14.133L6.49527 12.509C6.09066 11.7808 5.48759 11.1824 4.75623 10.7835L2.49622 9.55053C2.38928 9.49218 2.30001 9.40611 2.23779 9.30137C2.17556 9.19663 2.14268 9.07707 2.14258 8.95524V2.23054C2.14258 2.05052 2.21409 1.87787 2.34139 1.75057C2.46869 1.62327 2.64134 1.55176 2.82136 1.55176H11.6411C11.7889 1.5518 11.9327 1.60009 12.0505 1.68927C12.1684 1.77846 12.2543 1.90368 12.2945 2.04591Z",stroke:t,strokeWidth:"1.14286",strokeLinecap:"round",strokeLinejoin:"round"})})}},595:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return e3}});var i,o,a=n(11527),r=n(7258),s=n.n(r),l=n(50959),c=function(e){var t=e.condition,n=e.wrapper,i=e.children;return t?n(i):i};function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}function d(e,t){return(d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var p={TOP:"top",BOTTOM:"bottom"};(i=o||(o={})).STRICT="strict",i.LAX="lax",i.NONE="none";var h={HIDDEN:"hidden",BY_COOKIE_VALUE:"byCookieValue"},g="CookieConsent",f=["children"],m={disableStyles:!1,hideOnAccept:!0,hideOnDecline:!0,location:p.BOTTOM,visible:h.BY_COOKIE_VALUE,onAccept:function(e){},onDecline:function(){},cookieName:g,cookieValue:"true",declineCookieValue:"false",setDeclineCookie:!0,buttonText:"I understand",declineButtonText:"I decline",debug:!1,expires:365,containerClasses:"CookieConsent",contentClasses:"",buttonClasses:"",buttonWrapperClasses:"",declineButtonClasses:"",buttonId:"rcc-confirm-button",declineButtonId:"rcc-decline-button",extraCookieOptions:{},disableButtonStyles:!1,enableDeclineButton:!1,flipButtons:!1,sameSite:o.LAX,ButtonComponent:function(e){var t=e.children,n=function(e,t){if(null==e)return{};var n,i,o={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,f);return l.createElement("button",Object.assign({},n),t)},overlay:!1,overlayClasses:"",onOverlayClick:function(){},acceptOnOverlayClick:!1,ariaAcceptLabel:"Accept cookies",ariaDeclineLabel:"Decline cookies",acceptOnScroll:!1,acceptOnScrollPercentage:25,customContentAttributes:{},customContainerAttributes:{},customButtonProps:{},customDeclineButtonProps:{},customButtonWrapperAttributes:{},style:{},buttonStyle:{},declineButtonStyle:{},contentStyle:{},overlayStyle:{}},v={visible:!1,style:{alignItems:"baseline",background:"#353535",color:"white",display:"flex",flexWrap:"wrap",justifyContent:"space-between",left:"0",position:"fixed",width:"100%",zIndex:"999"},buttonStyle:{background:"#ffd42d",border:"0",borderRadius:"0px",boxShadow:"none",color:"black",cursor:"pointer",flex:"0 0 auto",padding:"5px 10px",margin:"15px"},declineButtonStyle:{background:"#c12a2a",border:"0",borderRadius:"0px",boxShadow:"none",color:"#e5e5e5",cursor:"pointer",flex:"0 0 auto",padding:"5px 10px",margin:"15px"},contentStyle:{flex:"1 0 300px",margin:"15px"},overlayStyle:{position:"fixed",left:0,top:0,width:"100%",height:"100%",zIndex:"999",backgroundColor:"rgba(0,0,0,0.3)"}},b=function(e){void 0===e&&(e=g);var t=s().get(e);return void 0===t?s().get(y(e)):t},y=function(e){return e+"-legacy"},k=function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.state=v,t.handleScroll=function(){var e=u({},m,t.props).acceptOnScrollPercentage,n=document.documentElement,i=document.body,o="scrollTop",a="scrollHeight";(n[o]||i[o])/((n[a]||i[a])-n.clientHeight)*100>e&&t.accept(!0)},t.removeScrollListener=function(){t.props.acceptOnScroll&&window.removeEventListener("scroll",t.handleScroll)},t}t.prototype=Object.create(e.prototype),t.prototype.constructor=t,d(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=this.props.debug;(void 0===this.getCookieValue()||e)&&(this.setState({visible:!0}),this.props.acceptOnScroll&&window.addEventListener("scroll",this.handleScroll,{passive:!0}))},n.componentWillUnmount=function(){this.removeScrollListener()},n.accept=function(e){void 0===e&&(e=!1);var t,n=u({},m,this.props),i=n.cookieName,o=n.cookieValue,a=n.hideOnAccept,r=n.onAccept;this.setCookie(i,o),r(null!=(t=e)&&t),a&&(this.setState({visible:!1}),this.removeScrollListener())},n.overlayClick=function(){var e=u({},m,this.props),t=e.acceptOnOverlayClick,n=e.onOverlayClick;t&&this.accept(),n()},n.decline=function(){var e=u({},m,this.props),t=e.cookieName,n=e.declineCookieValue,i=e.hideOnDecline,o=e.onDecline;e.setDeclineCookie&&this.setCookie(t,n),o(),i&&this.setState({visible:!1})},n.setCookie=function(e,t){var n=this.props,i=n.extraCookieOptions,a=n.expires,r=n.sameSite,l=this.props.cookieSecurity;void 0===l&&(l=!window.location||"https:"===window.location.protocol);var c=u({expires:a},i,{sameSite:r,secure:l});r===o.NONE&&s().set(y(e),t,c),s().set(e,t,c)},n.getCookieValue=function(){return b(this.props.cookieName)},n.render=function(){var e=this;switch(this.props.visible){case h.HIDDEN:return null;case h.BY_COOKIE_VALUE:if(!this.state.visible)return null}var t=this.props,n=t.location,i=t.style,o=t.buttonStyle,a=t.declineButtonStyle,r=t.contentStyle,s=t.disableStyles,d=t.buttonText,g=t.declineButtonText,f=t.containerClasses,m=t.contentClasses,v=t.buttonClasses,b=t.buttonWrapperClasses,y=t.declineButtonClasses,k=t.buttonId,x=t.declineButtonId,w=t.disableButtonStyles,S=t.enableDeclineButton,C=t.flipButtons,M=t.ButtonComponent,O=t.overlay,j=t.overlayClasses,_=t.overlayStyle,T=t.ariaAcceptLabel,L=t.ariaDeclineLabel,N=t.customContainerAttributes,P=t.customContentAttributes,A=t.customButtonProps,R=t.customDeclineButtonProps,D=t.customButtonWrapperAttributes,I={},B={},E={},H={},z={};switch(s?(I=Object.assign({},i),B=Object.assign({},o),E=Object.assign({},a),H=Object.assign({},r),z=Object.assign({},_)):(I=Object.assign({},u({},this.state.style,i)),H=Object.assign({},u({},this.state.contentStyle,r)),z=Object.assign({},u({},this.state.overlayStyle,_)),w?(B=Object.assign({},o),E=Object.assign({},a)):(B=Object.assign({},u({},this.state.buttonStyle,o)),E=Object.assign({},u({},this.state.declineButtonStyle,a)))),n){case p.TOP:I.top="0";break;case p.BOTTOM:I.bottom="0"}var V=[];return S&&V.push(l.createElement(M,Object.assign({key:"declineButton",style:E,className:y,id:x,"aria-label":L,onClick:function(){e.decline()}},R),g)),V.push(l.createElement(M,Object.assign({key:"acceptButton",style:B,className:v,id:k,"aria-label":T,onClick:function(){e.accept()}},A),d)),C&&V.reverse(),l.createElement(c,{condition:O,wrapper:function(t){return l.createElement("div",{style:z,className:j,onClick:function(){e.overlayClick()}},t)}},l.createElement("div",Object.assign({className:""+f,style:I},N),l.createElement("div",Object.assign({style:H,className:m},P),this.props.children),l.createElement("div",Object.assign({className:""+b},D),V.map(function(e){return e}))))},t}(l.Component);k.defaultProps=m;var x=n(68775),w=n(56147),S=n.n(w);function C(){let{t:e}=(0,x.$G)("common");return(0,a.jsxs)(k,{hideOnAccept:!0,buttonText:e("cookie.accept"),declineButtonText:e("cookie.reject"),enableDeclineButton:!0,containerClasses:S().consentContainer,contentClasses:S().contentWrapper,buttonWrapperClasses:S().buttonsWrapper,buttonClasses:S().acceptButton,declineButtonClasses:S().declineButton,children:[(0,a.jsx)("h3",{className:"",children:e("cookie.title")}),(0,a.jsx)("p",{className:"",children:e("cookie.consent")})]})}var M=n(30689),O=n(74203),j=n.n(O),_=n(66867),T=n.n(_),L=n(7854);function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function P(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function A(e){var t=function(e,t){if("object"!=N(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=N(i))return i;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==N(t)?t:t+""}function R(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,A(i.key),i)}}function D(e,t,n){return t&&R(e.prototype,t),n&&R(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var I=n(60627),B=n(48416);function E(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,B.Z)(e,t)}function H(e,t){if(t&&("object"==N(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return(0,I.Z)(e)}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function V(e,t,n){return(t=A(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var U={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},W=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};P(this,e),this.init(t,n)}return D(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||U,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,i){return i&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,q(q({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}()),J=function(){function e(){P(this,e),this.observers={}}return D(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach(function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)}),this}},{key:"off",value:function(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e]=this.observers[e].filter(function(e){return e!==t})}}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,n)}),this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(n))})}}]),e}();function Z(){var e,t,n=new Promise(function(n,i){e=n,t=i});return n.resolve=e,n.reject=t,n}function K(e){return null==e?"":""+e}function Q(e,t,n){function i(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function o(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(o())return{};var r=i(a.shift());!e[r]&&n&&(e[r]=new n),e=Object.prototype.hasOwnProperty.call(e,r)?e[r]:{}}return o()?{}:{obj:e,k:i(a.shift())}}function $(e,t,n){var i=Q(e,t,Object);i.obj[i.k]=n}function Y(e,t){var n=Q(e,t),i=n.obj,o=n.k;if(i)return i[o]}function X(e,t,n){var i=Y(e,n);return void 0!==i?i:Y(t,n)}function ee(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var et={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function en(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return et[e]}):e}var ei="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,eo=[" ",",","?","!",";"];function ea(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function er(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ea(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ea(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var es=function(e){E(i,e);var t,n=(t=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,n=z(i);return e=t?Reflect.construct(n,arguments,z(this).constructor):n.apply(this,arguments),H(this,e)});function i(e){var t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return P(this,i),t=n.call(this),ei&&J.call((0,I.Z)(t)),t.data=e||{},t.options=o,void 0===t.options.keySeparator&&(t.options.keySeparator="."),void 0===t.options.ignoreJSONStructure&&(t.options.ignoreJSONStructure=!0),t}return D(i,[{key:"addNamespaces",value:function(e){0>this.options.ns.indexOf(e)&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,a=void 0!==i.ignoreJSONStructure?i.ignoreJSONStructure:this.options.ignoreJSONStructure,r=[e,t];n&&"string"!=typeof n&&(r=r.concat(n)),n&&"string"==typeof n&&(r=r.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(r=e.split("."));var s=Y(this.data,r);return s||!a||"string"!=typeof n?s:function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(t){if(t[n])return t[n];for(var o=n.split(i),a=t,r=0;r<o.length;++r){if(!a||"string"==typeof a[o[r]]&&r+1<o.length)return;if(void 0===a[o[r]]){for(var s=2,l=o.slice(r,r+s).join(i),c=a[l];void 0===c&&o.length>r+s;)s++,c=a[l=o.slice(r,r+s).join(i)];if(void 0===c)return;if(null===c)return null;if(n.endsWith(l)){if("string"==typeof c)return c;if(l&&"string"==typeof c[l])return c[l]}var u=o.slice(r+s).join(i);if(u)return e(c,u,i);return}a=a[o[r]]}return a}}(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var r=[e,t];n&&(r=r.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(r=e.split("."),i=t,t=r[1]),this.addNamespaces(t),$(this.data,r,i),o.silent||this.emit("added",e,t,n,i)}},{key:"addResources",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)("string"==typeof n[o]||"[object Array]"===Object.prototype.toString.apply(n[o]))&&this.addResource(e,t,o,n[o],{silent:!0});i.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},r=[e,t];e.indexOf(".")>-1&&(r=e.split("."),i=n,n=t,t=r[1]),this.addNamespaces(t);var s=Y(this.data,r)||{};i?function e(t,n,i){for(var o in n)"__proto__"!==o&&"constructor"!==o&&(o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof n[o]||n[o]instanceof String?i&&(t[o]=n[o]):e(t[o],n[o],i):t[o]=n[o]);return t}(s,n,o):s=er(er({},s),n),$(this.data,r,s),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return(t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI)?er(er({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(function(e){return t[e]&&Object.keys(t[e]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),i}(J),el={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,i,o){var a=this;return e.forEach(function(e){a.processors[e]&&(t=a.processors[e].process(t,n,i,o))}),t}};function ec(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function eu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ec(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ec(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ed={},ep=function(e){E(i,e);var t,n=(t=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,n=z(i);return e=t?Reflect.construct(n,arguments,z(this).constructor):n.apply(this,arguments),H(this,e)});function i(e){var t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return P(this,i),t=n.call(this),ei&&J.call((0,I.Z)(t)),!function(e,t,n){e.forEach(function(e){t[e]&&(n[e]=t[e])})}(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,(0,I.Z)(t)),t.options=o,void 0===t.options.keySeparator&&(t.options.keySeparator="."),t.logger=W.create("translator"),t}return D(i,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,r=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!function(e,t,n){t=t||"",n=n||"";var i=eo.filter(function(e){return 0>t.indexOf(e)&&0>n.indexOf(e)});if(0===i.length)return!0;var o=new RegExp("(".concat(i.map(function(e){return"?"===e?"\\?":e}).join("|"),")")),a=!o.test(e);if(!a){var r=e.indexOf(n);r>0&&!o.test(e.substring(0,r))&&(a=!0)}return a}(e,n,i);if(a&&!r){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:o};var l=e.split(n);(n!==i||n===i&&this.options.ns.indexOf(l[0])>-1)&&(o=l.shift()),e=l.join(i)}return"string"==typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(e,t,n){var o=this;if("object"!==N(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,u=c[c.length-1],d=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var h=t.nsSeparator||this.options.nsSeparator;return a?(g.res="".concat(u).concat(h).concat(l),g):"".concat(u).concat(h).concat(l)}return a?(g.res=l,g):l}var g=this.resolve(e,t),f=g&&g.res,m=g&&g.usedKey||l,v=g&&g.exactUsedKey||l,b=Object.prototype.toString.apply(f),y=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,k=!this.i18nFormat||this.i18nFormat.handleAsObject,x="string"!=typeof f&&"boolean"!=typeof f&&"number"!=typeof f;if(k&&f&&x&&0>["[object Number]","[object Function]","[object RegExp]"].indexOf(b)&&!("string"==typeof y&&"[object Array]"===b)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var w=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,f,eu(eu({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(g.res=w,g):w}if(r){var S="[object Array]"===b,C=S?[]:{},M=S?v:m;for(var O in f)if(Object.prototype.hasOwnProperty.call(f,O)){var j="".concat(M).concat(r).concat(O);C[O]=this.translate(j,eu(eu({},t),{joinArrays:!1,ns:c})),C[O]===j&&(C[O]=f[O])}f=C}}else if(k&&"string"==typeof y&&"[object Array]"===b)(f=f.join(y))&&(f=this.extendTranslation(f,e,t,n));else{var _=!1,T=!1,L=void 0!==t.count&&"string"!=typeof t.count,P=i.hasDefaultValue(t),A=L?this.pluralResolver.getSuffix(d,t.count,t):"",R=t["defaultValue".concat(A)]||t.defaultValue;!this.isValidLookup(f)&&P&&(_=!0,f=R),this.isValidLookup(f)||(T=!0,f=l);var D=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&T?void 0:f,I=P&&R!==f&&this.options.updateMissing;if(T||_||I){if(this.logger.log(I?"updateKey":"missingKey",d,u,l,I?R:f),r){var B=this.resolve(l,eu(eu({},t),{},{keySeparator:!1}));B&&B.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var E=[],H=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&H&&H[0])for(var z=0;z<H.length;z++)E.push(H[z]);else"all"===this.options.saveMissingTo?E=this.languageUtils.toResolveHierarchy(t.lng||this.language):E.push(t.lng||this.language);var V=function(e,n,i){var a=P&&i!==f?i:D;o.options.missingKeyHandler?o.options.missingKeyHandler(e,u,n,a,I,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,u,n,a,I,t),o.emit("missingKey",e,u,n,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&L?E.forEach(function(e){o.pluralResolver.getSuffixes(e,t).forEach(function(n){V([e],l+n,t["defaultValue".concat(n)]||R)})}):V(E,l,R))}f=this.extendTranslation(f,e,t,g,n),T&&f===l&&this.options.appendNamespaceToMissingKey&&(f="".concat(u,":").concat(l)),(T||_)&&this.options.parseMissingKeyHandler&&(f="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(u,":").concat(l):l,_?f:void 0):this.options.parseMissingKeyHandler(f))}return a?(g.res=f,g):f}},{key:"extendTranslation",value:function(e,t,n,i,o){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,eu(eu({},this.options.interpolation.defaultVariables),n),i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(eu(eu({},n),{interpolation:eu(eu({},this.options.interpolation),n.interpolation)}));var r,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);r=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=eu(eu({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var u=e.match(this.interpolator.nestingRegexp);r<(u&&u.length)&&(n.nest=!1)}!1!==n.nest&&(e=this.interpolator.nest(e,function(){for(var e=arguments.length,i=Array(e),r=0;r<e;r++)i[r]=arguments[r];return o&&o[0]===i[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(i[0]," in key: ").concat(t[0])),null):a.translate.apply(a,i.concat([t]))},n)),n.interpolation&&this.interpolator.reset()}var d=n.postProcess||this.options.postProcess,p="string"==typeof d?[d]:d;return null!=e&&p&&p.length&&!1!==n.applyPostProcessor&&(e=el.handle(p,e,t,this.options&&this.options.postProcessPassResolved?eu({i18nResolved:i},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,i,o,a,r=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!r.isValidLookup(t)){var l=r.extractFromKey(e,s),c=l.key;n=c;var u=l.namespaces;r.options.fallbackNS&&(u=u.concat(r.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,p=d&&!s.ordinal&&0===s.count&&r.pluralResolver.shouldUseIntlApi(),h=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,g=s.lngs?s.lngs:r.languageUtils.toResolveHierarchy(s.lng||r.language,s.fallbackLng);u.forEach(function(e){r.isValidLookup(t)||(a=e,!ed["".concat(g[0],"-").concat(e)]&&r.utils&&r.utils.hasLoadedNamespace&&!r.utils.hasLoadedNamespace(a)&&(ed["".concat(g[0],"-").concat(e)]=!0,r.logger.warn('key "'.concat(n,'" for languages "').concat(g.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),g.forEach(function(n){if(!r.isValidLookup(t)){o=n;var a,l=[c];if(r.i18nFormat&&r.i18nFormat.addLookupKeys)r.i18nFormat.addLookupKeys(l,c,n,e,s);else{d&&(u=r.pluralResolver.getSuffix(n,s.count,s));var u,g="".concat(r.options.pluralSeparator,"zero");if(d&&(l.push(c+u),p&&l.push(c+g)),h){var f="".concat(c).concat(r.options.contextSeparator).concat(s.context);l.push(f),d&&(l.push(f+u),p&&l.push(f+g))}}for(;a=l.pop();)r.isValidLookup(t)||(i=a,t=r.getResource(n,e,a,s))}}))})}}),{res:t,usedKey:n,exactUsedKey:i,usedLng:o,usedNS:a}}},{key:"isValidLookup",value:function(e){return void 0!==e&&!(!this.options.returnNull&&null===e)&&!(!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,i):this.resourceStore.getResource(e,t,n,i)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),i}(J);function eh(e){return e.charAt(0).toUpperCase()+e.slice(1)}var eg=function(){function e(t){P(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=W.create("languageUtils")}return D(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase())?null:this.formatLanguageCode(t.join("-"))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(e){return e.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=eh(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=eh(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=eh(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach(function(e){if(!t){var i=n.formatLanguageCode(e);(!n.options.supportedLngs||n.isSupportedCode(i))&&(t=i)}}),!t&&this.options.supportedLngs&&e.forEach(function(e){if(!t){var i=n.getLanguagePartFromCode(e);if(n.isSupportedCode(i))return t=i;t=n.options.supportedLngs.find(function(e){if(0===e.indexOf(i))return e})}}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,i=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],a=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),i.forEach(function(e){0>o.indexOf(e)&&a(n.formatLanguageCode(e))}),o}}]),e}(),ef=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],em={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},ev=["v1","v2","v3"],eb={zero:0,one:1,two:2,few:3,many:4,other:5},ey=function(){function e(t){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};P(this,e),this.languageUtils=t,this.options=i,this.logger=W.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=(n={},ef.forEach(function(e){e.lngs.forEach(function(t){n[t]={numbers:e.nr,plurals:em[e.fc]}})}),n)}return D(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map(function(e){return"".concat(t).concat(e)})}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.getRule(e,n);return i?this.shouldUseIntlApi()?i.resolvedOptions().pluralCategories.sort(function(e,t){return eb[e]-eb[t]}).map(function(e){return"".concat(t.options.prepend).concat(e)}):i.numbers.map(function(i){return t.getSuffix(e,i,n)}):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getRule(e,n);return i?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(i.select(t)):this.getSuffixRetroCompatible(i,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,i=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),o=e.numbers[i];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===o?o="plural":1===o&&(o=""));var a=function(){return n.options.prepend&&o.toString()?n.options.prepend+o.toString():o.toString()};return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?"_plural_".concat(o.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}},{key:"shouldUseIntlApi",value:function(){return!ev.includes(this.options.compatibilityJSON)}}]),e}();function ek(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ex(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ek(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ek(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ew=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};P(this,e),this.logger=W.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return D(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:en,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?ee(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?ee(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?ee(t.nestingPrefix):t.nestingPrefixEscaped||ee("$t("),this.nestingSuffix=t.nestingSuffix?ee(t.nestingSuffix):t.nestingSuffixEscaped||ee(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,i){var o,a,r,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var u=function(e){if(0>e.indexOf(s.formatSeparator)){var o=X(t,l,e);return s.alwaysFormat?s.format(o,void 0,n,ex(ex(ex({},i),t),{},{interpolationkey:e})):o}var a=e.split(s.formatSeparator),r=a.shift().trim(),c=a.join(s.formatSeparator).trim();return s.format(X(t,l,r),c,n,ex(ex(ex({},i),t),{},{interpolationkey:r}))};this.resetRegExp();var d=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,p=i&&i.interpolation&&void 0!==i.interpolation.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach(function(t){for(r=0;o=t.regex.exec(e);){var n=o[1].trim();if(void 0===(a=u(n))){if("function"==typeof d){var l=d(e,o,i);a="string"==typeof l?l:""}else if(i&&i.hasOwnProperty(n))a="";else if(p){a=o[0];continue}else s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),a=""}else"string"==typeof a||s.useRawValueToEscape||(a=K(a));var c=t.safeValue(a);if(e=e.replace(o[0],c),p?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,++r>=s.maxReplaces)break}}),e}},{key:"nest",value:function(e,t){var n,i,o=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=ex({},a);function s(e,t){var n=this.nestingOptionsSeparator;if(0>e.indexOf(n))return e;var i=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(i[1]);e=i[0];var a=(o=this.interpolate(o,r)).match(/'/g),s=o.match(/"/g);(a&&a.length%2==0&&!s||s.length%2!=0)&&(o=o.replace(/'/g,'"'));try{r=JSON.parse(o),t&&(r=ex(ex({},t),r))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(o)}return delete r.defaultValue,e}for(r.applyPostProcessor=!1,delete r.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var u=n[1].split(this.formatSeparator).map(function(e){return e.trim()});n[1]=u.shift(),l=u,c=!0}if((i=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof i)return i;"string"!=typeof i&&(i=K(i)),i||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),i=""),c&&(i=l.reduce(function(e,t){return o.format(e,t,a.lng,ex(ex({},a),{},{interpolationkey:n[1].trim()}))},i.trim())),e=e.replace(n[0],i),this.regexp.lastIndex=0}return e}}]),e}();function eS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function eC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?eS(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eS(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function eM(e){var t={};return function(n,i,o){var a=i+JSON.stringify(o),r=t[a];return r||(r=e(i,o),t[a]=r),r(n)}}var eO=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};P(this,e),this.logger=W.create("formatter"),this.options=t,this.formats={number:eM(function(e,t){var n=new Intl.NumberFormat(e,t);return function(e){return n.format(e)}}),currency:eM(function(e,t){var n=new Intl.NumberFormat(e,eC(eC({},t),{},{style:"currency"}));return function(e){return n.format(e)}}),datetime:eM(function(e,t){var n=new Intl.DateTimeFormat(e,eC({},t));return function(e){return n.format(e)}}),relativetime:eM(function(e,t){var n=new Intl.RelativeTimeFormat(e,eC({},t));return function(e){return n.format(e,t.range||"day")}}),list:eM(function(e,t){var n=new Intl.ListFormat(e,eC({},t));return function(e){return n.format(e)}})},this.init(t)}return D(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=t.interpolation;this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=eM(t)}},{key:"format",value:function(e,t,n,i){var o=this;return t.split(this.formatSeparator).reduce(function(e,t){var a=function(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var i=e.split("(");t=i[0].toLowerCase().trim();var o=i[1].substring(0,i[1].length-1);"currency"===t&&0>o.indexOf(":")?n.currency||(n.currency=o.trim()):"relativetime"===t&&0>o.indexOf(":")?n.range||(n.range=o.trim()):o.split(";").forEach(function(e){if(e){var t,i=function(e){if(Array.isArray(e))return e}(t=e.split(":"))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return F(e,void 0);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?F(e,void 0):void 0}}(t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=i[0],a=i.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=a),"false"===a&&(n[o.trim()]=!1),"true"===a&&(n[o.trim()]=!0),isNaN(a)||(n[o.trim()]=parseInt(a,10))}})}return{formatName:t,formatOptions:n}}(t),r=a.formatName,s=a.formatOptions;if(o.formats[r]){var l=e;try{var c=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},u=c.locale||c.lng||i.locale||i.lng||n;l=o.formats[r](e,u,eC(eC(eC({},s),i),c))}catch(e){o.logger.warn(e)}return l}return o.logger.warn("there was no format function for ".concat(r)),e},e)}}]),e}();function ej(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function e_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ej(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ej(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var eT=function(e){E(i,e);var t,n=(t=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,n=z(i);return e=t?Reflect.construct(n,arguments,z(this).constructor):n.apply(this,arguments),H(this,e)});function i(e,t,o){var a,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return P(this,i),a=n.call(this),ei&&J.call((0,I.Z)(a)),a.backend=e,a.store=t,a.services=o,a.languageUtils=o.languageUtils,a.options=r,a.logger=W.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=r.maxParallelReads||10,a.readingCalls=0,a.maxRetries=r.maxRetries>=0?r.maxRetries:5,a.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,r.backend,r),a}return D(i,[{key:"queueLoad",value:function(e,t,n,i){var o=this,a={},r={},s={},l={};return e.forEach(function(e){var i=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?void 0===r[s]&&(r[s]=!0):(o.state[s]=1,i=!1,void 0===r[s]&&(r[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))}),i||(s[e]=!0)}),(Object.keys(a).length||Object.keys(r).length)&&this.queue.push({pending:r,pendingCount:Object.keys(r).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(a),pending:Object.keys(r),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var i=e.split("|"),o=i[0],a=i[1];t&&this.emit("failedLoading",o,a,t),n&&this.store.addResourceBundle(o,a,n),this.state[e]=t?-1:2;var r={};this.queue.forEach(function(n){var i,s,l,c;(l=(s=Q(n.loaded,[o],Object)).obj)[c=s.k]=l[c]||[],i||l[c].push(a),void 0!==n.pending[e]&&(delete n.pending[e],n.pendingCount--),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(function(e){r[e]||(r[e]={});var t=n.loaded[e];t.length&&t.forEach(function(t){void 0===r[e][t]&&(r[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",r),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,n){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,r=arguments.length>5?arguments[5]:void 0;if(!e.length)return r(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:o,wait:a,callback:r});return}return this.readingCalls++,this.backend[n](e,t,function(s,l){if(i.readingCalls--,i.waitingReads.length>0){var c=i.waitingReads.shift();i.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}if(s&&l&&o<i.maxRetries){setTimeout(function(){i.read.call(i,e,t,n,o+1,2*a,r)},a);return}r(s,l)})}},{key:"prepareLoading",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,i,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach(function(e){n.loadOne(e)})}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=e.split("|"),o=i[0],a=i[1];this.read(o,a,"read",void 0,void 0,function(i,r){i&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),i),!i&&r&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),r),t.loaded(e,i,r)})}},{key:"saveMissing",value:function(e,t,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(e,t,n,i,null,e_(e_({},a),{},{isUpdate:o})),e&&e[0]&&this.store.addResource(e[0],t,n,i))}}]),i}(J);function eL(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&0>e.supportedLngs.indexOf("cimode")&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function eN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function eP(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?eN(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function eA(){}var eR=function(e){E(i,e);var t,n=(t=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,n=z(i);return e=t?Reflect.construct(n,arguments,z(this).constructor):n.apply(this,arguments),H(this,e)});function i(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(P(this,i),e=n.call(this),ei&&J.call((0,I.Z)(e)),e.options=eL(t),e.services={},e.logger=W,e.modules={external:[]},!function(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))})}((0,I.Z)(e)),o&&!e.isInitialized&&!t.isClone){if(!e.options.initImmediate)return e.init(t,o),H(e,(0,I.Z)(e));setTimeout(function(){e.init(t,o)},0)}return e}return D(i,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:0>t.ns.indexOf("translation")&&(t.defaultNS=t.ns[0]));var i={debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===N(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===N(e[2])||"object"===N(e[3])){var n=e[3]||e[2];Object.keys(n).forEach(function(e){t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,n,i){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}};function o(e){return e?"function"==typeof e?new e:e:null}if(this.options=eP(eP(eP({},i),this.options),eL(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=eP(eP({},i.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){this.modules.logger?W.init(o(this.modules.logger),this.options):W.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=eO);var a,r=new eg(this.options);this.store=new es(this.options.resources,this.options);var s=this.services;s.logger=W,s.resourceStore=this.store,s.languageUtils=r,s.pluralResolver=new ey(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(s.formatter=o(a),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new ew(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new eT(o(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",function(t){for(var n=arguments.length,i=Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];e.emit.apply(e,[t].concat(i))}),this.modules.languageDetector&&(s.languageDetector=o(this.modules.languageDetector),s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=o(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new ep(this.services,this.options),this.translator.on("*",function(t){for(var n=arguments.length,i=Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];e.emit.apply(e,[t].concat(i))}),this.modules.external.forEach(function(t){t.init&&t.init(e)})}if(this.format=this.options.interpolation.format,n||(n=eA),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}});var c=Z(),u=function(){var t=function(t,i){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(i),n(t,i)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eA,i=n,o="string"==typeof e?e:this.language;if("function"==typeof e&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var a=[],r=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach(function(e){0>a.indexOf(e)&&a.push(e)})};o?r(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return r(e)}),this.options.preload&&this.options.preload.forEach(function(e){return r(e)}),this.services.backendConnector.load(a,this.options.ns,function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),i(e)})}else i(null)}},{key:"reloadResources",value:function(e,t,n){var i=Z();return e||(e=this.languages),t||(t=this.options.ns),n||(n=eA),this.services.backendConnector.reload(e,t,function(e){i.resolve(),n(e)}),i}},{key:"use",value:function(e){if(!e)throw Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&el.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var i=Z();this.emit("languageChanging",e);var o=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},a=function(e,a){a?(o(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,i.resolve(function(){return n.t.apply(n,arguments)}),t&&t(e,function(){return n.t.apply(n,arguments)})},r=function(t){e||t||!n.services.languageDetector||(t=[]);var i="string"==typeof t?t:n.services.languageUtils.getBestMatchFromCodes(t);i&&(n.language||o(i),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,function(e){a(e,i)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(r):r(e):r(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function(e,t,n){var i=this,o=function e(t,o){if("object"!==N(o)){for(var a,r=arguments.length,s=Array(r>2?r-2:0),l=2;l<r;l++)s[l-2]=arguments[l];a=i.options.overloadTranslationOptionHandler([t,o].concat(s))}else a=eP({},o);a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,a.keyPrefix=a.keyPrefix||n||e.keyPrefix;var c=i.options.keySeparator||".",u=a.keyPrefix?"".concat(a.keyPrefix).concat(c).concat(t):t;return i.t(u,a)};return"string"==typeof e?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.resolvedLanguage||this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var r=function(e,n){var i=t.services.backendConnector.state["".concat(e,"|").concat(n)];return -1===i||2===i};if(n.precheck){var s=n.precheck(this,r);if(void 0!==s)return s}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||r(i,e)&&(!o||r(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,i=Z();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){0>n.options.ns.indexOf(e)&&n.options.ns.push(e)}),this.loadResources(function(e){i.resolve(),t&&t(e)}),i):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=Z();"string"==typeof e&&(e=[e]);var i=this.options.preload||[],o=e.filter(function(e){return 0>i.indexOf(e)});return o.length?(this.options.preload=i.concat(o),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),e)?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr":"rtl"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eA,o=eP(eP(eP({},this.options),t),{isClone:!0}),a=new i(o);return(void 0!==t.debug||void 0!==t.prefix)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach(function(t){a[t]=e[t]}),a.services=eP({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new ep(a.services,a.options),a.translator.on("*",function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];a.emit.apply(a,[e].concat(n))}),a.init(o,n),a.translator.options=a.options,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),i}(J);V(eR,"createInstance",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new eR(e,t)});var eD=eR.createInstance();eD.createInstance=eR.createInstance,eD.createInstance,eD.init,eD.loadResources,eD.reloadResources,eD.use,eD.changeLanguage,eD.getFixedT,eD.t,eD.exists,eD.setDefaultNamespace,eD.hasLoadedNamespace,eD.loadNamespaces,eD.loadLanguages;var eI=JSON.parse('{"title":"Milvus makes it easy to add similarity search to your applications.","desc":"Store, index, and manage massive embedding vectors generated by deep neural networks and other machine learning (ML) models.","demos":{"multimodal":{"title":"Multimodal Image Search","desc":"Upload images and edit text to enhance intuitive image searches using advanced retrieval technology."},"imgSearch":{"title":"Image Search","desc":"Images made searchable. Instantaneously return the most similar images from a massive database."},"hybridSearch":{"title":"Hybrid Search","desc":"Experience advanced text search with the BGE-M3 model, delivering precise Dense, Sparse, and Hybrid results for enhanced query relevance."},"ossChat":{"title":"OSSChat","desc":"Enhanced ChatGPT with documentation, issues, blog posts, community Q&A as knowledge bases. Built for every community and developer."},"chemicalSearch":{"title":"Chemical Structure Search","desc":"Blazing fast similarity search, substructure search, or superstructure search for a specified molecule."}},"prompts":{"success":"Thank you, you have been added to our mailing list!","warning":"One second! We\'re taking you there...","waiting":"Before you go..."}}'),eB=JSON.parse('{"title":"Milvus Documentation","metaTitle":"Milvus vector database documentation","homepageDesc":"Milvus {{version}} documentation","feedback":{"title":"Feedback","prompt":"Was this page helpful?","comment":{"title":"Send us your feedback","desc":"Thank you for helping us improve Milvus documentation.","inputLabel":"Additional comment (optional)","cancel":"Cancel","send":"Send"},"thanks":"Thanks for your valuable feedback!"},"docAction":{"edit":"Edit this page","issue":"Create an issue"},"anchors":{"title":"Table of contents"},"navigation":{"title":"Home"},"translate":{"by":"Translated by"},"advertise":{"content":"Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.","ctaLabel":"Get Started","titleA":"Try Managed Milvus for Free","titleB":"Try Zilliz Cloud for Free"}}'),eE=JSON.parse('{"intro":{"label":"Why Milvus","definition":"What is Milvus","cases":"Use Cases"},"docs":"Docs","tutorials":{"label":"Tutorials","codelabs":"Codelabs","bootcamp":"Bootcamp","demo":"Demos","video":"Video"},"tools":{"label":"Tools","attu":"Attu","cli":"Milvus CLI","sizing":"Sizing Tool","backup":"Milvus Backup","vts":"VTS"},"blog":"Blog","community":"Community","start":"Get Started","star":"Star"}'),eH=JSON.parse('{"title":"The High-Performance<0 /> <1>Vector Database</1> Built for Scale","subTitle":"Milvus is an open-source vector database built for GenAI applications. Install with pip, perform high-speed searches, and scale to tens of billions of vectors with minimal performance loss.","news":"News","buttons":{"download":"Download","star":"Star","pipInstall":"pip install pymilvus","start":"Get Started","tryCloud":"Try Zilliz Cloud Free","getStarted":"Get Started","learnMore":"Learn More","tryFree":"Try Free","rsvp":"RSVP now","subscribe":"Subscribe","tryNow":"Try Now"},"codeSection":{"title":"Start running Milvus in seconds","tabs":{"createCollection":"Create Collection","insertData":"Insert Data","search":"Search","product":"Production","delete":"Delete Data"}},"trySection":{"title":"Looking for a managed Milvus to minimize your ops burden?","subTitle":"Plays nicely with all your favorite AI tools"},"lovedSection":{"title":"Loved by GenAI developers","cards":{"nandula":{"content":"Based on our research, Milvus was selected as the vector database of choice (over Chroma and Pinecone). Milvus is an open-source vector database designed specifically for similarity search on massive datasets of high-dimensional vectors.","author":"Nandula Asel","title":"Senior Data Scientist"},"bhargav":{"content":"With its focus on efficient vector similarity search, Milvus empowers you to build robust and scalable image retrieval systems. Whether you’re managing a personal photo library or developing a commercial image search application, Milvus offers a powerful foundation for unlocking the hidden potential within your image collections.","author":"Bhargav Mankad","title":"Senior Solution Architect"},"igor":{"content":"Milvus is a powerful vector database tailored for processing and searching extensive vector data. It stands out for its high performance and scalability, rendering it perfect for machine learning, deep learning, similarity search tasks, and recommendation systems.","author":"Igor Gorbenko","title":"Big Data Architect"}}},"vdbSection":{"title":"Why Developers Prefer Milvus for Vector Databases","features":{"scale":{"title":"Scale as needed","desc":"Elastic scaling to tens of billions of vectors with distributed architecture."},"fast":{"title":"Blazing fast","desc":"Retrieve data quickly and accurately with Global Index, regardless of scale."},"reusable":{"title":"Reusable Code","desc":"Write once, and deploy with one line of code into the production environment."},"community":{"title":"Supportive Community","desc":"Fan-favorite vector database with extensive resources and supportive contributors. "},"featureRich":{"title":"Feature-rich","desc":"Metadata filtering, hybrid search, multi-vector and more."}},"prompt":"Want to learn more about Milvus? View our <0>documentation</0>"},"deploySection":{"title":"Deployment Options to Match Your Unique Journey","lite":{"title":"Milvus Lite","advantage":"Lightweight, easy to start","features":["VectorDB-as-a-library runs in notebooks/ laptops with a pip install","Best for learning and prototyping"]},"milvusStandalone":{"title":"Milvus Standalone","advantage":"Robust, single-machine deployment","features":["Complete vector database for production or testing","Ideal for datasets with up to millions of vectors"]},"milvusDistributed":{"title":"Milvus Distributed","advantage":"Scalable, enterprise-grade solution","features":["Highly reliable and distributed vector database with comprehensive toolkit","Scale horizontally to handle billions of vectors"]},"cloud":{"title":"Zilliz Cloud","advantage":"Fully managed with minimal operations","features":["Available in both serverless and dedicated cluster","SaaS and BYOC options for different security and compliance requirements"]},"deployModels":"Learn more about different <0>Milvus deployment models</0>"},"developSection":{"title":"Start building your GenAI app now","subTitle":"Guided with notebooks developed by us and our community","rag":"RAG","imgSearch":"Image Search","multimodal":"Multimodal Search","hybridSearch":"Hybrid Search","graphRag":"Graph RAG","meetup":{"title":"Unstructured Data Meetups","desc":"Join a Community of Passionate Developers and Engineers Dedicated to Gen AI."}},"subscribeSection":{"title":"Join the community of developers building GenAI apps with Milvus, now with over <0>25 million downloads</0>","subscribe":{"title":"Get Milvus Updates","desc":"Subscribe to get updates on the latest Milvus releases, tutorials and training from Zilliz, the creator and key maintainer of Milvus.","email":"Email"}},"productionSection":{"title":"Trusted for production workloads"}}'),ez=JSON.parse('{"title":"What is Milvus?","desc":"Everything you need to know about Milvus in less than 10 minutes.","embedding":{"title":"What are vector embeddings?","desc1":"Vector embeddings are numerical representations derived from machine learning models, encapsulating the semantic meaning of unstructured data. These embeddings are generated through the analysis of complex correlations within data by neural networks or transformer architectures, creating a dense vector space where each point corresponds to the \\"meaning\\" of data objects, such as words in a document.\xa0","desc2":"This process transforms textual or other unstructured data into vectors that reflect semantic similarities—words with related meanings are positioned closer together in this multi-dimensional space, facilitating a type of search known as \\"dense vector search.\\" This contrasts with traditional keyword search, which relies on exact matches and uses sparse vectors. The development of vector embeddings, often stemming from foundational models trained extensively by major tech firms, allows for more nuanced searches that capture the essence of the data, moving beyond the limitations of lexical or sparse vector search methods."},"useFor":{"title":"What can I use vector embeddings for?","content":"Vector embeddings can be utilized across various applications, enhancing efficiency and accuracy in various ways. Here are some of the most frequent use cases:","keys":[{"title":"Finding Similar Images, Videos, or Audio Files","content":"Vector embeddings enable searching for similar multimedia content by content rather than just keywords, using Convolutional Neural Networks (CNNs) to analyze images, video frames, or audio segments. This allows for advanced searches, like finding images based on sound cues or videos through image queries, by comparing the embedded representations stored in vector databases."},{"title":"Accelerating Drug Discovery","content":"In the pharmaceutical industry, vector embeddings can encode chemical structures of compounds, facilitating the identification of promising drug candidates by measuring their similarity to target proteins. This accelerates the drug discovery process, saving time and resources by focusing on the most viable leads."},{"title":"Boosting Search Relevance with Semantic Search","content":"By embedding internal documents into vectors, organizations can leverage semantic search to improve the relevance of search results. This method uses the concept of Retrieval Augmented Generation (RAG) to understand the intent behind queries, providing answers from a company\'s data through AI models like ChatGPT, thereby reducing irrelevant results and AI hallucinations."},{"title":"Recommender Systems","content":"Vector embeddings revolutionize recommender systems by representing users and items as embeddings to measure similarity. This approach enables personalized recommendations based on individual preferences, enhancing user satisfaction and engagement with online platforms."},{"title":"Anomaly Detection","content":"In fields such as fraud detection, network security, and industrial monitoring, vector embeddings are instrumental in identifying unusual patterns. Data points represented as embeddings allow for detecting anomalies by calculating distances or dissimilarities, facilitating early identification and preventive measures against potential issues."}]},"milvusIsAVdb":{"title":"Milvus is a vector database. What does that mean?","desc1":"Vector databases are specialized systems designed for managing and retrieving unstructured data through vector embeddings and numerical representations that capture the essence of data items like images, audio, videos, and textual content. Unlike traditional relational databases that handle structured data with precise search operations, vector databases excel in semantic similarity searches using techniques such as the Approximate Nearest Neighbor (ANN) algorithm. This capability is crucial for developing applications across various domains, including recommender systems, chatbots, and multimedia content search tools, and for addressing the challenges posed by AI and large language models like ChatGPT, such as understanding context and nuances and AI hallucination.","desc2":"The advent of vector databases like Milvus is transforming industries by enabling content-based searches across a vast array of unstructured data, moving beyond the constraints of human-generated labels. Key features that set vector databases apart include\xa0","features":["Scalability and tunability to handle growing data volumes","Multi-tenancy and data isolation for efficient resource use and privacy","A comprehensive suite of APIs for diverse programming languages","User-friendly interfaces that simplify interaction with complex data."],"desc3":"These attributes ensure that vector databases can meet the demands of modern applications, offering powerful tools for exploring and leveraging unstructured data in ways traditional databases cannot.","vdbVsVsl":{"title":"Vector Database vs. Vector Search Library","content1":"Vector search libraries like FAISS, ScaNN, and HNSW offer foundational tools for building prototype systems capable of performing efficient similarity searches and dense vector clustering. These libraries, while powerful and open-source, are designed primarily for vector retrieval and offer rapid setup with capabilities like handling large vector collections and providing interfaces for evaluation and parameter tuning. However, they fall short in terms of scalability, multi-tenancy, and dynamic data modification, making them less suitable for larger, more complex datasets and growing user bases.\xa0","content2":"In contrast, vector databases emerge as a more comprehensive solution designed to accommodate the storage and real-time retrieval of millions to billions of vectors. They provide a higher level of abstraction, scalability, cloud-nativity, and user-friendly features that surpass the basic functionalities of vector search libraries. While libraries like FAISS are integral components that vector databases may build upon, the latter are full-fledged services that simplify operations like data insertion and management, making them more aligned with the demands of large-scale, dynamic applications in the realm of unstructured data processing."},"vdbVsVsp":{"title":"Vector Databases vs. Vector search plugins for traditional databases","content1":"Vector databases and vector search plugins for traditional databases serve distinct roles in handling vector-based searches. Plugins like those in Elasticsearch 8.0 offer vector search capabilities within existing database architectures, functioning as enhancements rather than comprehensive solutions. These plugins lack a full-stack approach to embedding management and vector search, resulting in limitations and suboptimal performance for unstructured data applications.\xa0","content2":"Key features such as tunability and user-friendly APIs/SDKs, essential for effective vector database operation, are notably absent in vector search plugins. For instance, Elasticsearch\'s ANN engine, while supporting basic vector storage and querying, is limited by its indexing algorithm and distance metric options, offering less flexibility compared to a dedicated vector database like Milvus. Milvus, designed from the ground up as a vector database, provides a more intuitive API, broader support for indexing methods and distance metrics, and the potential for SQL-like querying, highlighting its superiority in managing and querying unstructured data. This fundamental difference underscores why vector databases, with their comprehensive feature sets and architecture tailored for unstructured data, are preferred over vector search plugins for achieving optimal search and management of vector embeddings."}},"difference":{"title":"How does Milvus differentiate from other vector databases?","desc":"Milvus stands out as a vector database with its scalable architecture and diverse capabilities designed to accelerate and unify search experiences across various applications. The key feature highlights are:","keys":[{"title":"Scalable and Elastic Architecture","content":"Milvus is engineered for exceptional scalability and elasticity, accommodating the dynamic demands of modern applications. It achieves this through service-oriented design, decoupling storage, coordinators, and workers, allowing for component-wise scaling. This modular approach ensures that different computational tasks can scale independently according to varying workloads, providing fine-grained resource allocation and isolation."},{"title":"Diverse Index Support","content":"Milvus supports an extensive array of over 10 index types, including widely-used ones such as HNSW, IVF, Product Quantization, and GPU-based indexing. This variety empowers developers to optimize searches according to specific performance and accuracy requirements, ensuring that the database can adapt to a wide range of applications and data characteristics. Continuous expansion of its index offerings, e.g. GPU index, further enhances Milvus\'s adaptability and effectiveness in handling complex search tasks."},{"title":"Versatile Search Capabilities","content":"Milvus offers a wide range of search types, including top-K Approximate Nearest Neighbor (ANN), Range ANN, and search with metadata filtering, and upcoming hybrid dense and sparse vector search. This diversity enables unmatched query flexibility and precision, granting developers the ability to customize data retrieval strategies to meet specific application demands, thereby optimizing both the relevance and efficiency of search results."},{"title":"Tunable Consistency","content":"Milvus offers a delta consistency model that allows users to specify a \\"staleness tolerance\\" for query data, enabling a tailored balance between query performance and data freshness. This flexibility is crucial for applications requiring up-to-date results without sacrificing response times, effectively supporting both strong and eventual consistency as per application needs."},{"title":"Hardware-Accelerated Compute Support","content":"Milvus is designed to leverage various types of compute capabilities, such as AVX512 and Neon for SIMD execution, alongside quantization, cache-aware optimizations, and GPU support. This approach enables efficient utilization of specific hardware strengths, ensuring rapid processing and cost-effective scalability. By tailoring resource use to the unique demands of different applications, Milvus enhances both the speed and efficiency of vector data management and search operations."}]},"workInNutshell":{"title":"How does Milvus work in a nutshell?","content":"Milvus is structured around a multi-layered architecture designed to efficiently handle and process vector data, ensuring scalability, tunability, and data isolation. Here\'s a simplified overview of its architecture:","sub1":{"title":"Access Layer","content":"This layer serves as the initial point of contact for external requests, utilizing stateless proxies for client connection management, static verification, and dynamic checks. These proxies also handle load balancing and are key to implementing Milvus\'s comprehensive API suite. Once the downstream service processes a request, the access layer routes the response back to the user."},"sub2":{"title":"Coordinator Service","content":"Acting as the central command, this service orchestrates load balancing and data management through four coordinators, which ensure efficient data, query, and index management.","features":["The Root Coordinator: managing data-related tasks and global timestamps","The Query Coordinator: overseeing query nodes for search operations\xa0","The Data Coordinator: handling data nodes and metadata","The Index Coordinator: maintaining index nodes and metadata"]},"sub3":{"title":"Worker Nodes","content":"Responsible for the actual execution of tasks, worker nodes are scalable pods that carry out commands from coordinators. They enable Milvus to adjust dynamically to changing data, query, and indexing demands, supporting the system\'s scalability and tunability."},"sub4":{"title":"Object Storage Layer","content":"Fundamental for data persistence, this layer consists of","features":["Meta store: using etcd for metadata snapshots and system health checks","Log broker: for streaming data persistence and recovery, utilizing Pulsar or RocksDB","Object storage: storing log snapshots, index files, and query results, with support for services like AWS S3, Azure Blob Storage, and MinIO"]}},"whereToGo":{"title":"Where to go from here?"}}'),eV=JSON.parse('{"layout":{"notFound":"404 Page Not Found","backtohome":"Take me back to the home page.","header":{"quick":"Quick Start","why":"Why Milvus","gui":"Admin","tutorials":"Tutorials","solution":"Scenarios","about":"About Milvus","doc":"Docs","blog":"Blog","tutorial":"Tutorial","benchmarks":"Benchmarks","bootcamp":"Bootcamp","try":"Try","loading":"Loading...","noresult":"No Result","search":"Search"},"footer":{"faq":{"question":{"title":"Most Related Questions"},"contact":{"title":"Didn\'t find what you need?","slack":{"label":"Discuss on Slack","link":"/slack"},"github":{"label":"Discuss on GitHub","link":"https://github.com/milvus-io/milvus/issues/"},"follow":{"label":"Follow up with me"},"dialog":{"title":"We will follow up on your question","desc":"Please leave your question here and we will be in touch.","placeholder1":"Your Email*","placeholder2":"Your Question*","submit":"Submit","invalid":"please input valid email and your question"}}},"questionBtn":{"link":"/slack","label":"Join Slack channel."},"issueBtn":{"label":"Report a bug.","docLabel":"Suggest new content."},"docIssueBtn":{"label":"Discuss it on GitHub.","docLabel":"Report doc issue."},"editBtn":{"label":"Edit this page."},"product":{"title":"Product","txt1":"Milvus","txt2":"Milvus Roadmap"},"doc":{"title":"Docs","txt1":"Quick Start","txt2":"FAQ","txt3":"Release Notes"},"tool":{"title":"Tool","txt1":"Milvus Sizing Tool"},"resource":{"title":"Resources","txt1":"GitHub","txt2":"Medium","txt3":"CSDN","txt4":"Milvus Bootcamp"},"contact":{"title":"Connect","wechat":"Wechat"},"content":"On this page"},"home":{"notification":{"version":"Version","available":"is now available! ","more":"Learn more about the new features and fixes→","join":"Join the Milvus Slack channel here","interact":"to interact with our community!","v2":{"title":"\uD83C\uDFAF Check out our site for Milvus v2.0","here":" Here "}},"section1":{"desc1":"The world\'s most popular open-source vector database","desc2":"Milvus is easy-to-use, highly reliable, scalable, robust, and blazing fast.","link":"Learn More","link2":"Get Started","community":"Community"},"section2":{"title":"What is Milvus","content":"Milvus is an open source vector database for massive-scale feature vectors. Built with heterogeneous computing architecture for the best cost efficiency. Searches over billion-scale vectors take only milliseconds with minimum computing resources. Milvus can be used in a wide variety of scenarios to boost AI development.","link":"Quick Start"},"section3":{"title":"Milvus Features","list":[{"title":"Comprehensive Similarity Metrics","content":"Milvus offers frequently used similarity metrics, including Euclidean distance, inner product, Hamming distance, Jaccard distance, etc., allowing you to explore vector similarity in the most effective and efficient way possible.","img":"metrics"},{"title":"Leading-Edge Performance","content":"Milvus is built on top of multiple optimized Approximate Nearest Neighbor Search (ANNS) indexing libraries, including <a href=\'https://github.com/facebookresearch/faiss\' target=\'_blank\'>faiss</a>, <a href=\'https://github.com/spotify/annoy\' target=\'_blank\'>annoy</a>, <a href=\'https://github.com/nmslib/hnswlib\' target=\'_blank\'>hnswlib</a>, etc., thus ensuring that you always get the best performance across various scenarios.","img":"performence"},{"title":"Dynamic Data Management","content":"No longer troubled by static data, you can operate data with insertion, deletion, search and update whenever needed.","img":"crud"},{"title":"Near Real Time Search","content":"Data is available for search almost immediately after being inserted and updated. Milvus does the heavy lifting in your best interests in terms of both result accuracy and data consistency.","img":"realtime"},{"title":"Cost Efficient","content":"Milvus harnesses the parallelism of modern processors and enables billion-scale similarity searches in milliseconds on a single off-the-shelf server.","img":"cost"},{"title":"Rich Data Type and Advanced Search","content":"Milvus supports various data types for fields in a record. You can also use advanced search methods, such as filtering, sorting and aggregation for one or multiple fields.","img":"search"},{"title":"Highly Scalable and Robust","content":"You can deploy Milvus in a distributed environment. To increase the capacity and reliability of a Milvus cluster, you can simply add more nodes.","img":"scalable"},{"title":"Cloud Native","content":"We make it easy for you to run Milvus on public cloud, private cloud, or somewhere in between.","img":"cloud"},{"title":"Ease of Use","content":"Milvus provides easy-to-use SDKs in Python, Java, Go and C++, as well as a RESTful API.","img":"availability"}]},"section4":{"title":"Open Source","desc1":"Milvus is open-sourced on GitHub. ","desc2":"Contributions and feedback are welcome!","contribute":"Contribute on GitHub","bootcamp":"Try Milvus Bootcamp"},"section5":{"desc":"Milvus is an LF AI Foundation incubation project."},"section8":{"title":"Scenarios","desc":"Step-by-step instructions to solve AI problems with Milvus.","img1":{"title":"Reverse Image Search","content":"High-performance, customizable reverse image search system built with the VGG neural network model"},"img2":{"title":"Personalized Recommender System","content":"High-performance recommender system built with the PaddlePaddle deep learning platform"},"img3":{"title":"Chemical Structure Similarity Search","content":"High-performance similarity search of massive-scale chemical structures"},"button":"Try on Cloud","viewall":"View all scenarios"},"section6":{"title":"Milvus User Community"},"section7":{"title":"Get Involved","list":[{"title":"Use Milvus","desc":"Open-source vector database built to power AI applications and vector similarity search.","type":"milvus","urlList":[{"title":"Get Started >","url":"/docs/install_milvus.md"}]},{"title":"Contribute","desc":"Milvus is a community project. We encourage you to join the effort and contribute feedback, ideas and code.","type":"contribute","urlList":[{"title":"Join Us on GitHub >","url":"https://github.com/milvus-io"}]},{"title":"Follow Us","desc":"Stay up to date with the latest Milvus news.","type":"follow","urlList":[]},{"title":"Join Our Mailing List","desc":"","type":"conversation","urlList":[{"title":"Announcement >","url":"https://lists.lfaidata.foundation/g/milvus-announce"},{"title":"Technical discussion >","url":"https://lists.lfaidata.foundation/g/milvus-technical-discuss"},{"title":"Technical Steering Committee >","url":"https://lists.lfaidata.foundation/g/milvus-tsc"}]}]}},"scenarios":{"section1":{"title":"Building The Search Engine For The AI Era","desc":"Adopted by hundreds of organizations and institutions worldwide, Milvus empowers applications in a variety of fields, including image processing, computer vision, natural language processing, voice recognition, recommender systems, drug discovery, etc."},"section2":{"desc1":"The demand for processing unstructured data such as pictures, videos, voices, and text is continuously increasing with the emergence of emerging applications such as smart cities, short videos, personalized product recommendations, and visual product search. The most mainstream method for processing these unstructured data is to use artificial intelligence technology (deep learning algorithms) to extract the features of these unstructured data, and use feature vectors to represent them, and then calculate and retrieve these feature vectors to achieve non-unstructured data. Analysis and retrieval of structured data.","desc2":"Milvus is designed to facilitate users to easily calculate and retrieve feature vectors. It supports rich feature vector indexing algorithms and the scheduling of heterogeneous computing resources. It has a complete user interface, data management components, and graphical management tools. Cloud-native The design concept allows Milvus to easily achieve horizontal expansion and high availability based on K8S. Since the product has been open sourced, it has received recognition and support from a large number of users. At present, the global community scale exceeds 3,000 people and there are more than 50 enterprise users.","desc3":"With the optimization of vector retrieval algorithms and the integration of heterogeneous computing resources, Milvus can provide stable and high-performance vector retrieval support for enterprise applications. In most scenarios, when the Top 1 recall rate is guaranteed to be 100%, and the Top100 recall rate is not less than 95%, the retrieval time for millions of data scales is 0.01 seconds, and the retrieval time for 100 million data scales is 0.1 seconds. Retrieval time of billions of data scale seconds."},"section3":{"title":"What Milvus Can help","list":[{"title":"Computer Vision","desc":"Milvus can support various applications in the field of computer vision with picture and video processing as its core, especially the efficient processing of ultra-large-scale data, making Milvus widely used in the field of computer vision.","list":["Search by image","Image deduplication","Video deduplication","Product search by product"],"img":"cv","titleHref":"https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/pic_search/README.md","href":"https://zilliz.com/milvus-demos/reverse-image-search"},{"title":"Natural language processing","desc":"Vectorization of semantic features for words, sentences, articles, etc. is becoming the mainstream technology for natural language processing. Semantic analysis by comparing the distance of semantic feature vectors is being adopted by a large number of semantic analysis solutions. Usability, has been widely used in related fields.","list":["Semantic extraction","Personalized recommendation","Corpus analysis and recommendation"],"img":"nlp","titleHref":"https://github.com/milvus-io/bootcamp/tree/master/solutions/QA_System","href":"http://40.117.75.127:8005/"},{"title":"Traditional vector calculations","desc":"There are also a lot of vector calculation scenarios in the traditional data processing field. Using traditional calculation methods requires a lot of computing power. With advanced algorithms, Milvus can increase the vector data processing capacity by at least two orders of magnitude with the same computing power resources.","list":["Molecular structural similarity analysis","Molecular pharmacological analysis","Virtual screening of drug molecules"],"img":"molsearch","titleHref":"https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md","href":"http://40.117.75.127:8002/"},{"title":"Audio data processing","desc":"Using deep learning models to analyze and process audio data can greatly improve the accuracy of speech recognition, and its core is to vectorize related audio slices and judge the meaning of its expression through the calculation of vector distance. Therefore, Milvus also have rich applications in speech , Music and other audio data processing fields.","list":["Personalized music recommendation","Music deduplication","Voiceprint verification","Speech recognition","Intelligent voice assistant","Intelligent translation robot"],"img":"audio","href":""}]}},"gui":{"section1":{"title":"Get Milvus EM","desc":"an easy-to-use milvus administration platform","link":"Get started"},"section2":{"desc1":"The demand for processing unstructured data such as pictures, videos, voices, and text is continuously increasing with the emergence of emerging applications such as smart cities, short videos, personalized product recommendations, and visual product search. The most mainstream method for processing these unstructured data is to use artificial intelligence technology (deep learning algorithms) to extract the features of these unstructured data, and use feature vectors to represent them, and then calculate and retrieve these feature vectors to achieve non-unstructured data. Analysis and retrieval of structured data.","desc2":"Milvus is designed to facilitate users to easily calculate and retrieve feature vectors. It supports rich feature vector indexing algorithms and the scheduling of heterogeneous computing resources. It has a complete user interface, data management components, and graphical management tools. Cloud-native The design concept allows Milvus to easily achieve horizontal expansion and high availability based on K8S. Since the product has been open sourced, it has received recognition and support from a large number of users. At present, the global community scale exceeds 3,000 people and there are more than 50 enterprise users.","desc3":"With the optimization of vector retrieval algorithms and the integration of heterogeneous computing resources, Milvus can provide stable and high-performance vector retrieval support for enterprise applications. In most scenarios, when the Top 1 recall rate is guaranteed to be 100%, and the Top100 recall rate is not less than 95%, the retrieval time for millions of data scales is 0.01 seconds, and the retrieval time for 100 million data scales is 0.1 seconds. Retrieval time of billions of data scale seconds."},"section3":{"title":"Install and Run","desc":"Then open your browser and visit","help":"NEED HELP?"},"section4":{"feature1":{"title":"Similarity Search ","desc1":"Quick vector similarity verification"},"feature2":{"title":"Manipulate your data through an intuitive GUI","desc1":"View collection as tree","desc2":"CRUD data and indexes in just a few clicks"},"feature3":{"title":"Easy Configuration","desc1":"Set up over 10\'s milvus pereference via GUI"}}},"selectMenu":{"comment":"Comment","github":"Create doc issue","sendBtn":"Send","cancelBtn":"Cancel","placeholder":"Leave a message"},"menu":{"home":"Home"},"community":{"slack":"Join Slack","github":"Join GitHub"}},"v2":{"header":{"navlist":[{"label":"What is Milvus?","link":"/docs/overview.md","icon":null},{"label":"Documentation","link":"/docs","icon":null},{"label":"Blog","link":"https://blog.milvus.io/","icon":null},{"label":"Contribute","link":"/community","icon":null},{"label":"GitHub","link":"https://github.com/milvus-io/milvus/","icon":"git"}]},"banner":{"entry":"Hacktoberfest is here! Dive into open source with Milvus. Join now","title":["Cloud-Native.","Highly Scalable.","Blazing Fast."],"subTitle":"Milvus","text":"Open-source vector database for unstructured data","startBtn":{"href":"/docs","label":"Get Started"},"contributeBtn":{"href":"/community/making_your_first_contributions.md","label":"Contribute"}},"slogan":{"text":"We have literally been unable to kill this thing. No matter what we’ve thrown at it.","author":"by Mi.Alato"},"content":{"feature":{"title":"Features","list":[{"title":"Cost-efficient","text":"Improving upon columnar storage and similarity search libraries like Faiss and HNSW, the Milvus vector database  provides efficient vector similarity search performance. With the acceleration of CPU, GPU, and FPGA, Milvus can retrieve billion-scale vectors within milliseconds.","img":"supporting"},{"title":"Cloud-scalable","text":"As a cloud-native vector database, Milvus supports horizontal scaling, which empowers storage and computation at any scale. ","img":"search"},{"title":"Built for Unstructured Data","text":"Milvus helps users focus on the semantic meaning of unstructured data without bothering with sharding, data persistence, or load balancing. The vector database supports high-performance hybrid vector similarity searches on a mixture of vectors and scalars.","img":"deployment"},{"title":"Community-driven","text":"As a graduate project announced by the LF AI & Data Foundation, the Milvus vector database community consists of over 2,000 enterprise users and many more contributors. ","img":"storage"},{"title":"Developer first","text":"The Milvus vector database provides a complete toolchain and a set of rich APIs for developers to implement development and operations fast and effortlessly.  ","img":"autoscaling"}]},"community":{"title":"Join the community","text1":"The Milvus vector database is open-sourced on GitHub.","text2":"We welcome contributions and feedback!","gitBtn":{"href":"/community","label":"Go to Community"}}},"footer":{"list":[{"title":"What is Milvus? ","text":"Open-source vector database for unstructured data.","href":"/docs/overview.md","label":"Get started","icons":[]},{"title":"Contribute","text":"The Milvus vector database is a community project. Join the effort and contribute code, docs, or application tutorials.","href":"https://github.com/milvus-io","label":"Join us on GitHub","icons":[]},{"title":"Follow us","text":"Stay up to date with the latest news and events in the world of vector databases.","href":"","label":"","icons":[{"href":"#","name":"wechat"},{"href":"https://medium.com/unstructured-data-service","name":"medium"},{"href":"https://twitter.com/milvusio","name":"twitter"},{"href":"/slack","name":"slack"}]}],"licence":{"text1":{"label":"\xa9 Milvus 2021","link":"#"},"text2":{"label":"Milvus","link":"/"},"text3":{"label":" and associated open source project names are trademarks of the LF AI & Data Foundation.","link":"#"},"list":[{"label":"Terms and conditions","link":"#"},{"label":"Compliance (data protection) ","link":"#"},{"label":"Privacy policy","link":"#"},{"label":"Cookie Policy","link":"#"}]}},"feedback":{"text1":"Is this page helpful?","text2":"Scored Successfully!"},"commit":"was last updated","docHome":{"title":"Blog","btnLabel":"Read More"}},"hackathon":{"firstSection":{"firstBanner":{"title":"Milvus Hacktoberfest 2021","content":"You know it\'s that time of the year again. <br />Hacktoberfest is coming! And this year, we are going in and going strong.","image":"../../images/hackathon/banner-image-1.svg","alert":"Spoiler alert - our biggest prize is spelled as D-R-O-N-E.","badge":"../../images/hackathon/badge.svg","btnLabel":"Quick Start","btnLink":"#quick_start"},"secondBanner":{"title":"What is Hacktoberfest","content":"Hacktoberfest is an annual month-long celebration of open source. It is a great opportunity for everyone, from seasoned developers to students and code newbies, from technical writers to UX designers, to contribute to open source communities and develop your skills, with the perks of winning limited edition swags.","image":"../../images/hackathon/banner-image-2.png"}},"secondSection":{"title":"What is Milvus","content":"Milvus, an open-source vector database built to power AI applications and vector similarity search, is participating for the first time! The Milvus community has planned a series of events and activities throughout October, and we would love for you to be a part of them!","btnLabel":"Explore Milvus","btnLink":"/docs/overview.md"},"thirdSection":{"title":"Quick Start","list":[{"stepNum":1,"title":"Sign Up","content":"Sign-up to Hacktoberfest on the event website.","iconType":"external","href":"https://hackathon-tracker.digitalocean.com/users/oauth/github?success_redirect=https://hacktoberfest.digitalocean.com/register/info&error_redirect=https://hacktoberfest.digitalocean.com/register"},{"stepNum":2,"title":"Join Discussion","content":"Create a Milvus Forum account and interact with other community members.","iconType":"external","href":"https://discuss.milvus.io/c/hacktoberfest/9"},{"stepNum":3,"title":"Pull Request","content":"Browse the following components and start creating pull requests.","iconType":"anchor","href":"#issue_list"}]},"forthSection":{"title":"How to Contribute","content":"Below we\'ve prepared lists of issues marked as <span>[hacktoberfest]</span> to get you warmed up. Feel free to take a crack at any open issues, unmarked ones included, or submit new ones yourselves. Just make sure to mention Hacktoberfest in your pull requests so we can set the topic and make sure they count toward your Hacktoberfest participation once deemed valid."},"fifthSection":{"title":"Issues","listHeader":["Component","Description","Issue / Guidelines"],"list":[{"cate":"Milvus Code","desc":"Fix bugs, improve code, or help us make a new feature come true.","icon":"../../images/hackathon/code.svg","issueHref":"https://github.com/milvus-io/milvus/issues?q=is%3Aopen+is%3Aissue+label%3AHacktoberfest","guideHref":"https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md"},{"cate":"Milvus Documentation","desc":"Improve, extend or add Milvus documentation. ","icon":"../../images/hackathon/doc.svg","issueHref":"https://github.com/milvus-io/milvus-docs/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest","guideHref":"https://github.com/milvus-io/milvus-docs/blob/v2.0.x/CONTRIBUTING.md"},{"cate":"Milvus Golang API reference","desc":"Help extend and add more examples to Golang API documentation.","icon":"../../images/hackathon/api.svg","issueHref":"https://github.com/milvus-io/milvus-sdk-go/issues?q=is%3Aopen+is%3Aissue+label%3AHACKTOBERFEST","guideHref":"https://github.com/milvus-io/milvus-sdk-go/blob/master/CONTRIBUTING.md"},{"cate":"Bootcamp / Tutorials","desc":"Showcase a project you built with Milvus.","icon":"../../images/hackathon/bootcamp.svg","issueHref":"","guideHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72#community-content-4"},{"cate":"Other community content","desc":"Write blog posts, create video content, design artwork, share your insight on website design, and more.","icon":"../../images/hackathon/others.svg","issueHref":"","guideHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72#community-content-4"}]},"sixthSection":{"title":"Claim your prize","content":"Every pull request counts. Don\'t forget to come back here to fill in your information once you\'ve made your contribution and we will send gifts your way.","btnLabel":"I’ve submitted my PR!","btnLink":"https://milvus.typeform.com/to/xvyhEadO","tip":"*Prize rules to apply,","tipLabel":"Learn More","tipHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72","image":"../../images/hackathon/prize.jpg","label1":"Biggest Prize","label2":"DJI Mavic Air 2","list":[{"image":"../../images/hackathon/prize-keybord.png","name":"Logitech Keyboard"},{"image":"../../images/hackathon/prize-sticker.png","name":"Milvus Sticker Packs"},{"image":"../../images/hackathon/prize-tshirt.png","name":"Milvus T-Shirts and Badge"}]},"seventhSection":{"title":"Events and Resources","content":"Please visit our Milvus Community Forum for resources you might need for Hacktoberfest and the events surrounding Hacktoberfest.","btnLabel":"Explore More","btnLink":"https://discuss.milvus.io/c/hacktoberfest/9","image":"../../images/hackathon/discuss-forum.png"},"eighthSection":{"title":"Contact Us","list":[{"href":"https://discuss.milvus.io/","icon":"../../images/hackathon/discourse.png","content":"Join in our Discourse Forum"},{"href":"https://join.slack.com/t/milvusio/shared_invite/zt-e0u4qu3k-bI2GDNys3ZqX1YCJ9OM~GQ","icon":"../../images/hackathon/slack.svg","content":"Join in our Slack Channel"}]}},"v3trans":{"404":{"title":"Uoops...something went wrong!","desc1":"Looks like you’ve wandered off too far!","desc2":"We can’t find the page you are looking for:(","gobtn":"Go to home page"},"desc":"every thing for V3 translation will be put here","home":{"banner":{"title":"Vector database built for scalable similarity search","desc":"Open-source, highly scalable, and blazing fast.","tryManaged":"Try Managed Milvus","getstart":"Try Open Source","watch":"Watch Video","star":"Stars at GitHub","contirbutor":"Contirbutors","downloads":"Downloads","users":"Users"},"feature":{"easy":{"title":"Easy to Use","desc":"With Milvus vector database, you can create a large scale similarity search service in less than a minute. Simple and intuitive SDKs are also available for a variety of different languages."},"fast":{"title":"Blazing Fast","desc":"Milvus is hardware efficient and provides advanced indexing algorithms, achieving a 10x performance boost in retrieval speed."},"available":{"title":"Highly Available","desc":"Milvus vector database has been battle-tested by over a thousand enterprise users in a variety of use cases. With extensive isolation of individual system components, Milvus is highly resilient and reliable."},"scalable":{"title":"Highly Scalable","desc":"The distributed and high-throughput nature of Milvus makes it a natural fit for serving large scale vector data. "},"cloud":{"title":"Cloud-native","desc":"Milvus vector database adopts a systemic approach to cloud-nativity, separating compute from storage and allowing you to scale both up and out."},"rich":{"title":"Feature-rich","desc":"Support for various data types, enhanced vector search with attribute filtering, UDF support, configurable consistency level, time travel, and more."},"title":"Fuel your machine learning deployment","desc":"Store, index, and manage massive embedding vectors generated by deep neural networks and other machine learning (ML) models."},"code":{"install":"Install milvus in 2 minutes","manage":"New way to manage vector data","search":"Vector search never so easy","learn":"Learn More"},"attu":{"title":"Simplified development","desc":"(Thanks for contribution from Zilliz)","sub-title":"Simplified development with","statistics":"View Milvus cluster statistics","manage":"Browse, query, and manage collections","operation":"Perform CRUD or bulk operations","download":"Download Attu","learn":"Learn more"}},"docs":{"homeTitle":"Home","blogTitle":"Blog","commitTrans":"was last updated at","faqTitle":"Most Related Questions","faqBtnGroupTitle":"Didn\'t find what you need?","scoreQuestion":"Is this page helpful?","scoreThanks":"Scored Successfully!","yes":"Yes","no":"No","contactFollow":"Follow up with me","contactSlack":"Discuss on Slack","contactGithub":"Discuss on GitHub","feedbackDialogTitle":"We will follow up on your question.","feedbackDialogContent":"Please leave your question here and we will be in touch.","emailAddress":"Email Address","emailInvaild":"Please input valid email.","yourQuestion":"Your Question","yourQuestionInvalid":"Please input valid question.","cancel":"Cancel","submit":"Submit","tocTitle":"On this page","btnGroup":{"editBtn":"Edit this page","issueBtn":"Report doc issue","bugBtn":"Report a bug","suggestBtn":"Request doc changes","pdfBtn":"Download PDF Doc","joinBtn":"Join Slack channel","discussBtn":"Discuss it on GitHub"}},"main":{"nav":{"docs":"Docs","tutorials":"Tutorials","tools":"Tools","blog":"Blog","community":"Community","bootcamp":"Bootcamps","demo":"Demo","video":"Video","getstarted":"Get Started","watchvideo":"Watch Video","about":"About","resources":"Resources","getinvolved":"Get Involved","repo":"Repo","forum":"Forum"},"h1":"Vector database built for scalable similarity search","desc":"Open-source, highly scalable, and blazing fast.","stars":"Stars at GitHub","contirbutors":"Contirbutors","downloads":"Downloads","customers":"Customers","communitydesc":"Milvus is backed by a strong open source community","communitytitle":"Join our community","customer":"The most popular vector database for enterprise users"},"signup":{"emailerror":"Email format error","thankyou":"Thank you, you have been added to our mailing list!","subscribed":"This email is already subscribed!","placeholder":"What’s your email?","signup":"Get the latest Milvus news from Zilliz","montyly":"Subscribe to get updates on the lastest Milvus releases, tutorials and trainings.","subscribe":"Subscribe"},"copyBtn":{"copyLabel":"Copy","copiedLabel":"Copied!"},"algolia":{"button":{"buttonText":"Search","buttonAriaLabel":"Search"},"modal":{"searchBox":{"resetButtonTitle":"Clear the query","resetButtonAriaLabel":"Clear the query","cancelButtonText":"Cancel","cancelButtonAriaLabel":"Cancel"},"startScreen":{"recentSearchesTitle":"Recent","noRecentSearchesText":"No recent searches","saveRecentSearchButtonTitle":"Save this search","removeRecentSearchButtonTitle":"Remove this search from history","favoriteSearchesTitle":"Favorite","removeFavoriteSearchButtonTitle":"Remove this search from favorites"},"errorScreen":{"titleText":"Unable to fetch results","helpText":"You might want to check your network connection."},"footer":{"selectText":"to select","navigateText":"to navigate","closeText":"to close","searchByText":"Search by"},"noResultsScreen":{"noResultsText":"No results for","suggestedQueryText":"Try searching for","openIssueText":"Believe this query should return results?","openIssueLinkText":"Let us know"}}},"cookie":{"title":"How we use cookies","desc":"This website stores cookies on your computer. By continuing to browse or by clicking ‘Accept’, you agree to the storing of cookies on your device to enhance your site experience and for analytical purposes."},"sizingTool":{"title":"Milvus Sizing Tool","subTitle":"Note: all the recommendations are calculated based on our lab data, you should adjust it with your own testing before deploying to production.","labels":{"dataSize":"Choose data size","vector":"Number of vectors (Million)","dimension":"Dimensions","index":"Index Type","indexType":"Choose index type","indexParam":"Choose index parameters","m":"M (Maximum degree of the node)","segmentSize":"Choose segment size","segment":"Segment (MB)"},"capacity":"Approximate capacity","memory":"Loading Memory","fileSize":"Raw file size","setups":{"title":"Minimum Milvus cluster setup","rootCoord":{"title":"Root Coord","tooltip":"Root coord handles data definition language (DDL) and data control language (DCL) requests, such as create or delete collections, partitions, or indexes, as well as manage TSO (timestamp Oracle) and time ticker issuing."},"queryCoord":{"title":"Query Coord","tootip":"Query coord manages topology and load balancing for the query nodes, and handoff from growing segments to sealed segments."},"dataCoord":{"title":"Data Coord","tooltip":"Data coord manages topology of the data nodes, maintains metadata, and triggers flush, compact, and other background data operations."},"indexCoord":{"title":"Index Coord","tooltip":"Index coord manages topology of the index nodes, builds index, and maintains index metadata."},"proxy":{"title":"Proxy","tooltip":"Proxy is the access layer of the system and endpoint to users. It validates client requests and reduces the returned results."},"queryNode":{"title":"Query Node","tooltip":"Query node retrieves incremental log data and turn them into growing segments by subscribing to the log broker, loads historical data from the object storage, and runs hybrid search between vector and scalar data."},"dataNode":{"title":"Data Node","tooltip":"Data node retrieves incremental log data by subscribing to the log broker, processes mutation requests, and packs log data into log snapshots and stores them in the object storage."},"indexNode":{"title":"Index Node","tooltip":"Index node builds indexes. Index nodes do not need to be memory resident, and can be implemented with the serverless framework."},"etcd":{"title":"ETCD"},"minio":{"title":"Minio"},"pulsar":{"title":"Pulsar"},"kafka":{"title":"Kafka"},"bookie":"Bookie","broker":"Broker","proxyLabel":"Proxy","zookeeper":"Zookeeper"},"buttons":{"helm":"Download Helm Chart configuration yml","operator":"Download Milvus Operator configuration yml","guide":"View install guide"},"installGuide":{"helm":"Helm Install Guide","operator":"Operator Install Guide"}},"slack":{"title":"Milvus Slack Community","desc":"Want to connect with other Milvus users to share ideas, get advice and updates on the latest Milvus releases? Join our Slack community! Fill out the form to request access."},"footnote":{"copyright":"Copyright \xa9 Milvus. {{year}} All rights reserved.","maintainer":"Made with Love <0></0> by the Devs from Zilliz"}},"status":{"subscribe":"Subscribe","wait":"Loading...","success":"Success","failed":"Failed"},"cookie":{"title":"How we use cookies","consent":"This website stores cookies on your computer. By continuing to browse or by clicking ‘Accept’, you agree to the storing of cookies on your device to enhance your site experience and for analytical purposes.","accept":"Accept","reject":"Reject"}}'),eF=JSON.parse('{"title":"Milvus Sizing Tool","subTitle":"Note: all the recommendations are calculated based on our lab data, you should adjust it with your own testing before deploying to production.","labels":{"dataSize":"Choose data size","vector":"Number of vectors (Million)","dimension":"Dimensions","index":"Index Type","indexType":"Choose index type","indexParam":"Choose index parameters","m":"M (Maximum degree of the node)","segmentSize":"Choose segment size","segment":"Segment (MB)"},"capacity":"Approximate capacity","memory":"Loading Memory","fileSize":"Raw file size","setups":{"title":"Minimum Milvus cluster setup in total","rootCoord":{"title":"Root Coord","tooltip":"Root coord handles data definition language (DDL) and data control language (DCL) requests, such as create or delete collections, partitions, or indexes, as well as manage TSO (timestamp Oracle) and time ticker issuing."},"queryCoord":{"title":"Query Coord","tootip":"Query coord manages topology and load balancing for the query nodes, and handoff from growing segments to sealed segments."},"dataCoord":{"title":"Data Coord","tooltip":"Data coord manages topology of the data nodes, maintains metadata, and triggers flush, compact, and other background data operations."},"indexCoord":{"title":"Index Coord","tooltip":"Index coord manages topology of the index nodes, builds index, and maintains index metadata."},"proxy":{"title":"Proxy","tooltip":"Proxy is the access layer of the system and endpoint to users. It validates client requests and reduces the returned results."},"queryNode":{"title":"Query Node","tooltip":"Query node retrieves incremental log data and turn them into growing segments by subscribing to the log broker, loads historical data from the object storage, and runs hybrid search between vector and scalar data."},"dataNode":{"title":"Data Node","tooltip":"Data node retrieves incremental log data by subscribing to the log broker, processes mutation requests, and packs log data into log snapshots and stores them in the object storage."},"indexNode":{"title":"Index Node","tooltip":"Index node builds indexes. Index nodes do not need to be memory resident, and can be implemented with the serverless framework."},"mixCoord":{"title":"Mix Coord","tooltip":"Mix coord is a combination of root coord, data coord and query coord. It is responsible for scheduling cluster background tasks, maintaining metadata topology, handling DDL, DCL, and TSO allocation. "},"etcd":{"title":"ETCD"},"minio":{"title":"Minio"},"pulsar":{"title":"Pulsar"},"kafka":{"title":"Kafka"},"bookie":"Bookie","broker":"Broker","proxyLabel":"Proxy","zookeeper":"Zookeeper"},"buttons":{"helm":"Download Helm Chart configuration yml","operator":"Download Milvus Operator configuration yml","guide":"View install guide"},"installGuide":{"helm":"Helm Install Guide","operator":"Operator Install Guide"},"milvus":"Milvus","dependency":"Dependencies","dependencyNote":"The values shown on the sizing tool are for reference only. Please make adjustments according to your actual resource usage for optimal configuration.","cluster":"Minimum Milvus cluster setup in total","total":"CPU, Memory","ssd":"SSD","disk":"Disk","coreInfo":"{{core}} core, {{memory}} GB","sizeInfo":"{{size}} GB"}'),eG=JSON.parse('{"title":"Use cases","desc":"Discover how Milvus helps enterprises build AI apps to drive their businesses","shareSection":{"title":"Share Your Story with Us!","desc":"Have you built something cool using Milvus or Zilliz Cloud? We want to hear all about it. You’ll get a free Zilliz hoody for sharing your project made with Milvus or Zilliz.","cta":"Submit My Story"}}'),eq=JSON.parse('{"title":"Join the Community","officeHours":{"title":"Join the Milvus Discord Community","content":"Find help, discover solutions, share ideas, and follow discussions. Get notified of upcoming Zilliz events!","button":"Join the Milvus Discord Server! "},"community":{"title":"Welcome to the Milvus Community","content":"The Milvus community is comprised of users and open source contributors that share new ideas, collaborate on projects, and promote learning. Our open-source community members contribute code, attend events, advocate for greater adoption of Milvus, and make many other valuable contributions. Read on to learn how you can get involved and become part of this amazing community.","features":{"learn":{"title":"Learn","content":"Expand your knowledge and skills in vector database technologies."},"build":{"title":"Build","content":"Contribute to the development of Milvus through open source collaboration."},"share":{"title":"Share","content":"Share best practices and lessons learned with the community at large."}}},"resource":"Resources","mail":{"title":"Mailing Lists","mailList":{"meeting":{"title":"Milvus Technical Meeting","content":"Join our next meeting to be involved in the discussion and decision making of Milvus‘ latest features and development timeline.","cta":"Learn more"},"event":{"title":"Event","content":"We host events, often. Click to find out the upcoming events near you.","cta":"More Events"},"video":{"title":"Video","content":"We upload videos, often. Click to watch the video tutorials，webinar replays and other video contents.","cta":"More Videos"}}}}'),eU=JSON.parse('{"title":"404: Page Not Found","content":"Oops! It looks like you\'ve taken a wrong turn.<0></0>The page you\'re looking for doesn\'t seem to exist.","subtitle":"But don’t worry, you can head back to where you need to be:","docs":"Milvus Docs","homepage":"Homepage","tutorial":"Milvus & GenAI Tutorials","explore":{"title":"Or, explore something new:","desc":"While you\'re here, check out these latest resources.","whatIsMilvus":{"title":"What is Milvus?","desc":"Everything you need to know about Milvus in less than 10 minutes.","learnMore":"Learn More"}}}'),eW=JSON.parse('{"title":"Milvus 文档","metaTitle":"Milvus 向量数据库文档","homepageDesc":"Milvus {{version}} 文档","feedback":{"title":"反馈","prompt":"此页对您是否有帮助?","comment":{"title":"向我们发送您的反馈","desc":"感谢您帮助我们改进 Milvus 文档。","inputLabel":"附加评论（可选）","cancel":"取消","send":"发送"},"thanks":"感谢您的宝贵反馈！"},"docAction":{"edit":"编辑本页","issue":"创建问题"},"anchors":{"title":"目录"},"navigation":{"title":"首页"},"translate":{"by":"翻译自"},"advertise":{"title":"想要更快、更简单、更好用的 Milvus SaaS服务 ？","content":"Zilliz Cloud是基于Milvus的全托管向量数据库，拥有更高性能，更易扩展，以及卓越性价比","ctaLabel":"免费试用 Zilliz Cloud"}}'),eJ=JSON.parse('{"intro":{"label":"Why Milvus","definition":"What is Milvus","cases":"Use Cases"},"docs":"Docs","tutorials":{"label":"Tutorials","codelabs":"Codelabs","bootcamp":"Bootcamp","demo":"Demos","video":"Video"},"tools":{"label":"Tools","attu":"Attu","cli":"Milvus CLI","sizing":"Sizing Tool","backup":"Milvus Backup"},"blog":"Blog","community":"Community","start":"Get Started"}'),eZ=JSON.parse('{"title":"What is Milvus?","desc":"Everything you need to know about Milvus in less than 10 minutes.","embedding":{"title":"What are vector embeddings?","desc1":"Vector embeddings are numerical representations derived from machine learning models, encapsulating the semantic meaning of unstructured data. These embeddings are generated through the analysis of complex correlations within data by neural networks or transformer architectures, creating a dense vector space where each point corresponds to the \\"meaning\\" of data objects, such as words in a document.\xa0","desc2":"This process transforms textual or other unstructured data into vectors that reflect semantic similarities—words with related meanings are positioned closer together in this multi-dimensional space, facilitating a type of search known as \\"dense vector search.\\" This contrasts with traditional keyword search, which relies on exact matches and uses sparse vectors. The development of vector embeddings, often stemming from foundational models trained extensively by major tech firms, allows for more nuanced searches that capture the essence of the data, moving beyond the limitations of lexical or sparse vector search methods."},"useFor":{"title":"What can I use vector embeddings for?","content":"Vector embeddings can be utilized across various applications, enhancing efficiency and accuracy in various ways. Here are some of the most frequent use cases:","keys":[{"title":"Finding Similar Images, Videos, or Audio Files","content":"Vector embeddings enable searching for similar multimedia content by content rather than just keywords, using Convolutional Neural Networks (CNNs) to analyze images, video frames, or audio segments. This allows for advanced searches, like finding images based on sound cues or videos through image queries, by comparing the embedded representations stored in vector databases."},{"title":"Accelerating Drug Discovery","content":"In the pharmaceutical industry, vector embeddings can encode chemical structures of compounds, facilitating the identification of promising drug candidates by measuring their similarity to target proteins. This accelerates the drug discovery process, saving time and resources by focusing on the most viable leads."},{"title":"Boosting Search Relevance with Semantic Search","content":"By embedding internal documents into vectors, organizations can leverage semantic search to improve the relevance of search results. This method uses the concept of Retrieval Augmented Generation (RAG) to understand the intent behind queries, providing answers from a company\'s data through AI models like ChatGPT, thereby reducing irrelevant results and AI hallucinations."},{"title":"Recommender Systems","content":"Vector embeddings revolutionize recommender systems by representing users and items as embeddings to measure similarity. This approach enables personalized recommendations based on individual preferences, enhancing user satisfaction and engagement with online platforms."},{"title":"Anomaly Detection","content":"In fields such as fraud detection, network security, and industrial monitoring, vector embeddings are instrumental in identifying unusual patterns. Data points represented as embeddings allow for detecting anomalies by calculating distances or dissimilarities, facilitating early identification and preventive measures against potential issues."}]},"milvusIsAVdb":{"title":"Milvus is a vector database. What does that mean?","desc1":"Vector databases are specialized systems designed for managing and retrieving unstructured data through vector embeddings and numerical representations that capture the essence of data items like images, audio, videos, and textual content. Unlike traditional relational databases that handle structured data with precise search operations, vector databases excel in semantic similarity searches using techniques such as the Approximate Nearest Neighbor (ANN) algorithm. This capability is crucial for developing applications across various domains, including recommender systems, chatbots, and multimedia content search tools, and for addressing the challenges posed by AI and large language models like ChatGPT, such as understanding context and nuances and AI hallucination.","desc2":"The advent of vector databases like Milvus is transforming industries by enabling content-based searches across a vast array of unstructured data, moving beyond the constraints of human-generated labels. Key features that set vector databases apart include\xa0","features":["Scalability and tunability to handle growing data volumes","Multi-tenancy and data isolation for efficient resource use and privacy","A comprehensive suite of APIs for diverse programming languages","User-friendly interfaces that simplify interaction with complex data."],"desc3":"These attributes ensure that vector databases can meet the demands of modern applications, offering powerful tools for exploring and leveraging unstructured data in ways traditional databases cannot.","vdbVsVsl":{"title":"Vector Database vs. Vector Search Library","content1":"Vector search libraries like FAISS, ScaNN, and HNSW offer foundational tools for building prototype systems capable of performing efficient similarity searches and dense vector clustering. These libraries, while powerful and open-source, are designed primarily for vector retrieval and offer rapid setup with capabilities like handling large vector collections and providing interfaces for evaluation and parameter tuning. However, they fall short in terms of scalability, multi-tenancy, and dynamic data modification, making them less suitable for larger, more complex datasets and growing user bases.\xa0","content2":"In contrast, vector databases emerge as a more comprehensive solution designed to accommodate the storage and real-time retrieval of millions to billions of vectors. They provide a higher level of abstraction, scalability, cloud-nativity, and user-friendly features that surpass the basic functionalities of vector search libraries. While libraries like FAISS are integral components that vector databases may build upon, the latter are full-fledged services that simplify operations like data insertion and management, making them more aligned with the demands of large-scale, dynamic applications in the realm of unstructured data processing."},"vdbVsVsp":{"title":"Vector Databases vs. Vector search plugins for traditional databases","content1":"Vector databases and vector search plugins for traditional databases serve distinct roles in handling vector-based searches. Plugins like those in Elasticsearch 8.0 offer vector search capabilities within existing database architectures, functioning as enhancements rather than comprehensive solutions. These plugins lack a full-stack approach to embedding management and vector search, resulting in limitations and suboptimal performance for unstructured data applications.\xa0","content2":"Key features such as tunability and user-friendly APIs/SDKs, essential for effective vector database operation, are notably absent in vector search plugins. For instance, Elasticsearch\'s ANN engine, while supporting basic vector storage and querying, is limited by its indexing algorithm and distance metric options, offering less flexibility compared to a dedicated vector database like Milvus. Milvus, designed from the ground up as a vector database, provides a more intuitive API, broader support for indexing methods and distance metrics, and the potential for SQL-like querying, highlighting its superiority in managing and querying unstructured data. This fundamental difference underscores why vector databases, with their comprehensive feature sets and architecture tailored for unstructured data, are preferred over vector search plugins for achieving optimal search and management of vector embeddings."}},"difference":{"title":"How does Milvus differentiate from other vector databases?","desc":"Milvus stands out as a vector database with its scalable architecture and diverse capabilities designed to accelerate and unify search experiences across various applications. The key feature highlights are:","keys":[{"title":"Scalable and Elastic Architecture","content":"Milvus is engineered for exceptional scalability and elasticity, accommodating the dynamic demands of modern applications. It achieves this through service-oriented design, decoupling storage, coordinators, and workers, allowing for component-wise scaling. This modular approach ensures that different computational tasks can scale independently according to varying workloads, providing fine-grained resource allocation and isolation."},{"title":"Diverse Index Support","content":"Milvus supports an extensive array of over 10 index types, including widely-used ones such as HNSW, IVF, Product Quantization, and GPU-based indexing. This variety empowers developers to optimize searches according to specific performance and accuracy requirements, ensuring that the database can adapt to a wide range of applications and data characteristics. Continuous expansion of its index offerings, e.g. GPU index, further enhances Milvus\'s adaptability and effectiveness in handling complex search tasks."},{"title":"Versatile Search Capabilities","content":"Milvus offers a wide range of search types, including top-K Approximate Nearest Neighbor (ANN), Range ANN, and search with metadata filtering, and upcoming hybrid dense and sparse vector search. This diversity enables unmatched query flexibility and precision, granting developers the ability to customize data retrieval strategies to meet specific application demands, thereby optimizing both the relevance and efficiency of search results."},{"title":"Tunable Consistency","content":"Milvus offers a delta consistency model that allows users to specify a \\"staleness tolerance\\" for query data, enabling a tailored balance between query performance and data freshness. This flexibility is crucial for applications requiring up-to-date results without sacrificing response times, effectively supporting both strong and eventual consistency as per application needs."},{"title":"Hardware-Accelerated Compute Support","content":"Milvus is designed to leverage various types of compute capabilities, such as AVX512 and Neon for SIMD execution, alongside quantization, cache-aware optimizations, and GPU support. This approach enables efficient utilization of specific hardware strengths, ensuring rapid processing and cost-effective scalability. By tailoring resource use to the unique demands of different applications, Milvus enhances both the speed and efficiency of vector data management and search operations."}]},"workInNutshell":{"title":"How does Milvus work in a nutshell?","content":"Milvus is structured around a multi-layered architecture designed to efficiently handle and process vector data, ensuring scalability, tunability, and data isolation. Here\'s a simplified overview of its architecture:","sub1":{"title":"Access Layer","content":"This layer serves as the initial point of contact for external requests, utilizing stateless proxies for client connection management, static verification, and dynamic checks. These proxies also handle load balancing and are key to implementing Milvus\'s comprehensive API suite. Once the downstream service processes a request, the access layer routes the response back to the user."},"sub2":{"title":"Coordinator Service","content":"Acting as the central command, this service orchestrates load balancing and data management through four coordinators, which ensure efficient data, query, and index management.","features":["The Root Coordinator: managing data-related tasks and global timestamps","The Query Coordinator: overseeing query nodes for search operations\xa0","The Data Coordinator: handling data nodes and metadata","The Index Coordinator: maintaining index nodes and metadata"]},"sub3":{"title":"Worker Nodes","content":"Responsible for the actual execution of tasks, worker nodes are scalable pods that carry out commands from coordinators. They enable Milvus to adjust dynamically to changing data, query, and indexing demands, supporting the system\'s scalability and tunability."},"sub4":{"title":"Object Storage Layer","content":"Fundamental for data persistence, this layer consists of","features":["Meta store: using etcd for metadata snapshots and system health checks","Log broker: for streaming data persistence and recovery, utilizing Pulsar or RocksDB","Object storage: storing log snapshots, index files, and query results, with support for services like AWS S3, Azure Blob Storage, and MinIO"]}},"whereToGo":{"title":"Where to go from here?"}}'),eK=JSON.parse('{"layout":{"notFound":"您访问的页面不存在","backtohome":"返回首页","header":{"quick":"快速开始","why":"为什么选择Milvus","gui":"Admin","tutorials":"教程","solution":"应用场景","about":"关于Milvus","doc":"文档","blog":"博客","tutorial":"教程","benchmarks":"性能评测","bootcamp":"训练营","try":"试用","loading":"加载中...","noresult":"未查询到数据","search":"搜索"},"footer":{"faq":{"question":{"title":"相关问题"},"contact":{"title":"没有找到您想要的问题？","slack":{"label":"在 Slack 上讨论","link":"/slack"},"github":{"label":"在 GitHub 上讨论","link":"https://github.com/milvus-io/milvus/issues/"},"follow":{"label":"让我们跟进问题"},"dialog":{"title":"我们将会跟进您的问题","desc":"请留下您的问题，我们将稍后联系您","placeholder1":"您的邮箱*","placeholder2":"您的问题*","submit":"提交","invalid":"请提交正确的邮箱和你的问题"}}},"questionBtn":{"link":"/slack","label":"加入 Slack"},"issueBtn":{"label":"提交 Bug","docLabel":"内容建议"},"docIssueBtn":{"label":"GitHub 讨论","docLabel":"提交 Issue"},"editBtn":{"label":"编辑"},"product":{"title":"产品","txt1":"Milvus","txt2":"Milvus 路线图"},"doc":{"title":"文档","txt1":"快速开始","txt2":"常见问题","txt3":"版本说明"},"tool":{"title":"工具","txt1":"资源评估工具"},"resource":{"title":"资源","txt1":"GitHub","txt2":"Medium","txt3":"CSDN","txt4":"Milvus 在线训练营"},"contact":{"title":"联系我们","wechat":"微信群聊"},"content":"本页目录"},"home":{"notification":{"version":"版本","available":"已更新!","more":"了解更多新的特性→","join":"加入 Milvus Slack 频道","interact":"与社区互动讨论!","v2":{"title":"\uD83C\uDFAF Check out our site for Milvus v2.0","here":" Here "}},"section1":{"desc1":"全球最受欢迎的开源向量数据库","desc2":"Milvus 使用方便、实用可靠、易于扩展、稳定高效和搜索迅速。","link":"了解更多","link2":"快速开始","community":"社区"},"section2":{"title":"什么是 Milvus","content":"Milvus 是一款开源的、针对海量特征向量的向量数据库。基于异构众核计算框架设计，成本更低，性能更好。 在有限的计算资源下，十亿向量搜索仅毫秒响应。Milvus 能够广泛应用于各种 AI 场景，为 AI 发展提供有效助力。","link":"快速开始"},"section3":{"title":"Milvus 特性","list":[{"title":"全面的相似度指标","content":"Milvus 支持各种常用的相似度计算指标，包括欧氏距离、内积、汉明距离和杰卡德距离等。您可以根据应用需求来选择最有效的向量相似度计算方式。","img":"support"},{"title":"业界领先的性能","content":"Milvus 基于高度优化的 Approximate Nearest Neighbor Search (ANNS) 索引库构建，包括 <a href=\'https://github.com/facebookresearch/faiss\' target=\'_blank\'>faiss</a>、 <a href=\'https://github.com/spotify/annoy\' target=\'_blank\'>annoy</a>、和 <a href=\'https://github.com/nmslib/hnswlib\' target=\'_blank\'>hnswlib</a> 等。您可以针对不同使用场景选择不同的索引类型。","img":"performence"},{"title":"动态数据管理","content":"您可以随时对数据进行插入、删除、搜索、更新等操作而无需受到静态数据带来的困扰。","img":"crud"},{"title":"近实时搜索","content":"在插入或更新数据之后，您可以几乎立刻对插入或更新过的数据进行搜索。Milvus 负责保证搜索结果的准确率和数据一致性。","img":"realtime"},{"title":"高成本效益","content":"Milvus 充分利用现代处理器的并行计算能力，可以在单台通用服务器上完成对十亿级数据的毫秒级搜索。","img":"cost"},{"title":"支持多种数据类型和高级搜索","content":"Milvus 的数据记录中的字段支持多种数据类型。您还可以对一个或多个字段使用高级搜索，例如过滤、排序和聚合。","img":"availability"},{"title":"高扩展性和可靠性","content":"您可以在分布式环境中部署 Milvus。如果要对集群扩容或者增加可靠性，您只需增加节点。","img":"scalable"},{"title":"云原生","content":"您可以轻松在公有云、私有云、或混合云上运行 Milvus。","img":"cloud"},{"title":"简单易用","content":"Milvus 提供了易用的 Python、Java、Go 和 C++ SDK，另外还提供了 RESTful API。","img":"hybrid"}]},"section4":{"title":"开源","desc1":"Milvus 是 GitHub 上的开源产品 ","desc2":"欢迎任何贡献和反馈","contribute":"在 GitHub 上贡献","bootcamp":"试用Bootcamp"},"section5":{"desc":"我们是一个 LF AI 基金会的孵化项目"},"section8":{"title":"应用场景","desc":"Step-by-step instructions to solve AI problems with Milvus.","img1":{"title":"以图搜图","content":"结合 VGG 神经网络模型的高性能、可自定义的以图搜图系统"},"img2":{"title":"个性化推荐系统","content":"结合 PaddlePaddle 深度学习平台的高性能个性化推荐系统"},"img3":{"title":"化学式相似度检索","content":"针对海量化学式的高性能相似度检索"},"button":"试用","viewall":"浏览更多"},"section6":{"title":"Milvus 用户社区"},"section7":{"title":"参与其中","list":[{"title":"使用 Milvus","desc":"Milvus 是一款开源的，针对海量特征向量的向量数据库","type":"milvus","urlList":[{"title":"快速开始 >","url":"/docs/install_milvus.md"}]},{"title":"贡献","desc":"Milvus 是一款社区产品，欢迎提供反馈与贡献代码","type":"contribute","urlList":[{"title":"在 GitHub 上加入我们 >","url":"https://github.com/milvus-io"},{"title":"在 Gitee 上加入我们 >","url":"https://gitee.com/milvus-io/milvus"}]},{"title":"关注我们","desc":"随时了解 Milvus 最新消息","type":"follow","urlList":[]},{"title":"加入邮件列表讨论","desc":"","type":"conversation","urlList":[{"title":"公告 >","url":"mailto:milvus-announce+subscribe@lists.lfai.foundation"},{"title":"技术讨论 >","url":"mailto:milvus-technical-discuss+subscribe@lists.lfai.foundation"},{"title":"技术指导委员会 >","url":"mailto:milvus-tsc+subscribe@lists.lfai.foundation"}]}]}},"scenarios":{"section1":{"title":"打造AI时代的向量数据库","desc":"Milvus 已经被广泛应用于多个领域，其中包括图像处理、机器视觉、自然语言处理、语音识别、推荐系统以及新药发现，在全球范围内被上百家组织和机构所采用"},"section2":{"desc1":"处理图片、视频、语音、文本等非结构化数据的需求正在随着智慧城市，短视频，商品个性化推荐，视觉商品搜索等新兴应用领域的出现而持续的增长。而处理这些非结构化数据最主流的方法就是通过人工智能技术（深度学习算法）提取这些非结构化数据的特征，并用特征向量来表示，然后通过对这些特征向量的计算和检索来实现对非结构化数据的分析与检索。","desc2":"Milvus就是为了方便用户能够方便的对特征向量进行计算和检索而设计，支持丰富的特征向量索引算法和异构计算资源的调度，具有完备的用户接口、数据管理组件和图形化管理工具，云原生的设计理念可以让 Milvus 基于K8S轻松实现水平拓展和高可用。自产品开源以来获得了广大用户的认可和支持，目前全球社区规模超过3000人，企业用户超过50家。","desc3":"Milvus凭借对向量检索算法的优化以及异构计算资源的整合，可以为企业级应用提供稳定、高性能的向量检索支持。在绝大部分场景中，保证Top 1召回率100%，同时Top100召回率不低于95%的情况下，百万级数据规模检索时间0.01秒级，亿级数据规模检索时间0.1秒级， 百亿级数据规模检索时间秒级。"},"section3":{"title":"Milvus 能做些什么","list":[{"title":"图像视频检索","desc":"深度学习模型最开始就是用来对图像、视频等进行处理，通过训练可以精准的提取图片、视频中的特征从而对图片、视频进行分类，打标签，以图搜图，以图搜视频等等。Milvus凭借其出色的性能和数据管理能力，可以支持各种深度学习模型，实现对海量图片和视频的高性能分析检索能力。","list":["图片搜索","图片去重","视频去重","以商品搜商品"],"img":"cv","titleHref":"https://github.com/milvus-io/bootcamp/blob/master/solutions/pic_search/README.md","href":"https://zilliz.com/milvus-demos/reverse-image-search?lan=cn"},{"title":"智能问答机器人","desc":"传统的问答机器人大都是基于规则的知识图谱方式实现，这种方式需要对大量的语料进行分类整理。而基于深度学习模型的实现方式可以彻底摆脱对语料的预处理，只需提供问题和答案的对应关系，通过自然语言处理的语义分析模型对问题库提取语义特征向量存入Milvus中，然后对提问的问题也进行语义特征向量提取，通过对向量特征的匹配就可以实现自动回复，轻松实现智能客服等应用。","list":["语义提取","个性化推荐","语料分析和推荐"],"img":"nlp","titleHref":"https://github.com/milvus-io/bootcamp/tree/master/solutions/QA_System","href":"http://40.117.75.127:8003/"},{"title":"赋能传统向量计算","desc":"在传统的数据处理领域也存在大量向量计算的场景，使用传统的计算方式需要消耗大量的算力而Milvus凭借先进的算法可以在同等算力资源下将向量数据处理能力提高至少两个数量级。","list":["分子结构相似性分析","分子药理分析","药物分子虚拟筛选"],"img":"molsearch","titleHref":"https://github.com/milvus-io/bootcamp/blob/master/solutions/mols_search/README.md","href":"http://40.117.75.127:8002/"},{"title":"音频数据处理","desc":"利用深度学习模型对音频数据进行分析和处理能够大大提高语音识别的准确率，而其核心也是对相关音频切片进行向量化处理并且通过向量距离的计算来判断其表达的含义，因此，Milvus在语音、音乐等音频数据处理领域的也有丰富的应用。","list":["个性化音乐推荐","音乐去重","声纹验证","语音识别","智能语音小助手","智能翻译机器人"],"img":"audio","href":""}]}},"gui":{"section1":{"title":"Get Milvus Admin","desc":"简单易用 Milvus 管理平台","link":"快速开始"},"section2":{"desc1":"The demand for processing unstructured data such as pictures, videos, voices, and text is continuously increasing with the emergence of emerging applications such as smart cities, short videos, personalized product recommendations, and visual product search. The most mainstream method for processing these unstructured data is to use artificial intelligence technology (deep learning algorithms) to extract the features of these unstructured data, and use feature vectors to represent them, and then calculate and retrieve these feature vectors to achieve non-unstructured data. Analysis and retrieval of structured data","desc2":"Milvus is designed to facilitate users to easily calculate and retrieve feature vectors. It supports rich feature vector indexing algorithms and the scheduling of heterogeneous computing resources. It has a complete user interface, data management components, and graphical management tools. Cloud-native The design concept allows Milvus to easily achieve horizontal expansion and high availability based on K8S. Since the product has been open sourced, it has received recognition and support from a large number of users. At present, the global community scale exceeds 3,000 people and there are more than 50 enterprise users","desc3":"With the optimization of vector retrieval algorithms and the integration of heterogeneous computing resources, Milvus can provide stable and high-performance vector retrieval support for enterprise applications. In most scenarios, when the Top 1 recall rate is guaranteed to be 100%, and the Top100 recall rate is not less than 95%, the retrieval time for millions of data scales is 0.01 seconds, and the retrieval time for 100 million data scales is 0.1 seconds. Retrieval time of billions of data scale seconds"},"section3":{"title":"安装与运行","desc":"打开浏览器，输入URL:","help":"需要帮助？"},"section4":{"feature1":{"title":"相似度搜索","desc1":"快速验证向量相似度，提升开发效率"},"feature2":{"title":"在图形界面上更直观的操作Milvus","desc1":"树形结构数据展示，一览无余","desc2":"只需要点几下鼠标就可以增删改查向量和设置索引"},"feature3":{"title":"全面设置Milvus","desc1":"通过GUI，您可以设置超过10多项Milvus配置"}}},"selectMenu":{"comment":"评论","github":"提交文档错误","sendBtn":"发送","cancelBtn":"取消","placeholder":"留下您的评论"},"menu":{"home":"首页"},"community":{"slack":"加入 Slack","github":"加入 GitHub"}},"v2":{"header":{"navlist":[{"label":"什么是 milvus?","link":"/docs/overview.md","icon":null},{"label":"文档","link":"/docs","icon":null},{"label":"博客","link":"https://blog.milvus.io/","icon":null},{"label":"社区","link":"/community","icon":null},{"label":"GitHub","link":"https://github.com/milvus-io/milvus/","icon":"git"}]},"banner":{"entry":"Hacktoberfest is here! Dive into open source with Milvus. Join now","title":["Cloud-Native.","Highly Scalable.","Blazing Fast."],"subTitle":"Milvus","text":"Open-source vector database for unstructured data","startBtn":{"href":"/docs","label":"Get Started"},"contributeBtn":{"href":"/community/making_your_first_contributions.md","label":"Contribute"}},"slogan":{"text":"We have literally been unable to kill this thing. No matter what we’ve thrown at it.","author":"by Mi.Alato"},"content":{"feature":{"title":"特性","list":[{"title":"经济高效","text":"高性能的列式存储和 Faiss，HNSWLib 等向量索引保证了 Milvus 可以高效实现数据查询。通过利用 CPU SiMD，GPU， FPGA 的加速，Milvus 可以实现千万级向量数据毫秒级召回。","img":"supporting"},{"title":"按需扩展","text":"云原生设计使的 Milvus 可以轻松横向扩展，能够支持任意规模的存储和计算。微服务化使得用户可以按需扩展，甚至 Auto Scaling。","img":"search"},{"title":"专注非结构化数据","text":" Milvus 帮助用户关注非结构化数据的语意本身，用户无需再关注 Sharding，数据持久化，负载均衡等复杂问题。Milvus 支持高性能向量标量混合查询，解锁了更多非结构化数据的处理方式。 ","img":"deployment"},{"title":"广受社区支持","text":"Milvus 作为 Linux LF&AI 及基金会的毕业项目，支持了超过1000家以上的企业级用户。我们拥有一个活跃且开放的社区，欢迎加入。","img":"storage"},{"title":"易于使用","text":"Milvus 支持丰富的数据类型，并提供了完善的多语言支持。通过 ORM API，Milvus 可以在笔记本，本地集群和云上提供统一的使用体验。我们同时提供了丰富的部署和可视化工具帮助用户更快的上手和运维。","img":"autoscaling"}]},"community":{"title":"加入社区","text1":"Milvus 在 GitHub 上开源","text2":"欢迎大家对开源项目做贡献!","gitBtn":{"href":"https://github.com/milvus-io/milvus/","label":"立即加入"}}},"footer":{"list":[{"title":"使用 Milvus","text":"Milvus 是一款开源向量数据库。","href":"/docs/overview.md","label":"快速开始","icons":[]},{"title":"贡献","text":"Milvus 是一款社区产品，欢迎提供反馈与贡献代码。","href":"https://github.com/milvus-io","label":"在 GitHub 上加入我们","icons":[]},{"title":"关注我们","text":"随时了解 Milvus 最新消息。","href":"","label":"","icons":[{"href":"#","name":"wechat"},{"href":"https://medium.com/unstructured-data-service","name":"medium"},{"href":"https://twitter.com/milvusio","name":"twitter"},{"href":"/slack","name":"slack"}]}],"licence":{"text1":{"label":"\xa9 Milvus 2021","link":"#"},"text2":{"label":"Milvus","link":"/"},"text3":{"label":" and associated open source project names are trademarks of the LF AI & Data Foundation","link":"#"},"list":[{"label":"Terms and conditions","link":"#"},{"label":"Compliance (data protection) ","link":"#"},{"label":"Privacy policy","link":"#"},{"label":"Cookie Policy","link":"#"}]}},"feedback":{"text1":"该页面是否对你有帮助?","text2":"评价成功!"},"commit":"更新于","docHome":{"title":"博客","btnLabel":"更多"}},"hackathon":{"firstSection":{"firstBanner":{"title":"Milvus Hacktoberfest 2021","content":"You know it\'s that time of the year again. <br />Hacktoberfest is coming! And this year, we are going in and going strong.","image":"../../images/hackathon/banner-image-1.svg","alert":"Spoiler alert - our biggest prize is spelled as D-R-O-N-E.","badge":"../../images/hackathon/badge.svg","btnLabel":"Quick Start","btnLink":"#quick_start"},"secondBanner":{"title":"What is Hacktoberfest","content":"Hacktoberfest is an annual month-long celebration of open source. It is a great opportunity for everyone, from seasoned developers to students and code newbies, from technical writers to UX designers, to contribute to open source communities and develop your skills, with the perks of winning limited edition swags.","image":"../../images/hackathon/banner-image-2.png"}},"secondSection":{"title":"What is Milvus","content":"Milvus, an open-source vector database built to power AI applications and vector similarity search, is participating for the first time! The Milvus community has planned a series of events and activities throughout October, and we would love for you to be a part of them!","btnLabel":"Explore Milvus","btnLink":"/docs/overview.md"},"thirdSection":{"title":"Quick Start","list":[{"stepNum":1,"title":"Sign Up","content":"Sign-up to Hacktoberfest on the event website.","iconType":"external","href":"https://hackathon-tracker.digitalocean.com/users/oauth/github?success_redirect=https://hacktoberfest.digitalocean.com/register/info&error_redirect=https://hacktoberfest.digitalocean.com/register"},{"stepNum":3,"title":"Pull Request","content":"Browse the following components and start creating pull requests.","iconType":"anchor","href":"#issue_list"}]},"forthSection":{"title":"How to Contribute","content":"Below we\'ve prepared lists of issues marked as <span>[hacktoberfest]</span> to get you warmed up. Feel free to take a crack at any open issues, unmarked ones included, or submit new ones yourselves. Just make sure to mention Hacktoberfest in your pull requests so we can set the topic and make sure they count toward your Hacktoberfest participation once deemed valid."},"fifthSection":{"title":"Issues","listHeader":["Component","Description","Issues / Guidelines"],"list":[{"cate":"Milvus Code","desc":"Fix bugs, improve code, or help us make a new feature come true.","icon":"../../images/hackathon/code.svg","issueHref":"https://github.com/milvus-io/milvus/issues?q=is%3Aopen+is%3Aissue+label%3AHacktoberfest","guideHref":"https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md"},{"cate":"Milvus Documentation","desc":"Improve, extend or add Milvus documentation. ","icon":"../../images/hackathon/doc.svg","issueHref":"https://github.com/milvus-io/milvus-docs/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest","guideHref":"https://github.com/milvus-io/milvus-docs/blob/v2.0.x/CONTRIBUTING.md"},{"cate":"Milvus Golang API reference","desc":"Help extend and add more examples to Golang API documentation.","icon":"../../images/hackathon/api.svg","issueHref":"https://github.com/milvus-io/milvus-sdk-go/issues?q=is%3Aopen+is%3Aissue+label%3AHACKTOBERFEST","guideHref":"https://github.com/milvus-io/milvus-sdk-go/blob/master/CONTRIBUTING.md"},{"cate":"Bootcamp / Tutorials","desc":"Showcase a project you built with Milvus.","icon":"../../images/hackathon/bootcamp.svg","issueHref":"","guideHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72#community-content-4"},{"cate":"Other community content","desc":"Write blog posts, create video content, design artwork, share your insight on website design, and more.","icon":"../../images/hackathon/others.svg","issueHref":"","guideHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72#community-content-4"}]},"sixthSection":{"title":"Claim your prize","content":"Every pull request counts. Don\'t forget to come back here to fill in your information once you\'ve made your contribution and we will send gifts your way.","btnLabel":"I’ve submitted my PR!","btnLink":"https://milvus.typeform.com/to/xvyhEadO","tip":"*Prize rules to apply,","tipLabel":"Learn More","tipHref":"https://discuss.milvus.io/t/join-hacktoberfest-2021-with-us/72","image":"../../images/hackathon/prize.jpg","label1":"Biggest Prize","label2":"DJI Mavic Air 2","list":[{"image":"../../images/hackathon/prize-keybord.png","name":""},{"image":"../../images/hackathon/prize-sticker.png","name":"Milvus Sticker Packs"},{"image":"../../images/hackathon/prize-tshirt.png","name":"Milvus T-Shirts and Badge"}]},"seventhSection":{"title":"Events and Resources","content":"Please visit our Milvus Community Forum for resources you might need for Hacktoberfest and the events surrounding Hacktoberfest.","btnLabel":"Explore More","btnLink":"https://discuss.milvus.io/c/hacktoberfest/9","image":"../../images/hackathon/discuss-forum.png"},"eighthSection":{"title":"Contact Us","list":[{"href":"https://discuss.milvus.io/","icon":"../../images/hackathon/discourse.png","content":"Join in our Discourse Forum"},{"href":"https://join.slack.com/t/milvusio/shared_invite/zt-e0u4qu3k-bI2GDNys3ZqX1YCJ9OM~GQ","icon":"../../images/hackathon/slack.svg","content":"Join in our Slack Channel"}]}},"v3trans":{"404":{"title":"噢。。好像哪里出错了！","desc1":"看起来我们走的有点远！","desc2":"找不到回家的路了:(","gobtn":"回到首页"},"desc":"所有第三版翻译放在此目录下","home":{"banner":{"title":"为可扩展的相似性搜索构建的向量数据库","desc":"开源、高度可扩展且速度极快。","tryManaged":"Try Managed Milvus","getstart":"快速开始","watch":"浏览视频","star":"GitHub 星数","contirbutor":"贡献者","downloads":"下载量","users":"用户"},"feature":{"title":"推动您的机器学习部署","desc":"存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量向量。","cloud":"云原生","cloud-desc":"云原生架构有助于实现突破性的效率和敏捷性。","search":"向量相似性搜索","search-desc":"矢量搜索与属性过滤相结合，以利用各种数据类型的协同作用","devfirst":"开发者优先","devfirst-desc":"Milvus 为您的机器学习应用提供全面的多语言 SDK。"},"code":{"install":"仅需2分钟，您就可以体验Milvus","manage":"像传统数据库一样管理数据","search":"向量搜索如此简单","learn":"了解更多"},"attu":{"title":"Simplified development","desc":"(感谢Zililz对Milvus的贡献)","sub-title":"Simplified development with","statistics":"查看 Milvus 集群统计信息","manage":"浏览、查询和管理 collection","operation":"执行 CRUD 或批量操作","download":"下载 Attu","learn":"了解更多"}},"docs":{"homeTitle":"首页","blogTitle":"博客","commitTrans":"最后更新于","faqTitle":"相关问题","faqBtnGroupTitle":"没有找到您想要的问题？","scoreQuestion":"该页面是否对你有帮助?","scoreThanks":"评价成功!","yes":"是","no":"否","contactFollow":"让我们跟进问题","contactSlack":"在Slack上讨论","contactGithub":"在GitHub上讨论","feedbackDialogTitle":"我们将会跟进您的问题。","feedbackDialogContent":"请留下您的问题，我们将稍后联系您。","emailAddress":"您的邮箱","emailInvaild":"请输入正确的邮箱。","yourQuestion":"您的问题","yourQuestionInvalid":"请输入正确的问题。","cancel":"取消","submit":"提交","tocTitle":"本页目录","btnGroup":{"editBtn":"编辑","issueBtn":"提交 issue","bugBtn":"提交 bug","suggestBtn":"内容建议","pdfBtn":"下载PDF文档","joinBtn":"加入 Slack","discussBtn":"在 GitHub 讨论"}},"main":{"nav":{"docs":"文档","tutorials":"教程","tools":"工具","blog":"博客","community":"社区","bootcamp":"训练营","demo":"示例","video":"视频","getstarted":"快速开始","watchvideo":"观看视频","about":"关于","resources":"资源","getinvolved":"开始参与","repo":"项目地址","forum":"论坛"},"h1":"高可用相似度搜索向量数据库","desc":"开源，高可用 并且 迅速","stars":"GitHub 星数","contirbutors":"贡献者","downloads":"下载","customers":"用户","communitydesc":"Milvus 背后有强大社区支持","communitytitle":"加入我们的社区","customer":"用户列表"},"signup":{"emailerror":"Email 格式错误","thankyou":"感谢，您已经被添加到邮件列表！","subscribed":"此邮箱地址已被注册！","placeholder":"您的邮箱是？","signup":"注册以收到我们的简讯","montyly":"每月收到精心挑选的数据科技发展动态。","subscribe":"注册"},"copyBtn":{"copyLabel":"复制","copiedLabel":"已复制!"},"algolia":{"button":{"buttonText":"搜索","buttonAriaLabel":"搜索"},"modal":{"searchBox":{"resetButtonTitle":"清除查询","resetButtonAriaLabel":"清除查询","cancelButtonText":"取消","cancelButtonAriaLabel":"取消"},"startScreen":{"recentSearchesTitle":"最近","noRecentSearchesText":"没有最近搜索","saveRecentSearchButtonTitle":"保存这个搜索","removeRecentSearchButtonTitle":"清除这条搜索记录","favoriteSearchesTitle":"收藏","removeFavoriteSearchButtonTitle":"从收藏中删除这条搜索记录"},"errorScreen":{"titleText":"无法取得搜索结果","helpText":"你可能需要检查你的网络。"},"footer":{"selectText":"选择","navigateText":"导航","closeText":"关闭","searchByText":"搜索"},"noResultsScreen":{"noResultsText":"没有结果","suggestedQueryText":"尝试搜索","openIssueText":"这条搜索应该返回结果？","openIssueLinkText":"让我们知道"}}},"sizingTool":{"title":"Milvus Sizing Tool","subTitle":"Note: all the recommendations are calculated based on our lab data, you should adjust it with your own testing before deploying to production.","labels":{"dataSize":"Choose data size","vector":"Number of vectors (Million)","dimension":"Dimensions","index":"Index Type","indexType":"Choose index type","indexParam":"Choose index parameters","m":"M (Maximum degree of the node)","segmentSize":"Choose segment size","segment":"Segment (MB)"},"capacity":"Approximate capacity","memory":"Memory","fileSize":"Raw file size","setups":{"title":"Minimum Milvus cluster setup","rootCoord":{"title":"Root Coord","tooltip":"Root coord handles data definition language (DDL) and data control language (DCL) requests, such as create or delete collections, partitions, or indexes, as well as manage TSO (timestamp Oracle) and time ticker issuing."},"queryCoord":{"title":"Query Coord","tootip":"Query coord manages topology and load balancing for the query nodes, and handoff from growing segments to sealed segments."},"dataCoord":{"title":"Data Coord","tooltip":"Data coord manages topology of the data nodes, maintains metadata, and triggers flush, compact, and other background data operations."},"indexCoord":{"title":"Index Coord","tooltip":"Index coord manages topology of the index nodes, builds index, and maintains index metadata."},"proxy":{"title":"Proxy","tooltip":"Proxy is the access layer of the system and endpoint to users. It validates client requests and reduces the returned results."},"queryNode":{"title":"Query Node","tooltip":"Query node retrieves incremental log data and turn them into growing segments by subscribing to the log broker, loads historical data from the object storage, and runs hybrid search between vector and scalar data."},"dataNode":{"title":"Data Node","tooltip":"Data node retrieves incremental log data by subscribing to the log broker, processes mutation requests, and packs log data into log snapshots and stores them in the object storage."},"indexNode":{"title":"Index Node","tooltip":"Index node builds indexes. Index nodes do not need to be memory resident, and can be implemented with the serverless framework."}},"button":"Download configuration yml"},"footnote":{"copyright":"Copyright \xa9 Milvus. {{year}} All rights reserved.","maintainer":"Made with Love <0></0> by the Dev from Zilliz"}}}'),eQ=JSON.parse('{"title":"Milvus Sizing Tool","subTitle":"Note: all the recommendations are calculated based on our lab data, you should adjust it with your own testing before deploying to production.","labels":{"dataSize":"Choose data size","vector":"Number of vectors (Million)","dimension":"Dimensions","index":"Index Type","indexType":"Choose index type","indexParam":"Choose index parameters","m":"M (Maximum degree of the node)","segmentSize":"Choose segment size","segment":"Segment (MB)"},"capacity":"Approximate capacity","memory":"Loading Memory","fileSize":"Raw file size","setups":{"title":"Minimum Milvus cluster setup","rootCoord":{"title":"Root Coord","tooltip":"Root coord handles data definition language (DDL) and data control language (DCL) requests, such as create or delete collections, partitions, or indexes, as well as manage TSO (timestamp Oracle) and time ticker issuing."},"queryCoord":{"title":"Query Coord","tootip":"Query coord manages topology and load balancing for the query nodes, and handoff from growing segments to sealed segments."},"dataCoord":{"title":"Data Coord","tooltip":"Data coord manages topology of the data nodes, maintains metadata, and triggers flush, compact, and other background data operations."},"indexCoord":{"title":"Index Coord","tooltip":"Index coord manages topology of the index nodes, builds index, and maintains index metadata."},"proxy":{"title":"Proxy","tooltip":"Proxy is the access layer of the system and endpoint to users. It validates client requests and reduces the returned results."},"queryNode":{"title":"Query Node","tooltip":"Query node retrieves incremental log data and turn them into growing segments by subscribing to the log broker, loads historical data from the object storage, and runs hybrid search between vector and scalar data."},"dataNode":{"title":"Data Node","tooltip":"Data node retrieves incremental log data by subscribing to the log broker, processes mutation requests, and packs log data into log snapshots and stores them in the object storage."},"indexNode":{"title":"Index Node","tooltip":"Index node builds indexes. Index nodes do not need to be memory resident, and can be implemented with the serverless framework."},"etcd":{"title":"ETCD"},"minio":{"title":"Minio"},"pulsar":{"title":"Pulsar"},"kafka":{"title":"Kafka"},"bookie":"Bookie","broker":"Broker","proxyLabel":"Proxy","zookeeper":"Zookeeper"},"buttons":{"helm":"Download Helm Chart configuration yml","operator":"Download Milvus Operator configuration yml","guide":"View install guide"},"installGuide":{"helm":"Helm Install Guide","operator":"Operator Install Guide"},"milvus":"Milvus","dependency":"Dependencies","cluster":"Minimum Milvus Cluster Setup","ssd":"SSD","disk":"Disk","coreInfo":"{{core}} core {{memory}} GB","sizeInfo":"{{size}} GB"}'),e$=JSON.parse('{"title":"Use cases","desc":"Discover how Milvus helps enterprises build AI apps to drive their businesses","shareSection":{"title":"Share Your Story with Us!","desc":"Have you built something cool using Milvus or Zilliz Cloud? We want to hear all about it. You’ll get a free Zilliz hoody for sharing your project made with Milvus or Zilliz.","cta":"Submit My Story"}}'),eY=JSON.parse('{"title":"Milvus Dokumentation","metaTitle":"Milvus Vektordatenbank Dokumentation","homepageDesc":"Milvus {{version}} Dokumentation","feedback":{"title":"Feedback","prompt":"War diese Seite hilfreich?","comment":{"title":"Schicken Sie uns Ihr Feedback","desc":"Vielen Dank, dass Sie uns dabei geholfen haben, die Milvus-Dokumentation zu verbessern.","inputLabel":"Zus\xe4tzliche Kommentare (optional)","cancel":"Annullieren","send":"Senden"},"thanks":"Vielen Dank f\xfcr Ihr wertvolles Feedback!"},"docAction":{"edit":"Edit diese Seite","issue":"Schaffen Sie ein Thema"},"anchors":{"title":"Tabelle der Inhalte"},"navigation":{"title":"Home"},"translate":{"by":"\xdcbersetzt von"}}'),eX=JSON.parse('{"title":"Documentaci\xf3n Milvus","metaTitle":"Documentaci\xf3n de la base de datos de vectores Milvus","homepageDesc":"Documentaci\xf3n de Milvus {{versi\xf3n}}","feedback":{"title":"Feedback","prompt":"\xbfFue \xfatil esta p\xe1gina?","comment":{"title":"Env\xedenos tu feedback","desc":"Gracias por ayudarnos a mejorar la documentaci\xf3n de Milvus.","inputLabel":"Comentarios adicionales (opcional)","cancel":"Cancelar","send":"Env\xedo"},"thanks":"\xa1Gracias por tu valioso feedback!"},"docAction":{"edit":"Editar esta p\xe1gina","issue":"Crear un tema"},"anchors":{"title":"Tabla de contenidos"},"navigation":{"title":"Home"},"translate":{"by":"Traducido por"}}'),e1=JSON.parse('{"title":"Documentation Milvus","metaTitle":"Documentation de la base de donn\xe9es vectorielle Milvus","homepageDesc":"Documentation Milvus {{version}}","feedback":{"title":"Feedback","prompt":"Cette page a-t - elle \xe9t\xe9 utile ?","comment":{"title":"Envoyez-nous votre feedback","desc":"Merci de nous aider \xe0 am\xe9liorer la documentation de Milvus.","inputLabel":"Commentaire suppl\xe9mentaire (facultatif)","cancel":"Annuler","send":"Envoyer"},"thanks":"Merci pour votre pr\xe9cieux feedback !"},"docAction":{"edit":"Edit cette page","issue":"Cr\xe9er un probl\xe8me"},"anchors":{"title":"Table de contenu"},"navigation":{"title":"Home"},"translate":{"by":"Traduit par"}}'),e0=JSON.parse('{"title":"Documentazione Milvus","metaTitle":"Documentazione della base di dati vettoriale Milvus","homepageDesc":"Documentazione di Milvus {{versione}}","feedback":{"title":"Feedback","prompt":"Questa pagina \xe8 stata utile?","comment":{"title":"Inviaci il tuo feedback","desc":"Grazie per averci aiutato a migliorare la documentazione di Milvus. ","inputLabel":"Commento aggiuntivo (opzionale)","cancel":"cancello","send":"inviare"},"thanks":"Grazie per il tuo prezioso feedback!"},"docAction":{"edit":"Modifica questa pagina","issue":"Creare un problema"},"anchors":{"title":"Tabella dei contenuti"},"navigation":{"title":"Casa"},"translate":{"by":"Tradotto da"}}');let e2={en:{common:eV,useCase:eG,intro:ez,header:eE,sizingTool:eF,home:eH,docs:eB,demo:eI,community:eq,notFound:eU},cn:{common:eK,useCase:e$,intro:eZ,header:eJ,sizingTool:eQ,docs:eW},zh:{common:eK,useCase:e$,intro:eZ,header:eJ,sizingTool:eQ,docs:eW},ja:{docs:JSON.parse('{"title":"Milvus ドキュメンテーション","metaTitle":"Milvus ベクトルデータベースのドキュメント","homepageDesc":"Milvus {{version}} ドキュメンテーション","feedback":{"title":"フィードバック","prompt":"このページは役に立ちましたか ？","comment":{"title":"フィードバックを送信します","desc":"Milvus ドキュメンテーションの改善を手伝ってくれてありがとう。","inputLabel":"追加コメント （ オプション ）","cancel":"キャンセル","send":"送信"},"thanks":"貴重なフィードバックありがとうございます！"},"docAction":{"edit":"このページを編集","issue":"問題の作成"},"anchors":{"title":"目次"},"navigation":{"title":"フロントページへ"},"translate":{"by":"翻訳"}}')},ko:{docs:JSON.parse('{"title":"Milvus 문서화","metaTitle":"Milvus 벡터 데이터베이스 문서","homepageDesc":"Milvus {{version}} 문서","feedback":{"title":"피드백","prompt":"이 페이지가 도움이 되었나요?","comment":{"title":"Feedback 보내주세요","desc":"Milvus 문서를 개선하는 데 도움을 주셔서 감사합니다.","inputLabel":"추가 주석 (선택 사항)","cancel":"취소","send":"보내기"},"thanks":"당신의 귀중한 피드백에 감사드립니다!"},"docAction":{"edit":"이 페이지 편집","issue":"문제 만들기"},"anchors":{"title":"목차 목록"},"navigation":{"title":"홈페이지"},"translate":{"by":"번역"}}')},fr:{docs:e1},de:{docs:eY},it:{docs:e0},pt:{docs:JSON.parse('{"title":"Documenta\xe7\xe3o Milvus","metaTitle":"Documenta\xe7\xe3o da base de dados vetorial Milvus","homepageDesc":"Documenta\xe7\xe3o da Milvus {{version}}","feedback":{"title":"Feedback","prompt":"Esta p\xe1gina foi \xfatil?","comment":{"title":"Envie-nos o seu feedback","desc":"Obrigado por nos ajudar a melhorar a documenta\xe7\xe3o da Milvus.","inputLabel":"Coment\xe1rio adicional (opcional)","cancel":"Cancelar","send":"Enviar"},"thanks":"Obrigado pelo seu valioso feedback!"},"docAction":{"edit":"Editar esta p\xe1gina","issue":"Criar uma quest\xe3o"},"anchors":{"title":"Tabela de conte\xfados"},"navigation":{"title":"Home"},"translate":{"by":"Traduzido por"}}')},es:{docs:eX}};Object.keys(e2),eD.use(x.Db).init({lng:"en",fallbackLng:"en",ns:["common"],keySeparator:".",interpolation:{escapeValue:!1},resources:e2}),n(31162),n(31807);var e3=function(e){let{Component:t,pageProps:n}=e;return(0,a.jsxs)(M.ErrorBoundary,{errorComponent:e=>{let{error:t,reset:n}=e;return(0,a.jsx)(L.default,{error:t,reset:n})},children:[(0,a.jsxs)(j(),{children:[(0,a.jsx)("link",{rel:"icon",href:"/favicon-32x32.png"}),(0,a.jsx)("meta",{name:"image",property:"og:image",content:"https://assets.zilliz.com/meta_image_milvus_d6510e10e0.png"}),(0,a.jsx)("meta",{property:"og:type",content:"WebSite"}),(0,a.jsx)("meta",{name:"keywords",content:"milvus, vector database, milvus docs, milvus blogs"})]}),(0,a.jsx)(t,{...n}),(0,a.jsx)(T(),{dangerouslySetInnerHTML:{__html:"(function (w, d, s, l, i) {\n                    w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n                    var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';\n                    j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);\n                    w[l].push({event: 'consent_update'});\n                })(window, document, 'script', 'dataLayer', 'GTM-5WPVTGSN');"},id:"google-tag-manager",defer:!0}),(0,a.jsx)(C,{})]})}},7854:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var i=n(11527),o=n(50959),a=n(29331),r=n(16840),s=n.n(r),l=n(91284);function c(e){let t=(0,o.useRef)(0);return(0,o.useEffect)(()=>{t.current>=3&&(0,l.redirect)("/"),t.current+=1,window.location.reload()},[]),(0,i.jsxs)("div",{className:s().errorContainer,children:[(0,i.jsx)("span",{className:s().iconWrapper,children:(0,i.jsx)(a.Ho,{})}),(0,i.jsx)("p",{className:s().prompt,children:"Loading..."})]})}},56147:function(e){e.exports={button:"index_button__n4Zko",buttonSm:"index_buttonSm__fxe1R",hover:"index_hover__wuqco",primaryBtn:"index_primaryBtn__QT6bI",primaryBtnSm:"index_primaryBtnSm__Zd7LQ",secondaryBtn:"index_secondaryBtn__vs8Ce",secondaryBtnSm:"index_secondaryBtnSm__pqG6N",flexstart:"index_flexstart__XAZ7N",flexend:"index_flexend__eIlWt",flexcenter:"index_flexcenter__PnO16",spaceBetween:"index_spaceBetween__aLHlC",customButton:"index_customButton__MF3s_",containedBtn:"index_containedBtn__564bV",textBtn:"index_textBtn__nKHco",outlinedBtn:"index_outlinedBtn__e7xBW",commonGridLayout:"index_commonGridLayout__NwvmY",resetNativeButton:"index_resetNativeButton__YI9Lo",heading1:"index_heading1__ijstq",heading2:"index_heading2__RMX1T",heading3:"index_heading3__GfA_h",heading4:"index_heading4__TVy4o",paragraph1:"index_paragraph1__7MjaH","paragraph1-bold":"index_paragraph1-bold__ItYTs","paragraph1-regular":"index_paragraph1-regular__vzJ5W",paragraph2:"index_paragraph2__sOPd2","paragraph2-bold":"index_paragraph2-bold__CfJ_p","paragraph2-regular":"index_paragraph2-regular__tsnNe",paragraph3:"index_paragraph3__Lx1uo","paragraph3-bold":"index_paragraph3-bold__Cd5CQ","paragraph3-regular":"index_paragraph3-regular__RjHw7",paragraph4:"index_paragraph4__3b7mN","paragraph4-bold":"index_paragraph4-bold__lcIX0","paragraph4-regular":"index_paragraph4-regular__tssDf",paragraph5:"index_paragraph5__Fa5qD","paragraph5-bold":"index_paragraph5-bold___HXwM","paragraph5-regular":"index_paragraph5-regular__Gl1N2",paragraph6:"index_paragraph6__iRwlM","paragraph6-bold":"index_paragraph6-bold___nBLd","paragraph6-regular":"index_paragraph6-regular__8flfC",overflowEllipsis3Row:"index_overflowEllipsis3Row__cjF9Z",consentContainer:"index_consentContainer__gEkaj",contentWrapper:"index_contentWrapper__CF_qZ",buttonsWrapper:"index_buttonsWrapper__oNmgS",acceptButton:"index_acceptButton__H0kWA",declineButton:"index_declineButton__zFd6_"}},16840:function(e){e.exports={button:"error_button__tv3aR",buttonSm:"error_buttonSm__IPqwT",hover:"error_hover__TGZuQ",primaryBtn:"error_primaryBtn__QU_JO",primaryBtnSm:"error_primaryBtnSm__h8Wo2",secondaryBtn:"error_secondaryBtn__4hUTS",secondaryBtnSm:"error_secondaryBtnSm__Q_iOa",flexstart:"error_flexstart__nzqrf",flexend:"error_flexend__ybkAt",flexcenter:"error_flexcenter__u4mZQ",spaceBetween:"error_spaceBetween__EBamV",customButton:"error_customButton__AkUeX",containedBtn:"error_containedBtn__xTkOW",textBtn:"error_textBtn__eqrvR",outlinedBtn:"error_outlinedBtn__2ylN8",commonGridLayout:"error_commonGridLayout__yM5Z7",resetNativeButton:"error_resetNativeButton__hs3ro",heading1:"error_heading1__gUyas",heading2:"error_heading2__aPpU_",heading3:"error_heading3__DLZ3W",heading4:"error_heading4___Lp2V",paragraph1:"error_paragraph1__y7H11","paragraph1-bold":"error_paragraph1-bold__nkcCQ","paragraph1-regular":"error_paragraph1-regular__zrExA",paragraph2:"error_paragraph2__RVHjm","paragraph2-bold":"error_paragraph2-bold__MHcB1","paragraph2-regular":"error_paragraph2-regular____nxL",paragraph3:"error_paragraph3__Mxb8H","paragraph3-bold":"error_paragraph3-bold__OEnLc","paragraph3-regular":"error_paragraph3-regular__PLYjE",paragraph4:"error_paragraph4__VtfBj","paragraph4-bold":"error_paragraph4-bold__hSCym","paragraph4-regular":"error_paragraph4-regular__W7eC8",paragraph5:"error_paragraph5__m4E2q","paragraph5-bold":"error_paragraph5-bold__tBhzd","paragraph5-regular":"error_paragraph5-regular__VFiK_",paragraph6:"error_paragraph6__hRgmW","paragraph6-bold":"error_paragraph6-bold___IDMU","paragraph6-regular":"error_paragraph6-regular__ddbiQ",overflowEllipsis3Row:"error_overflowEllipsis3Row__BR6_T",errorContainer:"error_errorContainer___Yzpp",iconWrapper:"error_iconWrapper__beQvV",rotate:"error_rotate__f6Jhi",prompt:"error_prompt__8EaY4"}},31162:function(){},31807:function(){},74203:function(e,t,n){e.exports=n(71721)},91284:function(e,t,n){e.exports=n(85239)},66867:function(e,t,n){e.exports=n(76602)},89626:function(e){e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},60627:function(e,t,n){"use strict";function i(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return i}})},48416:function(e,t,n){"use strict";function i(e,t){return(i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{Z:function(){return i}})},68775:function(e,t,n){"use strict";let i;n.d(t,{cC:function(){return T},Db:function(){return O},$G:function(){return P}});var o=n(50959),a=n(89626),r=n.n(a),s=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function l(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(r()[n[1]]||"/"===e.charAt(e.length-2))&&(t.voidElement=!0),t.name.startsWith("!--"))){var i=e.indexOf("-->");return{type:"comment",comment:-1!==i?e.slice(4,i):""}}for(var o=new RegExp(s),a=null;null!==(a=o.exec(e));)if(a[0].trim()){if(a[1]){var l=a[1].trim(),c=[l,""];l.indexOf("=")>-1&&(c=l.split("=")),t.attrs[c[0]]=c[1],o.lastIndex--}else a[2]&&(t.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1))}return t}var c=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,u=/^\s*$/,d=Object.create(null),p={parse:function(e,t){t||(t={}),t.components||(t.components=d);var n,i=[],o=[],a=-1,r=!1;if(0!==e.indexOf("<")){var s=e.indexOf("<");i.push({type:"text",content:-1===s?e:e.substring(0,s)})}return e.replace(c,function(s,c){if(r){if(s!=="</"+n.name+">")return;r=!1}var d,p="/"!==s.charAt(1),h=s.startsWith("<!--"),g=c+s.length,f=e.charAt(g);if(h){var m=l(s);return a<0?i.push(m):(d=o[a]).children.push(m),i}if(p&&(a++,"tag"===(n=l(s)).type&&t.components[n.name]&&(n.type="component",r=!0),n.voidElement||r||!f||"<"===f||n.children.push({type:"text",content:e.slice(g,e.indexOf("<",g))}),0===a&&i.push(n),(d=o[a-1])&&d.children.push(n),o[a]=n),(!p||n.voidElement)&&(a>-1&&(n.voidElement||n.name===s.slice(2,-1))&&(n=-1==--a?i:o[a]),!r&&"<"!==f&&f)){d=-1===a?i:o[a].children;var v=e.indexOf("<",g),b=e.slice(g,-1===v?void 0:v);u.test(b)&&(b=" "),(v>-1&&a+d.length>=0||" "!==b)&&d.push({type:"text",content:b})}}),i}};function h(){if(console&&console.warn){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&(t[0]=`react-i18next:: ${t[0]}`),console.warn(...t)}}let g={};function f(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&g[t[0]]||("string"==typeof t[0]&&(g[t[0]]=new Date),h(...t))}let m=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}};function v(e,t,n){e.loadNamespaces(t,m(e,n))}function b(e,t,n,i){"string"==typeof n&&(n=[n]),n.forEach(t=>{0>e.options.ns.indexOf(t)&&e.options.ns.push(t)}),e.loadLanguages(t,m(e,i))}let y=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,k={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"\xa9","&#169;":"\xa9","&reg;":"\xae","&#174;":"\xae","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},x=e=>k[e],w={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(y,x)};function S(e,t){if(!e)return!1;let n=e.props?e.props.children:e.children;return t?n.length>0:!!n}function C(e){if(!e)return[];let t=e.props?e.props.children:e.children;return e.props&&e.props.i18nIsDynamicList?M(t):t}function M(e){return Array.isArray(e)?e:[e]}let O={type:"3rdParty",init(e){!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w={...w,...e}}(e.options.react),i=e}},j=(0,o.createContext)();class _{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}function T(e){let{children:t,count:n,parent:a,i18nKey:r,context:s,tOptions:l={},values:c,defaults:u,components:d,ns:g,i18n:m,t:v,shouldUnescape:b,...y}=e,{i18n:k,defaultNS:x}=(0,o.useContext)(j)||{},O=m||k||i,_=v||O&&O.t.bind(O);return function(e){let{children:t,count:n,parent:a,i18nKey:r,context:s,tOptions:l={},values:c,defaults:u,components:d,ns:g,i18n:m,t:v,shouldUnescape:b,...y}=e,k=m||i;if(!k)return f("You will need to pass in an i18next instance by using i18nextReactModule"),t;let x=v||k.t.bind(k)||(e=>e),O={...w,...k.options&&k.options.react},j=g||x.ns||k.options&&k.options.defaultNS;j="string"==typeof j?[j]:j||["translation"];let _=function e(t,n){if(!t)return"";let i="",a=M(t),r=n.transSupportBasicHtmlNodes&&n.transKeepBasicHtmlNodesFor?n.transKeepBasicHtmlNodesFor:[];return a.forEach((t,a)=>{if("string"==typeof t)i+=`${t}`;else if((0,o.isValidElement)(t)){let o=Object.keys(t.props).length,s=r.indexOf(t.type)>-1,l=t.props.children;if(!l&&s&&0===o)i+=`<${t.type}/>`;else if(l||s&&0===o){if(t.props.i18nIsDynamicList)i+=`<${a}></${a}>`;else if(s&&1===o&&"string"==typeof l)i+=`<${t.type}>${l}</${t.type}>`;else{let t=e(l,n);i+=`<${a}>${t}</${a}>`}}else i+=`<${a}></${a}>`}else if(null===t)h("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"==typeof t){let{format:e,...n}=t,o=Object.keys(n);if(1===o.length){let t=e?`${o[0]}, ${e}`:o[0];i+=`{{${t}}}`}else h("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",t)}else h("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",t)}),i}(t,O),T=u||_||O.transEmptyNodeValue||r,{hashTransKey:L}=O,N=r||(L?L(_||T):_||T);k.options&&k.options.interpolation&&k.options.interpolation.defaultVariables&&(c=c&&Object.keys(c).length>0?{...c,...k.options.interpolation.defaultVariables}:{...k.options.interpolation.defaultVariables});let P=c||void 0!==n||!t?l.interpolation:{interpolation:{...l.interpolation,prefix:"#$?",suffix:"?$#"}},A={...l,context:s||l.context,count:n,...c,...P,defaultValue:T,ns:j},R=N?x(N,A):T;d&&Object.keys(d).forEach(e=>{let t=d[e];"function"==typeof t.type||!t.props||!t.props.children||0>R.indexOf(`${e}/>`)&&0>R.indexOf(`${e} />`)||(d[e]=(0,o.createElement)(function(){return(0,o.createElement)(o.Fragment,null,t)}))});let D=function(e,t,n,i,a,r){if(""===t)return[];let s=i.transKeepBasicHtmlNodesFor||[],l=t&&new RegExp(s.map(e=>`<${e}`).join("|")).test(t);if(!e&&!l&&!r)return[t];let c={};!function e(t){M(t).forEach(t=>{"string"==typeof t||(S(t)?e(C(t)):"object"!=typeof t||(0,o.isValidElement)(t)||Object.assign(c,t))})}(e);let u=p.parse(`<0>${t}</0>`),d={...c,...a};function h(e,t,n){let i=C(e),a=f(i,t.children,n);return"[object Array]"===Object.prototype.toString.call(i)&&i.every(e=>(0,o.isValidElement)(e))&&0===a.length||e.props&&e.props.i18nIsDynamicList?i:a}function g(e,t,n,i,a){e.dummy?(e.children=t,n.push((0,o.cloneElement)(e,{key:i},a?void 0:t))):n.push(...o.Children.map([e],e=>{let n={...e.props};return delete n.i18nIsDynamicList,(0,o.createElement)(e.type,{...n,key:i,ref:e.ref},a?null:t)}))}function f(t,a,c){let u=M(t);return M(a).reduce((t,a,p)=>{let m=a.children&&a.children[0]&&a.children[0].content&&n.services.interpolator.interpolate(a.children[0].content,d,n.language);if("tag"===a.type){let r=u[parseInt(a.name,10)];1!==c.length||r||(r=c[0][a.name]),r||(r={});let v=0!==Object.keys(a.attrs).length?function(e,t){let n={...t};return n.props=Object.assign(e.props,t.props),n}({props:a.attrs},r):r,b=(0,o.isValidElement)(v),y=b&&S(a,!0)&&!a.voidElement,k=l&&"object"==typeof v&&v.dummy&&!b,x="object"==typeof e&&null!==e&&Object.hasOwnProperty.call(e,a.name);if("string"==typeof v){let e=n.services.interpolator.interpolate(v,d,n.language);t.push(e)}else if(S(v)||y){let e=h(v,a,c);g(v,e,t,p)}else if(k)g(v,f(u,a.children,c),t,p);else if(Number.isNaN(parseFloat(a.name))){if(x){let e=h(v,a,c);g(v,e,t,p,a.voidElement)}else if(i.transSupportBasicHtmlNodes&&s.indexOf(a.name)>-1){if(a.voidElement)t.push((0,o.createElement)(a.name,{key:`${a.name}-${p}`}));else{let e=f(u,a.children,c);t.push((0,o.createElement)(a.name,{key:`${a.name}-${p}`},e))}}else if(a.voidElement)t.push(`<${a.name} />`);else{let e=f(u,a.children,c);t.push(`<${a.name}>${e}</${a.name}>`)}}else if("object"!=typeof v||b)g(v,m,t,p,1!==a.children.length||!m);else{let e=a.children[0]?m:null;e&&t.push(e)}}else if("text"===a.type){let e=i.transWrapTextNodes,s=r?i.unescape(n.services.interpolator.interpolate(a.content,d,n.language)):n.services.interpolator.interpolate(a.content,d,n.language);e?t.push((0,o.createElement)(e,{key:`${a.name}-${p}`},s)):t.push(s)}return t},[])}return C(f([{dummy:!0,children:e||[]}],u,M(e||[]))[0])}(d||t,R,k,O,A,b),I=void 0!==a?a:O.defaultTransParent;return I?(0,o.createElement)(I,y,D):D}({children:t,count:n,parent:a,i18nKey:r,context:s,tOptions:l,values:c,defaults:u,components:d,ns:g||_&&_.ns||x||O&&O.options&&O.options.defaultNS,i18n:O,t:v,shouldUnescape:b,...y})}let L=(e,t)=>{let n=(0,o.useRef)();return(0,o.useEffect)(()=>{n.current=t?n.current:e},[e,t]),n.current};function N(e,t,n,i){return e.getFixedT(t,n,i)}function P(e){var t,n;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{i18n:r}=a,{i18n:s,defaultNS:l}=(0,o.useContext)(j)||{},c=r||s||i;if(c&&!c.reportNamespaces&&(c.reportNamespaces=new _),!c){f("You will need to pass in an i18next instance by using initReactI18next");let e=(e,t)=>"string"==typeof t?t:t&&"object"==typeof t&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,t=[e,{},!1];return t.t=e,t.i18n={},t.ready=!1,t}c.options.react&&void 0!==c.options.react.wait&&f("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");let u={...w,...c.options.react,...a},{useSuspense:d,keyPrefix:p}=u,h=e||l||c.options&&c.options.defaultNS;h="string"==typeof h?[h]:h||["translation"],c.reportNamespaces.addUsedNamespaces&&c.reportNamespaces.addUsedNamespaces(h);let g=(c.isInitialized||c.initializedStoreOnce)&&h.every(e=>(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0!==t.options.ignoreJSONStructure?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,i)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))return!1}}):function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.languages[0],o=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===i.toLowerCase())return!0;let r=(e,n)=>{let i=t.services.backendConnector.state[`${e}|${n}`];return -1===i||2===i};return(!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1)||!t.services.backendConnector.backend||!t.isLanguageChangingTo||!!r(t.isLanguageChangingTo,e))&&!!(t.hasResourceBundle(i,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||r(i,e)&&(!o||r(a,e)))}(e,t,n):(f("i18n.languages were undefined or empty",t.languages),!0)})(e,c,u)),m=(t=a.lng||null,n="fallback"===u.nsMode?h:h[0],(0,o.useCallback)(N(c,t,n,p),[c,t,n,p])),y=()=>m,k=()=>N(c,a.lng||null,"fallback"===u.nsMode?h:h[0],p),[x,S]=(0,o.useState)(y),C=h.join();a.lng&&(C=`${a.lng}${C}`);let M=L(C),O=(0,o.useRef)(!0);(0,o.useEffect)(()=>{let{bindI18n:e,bindI18nStore:t}=u;function n(){O.current&&S(k)}return O.current=!0,g||d||(a.lng?b(c,a.lng,h,()=>{O.current&&S(k)}):v(c,h,()=>{O.current&&S(k)})),g&&M&&M!==C&&O.current&&S(k),e&&c&&c.on(e,n),t&&c&&c.store.on(t,n),()=>{O.current=!1,e&&c&&e.split(" ").forEach(e=>c.off(e,n)),t&&c&&t.split(" ").forEach(e=>c.store.off(e,n))}},[c,C]),(0,o.useEffect)(()=>{O.current&&g&&S(y)},[c,p,g]);let T=[x,c,g];if(T.t=x,T.i18n=c,T.ready=g,g||!g&&!d)return T;throw new Promise(e=>{a.lng?b(c,a.lng,h,()=>e()):v(c,h,()=>e())})}}},function(e){var t=function(t){return e(e.s=t)};e.O(0,[9774,179],function(){return t(68505),t(44902)}),_N_E=e.O()}]);