diff --git a/404.html b/404.html index 0d07e2b2..d7fe8024 100644 --- a/404.html +++ b/404.html @@ -14,13 +14,13 @@ - + -

404

Looks like we've got some broken links.
+ - + diff --git a/assets/js/22.61ed3850.js b/assets/js/22.61ed3850.js deleted file mode 100644 index 1da2a2ed..00000000 --- a/assets/js/22.61ed3850.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{334:function(e,r,t){"use strict";t.r(r);var a=t(26),n=Object(a.a)({},function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"progressive-delivery"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#progressive-delivery","aria-hidden":"true"}},[e._v("#")]),e._v(" Progressive Delivery")]),e._v(" "),r("p",[e._v("Flagger was designed to give developers confidence in automating production releases with progressive delivery techniques.")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("Canary release")]),e._v(" "),r("p",[e._v("A benefit of using canary releases is the ability to do capacity testing of the new version in a production environment\nwith a safe rollback strategy if issues are found. By slowly ramping up the load, you can monitor and capture metrics\nabout how the new version impacts the production environment.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://martinfowler.com/bliki/CanaryRelease.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Martin Fowler"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Flagger can run automated application analysis, testing, promotion and rollback for the following deployment strategies:")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Canary")]),e._v(" (progressive traffic shifting)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/linkerd-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linkerd"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kuma-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kuma Service Mesh"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gloo-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gloo"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/skipper-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skipper"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/traefik-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Traefik"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/apisix-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache APISIX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/knative-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Knative"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("A/B Testing")]),e._v(" (HTTP headers and cookies traffic routing)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-ab-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("Blue/Green")]),e._v(" (traffic switching and mirroring)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kubernetes-blue-green",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kubernetes CNI"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery#traffic-mirroring",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\nLinkerd, Kuma, Contour, Gloo, NGINX, Skipper, Traefik, Apache")])])])]),e._v(" "),r("p",[e._v("Flagger's application analysis can be extended with metric queries targeting Prometheus, Datadog,\nCloudWatch, New Relic, Graphite, Dynatrace, InfluxDB and Google Cloud Monitoring.")]),e._v(" "),r("p",[e._v("Flagger can be configured to "),r("a",{attrs:{href:"https://docs.flagger.app/usage/alerting",target:"_blank",rel:"noopener noreferrer"}},[e._v("send notifications"),r("OutboundLink")],1),e._v(" to\nSlack, Microsoft Teams, Discord and Rocket.\nIt will post messages when a deployment has been initialised,\nwhen a new revision has been detected and if the canary analysis failed or succeeded.")]),e._v(" "),r("h2",{attrs:{id:"gitops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#gitops","aria-hidden":"true"}},[e._v("#")]),e._v(" GitOps")]),e._v(" "),r("p",[r("img",{attrs:{src:"/flagger-gitops.png",alt:"GitOps with Flagger and Flux"}})]),e._v(" "),r("p",[e._v("You can build fully automated GitOps pipelines for canary deployments with Flagger and\n"),r("a",{attrs:{href:"https://github.com/fluxcd/flux2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("GitOps")]),e._v(" "),r("p",[e._v("GitOps is a way to do Kubernetes cluster management and application delivery.\nIt works by using Git as a single source of truth for declarative infrastructure and applications.\nWith Git at the center of your delivery pipelines, developers can make pull requests\nto accelerate and simplify application deployments and operations tasks to Kubernetes.")])]),e._v(" "),r("h2",{attrs:{id:"getting-help"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-help","aria-hidden":"true"}},[e._v("#")]),e._v(" Getting Help")]),e._v(" "),r("p",[e._v("If you have any questions about Flagger and progressive delivery:")]),e._v(" "),r("ul",[r("li",[e._v("Read the Flagger "),r("a",{attrs:{href:"https://docs.flagger.app",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[e._v("Invite yourself to the "),r("a",{attrs:{href:"https://slack.cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CNCF community slack"),r("OutboundLink")],1),e._v("\nand join the "),r("a",{attrs:{href:"https://cloud-native.slack.com/messages/flagger/",target:"_blank",rel:"noopener noreferrer"}},[e._v("#flagger"),r("OutboundLink")],1),e._v(" channel.")]),e._v(" "),r("li",[e._v("Check out the "),r("a",{attrs:{href:"https://fluxcd.io/community/#talks",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux talks section"),r("OutboundLink")],1),e._v(" and to see a list of online talks,\nhands-on training and meetups.")]),e._v(" "),r("li",[e._v("File an "),r("a",{attrs:{href:"https://github.com/fluxcd/flagger/issues/new",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("p",[e._v("Your feedback is always welcome!")]),e._v(" "),r("h2",{attrs:{id:"license"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[e._v("#")]),e._v(" License")]),e._v(" "),r("p",[e._v("Flagger is "),r("a",{attrs:{href:"https://raw.githubusercontent.com/fluxcd/flagger/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0"),r("OutboundLink")],1),e._v("\nlicensed and accepts contributions via GitHub pull requests.")]),e._v(" "),r("p",[e._v("Flagger was initially developed in 2018 at Weaveworks by Stefan Prodan.\nIn 2020 Flagger became a "),r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cloud Native Computing Foundation"),r("OutboundLink")],1),e._v(" project,\npart of "),r("a",{attrs:{href:"https://fluxcd.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(" family of GitOps tools.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"/cncf.png",alt:"CNCF"}}),r("OutboundLink")],1)])])},[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/22.9ec5f7d7.js b/assets/js/22.9ec5f7d7.js new file mode 100644 index 00000000..9e0c7185 --- /dev/null +++ b/assets/js/22.9ec5f7d7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{334:function(e,r,t){"use strict";t.r(r);var a=t(26),n=Object(a.a)({},function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"progressive-delivery"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#progressive-delivery","aria-hidden":"true"}},[e._v("#")]),e._v(" Progressive Delivery")]),e._v(" "),r("p",[e._v("Flagger was designed to give developers confidence in automating production releases with progressive delivery techniques.")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("Canary release")]),e._v(" "),r("p",[e._v("A benefit of using canary releases is the ability to do capacity testing of the new version in a production environment\nwith a safe rollback strategy if issues are found. By slowly ramping up the load, you can monitor and capture metrics\nabout how the new version impacts the production environment.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://martinfowler.com/bliki/CanaryRelease.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Martin Fowler"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Flagger can run automated application analysis, testing, promotion and rollback for the following deployment strategies:")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Canary")]),e._v(" (progressive traffic shifting with session affinity)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/linkerd-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linkerd"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kuma-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kuma Service Mesh"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gloo-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gloo"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/skipper-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skipper"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/traefik-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Traefik"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/apisix-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache APISIX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/knative-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Knative"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("A/B Testing")]),e._v(" (HTTP headers and cookies traffic routing)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-ab-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("Blue/Green")]),e._v(" (traffic switching and mirroring)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kubernetes-blue-green",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kubernetes CNI"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery#traffic-mirroring",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\nLinkerd, Kuma, Contour, Gloo, NGINX, Skipper, Traefik, Apache")])])])]),e._v(" "),r("p",[e._v("Flagger's application analysis can be extended with metric queries targeting Prometheus, Datadog,\nCloudWatch, New Relic, Graphite, Dynatrace, InfluxDB and Google Cloud Monitoring.")]),e._v(" "),r("p",[e._v("Flagger can be configured to "),r("a",{attrs:{href:"https://docs.flagger.app/usage/alerting",target:"_blank",rel:"noopener noreferrer"}},[e._v("send notifications"),r("OutboundLink")],1),e._v(" to\nSlack, Microsoft Teams, Discord and Rocket.\nIt will post messages when a deployment has been initialised,\nwhen a new revision has been detected and if the canary analysis failed or succeeded.")]),e._v(" "),r("h2",{attrs:{id:"gitops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#gitops","aria-hidden":"true"}},[e._v("#")]),e._v(" GitOps")]),e._v(" "),r("p",[r("img",{attrs:{src:"/flagger-gitops.png",alt:"GitOps with Flagger and Flux"}})]),e._v(" "),r("p",[e._v("You can build fully automated GitOps pipelines for canary deployments with Flagger and\n"),r("a",{attrs:{href:"https://github.com/fluxcd/flux2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("GitOps")]),e._v(" "),r("p",[e._v("GitOps is a way to do Kubernetes cluster management and application delivery.\nIt works by using Git as a single source of truth for declarative infrastructure and applications.\nWith Git at the center of your delivery pipelines, developers can make pull requests\nto accelerate and simplify application deployments and operations tasks to Kubernetes.")])]),e._v(" "),r("h2",{attrs:{id:"getting-help"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-help","aria-hidden":"true"}},[e._v("#")]),e._v(" Getting Help")]),e._v(" "),r("p",[e._v("If you have any questions about Flagger and progressive delivery:")]),e._v(" "),r("ul",[r("li",[e._v("Read the Flagger "),r("a",{attrs:{href:"https://docs.flagger.app",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[e._v("Invite yourself to the "),r("a",{attrs:{href:"https://slack.cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CNCF community slack"),r("OutboundLink")],1),e._v("\nand join the "),r("a",{attrs:{href:"https://cloud-native.slack.com/messages/flagger/",target:"_blank",rel:"noopener noreferrer"}},[e._v("#flagger"),r("OutboundLink")],1),e._v(" channel.")]),e._v(" "),r("li",[e._v("Check out the "),r("a",{attrs:{href:"https://fluxcd.io/community/#talks",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux talks section"),r("OutboundLink")],1),e._v(" and to see a list of online talks,\nhands-on training and meetups.")]),e._v(" "),r("li",[e._v("File an "),r("a",{attrs:{href:"https://github.com/fluxcd/flagger/issues/new",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("p",[e._v("Your feedback is always welcome!")]),e._v(" "),r("h2",{attrs:{id:"license"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[e._v("#")]),e._v(" License")]),e._v(" "),r("p",[e._v("Flagger is "),r("a",{attrs:{href:"https://raw.githubusercontent.com/fluxcd/flagger/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0"),r("OutboundLink")],1),e._v("\nlicensed and accepts contributions via GitHub pull requests.")]),e._v(" "),r("p",[e._v("Flagger was initially developed in 2018 at Weaveworks by Stefan Prodan.\nIn 2020 Flagger became a "),r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cloud Native Computing Foundation"),r("OutboundLink")],1),e._v(" project,\npart of "),r("a",{attrs:{href:"https://fluxcd.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(" family of GitOps tools.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"/cncf.png",alt:"CNCF"}}),r("OutboundLink")],1)])])},[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.4c600d44.js b/assets/js/app.a29d2723.js similarity index 99% rename from assets/js/app.4c600d44.js rename to assets/js/app.a29d2723.js index df6db68d..a735c8e6 100644 --- a/assets/js/app.4c600d44.js +++ b/assets/js/app.a29d2723.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],l=0,p=[];l
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),f=r.speed,l=r.easing;return c.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,f,l)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout(function(){s(c,{transition:"all "+f+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},f)},f)):setTimeout(e,f)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),f=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),f!=document.body&&u(f,"nprogress-custom-parent"),f.appendChild(e),e},n.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:l(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=l(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function f(t,e){var n,r=l(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function l(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){"use strict";var r=n(11),o=n(6),i=n(8),a=n(3),s=n(23),c=n(84),u=n(85),f=n(12),l=n(86),p=n(24),d=n(19),h=!d&&!l("map",function(){}),v=!d&&!h&&p("map",TypeError),y=d||h||v,m=c(function(){var t=this.iterator,e=a(o(this.next,t));if(!(this.done=!!e.done))return u(t,this.mapper,[e.value,this.counter++],!0)});r({target:"Iterator",proto:!0,real:!0,forced:y},{map:function(t){a(this);try{i(t)}catch(t){f(this,"throw",t)}return v?o(v,this,t):new m(s(this),{mapper:t})}})},function(t,e,n){"use strict";var r=n(2),o=n(15),i=n(76),a=n(48);t.exports=function(t,e,n,s){s||(s={});var c=s.enumerable,u=void 0!==s.name?s.name:e;if(r(n)&&i(n,u,s),s.global)c?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(c=!0):delete t[e]}catch(t){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},function(t,e,n){"use strict";var r=n(45),o=TypeError;t.exports=function(t){if(r(t))throw new o("Can't call method on "+t);return t}},function(t,e,n){"use strict";t.exports=function(t){return null==t}},function(t,e,n){"use strict";var r=String;t.exports=function(t){try{return r(t)}catch(t){return"Object"}}},function(t,e,n){"use strict";var r=n(19),o=n(0),i=n(48),a=t.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.46.0",mode:r?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e,n){"use strict";var r=n(0),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){"use strict";var r=n(71),o=n(72),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){"use strict";t.exports={}},function(t,e,n){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,n){"use strict";var r=n(152),o=n(6),i=n(3),a=n(46),s=n(154),c=n(35),u=n(32),f=n(155),l=n(88),p=n(12),d=TypeError,h=function(t,e){this.stopped=t,this.result=e},v=h.prototype;t.exports=function(t,e,n){var y,m,g,b,_,x,w,O=n&&n.that,C=!(!n||!n.AS_ENTRIES),$=!(!n||!n.IS_RECORD),S=!(!n||!n.IS_ITERATOR),j=!(!n||!n.INTERRUPTED),k=r(e,O),E=function(t){return y&&p(y,"normal"),new h(!0,t)},P=function(t){return C?(i(t),j?k(t[0],t[1],E):k(t[0],t[1])):j?k(t,E):k(t)};if($)y=t.iterator;else if(S)y=t;else{if(!(m=l(t)))throw new d(a(t)+" is not iterable");if(s(m)){for(g=0,b=c(t);b>g;g++)if((_=P(t[g]))&&u(v,_))return _;return new h(!1)}y=f(t,m)}for(x=$?t.next:y.next;!(w=o(x,y)).done;){try{_=P(w.value)}catch(t){p(y,"throw",t)}if("object"==typeof _&&_&&u(v,_))return _}return new h(!1)}},function(t,e,n){var r=n(175),o=n(18),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},function(t,e,n){var r=n(16)(n(13),"Map");t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(195),o=n(202),i=n(204),a=n(205),s=n(206);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=n}},function(t,e,n){var r=n(10),o=n(60),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(a.test(t)||!i.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(21),o=n(18),i="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&r(t)==i}},function(t,e){t.exports=function(t){return t}},function(t,e,n){"use strict";var r=n(11),o=n(6),i=n(52),a=n(8),s=n(3),c=n(23),u=n(12),f=n(24)("forEach",TypeError);r({target:"Iterator",proto:!0,real:!0,forced:f},{forEach:function(t){s(this);try{a(t)}catch(t){u(this,"throw",t)}if(f)return o(f,this,t);var e=c(this),n=0;i(e,function(e){t(e,n++)},{IS_RECORD:!0})}})},function(t,e,n){"use strict";var r=n(5),o=n(6),i=n(124),a=n(29),s=n(30),c=n(65),u=n(9),f=n(73),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=s(t),e=c(e),f)try{return l(t,e)}catch(t){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},function(t,e,n){"use strict";var r=n(4),o=n(1),i=n(22),a=Object,s=r("".split);t.exports=o(function(){return!a("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?s(t,""):a(t)}:a},function(t,e,n){"use strict";var r=n(125),o=n(66);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e,n){"use strict";var r=n(31),o=n(2),i=n(32),a=n(67),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},function(t,e,n){"use strict";var r=n(68);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){"use strict";var r=n(69),o=n(1),i=n(0).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})},function(t,e,n){"use strict";var r,o,i=n(0),a=n(70),s=i.process,c=i.Deno,u=s&&s.versions||c&&c.version,f=u&&u.v8;f&&(o=(r=f.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},function(t,e,n){"use strict";var r=n(0).navigator,o=r&&r.userAgent;t.exports=o?String(o):""},function(t,e,n){"use strict";var r=n(47);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},function(t,e,n){"use strict";var r=n(4),o=0,i=Math.random(),a=r(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},function(t,e,n){"use strict";var r=n(5),o=n(1),i=n(74);t.exports=!r&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";var r=n(0),o=n(7),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e,n){"use strict";var r=n(5),o=n(1);t.exports=r&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},function(t,e,n){"use strict";var r=n(4),o=n(1),i=n(2),a=n(9),s=n(5),c=n(127).CONFIGURABLE,u=n(128),f=n(77),l=f.enforce,p=f.get,d=String,h=Object.defineProperty,v=r("".slice),y=r("".replace),m=r([].join),g=s&&!o(function(){return 8!==h(function(){},"length",{value:8}).length}),b=String(String).split("String"),_=t.exports=function(t,e,n){"Symbol("===v(d(e),0,7)&&(e="["+y(d(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||c&&t.name!==e)&&(s?h(t,"name",{value:e,configurable:!0}):t.name=e),g&&n&&a(n,"arity")&&t.length!==n.arity&&h(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&h(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=l(t);return a(r,"source")||(r.source=m(b,"string"==typeof e?e:"")),t};Function.prototype.toString=_(function(){return i(this)&&p(this).source||u(this)},"toString")},function(t,e,n){"use strict";var r,o,i,a=n(129),s=n(0),c=n(7),u=n(20),f=n(9),l=n(47),p=n(49),d=n(50),h=s.TypeError,v=s.WeakMap;if(a||l.state){var y=l.state||(l.state=new v);y.get=y.get,y.has=y.has,y.set=y.set,r=function(t,e){if(y.has(t))throw new h("Object already initialized");return e.facade=t,y.set(t,e),e},o=function(t){return y.get(t)||{}},i=function(t){return y.has(t)}}else{var m=p("state");d[m]=!0,r=function(t,e){if(f(t,m))throw new h("Object already initialized");return e.facade=t,u(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw new h("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){"use strict";var r=n(9),o=n(130),i=n(63),a=n(15);t.exports=function(t,e,n){for(var s=o(e),c=a.f,u=i.f,f=0;fu;)o(r,n=e[u++])&&(~a(f,n)||c(f,n));return f}},function(t,e,n){"use strict";var r=n(134);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},function(t,e,n){"use strict";var r=n(9),o=n(2),i=n(34),a=n(49),s=n(139),c=a("IE_PROTO"),u=Object,f=u.prototype;t.exports=s?u.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof u?f:null}},function(t,e,n){"use strict";var r,o,i,a=n(1),s=n(2),c=n(7),u=n(83),f=n(81),l=n(43),p=n(14),d=n(19),h=p("iterator"),v=!1;[].keys&&("next"in(i=[].keys())?(o=f(f(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||a(function(){var t={};return r[h].call(t)!==t})?r={}:d&&(r=u(r)),s(r[h])||l(r,h,function(){return this}),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},function(t,e,n){"use strict";var r,o=n(3),i=n(141),a=n(51),s=n(50),c=n(143),u=n(74),f=n(49),l=f("IE_PROTO"),p=function(){},d=function(t){return" +